@atlaskit/emoji 64.2.1 → 64.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/dist/cjs/api/media/SiteEmojiResource.js +10 -2
  3. package/dist/cjs/components/common/CachingEmoji.js +6 -8
  4. package/dist/cjs/components/common/DeleteButton.js +9 -13
  5. package/dist/cjs/components/common/Emoji.js +18 -36
  6. package/dist/cjs/components/common/EmojiActions.js +26 -31
  7. package/dist/cjs/components/common/EmojiButton.js +7 -7
  8. package/dist/cjs/components/common/EmojiDeletePreview.js +20 -26
  9. package/dist/cjs/components/common/EmojiErrorMessage.js +10 -14
  10. package/dist/cjs/components/common/EmojiPlaceholder.js +5 -12
  11. package/dist/cjs/components/common/EmojiPreview.js +20 -40
  12. package/dist/cjs/components/common/EmojiPreviewComponent.js +34 -0
  13. package/dist/cjs/components/common/EmojiUploadPicker.js +26 -24
  14. package/dist/cjs/components/common/EmojiUploadPreview.js +22 -28
  15. package/dist/cjs/components/common/RecordSelectionDefault.js +8 -2
  16. package/dist/cjs/components/common/ResourcedEmojiComponent.js +17 -12
  17. package/dist/cjs/components/common/RetryableButton.js +12 -18
  18. package/dist/cjs/components/common/Scrollable.js +5 -10
  19. package/dist/cjs/components/common/UploadEmoji.js +8 -0
  20. package/dist/cjs/components/common/styles.js +210 -266
  21. package/dist/cjs/components/picker/CategorySelector.js +13 -12
  22. package/dist/cjs/components/picker/EmojiPicker.js +17 -6
  23. package/dist/cjs/components/picker/EmojiPickerCategoryHeading.js +8 -14
  24. package/dist/cjs/components/picker/EmojiPickerComponent.js +51 -30
  25. package/dist/cjs/components/picker/EmojiPickerEmojiRow.js +8 -12
  26. package/dist/cjs/components/picker/EmojiPickerFooter.js +8 -14
  27. package/dist/cjs/components/picker/EmojiPickerList.js +28 -9
  28. package/dist/cjs/components/picker/EmojiPickerListSearch.js +10 -8
  29. package/dist/cjs/components/picker/EmojiPickerVirtualItems.js +9 -15
  30. package/dist/cjs/components/picker/styles.js +113 -161
  31. package/dist/cjs/components/typeahead/EmojiTypeAheadComponent.js +40 -24
  32. package/dist/cjs/components/typeahead/EmojiTypeAheadItem.js +10 -13
  33. package/dist/cjs/components/typeahead/EmojiTypeAheadList.js +17 -22
  34. package/dist/cjs/components/typeahead/styles.js +17 -19
  35. package/dist/cjs/components/uploader/EmojiUploadComponent.js +22 -15
  36. package/dist/cjs/components/uploader/styles.js +4 -4
  37. package/dist/cjs/index.js +21 -3
  38. package/dist/cjs/types.js +23 -2
  39. package/dist/cjs/util/analytics/analytics.js +11 -41
  40. package/dist/cjs/util/analytics/index.js +16 -14
  41. package/dist/cjs/util/analytics/ufoExperiences.js +48 -0
  42. package/dist/cjs/version.json +1 -1
  43. package/dist/es2019/api/media/SiteEmojiResource.js +10 -2
  44. package/dist/es2019/components/common/CachingEmoji.js +5 -7
  45. package/dist/es2019/components/common/DeleteButton.js +8 -6
  46. package/dist/es2019/components/common/Emoji.js +19 -34
  47. package/dist/es2019/components/common/EmojiActions.js +26 -24
  48. package/dist/es2019/components/common/EmojiButton.js +6 -6
  49. package/dist/es2019/components/common/EmojiDeletePreview.js +20 -20
  50. package/dist/es2019/components/common/EmojiErrorMessage.js +9 -8
  51. package/dist/es2019/components/common/EmojiPlaceholder.js +5 -8
  52. package/dist/es2019/components/common/EmojiPreview.js +19 -35
  53. package/dist/es2019/components/common/EmojiPreviewComponent.js +21 -0
  54. package/dist/es2019/components/common/EmojiUploadPicker.js +25 -22
  55. package/dist/es2019/components/common/EmojiUploadPreview.js +22 -22
  56. package/dist/es2019/components/common/RecordSelectionDefault.js +9 -2
  57. package/dist/es2019/components/common/ResourcedEmojiComponent.js +16 -11
  58. package/dist/es2019/components/common/RetryableButton.js +10 -11
  59. package/dist/es2019/components/common/Scrollable.js +6 -10
  60. package/dist/es2019/components/common/UploadEmoji.js +4 -0
  61. package/dist/es2019/components/common/styles.js +195 -262
  62. package/dist/es2019/components/picker/CategorySelector.js +15 -12
  63. package/dist/es2019/components/picker/EmojiPicker.js +15 -6
  64. package/dist/es2019/components/picker/EmojiPickerCategoryHeading.js +8 -8
  65. package/dist/es2019/components/picker/EmojiPickerComponent.js +46 -22
  66. package/dist/es2019/components/picker/EmojiPickerEmojiRow.js +8 -7
  67. package/dist/es2019/components/picker/EmojiPickerFooter.js +8 -8
  68. package/dist/es2019/components/picker/EmojiPickerList.js +28 -8
  69. package/dist/es2019/components/picker/EmojiPickerListSearch.js +11 -8
  70. package/dist/es2019/components/picker/EmojiPickerVirtualItems.js +10 -8
  71. package/dist/es2019/components/picker/styles.js +112 -160
  72. package/dist/es2019/components/typeahead/EmojiTypeAheadComponent.js +35 -17
  73. package/dist/es2019/components/typeahead/EmojiTypeAheadItem.js +12 -13
  74. package/dist/es2019/components/typeahead/EmojiTypeAheadList.js +18 -19
  75. package/dist/es2019/components/typeahead/styles.js +14 -15
  76. package/dist/es2019/components/uploader/EmojiUploadComponent.js +19 -9
  77. package/dist/es2019/components/uploader/styles.js +4 -4
  78. package/dist/es2019/index.js +5 -4
  79. package/dist/es2019/types.js +20 -1
  80. package/dist/es2019/util/analytics/analytics.js +16 -37
  81. package/dist/es2019/util/analytics/index.js +2 -1
  82. package/dist/es2019/util/analytics/ufoExperiences.js +35 -0
  83. package/dist/es2019/version.json +1 -1
  84. package/dist/esm/api/media/SiteEmojiResource.js +10 -2
  85. package/dist/esm/components/common/CachingEmoji.js +5 -7
  86. package/dist/esm/components/common/DeleteButton.js +8 -6
  87. package/dist/esm/components/common/Emoji.js +18 -27
  88. package/dist/esm/components/common/EmojiActions.js +26 -25
  89. package/dist/esm/components/common/EmojiButton.js +6 -6
  90. package/dist/esm/components/common/EmojiDeletePreview.js +19 -20
  91. package/dist/esm/components/common/EmojiErrorMessage.js +9 -8
  92. package/dist/esm/components/common/EmojiPlaceholder.js +5 -8
  93. package/dist/esm/components/common/EmojiPreview.js +19 -33
  94. package/dist/esm/components/common/EmojiPreviewComponent.js +20 -0
  95. package/dist/esm/components/common/EmojiUploadPicker.js +27 -25
  96. package/dist/esm/components/common/EmojiUploadPreview.js +21 -22
  97. package/dist/esm/components/common/RecordSelectionDefault.js +6 -3
  98. package/dist/esm/components/common/ResourcedEmojiComponent.js +16 -10
  99. package/dist/esm/components/common/RetryableButton.js +11 -12
  100. package/dist/esm/components/common/Scrollable.js +6 -10
  101. package/dist/esm/components/common/UploadEmoji.js +4 -0
  102. package/dist/esm/components/common/styles.js +192 -242
  103. package/dist/esm/components/picker/CategorySelector.js +14 -12
  104. package/dist/esm/components/picker/EmojiPicker.js +13 -6
  105. package/dist/esm/components/picker/EmojiPickerCategoryHeading.js +8 -8
  106. package/dist/esm/components/picker/EmojiPickerComponent.js +47 -22
  107. package/dist/esm/components/picker/EmojiPickerEmojiRow.js +8 -7
  108. package/dist/esm/components/picker/EmojiPickerFooter.js +8 -8
  109. package/dist/esm/components/picker/EmojiPickerList.js +29 -8
  110. package/dist/esm/components/picker/EmojiPickerListSearch.js +10 -8
  111. package/dist/esm/components/picker/EmojiPickerVirtualItems.js +9 -8
  112. package/dist/esm/components/picker/styles.js +108 -149
  113. package/dist/esm/components/typeahead/EmojiTypeAheadComponent.js +35 -17
  114. package/dist/esm/components/typeahead/EmojiTypeAheadItem.js +11 -13
  115. package/dist/esm/components/typeahead/EmojiTypeAheadList.js +17 -19
  116. package/dist/esm/components/typeahead/styles.js +14 -14
  117. package/dist/esm/components/uploader/EmojiUploadComponent.js +19 -9
  118. package/dist/esm/components/uploader/styles.js +4 -4
  119. package/dist/esm/index.js +5 -4
  120. package/dist/esm/types.js +20 -1
  121. package/dist/esm/util/analytics/analytics.js +8 -33
  122. package/dist/esm/util/analytics/index.js +2 -1
  123. package/dist/esm/util/analytics/ufoExperiences.js +35 -0
  124. package/dist/esm/version.json +1 -1
  125. package/dist/types/components/common/CachingEmoji.d.ts +8 -6
  126. package/dist/types/components/common/EmojiActions.d.ts +2 -3
  127. package/dist/types/components/common/EmojiDeletePreview.d.ts +3 -3
  128. package/dist/types/components/common/EmojiErrorMessage.d.ts +2 -1
  129. package/dist/types/components/common/EmojiPreview.d.ts +2 -3
  130. package/dist/types/components/common/EmojiPreviewComponent.d.ts +7 -0
  131. package/dist/types/components/common/EmojiUploadPreview.d.ts +3 -3
  132. package/dist/types/components/common/ResourcedEmojiComponent.d.ts +6 -0
  133. package/dist/types/components/common/RetryableButton.d.ts +0 -2
  134. package/dist/types/components/common/styles.d.ts +44 -44
  135. package/dist/types/components/picker/EmojiPicker.d.ts +2 -3
  136. package/dist/types/components/picker/EmojiPickerComponent.d.ts +6 -0
  137. package/dist/types/components/picker/EmojiPickerList.d.ts +10 -0
  138. package/dist/types/components/picker/styles.d.ts +17 -18
  139. package/dist/types/components/typeahead/EmojiTypeAheadComponent.d.ts +6 -0
  140. package/dist/types/components/typeahead/styles.d.ts +8 -7
  141. package/dist/types/components/uploader/EmojiUploadComponent.d.ts +1 -0
  142. package/dist/types/components/uploader/styles.d.ts +2 -2
  143. package/dist/types/index.d.ts +4 -4
  144. package/dist/types/types.d.ts +13 -0
  145. package/dist/types/util/analytics/analytics.d.ts +3 -7
  146. package/dist/types/util/analytics/index.d.ts +3 -2
  147. package/dist/types/util/analytics/ufoExperiences.d.ts +11 -0
  148. package/package.json +9 -10
  149. package/dist/cjs/components/picker/EmojiPickerPreview.js +0 -87
  150. package/dist/cjs/context/EmojiContext.js +0 -11
  151. package/dist/cjs/context/EmojiContextProvider.js +0 -22
  152. package/dist/es2019/components/picker/EmojiPickerPreview.js +0 -43
  153. package/dist/es2019/context/EmojiContext.js +0 -2
  154. package/dist/es2019/context/EmojiContextProvider.js +0 -10
  155. package/dist/esm/components/picker/EmojiPickerPreview.js +0 -67
  156. package/dist/esm/context/EmojiContext.js +0 -2
  157. package/dist/esm/context/EmojiContextProvider.js +0 -9
  158. package/dist/types/components/picker/EmojiPickerPreview.d.ts +0 -9
  159. package/dist/types/context/EmojiContext.d.ts +0 -4
  160. package/dist/types/context/EmojiContextProvider.d.ts +0 -7
@@ -11,15 +11,16 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
11
11
 
12
12
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
13
13
 
14
+ /** @jsx jsx */
15
+ import { jsx } from '@emotion/core';
14
16
  import AkButton from '@atlaskit/button/custom-theme-button';
15
- import React from 'react';
16
17
  import { Component } from 'react';
17
18
  import { FormattedMessage, injectIntl } from 'react-intl-next';
18
19
  import { messages } from '../i18n';
19
20
  import CachingEmoji from './CachingEmoji';
20
21
  import EmojiErrorMessage from './EmojiErrorMessage';
21
22
  import RetryableButton from './RetryableButton';
22
- import * as styles from './styles';
23
+ import { cancelButton, deleteFooter, deletePreview, deleteText, emojiDeleteErrorMessage, previewButtonGroup } from './styles';
23
24
 
24
25
  var EmojiDeletePreview = /*#__PURE__*/function (_Component) {
25
26
  _inherits(EmojiDeletePreview, _Component);
@@ -88,37 +89,35 @@ var EmojiDeletePreview = /*#__PURE__*/function (_Component) {
88
89
  loading = _this$state.loading,
89
90
  error = _this$state.error;
90
91
  var formatMessage = intl.formatMessage;
91
- return /*#__PURE__*/React.createElement("div", {
92
- className: styles.deletePreview
93
- }, /*#__PURE__*/React.createElement("div", {
94
- className: styles.deleteText
95
- }, /*#__PURE__*/React.createElement("h5", null, /*#__PURE__*/React.createElement(FormattedMessage, messages.deleteEmojiTitle)), /*#__PURE__*/React.createElement(FormattedMessage, _extends({}, messages.deleteEmojiDescription, {
92
+ return jsx("div", {
93
+ css: deletePreview
94
+ }, jsx("div", {
95
+ css: deleteText
96
+ }, jsx("h5", null, jsx(FormattedMessage, messages.deleteEmojiTitle)), jsx(FormattedMessage, _extends({}, messages.deleteEmojiDescription, {
96
97
  values: {
97
98
  emojiShortName: emoji.shortName
98
99
  }
99
- }))), /*#__PURE__*/React.createElement("div", {
100
- className: styles.deleteFooter
101
- }, /*#__PURE__*/React.createElement(CachingEmoji, {
100
+ }))), jsx("div", {
101
+ css: deleteFooter
102
+ }, jsx(CachingEmoji, {
102
103
  emoji: emoji
103
- }), /*#__PURE__*/React.createElement("div", {
104
- className: styles.previewButtonGroup
105
- }, error ? !loading ? /*#__PURE__*/React.createElement(EmojiErrorMessage, {
104
+ }), jsx("div", {
105
+ css: previewButtonGroup
106
+ }, error ? !loading ? jsx(EmojiErrorMessage, {
106
107
  message: formatMessage(messages.deleteEmojiFailed),
107
- className: styles.emojiDeleteErrorMessage,
108
+ messageStyles: emojiDeleteErrorMessage,
108
109
  tooltip: true
109
- }) : null : null, /*#__PURE__*/React.createElement(RetryableButton, {
110
- className: styles.uploadEmojiButton,
111
- retryClassName: styles.uploadRetryButton,
110
+ }) : null : null, jsx(RetryableButton, {
112
111
  label: formatMessage(messages.deleteEmojiLabel),
113
112
  onSubmit: this.onSubmit,
114
113
  appearance: "danger",
115
114
  loading: loading,
116
115
  error: error
117
- }), /*#__PURE__*/React.createElement(AkButton, {
116
+ }), jsx(AkButton, {
118
117
  appearance: "subtle",
119
118
  onClick: this.onCancel,
120
- className: styles.cancelButton
121
- }, /*#__PURE__*/React.createElement(FormattedMessage, messages.cancelLabel)))));
119
+ css: cancelButton
120
+ }, jsx(FormattedMessage, messages.cancelLabel)))));
122
121
  }
123
122
  }]);
124
123
 
@@ -8,8 +8,9 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
8
8
 
9
9
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
10
10
 
11
+ /** @jsx jsx */
12
+ import { jsx } from '@emotion/core';
11
13
  import ErrorIcon from '@atlaskit/icon/glyph/error';
12
- import React from 'react';
13
14
  import { PureComponent } from 'react';
14
15
  import Tooltip from '@atlaskit/tooltip';
15
16
 
@@ -27,12 +28,12 @@ var EmojiErrorMessage = /*#__PURE__*/function (_PureComponent) {
27
28
  _createClass(EmojiErrorMessage, [{
28
29
  key: "renderWithTooltip",
29
30
  value: function renderWithTooltip() {
30
- return /*#__PURE__*/React.createElement("div", {
31
- className: this.props.className
32
- }, /*#__PURE__*/React.createElement(Tooltip, {
31
+ return jsx("div", {
32
+ css: this.props.messageStyles
33
+ }, jsx(Tooltip, {
33
34
  content: this.props.message,
34
35
  position: "top"
35
- }, /*#__PURE__*/React.createElement(ErrorIcon, {
36
+ }, jsx(ErrorIcon, {
36
37
  label: "Error",
37
38
  size: "medium"
38
39
  })));
@@ -40,9 +41,9 @@ var EmojiErrorMessage = /*#__PURE__*/function (_PureComponent) {
40
41
  }, {
41
42
  key: "renderInline",
42
43
  value: function renderInline() {
43
- return /*#__PURE__*/React.createElement("div", {
44
- className: this.props.className
45
- }, /*#__PURE__*/React.createElement(ErrorIcon, {
44
+ return jsx("div", {
45
+ css: this.props.messageStyles
46
+ }, jsx(ErrorIcon, {
46
47
  label: "Error",
47
48
  size: "small"
48
49
  }), " ", this.props.message);
@@ -1,13 +1,10 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
- import React from 'react';
3
- import classNames from 'classnames';
1
+ /** @jsx jsx */
2
+ import { jsx } from '@emotion/core';
4
3
  import { placeholder, placeholderContainer } from './styles';
5
4
  import { defaultEmojiHeight } from '../../util/constants';
6
5
  import { isImageRepresentation, isMediaRepresentation } from '../../util/type-helpers';
7
6
 
8
7
  var EmojiPlaceholder = function EmojiPlaceholder(props) {
9
- var _classes;
10
-
11
8
  var shortName = props.shortName,
12
9
  _props$size = props.size,
13
10
  size = _props$size === void 0 ? defaultEmojiHeight : _props$size,
@@ -33,10 +30,10 @@ var EmojiPlaceholder = function EmojiPlaceholder(props) {
33
30
  width: "".concat(width, "px"),
34
31
  height: "".concat(height, "px")
35
32
  };
36
- var classes = (_classes = {}, _defineProperty(_classes, placeholder, true), _defineProperty(_classes, placeholderContainer, true), _classes);
37
- return /*#__PURE__*/React.createElement("span", {
33
+ return jsx("span", {
38
34
  "aria-label": shortName,
39
- className: classNames(classes),
35
+ className: placeholder,
36
+ css: placeholderContainer,
40
37
  style: style,
41
38
  title: showTooltip ? shortName : ''
42
39
  });
@@ -10,18 +10,18 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
10
10
 
11
11
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
12
12
 
13
+ /** @jsx jsx */
14
+ import { jsx } from '@emotion/core';
13
15
  import AkButton from '@atlaskit/button/standard-button';
14
16
  import AddIcon from '@atlaskit/icon/glyph/add';
15
- import classNames from 'classnames';
16
- import React from 'react';
17
17
  import { PureComponent } from 'react';
18
18
  import { FormattedMessage, injectIntl } from 'react-intl-next';
19
- import CachingEmoji from '../../components/common/CachingEmoji';
20
19
  import EmojiButton from '../../components/common/EmojiButton';
21
20
  import { messages } from '../i18n';
22
- import * as styles from './styles';
23
21
  import ToneSelector from './ToneSelector';
24
22
  import { setSkinToneAriaLabelText } from './setSkinToneAriaLabelText';
23
+ import { addCustomEmoji, addCustomEmojiButton, emojiPickerAddEmoji, emojiPreview, toneSelectorContainer } from './styles';
24
+ import { EmojiPreviewComponent } from './EmojiPreviewComponent';
25
25
  export var EmojiPreview = /*#__PURE__*/function (_PureComponent) {
26
26
  _inherits(EmojiPreview, _PureComponent);
27
27
 
@@ -93,13 +93,13 @@ export var EmojiPreview = /*#__PURE__*/function (_PureComponent) {
93
93
  previewEmoji = previewEmoji.skinVariations[(selectedTone || 1) - 1];
94
94
  }
95
95
 
96
- return /*#__PURE__*/React.createElement("div", {
97
- className: styles.toneSelectorContainer
98
- }, this.state.selectingTone && /*#__PURE__*/React.createElement(ToneSelector, {
96
+ return jsx("div", {
97
+ className: toneSelectorContainer
98
+ }, this.state.selectingTone && jsx(ToneSelector, {
99
99
  emoji: toneEmoji,
100
100
  onToneSelected: this.onToneSelected,
101
101
  previewEmojiId: previewEmoji.id
102
- }), /*#__PURE__*/React.createElement(EmojiButton, {
102
+ }), jsx(EmojiButton, {
103
103
  ariaExpanded: this.state.selectingTone,
104
104
  emoji: previewEmoji,
105
105
  selectOnHover: true,
@@ -112,8 +112,6 @@ export var EmojiPreview = /*#__PURE__*/function (_PureComponent) {
112
112
  }, {
113
113
  key: "renderEmojiPreview",
114
114
  value: function renderEmojiPreview() {
115
- var _classNames2;
116
-
117
115
  var selectingTone = this.state.selectingTone;
118
116
  var _this$props2 = this.props,
119
117
  emoji = _this$props2.emoji,
@@ -123,21 +121,9 @@ export var EmojiPreview = /*#__PURE__*/function (_PureComponent) {
123
121
  return null;
124
122
  }
125
123
 
126
- var previewClasses = classNames(_defineProperty({}, styles.preview, true));
127
- var previewTextClasses = classNames((_classNames2 = {}, _defineProperty(_classNames2, styles.previewText, true), _defineProperty(_classNames2, styles.previewSingleLine, !emoji.name), _classNames2));
128
- return /*#__PURE__*/React.createElement("div", {
129
- className: previewClasses
130
- }, /*#__PURE__*/React.createElement("span", {
131
- className: styles.previewImg
132
- }, /*#__PURE__*/React.createElement(CachingEmoji, {
124
+ return jsx(EmojiPreviewComponent, {
133
125
  emoji: emoji
134
- })), /*#__PURE__*/React.createElement("div", {
135
- className: previewTextClasses
136
- }, /*#__PURE__*/React.createElement("span", {
137
- className: styles.name
138
- }, emoji.name), /*#__PURE__*/React.createElement("span", {
139
- className: styles.shortName
140
- }, emoji.shortName)));
126
+ });
141
127
  } // note: emoji-picker-add-emoji className is used by pollinator synthetic checks
142
128
 
143
129
  }, {
@@ -154,26 +140,26 @@ export var EmojiPreview = /*#__PURE__*/function (_PureComponent) {
154
140
  return null;
155
141
  }
156
142
 
157
- return /*#__PURE__*/React.createElement("div", {
158
- className: styles.AddCustomEmoji
159
- }, /*#__PURE__*/React.createElement(FormattedMessage, messages.addCustomEmojiLabel, function (label) {
160
- return /*#__PURE__*/React.createElement(AkButton, {
143
+ return jsx("div", {
144
+ css: addCustomEmoji
145
+ }, jsx(FormattedMessage, messages.addCustomEmojiLabel, function (label) {
146
+ return jsx(AkButton, {
161
147
  onClick: onOpenUpload,
162
- iconBefore: /*#__PURE__*/React.createElement(AddIcon, {
148
+ iconBefore: jsx(AddIcon, {
163
149
  label: formatMessage(messages.addCustomEmojiLabel),
164
150
  size: "small"
165
151
  }),
166
152
  appearance: "subtle",
167
- className: styles.addCustomEmojiButton + ' emoji-picker-add-emoji'
153
+ css: addCustomEmojiButton,
154
+ className: emojiPickerAddEmoji
168
155
  }, label);
169
156
  }));
170
157
  }
171
158
  }, {
172
159
  key: "render",
173
160
  value: function render() {
174
- var sectionClasses = classNames([styles.emojiPreview, styles.emojiPreviewSection]);
175
- return /*#__PURE__*/React.createElement("div", {
176
- className: sectionClasses,
161
+ return jsx("div", {
162
+ css: emojiPreview,
177
163
  onMouseLeave: this.onMouseLeave
178
164
  }, this.renderAddOwnEmoji(), this.renderEmojiPreview(), this.renderTones());
179
165
  }
@@ -0,0 +1,20 @@
1
+ /** @jsx jsx */
2
+ import { jsx } from '@emotion/core';
3
+ import CachingEmoji from './CachingEmoji';
4
+ import { emojiName, emojiShortName, preview, previewImg, previewText } from './styles';
5
+ export var EmojiPreviewComponent = function EmojiPreviewComponent(_ref) {
6
+ var emoji = _ref.emoji;
7
+ return jsx("div", {
8
+ css: preview
9
+ }, jsx("span", {
10
+ css: previewImg
11
+ }, jsx(CachingEmoji, {
12
+ emoji: emoji
13
+ })), jsx("div", {
14
+ css: previewText
15
+ }, emoji.name && jsx("div", {
16
+ css: emojiName
17
+ }, emoji.name), jsx("div", {
18
+ css: emojiShortName
19
+ }, emoji.shortName)));
20
+ };
@@ -10,7 +10,9 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
10
10
 
11
11
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
12
12
 
13
- import React from 'react';
13
+ /** @jsx jsx */
14
+ import { jsx } from '@emotion/core';
15
+ import React, { Fragment } from 'react';
14
16
  import { PureComponent } from 'react';
15
17
  import { FormattedMessage, injectIntl } from 'react-intl-next';
16
18
  import TextField from '@atlaskit/textfield';
@@ -21,7 +23,7 @@ import EmojiErrorMessage from './EmojiErrorMessage';
21
23
  import EmojiUploadPreview from './EmojiUploadPreview';
22
24
  import FileChooser from './FileChooser';
23
25
  import { UploadStatus } from './internal-types';
24
- import * as styles from './styles';
26
+ import { emojiChooseFileErrorMessage, emojiUpload, emojiUploadBottom, uploadChooseFileBrowse, uploadChooseFileEmojiName, uploadChooseFileMessage, uploadChooseFileRow } from './styles';
25
27
  var disallowedReplacementsMap = new Map([[':', ''], ['!', ''], ['@', ''], ['#', ''], ['%', ''], ['^', ''], ['&', ''], ['*', ''], ['(', ''], [')', ''], [' ', '_']]);
26
28
 
27
29
  var sanitizeName = function sanitizeName(name) {
@@ -79,17 +81,17 @@ var ChooseEmojiFile = /*#__PURE__*/function (_PureComponent) {
79
81
  var disableChooser = !name;
80
82
  var fileChooserButtonDescriptionId = 'choose.emoji.file.button.screen.reader.description.id'; // Note: FileChooser.accept does not work in Electron due to a bug: https://product-fabric.atlassian.net/browse/FS-1626
81
83
 
82
- return /*#__PURE__*/React.createElement("div", {
83
- className: styles.emojiUpload
84
- }, /*#__PURE__*/React.createElement("div", {
85
- className: styles.uploadChooseFileMessage
86
- }, /*#__PURE__*/React.createElement(FormattedMessage, messages.addCustomEmojiLabel, function (message) {
87
- return /*#__PURE__*/React.createElement("h5", null, message);
88
- })), /*#__PURE__*/React.createElement("div", {
89
- className: styles.uploadChooseFileRow
90
- }, /*#__PURE__*/React.createElement("span", {
91
- className: styles.uploadChooseFileEmojiName
92
- }, /*#__PURE__*/React.createElement(TextField, {
84
+ return jsx("div", {
85
+ css: emojiUpload
86
+ }, jsx("div", {
87
+ css: uploadChooseFileMessage
88
+ }, jsx(FormattedMessage, messages.addCustomEmojiLabel, function (message) {
89
+ return jsx("h5", null, message);
90
+ })), jsx("div", {
91
+ css: uploadChooseFileRow
92
+ }, jsx("span", {
93
+ css: uploadChooseFileEmojiName
94
+ }, jsx(TextField, {
93
95
  placeholder: formatMessage(messages.emojiPlaceholder),
94
96
  "aria-label": formatMessage(messages.emojiNameAriaLabel),
95
97
  maxLength: maxNameLength,
@@ -98,13 +100,13 @@ var ChooseEmojiFile = /*#__PURE__*/function (_PureComponent) {
98
100
  value: name,
99
101
  isCompact: true,
100
102
  autoFocus: true
101
- })), /*#__PURE__*/React.createElement("span", {
102
- className: styles.uploadChooseFileBrowse
103
- }, /*#__PURE__*/React.createElement(FormattedMessage, messages.emojiChooseFileScreenReaderDescription, function (screenReaderDescription) {
104
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("span", {
103
+ })), jsx("span", {
104
+ css: uploadChooseFileBrowse
105
+ }, jsx(FormattedMessage, messages.emojiChooseFileScreenReaderDescription, function (screenReaderDescription) {
106
+ return jsx(Fragment, null, jsx("span", {
105
107
  hidden: true,
106
108
  id: fileChooserButtonDescriptionId
107
- }, screenReaderDescription), /*#__PURE__*/React.createElement(FileChooser, {
109
+ }, screenReaderDescription), jsx(FileChooser, {
108
110
  label: formatMessage(messages.emojiChooseFileTitle),
109
111
  onChange: onChooseFile,
110
112
  onClick: onClick,
@@ -112,10 +114,10 @@ var ChooseEmojiFile = /*#__PURE__*/function (_PureComponent) {
112
114
  ariaDescribedBy: fileChooserButtonDescriptionId,
113
115
  isDisabled: disableChooser
114
116
  }));
115
- }))), /*#__PURE__*/React.createElement("div", {
116
- className: styles.emojiUploadBottom
117
- }, !errorMessage ? /*#__PURE__*/React.createElement("p", null, /*#__PURE__*/React.createElement(FormattedMessage, messages.emojiImageRequirements)) : /*#__PURE__*/React.createElement(EmojiErrorMessage, {
118
- className: styles.emojiChooseFileErrorMessage,
117
+ }))), jsx("div", {
118
+ css: emojiUploadBottom
119
+ }, !errorMessage ? jsx("p", null, jsx(FormattedMessage, messages.emojiImageRequirements)) : jsx(EmojiErrorMessage, {
120
+ messageStyles: emojiChooseFileErrorMessage,
119
121
  message: errorMessage
120
122
  })));
121
123
  }
@@ -319,7 +321,7 @@ export var EmojiUploadPicker = /*#__PURE__*/function (_PureComponent2) {
319
321
  };
320
322
 
321
323
  if (name && previewImage) {
322
- return /*#__PURE__*/React.createElement(EmojiUploadPreview, {
324
+ return jsx(EmojiUploadPreview, {
323
325
  errorMessage: errorMessage,
324
326
  name: name,
325
327
  onAddEmoji: this.onAddEmoji,
@@ -329,13 +331,13 @@ export var EmojiUploadPicker = /*#__PURE__*/function (_PureComponent2) {
329
331
  });
330
332
  }
331
333
 
332
- return /*#__PURE__*/React.createElement(ChooseEmojiFile, {
334
+ return jsx(ChooseEmojiFile, {
333
335
  name: name,
334
336
  onChooseFile: this.onChooseFile,
335
337
  onClick: this.props.onFileChooserClicked,
336
338
  onNameChange: this.onNameChange,
337
339
  onUploadCancelled: cancelUpload,
338
- errorMessage: chooseEmojiErrorMessage ? /*#__PURE__*/React.createElement(FormattedMessage, chooseEmojiErrorMessage) : undefined,
340
+ errorMessage: chooseEmojiErrorMessage ? jsx(FormattedMessage, chooseEmojiErrorMessage) : undefined,
339
341
  intl: intl
340
342
  });
341
343
  }
@@ -9,8 +9,9 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
9
9
 
10
10
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
11
11
 
12
+ /** @jsx jsx */
13
+ import { jsx } from '@emotion/core';
12
14
  import AkButton from '@atlaskit/button/custom-theme-button';
13
- import React from 'react';
14
15
  import { PureComponent } from 'react';
15
16
  import { FormattedMessage, injectIntl } from 'react-intl-next';
16
17
  import { customCategory } from '../../util/constants';
@@ -19,7 +20,7 @@ import Emoji from './Emoji';
19
20
  import EmojiErrorMessage from './EmojiErrorMessage';
20
21
  import { UploadStatus } from './internal-types';
21
22
  import RetryableButton from './RetryableButton';
22
- import * as styles from './styles';
23
+ import { bigEmojiPreview, cancelButton, emojiPreviewErrorMessage, uploadAddRow, uploadPreview, uploadPreviewFooter, uploadPreviewText } from './styles';
23
24
 
24
25
  var EmojiUploadPreview = /*#__PURE__*/function (_PureComponent) {
25
26
  _inherits(EmojiUploadPreview, _PureComponent);
@@ -58,44 +59,42 @@ var EmojiUploadPreview = /*#__PURE__*/function (_PureComponent) {
58
59
  },
59
60
  searchable: true
60
61
  };
61
- emojiComponent = /*#__PURE__*/React.createElement(Emoji, {
62
+ emojiComponent = jsx(Emoji, {
62
63
  emoji: emoji
63
64
  });
64
65
  }
65
66
 
66
67
  var uploading = uploadStatus === UploadStatus.Uploading;
67
- return /*#__PURE__*/React.createElement("div", {
68
- className: styles.uploadPreviewFooter
69
- }, /*#__PURE__*/React.createElement("div", {
70
- className: styles.uploadPreview
71
- }, /*#__PURE__*/React.createElement("div", {
72
- className: styles.uploadPreviewText
73
- }, /*#__PURE__*/React.createElement("h5", null, /*#__PURE__*/React.createElement(FormattedMessage, messages.emojiPreviewTitle)), /*#__PURE__*/React.createElement(FormattedMessage, _extends({}, messages.emojiPreview, {
68
+ return jsx("div", {
69
+ css: uploadPreviewFooter
70
+ }, jsx("div", {
71
+ css: uploadPreview
72
+ }, jsx("div", {
73
+ css: uploadPreviewText
74
+ }, jsx("h5", null, jsx(FormattedMessage, messages.emojiPreviewTitle)), jsx(FormattedMessage, _extends({}, messages.emojiPreview, {
74
75
  values: {
75
76
  emoji: emojiComponent
76
77
  }
77
- }))), /*#__PURE__*/React.createElement("div", {
78
- className: styles.bigEmojiPreview
79
- }, emojiComponent)), /*#__PURE__*/React.createElement("div", {
80
- className: styles.uploadAddRow
81
- }, !uploading && errorMessage ? /*#__PURE__*/React.createElement(EmojiErrorMessage, {
82
- className: styles.emojiPreviewErrorMessage,
78
+ }))), jsx("div", {
79
+ css: bigEmojiPreview
80
+ }, emojiComponent)), jsx("div", {
81
+ css: uploadAddRow
82
+ }, !uploading && errorMessage ? jsx(EmojiErrorMessage, {
83
+ messageStyles: emojiPreviewErrorMessage,
83
84
  message: errorMessage,
84
85
  tooltip: true
85
- }) : null, /*#__PURE__*/React.createElement(RetryableButton, {
86
- className: styles.uploadEmojiButton,
87
- retryClassName: styles.uploadRetryButton,
86
+ }) : null, jsx(RetryableButton, {
88
87
  label: formatMessage(messages.addEmojiLabel),
89
88
  onSubmit: onAddEmoji,
90
89
  appearance: "primary",
91
90
  loading: uploading,
92
91
  error: !!errorMessage
93
- }), /*#__PURE__*/React.createElement(AkButton, {
92
+ }), jsx(AkButton, {
94
93
  onClick: onUploadCancelled,
95
94
  appearance: "subtle",
96
95
  isDisabled: uploading,
97
- className: styles.cancelButton
98
- }, /*#__PURE__*/React.createElement(FormattedMessage, messages.cancelLabel))));
96
+ css: cancelButton
97
+ }, jsx(FormattedMessage, messages.cancelLabel))));
99
98
  }
100
99
  }]);
101
100
 
@@ -1,4 +1,4 @@
1
- import { insertionFailed, insertionSucceeded } from '../../util/analytics';
1
+ import { recordFailed, recordSucceeded, ufoExperiences } from '../../util/analytics';
2
2
 
3
3
  /**
4
4
  * A function that will wrap any configured Emoji 'onSelection' function to ensure recordSelection is always
@@ -12,10 +12,13 @@ export var createRecordSelectionDefault = function createRecordSelectionDefault(
12
12
  return function (emojiId, emoji, event) {
13
13
  try {
14
14
  if (provider.recordSelection && emoji) {
15
+ ufoExperiences['emoji-selection-recorded'].start();
15
16
  provider.recordSelection(emoji).then(function () {
16
- return fireAnalytics && fireAnalytics(insertionSucceeded);
17
+ fireAnalytics && fireAnalytics(recordSucceeded);
18
+ ufoExperiences['emoji-selection-recorded'].success();
17
19
  }).catch(function () {
18
- return fireAnalytics && fireAnalytics(insertionFailed);
20
+ fireAnalytics && fireAnalytics(recordFailed);
21
+ ufoExperiences['emoji-selection-recorded'].failure();
19
22
  });
20
23
  }
21
24
  } finally {
@@ -10,13 +10,13 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
10
10
 
11
11
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
12
12
 
13
+ import PropTypes from 'prop-types';
13
14
  import React from 'react';
14
15
  import { Component } from 'react';
15
16
  import { defaultEmojiHeight } from '../../util/constants';
16
17
  import { isPromise } from '../../util/type-helpers';
17
18
  import CachingEmoji from './CachingEmoji';
18
19
  import EmojiPlaceholder from './EmojiPlaceholder';
19
- import { EmojiContextProvider } from '../../context/EmojiContextProvider';
20
20
  import { sampledUfoRenderedEmoji } from '../../util/analytics';
21
21
 
22
22
  var ResourcedEmojiComponent = /*#__PURE__*/function (_Component) {
@@ -41,6 +41,15 @@ var ResourcedEmojiComponent = /*#__PURE__*/function (_Component) {
41
41
  }
42
42
 
43
43
  _createClass(ResourcedEmojiComponent, [{
44
+ key: "getChildContext",
45
+ value: function getChildContext() {
46
+ return {
47
+ emoji: {
48
+ emojiProvider: this.props.emojiProvider
49
+ }
50
+ };
51
+ }
52
+ }, {
44
53
  key: "refreshEmoji",
45
54
  value: function refreshEmoji(emojiProvider, emojiId) {
46
55
  var _this2 = this;
@@ -144,22 +153,19 @@ var ResourcedEmojiComponent = /*#__PURE__*/function (_Component) {
144
153
  shortName = _this$props$emojiId.shortName,
145
154
  id = _this$props$emojiId.id,
146
155
  fallback = _this$props$emojiId.fallback;
147
- var emojiContextValue = {
148
- emoji: {
149
- emojiProvider: this.props.emojiProvider
150
- }
151
- };
152
- return /*#__PURE__*/React.createElement(EmojiContextProvider, {
153
- emojiContextValue: emojiContextValue
154
- }, /*#__PURE__*/React.createElement("span", {
156
+ return /*#__PURE__*/React.createElement("span", {
155
157
  "data-emoji-id": id,
156
158
  "data-emoji-short-name": shortName,
157
159
  "data-emoji-text": fallback || shortName
158
- }, element));
160
+ }, element);
159
161
  }
160
162
  }]);
161
163
 
162
164
  return ResourcedEmojiComponent;
163
165
  }(Component);
164
166
 
167
+ _defineProperty(ResourcedEmojiComponent, "childContextTypes", {
168
+ emoji: PropTypes.object
169
+ });
170
+
165
171
  export { ResourcedEmojiComponent as default };
@@ -8,13 +8,14 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
8
8
 
9
9
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
10
10
 
11
+ /** @jsx jsx */
12
+ import { jsx } from '@emotion/core';
11
13
  import AkButton from '@atlaskit/button/custom-theme-button';
12
14
  import Spinner from '@atlaskit/spinner';
13
- import React from 'react';
14
15
  import { Component } from 'react';
15
16
  import { FormattedMessage } from 'react-intl-next';
16
17
  import { messages } from '../i18n';
17
- import * as styles from './styles';
18
+ import { buttonSpinner, uploadEmojiButton, uploadRetryButton } from './styles';
18
19
 
19
20
  var RetryableButton = /*#__PURE__*/function (_Component) {
20
21
  _inherits(RetryableButton, _Component);
@@ -30,20 +31,19 @@ var RetryableButton = /*#__PURE__*/function (_Component) {
30
31
  _createClass(RetryableButton, [{
31
32
  key: "renderLoading",
32
33
  value: function renderLoading() {
33
- return /*#__PURE__*/React.createElement("span", {
34
- className: styles.buttonSpinner
35
- }, /*#__PURE__*/React.createElement(Spinner, null));
34
+ return jsx("span", {
35
+ css: buttonSpinner
36
+ }, jsx(Spinner, null));
36
37
  }
37
38
  }, {
38
39
  key: "renderRetry",
39
40
  value: function renderRetry() {
40
41
  var _this$props = this.props,
41
42
  loading = _this$props.loading,
42
- retryClassName = _this$props.retryClassName,
43
43
  onSubmit = _this$props.onSubmit;
44
- return loading ? this.renderLoading() : /*#__PURE__*/React.createElement(FormattedMessage, messages.retryLabel, function (retryLabel) {
45
- return /*#__PURE__*/React.createElement(AkButton, {
46
- className: retryClassName,
44
+ return loading ? this.renderLoading() : jsx(FormattedMessage, messages.retryLabel, function (retryLabel) {
45
+ return jsx(AkButton, {
46
+ css: uploadRetryButton,
47
47
  appearance: "warning",
48
48
  onClick: onSubmit
49
49
  }, retryLabel);
@@ -55,12 +55,11 @@ var RetryableButton = /*#__PURE__*/function (_Component) {
55
55
  var _this$props2 = this.props,
56
56
  loading = _this$props2.loading,
57
57
  error = _this$props2.error,
58
- className = _this$props2.className,
59
58
  appearance = _this$props2.appearance,
60
59
  onSubmit = _this$props2.onSubmit,
61
60
  label = _this$props2.label;
62
- return error ? this.renderRetry() : loading ? this.renderLoading() : /*#__PURE__*/React.createElement(AkButton, {
63
- className: className,
61
+ return error ? this.renderRetry() : loading ? this.renderLoading() : jsx(AkButton, {
62
+ css: uploadEmojiButton,
64
63
  appearance: appearance,
65
64
  onClick: onSubmit
66
65
  }, label);
@@ -11,8 +11,9 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
11
11
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
12
12
 
13
13
  // FIXME - FAB-1732 looking at making a shared component for this
14
- import classNames from 'classnames';
15
- import React from 'react';
14
+
15
+ /** @jsx jsx */
16
+ import { jsx } from '@emotion/core';
16
17
  import { PureComponent } from 'react';
17
18
  import { findDOMNode } from 'react-dom';
18
19
  import * as styles from './styles';
@@ -88,17 +89,12 @@ var Scrollable = /*#__PURE__*/function (_PureComponent) {
88
89
  className = _this$props.className,
89
90
  maxHeight = _this$props.maxHeight,
90
91
  onMouseLeave = _this$props.onMouseLeave;
91
- var scrollableClasses = ['emoji-scrollable', styles.emojiScrollable];
92
-
93
- if (className) {
94
- scrollableClasses.push(className);
95
- }
96
-
97
92
  var style = maxHeight ? {
98
93
  maxHeight: maxHeight
99
94
  } : {};
100
- return /*#__PURE__*/React.createElement("div", {
101
- className: classNames(scrollableClasses),
95
+ return jsx("div", {
96
+ className: "emoji-scrollable ".concat(className),
97
+ css: styles.emojiScrollable,
102
98
  onMouseLeave: onMouseLeave,
103
99
  onScroll: this.handleScroll,
104
100
  ref: this.handleRef,