emoji-picker-react 4.0.0-rc.19 → 4.0.0-rc.21

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 (82) hide show
  1. package/README.md +44 -4
  2. package/dist/DomUtils/classNames.d.ts +6 -1
  3. package/dist/DomUtils/elementPositionInRow.d.ts +10 -0
  4. package/dist/DomUtils/emojiElementRef.d.ts +4 -3
  5. package/dist/DomUtils/focusElement.d.ts +5 -0
  6. package/dist/DomUtils/getActiveElement.d.ts +2 -0
  7. package/dist/DomUtils/keyboardNavigation.d.ts +8 -0
  8. package/dist/DomUtils/scrollCategoryIntoView.d.ts +2 -1
  9. package/dist/DomUtils/scrollTo.d.ts +3 -1
  10. package/dist/DomUtils/selectors.d.ts +23 -11
  11. package/dist/components/context/ElementRefContext.d.ts +9 -13
  12. package/dist/components/context/PickerContext.d.ts +1 -1
  13. package/dist/components/emoji/Emoji.d.ts +2 -2
  14. package/dist/components/footer/Preview.d.ts +1 -1
  15. package/dist/config/config.d.ts +12 -15
  16. package/dist/config/useConfig.d.ts +2 -1
  17. package/dist/dataUtils/emojiSelectors.d.ts +2 -2
  18. package/dist/emoji-picker-react.cjs.development.css +7 -7
  19. package/dist/emoji-picker-react.cjs.development.js +1119 -302
  20. package/dist/emoji-picker-react.cjs.development.js.map +1 -1
  21. package/dist/emoji-picker-react.cjs.production.min.js +1 -1
  22. package/dist/emoji-picker-react.cjs.production.min.js.map +1 -1
  23. package/dist/emoji-picker-react.esm.js +1129 -312
  24. package/dist/emoji-picker-react.esm.js.map +1 -1
  25. package/dist/hooks/useCloseAllOpenToggles.d.ts +1 -4
  26. package/dist/hooks/useDebouncedState.d.ts +1 -1
  27. package/dist/hooks/useEmojiPreviewEvents.d.ts +3 -0
  28. package/dist/hooks/useFilter.d.ts +3 -3
  29. package/dist/hooks/useFocus.d.ts +3 -0
  30. package/dist/hooks/useInitialLoad.d.ts +1 -1
  31. package/dist/hooks/useKeyboardNavigation.d.ts +1 -0
  32. package/dist/hooks/useMouseDownHandlers.d.ts +3 -2
  33. package/package.json +7 -4
  34. package/src/DomUtils/classNames.ts +9 -1
  35. package/src/DomUtils/elementPositionInRow.ts +169 -0
  36. package/src/DomUtils/emojiElementRef.ts +4 -3
  37. package/src/DomUtils/focusElement.ts +35 -0
  38. package/src/DomUtils/getActiveElement.ts +5 -0
  39. package/src/DomUtils/keyboardNavigation.ts +159 -0
  40. package/src/DomUtils/scrollCategoryIntoView.ts +2 -1
  41. package/src/DomUtils/scrollTo.ts +22 -1
  42. package/src/DomUtils/selectors.ts +157 -32
  43. package/src/EmojiPickerReact.css +57 -29
  44. package/src/components/ErrorBoundary.tsx +1 -0
  45. package/src/components/body/EmojiCategory.css +14 -20
  46. package/src/components/body/EmojiCategory.tsx +3 -3
  47. package/src/components/body/EmojiList.tsx +8 -7
  48. package/src/components/body/EmojiVariationPicker.tsx +3 -3
  49. package/src/components/body/Suggested.tsx +3 -1
  50. package/src/components/context/ElementRefContext.tsx +46 -19
  51. package/src/components/context/PickerContext.tsx +16 -14
  52. package/src/components/emoji/Emoji.css +7 -2
  53. package/src/components/emoji/Emoji.tsx +10 -10
  54. package/src/components/footer/Preview.css +1 -1
  55. package/src/components/footer/Preview.tsx +13 -16
  56. package/src/components/header/Search.css +7 -7
  57. package/src/components/header/Search.tsx +6 -4
  58. package/src/components/header/SkinTonePicker.css +12 -5
  59. package/src/components/header/SkinTonePicker.tsx +11 -3
  60. package/src/components/main/PickerMain.tsx +6 -2
  61. package/src/components/navigation/CategoryNavigation.css +11 -0
  62. package/src/components/navigation/CategoryNavigation.tsx +5 -2
  63. package/src/config/config.ts +39 -10
  64. package/src/config/useConfig.ts +6 -5
  65. package/src/dataUtils/emojiSelectors.ts +3 -2
  66. package/src/dataUtils/suggested.ts +1 -0
  67. package/src/hooks/preloadEmoji.ts +1 -1
  68. package/src/hooks/useActiveCategoryScrollDetection.ts +7 -4
  69. package/src/hooks/useCloseAllOpenToggles.ts +7 -5
  70. package/src/hooks/useDebouncedState.ts +10 -7
  71. package/src/hooks/useEmojiPreviewEvents.ts +90 -0
  72. package/src/hooks/useFilter.ts +41 -21
  73. package/src/hooks/useFocus.ts +40 -0
  74. package/src/hooks/useInitialLoad.ts +1 -0
  75. package/src/hooks/useKeyboardNavigation.ts +389 -0
  76. package/src/hooks/useMouseDownHandlers.ts +100 -74
  77. package/src/hooks/useOnScroll.ts +2 -2
  78. package/src/index.tsx +3 -1
  79. package/dist/hooks/useEmojiElements.d.ts +0 -1
  80. package/dist/hooks/useEmojiMouseEnter.d.ts +0 -3
  81. package/src/hooks/useEmojiElements.ts +0 -7
  82. package/src/hooks/useEmojiMouseEnter.ts +0 -59
@@ -1,4 +1,4 @@
1
- import { createElement, createContext, useContext, useState, useRef, useEffect, createRef, useCallback, useMemo, Fragment, Component } from 'react';
1
+ import { useRef, createElement, createContext, createRef, useContext, useCallback, useState, useEffect, useMemo, Fragment, Component } from 'react';
2
2
  import clsx from 'clsx';
3
3
 
4
4
  function _extends() {
@@ -92,6 +92,131 @@ function categoryNameFromDom($category) {
92
92
  return (_$category$getAttribu = $category == null ? void 0 : $category.getAttribute('data-name')) != null ? _$category$getAttribu : null;
93
93
  }
94
94
 
95
+ var ClassNames;
96
+
97
+ (function (ClassNames) {
98
+ ClassNames["hiddenOnSearch"] = "epr-hidden-on-search";
99
+ ClassNames["searchActive"] = "epr-search-active";
100
+ ClassNames["hidden"] = "epr-hidden";
101
+ ClassNames["visible"] = "epr-visible";
102
+ ClassNames["active"] = "epr-active";
103
+ ClassNames["emoji"] = "epr-emoji";
104
+ ClassNames["category"] = "epr-emoji-category";
105
+ ClassNames["label"] = "epr-emoji-category-label";
106
+ })(ClassNames || (ClassNames = {}));
107
+
108
+ function asSelectors() {
109
+ for (var _len = arguments.length, classNames = new Array(_len), _key = 0; _key < _len; _key++) {
110
+ classNames[_key] = arguments[_key];
111
+ }
112
+
113
+ return classNames.map(function (c) {
114
+ return "." + c;
115
+ }).join('');
116
+ }
117
+
118
+ function ElementRefContextProvider(_ref) {
119
+ var children = _ref.children;
120
+ var PickerMainRef = useRef(null);
121
+ var AnchoredEmojiRef = useRef(null);
122
+ var BodyRef = useRef(null);
123
+ var SearchInputRef = useRef(null);
124
+ var SkinTonePickerRef = useRef(null);
125
+ var CategoryNavigationRef = useRef(null);
126
+ return createElement(ElementRefContext.Provider, {
127
+ value: {
128
+ AnchoredEmojiRef: AnchoredEmojiRef,
129
+ BodyRef: BodyRef,
130
+ CategoryNavigationRef: CategoryNavigationRef,
131
+ PickerMainRef: PickerMainRef,
132
+ SearchInputRef: SearchInputRef,
133
+ SkinTonePickerRef: SkinTonePickerRef
134
+ }
135
+ }, children);
136
+ }
137
+ var ElementRefContext = /*#__PURE__*/createContext({
138
+ AnchoredEmojiRef: /*#__PURE__*/createRef(),
139
+ BodyRef: /*#__PURE__*/createRef(),
140
+ CategoryNavigationRef: /*#__PURE__*/createRef(),
141
+ PickerMainRef: /*#__PURE__*/createRef(),
142
+ SearchInputRef: /*#__PURE__*/createRef(),
143
+ SkinTonePickerRef: /*#__PURE__*/createRef()
144
+ });
145
+
146
+ function useElementRef() {
147
+ return useContext(ElementRefContext);
148
+ }
149
+
150
+ function usePickerMainRef() {
151
+ return useElementRef()['PickerMainRef'];
152
+ }
153
+ function useAnchoredEmojiRef() {
154
+ return useElementRef()['AnchoredEmojiRef'];
155
+ }
156
+ function useSetAnchoredEmojiRef() {
157
+ var AnchoredEmojiRef = useAnchoredEmojiRef();
158
+ return function (target) {
159
+ AnchoredEmojiRef.current = target;
160
+ };
161
+ }
162
+ function useBodyRef() {
163
+ return useElementRef()['BodyRef'];
164
+ }
165
+ function useSearchInputRef() {
166
+ return useElementRef()['SearchInputRef'];
167
+ }
168
+ function useSkinTonePickerRef() {
169
+ return useElementRef()['SkinTonePickerRef'];
170
+ }
171
+ function useCategoryNavigationRef() {
172
+ return useElementRef()['CategoryNavigationRef'];
173
+ }
174
+
175
+ function scrollTo(root, top) {
176
+ if (top === void 0) {
177
+ top = 0;
178
+ }
179
+
180
+ var $eprBody = root ? root.querySelector('.epr-body') : null;
181
+
182
+ if (!root || !$eprBody) {
183
+ return;
184
+ }
185
+
186
+ requestAnimationFrame(function () {
187
+ $eprBody.scrollTop = top + 1;
188
+ });
189
+ }
190
+ function useScrollTo() {
191
+ var BodyRef = useBodyRef();
192
+ return useCallback(function (top) {
193
+ requestAnimationFrame(function () {
194
+ if (BodyRef.current) {
195
+ BodyRef.current.scrollTop = top;
196
+ }
197
+ });
198
+ }, [BodyRef]);
199
+ }
200
+
201
+ function scrollCategoryIntoView(root, category) {
202
+ var $category = root == null ? void 0 : root.querySelector("[data-name=\"" + category + "\"]");
203
+
204
+ if (!$category) {
205
+ return;
206
+ }
207
+
208
+ var offsetTop = $category.offsetTop || 0;
209
+ scrollTo(root, offsetTop);
210
+ }
211
+
212
+ function isSystemDarkTheme() {
213
+ if (typeof window === 'undefined') {
214
+ return false;
215
+ }
216
+
217
+ return !!window.matchMedia('(prefers-color-scheme: dark)').matches;
218
+ }
219
+
95
220
  var SuggestionMode;
96
221
 
97
222
  (function (SuggestionMode) {
@@ -228,17 +353,21 @@ function getBaseConfigByCategory(category, modifier) {
228
353
  }
229
354
 
230
355
  function mergeConfig(userConfig) {
356
+ var _userConfig$previewCo;
357
+
231
358
  if (userConfig === void 0) {
232
359
  userConfig = {};
233
360
  }
234
361
 
235
- var config = _extends({}, basePickerConfig(), userConfig);
236
-
362
+ var base = basePickerConfig();
363
+ var previewConfig = Object.assign(base.previewConfig, (_userConfig$previewCo = userConfig.previewConfig) != null ? _userConfig$previewCo : {});
364
+ var config = Object.assign(base, userConfig);
237
365
  var categories = mergeCategoriesConfig(userConfig.categories, {
238
366
  suggestionMode: config.suggestedEmojisMode
239
367
  });
240
368
  return _extends({}, config, {
241
- categories: categories
369
+ categories: categories,
370
+ previewConfig: previewConfig
242
371
  });
243
372
  }
244
373
  function basePickerConfig() {
@@ -247,17 +376,24 @@ function basePickerConfig() {
247
376
  categories: baseCategoriesConfig(),
248
377
  defaultSkinTone: SkinTones.NEUTRAL,
249
378
  emojiStyle: EmojiStyle.APPLE,
379
+ lazyLoadEmojis: false,
250
380
  onEmojiClick: function defaultOnClickHandler( // @ts-ignore
381
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
251
382
  emoji, // @ts-ignore
383
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
252
384
  event) {},
385
+ previewConfig: _extends({}, basePreviewConfig),
253
386
  searchPlaceHolder: 'Search',
254
- showPreview: true,
255
387
  skinTonesDisabled: false,
256
- theme: Theme.LIGHT,
257
388
  suggestedEmojisMode: SuggestionMode.FREQUENT,
258
- lazyLoadEmojis: false
389
+ theme: Theme.LIGHT
259
390
  };
260
391
  }
392
+ var basePreviewConfig = {
393
+ defaultEmoji: '1f60a',
394
+ defaultCaption: "What's your mood?",
395
+ showPreview: true
396
+ };
261
397
 
262
398
  var _excluded = ["children"];
263
399
  var ConfigContext = /*#__PURE__*/createContext( /*#__PURE__*/basePickerConfig());
@@ -273,14 +409,6 @@ function usePickerConfig() {
273
409
  return useContext(ConfigContext);
274
410
  }
275
411
 
276
- function isSystemDarkTheme() {
277
- if (typeof window === 'undefined') {
278
- return false;
279
- }
280
-
281
- return !!window.matchMedia('(prefers-color-scheme: dark)').matches;
282
- }
283
-
284
412
  function useSearchPlaceHolderConfig() {
285
413
  var _usePickerConfig = usePickerConfig(),
286
414
  searchPlaceHolder = _usePickerConfig.searchPlaceHolder;
@@ -323,11 +451,11 @@ function useOnEmojiClickConfig() {
323
451
 
324
452
  return onEmojiClick;
325
453
  }
326
- function useShowPreviewConfig() {
454
+ function usePreviewConfig() {
327
455
  var _usePickerConfig8 = usePickerConfig(),
328
- showPreview = _usePickerConfig8.showPreview;
456
+ previewConfig = _usePickerConfig8.previewConfig;
329
457
 
330
- return showPreview;
458
+ return previewConfig;
331
459
  }
332
460
  function useThemeConfig() {
333
461
  var _usePickerConfig9 = usePickerConfig(),
@@ -14948,33 +15076,6 @@ setTimeout(function () {
14948
15076
  }, alphaNumericEmojiIndex);
14949
15077
  });
14950
15078
 
14951
- function scrollTo(root, top) {
14952
- if (top === void 0) {
14953
- top = 0;
14954
- }
14955
-
14956
- var $eprBody = root ? root.querySelector('.epr-body') : null;
14957
-
14958
- if (!root || !$eprBody) {
14959
- return;
14960
- }
14961
-
14962
- requestAnimationFrame(function () {
14963
- $eprBody.scrollTop = top + 1;
14964
- });
14965
- }
14966
-
14967
- function scrollCategoryIntoView(root, category) {
14968
- var $category = root == null ? void 0 : root.querySelector("[data-name=\"" + category + "\"]");
14969
-
14970
- if (!$category) {
14971
- return;
14972
- }
14973
-
14974
- var offsetTop = $category.offsetTop || 0;
14975
- scrollTo(root, offsetTop);
14976
- }
14977
-
14978
15079
  function useDebouncedState(initialValue, delay) {
14979
15080
  if (delay === void 0) {
14980
15081
  delay = 0;
@@ -14987,15 +15088,18 @@ function useDebouncedState(initialValue, delay) {
14987
15088
  var timer = useRef(null);
14988
15089
 
14989
15090
  function debouncedSetState(value) {
14990
- var _window;
15091
+ return new Promise(function (resolve) {
15092
+ var _window;
14991
15093
 
14992
- if (timer.current) {
14993
- clearTimeout(timer.current);
14994
- }
15094
+ if (timer.current) {
15095
+ clearTimeout(timer.current);
15096
+ }
14995
15097
 
14996
- timer.current = (_window = window) == null ? void 0 : _window.setTimeout(function () {
14997
- setState(value);
14998
- }, delay);
15098
+ timer.current = (_window = window) == null ? void 0 : _window.setTimeout(function () {
15099
+ setState(value);
15100
+ resolve(value);
15101
+ }, delay);
15102
+ });
14999
15103
  }
15000
15104
 
15001
15105
  return [state, debouncedSetState];
@@ -15007,53 +15111,13 @@ function useMarkInitialLoad(dispatch) {
15007
15111
  }, [dispatch]);
15008
15112
  }
15009
15113
 
15010
- function ElementRefContextProvider(_ref) {
15011
- var children = _ref.children;
15012
- var PickerMainRef = useRef(null);
15013
- var AnchoredEmojiRef = useRef(null);
15014
- var BodyRef = useRef(null);
15015
- return createElement(ElementRefContext.Provider, {
15016
- value: {
15017
- PickerMainRef: PickerMainRef,
15018
- AnchoredEmojiRef: AnchoredEmojiRef,
15019
- BodyRef: BodyRef
15020
- }
15021
- }, children);
15022
- }
15023
- var ElementRefContext = /*#__PURE__*/createContext({
15024
- PickerMainRef: /*#__PURE__*/createRef(),
15025
- AnchoredEmojiRef: /*#__PURE__*/createRef(),
15026
- BodyRef: /*#__PURE__*/createRef()
15027
- });
15028
- function useElementRef(key) {
15029
- var _React$useContext = useContext(ElementRefContext),
15030
- elementRef = _React$useContext[key];
15031
-
15032
- return elementRef;
15033
- }
15034
- function usePickerMainRef() {
15035
- return useElementRef('PickerMainRef');
15036
- }
15037
- function useAnchoredEmojiRef() {
15038
- return useElementRef('AnchoredEmojiRef');
15039
- }
15040
- function useSetAnchoredEmojiRef() {
15041
- var AnchoredEmojiRef = useAnchoredEmojiRef();
15042
- return function (target) {
15043
- AnchoredEmojiRef.current = target;
15044
- };
15045
- }
15046
- function useBodyRef() {
15047
- return useElementRef('BodyRef');
15048
- }
15049
-
15050
15114
  function PickerContextProvider(_ref) {
15051
15115
  var children = _ref.children;
15052
15116
  var defaultSkinTone = useDefaultSkinToneConfig(); // Initialize the filter with the inititial dictionary
15053
15117
 
15054
15118
  var filterRef = useRef(alphaNumericEmojiIndex);
15055
15119
  var disallowClickRef = useRef(false);
15056
- var suggestedUpdateState = useDebouncedState(Date.now(), 250);
15120
+ var suggestedUpdateState = useDebouncedState(Date.now(), 200);
15057
15121
  var searchTerm = useDebouncedState('', 100);
15058
15122
  var skinToneFanOpenState = useState(false);
15059
15123
  var activeSkinTone = useState(defaultSkinTone);
@@ -15068,34 +15132,38 @@ function PickerContextProvider(_ref) {
15068
15132
  useMarkInitialLoad(setIsPastInitialLoad);
15069
15133
  return createElement(PickerContext.Provider, {
15070
15134
  value: {
15071
- suggestedUpdateState: suggestedUpdateState,
15072
- filterRef: filterRef,
15073
- searchTerm: searchTerm,
15074
15135
  activeCategoryState: activeCategoryState,
15075
15136
  activeSkinTone: activeSkinTone,
15137
+ disallowClickRef: disallowClickRef,
15138
+ emojiVariationPickerState: emojiVariationPickerState,
15076
15139
  emojisThatFailedToLoadState: emojisThatFailedToLoadState,
15140
+ filterRef: filterRef,
15077
15141
  isPastInitialLoad: isPastInitialLoad,
15078
- emojiVariationPickerState: emojiVariationPickerState,
15142
+ searchTerm: searchTerm,
15079
15143
  skinToneFanOpenState: skinToneFanOpenState,
15080
- disallowClickRef: disallowClickRef
15144
+ suggestedUpdateState: suggestedUpdateState
15081
15145
  }
15082
15146
  }, children);
15083
15147
  }
15084
15148
  var PickerContext = /*#__PURE__*/createContext({
15085
- suggestedUpdateState: [/*#__PURE__*/Date.now(), function () {}],
15086
- searchTerm: ['', function () {}],
15087
15149
  activeCategoryState: [null, function () {}],
15088
15150
  activeSkinTone: [SkinTones.NEUTRAL, function () {}],
15089
- emojisThatFailedToLoadState: [/*#__PURE__*/new Set(), function () {}],
15090
- isPastInitialLoad: true,
15151
+ disallowClickRef: {
15152
+ current: false
15153
+ },
15091
15154
  emojiVariationPickerState: [null, function () {}],
15092
- skinToneFanOpenState: [false, function () {}],
15155
+ emojisThatFailedToLoadState: [/*#__PURE__*/new Set(), function () {}],
15093
15156
  filterRef: {
15094
15157
  current: {}
15095
15158
  },
15096
- disallowClickRef: {
15097
- current: false
15098
- }
15159
+ isPastInitialLoad: true,
15160
+ searchTerm: ['', function () {
15161
+ return new Promise(function () {
15162
+ return undefined;
15163
+ });
15164
+ }],
15165
+ skinToneFanOpenState: [false, function () {}],
15166
+ suggestedUpdateState: [/*#__PURE__*/Date.now(), function () {}]
15099
15167
  });
15100
15168
  function useFilterRef() {
15101
15169
  var _React$useContext = useContext(PickerContext),
@@ -15217,16 +15285,113 @@ function useActiveCategoryScrollDetection(bodyRef) {
15217
15285
  }, {
15218
15286
  threshold: [0, 1]
15219
15287
  });
15220
- (_bodyRef$current = bodyRef.current) == null ? void 0 : _bodyRef$current.querySelectorAll('.epr-emoji-category').forEach(function (el) {
15288
+ (_bodyRef$current = bodyRef.current) == null ? void 0 : _bodyRef$current.querySelectorAll(asSelectors(ClassNames.category)).forEach(function (el) {
15221
15289
  observer.observe(el);
15222
15290
  });
15223
- }, [bodyRef]);
15291
+ }, [bodyRef, setActiveCategory]);
15292
+ }
15293
+
15294
+ function elementCountInRow(parent, element) {
15295
+ if (!parent || !element) {
15296
+ return 0;
15297
+ }
15298
+
15299
+ var parentWidth = parent.getBoundingClientRect().width;
15300
+ var elementWidth = element.getBoundingClientRect().width;
15301
+ return Math.floor(parentWidth / elementWidth);
15302
+ }
15303
+ function elementIndexInRow(parent, element) {
15304
+ if (!parent || !element) {
15305
+ return 0;
15306
+ }
15307
+
15308
+ var elementWidth = element.getBoundingClientRect().width;
15309
+ var elementLeft = element.getBoundingClientRect().left;
15310
+ var parentLeft = parent.getBoundingClientRect().left;
15311
+ return Math.floor((elementLeft - parentLeft) / elementWidth);
15312
+ }
15313
+ function rowNumber(parent, element) {
15314
+ if (!parent || !element) {
15315
+ return 0;
15316
+ }
15317
+
15318
+ var elementHeight = element.getBoundingClientRect().height;
15319
+ var elementTop = element.getBoundingClientRect().top;
15320
+ var parentTop = parent.getBoundingClientRect().top;
15321
+ return Math.floor((elementTop - parentTop) / elementHeight) - 1;
15322
+ }
15323
+ function hasNextRow(parent, element) {
15324
+ if (!parent || !element) {
15325
+ return false;
15326
+ }
15327
+
15328
+ var elementHeight = element.getBoundingClientRect().height;
15329
+ var elementTop = element.getBoundingClientRect().top;
15330
+ var parentTop = parent.getBoundingClientRect().top;
15331
+ var parentHeight = parent.getBoundingClientRect().height;
15332
+ return elementTop - parentTop + elementHeight < parentHeight;
15333
+ }
15334
+
15335
+ function getRowElements(elements, row, elementsInRow) {
15336
+ if (row === -1) {
15337
+ var lastRow = Math.floor(elements.length / elementsInRow);
15338
+ var firstElementIndex = lastRow * elementsInRow;
15339
+ var lastElementIndex = elements.length - 1;
15340
+ return elements.slice(firstElementIndex, lastElementIndex + 1);
15341
+ }
15342
+
15343
+ return elements.slice(row * elementsInRow, (row + 1) * elementsInRow);
15344
+ }
15345
+
15346
+ function getNextRowElements(allElements, currentRow, elementsInRow) {
15347
+ var nextRow = currentRow + 1;
15348
+
15349
+ if (nextRow * elementsInRow > allElements.length) {
15350
+ return [];
15351
+ }
15352
+
15353
+ return getRowElements(allElements, nextRow, elementsInRow);
15354
+ }
15355
+
15356
+ function getElementInRow(elements, row, elementsInRow, indexInRow) {
15357
+ var rowElements = getRowElements(elements, row, elementsInRow); // get element, default to last
15358
+
15359
+ return rowElements[indexInRow] || rowElements[rowElements.length - 1] || null;
15224
15360
  }
15361
+ function getElementInNextRow(allElements, currentRow, elementsInRow, index) {
15362
+ var nextRowElements = getNextRowElements(allElements, currentRow, elementsInRow); // return item in index, or last item in row
15225
15363
 
15226
- function buttonFromEmoji(emojiElement) {
15364
+ return nextRowElements[index] || nextRowElements[nextRowElements.length - 1] || null;
15365
+ }
15366
+ function getElementInPrevRow(allElements, currentRow, elementsInRow, index) {
15367
+ var prevRowElements = getRowElements(allElements, currentRow - 1, elementsInRow); // default to last
15368
+
15369
+ return prevRowElements[index] || prevRowElements[prevRowElements.length - 1] || null;
15370
+ }
15371
+ function firstVisibleElementInContainer(parent, elements) {
15372
+ if (!parent || !elements.length) {
15373
+ return null;
15374
+ }
15375
+
15376
+ var parentTop = parent.getBoundingClientRect().top;
15377
+ var parentBottom = parent.getBoundingClientRect().bottom;
15378
+ var visibleElements = elements.find(function (element) {
15379
+ var elementTop = element.getBoundingClientRect().top;
15380
+ var elementBottom = element.getBoundingClientRect().bottom;
15381
+ return elementTop >= parentTop && elementTop <= parentBottom || elementBottom >= parentTop && elementBottom <= parentBottom;
15382
+ });
15383
+ return visibleElements || null;
15384
+ }
15385
+ function hasNextElementSibling(element) {
15386
+ return !!element.nextElementSibling;
15387
+ }
15388
+
15389
+ var EmojiButtonSelector = "button" + /*#__PURE__*/asSelectors(ClassNames.emoji);
15390
+ var VisibleEmojiSelector = /*#__PURE__*/[EmojiButtonSelector, asSelectors(ClassNames.visible), ":not(" + asSelectors(ClassNames.hidden) + ")"].join('');
15391
+ function buttonFromTarget(emojiElement) {
15227
15392
  var _emojiElement$closest;
15228
15393
 
15229
- return (_emojiElement$closest = emojiElement == null ? void 0 : emojiElement.closest('button.epr-emoji')) != null ? _emojiElement$closest : null;
15394
+ return (_emojiElement$closest = emojiElement == null ? void 0 : emojiElement.closest(EmojiButtonSelector)) != null ? _emojiElement$closest : null;
15230
15395
  }
15231
15396
  function emojiFromElement(element) {
15232
15397
  var originalUnified = originalUnifiedFromEmojiElement(element);
@@ -15247,12 +15412,7 @@ function emojiFromElement(element) {
15247
15412
  function isEmojiElement(element) {
15248
15413
  var _element$parentElemen;
15249
15414
 
15250
- return Boolean((element == null ? void 0 : element.matches('button.epr-emoji')) || (element == null ? void 0 : (_element$parentElemen = element.parentElement) == null ? void 0 : _element$parentElemen.matches('button.epr-emoji')));
15251
- }
15252
- function closestCategory(element) {
15253
- var _element$closest;
15254
-
15255
- return (_element$closest = element == null ? void 0 : element.closest('.epr-emoji-category')) != null ? _element$closest : null;
15415
+ return Boolean((element == null ? void 0 : element.matches(EmojiButtonSelector)) || (element == null ? void 0 : (_element$parentElemen = element.parentElement) == null ? void 0 : _element$parentElemen.matches(EmojiButtonSelector)));
15256
15416
  }
15257
15417
  function elementHeight(element) {
15258
15418
  var _element$clientHeight;
@@ -15260,12 +15420,12 @@ function elementHeight(element) {
15260
15420
  return (_element$clientHeight = element == null ? void 0 : element.clientHeight) != null ? _element$clientHeight : 0;
15261
15421
  }
15262
15422
  function emojiTrueOffsetTop(element) {
15263
- var button = buttonFromEmoji(element);
15423
+ var button = buttonFromTarget(element);
15264
15424
  var category = closestCategory(button);
15265
15425
  return elementOffsetTop(button) + elementOffsetTop(category);
15266
15426
  }
15267
15427
  function emojiTruOffsetLeft(element) {
15268
- var button = buttonFromEmoji(element);
15428
+ var button = buttonFromTarget(element);
15269
15429
  var category = closestCategory(button);
15270
15430
  return elementOffsetLeft(button) + elementOffsetLeft(category);
15271
15431
  }
@@ -15285,7 +15445,7 @@ function elementOffsetLeft(element) {
15285
15445
  function unifiedFromEmojiElement(emoji) {
15286
15446
  var _elementDataSetKey;
15287
15447
 
15288
- return (_elementDataSetKey = elementDataSetKey(buttonFromEmoji(emoji), 'unified')) != null ? _elementDataSetKey : null;
15448
+ return (_elementDataSetKey = elementDataSetKey(buttonFromTarget(emoji), 'unified')) != null ? _elementDataSetKey : null;
15289
15449
  }
15290
15450
  function originalUnifiedFromEmojiElement(emoji) {
15291
15451
  var unified = unifiedFromEmojiElement(emoji);
@@ -15309,45 +15469,156 @@ function elementDataSet(element) {
15309
15469
  return (_element$dataset = element == null ? void 0 : element.dataset) != null ? _element$dataset : {};
15310
15470
  }
15311
15471
 
15312
- function parseNativeEmoji(unified) {
15313
- return unified.split('-').map(function (hex) {
15314
- return String.fromCodePoint(parseInt(hex, 16));
15315
- }).join('');
15472
+ function isVisibleEmoji(element) {
15473
+ return element.classList.contains(ClassNames.visible);
15316
15474
  }
15317
-
15318
- var SUGGESTED_LS_KEY = 'epr_suggested';
15319
- function getsuggested(mode) {
15320
- var _window;
15321
-
15322
- if (!((_window = window) != null && _window.localStorage)) {
15475
+ function isHidden(element) {
15476
+ if (!element) return true;
15477
+ return element.classList.contains(ClassNames.hidden);
15478
+ }
15479
+ function allVisibleEmojis(parent) {
15480
+ if (!parent) {
15323
15481
  return [];
15324
15482
  }
15325
15483
 
15326
- try {
15327
- var _window$localStorage$, _window2;
15484
+ return Array.from(parent.querySelectorAll(VisibleEmojiSelector));
15485
+ }
15486
+ function lastVisibleEmoji(element) {
15487
+ if (!element) return null;
15488
+ var allEmojis = allVisibleEmojis(element);
15328
15489
 
15329
- var recent = JSON.parse((_window$localStorage$ = (_window2 = window) == null ? void 0 : _window2.localStorage.getItem(SUGGESTED_LS_KEY)) != null ? _window$localStorage$ : '[]');
15490
+ var _allEmojis$slice = allEmojis.slice(-1),
15491
+ last = _allEmojis$slice[0];
15330
15492
 
15331
- if (mode === SuggestionMode.FREQUENT) {
15332
- return recent.sort(function (a, b) {
15333
- return b.count - a.count;
15334
- });
15335
- }
15493
+ if (!last) {
15494
+ return null;
15495
+ }
15336
15496
 
15337
- return recent;
15338
- } catch (_unused) {
15339
- return [];
15497
+ if (!isVisibleEmoji(last)) {
15498
+ return prevVisibleEmoji(last);
15340
15499
  }
15500
+
15501
+ return last;
15341
15502
  }
15342
- function setsuggested(emoji, skinTone) {
15343
- var recent = getsuggested();
15344
- var unified = emojiUnified(emoji, skinTone);
15345
- var originalUnified = emojiUnified(emoji);
15346
- var existing = recent.find(function (_ref) {
15347
- var u = _ref.unified;
15348
- return u === unified;
15349
- });
15350
- var nextList;
15503
+ function nextVisibleEmoji(element) {
15504
+ var next = element.nextElementSibling;
15505
+
15506
+ if (!next) {
15507
+ return firstVisibleEmoji(nextCategory(element));
15508
+ }
15509
+
15510
+ if (!isVisibleEmoji(next)) {
15511
+ return nextVisibleEmoji(next);
15512
+ }
15513
+
15514
+ return next;
15515
+ }
15516
+ function prevVisibleEmoji(element) {
15517
+ var prev = element.previousElementSibling;
15518
+
15519
+ if (!prev) {
15520
+ return lastVisibleEmoji(prevCategory(element));
15521
+ }
15522
+
15523
+ if (!isVisibleEmoji(prev)) {
15524
+ return prevVisibleEmoji(prev);
15525
+ }
15526
+
15527
+ return prev;
15528
+ }
15529
+ function firstVisibleEmoji(parent) {
15530
+ if (!parent) {
15531
+ return null;
15532
+ }
15533
+
15534
+ var allEmojis = allVisibleEmojis(parent);
15535
+ return firstVisibleElementInContainer(parent, allEmojis);
15536
+ }
15537
+ function prevCategory(element) {
15538
+ var category = closestCategory(element);
15539
+
15540
+ if (!category) {
15541
+ return null;
15542
+ }
15543
+
15544
+ var prev = category.previousElementSibling;
15545
+
15546
+ if (!prev) {
15547
+ return null;
15548
+ }
15549
+
15550
+ if (isHidden(prev)) {
15551
+ return prevCategory(prev);
15552
+ }
15553
+
15554
+ return prev;
15555
+ }
15556
+ function nextCategory(element) {
15557
+ var category = closestCategory(element);
15558
+
15559
+ if (!category) {
15560
+ return null;
15561
+ }
15562
+
15563
+ var next = category.nextElementSibling;
15564
+
15565
+ if (!next) {
15566
+ return null;
15567
+ }
15568
+
15569
+ if (isHidden(next)) {
15570
+ return nextCategory(next);
15571
+ }
15572
+
15573
+ return next;
15574
+ }
15575
+ function closestCategory(element) {
15576
+ if (!element) {
15577
+ return null;
15578
+ }
15579
+
15580
+ return element.closest(asSelectors(ClassNames.category));
15581
+ }
15582
+
15583
+ function parseNativeEmoji(unified) {
15584
+ return unified.split('-').map(function (hex) {
15585
+ return String.fromCodePoint(parseInt(hex, 16));
15586
+ }).join('');
15587
+ }
15588
+
15589
+ var SUGGESTED_LS_KEY = 'epr_suggested';
15590
+ function getsuggested(mode) {
15591
+ var _window;
15592
+
15593
+ if (!((_window = window) != null && _window.localStorage)) {
15594
+ return [];
15595
+ }
15596
+
15597
+ try {
15598
+ var _window$localStorage$, _window2;
15599
+
15600
+ var recent = JSON.parse((_window$localStorage$ = (_window2 = window) == null ? void 0 : _window2.localStorage.getItem(SUGGESTED_LS_KEY)) != null ? _window$localStorage$ : '[]');
15601
+
15602
+ if (mode === SuggestionMode.FREQUENT) {
15603
+ return recent.sort(function (a, b) {
15604
+ return b.count - a.count;
15605
+ });
15606
+ }
15607
+
15608
+ return recent;
15609
+ } catch (_unused) {
15610
+ return [];
15611
+ }
15612
+ }
15613
+ function setsuggested(emoji, skinTone) {
15614
+ var recent = getsuggested();
15615
+ var unified = emojiUnified(emoji, skinTone);
15616
+ var originalUnified = emojiUnified(emoji);
15617
+ var existing = recent.find(function (_ref) {
15618
+ var u = _ref.unified;
15619
+ return u === unified;
15620
+ });
15621
+ var nextList;
15351
15622
 
15352
15623
  if (existing) {
15353
15624
  nextList = [existing].concat(recent.filter(function (i) {
@@ -15373,30 +15644,6 @@ function setsuggested(emoji, skinTone) {
15373
15644
  }
15374
15645
  }
15375
15646
 
15376
- function useCloseAllOpenToggles() {
15377
- var _useEmojiVariationPic = useEmojiVariationPickerState(),
15378
- variationPicker = _useEmojiVariationPic[0],
15379
- setVariationPicker = _useEmojiVariationPic[1];
15380
-
15381
- var _useSkinToneFanOpenSt = useSkinToneFanOpenState(),
15382
- skinToneFanOpen = _useSkinToneFanOpenSt[0],
15383
- setSkinToneFanOpen = _useSkinToneFanOpenSt[1];
15384
-
15385
- var closeAllOpenToggles = useCallback(function () {
15386
- if (variationPicker) {
15387
- setVariationPicker(null);
15388
- }
15389
-
15390
- if (skinToneFanOpen) {
15391
- setSkinToneFanOpen(false);
15392
- }
15393
- }, [[variationPicker, skinToneFanOpen]]);
15394
- return {
15395
- closeAllOpenToggles: closeAllOpenToggles,
15396
- dependencyArray: [variationPicker, skinToneFanOpen]
15397
- };
15398
- }
15399
-
15400
15647
  function preloadEmoji(emoji, emojiStyle) {
15401
15648
  var unified = emojiUnified(emoji);
15402
15649
 
@@ -15417,6 +15664,27 @@ function preloadImage(url) {
15417
15664
  image.src = url;
15418
15665
  }
15419
15666
 
15667
+ function useCloseAllOpenToggles() {
15668
+ var _useEmojiVariationPic = useEmojiVariationPickerState(),
15669
+ variationPicker = _useEmojiVariationPic[0],
15670
+ setVariationPicker = _useEmojiVariationPic[1];
15671
+
15672
+ var _useSkinToneFanOpenSt = useSkinToneFanOpenState(),
15673
+ skinToneFanOpen = _useSkinToneFanOpenSt[0],
15674
+ setSkinToneFanOpen = _useSkinToneFanOpenSt[1];
15675
+
15676
+ var closeAllOpenToggles = useCallback(function () {
15677
+ if (variationPicker) {
15678
+ setVariationPicker(null);
15679
+ }
15680
+
15681
+ if (skinToneFanOpen) {
15682
+ setSkinToneFanOpen(false);
15683
+ }
15684
+ }, [variationPicker, skinToneFanOpen, setVariationPicker, setSkinToneFanOpen]);
15685
+ return closeAllOpenToggles;
15686
+ }
15687
+
15420
15688
  var mouseDownTimer;
15421
15689
  function useMouseDownHandlers(BodyRef) {
15422
15690
  var preloading = useRef(false);
@@ -15426,9 +15694,7 @@ function useMouseDownHandlers(BodyRef) {
15426
15694
  var _useEmojiVariationPic = useEmojiVariationPickerState(),
15427
15695
  setEmojiVariationPicker = _useEmojiVariationPic[1];
15428
15696
 
15429
- var _useCloseAllOpenToggl = useCloseAllOpenToggles(),
15430
- closeAllOpenToggles = _useCloseAllOpenToggl.closeAllOpenToggles,
15431
- dependencyArray = _useCloseAllOpenToggl.dependencyArray;
15697
+ var closeAllOpenToggles = useCloseAllOpenToggles();
15432
15698
 
15433
15699
  var _useActiveSkinToneSta = useActiveSkinToneState(),
15434
15700
  activeSkinTone = _useActiveSkinToneSta[0];
@@ -15439,29 +15705,7 @@ function useMouseDownHandlers(BodyRef) {
15439
15705
  var _useUpdateSuggested = useUpdateSuggested(),
15440
15706
  updateSuggested = _useUpdateSuggested[1];
15441
15707
 
15442
- useEffect(function () {
15443
- if (!BodyRef.current) {
15444
- return;
15445
- }
15446
-
15447
- var bodyRef = BodyRef.current;
15448
- bodyRef.addEventListener('click', onClick, {
15449
- passive: true
15450
- });
15451
- bodyRef.addEventListener('mousedown', onMouseDown, {
15452
- passive: true
15453
- });
15454
- bodyRef.addEventListener('mouseup', onMouseUp, {
15455
- passive: true
15456
- });
15457
- return function () {
15458
- bodyRef == null ? void 0 : bodyRef.removeEventListener('click', onClick);
15459
- bodyRef == null ? void 0 : bodyRef.removeEventListener('mousedown', onMouseDown);
15460
- bodyRef == null ? void 0 : bodyRef.removeEventListener('mouseup', onMouseUp);
15461
- };
15462
- }, [BodyRef].concat(dependencyArray));
15463
-
15464
- function onClick(event) {
15708
+ var onClick = useCallback(function onClick(event) {
15465
15709
  if (disallowClickRef.current) {
15466
15710
  return;
15467
15711
  }
@@ -15480,9 +15724,8 @@ function useMouseDownHandlers(BodyRef) {
15480
15724
  updateSuggested();
15481
15725
  setsuggested(emoji, skinToneToUse);
15482
15726
  onEmojiClick(emojiClickOutput(emoji, skinToneToUse), event);
15483
- }
15484
-
15485
- function onMouseDown(event) {
15727
+ }, [activeSkinTone, closeAllOpenToggles, disallowClickRef, onEmojiClick, updateSuggested]);
15728
+ var onMouseDown = useCallback(function onMouseDown(event) {
15486
15729
  var _window, _window2;
15487
15730
 
15488
15731
  if (mouseDownTimer) {
@@ -15510,9 +15753,8 @@ function useMouseDownHandlers(BodyRef) {
15510
15753
  setAnchoredEmojiRef(event.target);
15511
15754
  setEmojiVariationPicker(emoji);
15512
15755
  }, 500);
15513
- }
15514
-
15515
- function onMouseUp() {
15756
+ }, [disallowClickRef, closeAllOpenToggles, setAnchoredEmojiRef, emojiStyle, setEmojiVariationPicker]);
15757
+ var onMouseUp = useCallback(function onMouseUp() {
15516
15758
  preloading.current = false;
15517
15759
 
15518
15760
  if (mouseDownTimer) {
@@ -15528,7 +15770,28 @@ function useMouseDownHandlers(BodyRef) {
15528
15770
  disallowClickRef.current = false;
15529
15771
  });
15530
15772
  }
15531
- }
15773
+ }, [disallowClickRef]);
15774
+ useEffect(function () {
15775
+ if (!BodyRef.current) {
15776
+ return;
15777
+ }
15778
+
15779
+ var bodyRef = BodyRef.current;
15780
+ bodyRef.addEventListener('click', onClick, {
15781
+ passive: true
15782
+ });
15783
+ bodyRef.addEventListener('mousedown', onMouseDown, {
15784
+ passive: true
15785
+ });
15786
+ bodyRef.addEventListener('mouseup', onMouseUp, {
15787
+ passive: true
15788
+ });
15789
+ return function () {
15790
+ bodyRef == null ? void 0 : bodyRef.removeEventListener('click', onClick);
15791
+ bodyRef == null ? void 0 : bodyRef.removeEventListener('mousedown', onMouseDown);
15792
+ bodyRef == null ? void 0 : bodyRef.removeEventListener('mouseup', onMouseUp);
15793
+ };
15794
+ }, [BodyRef, onClick, onMouseDown, onMouseUp]);
15532
15795
  }
15533
15796
 
15534
15797
  function emojiFromEvent(event) {
@@ -15556,10 +15819,7 @@ function emojiClickOutput(emoji, activeSkinTone) {
15556
15819
  }
15557
15820
 
15558
15821
  function useOnScroll(BodyRef) {
15559
- var _useCloseAllOpenToggl = useCloseAllOpenToggles(),
15560
- closeAllOpenToggles = _useCloseAllOpenToggl.closeAllOpenToggles,
15561
- dependencyArray = _useCloseAllOpenToggl.dependencyArray;
15562
-
15822
+ var closeAllOpenToggles = useCloseAllOpenToggles();
15563
15823
  useEffect(function () {
15564
15824
  var bodyRef = BodyRef.current;
15565
15825
 
@@ -15578,18 +15838,9 @@ function useOnScroll(BodyRef) {
15578
15838
  return function () {
15579
15839
  bodyRef == null ? void 0 : bodyRef.removeEventListener('scroll', onScroll);
15580
15840
  };
15581
- }, [].concat(dependencyArray, [BodyRef, closeAllOpenToggles]));
15841
+ }, [BodyRef, closeAllOpenToggles]);
15582
15842
  }
15583
15843
 
15584
- var ClassNames;
15585
-
15586
- (function (ClassNames) {
15587
- ClassNames["hiddenOnSearch"] = "epr-hidden-on-search";
15588
- ClassNames["searchActive"] = "epr-search-active";
15589
- ClassNames["hidden"] = "epr-hidden";
15590
- ClassNames["visible"] = "epr-visible";
15591
- })(ClassNames || (ClassNames = {}));
15592
-
15593
15844
  var emojiRef = {};
15594
15845
  function getEmojiRef(unified) {
15595
15846
  emojiRef[unified] = emojiRef[unified] || {
@@ -15631,33 +15882,52 @@ function useSetFilterRef() {
15631
15882
  };
15632
15883
  }
15633
15884
 
15885
+ function useClearSearch() {
15886
+ var SearchInputRef = useSearchInputRef();
15887
+
15888
+ var _useSearchTermState = useSearchTermState(),
15889
+ setSearchTerm = _useSearchTermState[1];
15890
+
15891
+ return function clearSearch() {
15892
+ if (SearchInputRef.current) {
15893
+ SearchInputRef.current.value = '';
15894
+ }
15895
+
15896
+ setSearchTerm('');
15897
+ };
15898
+ }
15899
+ function useAppendSearch() {
15900
+ var SearchInputRef = useSearchInputRef();
15901
+
15902
+ var _useSearchTermState2 = useSearchTermState(),
15903
+ setSearchTerm = _useSearchTermState2[1];
15904
+
15905
+ return function appendSearch(str) {
15906
+ if (SearchInputRef.current) {
15907
+ SearchInputRef.current.value = SearchInputRef.current.value + str;
15908
+ setSearchTerm(SearchInputRef.current.value);
15909
+ }
15910
+
15911
+ setSearchTerm(str);
15912
+ };
15913
+ }
15634
15914
  function useFilter() {
15635
- var SearchInputRef = useRef(null);
15915
+ var SearchInputRef = useSearchInputRef();
15636
15916
  var filterRef = useFilterRef();
15637
15917
  var setFilterRef = useSetFilterRef();
15638
15918
 
15639
- var _useSearchTermState = useSearchTermState(),
15640
- searchTerm = _useSearchTermState[0],
15641
- setSearchTerm = _useSearchTermState[1];
15919
+ var _useSearchTermState3 = useSearchTermState(),
15920
+ searchTerm = _useSearchTermState3[0],
15921
+ setSearchTerm = _useSearchTermState3[1];
15642
15922
 
15643
15923
  var PickerMainRef = usePickerMainRef();
15644
15924
  return {
15645
15925
  onChange: onChange,
15646
15926
  searchTerm: searchTerm,
15647
- clearSearch: clearSearch,
15648
15927
  SearchInputRef: SearchInputRef
15649
15928
  };
15650
15929
 
15651
- function clearSearch() {
15652
- if (SearchInputRef.current) {
15653
- SearchInputRef.current.value = '';
15654
- }
15655
-
15656
- onChange('');
15657
- }
15658
-
15659
15930
  function onChange(nextValue) {
15660
- scrollTo(PickerMainRef.current, 0);
15661
15931
  var filter = filterRef.current;
15662
15932
 
15663
15933
  if (filter != null && filter[nextValue] || nextValue.length <= 1) {
@@ -15698,7 +15968,9 @@ function useFilter() {
15698
15968
  showElement(element);
15699
15969
  });
15700
15970
  requestAnimationFrame(function () {
15701
- setSearchTerm(searchTerm);
15971
+ setSearchTerm(searchTerm).then(function () {
15972
+ scrollTo(PickerMainRef.current, 0);
15973
+ });
15702
15974
  });
15703
15975
  }
15704
15976
  }
@@ -15729,8 +16001,8 @@ function useIsEmojiFiltered() {
15729
16001
  var _useFilterRef = useFilterRef(),
15730
16002
  filter = _useFilterRef.current;
15731
16003
 
15732
- var _useSearchTermState2 = useSearchTermState(),
15733
- searchTerm = _useSearchTermState2[0];
16004
+ var _useSearchTermState4 = useSearchTermState(),
16005
+ searchTerm = _useSearchTermState4[0];
15734
16006
 
15735
16007
  return function (unified) {
15736
16008
  return isEmojiFilteredBySearchTerm(unified, filter, searchTerm);
@@ -15807,29 +16079,9 @@ function styleInject(css, ref) {
15807
16079
  }
15808
16080
  }
15809
16081
 
15810
- var css_248z = ".EmojiPickerReact li.epr-emoji-category>.epr-emoji-category-label{align-items:center;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background-color:var(--epr-category-label-bg-color);color:var(--epr-category-label-text-color);display:flex;font-weight:700;height:var(--epr-category-label-height);padding:var(--epr-category-label-padding);position:-webkit-sticky;position:sticky;text-transform:capitalize;top:0;width:100%;z-index:var(--epr-category-label-z-index)}.EmojiPickerReact.epr-search-active li.epr-emoji-category>.epr-emoji-category-label{opacity:.4;position:relative}.EmojiPickerReact li.epr-emoji-category{display:flex;flex-direction:row;flex-wrap:wrap;gap:var(--epr-emoji-gap);justify-content:space-around;padding:var(--epr-category-padding);position:relative}.EmojiPickerReact li.epr-emoji-category:after{content:\"\";display:inline-block;flex:1}.EmojiPickerReact li.epr-emoji-category:not(:has(.epr-visible)){display:none}";
16082
+ var css_248z = ".EmojiPickerReact button.epr-emoji{border-radius:8px;padding:var(--epr-emoji-padding);position:relative}.EmojiPickerReact button.epr-emoji.epr-emoji-has-variations:after{border-bottom:4px solid var(--epr-emoji-variation-indicator-color);border-left:4px solid transparent;border-right:4px solid transparent;bottom:0;content:\"\";display:block;height:0;position:absolute;right:-2px;transform:rotate(135deg);width:0;z-index:var(--epr-emoji-variations-indictator-z-index)}.EmojiPickerReact button.epr-emoji>*{display:block;height:var(--epr-emoji-size);width:var(--epr-emoji-size)}.EmojiPickerReact button.epr-emoji.epr-emoji-has-variations:hover:after{border-bottom:4px solid var(--epr-emoji-variation-indicator-color-hover)}.EmojiPickerReact button.epr-emoji>.epr-emoji-img{font-size:0}.EmojiPickerReact button.epr-emoji>.epr-emoji-native{font-family:Noto Color Emoji,Apple Color Emoji,Segoe UI Emoji,Times,Symbola,Aegyptus,Code2000,Code2001,Code2002,Musica,serif,LastResort;font-size:var(--epr-emoji-size);line-height:100%}.EmojiPickerReact button.epr-emoji:hover{background-color:var(--epr-emoji-hover-color)}.EmojiPickerReact button.epr-emoji:focus-visible{background-color:var(--epr-focus-bg-color)}";
15811
16083
  styleInject(css_248z);
15812
16084
 
15813
- function EmojiCategory(_ref) {
15814
- var _clsx;
15815
-
15816
- var categoryConfig = _ref.categoryConfig,
15817
- children = _ref.children,
15818
- hidden = _ref.hidden,
15819
- hiddenOnSearch = _ref.hiddenOnSearch;
15820
- var category = categoryFromCategoryConfig(categoryConfig);
15821
- var categoryName = categoryNameFromCategoryConfig(categoryConfig);
15822
- return createElement("li", {
15823
- className: clsx('epr-emoji-category', (_clsx = {}, _clsx[ClassNames.hidden] = hidden, _clsx[ClassNames.hiddenOnSearch] = hiddenOnSearch, _clsx)),
15824
- "data-name": category
15825
- }, createElement("div", {
15826
- className: "epr-emoji-category-label"
15827
- }, categoryName), children);
15828
- }
15829
-
15830
- var css_248z$1 = ".EmojiPickerReact button.epr-emoji{padding:var(--epr-emoji-padding);position:relative}.EmojiPickerReact button.epr-emoji.epr-emoji-has-variations:after{border-bottom:4px solid var(--epr-emoji-variation-indicator-color);border-left:4px solid transparent;border-right:4px solid transparent;bottom:0;content:\"\";display:block;height:0;position:absolute;right:-2px;transform:rotate(135deg);width:0;z-index:var(--epr-emoji-variations-indictator-z-index)}.EmojiPickerReact button.epr-emoji>*{font-size:var(--epr-emoji-size);height:var(--epr-emoji-size);width:var(--epr-emoji-size)}.EmojiPickerReact button.epr-emoji.epr-emoji-has-variations:hover:after{border-bottom:4px solid var(--epr-emoji-variation-indicator-color-hover)}.EmojiPickerReact button.epr-emoji>.epr-emoji-img{font-size:0}.EmojiPickerReact button.epr-emoji>.epr-emoji-native{font-family:Noto Color Emoji,Apple Color Emoji,Segoe UI Emoji,Times,Symbola,Aegyptus,Code2000,Code2001,Code2002,Musica,serif,LastResort;line-height:100%}.EmojiPickerReact button.epr-emoji:hover{background-color:var(--epr-emoji-hover-color);border-radius:8px}";
15831
- styleInject(css_248z$1);
15832
-
15833
16085
  function Emoji(_ref) {
15834
16086
  var _clsx;
15835
16087
 
@@ -15854,7 +16106,7 @@ function Emoji(_ref) {
15854
16106
  unified: unified
15855
16107
  };
15856
16108
  return createElement("button", {
15857
- className: clsx('epr-emoji', (_clsx = {}, _clsx[ClassNames.hidden] = hidden, _clsx[ClassNames.visible] = !hidden, _clsx['epr-emoji-has-variations'] = hasVariations && showVariations, _clsx)),
16109
+ className: clsx(ClassNames.emoji, (_clsx = {}, _clsx[ClassNames.hidden] = hidden, _clsx[ClassNames.visible] = !hidden, _clsx['epr-emoji-has-variations'] = hasVariations && showVariations, _clsx)),
15858
16110
  "data-unified": unified,
15859
16111
  // @ts-ignore - let's ignore the fact this is not a real react ref, ok?
15860
16112
  ref: emojiRef
@@ -15902,6 +16154,28 @@ function EmojiImg(_ref3) {
15902
16154
  }
15903
16155
  }
15904
16156
 
16157
+ var css_248z$1 = ".EmojiPickerReact li.epr-emoji-category>.epr-emoji-category-content{grid-gap:0;display:grid;grid-template-columns:repeat(auto-fill,var(--epr-emoji-fullsize));justify-content:space-between;padding:var(--epr-category-padding);position:relative}.EmojiPickerReact li.epr-emoji-category:not(:has(.epr-visible)){display:none}.EmojiPickerReact li.epr-emoji-category>.epr-emoji-category-label{align-items:center;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background-color:var(--epr-category-label-bg-color);color:var(--epr-category-label-text-color);display:flex;font-weight:700;height:var(--epr-category-label-height);padding:var(--epr-category-label-padding);position:-webkit-sticky;position:sticky;text-transform:capitalize;top:0;width:100%;z-index:var(--epr-category-label-z-index)}.EmojiPickerReact.epr-search-active li.epr-emoji-category>.epr-emoji-category-label{opacity:.4;position:relative}";
16158
+ styleInject(css_248z$1);
16159
+
16160
+ function EmojiCategory(_ref) {
16161
+ var _clsx;
16162
+
16163
+ var categoryConfig = _ref.categoryConfig,
16164
+ children = _ref.children,
16165
+ hidden = _ref.hidden,
16166
+ hiddenOnSearch = _ref.hiddenOnSearch;
16167
+ var category = categoryFromCategoryConfig(categoryConfig);
16168
+ var categoryName = categoryNameFromCategoryConfig(categoryConfig);
16169
+ return createElement("li", {
16170
+ className: clsx(ClassNames.category, (_clsx = {}, _clsx[ClassNames.hidden] = hidden, _clsx[ClassNames.hiddenOnSearch] = hiddenOnSearch, _clsx)),
16171
+ "data-name": category
16172
+ }, createElement("div", {
16173
+ className: "epr-emoji-category-label"
16174
+ }, categoryName), createElement("div", {
16175
+ className: "epr-emoji-category-content"
16176
+ }, children));
16177
+ }
16178
+
15905
16179
  function Suggested(_ref) {
15906
16180
  var categoryConfig = _ref.categoryConfig;
15907
16181
 
@@ -15916,7 +16190,8 @@ function Suggested(_ref) {
15916
16190
  var _getsuggested;
15917
16191
 
15918
16192
  return (_getsuggested = getsuggested(suggestedEmojisModeConfig)) != null ? _getsuggested : [];
15919
- }, [suggestedUpdated]);
16193
+ }, // eslint-disable-next-line react-hooks/exhaustive-deps
16194
+ [suggestedUpdated, suggestedEmojisModeConfig]);
15920
16195
  var emojiStyle = useEmojiStyleConfig();
15921
16196
  var hidden = !!(searchTerm || suggested.length === 0);
15922
16197
  return createElement(EmojiCategory, {
@@ -15935,7 +16210,8 @@ function Suggested(_ref) {
15935
16210
  unified: suggestedItem.unified,
15936
16211
  emojiStyle: emojiStyle,
15937
16212
  emoji: emoji,
15938
- key: suggestedItem.unified
16213
+ key: suggestedItem.unified,
16214
+ hidden: hidden
15939
16215
  });
15940
16216
  }));
15941
16217
  }
@@ -16082,7 +16358,7 @@ function usePointerStyle(VariationPickerRef) {
16082
16358
  }
16083
16359
 
16084
16360
  if (AnchoredEmojiRef.current) {
16085
- var button = buttonFromEmoji(AnchoredEmojiRef.current);
16361
+ var button = buttonFromTarget(AnchoredEmojiRef.current);
16086
16362
  var offsetLeft = emojiTruOffsetLeft(button);
16087
16363
 
16088
16364
  if (!button) {
@@ -16124,7 +16400,7 @@ function useVariationPickerTop(VariationPickerRef) {
16124
16400
  var _bodyRef$scrollTop;
16125
16401
 
16126
16402
  var bodyRef = BodyRef.current;
16127
- var button = buttonFromEmoji(AnchoredEmojiRef.current);
16403
+ var button = buttonFromTarget(AnchoredEmojiRef.current);
16128
16404
  var buttonHeight = elementHeight(button);
16129
16405
  emojiOffsetTop = emojiTrueOffsetTop(button);
16130
16406
  var scrollTop = (_bodyRef$scrollTop = bodyRef == null ? void 0 : bodyRef.scrollTop) != null ? _bodyRef$scrollTop : 0;
@@ -16153,7 +16429,32 @@ function Body() {
16153
16429
  }, createElement(EmojiVariationPicker, null), createElement(EmojiList, null));
16154
16430
  }
16155
16431
 
16156
- function useEmojiMouseEnter(allow, setHoveredEmoji) {
16432
+ function focusElement(element) {
16433
+ if (!element) {
16434
+ return;
16435
+ }
16436
+
16437
+ requestAnimationFrame(function () {
16438
+ element.focus();
16439
+ });
16440
+ }
16441
+ function focusPrevElementSibling(element) {
16442
+ if (!element) return;
16443
+ var prev = element.previousElementSibling;
16444
+ focusElement(prev);
16445
+ }
16446
+ function focusNextElementSibling(element) {
16447
+ if (!element) return;
16448
+ var next = element.nextElementSibling;
16449
+ focusElement(next);
16450
+ }
16451
+ function focusFirstElementChild(element) {
16452
+ if (!element) return;
16453
+ var first = element.firstElementChild;
16454
+ focusElement(first);
16455
+ }
16456
+
16457
+ function useEmojiPreviewEvents(allow, setPreviewEmoji) {
16157
16458
  var BodyRef = useBodyRef();
16158
16459
  useEffect(function () {
16159
16460
  if (!allow) {
@@ -16161,40 +16462,71 @@ function useEmojiMouseEnter(allow, setHoveredEmoji) {
16161
16462
  }
16162
16463
 
16163
16464
  var bodyRef = BodyRef.current;
16465
+ bodyRef == null ? void 0 : bodyRef.addEventListener('keydown', onEscape, {
16466
+ passive: true
16467
+ });
16164
16468
  bodyRef == null ? void 0 : bodyRef.addEventListener('mouseover', onMouseOver, {
16165
16469
  passive: true
16166
16470
  });
16167
- bodyRef == null ? void 0 : bodyRef.addEventListener('mouseout', onMouseOut, {
16471
+ bodyRef == null ? void 0 : bodyRef.addEventListener('focus', onEnter, true);
16472
+ bodyRef == null ? void 0 : bodyRef.addEventListener('mouseout', onLeave, {
16168
16473
  passive: true
16169
16474
  });
16170
- return function () {
16171
- bodyRef == null ? void 0 : bodyRef.removeEventListener('mouseover', onMouseOver);
16172
- bodyRef == null ? void 0 : bodyRef.removeEventListener('mouseout', onMouseOut);
16173
- };
16174
- }, [BodyRef.current]);
16475
+ bodyRef == null ? void 0 : bodyRef.addEventListener('blur', onLeave, true);
16175
16476
 
16176
- function onMouseOver(e) {
16177
- var button = buttonFromEmoji(e.target);
16477
+ function onEnter(e) {
16478
+ var button = buttonFromTarget(e.target);
16178
16479
 
16179
- if (!button) {
16180
- return onMouseOut();
16480
+ if (!button) {
16481
+ return onLeave();
16482
+ }
16483
+
16484
+ var unified = unifiedFromEmojiElement(button);
16485
+ var originalUnified = originalUnifiedFromEmojiElement(button);
16486
+
16487
+ if (!unified || !originalUnified) {
16488
+ return onLeave();
16489
+ }
16490
+
16491
+ setPreviewEmoji({
16492
+ unified: unified,
16493
+ originalUnified: originalUnified
16494
+ });
16181
16495
  }
16182
16496
 
16183
- var unified = unifiedFromEmojiElement(button);
16184
- var originalUnified = originalUnifiedFromEmojiElement(button);
16497
+ function onLeave(e) {
16498
+ if (e) {
16499
+ var button = buttonFromTarget(e.target);
16185
16500
 
16186
- if (!unified || !originalUnified) {
16187
- return onMouseOut();
16501
+ if (button) {
16502
+ return;
16503
+ }
16504
+ }
16505
+
16506
+ setPreviewEmoji(null);
16188
16507
  }
16189
16508
 
16190
- setHoveredEmoji({
16191
- unified: unified,
16192
- originalUnified: originalUnified
16193
- });
16194
- }
16509
+ function onEscape(e) {
16510
+ if (e.key === 'Escape') {
16511
+ setPreviewEmoji(null);
16512
+ }
16513
+ }
16195
16514
 
16196
- function onMouseOut() {
16197
- setHoveredEmoji(null);
16515
+ return function () {
16516
+ bodyRef == null ? void 0 : bodyRef.removeEventListener('mouseover', onMouseOver);
16517
+ bodyRef == null ? void 0 : bodyRef.removeEventListener('mouseout', onLeave);
16518
+ bodyRef == null ? void 0 : bodyRef.removeEventListener('focus', onEnter, true);
16519
+ bodyRef == null ? void 0 : bodyRef.removeEventListener('blur', onLeave, true);
16520
+ bodyRef == null ? void 0 : bodyRef.removeEventListener('keydown', onEscape);
16521
+ };
16522
+ }, [BodyRef, allow, setPreviewEmoji]);
16523
+
16524
+ function onMouseOver(e) {
16525
+ var button = buttonFromTarget(e.target);
16526
+
16527
+ if (button) {
16528
+ focusElement(button);
16529
+ }
16198
16530
  }
16199
16531
  }
16200
16532
 
@@ -16221,38 +16553,38 @@ function Flex(_ref) {
16221
16553
  }, children);
16222
16554
  }
16223
16555
 
16224
- var css_248z$6 = ".EmojiPickerReact .epr-preview{align-items:center;border-top:1px solid var(--epr-preview-border-color);height:var(--epr-preview-height);padding:10px;z-index:1}.EmojiPickerReact .epr-preview .epr-preview-emoji-label{color:var(--epr-preview-text-color);font-size:var(--epr-preview-text-size);padding:var(--epr-preview-text-padding);text-transform:capitalize}";
16556
+ var css_248z$6 = ".EmojiPickerReact .epr-preview{align-items:center;border-top:1px solid var(--epr-preview-border-color);height:var(--epr-preview-height);padding:0 var(--epr-horizontal-padding);z-index:1}.EmojiPickerReact .epr-preview .epr-preview-emoji-label{color:var(--epr-preview-text-color);font-size:var(--epr-preview-text-size);padding:var(--epr-preview-text-padding);text-transform:capitalize}";
16225
16557
  styleInject(css_248z$6);
16226
16558
 
16227
16559
  function Preview() {
16228
- var showPreview = useShowPreviewConfig();
16560
+ var previewConfig = usePreviewConfig();
16229
16561
 
16230
16562
  var _useState = useState(null),
16231
- hoveredEmoji = _useState[0],
16232
- setHoveredEmoji = _useState[1];
16563
+ previewEmoji = _useState[0],
16564
+ setPreviewEmoji = _useState[1];
16233
16565
 
16234
16566
  var emojiStyle = useEmojiStyleConfig();
16235
16567
 
16236
16568
  var _useEmojiVariationPic = useEmojiVariationPickerState(),
16237
16569
  variationPickerEmoji = _useEmojiVariationPic[0];
16238
16570
 
16239
- useEmojiMouseEnter(showPreview, setHoveredEmoji);
16571
+ useEmojiPreviewEvents(previewConfig.showPreview, setPreviewEmoji);
16240
16572
 
16241
- if (!showPreview) {
16573
+ if (!previewConfig.showPreview) {
16242
16574
  return null;
16243
16575
  }
16244
16576
 
16245
- var emoji = emojiByUnified(hoveredEmoji == null ? void 0 : hoveredEmoji.originalUnified);
16246
- var show = emoji != null && hoveredEmoji != null;
16577
+ var emoji = emojiByUnified(previewEmoji == null ? void 0 : previewEmoji.originalUnified);
16578
+ var show = emoji != null && previewEmoji != null;
16247
16579
  return createElement(Flex, {
16248
16580
  className: "epr-preview"
16249
16581
  }, createElement(PreviewContent, null));
16250
16582
 
16251
16583
  function PreviewContent() {
16252
- var defaultEmoji = asEmoji(variationPickerEmoji != null ? variationPickerEmoji : emojiByUnified('1f60a'));
16253
- var defaultText = variationPickerEmoji ? emojiName(variationPickerEmoji) : "What's your mood?";
16584
+ var defaultEmoji = asEmoji(variationPickerEmoji != null ? variationPickerEmoji : emojiByUnified(previewConfig.defaultEmoji));
16585
+ var defaultText = variationPickerEmoji ? emojiName(variationPickerEmoji) : previewConfig.defaultCaption;
16254
16586
  return createElement(Fragment, null, createElement("div", null, show ? createElement(Emoji, {
16255
- unified: hoveredEmoji == null ? void 0 : hoveredEmoji.unified,
16587
+ unified: previewEmoji == null ? void 0 : previewEmoji.unified,
16256
16588
  emoji: asEmoji(emoji),
16257
16589
  showVariations: false,
16258
16590
  emojiStyle: emojiStyle,
@@ -16284,24 +16616,26 @@ function Relative(_ref) {
16284
16616
  }, children);
16285
16617
  }
16286
16618
 
16287
- var css_248z$7 = ".EmojiPickerReact .epr-category-nav{display:flex;flex-direction:row;justify-content:space-around;padding:var(--epr-header-padding)}.EmojiPickerReact .epr-category-nav>button.epr-cat-btn{background-size:calc(var(--epr-category-navigation-button-size)*10);display:inline-block;height:var(--epr-category-navigation-button-size);outline:none;position:relative;transition:opacity .2s ease-in-out;width:var(--epr-category-navigation-button-size)}.EmojiPickerReact.epr-search-active .epr-category-nav>button.epr-cat-btn,.EmojiPickerReact.epr-search-active .epr-category-nav>button.epr-cat-btn.epr-active,.EmojiPickerReact.epr-search-active .epr-category-nav>button.epr-cat-btn:hover{cursor:default;opacity:.3;pointer-events:none}.EmojiPickerReact:not(.epr-search-active) .epr-category-nav>button.epr-cat-btn.epr-active,.EmojiPickerReact:not(.epr-search-active) .epr-category-nav>button.epr-cat-btn:hover{background-position-y:var(--epr-category-navigation-button-size);opacity:1}.EmojiPickerReact .epr-category-nav>button.epr-cat-btn{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='80' xml:space='preserve'%3E%3Cpath fill='%233371B7' d='M10 23.05c-3.84 0-6.96 3.12-6.96 6.96s3.12 6.96 6.96 6.96 6.96-3.12 6.96-6.96-3.12-6.96-6.96-6.96zm0 13.14c-3.41 0-6.18-2.77-6.18-6.18 0-3.41 2.77-6.18 6.18-6.18 3.41 0 6.18 2.77 6.18 6.18 0 3.41-2.77 6.18-6.18 6.18zm4.58-4.97a.389.389 0 0 0-.32-.16H5.74c-.13 0-.25.06-.32.16s-.09.24-.05.36A4.912 4.912 0 0 0 10 34.87c2.08 0 3.94-1.32 4.63-3.29a.42.42 0 0 0-.05-.36zM10 34.08c-1.56 0-2.97-.88-3.67-2.24h7.34A4.132 4.132 0 0 1 10 34.08zm-2.78-4.61a1.15 1.15 0 1 0-1.15-1.15c0 .63.52 1.15 1.15 1.15zm0-1.52c.2 0 .37.16.37.37 0 .2-.16.36-.37.36a.37.37 0 0 1-.37-.37c0-.19.17-.36.37-.36zm5.56 1.52a1.15 1.15 0 1 0-1.15-1.15c0 .63.52 1.15 1.15 1.15zm0-1.52c.2 0 .37.16.37.37 0 .2-.16.36-.37.36s-.37-.16-.37-.37c.01-.19.17-.36.37-.36z'/%3E%3Cpath fill='none' stroke='%233371B7' d='m64.06 33.42 2.33-.01c.21 0 .37.17.37.37v2.11c0 .21-.17.37-.37.37h-2.33a.37.37 0 0 1-.37-.37v-2.1c0-.21.16-.37.37-.37zm9.43.04h2.45c.21 0 .37.17.37.37v2.05c0 .21-.17.37-.37.37h-2.42a.37.37 0 0 1-.37-.37l-.03-2.05c0-.2.17-.37.37-.37zm-9.8-5.05H76.3v4.99H63.69v-4.99z'/%3E%3Cpath fill='none' stroke='%233371B7' d='M65.54 23.63h8.9c1.03 0 1.86.83 1.86 1.86v3.13H63.69v-3.13c0-1.02.83-1.86 1.85-1.86z'/%3E%3Ccircle fill='%233371B7' cx='66.18' cy='30.9' r='.95'/%3E%3Ccircle fill='%233371B7' cx='73.81' cy='30.9' r='.95'/%3E%3Cg fill='none' stroke='%233371B7'%3E%3Cpath d='M96.45 30.02c0 3.58-2.89 6.48-6.45 6.48s-6.45-2.9-6.45-6.48c0-3.58 2.89-6.48 6.45-6.48s6.45 2.9 6.45 6.48z'/%3E%3Cpath d='m96.26 28.64.03.12c-.87.07-2.94.1-4.64-1.15-1.07-.79-1.96-1.72-2.59-2.52-.31-.4-.56-.76-.72-1.05-.05-.08-.08-.15-.12-.22.46-.09 1.2-.18 2.04-.15 1.17.04 2.48.31 3.49 1.06 1.03.76 1.7 1.83 2.1 2.75.22.45.34.86.41 1.16zm-12.28 3.53c-.02-.04-.03-.08-.04-.12.86-.17 2.91-.42 4.73.64 1.13.65 1.91 1.51 2.43 2.27.36.53.58 1.01.7 1.32-.38.12-.97.25-1.68.28-.96.04-2.12-.13-3.23-.77-1.11-.64-1.89-1.64-2.39-2.5-.25-.44-.42-.84-.52-1.12z'/%3E%3C/g%3E%3Cg fill='none' stroke='%233371B7'%3E%3Cpath stroke-linecap='round' d='m116.26 26.8-1.39 1.99-.78-.8-.64-.65-.01.91-.07 8.25h-6.76l-.08-8.25-.01-.91-.63.65-.78.8-1.4-2.01 2.58-2.9c.07-.08.17-.13.28-.13h1.32l.39.7c.73 1.32 2.64 1.28 3.31-.07l.31-.63h1.15c.1 0 .2.04.27.11l.26-.26-.26.26 2.94 2.94z'/%3E%3Cpath d='M110.12 27.73h2.01v.94c0 .37-.45.67-1.01.67s-1.01-.3-1.01-.67v-.94z'/%3E%3C/g%3E%3Cpath d='M126.82 34.34c0 1.25-1.01 2.25-2.24 2.25s-2.24-1.01-2.24-2.25 1.01-2.25 2.24-2.25 2.24 1 2.24 2.25zm10.82 0c0 1.25-1.01 2.25-2.24 2.25-1.24 0-2.24-1.01-2.24-2.25s1.01-2.25 2.24-2.25c1.24-.01 2.24 1 2.24 2.25zm-10.8-9.92v9.92m10.82-9.92v9.92m-10.82-10.82h10.82v2.7h-10.82v-2.7z' fill='none' stroke='%233371B7'/%3E%3Cg fill='%233371B7'%3E%3Cpath d='m170.77 23.08-.05.02a6.93 6.93 0 0 0-6.06 2.45l-.05.02-.12-.14-.99-1.18-.3 3.4 3.4.3-1.08-1.29-.08-.1.08-.1a5.68 5.68 0 0 1 4.97-2.13c3.16.28 5.49 3.09 5.16 6.26-.31 3.01-3.07 5.32-6.09 5.1a5.693 5.693 0 0 1-5.26-6.03l-1.26-.11c-.25 3.76 2.55 7.06 6.33 7.39 3.9.35 7.33-2.58 7.57-6.51.23-3.65-2.54-6.94-6.17-7.35z'/%3E%3Cpath d='M170.27 27.42c0-.34-.28-.63-.63-.63s-.63.28-.63.63v3.18c0 .17.07.32.19.44.12.11.27.18.45.18h2.37c.35 0 .63-.28.63-.63s-.28-.63-.63-.63h-1.74v-2.54z'/%3E%3C/g%3E%3Cpath fill='none' stroke='%233371B7' d='M186.16 23.44h7.68c1.5 0 2.71 1.21 2.71 2.71v7.74c0 1.5-1.21 2.71-2.71 2.71h-7.68c-1.5 0-2.71-1.21-2.71-2.71v-7.74c0-1.5 1.21-2.71 2.71-2.71z'/%3E%3Ccircle fill='%233371B7' cx='185.98' cy='28.91' r='.73'/%3E%3Ccircle fill='%233371B7' cx='194.02' cy='26.72' r='.73'/%3E%3Cpath fill='none' stroke='%233371B7' stroke-linecap='round' d='m185.98 33.31.4-.27c.44-.29.99-.34 1.47-.14l1.01.43c.48.21 1.04.16 1.47-.14l.79-.53c.44-.29.99-.34 1.47-.14l1.78.77'/%3E%3Cpath fill='%233371B7' d='M147.66 23.33c-1.26.03-2.5.35-3.64.99-.15.08-.25.24-.25.4v11.6c0 .26.07.47.29.47.64 0 .48-.38.48-.64v-5.68c.66-.34 3.15-1.1 5.78-.09 1.57.6 3.48.72 4.31.68.82-.04 1.33-.27 1.33-.27.16-.08.27-.24.27-.41v-5.65c0-.16-.1-.32-.26-.41s-.37-.09-.53-.01c0 0-.21.12-.86.15s-2.39-.06-3.84-.6c-.82-.3-1.68-.47-2.54-.51-.18-.02-.36-.03-.54-.02zm.07.68h.42c.73.03 1.47.18 2.18.44 1.58.58 3.49.71 4.31.67.22-.01.79-.05.96-.08v5.17c-.14.03-.74.06-1.02.08-.65.03-2.39-.06-3.83-.61-2.53-.96-5.05-.54-6.2-.08v-4.9c.91-.45 2.19-.67 3.18-.69z'/%3E%3Cpath fill='none' stroke='%233371B7' d='M48.07 23.47h3.72a4.5 4.5 0 0 1 4.5 4.5c0 .5-.41.91-.91.91H44.47c-.5 0-.91-.41-.91-.91 0-2.48 2.02-4.5 4.51-4.5z'/%3E%3Cpath fill='none' stroke='%233371B7' stroke-linecap='round' d='M43.5 28.75c-.23.13-.52 1.16 0 1.51 1.41.95 8.46.84 11.35.56.77-.07 1.64-.43 1.72-1.19.03-.3-.1-.62-.56-.88'/%3E%3Cpath fill='none' stroke='%233371B7' stroke-linecap='round' d='m43.5 30.64-.15.34c-.22.49.21 1.01.73.9.26-.06.53.05.68.27l.14.21c.34.5 1.03.6 1.49.21l.02-.02c.29-.24.68-.31 1.03-.18l.85.32c.39.15.82.13 1.2-.04l.45-.2c.41-.18.88-.18 1.3 0l.45.2c.37.17.81.15 1.17-.05l.21-.12c.34-.19.77-.15 1.07.1l.23.19c.33.27.82.19 1.04-.18l.1-.16c.1-.16-.03-.33.16-.35.45-.04 1.25-.32 1.09-.74l-.41-1.08'/%3E%3Cpath fill='none' stroke='%233371B7' stroke-linecap='round' d='M43.5 32.15c-.11.25-.27.83 0 1.13.34.38 3.04 1.13 6.42 1.13 2.21 0 4.58-.34 5.98-.6.49-.09.94-.45.83-.94a1.59 1.59 0 0 0-.39-.73'/%3E%3Cpath fill='none' stroke='%233371B7' stroke-linecap='round' d='M43.5 33.29c0 .5.64 2.35 1.35 2.65 1.81.76 5.73.67 8.13.53 1.29-.08 2.5-.7 3.15-1.81.3-.51.55-1.03.55-1.37'/%3E%3Cellipse fill='%233371B7' cx='51.62' cy='26.48' rx='.34' ry='.38'/%3E%3Cellipse fill='%233371B7' cx='52.97' cy='24.96' rx='.34' ry='.38'/%3E%3Cellipse fill='%233371B7' cx='52.97' cy='27.23' rx='.34' ry='.38'/%3E%3Cellipse fill='%233371B7' cx='54.32' cy='26.48' rx='.34' ry='.38'/%3E%3Cellipse fill='%233371B7' cx='50.94' cy='24.96' rx='.34' ry='.38'/%3E%3Cpath fill='none' stroke='%233371B7' d='M24.17 31.03v-7.56c.11.11.82.9 2.75 3.1 2.47-1.65 5.61-.69 6.86 0l2.4-3.1v7.12c0 1.22-.14 2.48-.89 3.44-.97 1.25-2.67 2.53-5.29 2.53-2.85 0-4.49-1.51-5.29-2.86-.47-.79-.54-1.74-.54-2.67z'/%3E%3Cpath fill='none' stroke='%233371B7' stroke-linecap='round' d='m21.22 30.05 5.38 1.2m-5.38 2.86 5.38-1.2m12.18-2.86-5.38 1.2m5.38 2.86-5.38-1.2'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' fill='%233371B7' d='m29.51 32.44-.54-.75c-.19-.27 0-.64.33-.64h1.39c.33 0 .52.37.33.64l-.69.96.02.01c-.72 1.24-2.56 1.09-3.07-.26l-.07-.18c-.08-.21.03-.44.24-.52.21-.08.44.03.52.24l.07.18c.24.63 1.04.76 1.47.32z'/%3E%3Cpath fill='none' stroke='%233371B7' stroke-linecap='round' d='m32.4 32.08-.07.18c-.38 1.02-1.79 1.14-2.33.19'/%3E%3Ccircle fill='%233371B7' cx='27.6' cy='29.67' r='.69'/%3E%3Ccircle fill='%233371B7' cx='32.4' cy='29.67' r='.69'/%3E%3Cpath fill='%23C0C0BF' d='M10 43.05c-3.84 0-6.96 3.12-6.96 6.96s3.12 6.96 6.96 6.96 6.96-3.12 6.96-6.96-3.12-6.96-6.96-6.96zm0 13.14c-3.41 0-6.18-2.77-6.18-6.18 0-3.41 2.77-6.18 6.18-6.18 3.41 0 6.18 2.77 6.18 6.18 0 3.41-2.77 6.18-6.18 6.18zm4.58-4.97a.389.389 0 0 0-.32-.16H5.74c-.13 0-.25.06-.32.16s-.09.24-.05.36A4.912 4.912 0 0 0 10 54.87c2.08 0 3.94-1.32 4.63-3.29a.42.42 0 0 0-.05-.36zM10 54.08c-1.56 0-2.97-.88-3.67-2.24h7.34A4.132 4.132 0 0 1 10 54.08zm-2.78-4.61a1.15 1.15 0 1 0-1.15-1.15c0 .63.52 1.15 1.15 1.15zm0-1.52c.2 0 .37.16.37.37 0 .2-.16.36-.37.36a.37.37 0 0 1-.37-.37c0-.19.17-.36.37-.36zm5.56 1.52a1.15 1.15 0 1 0-1.15-1.15c0 .63.52 1.15 1.15 1.15zm0-1.52c.2 0 .37.16.37.37 0 .2-.16.36-.37.36s-.37-.16-.37-.37c.01-.19.17-.36.37-.36z'/%3E%3Cpath fill='none' stroke='%23C0C0BF' d='m64.06 53.42 2.33-.01c.21 0 .37.17.37.37v2.11c0 .21-.17.37-.37.37h-2.33a.37.37 0 0 1-.37-.37v-2.1c0-.21.16-.37.37-.37zm9.43.04h2.45c.21 0 .37.17.37.37v2.05c0 .21-.17.37-.37.37h-2.42a.37.37 0 0 1-.37-.37l-.03-2.05c0-.2.17-.37.37-.37zm-9.8-5.05H76.3v4.99H63.69v-4.99z'/%3E%3Cpath fill='none' stroke='%23C0C0BF' d='M65.54 43.63h8.9c1.03 0 1.86.83 1.86 1.86v3.13H63.69v-3.13c0-1.02.83-1.86 1.85-1.86z'/%3E%3Ccircle fill='%23C0C0BF' cx='66.18' cy='50.9' r='.95'/%3E%3Ccircle fill='%23C0C0BF' cx='73.81' cy='50.9' r='.95'/%3E%3Cg fill='none' stroke='%23C0C0BF'%3E%3Cpath d='M96.45 50.02c0 3.58-2.89 6.48-6.45 6.48s-6.45-2.9-6.45-6.48c0-3.58 2.89-6.48 6.45-6.48s6.45 2.9 6.45 6.48z'/%3E%3Cpath d='m96.26 48.64.03.12c-.87.07-2.94.1-4.64-1.15-1.07-.79-1.96-1.72-2.59-2.52-.31-.4-.56-.76-.72-1.05-.05-.08-.08-.15-.12-.22.46-.09 1.2-.18 2.04-.15 1.17.04 2.48.31 3.49 1.06 1.03.76 1.7 1.83 2.1 2.75.22.45.34.86.41 1.16zm-12.28 3.53c-.02-.04-.03-.08-.04-.12.86-.17 2.91-.42 4.73.64 1.13.65 1.91 1.51 2.43 2.27.36.53.58 1.01.7 1.32-.38.12-.97.25-1.68.28-.96.04-2.12-.13-3.23-.77-1.11-.64-1.89-1.64-2.39-2.5-.25-.44-.42-.84-.52-1.12z'/%3E%3C/g%3E%3Cg fill='none' stroke='%23C0C0BF'%3E%3Cpath stroke-linecap='round' d='m116.26 46.8-1.39 1.99-.78-.8-.64-.65-.01.91-.07 8.25h-6.76l-.08-8.25-.01-.91-.63.65-.78.8-1.4-2.01 2.58-2.9c.07-.08.17-.13.28-.13h1.32l.39.7c.73 1.32 2.64 1.28 3.31-.07l.31-.63h1.15c.1 0 .2.04.27.11l.26-.26-.26.26 2.94 2.94z'/%3E%3Cpath d='M110.12 47.73h2.01v.94c0 .37-.45.67-1.01.67s-1.01-.3-1.01-.67v-.94z'/%3E%3C/g%3E%3Cpath d='M126.82 54.34c0 1.25-1.01 2.25-2.24 2.25s-2.24-1.01-2.24-2.25 1.01-2.25 2.24-2.25 2.24 1 2.24 2.25zm10.82 0c0 1.25-1.01 2.25-2.24 2.25-1.24 0-2.24-1.01-2.24-2.25s1.01-2.25 2.24-2.25c1.24-.01 2.24 1 2.24 2.25zm-10.8-9.92v9.92m10.82-9.92v9.92m-10.82-10.82h10.82v2.7h-10.82v-2.7z' fill='none' stroke='%23C0C0BF'/%3E%3Cg fill='%23C0C0BF'%3E%3Cpath d='m170.77 43.08-.05.02a6.93 6.93 0 0 0-6.06 2.45l-.05.02-.12-.14-.99-1.18-.3 3.4 3.4.3-1.08-1.29-.08-.1.08-.1a5.68 5.68 0 0 1 4.97-2.13c3.16.28 5.49 3.09 5.16 6.26-.31 3.01-3.07 5.32-6.09 5.1a5.693 5.693 0 0 1-5.26-6.03l-1.26-.11c-.25 3.76 2.55 7.06 6.33 7.39 3.9.35 7.33-2.58 7.57-6.51.23-3.65-2.54-6.94-6.17-7.35z'/%3E%3Cpath d='M170.27 47.42c0-.34-.28-.63-.63-.63s-.63.28-.63.63v3.18c0 .17.07.32.19.44.12.11.27.18.45.18h2.37c.35 0 .63-.28.63-.63s-.28-.63-.63-.63h-1.74v-2.54z'/%3E%3C/g%3E%3Cpath fill='none' stroke='%23C0C0BF' d='M186.16 43.44h7.68c1.5 0 2.71 1.21 2.71 2.71v7.74c0 1.5-1.21 2.71-2.71 2.71h-7.68c-1.5 0-2.71-1.21-2.71-2.71v-7.74c0-1.5 1.21-2.71 2.71-2.71z'/%3E%3Ccircle fill='%23C0C0BF' cx='185.98' cy='48.91' r='.73'/%3E%3Ccircle fill='%23C0C0BF' cx='194.02' cy='46.72' r='.73'/%3E%3Cpath fill='none' stroke='%23C0C0BF' stroke-linecap='round' d='m185.98 53.31.4-.27c.44-.29.99-.34 1.47-.14l1.01.43c.48.21 1.04.16 1.47-.14l.79-.53c.44-.29.99-.34 1.47-.14l1.78.77'/%3E%3Cpath fill='%23C0C0BF' d='M147.66 43.33c-1.26.03-2.5.35-3.64.99-.15.08-.25.24-.25.4v11.6c0 .26.07.47.29.47.64 0 .48-.38.48-.64v-5.68c.66-.34 3.15-1.1 5.78-.09 1.57.6 3.48.72 4.31.68.82-.04 1.33-.27 1.33-.27.16-.08.27-.24.27-.41v-5.65c0-.16-.1-.32-.26-.41s-.37-.09-.53-.01c0 0-.21.12-.86.15s-2.39-.06-3.84-.6c-.82-.3-1.68-.47-2.54-.51-.18-.02-.36-.03-.54-.02zm.07.68h.42c.73.03 1.47.18 2.18.44 1.58.58 3.49.71 4.31.67.22-.01.79-.05.96-.08v5.17c-.14.03-.74.06-1.02.08-.65.03-2.39-.06-3.83-.61-2.53-.96-5.05-.54-6.2-.08v-4.9c.91-.45 2.19-.67 3.18-.69z'/%3E%3Cpath fill='none' stroke='%23C0C0BF' d='M48.07 43.47h3.72a4.5 4.5 0 0 1 4.5 4.5c0 .5-.41.91-.91.91H44.47c-.5 0-.91-.41-.91-.91 0-2.48 2.02-4.5 4.51-4.5z'/%3E%3Cpath fill='none' stroke='%23C0C0BF' stroke-linecap='round' d='M43.5 48.75c-.23.13-.52 1.16 0 1.51 1.41.95 8.46.84 11.35.56.77-.07 1.64-.43 1.72-1.19.03-.3-.1-.62-.56-.88'/%3E%3Cpath fill='none' stroke='%23C0C0BF' stroke-linecap='round' d='m43.5 50.64-.15.34c-.22.49.21 1.01.73.9.26-.06.53.05.68.27l.14.21c.34.5 1.03.6 1.49.21l.02-.02c.29-.24.68-.31 1.03-.18l.85.32c.39.15.82.13 1.2-.04l.45-.2c.41-.18.88-.18 1.3 0l.45.2c.37.17.81.15 1.17-.05l.21-.12c.34-.19.77-.15 1.07.1l.23.19c.33.27.82.19 1.04-.18l.1-.16c.1-.16-.03-.33.16-.35.45-.04 1.25-.32 1.09-.74l-.41-1.08'/%3E%3Cpath fill='none' stroke='%23C0C0BF' stroke-linecap='round' d='M43.5 52.15c-.11.25-.27.83 0 1.13.34.38 3.04 1.13 6.42 1.13 2.21 0 4.58-.34 5.98-.6.49-.09.94-.45.83-.94a1.59 1.59 0 0 0-.39-.73'/%3E%3Cpath fill='none' stroke='%23C0C0BF' stroke-linecap='round' d='M43.5 53.29c0 .5.64 2.35 1.35 2.65 1.81.76 5.73.67 8.13.53 1.29-.08 2.5-.7 3.15-1.81.3-.51.55-1.03.55-1.37'/%3E%3Cellipse fill='%23C0C0BF' cx='51.62' cy='46.48' rx='.34' ry='.38'/%3E%3Cellipse fill='%23C0C0BF' cx='52.97' cy='44.96' rx='.34' ry='.38'/%3E%3Cellipse fill='%23C0C0BF' cx='52.97' cy='47.23' rx='.34' ry='.38'/%3E%3Cellipse fill='%23C0C0BF' cx='54.32' cy='46.48' rx='.34' ry='.38'/%3E%3Cellipse fill='%23C0C0BF' cx='50.94' cy='44.96' rx='.34' ry='.38'/%3E%3Cpath fill='none' stroke='%23C0C0BF' d='M24.17 51.03v-7.56c.11.11.82.9 2.75 3.1 2.47-1.65 5.61-.69 6.86 0l2.4-3.1v7.12c0 1.22-.14 2.48-.89 3.44-.97 1.25-2.67 2.53-5.29 2.53-2.85 0-4.49-1.51-5.29-2.86-.47-.79-.54-1.74-.54-2.67z'/%3E%3Cpath fill='none' stroke='%23C0C0BF' stroke-linecap='round' d='m21.22 50.05 5.38 1.2m-5.38 2.86 5.38-1.2m12.18-2.86-5.38 1.2m5.38 2.86-5.38-1.2'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' fill='%23C0C0BF' d='m29.51 52.44-.54-.75c-.19-.27 0-.64.33-.64h1.39c.33 0 .52.37.33.64l-.69.96.02.01c-.72 1.24-2.56 1.09-3.07-.26l-.07-.18c-.08-.21.03-.44.24-.52.21-.08.44.03.52.24l.07.18c.24.63 1.04.76 1.47.32z'/%3E%3Cpath fill='none' stroke='%23C0C0BF' stroke-linecap='round' d='m32.4 52.08-.07.18c-.38 1.02-1.79 1.14-2.33.19'/%3E%3Ccircle fill='%23C0C0BF' cx='27.6' cy='49.67' r='.69'/%3E%3Ccircle fill='%23C0C0BF' cx='32.4' cy='49.67' r='.69'/%3E%3Cpath fill='%236AA9DD' d='M10 63.05c-3.84 0-6.96 3.12-6.96 6.96s3.12 6.96 6.96 6.96 6.96-3.12 6.96-6.96-3.12-6.96-6.96-6.96zm0 13.14c-3.41 0-6.18-2.77-6.18-6.18 0-3.41 2.77-6.18 6.18-6.18 3.41 0 6.18 2.77 6.18 6.18 0 3.41-2.77 6.18-6.18 6.18zm4.58-4.97a.389.389 0 0 0-.32-.16H5.74c-.13 0-.25.06-.32.16s-.09.24-.05.36A4.912 4.912 0 0 0 10 74.87c2.08 0 3.94-1.32 4.63-3.29a.42.42 0 0 0-.05-.36zM10 74.08c-1.56 0-2.97-.88-3.67-2.24h7.34A4.132 4.132 0 0 1 10 74.08zm-2.78-4.61a1.15 1.15 0 1 0-1.15-1.15c0 .63.52 1.15 1.15 1.15zm0-1.52c.2 0 .37.16.37.37 0 .2-.16.36-.37.36a.37.37 0 0 1-.37-.37c0-.19.17-.36.37-.36zm5.56 1.52a1.15 1.15 0 1 0-1.15-1.15c0 .63.52 1.15 1.15 1.15zm0-1.52c.2 0 .37.16.37.37 0 .2-.16.36-.37.36s-.37-.16-.37-.37c.01-.19.17-.36.37-.36z'/%3E%3Cpath fill='none' stroke='%236AA9DD' d='m64.06 73.42 2.33-.01c.21 0 .37.17.37.37v2.11c0 .21-.17.37-.37.37h-2.33a.37.37 0 0 1-.37-.37v-2.1c0-.21.16-.37.37-.37zm9.43.04h2.45c.21 0 .37.17.37.37v2.05c0 .21-.17.37-.37.37h-2.42a.37.37 0 0 1-.37-.37l-.03-2.05c0-.2.17-.37.37-.37zm-9.8-5.05H76.3v4.99H63.69v-4.99z'/%3E%3Cpath fill='none' stroke='%236AA9DD' d='M65.54 63.63h8.9c1.03 0 1.86.83 1.86 1.86v3.13H63.69v-3.13c0-1.02.83-1.86 1.85-1.86z'/%3E%3Ccircle fill='%236AA9DD' cx='66.18' cy='70.9' r='.95'/%3E%3Ccircle fill='%236AA9DD' cx='73.81' cy='70.9' r='.95'/%3E%3Cg fill='none' stroke='%236AA9DD'%3E%3Cpath d='M96.45 70.02c0 3.58-2.89 6.48-6.45 6.48s-6.45-2.9-6.45-6.48c0-3.58 2.89-6.48 6.45-6.48s6.45 2.9 6.45 6.48z'/%3E%3Cpath d='m96.26 68.64.03.12c-.87.07-2.94.1-4.64-1.15-1.07-.79-1.96-1.72-2.59-2.52-.31-.4-.56-.76-.72-1.05-.05-.08-.08-.15-.12-.22.46-.09 1.2-.18 2.04-.15 1.17.04 2.48.31 3.49 1.06 1.03.76 1.7 1.83 2.1 2.75.22.45.34.86.41 1.16zm-12.28 3.53c-.02-.04-.03-.08-.04-.12.86-.17 2.91-.42 4.73.64 1.13.65 1.91 1.51 2.43 2.27.36.53.58 1.01.7 1.32-.38.12-.97.25-1.68.28-.96.04-2.12-.13-3.23-.77-1.11-.64-1.89-1.64-2.39-2.5-.25-.44-.42-.84-.52-1.12z'/%3E%3C/g%3E%3Cg fill='none' stroke='%236AA9DD'%3E%3Cpath stroke-linecap='round' d='m116.26 66.8-1.39 1.99-.78-.8-.64-.65-.01.91-.07 8.25h-6.76l-.08-8.25-.01-.91-.63.65-.78.8-1.4-2.01 2.58-2.9c.07-.08.17-.13.28-.13h1.32l.39.7c.73 1.32 2.64 1.28 3.31-.07l.31-.63h1.15c.1 0 .2.04.27.11l.26-.26-.26.26 2.94 2.94z'/%3E%3Cpath d='M110.12 67.73h2.01v.94c0 .37-.45.67-1.01.67s-1.01-.3-1.01-.67v-.94z'/%3E%3C/g%3E%3Cpath d='M126.82 74.34c0 1.25-1.01 2.25-2.24 2.25s-2.24-1.01-2.24-2.25 1.01-2.25 2.24-2.25 2.24 1 2.24 2.25zm10.82 0c0 1.25-1.01 2.25-2.24 2.25-1.24 0-2.24-1.01-2.24-2.25s1.01-2.25 2.24-2.25c1.24-.01 2.24 1 2.24 2.25zm-10.8-9.92v9.92m10.82-9.92v9.92m-10.82-10.82h10.82v2.7h-10.82v-2.7z' fill='none' stroke='%236AA9DD'/%3E%3Cg fill='%236AA9DD'%3E%3Cpath d='m170.77 63.08-.05.02a6.93 6.93 0 0 0-6.06 2.45l-.05.02-.12-.14-.99-1.18-.3 3.4 3.4.3-1.08-1.29-.08-.1.08-.1a5.68 5.68 0 0 1 4.97-2.13c3.16.28 5.49 3.09 5.16 6.26-.31 3.01-3.07 5.32-6.09 5.1a5.693 5.693 0 0 1-5.26-6.03l-1.26-.11c-.25 3.76 2.55 7.06 6.33 7.39 3.9.35 7.33-2.58 7.57-6.51.23-3.65-2.54-6.94-6.17-7.35z'/%3E%3Cpath d='M170.27 67.42c0-.34-.28-.63-.63-.63s-.63.28-.63.63v3.18c0 .17.07.32.19.44.12.11.27.18.45.18h2.37c.35 0 .63-.28.63-.63s-.28-.63-.63-.63h-1.74v-2.54z'/%3E%3C/g%3E%3Cpath fill='none' stroke='%236AA9DD' d='M186.16 63.44h7.68c1.5 0 2.71 1.21 2.71 2.71v7.74c0 1.5-1.21 2.71-2.71 2.71h-7.68c-1.5 0-2.71-1.21-2.71-2.71v-7.74c0-1.5 1.21-2.71 2.71-2.71z'/%3E%3Ccircle fill='%236AA9DD' cx='185.98' cy='68.91' r='.73'/%3E%3Ccircle fill='%236AA9DD' cx='194.02' cy='66.72' r='.73'/%3E%3Cpath fill='none' stroke='%236AA9DD' stroke-linecap='round' d='m185.98 73.31.4-.27c.44-.29.99-.34 1.47-.14l1.01.43c.48.21 1.04.16 1.47-.14l.79-.53c.44-.29.99-.34 1.47-.14l1.78.77'/%3E%3Cpath fill='%236AA9DD' d='M147.66 63.33c-1.26.03-2.5.35-3.64.99-.15.08-.25.24-.25.4v11.6c0 .26.07.47.29.47.64 0 .48-.38.48-.64v-5.68c.66-.34 3.15-1.1 5.78-.09 1.57.6 3.48.72 4.31.68.82-.04 1.33-.27 1.33-.27.16-.08.27-.24.27-.41v-5.65c0-.16-.1-.32-.26-.41s-.37-.09-.53-.01c0 0-.21.12-.86.15s-2.39-.06-3.84-.6c-.82-.3-1.68-.47-2.54-.51-.18-.02-.36-.03-.54-.02zm.07.68h.42c.73.03 1.47.18 2.18.44 1.58.58 3.49.71 4.31.67.22-.01.79-.05.96-.08v5.17c-.14.03-.74.06-1.02.08-.65.03-2.39-.06-3.83-.61-2.53-.96-5.05-.54-6.2-.08v-4.9c.91-.45 2.19-.67 3.18-.69z'/%3E%3Cpath fill='none' stroke='%236AA9DD' d='M48.07 63.47h3.72a4.5 4.5 0 0 1 4.5 4.5c0 .5-.41.91-.91.91H44.47c-.5 0-.91-.41-.91-.91 0-2.48 2.02-4.5 4.51-4.5z'/%3E%3Cpath fill='none' stroke='%236AA9DD' stroke-linecap='round' d='M43.5 68.75c-.23.13-.52 1.16 0 1.51 1.41.95 8.46.84 11.35.56.77-.07 1.64-.43 1.72-1.19.03-.3-.1-.62-.56-.88'/%3E%3Cpath fill='none' stroke='%236AA9DD' stroke-linecap='round' d='m43.5 70.64-.15.34c-.22.49.21 1.01.73.9.26-.06.53.05.68.27l.14.21c.34.5 1.03.6 1.49.21l.02-.02c.29-.24.68-.31 1.03-.18l.85.32c.39.15.82.13 1.2-.04l.45-.2c.41-.18.88-.18 1.3 0l.45.2c.37.17.81.15 1.17-.05l.21-.12c.34-.19.77-.15 1.07.1l.23.19c.33.27.82.19 1.04-.18l.1-.16c.1-.16-.03-.33.16-.35.45-.04 1.25-.32 1.09-.74l-.41-1.08'/%3E%3Cpath fill='none' stroke='%236AA9DD' stroke-linecap='round' d='M43.5 72.15c-.11.25-.27.83 0 1.13.34.38 3.04 1.13 6.42 1.13 2.21 0 4.58-.34 5.98-.6.49-.09.94-.45.83-.94a1.59 1.59 0 0 0-.39-.73'/%3E%3Cpath fill='none' stroke='%236AA9DD' stroke-linecap='round' d='M43.5 73.29c0 .5.64 2.35 1.35 2.65 1.81.76 5.73.67 8.13.53 1.29-.08 2.5-.7 3.15-1.81.3-.51.55-1.03.55-1.37'/%3E%3Cellipse fill='%236AA9DD' cx='51.62' cy='66.48' rx='.34' ry='.38'/%3E%3Cellipse fill='%236AA9DD' cx='52.97' cy='64.96' rx='.34' ry='.38'/%3E%3Cellipse fill='%236AA9DD' cx='52.97' cy='67.23' rx='.34' ry='.38'/%3E%3Cellipse fill='%236AA9DD' cx='54.32' cy='66.48' rx='.34' ry='.38'/%3E%3Cellipse fill='%236AA9DD' cx='50.94' cy='64.96' rx='.34' ry='.38'/%3E%3Cpath fill='none' stroke='%236AA9DD' d='M24.17 71.03v-7.56c.11.11.82.9 2.75 3.1 2.47-1.65 5.61-.69 6.86 0l2.4-3.1v7.12c0 1.22-.14 2.48-.89 3.44-.97 1.25-2.67 2.53-5.29 2.53-2.85 0-4.49-1.51-5.29-2.86-.47-.79-.54-1.74-.54-2.67z'/%3E%3Cpath fill='none' stroke='%236AA9DD' stroke-linecap='round' d='m21.22 70.05 5.38 1.2m-5.38 2.86 5.38-1.2m12.18-2.86-5.38 1.2m5.38 2.86-5.38-1.2'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' fill='%236AA9DD' d='m29.51 72.44-.54-.75c-.19-.27 0-.64.33-.64h1.39c.33 0 .52.37.33.64l-.69.96.02.01c-.72 1.24-2.56 1.09-3.07-.26l-.07-.18c-.08-.21.03-.44.24-.52.21-.08.44.03.52.24l.07.18c.24.63 1.04.76 1.47.32z'/%3E%3Cpath fill='none' stroke='%236AA9DD' stroke-linecap='round' d='m32.4 72.08-.07.18c-.38 1.02-1.79 1.14-2.33.19'/%3E%3Ccircle fill='%236AA9DD' cx='27.6' cy='69.67' r='.69'/%3E%3Ccircle fill='%236AA9DD' cx='32.4' cy='69.67' r='.69'/%3E%3Cpath fill='%23868686' d='M10 3.04c-3.84 0-6.96 3.12-6.96 6.96s3.12 6.96 6.96 6.96 6.96-3.12 6.96-6.96S13.84 3.04 10 3.04zm0 13.14c-3.41 0-6.18-2.77-6.18-6.18 0-3.41 2.77-6.18 6.18-6.18 3.41 0 6.18 2.77 6.18 6.18 0 3.41-2.77 6.18-6.18 6.18zm4.58-4.97a.389.389 0 0 0-.32-.16H5.74c-.13 0-.25.06-.32.16s-.09.24-.05.36A4.912 4.912 0 0 0 10 14.86c2.08 0 3.94-1.32 4.63-3.29a.41.41 0 0 0-.05-.36zM10 14.07c-1.56 0-2.97-.88-3.67-2.24h7.34A4.132 4.132 0 0 1 10 14.07zM7.22 9.45a1.15 1.15 0 1 0 0-2.3 1.15 1.15 0 0 0 0 2.3zm0-1.51c.2 0 .37.16.37.37 0 .2-.16.36-.37.36a.37.37 0 0 1-.37-.37c0-.2.17-.36.37-.36zm5.56 1.51a1.15 1.15 0 1 0 0-2.3 1.15 1.15 0 0 0 0 2.3zm0-1.51c.2 0 .37.16.37.37 0 .2-.16.36-.37.36s-.37-.16-.37-.37c.01-.2.17-.36.37-.36z'/%3E%3Cpath fill='none' stroke='%23868686' d='m64.06 13.4 2.33-.01c.21 0 .37.17.37.37v2.11c0 .21-.17.37-.37.37h-2.33a.37.37 0 0 1-.37-.37v-2.1c0-.2.16-.37.37-.37zm9.43.05h2.45c.21 0 .37.17.37.37v2.05c0 .21-.17.37-.37.37h-2.42a.37.37 0 0 1-.37-.37l-.03-2.05c0-.2.17-.37.37-.37zm-9.8-5.05H76.3v4.99H63.69V8.4z'/%3E%3Cpath fill='none' stroke='%23868686' d='M65.54 3.62h8.9c1.03 0 1.86.83 1.86 1.86v3.13H63.69V5.48c0-1.03.83-1.86 1.85-1.86z'/%3E%3Ccircle fill='%23868686' cx='66.18' cy='10.89' r='.95'/%3E%3Ccircle fill='%23868686' cx='73.81' cy='10.89' r='.95'/%3E%3Cg fill='none' stroke='%23868686'%3E%3Cpath d='M96.45 10.01c0 3.58-2.89 6.48-6.45 6.48s-6.45-2.9-6.45-6.48c0-3.58 2.89-6.48 6.45-6.48s6.45 2.9 6.45 6.48z'/%3E%3Cpath d='m96.26 8.62.03.12c-.87.07-2.94.1-4.64-1.15-1.07-.79-1.96-1.72-2.59-2.52-.31-.4-.56-.76-.72-1.05-.05-.08-.08-.15-.12-.22.46-.09 1.2-.18 2.04-.15 1.17.04 2.48.31 3.49 1.06 1.03.76 1.7 1.83 2.1 2.75.22.46.34.87.41 1.16zm-12.28 3.53c-.02-.04-.03-.08-.04-.12.86-.17 2.91-.42 4.73.64 1.13.65 1.91 1.51 2.43 2.27.36.53.58 1.01.7 1.32-.38.12-.97.25-1.68.28-.96.04-2.12-.13-3.23-.77-1.11-.64-1.89-1.64-2.39-2.5-.25-.44-.42-.83-.52-1.12z'/%3E%3C/g%3E%3Cg fill='none' stroke='%23868686'%3E%3Cpath stroke-linecap='round' d='m116.26 6.78-1.39 1.99-.78-.8-.64-.65-.01.91-.07 8.25h-6.76l-.08-8.25-.01-.91-.63.65-.78.8-1.4-2.01 2.58-2.9c.07-.08.17-.13.28-.13h1.32l.39.7c.73 1.32 2.64 1.28 3.31-.07l.31-.63h1.15c.1 0 .2.04.27.11l.26-.26-.26.26 2.94 2.94z'/%3E%3Cpath d='M110.12 7.71h2.01v.94c0 .37-.45.67-1.01.67s-1.01-.3-1.01-.67v-.94z'/%3E%3C/g%3E%3Cpath d='M126.82 14.32c0 1.25-1.01 2.25-2.24 2.25s-2.24-1.01-2.24-2.25 1.01-2.25 2.24-2.25 2.24 1 2.24 2.25zm10.82 0c0 1.25-1.01 2.25-2.24 2.25-1.24 0-2.24-1.01-2.24-2.25s1.01-2.25 2.24-2.25c1.24 0 2.24 1 2.24 2.25zm-10.8-9.92v9.92m10.82-9.92v9.92M126.84 3.5h10.82v2.7h-10.82V3.5z' fill='none' stroke='%23868686'/%3E%3Cg fill='%23868686'%3E%3Cpath d='m170.77 3.07-.05.02a6.93 6.93 0 0 0-6.06 2.45l-.05.02-.12-.14-.99-1.18-.3 3.4 3.4.3-1.08-1.29-.08-.1.08-.1a5.68 5.68 0 0 1 4.97-2.13c3.16.28 5.49 3.09 5.16 6.26-.31 3.01-3.07 5.32-6.09 5.1a5.693 5.693 0 0 1-5.26-6.03l-1.26-.11c-.25 3.76 2.55 7.06 6.33 7.39 3.9.35 7.33-2.58 7.57-6.51.23-3.65-2.54-6.95-6.17-7.35z'/%3E%3Cpath d='M170.27 7.4c0-.34-.28-.63-.63-.63s-.63.28-.63.63v3.18c0 .17.07.32.19.44.12.11.27.18.45.18h2.37c.35 0 .63-.28.63-.63s-.28-.63-.63-.63h-1.74V7.4z'/%3E%3C/g%3E%3Cpath fill='none' stroke='%23868686' d='M186.16 3.42h7.68c1.5 0 2.71 1.21 2.71 2.71v7.74c0 1.5-1.21 2.71-2.71 2.71h-7.68c-1.5 0-2.71-1.21-2.71-2.71V6.13c0-1.49 1.21-2.71 2.71-2.71z'/%3E%3Ccircle fill='%23868686' cx='185.98' cy='8.9' r='.73'/%3E%3Ccircle fill='%23868686' cx='194.02' cy='6.7' r='.73'/%3E%3Cpath fill='none' stroke='%23868686' stroke-linecap='round' d='m185.98 13.3.4-.27c.44-.29.99-.34 1.47-.14l1.01.43c.48.21 1.04.16 1.47-.14l.79-.53c.44-.29.99-.34 1.47-.14l1.78.77'/%3E%3Cpath fill='%23868686' d='M147.66 3.31c-1.26.03-2.5.35-3.64.99-.15.08-.25.24-.25.4v11.6c0 .26.07.47.29.47.64 0 .48-.38.48-.64v-5.68c.66-.34 3.15-1.1 5.78-.09 1.57.6 3.48.72 4.31.68.82-.04 1.33-.27 1.33-.27.16-.08.27-.24.27-.41V4.69c0-.16-.1-.32-.26-.41a.616.616 0 0 0-.53-.01s-.21.12-.86.15-2.39-.06-3.84-.6c-.82-.3-1.68-.47-2.54-.51h-.54zm.07.69h.42c.73.03 1.47.18 2.18.44 1.58.58 3.49.71 4.31.67.22-.01.79-.05.96-.08v5.17c-.14.03-.74.06-1.02.08-.65.03-2.39-.06-3.83-.61-2.53-.96-5.05-.54-6.2-.08V4.7c.91-.47 2.19-.68 3.18-.7z'/%3E%3Cpath fill='none' stroke='%23868686' d='M48.07 3.46h3.72a4.5 4.5 0 0 1 4.5 4.5c0 .5-.41.91-.91.91H44.47c-.5 0-.91-.41-.91-.91 0-2.49 2.02-4.5 4.51-4.5z'/%3E%3Cpath fill='none' stroke='%23868686' stroke-linecap='round' d='M43.5 8.73c-.23.13-.52 1.16 0 1.51 1.41.95 8.46.84 11.35.56.77-.07 1.64-.43 1.72-1.19.03-.3-.1-.62-.56-.88'/%3E%3Cpath fill='none' stroke='%23868686' stroke-linecap='round' d='m43.5 10.62-.15.34c-.22.49.21 1.01.73.9.26-.06.53.05.68.27l.14.21c.34.5 1.03.6 1.49.21l.02-.02c.29-.24.68-.31 1.03-.18l.85.32c.39.15.82.13 1.2-.04l.45-.2c.41-.18.88-.18 1.3 0l.45.2c.37.17.81.15 1.17-.05l.21-.12c.34-.19.77-.15 1.07.1l.23.19c.33.27.82.19 1.04-.18l.1-.16c.1-.16-.03-.33.16-.35.45-.04 1.25-.32 1.09-.74l-.41-1.08'/%3E%3Cpath fill='none' stroke='%23868686' stroke-linecap='round' d='M43.5 12.14c-.11.25-.27.83 0 1.13.34.38 3.04 1.13 6.42 1.13 2.21 0 4.58-.34 5.98-.6.49-.09.94-.45.83-.94a1.59 1.59 0 0 0-.39-.73'/%3E%3Cpath fill='none' stroke='%23868686' stroke-linecap='round' d='M43.5 13.27c0 .5.64 2.35 1.35 2.65 1.81.76 5.73.67 8.13.53 1.29-.08 2.5-.7 3.15-1.81.3-.51.55-1.03.55-1.37'/%3E%3Cellipse fill='%23868686' cx='51.62' cy='6.46' rx='.34' ry='.38'/%3E%3Cellipse fill='%23868686' cx='52.97' cy='4.95' rx='.34' ry='.38'/%3E%3Cellipse fill='%23868686' cx='52.97' cy='7.22' rx='.34' ry='.38'/%3E%3Cellipse fill='%23868686' cx='54.32' cy='6.46' rx='.34' ry='.38'/%3E%3Cellipse fill='%23868686' cx='50.94' cy='4.95' rx='.34' ry='.38'/%3E%3Cpath fill='none' stroke='%23868686' d='M24.17 11.02V3.46c.11.11.82.9 2.75 3.1 2.47-1.65 5.61-.69 6.86 0l2.4-3.1v7.12c0 1.22-.14 2.48-.89 3.44-.97 1.25-2.67 2.53-5.29 2.53-2.85 0-4.49-1.51-5.29-2.86-.47-.8-.54-1.75-.54-2.67z'/%3E%3Cpath fill='none' stroke='%23868686' stroke-linecap='round' d='m21.22 10.04 5.38 1.2m-5.38 2.86 5.38-1.2m12.18-2.86-5.38 1.2m5.38 2.86-5.38-1.2'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' fill='%23868686' d='m29.51 12.42-.54-.75c-.19-.27 0-.64.33-.64h1.39c.33 0 .52.37.33.64l-.69.96.02.01c-.72 1.24-2.56 1.09-3.07-.26l-.07-.18c-.08-.21.03-.44.24-.52.21-.08.44.03.52.24l.07.18a.89.89 0 0 0 1.47.32z'/%3E%3Cpath fill='none' stroke='%23868686' stroke-linecap='round' d='m32.4 12.07-.07.18c-.38 1.02-1.79 1.14-2.33.19'/%3E%3Ccircle fill='%23868686' cx='27.6' cy='9.66' r='.69'/%3E%3Ccircle fill='%23868686' cx='32.4' cy='9.66' r='.69'/%3E%3C/svg%3E\");background-position:0 0}.EmojiPickerReact.epr-dark-theme .epr-category-nav>button.epr-cat-btn{background-position-y:calc(var(--epr-category-navigation-button-size)*2)}.EmojiPickerReact.epr-dark-theme:not(.epr-search-active) .epr-category-nav>button.epr-cat-btn.epr-active,.EmojiPickerReact.epr-dark-theme:not(.epr-search-active) .epr-category-nav>button.epr-cat-btn:hover{background-position-y:calc(var(--epr-category-navigation-button-size)*3)}.EmojiPickerReact button.epr-cat-btn.epr-icn-suggested{background-position-x:calc(var(--epr-category-navigation-button-size)*-8)}.EmojiPickerReact button.epr-cat-btn.epr-icn-activities{background-position-x:calc(var(--epr-category-navigation-button-size)*-4)}.EmojiPickerReact button.epr-cat-btn.epr-icn-animals_nature{background-position-x:calc(var(--epr-category-navigation-button-size)*-1)}.EmojiPickerReact button.epr-cat-btn.epr-icn-flags{background-position-x:calc(var(--epr-category-navigation-button-size)*-7)}.EmojiPickerReact button.epr-cat-btn.epr-icn-food_drink{background-position-x:calc(var(--epr-category-navigation-button-size)*-2)}.EmojiPickerReact button.epr-cat-btn.epr-icn-objects{background-position-x:calc(var(--epr-category-navigation-button-size)*-5)}.EmojiPickerReact button.epr-cat-btn.epr-icn-smileys_people{background-position-x:0}.EmojiPickerReact button.epr-cat-btn.epr-icn-symbols{background-position-x:calc(var(--epr-category-navigation-button-size)*-6)}.EmojiPickerReact button.epr-cat-btn.epr-icn-travel_places{background-position-x:calc(var(--epr-category-navigation-button-size)*-3)}";
16619
+ var css_248z$7 = ".EmojiPickerReact .epr-category-nav{display:flex;flex-direction:row;justify-content:space-around;padding:var(--epr-header-padding)}.EmojiPickerReact .epr-category-nav>button.epr-cat-btn{background-size:calc(var(--epr-category-navigation-button-size)*10);display:inline-block;height:var(--epr-category-navigation-button-size);outline:none;position:relative;transition:opacity .2s ease-in-out;width:var(--epr-category-navigation-button-size)}.EmojiPickerReact .epr-category-nav>button.epr-cat-btn:focus:before{border:2px solid var(--epr-category-icon-active-color);border-radius:50%;bottom:-2px;content:\"\";left:-2px;position:absolute;right:-2px;top:-2px}.EmojiPickerReact.epr-search-active .epr-category-nav>button.epr-cat-btn,.EmojiPickerReact.epr-search-active .epr-category-nav>button.epr-cat-btn.epr-active,.EmojiPickerReact.epr-search-active .epr-category-nav>button.epr-cat-btn:hover{cursor:default;opacity:.3;pointer-events:none}.EmojiPickerReact:not(.epr-search-active) .epr-category-nav>button.epr-cat-btn.epr-active,.EmojiPickerReact:not(.epr-search-active) .epr-category-nav>button.epr-cat-btn:hover{background-position-y:var(--epr-category-navigation-button-size);opacity:1}.EmojiPickerReact .epr-category-nav>button.epr-cat-btn{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='80' xml:space='preserve'%3E%3Cpath fill='%233371B7' d='M10 23.05c-3.84 0-6.96 3.12-6.96 6.96s3.12 6.96 6.96 6.96 6.96-3.12 6.96-6.96-3.12-6.96-6.96-6.96zm0 13.14c-3.41 0-6.18-2.77-6.18-6.18 0-3.41 2.77-6.18 6.18-6.18 3.41 0 6.18 2.77 6.18 6.18 0 3.41-2.77 6.18-6.18 6.18zm4.58-4.97a.389.389 0 0 0-.32-.16H5.74c-.13 0-.25.06-.32.16s-.09.24-.05.36A4.912 4.912 0 0 0 10 34.87c2.08 0 3.94-1.32 4.63-3.29a.42.42 0 0 0-.05-.36zM10 34.08c-1.56 0-2.97-.88-3.67-2.24h7.34A4.132 4.132 0 0 1 10 34.08zm-2.78-4.61a1.15 1.15 0 1 0-1.15-1.15c0 .63.52 1.15 1.15 1.15zm0-1.52c.2 0 .37.16.37.37 0 .2-.16.36-.37.36a.37.37 0 0 1-.37-.37c0-.19.17-.36.37-.36zm5.56 1.52a1.15 1.15 0 1 0-1.15-1.15c0 .63.52 1.15 1.15 1.15zm0-1.52c.2 0 .37.16.37.37 0 .2-.16.36-.37.36s-.37-.16-.37-.37c.01-.19.17-.36.37-.36z'/%3E%3Cpath fill='none' stroke='%233371B7' d='m64.06 33.42 2.33-.01c.21 0 .37.17.37.37v2.11c0 .21-.17.37-.37.37h-2.33a.37.37 0 0 1-.37-.37v-2.1c0-.21.16-.37.37-.37zm9.43.04h2.45c.21 0 .37.17.37.37v2.05c0 .21-.17.37-.37.37h-2.42a.37.37 0 0 1-.37-.37l-.03-2.05c0-.2.17-.37.37-.37zm-9.8-5.05H76.3v4.99H63.69v-4.99z'/%3E%3Cpath fill='none' stroke='%233371B7' d='M65.54 23.63h8.9c1.03 0 1.86.83 1.86 1.86v3.13H63.69v-3.13c0-1.02.83-1.86 1.85-1.86z'/%3E%3Ccircle fill='%233371B7' cx='66.18' cy='30.9' r='.95'/%3E%3Ccircle fill='%233371B7' cx='73.81' cy='30.9' r='.95'/%3E%3Cg fill='none' stroke='%233371B7'%3E%3Cpath d='M96.45 30.02c0 3.58-2.89 6.48-6.45 6.48s-6.45-2.9-6.45-6.48c0-3.58 2.89-6.48 6.45-6.48s6.45 2.9 6.45 6.48z'/%3E%3Cpath d='m96.26 28.64.03.12c-.87.07-2.94.1-4.64-1.15-1.07-.79-1.96-1.72-2.59-2.52-.31-.4-.56-.76-.72-1.05-.05-.08-.08-.15-.12-.22.46-.09 1.2-.18 2.04-.15 1.17.04 2.48.31 3.49 1.06 1.03.76 1.7 1.83 2.1 2.75.22.45.34.86.41 1.16zm-12.28 3.53c-.02-.04-.03-.08-.04-.12.86-.17 2.91-.42 4.73.64 1.13.65 1.91 1.51 2.43 2.27.36.53.58 1.01.7 1.32-.38.12-.97.25-1.68.28-.96.04-2.12-.13-3.23-.77-1.11-.64-1.89-1.64-2.39-2.5-.25-.44-.42-.84-.52-1.12z'/%3E%3C/g%3E%3Cg fill='none' stroke='%233371B7'%3E%3Cpath stroke-linecap='round' d='m116.26 26.8-1.39 1.99-.78-.8-.64-.65-.01.91-.07 8.25h-6.76l-.08-8.25-.01-.91-.63.65-.78.8-1.4-2.01 2.58-2.9c.07-.08.17-.13.28-.13h1.32l.39.7c.73 1.32 2.64 1.28 3.31-.07l.31-.63h1.15c.1 0 .2.04.27.11l.26-.26-.26.26 2.94 2.94z'/%3E%3Cpath d='M110.12 27.73h2.01v.94c0 .37-.45.67-1.01.67s-1.01-.3-1.01-.67v-.94z'/%3E%3C/g%3E%3Cpath d='M126.82 34.34c0 1.25-1.01 2.25-2.24 2.25s-2.24-1.01-2.24-2.25 1.01-2.25 2.24-2.25 2.24 1 2.24 2.25zm10.82 0c0 1.25-1.01 2.25-2.24 2.25-1.24 0-2.24-1.01-2.24-2.25s1.01-2.25 2.24-2.25c1.24-.01 2.24 1 2.24 2.25zm-10.8-9.92v9.92m10.82-9.92v9.92m-10.82-10.82h10.82v2.7h-10.82v-2.7z' fill='none' stroke='%233371B7'/%3E%3Cg fill='%233371B7'%3E%3Cpath d='m170.77 23.08-.05.02a6.93 6.93 0 0 0-6.06 2.45l-.05.02-.12-.14-.99-1.18-.3 3.4 3.4.3-1.08-1.29-.08-.1.08-.1a5.68 5.68 0 0 1 4.97-2.13c3.16.28 5.49 3.09 5.16 6.26-.31 3.01-3.07 5.32-6.09 5.1a5.693 5.693 0 0 1-5.26-6.03l-1.26-.11c-.25 3.76 2.55 7.06 6.33 7.39 3.9.35 7.33-2.58 7.57-6.51.23-3.65-2.54-6.94-6.17-7.35z'/%3E%3Cpath d='M170.27 27.42c0-.34-.28-.63-.63-.63s-.63.28-.63.63v3.18c0 .17.07.32.19.44.12.11.27.18.45.18h2.37c.35 0 .63-.28.63-.63s-.28-.63-.63-.63h-1.74v-2.54z'/%3E%3C/g%3E%3Cpath fill='none' stroke='%233371B7' d='M186.16 23.44h7.68c1.5 0 2.71 1.21 2.71 2.71v7.74c0 1.5-1.21 2.71-2.71 2.71h-7.68c-1.5 0-2.71-1.21-2.71-2.71v-7.74c0-1.5 1.21-2.71 2.71-2.71z'/%3E%3Ccircle fill='%233371B7' cx='185.98' cy='28.91' r='.73'/%3E%3Ccircle fill='%233371B7' cx='194.02' cy='26.72' r='.73'/%3E%3Cpath fill='none' stroke='%233371B7' stroke-linecap='round' d='m185.98 33.31.4-.27c.44-.29.99-.34 1.47-.14l1.01.43c.48.21 1.04.16 1.47-.14l.79-.53c.44-.29.99-.34 1.47-.14l1.78.77'/%3E%3Cpath fill='%233371B7' d='M147.66 23.33c-1.26.03-2.5.35-3.64.99-.15.08-.25.24-.25.4v11.6c0 .26.07.47.29.47.64 0 .48-.38.48-.64v-5.68c.66-.34 3.15-1.1 5.78-.09 1.57.6 3.48.72 4.31.68.82-.04 1.33-.27 1.33-.27.16-.08.27-.24.27-.41v-5.65c0-.16-.1-.32-.26-.41s-.37-.09-.53-.01c0 0-.21.12-.86.15s-2.39-.06-3.84-.6c-.82-.3-1.68-.47-2.54-.51-.18-.02-.36-.03-.54-.02zm.07.68h.42c.73.03 1.47.18 2.18.44 1.58.58 3.49.71 4.31.67.22-.01.79-.05.96-.08v5.17c-.14.03-.74.06-1.02.08-.65.03-2.39-.06-3.83-.61-2.53-.96-5.05-.54-6.2-.08v-4.9c.91-.45 2.19-.67 3.18-.69z'/%3E%3Cpath fill='none' stroke='%233371B7' d='M48.07 23.47h3.72a4.5 4.5 0 0 1 4.5 4.5c0 .5-.41.91-.91.91H44.47c-.5 0-.91-.41-.91-.91 0-2.48 2.02-4.5 4.51-4.5z'/%3E%3Cpath fill='none' stroke='%233371B7' stroke-linecap='round' d='M43.5 28.75c-.23.13-.52 1.16 0 1.51 1.41.95 8.46.84 11.35.56.77-.07 1.64-.43 1.72-1.19.03-.3-.1-.62-.56-.88'/%3E%3Cpath fill='none' stroke='%233371B7' stroke-linecap='round' d='m43.5 30.64-.15.34c-.22.49.21 1.01.73.9.26-.06.53.05.68.27l.14.21c.34.5 1.03.6 1.49.21l.02-.02c.29-.24.68-.31 1.03-.18l.85.32c.39.15.82.13 1.2-.04l.45-.2c.41-.18.88-.18 1.3 0l.45.2c.37.17.81.15 1.17-.05l.21-.12c.34-.19.77-.15 1.07.1l.23.19c.33.27.82.19 1.04-.18l.1-.16c.1-.16-.03-.33.16-.35.45-.04 1.25-.32 1.09-.74l-.41-1.08'/%3E%3Cpath fill='none' stroke='%233371B7' stroke-linecap='round' d='M43.5 32.15c-.11.25-.27.83 0 1.13.34.38 3.04 1.13 6.42 1.13 2.21 0 4.58-.34 5.98-.6.49-.09.94-.45.83-.94a1.59 1.59 0 0 0-.39-.73'/%3E%3Cpath fill='none' stroke='%233371B7' stroke-linecap='round' d='M43.5 33.29c0 .5.64 2.35 1.35 2.65 1.81.76 5.73.67 8.13.53 1.29-.08 2.5-.7 3.15-1.81.3-.51.55-1.03.55-1.37'/%3E%3Cellipse fill='%233371B7' cx='51.62' cy='26.48' rx='.34' ry='.38'/%3E%3Cellipse fill='%233371B7' cx='52.97' cy='24.96' rx='.34' ry='.38'/%3E%3Cellipse fill='%233371B7' cx='52.97' cy='27.23' rx='.34' ry='.38'/%3E%3Cellipse fill='%233371B7' cx='54.32' cy='26.48' rx='.34' ry='.38'/%3E%3Cellipse fill='%233371B7' cx='50.94' cy='24.96' rx='.34' ry='.38'/%3E%3Cpath fill='none' stroke='%233371B7' d='M24.17 31.03v-7.56c.11.11.82.9 2.75 3.1 2.47-1.65 5.61-.69 6.86 0l2.4-3.1v7.12c0 1.22-.14 2.48-.89 3.44-.97 1.25-2.67 2.53-5.29 2.53-2.85 0-4.49-1.51-5.29-2.86-.47-.79-.54-1.74-.54-2.67z'/%3E%3Cpath fill='none' stroke='%233371B7' stroke-linecap='round' d='m21.22 30.05 5.38 1.2m-5.38 2.86 5.38-1.2m12.18-2.86-5.38 1.2m5.38 2.86-5.38-1.2'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' fill='%233371B7' d='m29.51 32.44-.54-.75c-.19-.27 0-.64.33-.64h1.39c.33 0 .52.37.33.64l-.69.96.02.01c-.72 1.24-2.56 1.09-3.07-.26l-.07-.18c-.08-.21.03-.44.24-.52.21-.08.44.03.52.24l.07.18c.24.63 1.04.76 1.47.32z'/%3E%3Cpath fill='none' stroke='%233371B7' stroke-linecap='round' d='m32.4 32.08-.07.18c-.38 1.02-1.79 1.14-2.33.19'/%3E%3Ccircle fill='%233371B7' cx='27.6' cy='29.67' r='.69'/%3E%3Ccircle fill='%233371B7' cx='32.4' cy='29.67' r='.69'/%3E%3Cpath fill='%23C0C0BF' d='M10 43.05c-3.84 0-6.96 3.12-6.96 6.96s3.12 6.96 6.96 6.96 6.96-3.12 6.96-6.96-3.12-6.96-6.96-6.96zm0 13.14c-3.41 0-6.18-2.77-6.18-6.18 0-3.41 2.77-6.18 6.18-6.18 3.41 0 6.18 2.77 6.18 6.18 0 3.41-2.77 6.18-6.18 6.18zm4.58-4.97a.389.389 0 0 0-.32-.16H5.74c-.13 0-.25.06-.32.16s-.09.24-.05.36A4.912 4.912 0 0 0 10 54.87c2.08 0 3.94-1.32 4.63-3.29a.42.42 0 0 0-.05-.36zM10 54.08c-1.56 0-2.97-.88-3.67-2.24h7.34A4.132 4.132 0 0 1 10 54.08zm-2.78-4.61a1.15 1.15 0 1 0-1.15-1.15c0 .63.52 1.15 1.15 1.15zm0-1.52c.2 0 .37.16.37.37 0 .2-.16.36-.37.36a.37.37 0 0 1-.37-.37c0-.19.17-.36.37-.36zm5.56 1.52a1.15 1.15 0 1 0-1.15-1.15c0 .63.52 1.15 1.15 1.15zm0-1.52c.2 0 .37.16.37.37 0 .2-.16.36-.37.36s-.37-.16-.37-.37c.01-.19.17-.36.37-.36z'/%3E%3Cpath fill='none' stroke='%23C0C0BF' d='m64.06 53.42 2.33-.01c.21 0 .37.17.37.37v2.11c0 .21-.17.37-.37.37h-2.33a.37.37 0 0 1-.37-.37v-2.1c0-.21.16-.37.37-.37zm9.43.04h2.45c.21 0 .37.17.37.37v2.05c0 .21-.17.37-.37.37h-2.42a.37.37 0 0 1-.37-.37l-.03-2.05c0-.2.17-.37.37-.37zm-9.8-5.05H76.3v4.99H63.69v-4.99z'/%3E%3Cpath fill='none' stroke='%23C0C0BF' d='M65.54 43.63h8.9c1.03 0 1.86.83 1.86 1.86v3.13H63.69v-3.13c0-1.02.83-1.86 1.85-1.86z'/%3E%3Ccircle fill='%23C0C0BF' cx='66.18' cy='50.9' r='.95'/%3E%3Ccircle fill='%23C0C0BF' cx='73.81' cy='50.9' r='.95'/%3E%3Cg fill='none' stroke='%23C0C0BF'%3E%3Cpath d='M96.45 50.02c0 3.58-2.89 6.48-6.45 6.48s-6.45-2.9-6.45-6.48c0-3.58 2.89-6.48 6.45-6.48s6.45 2.9 6.45 6.48z'/%3E%3Cpath d='m96.26 48.64.03.12c-.87.07-2.94.1-4.64-1.15-1.07-.79-1.96-1.72-2.59-2.52-.31-.4-.56-.76-.72-1.05-.05-.08-.08-.15-.12-.22.46-.09 1.2-.18 2.04-.15 1.17.04 2.48.31 3.49 1.06 1.03.76 1.7 1.83 2.1 2.75.22.45.34.86.41 1.16zm-12.28 3.53c-.02-.04-.03-.08-.04-.12.86-.17 2.91-.42 4.73.64 1.13.65 1.91 1.51 2.43 2.27.36.53.58 1.01.7 1.32-.38.12-.97.25-1.68.28-.96.04-2.12-.13-3.23-.77-1.11-.64-1.89-1.64-2.39-2.5-.25-.44-.42-.84-.52-1.12z'/%3E%3C/g%3E%3Cg fill='none' stroke='%23C0C0BF'%3E%3Cpath stroke-linecap='round' d='m116.26 46.8-1.39 1.99-.78-.8-.64-.65-.01.91-.07 8.25h-6.76l-.08-8.25-.01-.91-.63.65-.78.8-1.4-2.01 2.58-2.9c.07-.08.17-.13.28-.13h1.32l.39.7c.73 1.32 2.64 1.28 3.31-.07l.31-.63h1.15c.1 0 .2.04.27.11l.26-.26-.26.26 2.94 2.94z'/%3E%3Cpath d='M110.12 47.73h2.01v.94c0 .37-.45.67-1.01.67s-1.01-.3-1.01-.67v-.94z'/%3E%3C/g%3E%3Cpath d='M126.82 54.34c0 1.25-1.01 2.25-2.24 2.25s-2.24-1.01-2.24-2.25 1.01-2.25 2.24-2.25 2.24 1 2.24 2.25zm10.82 0c0 1.25-1.01 2.25-2.24 2.25-1.24 0-2.24-1.01-2.24-2.25s1.01-2.25 2.24-2.25c1.24-.01 2.24 1 2.24 2.25zm-10.8-9.92v9.92m10.82-9.92v9.92m-10.82-10.82h10.82v2.7h-10.82v-2.7z' fill='none' stroke='%23C0C0BF'/%3E%3Cg fill='%23C0C0BF'%3E%3Cpath d='m170.77 43.08-.05.02a6.93 6.93 0 0 0-6.06 2.45l-.05.02-.12-.14-.99-1.18-.3 3.4 3.4.3-1.08-1.29-.08-.1.08-.1a5.68 5.68 0 0 1 4.97-2.13c3.16.28 5.49 3.09 5.16 6.26-.31 3.01-3.07 5.32-6.09 5.1a5.693 5.693 0 0 1-5.26-6.03l-1.26-.11c-.25 3.76 2.55 7.06 6.33 7.39 3.9.35 7.33-2.58 7.57-6.51.23-3.65-2.54-6.94-6.17-7.35z'/%3E%3Cpath d='M170.27 47.42c0-.34-.28-.63-.63-.63s-.63.28-.63.63v3.18c0 .17.07.32.19.44.12.11.27.18.45.18h2.37c.35 0 .63-.28.63-.63s-.28-.63-.63-.63h-1.74v-2.54z'/%3E%3C/g%3E%3Cpath fill='none' stroke='%23C0C0BF' d='M186.16 43.44h7.68c1.5 0 2.71 1.21 2.71 2.71v7.74c0 1.5-1.21 2.71-2.71 2.71h-7.68c-1.5 0-2.71-1.21-2.71-2.71v-7.74c0-1.5 1.21-2.71 2.71-2.71z'/%3E%3Ccircle fill='%23C0C0BF' cx='185.98' cy='48.91' r='.73'/%3E%3Ccircle fill='%23C0C0BF' cx='194.02' cy='46.72' r='.73'/%3E%3Cpath fill='none' stroke='%23C0C0BF' stroke-linecap='round' d='m185.98 53.31.4-.27c.44-.29.99-.34 1.47-.14l1.01.43c.48.21 1.04.16 1.47-.14l.79-.53c.44-.29.99-.34 1.47-.14l1.78.77'/%3E%3Cpath fill='%23C0C0BF' d='M147.66 43.33c-1.26.03-2.5.35-3.64.99-.15.08-.25.24-.25.4v11.6c0 .26.07.47.29.47.64 0 .48-.38.48-.64v-5.68c.66-.34 3.15-1.1 5.78-.09 1.57.6 3.48.72 4.31.68.82-.04 1.33-.27 1.33-.27.16-.08.27-.24.27-.41v-5.65c0-.16-.1-.32-.26-.41s-.37-.09-.53-.01c0 0-.21.12-.86.15s-2.39-.06-3.84-.6c-.82-.3-1.68-.47-2.54-.51-.18-.02-.36-.03-.54-.02zm.07.68h.42c.73.03 1.47.18 2.18.44 1.58.58 3.49.71 4.31.67.22-.01.79-.05.96-.08v5.17c-.14.03-.74.06-1.02.08-.65.03-2.39-.06-3.83-.61-2.53-.96-5.05-.54-6.2-.08v-4.9c.91-.45 2.19-.67 3.18-.69z'/%3E%3Cpath fill='none' stroke='%23C0C0BF' d='M48.07 43.47h3.72a4.5 4.5 0 0 1 4.5 4.5c0 .5-.41.91-.91.91H44.47c-.5 0-.91-.41-.91-.91 0-2.48 2.02-4.5 4.51-4.5z'/%3E%3Cpath fill='none' stroke='%23C0C0BF' stroke-linecap='round' d='M43.5 48.75c-.23.13-.52 1.16 0 1.51 1.41.95 8.46.84 11.35.56.77-.07 1.64-.43 1.72-1.19.03-.3-.1-.62-.56-.88'/%3E%3Cpath fill='none' stroke='%23C0C0BF' stroke-linecap='round' d='m43.5 50.64-.15.34c-.22.49.21 1.01.73.9.26-.06.53.05.68.27l.14.21c.34.5 1.03.6 1.49.21l.02-.02c.29-.24.68-.31 1.03-.18l.85.32c.39.15.82.13 1.2-.04l.45-.2c.41-.18.88-.18 1.3 0l.45.2c.37.17.81.15 1.17-.05l.21-.12c.34-.19.77-.15 1.07.1l.23.19c.33.27.82.19 1.04-.18l.1-.16c.1-.16-.03-.33.16-.35.45-.04 1.25-.32 1.09-.74l-.41-1.08'/%3E%3Cpath fill='none' stroke='%23C0C0BF' stroke-linecap='round' d='M43.5 52.15c-.11.25-.27.83 0 1.13.34.38 3.04 1.13 6.42 1.13 2.21 0 4.58-.34 5.98-.6.49-.09.94-.45.83-.94a1.59 1.59 0 0 0-.39-.73'/%3E%3Cpath fill='none' stroke='%23C0C0BF' stroke-linecap='round' d='M43.5 53.29c0 .5.64 2.35 1.35 2.65 1.81.76 5.73.67 8.13.53 1.29-.08 2.5-.7 3.15-1.81.3-.51.55-1.03.55-1.37'/%3E%3Cellipse fill='%23C0C0BF' cx='51.62' cy='46.48' rx='.34' ry='.38'/%3E%3Cellipse fill='%23C0C0BF' cx='52.97' cy='44.96' rx='.34' ry='.38'/%3E%3Cellipse fill='%23C0C0BF' cx='52.97' cy='47.23' rx='.34' ry='.38'/%3E%3Cellipse fill='%23C0C0BF' cx='54.32' cy='46.48' rx='.34' ry='.38'/%3E%3Cellipse fill='%23C0C0BF' cx='50.94' cy='44.96' rx='.34' ry='.38'/%3E%3Cpath fill='none' stroke='%23C0C0BF' d='M24.17 51.03v-7.56c.11.11.82.9 2.75 3.1 2.47-1.65 5.61-.69 6.86 0l2.4-3.1v7.12c0 1.22-.14 2.48-.89 3.44-.97 1.25-2.67 2.53-5.29 2.53-2.85 0-4.49-1.51-5.29-2.86-.47-.79-.54-1.74-.54-2.67z'/%3E%3Cpath fill='none' stroke='%23C0C0BF' stroke-linecap='round' d='m21.22 50.05 5.38 1.2m-5.38 2.86 5.38-1.2m12.18-2.86-5.38 1.2m5.38 2.86-5.38-1.2'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' fill='%23C0C0BF' d='m29.51 52.44-.54-.75c-.19-.27 0-.64.33-.64h1.39c.33 0 .52.37.33.64l-.69.96.02.01c-.72 1.24-2.56 1.09-3.07-.26l-.07-.18c-.08-.21.03-.44.24-.52.21-.08.44.03.52.24l.07.18c.24.63 1.04.76 1.47.32z'/%3E%3Cpath fill='none' stroke='%23C0C0BF' stroke-linecap='round' d='m32.4 52.08-.07.18c-.38 1.02-1.79 1.14-2.33.19'/%3E%3Ccircle fill='%23C0C0BF' cx='27.6' cy='49.67' r='.69'/%3E%3Ccircle fill='%23C0C0BF' cx='32.4' cy='49.67' r='.69'/%3E%3Cpath fill='%236AA9DD' d='M10 63.05c-3.84 0-6.96 3.12-6.96 6.96s3.12 6.96 6.96 6.96 6.96-3.12 6.96-6.96-3.12-6.96-6.96-6.96zm0 13.14c-3.41 0-6.18-2.77-6.18-6.18 0-3.41 2.77-6.18 6.18-6.18 3.41 0 6.18 2.77 6.18 6.18 0 3.41-2.77 6.18-6.18 6.18zm4.58-4.97a.389.389 0 0 0-.32-.16H5.74c-.13 0-.25.06-.32.16s-.09.24-.05.36A4.912 4.912 0 0 0 10 74.87c2.08 0 3.94-1.32 4.63-3.29a.42.42 0 0 0-.05-.36zM10 74.08c-1.56 0-2.97-.88-3.67-2.24h7.34A4.132 4.132 0 0 1 10 74.08zm-2.78-4.61a1.15 1.15 0 1 0-1.15-1.15c0 .63.52 1.15 1.15 1.15zm0-1.52c.2 0 .37.16.37.37 0 .2-.16.36-.37.36a.37.37 0 0 1-.37-.37c0-.19.17-.36.37-.36zm5.56 1.52a1.15 1.15 0 1 0-1.15-1.15c0 .63.52 1.15 1.15 1.15zm0-1.52c.2 0 .37.16.37.37 0 .2-.16.36-.37.36s-.37-.16-.37-.37c.01-.19.17-.36.37-.36z'/%3E%3Cpath fill='none' stroke='%236AA9DD' d='m64.06 73.42 2.33-.01c.21 0 .37.17.37.37v2.11c0 .21-.17.37-.37.37h-2.33a.37.37 0 0 1-.37-.37v-2.1c0-.21.16-.37.37-.37zm9.43.04h2.45c.21 0 .37.17.37.37v2.05c0 .21-.17.37-.37.37h-2.42a.37.37 0 0 1-.37-.37l-.03-2.05c0-.2.17-.37.37-.37zm-9.8-5.05H76.3v4.99H63.69v-4.99z'/%3E%3Cpath fill='none' stroke='%236AA9DD' d='M65.54 63.63h8.9c1.03 0 1.86.83 1.86 1.86v3.13H63.69v-3.13c0-1.02.83-1.86 1.85-1.86z'/%3E%3Ccircle fill='%236AA9DD' cx='66.18' cy='70.9' r='.95'/%3E%3Ccircle fill='%236AA9DD' cx='73.81' cy='70.9' r='.95'/%3E%3Cg fill='none' stroke='%236AA9DD'%3E%3Cpath d='M96.45 70.02c0 3.58-2.89 6.48-6.45 6.48s-6.45-2.9-6.45-6.48c0-3.58 2.89-6.48 6.45-6.48s6.45 2.9 6.45 6.48z'/%3E%3Cpath d='m96.26 68.64.03.12c-.87.07-2.94.1-4.64-1.15-1.07-.79-1.96-1.72-2.59-2.52-.31-.4-.56-.76-.72-1.05-.05-.08-.08-.15-.12-.22.46-.09 1.2-.18 2.04-.15 1.17.04 2.48.31 3.49 1.06 1.03.76 1.7 1.83 2.1 2.75.22.45.34.86.41 1.16zm-12.28 3.53c-.02-.04-.03-.08-.04-.12.86-.17 2.91-.42 4.73.64 1.13.65 1.91 1.51 2.43 2.27.36.53.58 1.01.7 1.32-.38.12-.97.25-1.68.28-.96.04-2.12-.13-3.23-.77-1.11-.64-1.89-1.64-2.39-2.5-.25-.44-.42-.84-.52-1.12z'/%3E%3C/g%3E%3Cg fill='none' stroke='%236AA9DD'%3E%3Cpath stroke-linecap='round' d='m116.26 66.8-1.39 1.99-.78-.8-.64-.65-.01.91-.07 8.25h-6.76l-.08-8.25-.01-.91-.63.65-.78.8-1.4-2.01 2.58-2.9c.07-.08.17-.13.28-.13h1.32l.39.7c.73 1.32 2.64 1.28 3.31-.07l.31-.63h1.15c.1 0 .2.04.27.11l.26-.26-.26.26 2.94 2.94z'/%3E%3Cpath d='M110.12 67.73h2.01v.94c0 .37-.45.67-1.01.67s-1.01-.3-1.01-.67v-.94z'/%3E%3C/g%3E%3Cpath d='M126.82 74.34c0 1.25-1.01 2.25-2.24 2.25s-2.24-1.01-2.24-2.25 1.01-2.25 2.24-2.25 2.24 1 2.24 2.25zm10.82 0c0 1.25-1.01 2.25-2.24 2.25-1.24 0-2.24-1.01-2.24-2.25s1.01-2.25 2.24-2.25c1.24-.01 2.24 1 2.24 2.25zm-10.8-9.92v9.92m10.82-9.92v9.92m-10.82-10.82h10.82v2.7h-10.82v-2.7z' fill='none' stroke='%236AA9DD'/%3E%3Cg fill='%236AA9DD'%3E%3Cpath d='m170.77 63.08-.05.02a6.93 6.93 0 0 0-6.06 2.45l-.05.02-.12-.14-.99-1.18-.3 3.4 3.4.3-1.08-1.29-.08-.1.08-.1a5.68 5.68 0 0 1 4.97-2.13c3.16.28 5.49 3.09 5.16 6.26-.31 3.01-3.07 5.32-6.09 5.1a5.693 5.693 0 0 1-5.26-6.03l-1.26-.11c-.25 3.76 2.55 7.06 6.33 7.39 3.9.35 7.33-2.58 7.57-6.51.23-3.65-2.54-6.94-6.17-7.35z'/%3E%3Cpath d='M170.27 67.42c0-.34-.28-.63-.63-.63s-.63.28-.63.63v3.18c0 .17.07.32.19.44.12.11.27.18.45.18h2.37c.35 0 .63-.28.63-.63s-.28-.63-.63-.63h-1.74v-2.54z'/%3E%3C/g%3E%3Cpath fill='none' stroke='%236AA9DD' d='M186.16 63.44h7.68c1.5 0 2.71 1.21 2.71 2.71v7.74c0 1.5-1.21 2.71-2.71 2.71h-7.68c-1.5 0-2.71-1.21-2.71-2.71v-7.74c0-1.5 1.21-2.71 2.71-2.71z'/%3E%3Ccircle fill='%236AA9DD' cx='185.98' cy='68.91' r='.73'/%3E%3Ccircle fill='%236AA9DD' cx='194.02' cy='66.72' r='.73'/%3E%3Cpath fill='none' stroke='%236AA9DD' stroke-linecap='round' d='m185.98 73.31.4-.27c.44-.29.99-.34 1.47-.14l1.01.43c.48.21 1.04.16 1.47-.14l.79-.53c.44-.29.99-.34 1.47-.14l1.78.77'/%3E%3Cpath fill='%236AA9DD' d='M147.66 63.33c-1.26.03-2.5.35-3.64.99-.15.08-.25.24-.25.4v11.6c0 .26.07.47.29.47.64 0 .48-.38.48-.64v-5.68c.66-.34 3.15-1.1 5.78-.09 1.57.6 3.48.72 4.31.68.82-.04 1.33-.27 1.33-.27.16-.08.27-.24.27-.41v-5.65c0-.16-.1-.32-.26-.41s-.37-.09-.53-.01c0 0-.21.12-.86.15s-2.39-.06-3.84-.6c-.82-.3-1.68-.47-2.54-.51-.18-.02-.36-.03-.54-.02zm.07.68h.42c.73.03 1.47.18 2.18.44 1.58.58 3.49.71 4.31.67.22-.01.79-.05.96-.08v5.17c-.14.03-.74.06-1.02.08-.65.03-2.39-.06-3.83-.61-2.53-.96-5.05-.54-6.2-.08v-4.9c.91-.45 2.19-.67 3.18-.69z'/%3E%3Cpath fill='none' stroke='%236AA9DD' d='M48.07 63.47h3.72a4.5 4.5 0 0 1 4.5 4.5c0 .5-.41.91-.91.91H44.47c-.5 0-.91-.41-.91-.91 0-2.48 2.02-4.5 4.51-4.5z'/%3E%3Cpath fill='none' stroke='%236AA9DD' stroke-linecap='round' d='M43.5 68.75c-.23.13-.52 1.16 0 1.51 1.41.95 8.46.84 11.35.56.77-.07 1.64-.43 1.72-1.19.03-.3-.1-.62-.56-.88'/%3E%3Cpath fill='none' stroke='%236AA9DD' stroke-linecap='round' d='m43.5 70.64-.15.34c-.22.49.21 1.01.73.9.26-.06.53.05.68.27l.14.21c.34.5 1.03.6 1.49.21l.02-.02c.29-.24.68-.31 1.03-.18l.85.32c.39.15.82.13 1.2-.04l.45-.2c.41-.18.88-.18 1.3 0l.45.2c.37.17.81.15 1.17-.05l.21-.12c.34-.19.77-.15 1.07.1l.23.19c.33.27.82.19 1.04-.18l.1-.16c.1-.16-.03-.33.16-.35.45-.04 1.25-.32 1.09-.74l-.41-1.08'/%3E%3Cpath fill='none' stroke='%236AA9DD' stroke-linecap='round' d='M43.5 72.15c-.11.25-.27.83 0 1.13.34.38 3.04 1.13 6.42 1.13 2.21 0 4.58-.34 5.98-.6.49-.09.94-.45.83-.94a1.59 1.59 0 0 0-.39-.73'/%3E%3Cpath fill='none' stroke='%236AA9DD' stroke-linecap='round' d='M43.5 73.29c0 .5.64 2.35 1.35 2.65 1.81.76 5.73.67 8.13.53 1.29-.08 2.5-.7 3.15-1.81.3-.51.55-1.03.55-1.37'/%3E%3Cellipse fill='%236AA9DD' cx='51.62' cy='66.48' rx='.34' ry='.38'/%3E%3Cellipse fill='%236AA9DD' cx='52.97' cy='64.96' rx='.34' ry='.38'/%3E%3Cellipse fill='%236AA9DD' cx='52.97' cy='67.23' rx='.34' ry='.38'/%3E%3Cellipse fill='%236AA9DD' cx='54.32' cy='66.48' rx='.34' ry='.38'/%3E%3Cellipse fill='%236AA9DD' cx='50.94' cy='64.96' rx='.34' ry='.38'/%3E%3Cpath fill='none' stroke='%236AA9DD' d='M24.17 71.03v-7.56c.11.11.82.9 2.75 3.1 2.47-1.65 5.61-.69 6.86 0l2.4-3.1v7.12c0 1.22-.14 2.48-.89 3.44-.97 1.25-2.67 2.53-5.29 2.53-2.85 0-4.49-1.51-5.29-2.86-.47-.79-.54-1.74-.54-2.67z'/%3E%3Cpath fill='none' stroke='%236AA9DD' stroke-linecap='round' d='m21.22 70.05 5.38 1.2m-5.38 2.86 5.38-1.2m12.18-2.86-5.38 1.2m5.38 2.86-5.38-1.2'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' fill='%236AA9DD' d='m29.51 72.44-.54-.75c-.19-.27 0-.64.33-.64h1.39c.33 0 .52.37.33.64l-.69.96.02.01c-.72 1.24-2.56 1.09-3.07-.26l-.07-.18c-.08-.21.03-.44.24-.52.21-.08.44.03.52.24l.07.18c.24.63 1.04.76 1.47.32z'/%3E%3Cpath fill='none' stroke='%236AA9DD' stroke-linecap='round' d='m32.4 72.08-.07.18c-.38 1.02-1.79 1.14-2.33.19'/%3E%3Ccircle fill='%236AA9DD' cx='27.6' cy='69.67' r='.69'/%3E%3Ccircle fill='%236AA9DD' cx='32.4' cy='69.67' r='.69'/%3E%3Cpath fill='%23868686' d='M10 3.04c-3.84 0-6.96 3.12-6.96 6.96s3.12 6.96 6.96 6.96 6.96-3.12 6.96-6.96S13.84 3.04 10 3.04zm0 13.14c-3.41 0-6.18-2.77-6.18-6.18 0-3.41 2.77-6.18 6.18-6.18 3.41 0 6.18 2.77 6.18 6.18 0 3.41-2.77 6.18-6.18 6.18zm4.58-4.97a.389.389 0 0 0-.32-.16H5.74c-.13 0-.25.06-.32.16s-.09.24-.05.36A4.912 4.912 0 0 0 10 14.86c2.08 0 3.94-1.32 4.63-3.29a.41.41 0 0 0-.05-.36zM10 14.07c-1.56 0-2.97-.88-3.67-2.24h7.34A4.132 4.132 0 0 1 10 14.07zM7.22 9.45a1.15 1.15 0 1 0 0-2.3 1.15 1.15 0 0 0 0 2.3zm0-1.51c.2 0 .37.16.37.37 0 .2-.16.36-.37.36a.37.37 0 0 1-.37-.37c0-.2.17-.36.37-.36zm5.56 1.51a1.15 1.15 0 1 0 0-2.3 1.15 1.15 0 0 0 0 2.3zm0-1.51c.2 0 .37.16.37.37 0 .2-.16.36-.37.36s-.37-.16-.37-.37c.01-.2.17-.36.37-.36z'/%3E%3Cpath fill='none' stroke='%23868686' d='m64.06 13.4 2.33-.01c.21 0 .37.17.37.37v2.11c0 .21-.17.37-.37.37h-2.33a.37.37 0 0 1-.37-.37v-2.1c0-.2.16-.37.37-.37zm9.43.05h2.45c.21 0 .37.17.37.37v2.05c0 .21-.17.37-.37.37h-2.42a.37.37 0 0 1-.37-.37l-.03-2.05c0-.2.17-.37.37-.37zm-9.8-5.05H76.3v4.99H63.69V8.4z'/%3E%3Cpath fill='none' stroke='%23868686' d='M65.54 3.62h8.9c1.03 0 1.86.83 1.86 1.86v3.13H63.69V5.48c0-1.03.83-1.86 1.85-1.86z'/%3E%3Ccircle fill='%23868686' cx='66.18' cy='10.89' r='.95'/%3E%3Ccircle fill='%23868686' cx='73.81' cy='10.89' r='.95'/%3E%3Cg fill='none' stroke='%23868686'%3E%3Cpath d='M96.45 10.01c0 3.58-2.89 6.48-6.45 6.48s-6.45-2.9-6.45-6.48c0-3.58 2.89-6.48 6.45-6.48s6.45 2.9 6.45 6.48z'/%3E%3Cpath d='m96.26 8.62.03.12c-.87.07-2.94.1-4.64-1.15-1.07-.79-1.96-1.72-2.59-2.52-.31-.4-.56-.76-.72-1.05-.05-.08-.08-.15-.12-.22.46-.09 1.2-.18 2.04-.15 1.17.04 2.48.31 3.49 1.06 1.03.76 1.7 1.83 2.1 2.75.22.46.34.87.41 1.16zm-12.28 3.53c-.02-.04-.03-.08-.04-.12.86-.17 2.91-.42 4.73.64 1.13.65 1.91 1.51 2.43 2.27.36.53.58 1.01.7 1.32-.38.12-.97.25-1.68.28-.96.04-2.12-.13-3.23-.77-1.11-.64-1.89-1.64-2.39-2.5-.25-.44-.42-.83-.52-1.12z'/%3E%3C/g%3E%3Cg fill='none' stroke='%23868686'%3E%3Cpath stroke-linecap='round' d='m116.26 6.78-1.39 1.99-.78-.8-.64-.65-.01.91-.07 8.25h-6.76l-.08-8.25-.01-.91-.63.65-.78.8-1.4-2.01 2.58-2.9c.07-.08.17-.13.28-.13h1.32l.39.7c.73 1.32 2.64 1.28 3.31-.07l.31-.63h1.15c.1 0 .2.04.27.11l.26-.26-.26.26 2.94 2.94z'/%3E%3Cpath d='M110.12 7.71h2.01v.94c0 .37-.45.67-1.01.67s-1.01-.3-1.01-.67v-.94z'/%3E%3C/g%3E%3Cpath d='M126.82 14.32c0 1.25-1.01 2.25-2.24 2.25s-2.24-1.01-2.24-2.25 1.01-2.25 2.24-2.25 2.24 1 2.24 2.25zm10.82 0c0 1.25-1.01 2.25-2.24 2.25-1.24 0-2.24-1.01-2.24-2.25s1.01-2.25 2.24-2.25c1.24 0 2.24 1 2.24 2.25zm-10.8-9.92v9.92m10.82-9.92v9.92M126.84 3.5h10.82v2.7h-10.82V3.5z' fill='none' stroke='%23868686'/%3E%3Cg fill='%23868686'%3E%3Cpath d='m170.77 3.07-.05.02a6.93 6.93 0 0 0-6.06 2.45l-.05.02-.12-.14-.99-1.18-.3 3.4 3.4.3-1.08-1.29-.08-.1.08-.1a5.68 5.68 0 0 1 4.97-2.13c3.16.28 5.49 3.09 5.16 6.26-.31 3.01-3.07 5.32-6.09 5.1a5.693 5.693 0 0 1-5.26-6.03l-1.26-.11c-.25 3.76 2.55 7.06 6.33 7.39 3.9.35 7.33-2.58 7.57-6.51.23-3.65-2.54-6.95-6.17-7.35z'/%3E%3Cpath d='M170.27 7.4c0-.34-.28-.63-.63-.63s-.63.28-.63.63v3.18c0 .17.07.32.19.44.12.11.27.18.45.18h2.37c.35 0 .63-.28.63-.63s-.28-.63-.63-.63h-1.74V7.4z'/%3E%3C/g%3E%3Cpath fill='none' stroke='%23868686' d='M186.16 3.42h7.68c1.5 0 2.71 1.21 2.71 2.71v7.74c0 1.5-1.21 2.71-2.71 2.71h-7.68c-1.5 0-2.71-1.21-2.71-2.71V6.13c0-1.49 1.21-2.71 2.71-2.71z'/%3E%3Ccircle fill='%23868686' cx='185.98' cy='8.9' r='.73'/%3E%3Ccircle fill='%23868686' cx='194.02' cy='6.7' r='.73'/%3E%3Cpath fill='none' stroke='%23868686' stroke-linecap='round' d='m185.98 13.3.4-.27c.44-.29.99-.34 1.47-.14l1.01.43c.48.21 1.04.16 1.47-.14l.79-.53c.44-.29.99-.34 1.47-.14l1.78.77'/%3E%3Cpath fill='%23868686' d='M147.66 3.31c-1.26.03-2.5.35-3.64.99-.15.08-.25.24-.25.4v11.6c0 .26.07.47.29.47.64 0 .48-.38.48-.64v-5.68c.66-.34 3.15-1.1 5.78-.09 1.57.6 3.48.72 4.31.68.82-.04 1.33-.27 1.33-.27.16-.08.27-.24.27-.41V4.69c0-.16-.1-.32-.26-.41a.616.616 0 0 0-.53-.01s-.21.12-.86.15-2.39-.06-3.84-.6c-.82-.3-1.68-.47-2.54-.51h-.54zm.07.69h.42c.73.03 1.47.18 2.18.44 1.58.58 3.49.71 4.31.67.22-.01.79-.05.96-.08v5.17c-.14.03-.74.06-1.02.08-.65.03-2.39-.06-3.83-.61-2.53-.96-5.05-.54-6.2-.08V4.7c.91-.47 2.19-.68 3.18-.7z'/%3E%3Cpath fill='none' stroke='%23868686' d='M48.07 3.46h3.72a4.5 4.5 0 0 1 4.5 4.5c0 .5-.41.91-.91.91H44.47c-.5 0-.91-.41-.91-.91 0-2.49 2.02-4.5 4.51-4.5z'/%3E%3Cpath fill='none' stroke='%23868686' stroke-linecap='round' d='M43.5 8.73c-.23.13-.52 1.16 0 1.51 1.41.95 8.46.84 11.35.56.77-.07 1.64-.43 1.72-1.19.03-.3-.1-.62-.56-.88'/%3E%3Cpath fill='none' stroke='%23868686' stroke-linecap='round' d='m43.5 10.62-.15.34c-.22.49.21 1.01.73.9.26-.06.53.05.68.27l.14.21c.34.5 1.03.6 1.49.21l.02-.02c.29-.24.68-.31 1.03-.18l.85.32c.39.15.82.13 1.2-.04l.45-.2c.41-.18.88-.18 1.3 0l.45.2c.37.17.81.15 1.17-.05l.21-.12c.34-.19.77-.15 1.07.1l.23.19c.33.27.82.19 1.04-.18l.1-.16c.1-.16-.03-.33.16-.35.45-.04 1.25-.32 1.09-.74l-.41-1.08'/%3E%3Cpath fill='none' stroke='%23868686' stroke-linecap='round' d='M43.5 12.14c-.11.25-.27.83 0 1.13.34.38 3.04 1.13 6.42 1.13 2.21 0 4.58-.34 5.98-.6.49-.09.94-.45.83-.94a1.59 1.59 0 0 0-.39-.73'/%3E%3Cpath fill='none' stroke='%23868686' stroke-linecap='round' d='M43.5 13.27c0 .5.64 2.35 1.35 2.65 1.81.76 5.73.67 8.13.53 1.29-.08 2.5-.7 3.15-1.81.3-.51.55-1.03.55-1.37'/%3E%3Cellipse fill='%23868686' cx='51.62' cy='6.46' rx='.34' ry='.38'/%3E%3Cellipse fill='%23868686' cx='52.97' cy='4.95' rx='.34' ry='.38'/%3E%3Cellipse fill='%23868686' cx='52.97' cy='7.22' rx='.34' ry='.38'/%3E%3Cellipse fill='%23868686' cx='54.32' cy='6.46' rx='.34' ry='.38'/%3E%3Cellipse fill='%23868686' cx='50.94' cy='4.95' rx='.34' ry='.38'/%3E%3Cpath fill='none' stroke='%23868686' d='M24.17 11.02V3.46c.11.11.82.9 2.75 3.1 2.47-1.65 5.61-.69 6.86 0l2.4-3.1v7.12c0 1.22-.14 2.48-.89 3.44-.97 1.25-2.67 2.53-5.29 2.53-2.85 0-4.49-1.51-5.29-2.86-.47-.8-.54-1.75-.54-2.67z'/%3E%3Cpath fill='none' stroke='%23868686' stroke-linecap='round' d='m21.22 10.04 5.38 1.2m-5.38 2.86 5.38-1.2m12.18-2.86-5.38 1.2m5.38 2.86-5.38-1.2'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' fill='%23868686' d='m29.51 12.42-.54-.75c-.19-.27 0-.64.33-.64h1.39c.33 0 .52.37.33.64l-.69.96.02.01c-.72 1.24-2.56 1.09-3.07-.26l-.07-.18c-.08-.21.03-.44.24-.52.21-.08.44.03.52.24l.07.18a.89.89 0 0 0 1.47.32z'/%3E%3Cpath fill='none' stroke='%23868686' stroke-linecap='round' d='m32.4 12.07-.07.18c-.38 1.02-1.79 1.14-2.33.19'/%3E%3Ccircle fill='%23868686' cx='27.6' cy='9.66' r='.69'/%3E%3Ccircle fill='%23868686' cx='32.4' cy='9.66' r='.69'/%3E%3C/svg%3E\");background-position:0 0}.EmojiPickerReact.epr-dark-theme .epr-category-nav>button.epr-cat-btn{background-position-y:calc(var(--epr-category-navigation-button-size)*2)}.EmojiPickerReact.epr-dark-theme:not(.epr-search-active) .epr-category-nav>button.epr-cat-btn.epr-active,.EmojiPickerReact.epr-dark-theme:not(.epr-search-active) .epr-category-nav>button.epr-cat-btn:hover{background-position-y:calc(var(--epr-category-navigation-button-size)*3)}.EmojiPickerReact button.epr-cat-btn.epr-icn-suggested{background-position-x:calc(var(--epr-category-navigation-button-size)*-8)}.EmojiPickerReact button.epr-cat-btn.epr-icn-activities{background-position-x:calc(var(--epr-category-navigation-button-size)*-4)}.EmojiPickerReact button.epr-cat-btn.epr-icn-animals_nature{background-position-x:calc(var(--epr-category-navigation-button-size)*-1)}.EmojiPickerReact button.epr-cat-btn.epr-icn-flags{background-position-x:calc(var(--epr-category-navigation-button-size)*-7)}.EmojiPickerReact button.epr-cat-btn.epr-icn-food_drink{background-position-x:calc(var(--epr-category-navigation-button-size)*-2)}.EmojiPickerReact button.epr-cat-btn.epr-icn-objects{background-position-x:calc(var(--epr-category-navigation-button-size)*-5)}.EmojiPickerReact button.epr-cat-btn.epr-icn-smileys_people{background-position-x:0}.EmojiPickerReact button.epr-cat-btn.epr-icn-symbols{background-position-x:calc(var(--epr-category-navigation-button-size)*-6)}.EmojiPickerReact button.epr-cat-btn.epr-icn-travel_places{background-position-x:calc(var(--epr-category-navigation-button-size)*-3)}";
16288
16620
  styleInject(css_248z$7);
16289
16621
 
16290
16622
  function CategoryNavigation() {
16291
16623
  var categoriesConfig = useCategoriesConfig();
16624
+ var CategoryNavigationRef = useCategoryNavigationRef();
16292
16625
 
16293
16626
  var _useActiveCategorySta = useActiveCategoryState(),
16294
16627
  activeCategory = _useActiveCategorySta[0],
16295
16628
  setActiveCategoryAndScroll = _useActiveCategorySta[2];
16296
16629
 
16297
16630
  return createElement("div", {
16298
- className: "epr-category-nav"
16631
+ className: "epr-category-nav",
16632
+ ref: CategoryNavigationRef
16299
16633
  }, categoriesConfig.map(function (categoryConfig) {
16300
16634
  var _clsx;
16301
16635
 
16302
16636
  var category = categoryFromCategoryConfig(categoryConfig);
16303
16637
  return createElement("button", {
16304
- className: clsx('epr-cat-btn', "epr-icn-" + category, (_clsx = {}, _clsx['epr-active'] = category === activeCategory, _clsx)),
16638
+ className: clsx('epr-cat-btn', "epr-icn-" + category, (_clsx = {}, _clsx[ClassNames.active] = category === activeCategory, _clsx)),
16305
16639
  key: category,
16306
16640
  onClick: function onClick() {
16307
16641
  return setActiveCategoryAndScroll(category);
@@ -16310,21 +16644,19 @@ function CategoryNavigation() {
16310
16644
  }));
16311
16645
  }
16312
16646
 
16313
- var css_248z$8 = ".EmojiPickerReact .epr-search-container{display:block;flex:1;min-width:0}.EmojiPickerReact .epr-search-container input.epr-search{background-color:var(--epr-search-bar-bg-color);border:1px solid var(--epr-search-bar-bg-color);border-radius:var(--epr-search-input-border-radius);color:var(--epr-search-bar-text-color);height:var(--epr-search-input-height);outline:none;padding:var(--epr-search-input-padding);transition:all .2s ease-in-out;width:100%}.EmojiPickerReact .epr-search-container button.epr-btn-clear-search{background-color:transparent;background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='80' xml:space='preserve'%3E%3Cpath fill='%23868686' d='M6.98 13.59a.53.53 0 0 0 .74 0l2.42-2.42 2.43 2.43a.53.53 0 0 0 .74 0c.21-.21.21-.54 0-.75l-2.43-2.43L13.32 8c.21-.21.21-.54 0-.75a.525.525 0 0 0-.75 0l-2.42 2.42-2.41-2.4a.525.525 0 0 0-.75 0c-.21.21-.21.54 0 .75l2.41 2.41-2.42 2.42c-.21.2-.21.54 0 .74z'/%3E%3Cpath fill='%23868686' d='M10.15 18.43c4.41 0 8-3.59 8-8s-3.59-8-8-8-8 3.59-8 8 3.59 8 8 8zm0-14.94c3.83 0 6.94 3.11 6.94 6.94 0 3.83-3.11 6.94-6.94 6.94-3.83 0-6.94-3.11-6.94-6.94 0-3.83 3.12-6.94 6.94-6.94z'/%3E%3Cpath fill='%233371B7' d='M6.98 33.59a.53.53 0 0 0 .74 0l2.42-2.42 2.43 2.43a.53.53 0 0 0 .74 0c.21-.21.21-.54 0-.75l-2.43-2.43L13.32 28c.21-.21.21-.54 0-.75a.525.525 0 0 0-.75 0l-2.42 2.42-2.41-2.41a.525.525 0 0 0-.75 0c-.21.21-.21.54 0 .75l2.41 2.41-2.42 2.42c-.21.21-.21.55 0 .75z'/%3E%3Cpath fill='%233371B7' d='M10.15 38.43c4.41 0 8-3.59 8-8s-3.59-8-8-8-8 3.59-8 8 3.59 8 8 8zm0-14.94c3.83 0 6.94 3.11 6.94 6.94 0 3.83-3.11 6.94-6.94 6.94-3.83 0-6.94-3.11-6.94-6.94 0-3.83 3.12-6.94 6.94-6.94z'/%3E%3Cpath fill='%23C0C0BF' d='M6.98 53.59a.53.53 0 0 0 .74 0l2.42-2.42 2.43 2.43a.53.53 0 0 0 .74 0c.21-.21.21-.54 0-.75l-2.43-2.43L13.32 48c.21-.21.21-.54 0-.75a.525.525 0 0 0-.75 0l-2.42 2.42-2.41-2.41a.525.525 0 0 0-.75 0c-.21.21-.21.54 0 .75l2.41 2.41-2.42 2.42c-.21.21-.21.55 0 .75z'/%3E%3Cpath fill='%23C0C0BF' d='M10.15 58.43c4.41 0 8-3.59 8-8s-3.59-8-8-8-8 3.59-8 8 3.59 8 8 8zm0-14.94c3.83 0 6.94 3.11 6.94 6.94 0 3.83-3.11 6.94-6.94 6.94-3.83 0-6.94-3.11-6.94-6.94 0-3.83 3.12-6.94 6.94-6.94z'/%3E%3Cpath fill='%236AA9DD' d='M6.98 73.59a.53.53 0 0 0 .74 0l2.42-2.42 2.43 2.43a.53.53 0 0 0 .74 0c.21-.21.21-.54 0-.75l-2.43-2.43L13.32 68c.21-.21.21-.54 0-.75a.525.525 0 0 0-.75 0l-2.42 2.42-2.41-2.41a.525.525 0 0 0-.75 0c-.21.21-.21.54 0 .75l2.41 2.41-2.42 2.42c-.21.21-.21.55 0 .75z'/%3E%3Cpath fill='%236AA9DD' d='M10.15 78.43c4.41 0 8-3.59 8-8s-3.59-8-8-8-8 3.59-8 8 3.59 8 8 8zm0-14.94c3.83 0 6.94 3.11 6.94 6.94 0 3.83-3.11 6.94-6.94 6.94-3.83 0-6.94-3.11-6.94-6.94 0-3.83 3.12-6.94 6.94-6.94z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-size:20px;height:20px;position:absolute;right:10px;top:50%;transform:translateY(-50%);width:20px}.EmojiPickerReact .epr-search-container button.epr-btn-clear-search:hover{background-position-y:-20px}.EmojiPickerReact..epr-dark-theme .epr-search-container button.epr-btn-clear-search{background-position-y:-40px}.EmojiPickerReact..epr-dark-theme .epr-search-container button.epr-btn-clear-search:hover{background-position-y:-60px}.EmojiPickerReact .epr-search-container .epr-icn-search{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='40' xml:space='preserve'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' fill='%23868686' d='M12 8.81c0 2.08-1.68 3.76-3.76 3.76s-3.76-1.68-3.76-3.76 1.68-3.76 3.76-3.76S12 6.73 12 8.81zm-.77 3.91c-.83.64-1.87 1.01-2.99 1.01-2.72 0-4.92-2.2-4.92-4.92 0-2.72 2.2-4.92 4.92-4.92 2.72 0 4.92 2.2 4.92 4.92 0 1.13-.38 2.16-1.01 2.99l3.94 3.93c.25.25.25.66 0 .92-.25.25-.66.25-.92 0l-3.94-3.93z'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' fill='%23C0C0BF' d='M12 28.81c0 2.08-1.68 3.76-3.76 3.76s-3.76-1.68-3.76-3.76 1.68-3.76 3.76-3.76S12 26.73 12 28.81zm-.77 3.91c-.83.64-1.87 1.01-2.99 1.01-2.72 0-4.92-2.2-4.92-4.92 0-2.72 2.2-4.92 4.92-4.92 2.72 0 4.92 2.2 4.92 4.92 0 1.13-.38 2.16-1.01 2.99l3.94 3.93c.25.25.25.66 0 .92-.25.25-.66.25-.92 0l-3.94-3.93z'/%3E%3C/svg%3E\");background-position:0 0;background-repeat:no-repeat;background-size:20px;content:\"\";height:20px;left:10px;position:absolute;top:50%;transform:translateY(-50%);width:20px}.EmojiPickerReact.epr-dark-theme .epr-search-container .epr-icn-search{background-position-y:-20px}.EmojiPickerReact .epr-search-container input.epr-search::-moz-placeholder{color:var(--epr-search-bar-placeholder-color)}.EmojiPickerReact .epr-search-container input.epr-search::placeholder{color:var(--epr-search-bar-placeholder-color)}.EmojiPickerReact .epr-search-container input.epr-search:focus{background-color:var(--epr-search-bar-bg-color-active);border:1px solid var(--epr-search-border-color)}";
16647
+ var css_248z$8 = ".EmojiPickerReact .epr-search-container{display:block;flex:1;min-width:0}.EmojiPickerReact .epr-search-container input.epr-search{background-color:var(--epr-search-input-bg-color);border:1px solid var(--epr-search-input-bg-color);border-radius:var(--epr-search-input-border-radius);color:var(--epr-search-input-text-color);height:var(--epr-search-input-height);outline:none;padding:var(--epr-search-input-padding);transition:all .2s ease-in-out;width:100%}.EmojiPickerReact .epr-search-container button.epr-btn-clear-search{background-color:transparent;background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='80' xml:space='preserve'%3E%3Cpath fill='%23868686' d='M6.98 13.59a.53.53 0 0 0 .74 0l2.42-2.42 2.43 2.43a.53.53 0 0 0 .74 0c.21-.21.21-.54 0-.75l-2.43-2.43L13.32 8c.21-.21.21-.54 0-.75a.525.525 0 0 0-.75 0l-2.42 2.42-2.41-2.4a.525.525 0 0 0-.75 0c-.21.21-.21.54 0 .75l2.41 2.41-2.42 2.42c-.21.2-.21.54 0 .74z'/%3E%3Cpath fill='%23868686' d='M10.15 18.43c4.41 0 8-3.59 8-8s-3.59-8-8-8-8 3.59-8 8 3.59 8 8 8zm0-14.94c3.83 0 6.94 3.11 6.94 6.94 0 3.83-3.11 6.94-6.94 6.94-3.83 0-6.94-3.11-6.94-6.94 0-3.83 3.12-6.94 6.94-6.94z'/%3E%3Cpath fill='%233371B7' d='M6.98 33.59a.53.53 0 0 0 .74 0l2.42-2.42 2.43 2.43a.53.53 0 0 0 .74 0c.21-.21.21-.54 0-.75l-2.43-2.43L13.32 28c.21-.21.21-.54 0-.75a.525.525 0 0 0-.75 0l-2.42 2.42-2.41-2.41a.525.525 0 0 0-.75 0c-.21.21-.21.54 0 .75l2.41 2.41-2.42 2.42c-.21.21-.21.55 0 .75z'/%3E%3Cpath fill='%233371B7' d='M10.15 38.43c4.41 0 8-3.59 8-8s-3.59-8-8-8-8 3.59-8 8 3.59 8 8 8zm0-14.94c3.83 0 6.94 3.11 6.94 6.94 0 3.83-3.11 6.94-6.94 6.94-3.83 0-6.94-3.11-6.94-6.94 0-3.83 3.12-6.94 6.94-6.94z'/%3E%3Cpath fill='%23C0C0BF' d='M6.98 53.59a.53.53 0 0 0 .74 0l2.42-2.42 2.43 2.43a.53.53 0 0 0 .74 0c.21-.21.21-.54 0-.75l-2.43-2.43L13.32 48c.21-.21.21-.54 0-.75a.525.525 0 0 0-.75 0l-2.42 2.42-2.41-2.41a.525.525 0 0 0-.75 0c-.21.21-.21.54 0 .75l2.41 2.41-2.42 2.42c-.21.21-.21.55 0 .75z'/%3E%3Cpath fill='%23C0C0BF' d='M10.15 58.43c4.41 0 8-3.59 8-8s-3.59-8-8-8-8 3.59-8 8 3.59 8 8 8zm0-14.94c3.83 0 6.94 3.11 6.94 6.94 0 3.83-3.11 6.94-6.94 6.94-3.83 0-6.94-3.11-6.94-6.94 0-3.83 3.12-6.94 6.94-6.94z'/%3E%3Cpath fill='%236AA9DD' d='M6.98 73.59a.53.53 0 0 0 .74 0l2.42-2.42 2.43 2.43a.53.53 0 0 0 .74 0c.21-.21.21-.54 0-.75l-2.43-2.43L13.32 68c.21-.21.21-.54 0-.75a.525.525 0 0 0-.75 0l-2.42 2.42-2.41-2.41a.525.525 0 0 0-.75 0c-.21.21-.21.54 0 .75l2.41 2.41-2.42 2.42c-.21.21-.21.55 0 .75z'/%3E%3Cpath fill='%236AA9DD' d='M10.15 78.43c4.41 0 8-3.59 8-8s-3.59-8-8-8-8 3.59-8 8 3.59 8 8 8zm0-14.94c3.83 0 6.94 3.11 6.94 6.94 0 3.83-3.11 6.94-6.94 6.94-3.83 0-6.94-3.11-6.94-6.94 0-3.83 3.12-6.94 6.94-6.94z'/%3E%3C/svg%3E\");background-repeat:no-repeat;background-size:20px;height:20px;position:absolute;right:var(--epr-search-bar-inner-padding);top:50%;transform:translateY(-50%);width:20px}.EmojiPickerReact .epr-search-container button.epr-btn-clear-search:hover{background-position-y:-20px}.EmojiPickerReact..epr-dark-theme .epr-search-container button.epr-btn-clear-search{background-position-y:-40px}.EmojiPickerReact..epr-dark-theme .epr-search-container button.epr-btn-clear-search:hover{background-position-y:-60px}.EmojiPickerReact .epr-search-container .epr-icn-search{background-image:url(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='40' xml:space='preserve'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' fill='%23868686' d='M12 8.81c0 2.08-1.68 3.76-3.76 3.76s-3.76-1.68-3.76-3.76 1.68-3.76 3.76-3.76S12 6.73 12 8.81zm-.77 3.91c-.83.64-1.87 1.01-2.99 1.01-2.72 0-4.92-2.2-4.92-4.92 0-2.72 2.2-4.92 4.92-4.92 2.72 0 4.92 2.2 4.92 4.92 0 1.13-.38 2.16-1.01 2.99l3.94 3.93c.25.25.25.66 0 .92-.25.25-.66.25-.92 0l-3.94-3.93z'/%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' fill='%23C0C0BF' d='M12 28.81c0 2.08-1.68 3.76-3.76 3.76s-3.76-1.68-3.76-3.76 1.68-3.76 3.76-3.76S12 26.73 12 28.81zm-.77 3.91c-.83.64-1.87 1.01-2.99 1.01-2.72 0-4.92-2.2-4.92-4.92 0-2.72 2.2-4.92 4.92-4.92 2.72 0 4.92 2.2 4.92 4.92 0 1.13-.38 2.16-1.01 2.99l3.94 3.93c.25.25.25.66 0 .92-.25.25-.66.25-.92 0l-3.94-3.93z'/%3E%3C/svg%3E\");background-position:0 0;background-repeat:no-repeat;background-size:20px;content:\"\";height:20px;left:var(--epr-search-bar-inner-padding);position:absolute;top:50%;transform:translateY(-50%);width:20px}.EmojiPickerReact.epr-dark-theme .epr-search-container .epr-icn-search{background-position-y:-20px}.EmojiPickerReact .epr-search-container input.epr-search::-moz-placeholder{color:var(--epr-search-input-placeholder-color)}.EmojiPickerReact .epr-search-container input.epr-search::placeholder{color:var(--epr-search-input-placeholder-color)}.EmojiPickerReact .epr-search-container input.epr-search:focus{background-color:var(--epr-search-input-bg-color-active);border:1px solid var(--epr-search-border-color)}";
16314
16648
  styleInject(css_248z$8);
16315
16649
 
16316
16650
  function Search() {
16317
- var _useCloseAllOpenToggl = useCloseAllOpenToggles(),
16318
- closeAllOpenToggles = _useCloseAllOpenToggl.closeAllOpenToggles;
16319
-
16651
+ var closeAllOpenToggles = useCloseAllOpenToggles();
16652
+ var SearchInputRef = useSearchInputRef();
16653
+ var clearSearch = useClearSearch();
16320
16654
  var placeholder = useSearchPlaceHolderConfig();
16321
16655
  var autoFocus = useAutoFocusSearchConfig();
16322
16656
 
16323
16657
  var _useFilter = useFilter(),
16324
16658
  _onChange = _useFilter.onChange,
16325
- searchTerm = _useFilter.searchTerm,
16326
- clearSearch = _useFilter.clearSearch,
16327
- SearchInputRef = _useFilter.SearchInputRef;
16659
+ searchTerm = _useFilter.searchTerm;
16328
16660
 
16329
16661
  return createElement(Relative, {
16330
16662
  className: "epr-search-container"
@@ -16348,10 +16680,11 @@ function Search() {
16348
16680
  }) : null);
16349
16681
  }
16350
16682
 
16351
- var css_248z$9 = ".EmojiPickerReact .epr-skin-tones{align-items:center;display:flex;flex-basis:30px;justify-content:flex-end;transition:all .3s ease-in-out}.EmojiPickerReact .epr-skin-tones.open{flex-basis:170px}.EmojiPickerReact .epr-skin-tone-select{height:16px;position:relative;width:16px}.EmojiPickerReact .epr-skin-tones.open .epr-tone{transition:transform .3s ease-in-out,opacity .3s ease-in-out}.EmojiPickerReact .epr-skin-tones:not(.open) .epr-tone{opacity:0;z-index:0}.EmojiPickerReact .epr-skin-tones .epr-tone{border-radius:4px;box-shadow:0 0 0 0 var(--epr-active-skin-hover-color);cursor:pointer;display:block;height:100%;position:absolute;right:0;transition:transform .3s ease-in-out,opacity .5s ease-in-out;width:100%;z-index:1}.EmojiPickerReact .epr-skin-tones .epr-tone:hover{box-shadow:0 0 0 5px var(--epr-active-skin-hover-color)}.EmojiPickerReact .epr-skin-tones.open .epr-skin-tone-select .epr-tone.epr-active:after{border:1px solid var(--epr-active-skin-tone-indicator-border-color);border-radius:5px;bottom:-2px;content:\"\";left:-2px;position:absolute;right:-2px;top:-2px}.EmojiPickerReact .epr-skin-tones .epr-tone.epr-active{opacity:1;z-index:1}.EmojiPickerReact .epr-skin-tones .epr-tone.epr-tone-neutral{background-color:#ffd225}.EmojiPickerReact .epr-skin-tones .epr-tone.epr-tone-1f3fb{background-color:#ffdfbd}.EmojiPickerReact .epr-skin-tones .epr-tone.epr-tone-1f3fc{background-color:#e9c197}.EmojiPickerReact .epr-skin-tones .epr-tone.epr-tone-1f3fd{background-color:#c88e62}.EmojiPickerReact .epr-skin-tones .epr-tone.epr-tone-1f3fe{background-color:#a86637}.EmojiPickerReact .epr-skin-tones .epr-tone.epr-tone-1f3ff{background-color:#60463a}";
16683
+ var css_248z$9 = ".EmojiPickerReact .epr-skin-tones{--epr-skin-tone-size:16px;align-items:center;display:flex;flex-basis:30px;justify-content:flex-end;transition:all .3s ease-in-out}.EmojiPickerReact .epr-skin-tones.open{flex-basis:170px}.EmojiPickerReact .epr-skin-tone-select{height:var(--epr-skin-tone-size);position:relative;width:var(--epr-skin-tone-size)}.EmojiPickerReact .epr-skin-tones.open .epr-tone{transition:transform .3s ease-in-out,opacity .3s ease-in-out}.EmojiPickerReact .epr-skin-tones:not(.open) .epr-tone{opacity:0;z-index:0}.EmojiPickerReact .epr-skin-tones .epr-tone{border-radius:4px;box-shadow:0 0 0 0 var(--epr-active-skin-hover-color);cursor:pointer;display:block;height:var(--epr-skin-tone-size);position:absolute;right:0;transition:transform .3s ease-in-out,opacity .5s ease-in-out;width:var(--epr-skin-tone-size);z-index:1}.EmojiPickerReact .epr-skin-tones .epr-tone:hover{box-shadow:0 0 0 5px var(--epr-active-skin-hover-color)}.EmojiPickerReact .epr-skin-tones .epr-tone:focus-visible{box-shadow:0 0 0 5px var(--epr-focus-bg-color)}.EmojiPickerReact .epr-skin-tones.open .epr-skin-tone-select .epr-tone.epr-active:after{border:1px solid var(--epr-active-skin-tone-indicator-border-color);border-radius:5px;bottom:-2px;content:\"\";left:-2px;position:absolute;right:-2px;top:-2px}.EmojiPickerReact .epr-skin-tones .epr-tone.epr-active{opacity:1;z-index:1}.EmojiPickerReact .epr-skin-tones .epr-tone.epr-tone-neutral{background-color:#ffd225}.EmojiPickerReact .epr-skin-tones .epr-tone.epr-tone-1f3fb{background-color:#ffdfbd}.EmojiPickerReact .epr-skin-tones .epr-tone.epr-tone-1f3fc{background-color:#e9c197}.EmojiPickerReact .epr-skin-tones .epr-tone.epr-tone-1f3fd{background-color:#c88e62}.EmojiPickerReact .epr-skin-tones .epr-tone.epr-tone-1f3fe{background-color:#a86637}.EmojiPickerReact .epr-skin-tones .epr-tone.epr-tone-1f3ff{background-color:#60463a}";
16352
16684
  styleInject(css_248z$9);
16353
16685
 
16354
16686
  function SkinTonePicker() {
16687
+ var SkinTonePickerRef = useSkinTonePickerRef();
16355
16688
  var isDisabled = useSkinTonesDisabledConfig();
16356
16689
 
16357
16690
  var _useSkinToneFanOpenSt = useSkinToneFanOpenState(),
@@ -16362,8 +16695,7 @@ function SkinTonePicker() {
16362
16695
  activeSkinTone = _useActiveSkinToneSta[0],
16363
16696
  setActiveSkinTone = _useActiveSkinToneSta[1];
16364
16697
 
16365
- var _useCloseAllOpenToggl = useCloseAllOpenToggles(),
16366
- closeAllOpenToggles = _useCloseAllOpenToggl.closeAllOpenToggles;
16698
+ var closeAllOpenToggles = useCloseAllOpenToggles();
16367
16699
 
16368
16700
  if (isDisabled) {
16369
16701
  return null;
@@ -16377,7 +16709,8 @@ function SkinTonePicker() {
16377
16709
  className: "epr-skin-tone-select",
16378
16710
  onClick: function onClick() {
16379
16711
  return setIsOpen(!isOpen);
16380
- }
16712
+ },
16713
+ ref: SkinTonePickerRef
16381
16714
  }, skinToneVariations.map(function (skinToneVariation, i) {
16382
16715
  var _clsx;
16383
16716
 
@@ -16391,7 +16724,8 @@ function SkinTonePicker() {
16391
16724
  closeAllOpenToggles();
16392
16725
  },
16393
16726
  key: skinToneVariation,
16394
- className: clsx("epr-tone-" + skinToneVariation, 'epr-tone', (_clsx = {}, _clsx['epr-active'] = active, _clsx))
16727
+ className: clsx("epr-tone-" + skinToneVariation, 'epr-tone', (_clsx = {}, _clsx[ClassNames.active] = active, _clsx)),
16728
+ tabIndex: isOpen ? 0 : -1
16395
16729
  });
16396
16730
  })));
16397
16731
  }
@@ -16414,6 +16748,487 @@ function useIsSearchMode() {
16414
16748
  return !!searchTerm;
16415
16749
  }
16416
16750
 
16751
+ function getActiveElement() {
16752
+ return document.activeElement;
16753
+ }
16754
+
16755
+ function focusFirstVisibleEmoji(parent) {
16756
+ focusElement(firstVisibleEmoji(parent));
16757
+ }
16758
+ function focusAndClickFirstVisibleEmoji(parent) {
16759
+ var firstEmoji = firstVisibleEmoji(parent);
16760
+ focusElement(firstEmoji);
16761
+ firstEmoji == null ? void 0 : firstEmoji.click();
16762
+ }
16763
+ function focusLastVisibleEmoji(parent) {
16764
+ focusElement(lastVisibleEmoji(parent));
16765
+ }
16766
+ function focusNextVisibleEmoji(element) {
16767
+ if (!element) {
16768
+ return;
16769
+ }
16770
+
16771
+ var next = nextVisibleEmoji(element);
16772
+
16773
+ if (!next) {
16774
+ return focusFirstVisibleEmoji(nextCategory(element));
16775
+ }
16776
+
16777
+ focusElement(next);
16778
+ }
16779
+ function focusPrevVisibleEmoji(element) {
16780
+ if (!element) {
16781
+ return;
16782
+ }
16783
+
16784
+ var prev = prevVisibleEmoji(element);
16785
+
16786
+ if (!prev) {
16787
+ return focusLastVisibleEmoji(prevCategory(element));
16788
+ }
16789
+
16790
+ focusElement(prev);
16791
+ }
16792
+ function focusVisibleEmojiOneRowUp(element, exitUp) {
16793
+ if (!element) {
16794
+ return;
16795
+ }
16796
+
16797
+ var prev = visibleEmojiOneRowUp(element);
16798
+
16799
+ if (!prev) {
16800
+ return exitUp();
16801
+ }
16802
+
16803
+ focusElement(prev);
16804
+ }
16805
+ function focusVisibleEmojiOneRowDown(element) {
16806
+ if (!element) {
16807
+ return;
16808
+ }
16809
+
16810
+ var next = visibleEmojiOneRowDown(element);
16811
+ return focusElement(next);
16812
+ }
16813
+
16814
+ function visibleEmojiOneRowUp(element) {
16815
+ if (!element) {
16816
+ return null;
16817
+ }
16818
+
16819
+ var category = closestCategory(element);
16820
+ var indexInRow = elementIndexInRow(category, element);
16821
+ var row = rowNumber(category, element);
16822
+ var countInRow = elementCountInRow(category, element);
16823
+
16824
+ if (row === 0) {
16825
+ var prevVisibleCategory = prevCategory(category);
16826
+
16827
+ if (!prevVisibleCategory) {
16828
+ return null;
16829
+ }
16830
+
16831
+ return getElementInRow(allVisibleEmojis(prevVisibleCategory), -1, // last row
16832
+ countInRow, indexInRow);
16833
+ }
16834
+
16835
+ return getElementInPrevRow(allVisibleEmojis(category), row, countInRow, indexInRow);
16836
+ }
16837
+
16838
+ function visibleEmojiOneRowDown(element) {
16839
+ if (!element) {
16840
+ return null;
16841
+ }
16842
+
16843
+ var category = closestCategory(element);
16844
+ var indexInRow = elementIndexInRow(category, element);
16845
+ var row = rowNumber(category, element);
16846
+ var countInRow = elementCountInRow(category, element);
16847
+
16848
+ if (!hasNextRow(category, element)) {
16849
+ var nextVisibleCategory = nextCategory(category);
16850
+
16851
+ if (!nextVisibleCategory) {
16852
+ return null;
16853
+ }
16854
+
16855
+ return getElementInRow(allVisibleEmojis(nextVisibleCategory), 0, countInRow, indexInRow);
16856
+ }
16857
+
16858
+ var itemInNextRow = getElementInNextRow(allVisibleEmojis(category), row, countInRow, indexInRow);
16859
+ return itemInNextRow;
16860
+ }
16861
+
16862
+ function useFocusSearchInput() {
16863
+ var SearchInputRef = useSearchInputRef();
16864
+ return useCallback(function () {
16865
+ focusElement(SearchInputRef.current);
16866
+ }, [SearchInputRef]);
16867
+ }
16868
+ function useFocusSkinTonePicker() {
16869
+ var SkinTonePickerRef = useSkinTonePickerRef();
16870
+ return useCallback(function () {
16871
+ if (!SkinTonePickerRef.current) {
16872
+ return;
16873
+ }
16874
+
16875
+ focusFirstElementChild(SkinTonePickerRef.current);
16876
+ }, [SkinTonePickerRef]);
16877
+ }
16878
+ function useFocusCategoryNavigation() {
16879
+ var CategoryNavigationRef = useCategoryNavigationRef();
16880
+ return useCallback(function () {
16881
+ if (!CategoryNavigationRef.current) {
16882
+ return;
16883
+ }
16884
+
16885
+ focusFirstElementChild(CategoryNavigationRef.current);
16886
+ }, [CategoryNavigationRef]);
16887
+ }
16888
+
16889
+ var KeyboardEvents;
16890
+
16891
+ (function (KeyboardEvents) {
16892
+ KeyboardEvents["ArrowDown"] = "ArrowDown";
16893
+ KeyboardEvents["ArrowUp"] = "ArrowUp";
16894
+ KeyboardEvents["ArrowLeft"] = "ArrowLeft";
16895
+ KeyboardEvents["ArrowRight"] = "ArrowRight";
16896
+ KeyboardEvents["Escape"] = "Escape";
16897
+ KeyboardEvents["Enter"] = "Enter";
16898
+ })(KeyboardEvents || (KeyboardEvents = {}));
16899
+
16900
+ function useKeyboardNavigation() {
16901
+ usePickerMainKeyboardEvents();
16902
+ useSearchInputKeyboardEvents();
16903
+ useSkinTonePickerKeyboardEvents();
16904
+ useCategoryNavigationKeyboardEvents();
16905
+ useBodyKeyboardEvents();
16906
+ }
16907
+
16908
+ function usePickerMainKeyboardEvents() {
16909
+ var PickerMainRef = usePickerMainRef();
16910
+ var clearSearch = useClearSearch();
16911
+ var scrollTo = useScrollTo();
16912
+ var SearchInputRef = useSearchInputRef();
16913
+ var focusSearchInput = useFocusSearchInput();
16914
+ var closeAllOpenToggles = useCloseAllOpenToggles();
16915
+ var onKeyDown = useMemo(function () {
16916
+ return function onKeyDown(event) {
16917
+ var key = event.key;
16918
+
16919
+ if (key === KeyboardEvents.Escape) {
16920
+ event.preventDefault();
16921
+ clearSearch();
16922
+ closeAllOpenToggles();
16923
+ scrollTo(0);
16924
+ focusSearchInput();
16925
+ }
16926
+ };
16927
+ }, [scrollTo, clearSearch, closeAllOpenToggles, focusSearchInput]);
16928
+ useEffect(function () {
16929
+ var current = PickerMainRef.current;
16930
+
16931
+ if (!current) {
16932
+ return;
16933
+ }
16934
+
16935
+ current.addEventListener('keydown', onKeyDown);
16936
+ return function () {
16937
+ current.removeEventListener('keydown', onKeyDown);
16938
+ };
16939
+ }, [PickerMainRef, SearchInputRef, scrollTo, onKeyDown]);
16940
+ }
16941
+
16942
+ function useSearchInputKeyboardEvents() {
16943
+ var focusSkinTonePicker = useFocusSkinTonePicker();
16944
+ var PickerMainRef = usePickerMainRef();
16945
+ var BodyRef = useBodyRef();
16946
+ var SearchInputRef = useSearchInputRef();
16947
+
16948
+ var _useSkinToneFanOpenSt = useSkinToneFanOpenState(),
16949
+ setSkinToneFanOpenState = _useSkinToneFanOpenSt[1];
16950
+
16951
+ var goDownFromSearchInput = useGoDownFromSearchInput();
16952
+ var onKeyDown = useMemo(function () {
16953
+ return function onKeyDown(event) {
16954
+ var key = event.key;
16955
+
16956
+ switch (key) {
16957
+ case KeyboardEvents.ArrowRight:
16958
+ event.preventDefault();
16959
+ setSkinToneFanOpenState(true);
16960
+ focusSkinTonePicker();
16961
+ break;
16962
+
16963
+ case KeyboardEvents.ArrowDown:
16964
+ event.preventDefault();
16965
+ goDownFromSearchInput();
16966
+ break;
16967
+
16968
+ case KeyboardEvents.Enter:
16969
+ event.preventDefault();
16970
+ focusAndClickFirstVisibleEmoji(BodyRef.current);
16971
+ break;
16972
+ }
16973
+ };
16974
+ }, [focusSkinTonePicker, goDownFromSearchInput, setSkinToneFanOpenState, BodyRef]);
16975
+ useEffect(function () {
16976
+ var current = SearchInputRef.current;
16977
+
16978
+ if (!current) {
16979
+ return;
16980
+ }
16981
+
16982
+ current.addEventListener('keydown', onKeyDown);
16983
+ return function () {
16984
+ current.removeEventListener('keydown', onKeyDown);
16985
+ };
16986
+ }, [PickerMainRef, SearchInputRef, onKeyDown]);
16987
+ }
16988
+
16989
+ function useSkinTonePickerKeyboardEvents() {
16990
+ var SkinTonePickerRef = useSkinTonePickerRef();
16991
+ var focusSearchInput = useFocusSearchInput();
16992
+ var SearchInputRef = useSearchInputRef();
16993
+ var goDownFromSearchInput = useGoDownFromSearchInput();
16994
+
16995
+ var _useSkinToneFanOpenSt2 = useSkinToneFanOpenState(),
16996
+ isOpen = _useSkinToneFanOpenSt2[0],
16997
+ setIsOpen = _useSkinToneFanOpenSt2[1];
16998
+
16999
+ var onType = useOnType();
17000
+ var onKeyDown = useMemo(function () {
17001
+ return function onKeyDown(event) {
17002
+ var key = event.key;
17003
+
17004
+ switch (key) {
17005
+ case KeyboardEvents.ArrowLeft:
17006
+ event.preventDefault();
17007
+
17008
+ if (!isOpen) {
17009
+ return focusSearchInput();
17010
+ }
17011
+
17012
+ focusNextSkinTone(focusSearchInput);
17013
+ break;
17014
+
17015
+ case KeyboardEvents.ArrowRight:
17016
+ event.preventDefault();
17017
+
17018
+ if (!isOpen) {
17019
+ return focusSearchInput();
17020
+ }
17021
+
17022
+ focusPrevSkinTone();
17023
+ break;
17024
+
17025
+ case KeyboardEvents.ArrowDown:
17026
+ event.preventDefault();
17027
+
17028
+ if (isOpen) {
17029
+ setIsOpen(false);
17030
+ }
17031
+
17032
+ goDownFromSearchInput();
17033
+ break;
17034
+
17035
+ default:
17036
+ onType(event);
17037
+ break;
17038
+ }
17039
+ };
17040
+ }, [isOpen, focusSearchInput, setIsOpen, goDownFromSearchInput, onType]);
17041
+ useEffect(function () {
17042
+ var current = SkinTonePickerRef.current;
17043
+
17044
+ if (!current) {
17045
+ return;
17046
+ }
17047
+
17048
+ current.addEventListener('keydown', onKeyDown);
17049
+ return function () {
17050
+ current.removeEventListener('keydown', onKeyDown);
17051
+ };
17052
+ }, [SkinTonePickerRef, SearchInputRef, isOpen, onKeyDown]);
17053
+ }
17054
+
17055
+ function useCategoryNavigationKeyboardEvents() {
17056
+ var focusSearchInput = useFocusSearchInput();
17057
+ var CategoryNavigationRef = useCategoryNavigationRef();
17058
+ var BodyRef = useBodyRef();
17059
+ var onType = useOnType();
17060
+ var onKeyDown = useMemo(function () {
17061
+ return function onKeyDown(event) {
17062
+ var key = event.key;
17063
+
17064
+ switch (key) {
17065
+ case KeyboardEvents.ArrowUp:
17066
+ event.preventDefault();
17067
+ focusSearchInput();
17068
+ break;
17069
+
17070
+ case KeyboardEvents.ArrowRight:
17071
+ event.preventDefault();
17072
+ focusNextElementSibling(getActiveElement());
17073
+ break;
17074
+
17075
+ case KeyboardEvents.ArrowLeft:
17076
+ event.preventDefault();
17077
+ focusPrevElementSibling(getActiveElement());
17078
+ break;
17079
+
17080
+ case KeyboardEvents.ArrowDown:
17081
+ event.preventDefault();
17082
+ focusFirstVisibleEmoji(BodyRef.current);
17083
+ break;
17084
+
17085
+ default:
17086
+ onType(event);
17087
+ break;
17088
+ }
17089
+ };
17090
+ }, [BodyRef, focusSearchInput, onType]);
17091
+ useEffect(function () {
17092
+ var current = CategoryNavigationRef.current;
17093
+
17094
+ if (!current) {
17095
+ return;
17096
+ }
17097
+
17098
+ current.addEventListener('keydown', onKeyDown);
17099
+ return function () {
17100
+ current.removeEventListener('keydown', onKeyDown);
17101
+ };
17102
+ }, [CategoryNavigationRef, BodyRef, onKeyDown]);
17103
+ }
17104
+
17105
+ function useBodyKeyboardEvents() {
17106
+ var BodyRef = useBodyRef();
17107
+ var goUpFromBody = useGoUpFromBody();
17108
+ var onType = useOnType();
17109
+ var onKeyDown = useMemo(function () {
17110
+ return function onKeyDown(event) {
17111
+ var key = event.key;
17112
+ var activeElement = buttonFromTarget(getActiveElement());
17113
+
17114
+ switch (key) {
17115
+ case KeyboardEvents.ArrowRight:
17116
+ event.preventDefault();
17117
+ focusNextVisibleEmoji(activeElement);
17118
+ break;
17119
+
17120
+ case KeyboardEvents.ArrowLeft:
17121
+ event.preventDefault();
17122
+ focusPrevVisibleEmoji(activeElement);
17123
+ break;
17124
+
17125
+ case KeyboardEvents.ArrowDown:
17126
+ event.preventDefault();
17127
+ focusVisibleEmojiOneRowDown(activeElement);
17128
+ break;
17129
+
17130
+ case KeyboardEvents.ArrowUp:
17131
+ event.preventDefault();
17132
+ focusVisibleEmojiOneRowUp(activeElement, goUpFromBody);
17133
+ break;
17134
+
17135
+ default:
17136
+ onType(event);
17137
+ break;
17138
+ }
17139
+ };
17140
+ }, [goUpFromBody, onType]);
17141
+ useEffect(function () {
17142
+ var current = BodyRef.current;
17143
+
17144
+ if (!current) {
17145
+ return;
17146
+ }
17147
+
17148
+ current.addEventListener('keydown', onKeyDown);
17149
+ return function () {
17150
+ current.removeEventListener('keydown', onKeyDown);
17151
+ };
17152
+ }, [BodyRef, onKeyDown]);
17153
+ }
17154
+
17155
+ function useGoDownFromSearchInput() {
17156
+ var focusCategoryNavigation = useFocusCategoryNavigation();
17157
+ var isSearchMode = useIsSearchMode();
17158
+ var BodyRef = useBodyRef();
17159
+ return useCallback(function goDownFromSearchInput() {
17160
+ if (isSearchMode) {
17161
+ return focusFirstVisibleEmoji(BodyRef.current);
17162
+ }
17163
+
17164
+ return focusCategoryNavigation();
17165
+ }, [BodyRef, focusCategoryNavigation, isSearchMode]);
17166
+ }
17167
+
17168
+ function useGoUpFromBody() {
17169
+ var focusSearchInput = useFocusSearchInput();
17170
+ var focusCategoryNavigation = useFocusCategoryNavigation();
17171
+ var isSearchMode = useIsSearchMode();
17172
+ return useCallback(function goUpFromEmoji() {
17173
+ if (isSearchMode) {
17174
+ return focusSearchInput();
17175
+ }
17176
+
17177
+ return focusCategoryNavigation();
17178
+ }, [focusSearchInput, isSearchMode, focusCategoryNavigation]);
17179
+ }
17180
+
17181
+ function focusNextSkinTone(exitLeft) {
17182
+ var currentSkinTone = getActiveElement();
17183
+
17184
+ if (!currentSkinTone) {
17185
+ return;
17186
+ }
17187
+
17188
+ if (!hasNextElementSibling(currentSkinTone)) {
17189
+ exitLeft();
17190
+ }
17191
+
17192
+ focusNextElementSibling(currentSkinTone);
17193
+ }
17194
+
17195
+ function focusPrevSkinTone() {
17196
+ var currentSkinTone = getActiveElement();
17197
+
17198
+ if (!currentSkinTone) {
17199
+ return;
17200
+ }
17201
+
17202
+ focusPrevElementSibling(currentSkinTone);
17203
+ }
17204
+
17205
+ function useOnType() {
17206
+ var appendSearch = useAppendSearch();
17207
+ var focusSearchInput = useFocusSearchInput();
17208
+ var closeAllOpenToggles = useCloseAllOpenToggles();
17209
+ return function onType(event) {
17210
+ var key = event.key;
17211
+
17212
+ if (hasModifier(event)) {
17213
+ return;
17214
+ }
17215
+
17216
+ if (key.match(/(^[a-zA-Z0-9]$){1}/)) {
17217
+ event.preventDefault();
17218
+ closeAllOpenToggles();
17219
+ focusSearchInput();
17220
+ appendSearch(key);
17221
+ }
17222
+ };
17223
+ }
17224
+
17225
+ function hasModifier(event) {
17226
+ var metaKey = event.metaKey,
17227
+ ctrlKey = event.ctrlKey,
17228
+ altKey = event.altKey;
17229
+ return metaKey || ctrlKey || altKey;
17230
+ }
17231
+
16417
17232
  var css_248z$b = "aside.EmojiPickerReact.epr-main{border-color:var(--epr-picker-border-color);border-radius:var(--epr-picker-border-radius);border-style:solid;border-width:1px;display:flex;flex-direction:column;height:var(--epr-picker-height);position:relative;width:var(--epr-picker-width)}";
16418
17233
  styleInject(css_248z$b);
16419
17234
 
@@ -16429,13 +17244,14 @@ function PickerRootElement(_ref2) {
16429
17244
  var theme = useThemeConfig();
16430
17245
  var searchModeActive = useIsSearchMode();
16431
17246
  var PickerMainRef = usePickerMainRef();
17247
+ useKeyboardNavigation();
16432
17248
  return createElement("aside", {
16433
17249
  className: clsx('EmojiPickerReact', 'epr-main', (_clsx = {}, _clsx[ClassNames.searchActive] = searchModeActive, _clsx['epr-dark-theme'] = theme === Theme.DARK, _clsx)),
16434
17250
  ref: PickerMainRef
16435
17251
  }, children);
16436
17252
  }
16437
17253
 
16438
- var css_248z$c = ".EmojiPickerReact{--epr-highlight-color:#007aeb;--epr-hover-bg-color:#f1f8ff;--epr-text-color:#858585;--epr-search-bar-bg-color:#f6f6f6;--epr-category-label-bg-color:#ffffffe6;--epr-picker-border-color:#e7e7e7;--epr-bg-color:#fff;--epr-emoji-variation-indicator-color:var(--epr-picker-border-color);--epr-emoji-variation-indicator-color-hover:var(--epr-text-color);--epr-picker-width:350px;--epr-picker-height:450px;--epr-emoji-size:30px;--epr-category-navigation-button-size:30px;--epr-emoji-variation-picker-bg-color:var(--epr-bg-color);--epr-emoji-variation-picker-height:55px;--epr-preview-height:70px;--epr-preview-text-color:var(--epr-text-color);--epr-preview-text-size:14px;--epr-preview-text-padding:0 10px;--epr-active-category-indicator-color:var(--epr-highlight-color);--epr-active-skin-tone-indicator-border-color:var(--epr-highlight-color);--epr-search-border-color:var(--epr-highlight-color);--epr-active-skin-hover-color:var(--epr-hover-bg-color);--epr-emoji-hover-color:var(--epr-hover-bg-color);--epr-category-label-text-color:var(--epr-text-color);--epr-emoji-padding:5px;--epr-header-padding:15px 10px;--epr-emoji-gap:2px;--epr-category-padding:0 10px;--epr-search-input-padding:0 30px;--epr-search-input-border-radius:8px;--epr-search-input-height:40px;--epr-category-label-padding:0 10px;--epr-category-label-height:40px;--epr-header-overlay-z-index:3;--epr-emoji-variations-indictator-z-index:1;--epr-category-label-z-index:2;--epr-skin-variation-picker-z-index:5;--epr-picker-border-radius:8px;--epr-search-bar-text-color:var(--epr-text-color);--epr-search-bar-placeholder-color:var(--epr-text-color);--epr-preview-border-color:var(--epr-picker-border-color);--epr-search-bar-bg-color-active:var(--epr-search-bar-bg-color)}.EmojiPickerReact.epr-dark-theme{--epr-dark:#000;--epr-emoji-variation-picker-bg-color:var(--epr-dark);--epr-highlight-color:silver;--epr-text-color:var(--epr-highlight-color);--epr-hover-bg-color:#363636f6;--epr-search-bar-bg-color:#333;--epr-category-label-bg-color:#222222e6;--epr-picker-border-color:#151617;--epr-bg-color:#222;--epr-search-bar-bg-color-active:var(--epr-dark);--epr-emoji-variation-indicator-color:#444}.EmojiPickerReact{background-color:var(--epr-bg-color);overflow:hidden}.EmojiPickerReact .epr-hidden,.EmojiPickerReact.epr-search-active .epr-hidden-on-search{display:none!important;opacity:0!important;pointer-events:none!important;visibility:hidden!important}.EmojiPickerReact *{box-sizing:border-box;font-family:sans-serif}.EmojiPickerReact button{background:none;border:0;cursor:pointer}";
17254
+ var css_248z$c = ".EmojiPickerReact{--epr-highlight-color:#007aeb;--epr-hover-bg-color:#f1f8ff;--epr-focus-bg-color:#e0f0ff;--epr-text-color:#858585;--epr-search-input-bg-color:#f6f6f6;--epr-picker-border-color:#e7e7e7;--epr-bg-color:#fff;--epr-category-icon-active-color:#6aa8de;--epr-horizontal-padding:10px;--epr-picker-width:350px;--epr-picker-height:450px;--epr-picker-border-radius:8px;--epr-search-border-color:var(--epr-highlight-color);--epr-header-padding:15px var(--epr-horizontal-padding);--epr-active-skin-tone-indicator-border-color:var(--epr-highlight-color);--epr-active-skin-hover-color:var(--epr-hover-bg-color);--epr-search-input-bg-color-active:var(--epr-search-input-bg-color);--epr-search-input-padding:0 30px;--epr-search-input-border-radius:8px;--epr-search-input-height:40px;--epr-search-input-text-color:var(--epr-text-color);--epr-search-input-placeholder-color:var(--epr-text-color);--epr-search-bar-inner-padding:var(--epr-horizontal-padding);--epr-category-navigation-button-size:30px;--epr-emoji-variation-picker-height:55px;--epr-emoji-variation-picker-bg-color:var(--epr-bg-color);--epr-preview-height:70px;--epr-preview-text-size:14px;--epr-preview-text-padding:0 var(--epr-horizontal-padding);--epr-preview-border-color:var(--epr-picker-border-color);--epr-preview-text-color:var(--epr-text-color);--epr-category-padding:0 var(--epr-horizontal-padding);--epr-category-label-bg-color:#ffffffe6;--epr-category-label-text-color:var(--epr-text-color);--epr-category-label-padding:0 var(--epr-horizontal-padding);--epr-category-label-height:40px;--epr-emoji-size:30px;--epr-emoji-padding:5px;--epr-emoji-fullsize:calc(var(--epr-emoji-size) + var(--epr-emoji-padding)*2);--epr-emoji-hover-color:var(--epr-hover-bg-color);--epr-emoji-variation-indicator-color:var(--epr-picker-border-color);--epr-emoji-variation-indicator-color-hover:var(--epr-text-color);--epr-header-overlay-z-index:3;--epr-emoji-variations-indictator-z-index:1;--epr-category-label-z-index:2;--epr-skin-variation-picker-z-index:5}.EmojiPickerReact.epr-dark-theme{--epr-dark:#000;--epr-emoji-variation-picker-bg-color:var(--epr-dark);--epr-highlight-color:silver;--epr-text-color:var(--epr-highlight-color);--epr-hover-bg-color:#363636f6;--epr-focus-bg-color:#474747;--epr-search-input-bg-color:#333;--epr-category-label-bg-color:#222222e6;--epr-picker-border-color:#151617;--epr-bg-color:#222;--epr-search-input-bg-color-active:var(--epr-dark);--epr-emoji-variation-indicator-color:#444;--epr-category-icon-active-color:#3271b7}.EmojiPickerReact{background-color:var(--epr-bg-color);overflow:hidden}.EmojiPickerReact .epr-hidden,.EmojiPickerReact.epr-search-active .epr-hidden-on-search{display:none!important;opacity:0!important;pointer-events:none!important;visibility:hidden!important}.EmojiPickerReact *{box-sizing:border-box;font-family:sans-serif}.EmojiPickerReact button{background:none;border:0;cursor:pointer;outline:none}";
16439
17255
  styleInject(css_248z$c);
16440
17256
 
16441
17257
  function EmojiPicker(props) {
@@ -16464,6 +17280,7 @@ var ErrorBoundary = /*#__PURE__*/function (_React$Component) {
16464
17280
  var _proto = ErrorBoundary.prototype;
16465
17281
 
16466
17282
  _proto.componentDidCatch = function componentDidCatch(error, errorInfo) {
17283
+ // eslint-disable-next-line no-console
16467
17284
  console.error('Emoji Picker React failed to render:', error, errorInfo);
16468
17285
  };
16469
17286