@atlaskit/emoji 64.2.0 → 64.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (184) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/cjs/api/EmojiResource.js +36 -1
  3. package/dist/cjs/api/media/SiteEmojiResource.js +10 -2
  4. package/dist/cjs/components/common/CachingEmoji.js +38 -12
  5. package/dist/cjs/components/common/DeleteButton.js +9 -13
  6. package/dist/cjs/components/common/Emoji.js +25 -36
  7. package/dist/cjs/components/common/EmojiActions.js +26 -31
  8. package/dist/cjs/components/common/EmojiButton.js +7 -7
  9. package/dist/cjs/components/common/EmojiDeletePreview.js +20 -26
  10. package/dist/cjs/components/common/EmojiErrorMessage.js +10 -14
  11. package/dist/cjs/components/common/EmojiPlaceholder.js +5 -12
  12. package/dist/cjs/components/common/EmojiPreview.js +20 -40
  13. package/dist/cjs/components/common/EmojiPreviewComponent.js +34 -0
  14. package/dist/cjs/components/common/EmojiUploadPicker.js +26 -24
  15. package/dist/cjs/components/common/EmojiUploadPreview.js +22 -28
  16. package/dist/cjs/components/common/RecordSelectionDefault.js +8 -2
  17. package/dist/cjs/components/common/ResourcedEmoji.js +25 -9
  18. package/dist/cjs/components/common/ResourcedEmojiComponent.js +33 -11
  19. package/dist/cjs/components/common/RetryableButton.js +12 -18
  20. package/dist/cjs/components/common/Scrollable.js +5 -10
  21. package/dist/cjs/components/common/UfoErrorBoundary.js +52 -0
  22. package/dist/cjs/components/common/UploadEmoji.js +8 -0
  23. package/dist/cjs/components/common/styles.js +210 -266
  24. package/dist/cjs/components/picker/CategorySelector.js +13 -12
  25. package/dist/cjs/components/picker/EmojiPicker.js +17 -6
  26. package/dist/cjs/components/picker/EmojiPickerCategoryHeading.js +8 -14
  27. package/dist/cjs/components/picker/EmojiPickerComponent.js +51 -30
  28. package/dist/cjs/components/picker/EmojiPickerEmojiRow.js +8 -12
  29. package/dist/cjs/components/picker/EmojiPickerFooter.js +8 -14
  30. package/dist/cjs/components/picker/EmojiPickerList.js +28 -9
  31. package/dist/cjs/components/picker/EmojiPickerListSearch.js +10 -8
  32. package/dist/cjs/components/picker/EmojiPickerVirtualItems.js +9 -15
  33. package/dist/cjs/components/picker/styles.js +113 -161
  34. package/dist/cjs/components/typeahead/EmojiTypeAheadComponent.js +40 -24
  35. package/dist/cjs/components/typeahead/EmojiTypeAheadItem.js +10 -13
  36. package/dist/cjs/components/typeahead/EmojiTypeAheadList.js +17 -22
  37. package/dist/cjs/components/typeahead/styles.js +17 -19
  38. package/dist/cjs/components/uploader/EmojiUploadComponent.js +22 -15
  39. package/dist/cjs/components/uploader/styles.js +4 -4
  40. package/dist/cjs/index.js +9 -3
  41. package/dist/cjs/types.js +12 -2
  42. package/dist/cjs/util/{analytics.js → analytics/analytics.js} +12 -10
  43. package/dist/cjs/util/analytics/index.js +205 -0
  44. package/dist/cjs/util/analytics/samplingUfo.js +278 -0
  45. package/dist/cjs/util/analytics/ufoExperiences.js +46 -0
  46. package/dist/cjs/util/analytics/useSampledUFOComponentExperience.js +49 -0
  47. package/dist/cjs/util/constants.js +10 -3
  48. package/dist/cjs/version.json +1 -1
  49. package/dist/es2019/api/EmojiResource.js +28 -1
  50. package/dist/es2019/api/media/SiteEmojiResource.js +10 -2
  51. package/dist/es2019/components/common/CachingEmoji.js +34 -12
  52. package/dist/es2019/components/common/DeleteButton.js +8 -6
  53. package/dist/es2019/components/common/Emoji.js +27 -36
  54. package/dist/es2019/components/common/EmojiActions.js +26 -24
  55. package/dist/es2019/components/common/EmojiButton.js +6 -6
  56. package/dist/es2019/components/common/EmojiDeletePreview.js +20 -20
  57. package/dist/es2019/components/common/EmojiErrorMessage.js +9 -8
  58. package/dist/es2019/components/common/EmojiPlaceholder.js +5 -8
  59. package/dist/es2019/components/common/EmojiPreview.js +19 -35
  60. package/dist/es2019/components/common/EmojiPreviewComponent.js +21 -0
  61. package/dist/es2019/components/common/EmojiUploadPicker.js +25 -22
  62. package/dist/es2019/components/common/EmojiUploadPreview.js +22 -22
  63. package/dist/es2019/components/common/RecordSelectionDefault.js +9 -2
  64. package/dist/es2019/components/common/ResourcedEmoji.js +22 -5
  65. package/dist/es2019/components/common/ResourcedEmojiComponent.js +32 -11
  66. package/dist/es2019/components/common/RetryableButton.js +10 -11
  67. package/dist/es2019/components/common/Scrollable.js +6 -10
  68. package/dist/es2019/components/common/UfoErrorBoundary.js +11 -0
  69. package/dist/es2019/components/common/UploadEmoji.js +4 -0
  70. package/dist/es2019/components/common/styles.js +195 -262
  71. package/dist/es2019/components/picker/CategorySelector.js +15 -12
  72. package/dist/es2019/components/picker/EmojiPicker.js +15 -6
  73. package/dist/es2019/components/picker/EmojiPickerCategoryHeading.js +8 -8
  74. package/dist/es2019/components/picker/EmojiPickerComponent.js +46 -22
  75. package/dist/es2019/components/picker/EmojiPickerEmojiRow.js +8 -7
  76. package/dist/es2019/components/picker/EmojiPickerFooter.js +8 -8
  77. package/dist/es2019/components/picker/EmojiPickerList.js +28 -8
  78. package/dist/es2019/components/picker/EmojiPickerListSearch.js +11 -8
  79. package/dist/es2019/components/picker/EmojiPickerVirtualItems.js +10 -8
  80. package/dist/es2019/components/picker/styles.js +112 -160
  81. package/dist/es2019/components/typeahead/EmojiTypeAheadComponent.js +35 -17
  82. package/dist/es2019/components/typeahead/EmojiTypeAheadItem.js +12 -13
  83. package/dist/es2019/components/typeahead/EmojiTypeAheadList.js +18 -19
  84. package/dist/es2019/components/typeahead/styles.js +14 -15
  85. package/dist/es2019/components/uploader/EmojiUploadComponent.js +19 -9
  86. package/dist/es2019/components/uploader/styles.js +4 -4
  87. package/dist/es2019/index.js +4 -3
  88. package/dist/es2019/types.js +10 -1
  89. package/dist/es2019/util/{analytics.js → analytics/analytics.js} +17 -11
  90. package/dist/es2019/util/analytics/index.js +4 -0
  91. package/dist/es2019/util/analytics/samplingUfo.js +147 -0
  92. package/dist/es2019/util/analytics/ufoExperiences.js +34 -0
  93. package/dist/es2019/util/analytics/useSampledUFOComponentExperience.js +39 -0
  94. package/dist/es2019/util/constants.js +5 -1
  95. package/dist/es2019/version.json +1 -1
  96. package/dist/esm/api/EmojiResource.js +32 -1
  97. package/dist/esm/api/media/SiteEmojiResource.js +10 -2
  98. package/dist/esm/components/common/CachingEmoji.js +36 -12
  99. package/dist/esm/components/common/DeleteButton.js +8 -6
  100. package/dist/esm/components/common/Emoji.js +26 -29
  101. package/dist/esm/components/common/EmojiActions.js +26 -25
  102. package/dist/esm/components/common/EmojiButton.js +6 -6
  103. package/dist/esm/components/common/EmojiDeletePreview.js +19 -20
  104. package/dist/esm/components/common/EmojiErrorMessage.js +9 -8
  105. package/dist/esm/components/common/EmojiPlaceholder.js +5 -8
  106. package/dist/esm/components/common/EmojiPreview.js +19 -33
  107. package/dist/esm/components/common/EmojiPreviewComponent.js +20 -0
  108. package/dist/esm/components/common/EmojiUploadPicker.js +27 -25
  109. package/dist/esm/components/common/EmojiUploadPreview.js +21 -22
  110. package/dist/esm/components/common/RecordSelectionDefault.js +6 -3
  111. package/dist/esm/components/common/ResourcedEmoji.js +22 -9
  112. package/dist/esm/components/common/ResourcedEmojiComponent.js +32 -10
  113. package/dist/esm/components/common/RetryableButton.js +11 -12
  114. package/dist/esm/components/common/Scrollable.js +6 -10
  115. package/dist/esm/components/common/UfoErrorBoundary.js +38 -0
  116. package/dist/esm/components/common/UploadEmoji.js +4 -0
  117. package/dist/esm/components/common/styles.js +192 -242
  118. package/dist/esm/components/picker/CategorySelector.js +14 -12
  119. package/dist/esm/components/picker/EmojiPicker.js +13 -6
  120. package/dist/esm/components/picker/EmojiPickerCategoryHeading.js +8 -8
  121. package/dist/esm/components/picker/EmojiPickerComponent.js +47 -22
  122. package/dist/esm/components/picker/EmojiPickerEmojiRow.js +8 -7
  123. package/dist/esm/components/picker/EmojiPickerFooter.js +8 -8
  124. package/dist/esm/components/picker/EmojiPickerList.js +29 -8
  125. package/dist/esm/components/picker/EmojiPickerListSearch.js +10 -8
  126. package/dist/esm/components/picker/EmojiPickerVirtualItems.js +9 -8
  127. package/dist/esm/components/picker/styles.js +108 -149
  128. package/dist/esm/components/typeahead/EmojiTypeAheadComponent.js +35 -17
  129. package/dist/esm/components/typeahead/EmojiTypeAheadItem.js +11 -13
  130. package/dist/esm/components/typeahead/EmojiTypeAheadList.js +17 -19
  131. package/dist/esm/components/typeahead/styles.js +14 -14
  132. package/dist/esm/components/uploader/EmojiUploadComponent.js +19 -9
  133. package/dist/esm/components/uploader/styles.js +4 -4
  134. package/dist/esm/index.js +4 -3
  135. package/dist/esm/types.js +10 -1
  136. package/dist/esm/util/{analytics.js → analytics/analytics.js} +9 -7
  137. package/dist/esm/util/analytics/index.js +4 -0
  138. package/dist/esm/util/analytics/samplingUfo.js +259 -0
  139. package/dist/esm/util/analytics/ufoExperiences.js +34 -0
  140. package/dist/esm/util/analytics/useSampledUFOComponentExperience.js +39 -0
  141. package/dist/esm/util/constants.js +5 -1
  142. package/dist/esm/version.json +1 -1
  143. package/dist/types/api/EmojiResource.d.ts +1 -0
  144. package/dist/types/components/common/CachingEmoji.d.ts +8 -6
  145. package/dist/types/components/common/EmojiActions.d.ts +2 -3
  146. package/dist/types/components/common/EmojiDeletePreview.d.ts +3 -3
  147. package/dist/types/components/common/EmojiErrorMessage.d.ts +2 -1
  148. package/dist/types/components/common/EmojiPreview.d.ts +2 -3
  149. package/dist/types/components/common/EmojiPreviewComponent.d.ts +7 -0
  150. package/dist/types/components/common/EmojiUploadPreview.d.ts +3 -3
  151. package/dist/types/components/common/ResourcedEmoji.d.ts +2 -0
  152. package/dist/types/components/common/ResourcedEmojiComponent.d.ts +6 -0
  153. package/dist/types/components/common/RetryableButton.d.ts +0 -2
  154. package/dist/types/components/common/UfoErrorBoundary.d.ts +8 -0
  155. package/dist/types/components/common/styles.d.ts +44 -44
  156. package/dist/types/components/picker/EmojiPicker.d.ts +2 -3
  157. package/dist/types/components/picker/EmojiPickerComponent.d.ts +6 -0
  158. package/dist/types/components/picker/EmojiPickerList.d.ts +10 -0
  159. package/dist/types/components/picker/styles.d.ts +17 -18
  160. package/dist/types/components/typeahead/EmojiTypeAheadComponent.d.ts +6 -0
  161. package/dist/types/components/typeahead/styles.d.ts +8 -7
  162. package/dist/types/components/uploader/EmojiUploadComponent.d.ts +1 -0
  163. package/dist/types/components/uploader/styles.d.ts +2 -2
  164. package/dist/types/index.d.ts +3 -3
  165. package/dist/types/types.d.ts +6 -0
  166. package/dist/types/util/{analytics.d.ts → analytics/analytics.d.ts} +7 -7
  167. package/dist/types/util/analytics/index.d.ts +6 -0
  168. package/dist/types/util/analytics/samplingUfo.d.ts +31 -0
  169. package/dist/types/util/analytics/ufoExperiences.d.ts +12 -0
  170. package/dist/types/util/analytics/useSampledUFOComponentExperience.d.ts +8 -0
  171. package/dist/types/util/constants.d.ts +2 -0
  172. package/package.json +10 -9
  173. package/dist/cjs/components/picker/EmojiPickerPreview.js +0 -87
  174. package/dist/cjs/context/EmojiContext.js +0 -11
  175. package/dist/cjs/context/EmojiContextProvider.js +0 -22
  176. package/dist/es2019/components/picker/EmojiPickerPreview.js +0 -43
  177. package/dist/es2019/context/EmojiContext.js +0 -2
  178. package/dist/es2019/context/EmojiContextProvider.js +0 -10
  179. package/dist/esm/components/picker/EmojiPickerPreview.js +0 -67
  180. package/dist/esm/context/EmojiContext.js +0 -2
  181. package/dist/esm/context/EmojiContextProvider.js +0 -9
  182. package/dist/types/components/picker/EmojiPickerPreview.d.ts +0 -9
  183. package/dist/types/context/EmojiContext.d.ts +0 -4
  184. package/dist/types/context/EmojiContextProvider.d.ts +0 -7
@@ -1,10 +1,14 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
3
+
4
+ /** @jsx jsx */
5
+ import { jsx } from '@emotion/core';
3
6
  import { withAnalyticsEvents } from '@atlaskit/analytics-next';
4
- import React from 'react';
7
+ import { ufoExperiences } from '../../util/analytics';
5
8
  import LoadingEmojiComponent from '../common/LoadingEmojiComponent';
6
9
  import { LoadingItem } from './EmojiPickerVirtualItems';
7
- import * as styles from './styles';
10
+ import { emojiPicker } from './styles';
11
+ import { UfoErrorBoundary } from '../common/UfoErrorBoundary';
8
12
 
9
13
  const emojiPickerModuleLoader = () => import(
10
14
  /* webpackChunkName:"@atlaskit-internal_emojiPickerComponent" */
@@ -21,6 +25,8 @@ export class EmojiPickerInternal extends LoadingEmojiComponent {
21
25
  _defineProperty(this, "state", {
22
26
  asyncLoadedComponent: EmojiPickerInternal.AsyncLoadedComponent
23
27
  });
28
+
29
+ ufoExperiences['emoji-picker-opened'].start();
24
30
  }
25
31
 
26
32
  asyncLoadComponent() {
@@ -39,8 +45,9 @@ export class EmojiPickerInternal extends LoadingEmojiComponent {
39
45
  }
40
46
  };
41
47
 
42
- return /*#__PURE__*/React.createElement("div", {
43
- className: styles.emojiPicker,
48
+ ufoExperiences['emoji-picker-opened'].markFMP();
49
+ return jsx("div", {
50
+ css: emojiPicker,
44
51
  ref: handlePickerRef
45
52
  }, item.renderItem());
46
53
  }
@@ -50,9 +57,11 @@ export class EmojiPickerInternal extends LoadingEmojiComponent {
50
57
  emojiProvider,
51
58
  ...otherProps
52
59
  } = this.props;
53
- return /*#__PURE__*/React.createElement(EmojiPickerComponent, _extends({
60
+ return jsx(UfoErrorBoundary, {
61
+ experiences: [ufoExperiences['emoji-picker-opened']]
62
+ }, jsx(EmojiPickerComponent, _extends({
54
63
  emojiProvider: loadedEmojiProvider
55
- }, otherProps));
64
+ }, otherProps)));
56
65
  }
57
66
 
58
67
  }
@@ -1,10 +1,10 @@
1
- import classnames from 'classnames';
2
- import React from 'react';
1
+ /** @jsx jsx */
2
+ import { jsx } from '@emotion/core';
3
3
  import { PureComponent } from 'react';
4
4
  import { FormattedMessage } from 'react-intl-next';
5
5
  import { isMessagesKey } from '../../util/type-helpers';
6
6
  import { messages } from '../i18n';
7
- import * as styles from './styles';
7
+ import { emojiCategoryTitle } from './styles';
8
8
  export default class EmojiPickerCategoryHeading extends PureComponent {
9
9
  render() {
10
10
  const {
@@ -12,13 +12,13 @@ export default class EmojiPickerCategoryHeading extends PureComponent {
12
12
  title,
13
13
  className
14
14
  } = this.props;
15
- return /*#__PURE__*/React.createElement("div", {
15
+ return jsx("div", {
16
16
  id: id,
17
17
  "data-category-id": id,
18
- className: classnames(className)
19
- }, /*#__PURE__*/React.createElement("div", {
20
- className: styles.emojiCategoryTitle
21
- }, isMessagesKey(title) ? /*#__PURE__*/React.createElement(FormattedMessage, messages[title]) : title));
18
+ className: className
19
+ }, jsx("div", {
20
+ css: emojiCategoryTitle
21
+ }, isMessagesKey(title) ? jsx(FormattedMessage, messages[title]) : title));
22
22
  }
23
23
 
24
24
  }
@@ -1,6 +1,8 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
- import classNames from 'classnames';
3
- import React from 'react';
2
+
3
+ /** @jsx jsx */
4
+ import { jsx } from '@emotion/core';
5
+ import PropTypes from 'prop-types';
4
6
  import { PureComponent } from 'react';
5
7
  import { FormattedMessage } from 'react-intl-next';
6
8
  import { getEmojiVariation } from '../../api/EmojiRepository';
@@ -16,9 +18,8 @@ import { createRecordSelectionDefault } from '../common/RecordSelectionDefault';
16
18
  import CategorySelector from './CategorySelector';
17
19
  import EmojiPickerFooter from './EmojiPickerFooter';
18
20
  import EmojiPickerList from './EmojiPickerList';
19
- import * as styles from './styles';
20
- import { createAndFireEventInElementsChannel, categoryClickedEvent, closedPickerEvent, deleteBeginEvent, deleteCancelEvent, deleteConfirmEvent, openedPickerEvent, pickerClickedEvent, pickerSearchedEvent, selectedFileEvent, uploadBeginButton, uploadCancelButton, uploadConfirmButton, toneSelectorClosedEvent } from '../../util/analytics';
21
- import { EmojiContextProvider } from '../../context/EmojiContextProvider';
21
+ import { createAndFireEventInElementsChannel, categoryClickedEvent, closedPickerEvent, deleteBeginEvent, deleteCancelEvent, deleteConfirmEvent, openedPickerEvent, pickerClickedEvent, pickerSearchedEvent, selectedFileEvent, uploadBeginButton, uploadCancelButton, uploadConfirmButton, toneSelectorClosedEvent, ufoExperiences } from '../../util/analytics';
22
+ import { emojiPicker } from './styles';
22
23
  const FREQUENTLY_USED_MAX = 16;
23
24
  export default class EmojiPickerComponent extends PureComponent {
24
25
  constructor(props) {
@@ -105,9 +106,19 @@ export default class EmojiPickerComponent extends PureComponent {
105
106
  });
106
107
 
107
108
  _defineProperty(this, "onSearch", query => {
108
- this.updateEmojis(query, {
109
+ const options = {
109
110
  skinTone: this.state.selectedTone
110
- });
111
+ };
112
+
113
+ if (query !== this.state.query) {
114
+ ufoExperiences['emoji-searched'].start();
115
+ ufoExperiences['emoji-searched'].addMetadata({
116
+ queryLength: query.length,
117
+ source: 'picker'
118
+ });
119
+ }
120
+
121
+ this.updateEmojis(query, options);
111
122
  });
112
123
 
113
124
  _defineProperty(this, "onSearchResult", searchResults => {
@@ -120,6 +131,11 @@ export default class EmojiPickerComponent extends PureComponent {
120
131
  queryLength: searchQuery.length,
121
132
  numMatches: emojiToRender.length
122
133
  }));
134
+ ufoExperiences['emoji-searched'].success({
135
+ metadata: {
136
+ emojisLength: emojiToRender.length
137
+ }
138
+ });
123
139
  }
124
140
 
125
141
  this.setStateAfterEmojiChange(searchQuery, emojiToRender, searchResults.emojis, frequentlyUsedEmoji);
@@ -338,12 +354,21 @@ export default class EmojiPickerComponent extends PureComponent {
338
354
  this.openTime = 0;
339
355
  }
340
356
 
357
+ getChildContext() {
358
+ return {
359
+ emoji: {
360
+ emojiProvider: this.props.emojiProvider
361
+ }
362
+ };
363
+ }
364
+
341
365
  UNSAFE_componentWillMount() {
342
366
  this.openTime = Date.now();
343
367
  this.fireAnalytics(openedPickerEvent());
344
368
  }
345
369
 
346
370
  componentDidMount() {
371
+ ufoExperiences['emoji-picker-opened'].success();
347
372
  const {
348
373
  emojiProvider,
349
374
  hideToneSelector
@@ -378,6 +403,9 @@ export default class EmojiPickerComponent extends PureComponent {
378
403
  this.fireAnalytics(closedPickerEvent({
379
404
  duration: this.calculateElapsedTime()
380
405
  }));
406
+ ufoExperiences['emoji-picker-opened'].abort();
407
+ ufoExperiences['emoji-searched'].abort();
408
+ ufoExperiences['emoji-selection-recorded'].abort();
381
409
  }
382
410
 
383
411
  UNSAFE_componentWillReceiveProps(nextProps) {
@@ -495,25 +523,17 @@ export default class EmojiPickerComponent extends PureComponent {
495
523
  uploadSupported
496
524
  } = this.state;
497
525
  const recordUsageOnSelection = createRecordSelectionDefault(emojiProvider, this.onSelectWrapper, analytic => this.fireAnalytics(analytic('picker')));
498
- const formattedErrorMessage = uploadErrorMessage ? /*#__PURE__*/React.createElement(FormattedMessage, uploadErrorMessage) : null;
499
- const classes = [styles.emojiPicker];
500
- const emojiContextValue = {
501
- emoji: {
502
- emojiProvider: this.props.emojiProvider
503
- }
504
- };
505
- const picker = /*#__PURE__*/React.createElement(EmojiContextProvider, {
506
- emojiContextValue: emojiContextValue
507
- }, /*#__PURE__*/React.createElement("div", {
508
- className: classNames(classes),
526
+ const formattedErrorMessage = uploadErrorMessage ? jsx(FormattedMessage, uploadErrorMessage) : null;
527
+ const picker = jsx("div", {
528
+ css: emojiPicker,
509
529
  ref: this.handlePickerRef,
510
530
  "data-emoji-picker-container": true
511
- }, /*#__PURE__*/React.createElement(CategorySelector, {
531
+ }, jsx(CategorySelector, {
512
532
  activeCategoryId: activeCategory,
513
533
  dynamicCategories: dynamicCategories,
514
534
  disableCategories: disableCategories,
515
535
  onCategorySelected: this.onCategorySelected
516
- }), /*#__PURE__*/React.createElement(EmojiPickerList, {
536
+ }), jsx(EmojiPickerList, {
517
537
  emojis: filteredEmojis,
518
538
  currentUser: emojiProvider.getCurrentUser(),
519
539
  onEmojiSelected: recordUsageOnSelection,
@@ -539,15 +559,19 @@ export default class EmojiPickerComponent extends PureComponent {
539
559
  onCloseDelete: this.onCloseDelete,
540
560
  onFileChooserClicked: this.onFileChooserClicked,
541
561
  onOpenUpload: this.onOpenUpload
542
- }), /*#__PURE__*/React.createElement(EmojiPickerFooter, {
562
+ }), jsx(EmojiPickerFooter, {
543
563
  selectedEmoji: selectedEmoji,
544
564
  isUploading: uploading
545
- })));
565
+ }));
546
566
  return picker;
547
567
  }
548
568
 
549
569
  }
550
570
 
571
+ _defineProperty(EmojiPickerComponent, "childContextTypes", {
572
+ emoji: PropTypes.object
573
+ });
574
+
551
575
  _defineProperty(EmojiPickerComponent, "defaultProps", {
552
576
  onSelection: () => {}
553
577
  });
@@ -1,7 +1,8 @@
1
- import React from 'react';
1
+ /** @jsx jsx */
2
+ import { jsx } from '@emotion/core';
2
3
  import { PureComponent } from 'react';
3
- import * as styles from './styles';
4
4
  import CachingEmoji from '../common/CachingEmoji';
5
+ import { emojiItem, emojiPickerRow } from './styles';
5
6
  export default class EmojiPickerEmojiRow extends PureComponent {
6
7
  render() {
7
8
  const {
@@ -12,18 +13,18 @@ export default class EmojiPickerEmojiRow extends PureComponent {
12
13
  showDelete,
13
14
  onDelete
14
15
  } = this.props;
15
- return /*#__PURE__*/React.createElement("div", {
16
- className: styles.emojiPickerRow
16
+ return jsx("div", {
17
+ css: emojiPickerRow
17
18
  }, emojis.map(emoji => {
18
19
  const {
19
20
  shortName,
20
21
  id
21
22
  } = emoji;
22
23
  const key = id ? `${id}-${title}` : `${shortName}-${title}`;
23
- return /*#__PURE__*/React.createElement("span", {
24
- className: styles.emojiItem,
24
+ return jsx("span", {
25
+ css: emojiItem,
25
26
  key: key
26
- }, /*#__PURE__*/React.createElement(CachingEmoji, {
27
+ }, jsx(CachingEmoji, {
27
28
  emoji: emoji,
28
29
  selectOnHover: true,
29
30
  onSelected: onSelected,
@@ -1,23 +1,23 @@
1
- import classNames from 'classnames';
2
- import React from 'react';
1
+ /** @jsx jsx */
2
+ import { jsx } from '@emotion/core';
3
3
  import { PureComponent } from 'react';
4
- import * as styles from './styles';
5
- import EmojiPickerPreview from './EmojiPickerPreview';
4
+ import { EmojiPreviewComponent } from '../common/EmojiPreviewComponent';
5
+ import { emojiPickerFooter, emojiPickerFooterWithTopShadow } from './styles';
6
6
  export default class EmojiPickerFooter extends PureComponent {
7
7
  render() {
8
8
  const {
9
9
  selectedEmoji,
10
10
  isUploading
11
11
  } = this.props;
12
- const previewFooterClassnames = classNames([styles.emojiPickerFooter, styles.emojiPickerFooterWithTopShadow]);
12
+ const previewFooterClassnames = [emojiPickerFooter, emojiPickerFooterWithTopShadow];
13
13
 
14
14
  if (!selectedEmoji || isUploading) {
15
15
  return null;
16
16
  }
17
17
 
18
- return /*#__PURE__*/React.createElement("div", {
19
- className: previewFooterClassnames
20
- }, /*#__PURE__*/React.createElement(EmojiPickerPreview, {
18
+ return jsx("div", {
19
+ css: previewFooterClassnames
20
+ }, selectedEmoji && jsx(EmojiPreviewComponent, {
21
21
  emoji: selectedEmoji
22
22
  }));
23
23
  }
@@ -1,5 +1,8 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
- import classNames from 'classnames';
2
+
3
+ /** @jsx jsx */
4
+ import { jsx } from '@emotion/core';
5
+ import PropTypes from 'prop-types';
3
6
  import React from 'react';
4
7
  import { PureComponent } from 'react';
5
8
  import { List as VirtualList } from 'react-virtualized/dist/commonjs/List';
@@ -8,8 +11,8 @@ import { CategoryDescriptionMap } from './categories';
8
11
  import CategoryTracker from './CategoryTracker';
9
12
  import { sizes } from './EmojiPickerSizes';
10
13
  import { CategoryHeadingItem, EmojisRowItem, LoadingItem, virtualItemRenderer } from './EmojiPickerVirtualItems';
11
- import * as styles from './styles';
12
14
  import EmojiActions from '../common/EmojiActions';
15
+ import { emojiPickerList, virtualList } from './styles';
13
16
  const categoryClassname = 'emoji-category';
14
17
 
15
18
  const byOrder = (orderableA, orderableB) => (orderableA.order || 0) - (orderableB.order || 0);
@@ -195,6 +198,16 @@ export default class EmojiPickerVirtualList extends PureComponent {
195
198
  this.buildVirtualItems(_props, this.state);
196
199
  }
197
200
 
201
+ getChildContext() {
202
+ const {
203
+ emoji
204
+ } = this.context;
205
+ return {
206
+ emoji: { ...emoji
207
+ }
208
+ };
209
+ }
210
+
198
211
  UNSAFE_componentWillUpdate(nextProps, nextState) {
199
212
  if (this.props.emojis !== nextProps.emojis || this.props.selectedTone !== nextProps.selectedTone || this.props.loading !== nextProps.loading || this.props.query !== nextProps.query) {
200
213
  if (!nextProps.query) {
@@ -239,11 +252,10 @@ export default class EmojiPickerVirtualList extends PureComponent {
239
252
  onFileChooserClicked,
240
253
  onOpenUpload
241
254
  } = this.props;
242
- const classes = [styles.emojiPickerList];
243
- return /*#__PURE__*/React.createElement("div", {
255
+ return jsx("div", {
244
256
  ref: "root",
245
- className: classNames(classes)
246
- }, /*#__PURE__*/React.createElement(EmojiActions, {
257
+ css: emojiPickerList
258
+ }, jsx(EmojiActions, {
247
259
  selectedTone: selectedTone,
248
260
  onToneSelected: onToneSelected,
249
261
  onToneSelectorCancelled: onToneSelectorCancelled,
@@ -261,7 +273,7 @@ export default class EmojiPickerVirtualList extends PureComponent {
261
273
  onOpenUpload: onOpenUpload,
262
274
  query: query,
263
275
  onChange: this.onSearch
264
- }), /*#__PURE__*/React.createElement(VirtualList, {
276
+ }), jsx(VirtualList, {
265
277
  ref: "list",
266
278
  height: sizes.listHeight,
267
279
  overscanRowCount: 5,
@@ -270,13 +282,21 @@ export default class EmojiPickerVirtualList extends PureComponent {
270
282
  rowRenderer: this.renderRow,
271
283
  scrollToAlignment: "start",
272
284
  width: sizes.listWidth,
273
- className: styles.virtualList,
285
+ css: virtualList,
274
286
  onRowsRendered: this.checkCategoryIdChange
275
287
  }));
276
288
  }
277
289
 
278
290
  }
279
291
 
292
+ _defineProperty(EmojiPickerVirtualList, "contextTypes", {
293
+ emoji: PropTypes.object
294
+ });
295
+
296
+ _defineProperty(EmojiPickerVirtualList, "childContextTypes", {
297
+ emoji: PropTypes.object
298
+ });
299
+
280
300
  _defineProperty(EmojiPickerVirtualList, "defaultProps", {
281
301
  onEmojiSelected: () => {},
282
302
  onEmojiActive: () => {},
@@ -1,10 +1,13 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+
3
+ /** @jsx jsx */
4
+ import { jsx } from '@emotion/core';
2
5
  import React, { PureComponent } from 'react';
3
6
  import TextField from '@atlaskit/textfield';
4
7
  import SearchIcon from '@atlaskit/icon/glyph/search';
5
8
  import { injectIntl } from 'react-intl-next';
6
9
  import { messages } from '../i18n';
7
- import * as styles from './styles';
10
+ import { input, pickerSearch, searchIcon } from './styles';
8
11
 
9
12
  class EmojiPickerListSearch extends PureComponent {
10
13
  constructor(...args) {
@@ -83,12 +86,12 @@ class EmojiPickerListSearch extends PureComponent {
83
86
  const {
84
87
  formatMessage
85
88
  } = intl;
86
- return /*#__PURE__*/React.createElement("div", {
87
- className: styles.pickerSearch,
89
+ return jsx("div", {
90
+ css: pickerSearch,
88
91
  style: style
89
- }, /*#__PURE__*/React.createElement(TextField, {
92
+ }, jsx(TextField, {
90
93
  "aria-label": formatMessage(messages.searchLabel),
91
- className: styles.input,
94
+ css: input,
92
95
  autoComplete: "off",
93
96
  name: "search",
94
97
  placeholder: `${formatMessage(messages.searchPlaceholder)}...`,
@@ -97,9 +100,9 @@ class EmojiPickerListSearch extends PureComponent {
97
100
  ref: this.handleInputRef,
98
101
  isCompact: true,
99
102
  onBlur: this.onBlur,
100
- elemBeforeInput: /*#__PURE__*/React.createElement("span", {
101
- className: styles.searchIcon
102
- }, /*#__PURE__*/React.createElement(SearchIcon, {
103
+ elemBeforeInput: jsx("span", {
104
+ css: searchIcon
105
+ }, jsx(SearchIcon, {
103
106
  label: ""
104
107
  }))
105
108
  }));
@@ -1,10 +1,12 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+
3
+ /** @jsx jsx */
4
+ import { jsx } from '@emotion/core';
2
5
  import Spinner from '@atlaskit/spinner';
3
- import React from 'react';
4
6
  import EmojiPickerCategoryHeading from './EmojiPickerCategoryHeading';
5
7
  import EmojiPickerEmojiRow from './EmojiPickerEmojiRow';
6
8
  import { sizes } from './EmojiPickerSizes';
7
- import * as styles from './styles';
9
+ import { emojiPickerSpinner } from './styles';
8
10
  export class AbstractItem {
9
11
  constructor(props, height) {
10
12
  this.props = props;
@@ -16,7 +18,7 @@ export class EmojisRowItem extends AbstractItem {
16
18
  constructor(props) {
17
19
  super(props, sizes.emojiRowHeight);
18
20
 
19
- _defineProperty(this, "renderItem", () => /*#__PURE__*/React.createElement(EmojiPickerEmojiRow, this.props));
21
+ _defineProperty(this, "renderItem", () => jsx(EmojiPickerEmojiRow, this.props));
20
22
  }
21
23
 
22
24
  }
@@ -24,9 +26,9 @@ export class LoadingItem extends AbstractItem {
24
26
  constructor() {
25
27
  super({}, sizes.loadingRowHeight);
26
28
 
27
- _defineProperty(this, "renderItem", () => /*#__PURE__*/React.createElement("div", {
28
- className: styles.emojiPickerSpinner
29
- }, /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Spinner, {
29
+ _defineProperty(this, "renderItem", () => jsx("div", {
30
+ css: emojiPickerSpinner
31
+ }, jsx("div", null, jsx(Spinner, {
30
32
  size: "medium"
31
33
  }))));
32
34
  }
@@ -36,7 +38,7 @@ export class CategoryHeadingItem extends AbstractItem {
36
38
  constructor(props) {
37
39
  super(props, sizes.categoryHeadingHeight);
38
40
 
39
- _defineProperty(this, "renderItem", () => /*#__PURE__*/React.createElement(EmojiPickerCategoryHeading, this.props));
41
+ _defineProperty(this, "renderItem", () => jsx(EmojiPickerCategoryHeading, this.props));
40
42
  }
41
43
 
42
44
  }
@@ -51,7 +53,7 @@ export const virtualItemRenderer = (rows, context) => {
51
53
  style
52
54
  } = context;
53
55
  const row = rows[index];
54
- return /*#__PURE__*/React.createElement("div", {
56
+ return jsx("div", {
55
57
  style: style,
56
58
  key: key
57
59
  }, row.renderItem(context));