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
@@ -0,0 +1,43 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __esm = (fn, res, err) => function __init() {
8
+ if (err) throw err[0];
9
+ try {
10
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
11
+ } catch (e) {
12
+ throw err = [e], e;
13
+ }
14
+ };
15
+ var __commonJS = (cb, mod) => function __require() {
16
+ try {
17
+ return mod || (0, cb[__getOwnPropNames(cb)[0]])((mod = { exports: {} }).exports, mod), mod.exports;
18
+ } catch (e) {
19
+ throw mod = 0, e;
20
+ }
21
+ };
22
+ var __copyProps = (to, from, except, desc) => {
23
+ if (from && typeof from === "object" || typeof from === "function") {
24
+ for (let key of __getOwnPropNames(from))
25
+ if (!__hasOwnProp.call(to, key) && key !== except)
26
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
27
+ }
28
+ return to;
29
+ };
30
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
31
+ // If the importer is in node compatibility mode or this is not an ESM
32
+ // file that has been converted to a CommonJS file using a Babel-
33
+ // compatible transform (i.e. "__esModule" has not been set), then set
34
+ // "default" to the CommonJS "module.exports" for node compatibility.
35
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
36
+ mod
37
+ ));
38
+
39
+ export {
40
+ __esm,
41
+ __commonJS,
42
+ __toESM
43
+ };
@@ -0,0 +1,9 @@
1
+ import {
2
+ emojis_default,
3
+ init_emojis
4
+ } from "./chunk-7ZGTUZFB.mjs";
5
+ import "./chunk-LO4TPPLH.mjs";
6
+ init_emojis();
7
+ export {
8
+ emojis_default as default
9
+ };
@@ -0,0 +1,18 @@
1
+ import {
2
+ require_registerDefaultEmojiData
3
+ } from "./chunks/chunk-FQIJ4HBW.mjs";
4
+ import {
5
+ getEmojiByUnified,
6
+ searchEmojis
7
+ } from "./chunks/chunk-46BUDQLE.mjs";
8
+ import "./chunks/chunk-7ZGTUZFB.mjs";
9
+ import {
10
+ __toESM
11
+ } from "./chunks/chunk-LO4TPPLH.mjs";
12
+
13
+ // src/data.ts
14
+ var import_registerDefaultEmojiData = __toESM(require_registerDefaultEmojiData());
15
+ export {
16
+ getEmojiByUnified,
17
+ searchEmojis
18
+ };
@@ -0,0 +1,389 @@
1
+ "use client";
2
+ import {
3
+ Categories,
4
+ CategoryNav,
5
+ DEFAULT_PICKER_HEIGHT,
6
+ DEFAULT_PICKER_WIDTH,
7
+ DefaultPickerConfiguration,
8
+ EmojiStyle,
9
+ Empty,
10
+ List,
11
+ LoadError,
12
+ Loading,
13
+ MutableConfigProvider,
14
+ Panel,
15
+ Preview,
16
+ Reactions,
17
+ Relative,
18
+ Root,
19
+ Search,
20
+ SkinTone,
21
+ SkinTonePickerLocation,
22
+ SkinTones,
23
+ SuggestionMode,
24
+ Theme,
25
+ ViewOnlyEmoji,
26
+ Viewport,
27
+ commonInteractionStyles,
28
+ compareConfig,
29
+ cx,
30
+ defaultPickerTokens,
31
+ emojiByUnified,
32
+ isPickerBehaviorProp,
33
+ resolveEmojiStyle,
34
+ resolveSkinTonePickerLocation,
35
+ stylesheet,
36
+ useDefaultAppearance,
37
+ useDefineMutableConfig,
38
+ usePreviewConfig,
39
+ useSearchDisabledConfig,
40
+ useSkinTonePickerLocationConfig,
41
+ useSkinTonesDisabledConfig,
42
+ validColumns
43
+ } from "./chunks/chunk-KQPOIRSC.mjs";
44
+ import {
45
+ require_registerDefaultEmojiData
46
+ } from "./chunks/chunk-FQIJ4HBW.mjs";
47
+ import "./chunks/chunk-46BUDQLE.mjs";
48
+ import "./chunks/chunk-7ZGTUZFB.mjs";
49
+ import {
50
+ __toESM
51
+ } from "./chunks/chunk-LO4TPPLH.mjs";
52
+
53
+ // src/index.tsx
54
+ var import_registerDefaultEmojiData = __toESM(require_registerDefaultEmojiData());
55
+ import * as React6 from "react";
56
+
57
+ // src/EmojiPickerReact.tsx
58
+ import * as React3 from "react";
59
+
60
+ // src/components/header/Header.tsx
61
+ import * as React from "react";
62
+
63
+ // src/hooks/useShouldShowSkinTonePicker.ts
64
+ function useIsSkinToneInSearch() {
65
+ const skinTonePickerLocationConfig = useSkinTonePickerLocationConfig();
66
+ return skinTonePickerLocationConfig === "SEARCH" /* SEARCH */;
67
+ }
68
+ function useIsSkinToneInPreview() {
69
+ const skinTonePickerLocationConfig = useSkinTonePickerLocationConfig();
70
+ return skinTonePickerLocationConfig === "PREVIEW" /* PREVIEW */;
71
+ }
72
+
73
+ // src/components/header/Header.tsx
74
+ function Header() {
75
+ const appearance = useDefaultAppearance();
76
+ const searchDisabled = useSearchDisabledConfig();
77
+ const skinTonesDisabled = useSkinTonesDisabledConfig();
78
+ const toneInSearch = useIsSkinToneInSearch();
79
+ return /* @__PURE__ */ React.createElement(
80
+ Relative,
81
+ {
82
+ className: cx(
83
+ "epr-header",
84
+ appearance && commonInteractionStyles.hiddenOnReactions
85
+ )
86
+ },
87
+ !searchDisabled && /* @__PURE__ */ React.createElement(Search, null, !skinTonesDisabled && toneInSearch && /* @__PURE__ */ React.createElement(SkinTone, null)),
88
+ /* @__PURE__ */ React.createElement(CategoryNav, null)
89
+ );
90
+ }
91
+
92
+ // src/components/main/defaultAppearance.tsx
93
+ import * as React2 from "react";
94
+ function defaultRootClassName(theme, className, unstyled) {
95
+ if (unstyled) {
96
+ return cx(className);
97
+ }
98
+ return cx(
99
+ styles.main,
100
+ styles.baseVariables,
101
+ theme === "dark" /* DARK */ && styles.darkTheme,
102
+ theme === "auto" /* AUTO */ && styles.autoThemeDark,
103
+ className
104
+ );
105
+ }
106
+ function defaultRootStyle({
107
+ width,
108
+ height,
109
+ style,
110
+ columns
111
+ }) {
112
+ return {
113
+ // v4-compatible default dimensions; consumer style and explicit
114
+ // width/height props both override them. With `columns`, the width
115
+ // fits the columns instead.
116
+ ...columns === void 0 && { width: getDimension(DEFAULT_PICKER_WIDTH) },
117
+ height: getDimension(DEFAULT_PICKER_HEIGHT),
118
+ ...style,
119
+ ...width !== void 0 ? { width: getDimension(width) } : {},
120
+ ...height !== void 0 ? { height: getDimension(height) } : {}
121
+ };
122
+ }
123
+ function getDimension(dimension) {
124
+ return typeof dimension === "number" ? `${dimension}px` : dimension;
125
+ }
126
+ var darkThemeBaseVariables = {
127
+ "--epr-dark": "#000",
128
+ "--epr-dark-emoji-variation-picker-bg-color": "var(--epr-dark)",
129
+ "--epr-dark-highlight-color": "#c0c0c0",
130
+ "--epr-dark-text-color": "var(--epr-highlight-color)",
131
+ "--epr-dark-hover-bg-color": "#363636f6",
132
+ "--epr-dark-hover-bg-color-reduced-opacity": "#36363680",
133
+ "--epr-dark-focus-bg-color": "#474747",
134
+ "--epr-dark-search-input-bg-color": "#333333",
135
+ "--epr-dark-category-label-bg-color": "#222222e6",
136
+ "--epr-dark-picker-border-color": "#151617",
137
+ "--epr-dark-bg-color": "#222222",
138
+ "--epr-dark-reactions-bg-color": "#22222290",
139
+ "--epr-dark-search-input-bg-color-active": "var(--epr-dark)",
140
+ "--epr-dark-emoji-variation-indicator-color": "#444",
141
+ "--epr-dark-category-icon-active-color": "#6AA9DD",
142
+ "--epr-dark-category-icon-inactive-color": "#C0C0BF",
143
+ "--epr-dark-skin-tone-picker-menu-color": "#22222295",
144
+ "--epr-dark-skin-tone-outer-border-color": "var(--epr-dark-picker-border-color)",
145
+ "--epr-dark-skin-tone-inner-border-color": "#00000000"
146
+ };
147
+ var DarkTheme = {
148
+ "--epr-emoji-variation-picker-bg-color": "var(--epr-dark-emoji-variation-picker-bg-color)",
149
+ "--epr-hover-bg-color-reduced-opacity": "var(--epr-dark-hover-bg-color-reduced-opacity)",
150
+ "--epr-highlight-color": "var(--epr-dark-highlight-color)",
151
+ "--epr-text-color": "var(--epr-dark-text-color)",
152
+ "--epr-hover-bg-color": "var(--epr-dark-hover-bg-color)",
153
+ "--epr-focus-bg-color": "var(--epr-dark-focus-bg-color)",
154
+ "--epr-search-input-bg-color": "var(--epr-dark-search-input-bg-color)",
155
+ "--epr-category-label-bg-color": "var(--epr-dark-category-label-bg-color)",
156
+ "--epr-picker-border-color": "var(--epr-dark-picker-border-color)",
157
+ "--epr-bg-color": "var(--epr-dark-bg-color)",
158
+ "--epr-reactions-bg-color": "var(--epr-dark-reactions-bg-color)",
159
+ "--epr-search-input-bg-color-active": "var(--epr-dark-search-input-bg-color-active)",
160
+ "--epr-emoji-variation-indicator-color": "var(--epr-dark-emoji-variation-indicator-color)",
161
+ "--epr-category-icon-active-color": "var(--epr-dark-category-icon-active-color)",
162
+ "--epr-category-icon-inactive-color": "var(--epr-dark-category-icon-inactive-color)",
163
+ "--epr-skin-tone-picker-menu-color": "var(--epr-dark-skin-tone-picker-menu-color)",
164
+ "--epr-skin-tone-outer-border-color": "var(--epr-dark-skin-tone-outer-border-color)",
165
+ "--epr-skin-tone-inner-border-color": "var(--epr-dark-skin-tone-inner-border-color)",
166
+ "--epr-dark-text-color": "var(--epr-highlight-color)",
167
+ "--epr-dark-hover-bg-color": "#363636f6",
168
+ "--epr-dark-hover-bg-color-reduced-opacity": "#36363680",
169
+ "--epr-dark-focus-bg-color": "#474747",
170
+ "--epr-dark-search-input-bg-color": "#333333",
171
+ "--epr-dark-category-label-bg-color": "#222222e6",
172
+ "--epr-dark-picker-border-color": "#151617",
173
+ "--epr-dark-bg-color": "#222222",
174
+ "--epr-dark-reactions-bg-color": "#22222290",
175
+ "--epr-dark-search-input-bg-color-active": "var(--epr-dark)",
176
+ "--epr-dark-emoji-variation-indicator-color": "#444",
177
+ "--epr-dark-category-icon-active-color": "#6AA9DD",
178
+ "--epr-dark-category-icon-inactive-color": "#C0C0BF",
179
+ "--epr-dark-skin-tone-picker-menu-color": "#22222295",
180
+ "--epr-dark-skin-tone-outer-border-color": "var(--epr-dark-picker-border-color)",
181
+ "--epr-dark-skin-tone-inner-border-color": "#00000000"
182
+ };
183
+ var styles = /* @__PURE__ */ (() => stylesheet.create({
184
+ main: {
185
+ ".": ["epr-main", "EmojiPickerReact" /* emojiPicker */],
186
+ position: "relative",
187
+ display: "flex",
188
+ flexDirection: "column",
189
+ borderWidth: "1px",
190
+ borderStyle: "solid",
191
+ borderRadius: "var(--epr-picker-border-radius)",
192
+ borderColor: "var(--epr-picker-border-color)",
193
+ backgroundColor: "var(--epr-bg-color)",
194
+ overflow: "hidden",
195
+ transition: "height 0.3s ease-in-out, background-color 0.1s ease-in-out",
196
+ "*": {
197
+ boxSizing: "border-box",
198
+ // Overridable without a specificity fight (v4 hard-coded sans-serif).
199
+ fontFamily: "var(--epr-font-family, sans-serif)"
200
+ }
201
+ },
202
+ baseVariables: {
203
+ // Single-sourced from the public token preset: the default tree and
204
+ // bare-Root consumers share the same documented defaults. The private
205
+ // dark-theme values ride along (referenced only by the DarkTheme
206
+ // overrides below); they stay out of the shared preset so the
207
+ // primitives bundle keeps its separation marker scan clean.
208
+ "--": { ...defaultPickerTokens, ...darkThemeBaseVariables }
209
+ },
210
+ // color-scheme makes native parts (scrollbars, the search field's
211
+ // controls) render dark too; without it they stay light on a dark picker.
212
+ autoThemeDark: {
213
+ ".": "epr-auto-theme" /* autoTheme */,
214
+ "@media (prefers-color-scheme: dark)": {
215
+ "--": DarkTheme,
216
+ colorScheme: "dark"
217
+ }
218
+ },
219
+ darkTheme: {
220
+ ".": "epr-dark-theme" /* darkTheme */,
221
+ "--": DarkTheme,
222
+ colorScheme: "dark"
223
+ }
224
+ }))();
225
+
226
+ // src/EmojiPickerReact.tsx
227
+ function EmojiPicker(props) {
228
+ const rootInput = props;
229
+ const {
230
+ theme: legacyTheme,
231
+ colorScheme,
232
+ width,
233
+ height,
234
+ className,
235
+ style,
236
+ unstyled,
237
+ components,
238
+ open,
239
+ searchDisabled = false,
240
+ skinTonesDisabled = false,
241
+ skinTonePickerLocation = "SEARCH" /* SEARCH */,
242
+ previewConfig,
243
+ ...rest
244
+ } = rootInput;
245
+ const theme = colorScheme ?? legacyTheme;
246
+ const showPreview = previewConfig?.showPreview ?? true;
247
+ const resolvedLocation = resolveSkinTonePickerLocation(
248
+ skinTonePickerLocation,
249
+ searchDisabled,
250
+ showPreview
251
+ );
252
+ const defaultConfiguration = {
253
+ searchDisabled,
254
+ skinTonesDisabled,
255
+ skinTonePickerLocation: resolvedLocation,
256
+ previewConfig,
257
+ // Closed, as in v4, keeps the picker's state (skin tone, search,
258
+ // reactions mode) and renders nothing.
259
+ open: open !== false
260
+ };
261
+ const { behaviorProps, unknownProps } = pickBehaviorProps(rest);
262
+ useUnknownPropsWarning(unknownProps);
263
+ return /* @__PURE__ */ React3.createElement(DefaultPickerConfiguration.Provider, { value: defaultConfiguration }, /* @__PURE__ */ React3.createElement(
264
+ Root,
265
+ {
266
+ appearance: unstyled ? "none" : "default",
267
+ components,
268
+ ...behaviorProps,
269
+ className: defaultRootClassName(theme, className, unstyled),
270
+ style: defaultRootStyle({
271
+ width,
272
+ height,
273
+ style,
274
+ columns: validColumns(props.columns)
275
+ })
276
+ },
277
+ /* @__PURE__ */ React3.createElement(Reactions, null),
278
+ /* @__PURE__ */ React3.createElement(Panel, null, CONTENT)
279
+ ));
280
+ }
281
+ var NATIVE_ATTRIBUTES = /* @__PURE__ */ new Set([
282
+ "id",
283
+ "title",
284
+ "lang",
285
+ "dir"
286
+ ]);
287
+ function isNativeAttribute(key) {
288
+ return NATIVE_ATTRIBUTES.has(key) || key.startsWith("aria-") || key.startsWith("data-");
289
+ }
290
+ function pickBehaviorProps(props) {
291
+ const behaviorProps = {};
292
+ const unknown = [];
293
+ const values = props;
294
+ for (const key of Object.keys(values)) {
295
+ if (isPickerBehaviorProp(key) || isNativeAttribute(key)) {
296
+ behaviorProps[key] = values[key];
297
+ } else {
298
+ unknown.push(key);
299
+ }
300
+ }
301
+ return { behaviorProps, unknownProps: unknown.join(", ") };
302
+ }
303
+ var useUnknownPropsWarning = process.env.NODE_ENV === "production" ? () => void 0 : useDevUnknownPropsWarning;
304
+ function useDevUnknownPropsWarning(unknownProps) {
305
+ React3.useEffect(() => {
306
+ if (unknownProps) {
307
+ console.warn(
308
+ `[emoji-picker-react] Ignoring unknown prop(s): ${unknownProps}. See docs/v5/MIGRATION.md for removed props.`
309
+ );
310
+ }
311
+ }, [unknownProps]);
312
+ }
313
+ function ContentControl() {
314
+ const showPreview = usePreviewConfig().showPreview;
315
+ const skinTonesDisabled = useSkinTonesDisabledConfig();
316
+ const toneInPreview = useIsSkinToneInPreview();
317
+ return /* @__PURE__ */ React3.createElement(React3.Fragment, null, /* @__PURE__ */ React3.createElement(Header, null), /* @__PURE__ */ React3.createElement(Viewport, null, /* @__PURE__ */ React3.createElement(List, null), /* @__PURE__ */ React3.createElement(Empty, null), /* @__PURE__ */ React3.createElement(Loading, null), /* @__PURE__ */ React3.createElement(LoadError, null)), showPreview && /* @__PURE__ */ React3.createElement(Preview, null, !skinTonesDisabled && toneInPreview && /* @__PURE__ */ React3.createElement(SkinTone, { orientation: "vertical" })));
318
+ }
319
+ var CONTENT = /* @__PURE__ */ React3.createElement(ContentControl);
320
+ var EmojiPickerReact_default = /* @__PURE__ */ React3.memo(EmojiPicker, compareConfig);
321
+
322
+ // src/components/ErrorBoundary.tsx
323
+ import * as React4 from "react";
324
+ var ErrorBoundary = class extends React4.Component {
325
+ constructor(props) {
326
+ super(props);
327
+ this.state = { hasError: false };
328
+ }
329
+ static getDerivedStateFromError() {
330
+ return { hasError: true };
331
+ }
332
+ componentDidCatch(error, errorInfo) {
333
+ console.error("Emoji Picker React failed to render:", error, errorInfo);
334
+ }
335
+ render() {
336
+ if (this.state.hasError) {
337
+ return null;
338
+ }
339
+ return this.props.children;
340
+ }
341
+ };
342
+
343
+ // src/components/emoji/ExportedEmoji.tsx
344
+ import * as React5 from "react";
345
+ function ExportedEmoji({
346
+ unified,
347
+ size = 32,
348
+ emojiStyle,
349
+ lazyLoad = false,
350
+ getEmojiUrl,
351
+ emojiUrl
352
+ }) {
353
+ if (!unified && !emojiUrl && !getEmojiUrl) {
354
+ return null;
355
+ }
356
+ return /* @__PURE__ */ React5.createElement(
357
+ ViewOnlyEmoji,
358
+ {
359
+ unified,
360
+ size,
361
+ emojiStyle: resolveEmojiStyle(emojiStyle, emojiUrl || getEmojiUrl),
362
+ lazyLoad,
363
+ getEmojiUrl: emojiUrl ? () => emojiUrl : getEmojiUrl
364
+ }
365
+ );
366
+ }
367
+
368
+ // src/index.tsx
369
+ function EmojiPicker2(props) {
370
+ const MutableConfigRef = useDefineMutableConfig({
371
+ onEmojiClick: props.onEmojiClick,
372
+ onReactionClick: props.onReactionClick,
373
+ onSkinToneChange: props.onSkinToneChange,
374
+ onSearchChange: props.onSearchChange,
375
+ onReactionsModeChange: props.onReactionsModeChange
376
+ });
377
+ return /* @__PURE__ */ React6.createElement(ErrorBoundary, null, /* @__PURE__ */ React6.createElement(MutableConfigProvider, { value: MutableConfigRef, inheritToRoot: true }, /* @__PURE__ */ React6.createElement(EmojiPickerReact_default, { ...props })));
378
+ }
379
+ export {
380
+ Categories,
381
+ ExportedEmoji as Emoji,
382
+ EmojiStyle,
383
+ SkinTonePickerLocation,
384
+ SkinTones,
385
+ SuggestionMode,
386
+ Theme,
387
+ EmojiPicker2 as default,
388
+ emojiByUnified
389
+ };
@@ -0,0 +1,67 @@
1
+ "use client";
2
+ import {
3
+ Categories,
4
+ CategoryNav,
5
+ EmojiStyle,
6
+ Empty,
7
+ List,
8
+ LoadError,
9
+ Loading,
10
+ Panel,
11
+ Preview,
12
+ Reactions,
13
+ Root,
14
+ Search,
15
+ SearchInput,
16
+ SkinTone,
17
+ SkinTonePickerLocation,
18
+ SkinTones,
19
+ SuggestionMode,
20
+ Theme,
21
+ Viewport,
22
+ darkPickerTokens,
23
+ defaultPickerTokens,
24
+ lightPickerTokens,
25
+ structuralPickerTokens,
26
+ useActiveEmoji,
27
+ useCategoryNavigation,
28
+ useEmojiDataState,
29
+ usePickerMode,
30
+ useSearchActions,
31
+ useSearchState,
32
+ useSkinTone
33
+ } from "../chunks/chunk-KQPOIRSC.mjs";
34
+ import "../chunks/chunk-46BUDQLE.mjs";
35
+ import "../chunks/chunk-LO4TPPLH.mjs";
36
+ export {
37
+ Categories,
38
+ CategoryNav,
39
+ EmojiStyle,
40
+ Empty,
41
+ List,
42
+ LoadError,
43
+ Loading,
44
+ Panel,
45
+ Preview,
46
+ Reactions,
47
+ Root,
48
+ Search,
49
+ SearchInput,
50
+ SkinTone,
51
+ SkinTonePickerLocation,
52
+ SkinTones,
53
+ SuggestionMode,
54
+ Theme,
55
+ Viewport,
56
+ darkPickerTokens,
57
+ defaultPickerTokens,
58
+ lightPickerTokens,
59
+ structuralPickerTokens,
60
+ useActiveEmoji,
61
+ useCategoryNavigation,
62
+ useEmojiDataState,
63
+ usePickerMode,
64
+ useSearchActions,
65
+ useSearchState,
66
+ useSkinTone
67
+ };
@@ -1,9 +1,9 @@
1
- import { GetEmojiUrl } from '../components/emoji/BaseEmojiProps';
2
- import { DataEmoji } from '../dataUtils/DataTypes';
3
- import { EmojiStyle } from '../types/exposedTypes';
4
- import { Dimensions } from '../virtualization/virtualizationHelpers';
5
- export declare function preloadEmojiIfNeeded(emoji: undefined | DataEmoji, emojiStyles: EmojiStyle, scrollTop: number, clientHeight: number, topOffset: number, style: {
6
- top: number;
7
- } | undefined, dimensions: Dimensions, getEmojiUrl: GetEmojiUrl): void;
8
- export declare function preloadEmoji(getEmojiUrl: GetEmojiUrl, emoji: undefined | DataEmoji, emojiStyle: EmojiStyle): void;
9
- export declare const preloadedEmojs: Set<string>;
1
+ import { GetEmojiUrl } from '../components/emoji/BaseEmojiProps';
2
+ import { DataEmoji } from '../dataUtils/DataTypes';
3
+ import { EmojiStyleValue } from '../types/exposedTypes';
4
+ import { Dimensions } from '../virtualization/virtualizationHelpers';
5
+ export declare function preloadEmojiIfNeeded(emoji: undefined | DataEmoji, emojiStyles: EmojiStyleValue, scrollTop: number, clientHeight: number, topOffset: number, style: {
6
+ top: number;
7
+ } | undefined, dimensions: Dimensions, getEmojiUrl: GetEmojiUrl): void;
8
+ export declare function preloadEmoji(getEmojiUrl: GetEmojiUrl, emoji: undefined | DataEmoji, emojiStyle: EmojiStyleValue): void;
9
+ export declare const preloadedEmojs: Set<string>;
@@ -1,11 +1,11 @@
1
- import { CategoriesConfig } from '../config/categoryConfig';
2
- export declare function useActiveCategoryScrollDetection({ setActiveCategory, setVisibleCategories, categories, }: {
3
- setActiveCategory: (category: string) => void;
4
- setVisibleCategories: (categories: string[]) => void;
5
- /**
6
- * Effective category list. The merged array reference only changes when
7
- * the configuration is re-merged, so the observer re-subscribes exactly
8
- * when sections are added or removed — no serialization involved.
9
- */
10
- categories: CategoriesConfig;
11
- }): void;
1
+ import { CategoriesConfig } from '../config/categoryConfig';
2
+ export declare function useActiveCategoryScrollDetection({ setActiveCategory, setVisibleCategories, categories, }: {
3
+ setActiveCategory: (category: string) => void;
4
+ setVisibleCategories: (categories: string[]) => void;
5
+ /**
6
+ * Effective category list. The merged array reference only changes when
7
+ * the configuration is re-merged, so the observer re-subscribes exactly
8
+ * when sections are added or removed — no serialization involved.
9
+ */
10
+ categories: CategoriesConfig;
11
+ }): void;
@@ -1,5 +1,6 @@
1
- export declare function useCategoryHeight(emojiCount: number): {
2
- categoryHeight: number;
3
- emojisPerRow: number;
4
- emojiSize: number;
5
- } | undefined;
1
+ export declare function useCategoryHeight(emojiCount: number): {
2
+ categoryHeight: number;
3
+ emojisPerRow: number;
4
+ emojiSize: number;
5
+ rowWidth: number;
6
+ } | undefined;
@@ -1,2 +1,2 @@
1
- export declare function useCloseAllOpenToggles(): () => void;
2
- export declare function useHasOpenToggles(): () => boolean;
1
+ export declare function useCloseAllOpenToggles(): () => void;
2
+ export declare function useHasOpenToggles(): () => boolean;
@@ -0,0 +1,13 @@
1
+ import type { CustomEmoji } from '../config/customEmojiConfig';
2
+ import type { EmojiData } from '../types/exposedTypes';
3
+ /**
4
+ * Dev-only diagnostic.
5
+ *
6
+ * Identity caching only helps when callers keep data props referentially
7
+ * stable. If a non-default `emojiData` (or `customEmojis`) changes identity
8
+ * on three consecutive committed renders, warn once that repeated identity
9
+ * churn defeats prepared-data caching. Behavior stays correct; this is
10
+ * diagnostic only. A single/occasional replacement (e.g. locale change)
11
+ * must not warn. No deep-compare or clone is performed.
12
+ */
13
+ export declare const useDataIdentityStabilityWarning: (emojiData: EmojiData | undefined, customEmojis: CustomEmoji[] | undefined) => void;
@@ -1 +1 @@
1
- export declare function useDebouncedState<T>(initialValue: T, delay?: number): [T, (value: T) => Promise<T>];
1
+ export declare function useDebouncedState<T>(initialValue: T, delay?: number): [T, (value: T) => Promise<T>];
@@ -1,4 +1,4 @@
1
- export declare function useDisallowMouseMove(): () => void;
2
- export declare function useAllowMouseMove(): () => void;
3
- export declare function useIsMouseDisallowed(): () => boolean;
4
- export declare function useOnMouseMove(): void;
1
+ export declare function useDisallowMouseMove(): () => void;
2
+ export declare function useAllowMouseMove(): () => void;
3
+ export declare function useIsMouseDisallowed(): () => boolean;
4
+ export declare function useOnMouseMove(): void;
@@ -1,3 +1,2 @@
1
- import { DataEmoji } from '../dataUtils/DataTypes';
2
- export declare function useDisallowedEmojis(): Record<string, boolean>;
3
- export declare function useIsEmojiDisallowed(): (emoji: DataEmoji) => boolean;
1
+ import { DataEmoji } from '../dataUtils/DataTypes';
2
+ export declare function useIsEmojiDisallowed(): (emoji: DataEmoji, renderedUnified?: string) => boolean;
@@ -1,3 +1,3 @@
1
- import * as React from 'react';
2
- import { PreviewEmoji } from '../components/footer/Preview';
3
- export declare function useEmojiPreviewEvents(allow: boolean, setPreviewEmoji: React.Dispatch<React.SetStateAction<PreviewEmoji>>): void;
1
+ import * as React from 'react';
2
+ import { ActiveEmojiState } from '../components/context/PickerContext';
3
+ export declare function useEmojiPreviewEvents(focusOnHover: boolean, setPreviewEmoji: React.Dispatch<React.SetStateAction<ActiveEmojiState>>): void;
@@ -1,17 +1,21 @@
1
- import { ReactNode } from 'react';
2
- import { DataEmojis } from '../dataUtils/DataTypes';
3
- export declare function useEmojiVirtualization({ categoryEmojis, topOffset, onHeightReady, scrollTop, isCategoryVisible, }: {
4
- categoryEmojis: DataEmojis;
5
- topOffset: number;
6
- onHeightReady: (height: number) => void;
7
- scrollTop: number;
8
- isCategoryVisible: boolean;
9
- }): {
10
- virtualizedCounter: number;
11
- emojis: ReactNode[];
12
- dimensions: {
13
- categoryHeight: number;
14
- emojisPerRow: number;
15
- emojiSize: number;
16
- } | undefined;
17
- };
1
+ import { ReactNode } from 'react';
2
+ import { DataEmojis } from '../dataUtils/DataTypes';
3
+ export declare function useEmojiVirtualization({ categoryEmojis, topOffset, onHeightReady, scrollTop, isCategoryVisible, positioned, }: {
4
+ categoryEmojis: DataEmojis;
5
+ topOffset: number;
6
+ onHeightReady: (height: number) => void;
7
+ scrollTop: number;
8
+ isCategoryVisible: boolean;
9
+ /** Whether topOffset is final; unmeasured sections above shift it. */
10
+ positioned: boolean;
11
+ }): {
12
+ virtualizedCounter: number;
13
+ emojis: ReactNode[];
14
+ dimensions: {
15
+ categoryHeight: number;
16
+ emojisPerRow: number;
17
+ emojiSize: number;
18
+ rowWidth: number;
19
+ } | undefined;
20
+ emojiCount: number;
21
+ };