@atlaskit/emoji 68.0.4 → 69.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/afm-cc/tsconfig.json +3 -0
  3. package/dist/cjs/components/common/CachingEmoji.js +61 -21
  4. package/dist/cjs/components/common/DeletableEmojiTooltipContent.js +13 -4
  5. package/dist/cjs/components/common/EmojiActions.js +4 -4
  6. package/dist/cjs/components/common/EmojiUploadPreview.js +1 -1
  7. package/dist/cjs/components/common/ResourcedEmojiComponent.js +18 -3
  8. package/dist/cjs/components/common/RetryableButton.js +3 -1
  9. package/dist/cjs/components/compiled/common/DeleteButton.compiled.css +9 -0
  10. package/dist/cjs/components/compiled/common/DeleteButton.js +52 -0
  11. package/dist/cjs/components/compiled/common/Emoji.compiled.css +23 -0
  12. package/dist/cjs/components/compiled/common/Emoji.js +380 -0
  13. package/dist/cjs/components/compiled/common/EmojiActions.compiled.css +21 -0
  14. package/dist/cjs/components/compiled/common/EmojiActions.js +220 -0
  15. package/dist/cjs/components/compiled/common/EmojiDeletePreview.compiled.css +21 -0
  16. package/dist/cjs/components/compiled/common/EmojiDeletePreview.js +152 -0
  17. package/dist/cjs/components/compiled/common/EmojiErrorMessage.compiled.css +9 -0
  18. package/dist/cjs/components/compiled/common/EmojiErrorMessage.js +58 -0
  19. package/dist/cjs/components/compiled/common/EmojiFallback.compiled.css +7 -0
  20. package/dist/cjs/components/compiled/common/EmojiFallback.js +36 -0
  21. package/dist/cjs/components/compiled/common/EmojiPlaceholder.compiled.css +20 -0
  22. package/dist/cjs/components/compiled/common/EmojiPlaceholder.js +68 -0
  23. package/dist/cjs/components/compiled/common/EmojiPreviewComponent.compiled.css +52 -0
  24. package/dist/cjs/components/compiled/common/EmojiPreviewComponent.js +45 -0
  25. package/dist/cjs/components/compiled/common/EmojiRadioButton.compiled.css +39 -0
  26. package/dist/cjs/components/compiled/common/EmojiRadioButton.js +72 -0
  27. package/dist/cjs/components/compiled/common/EmojiUploadPicker.compiled.css +26 -0
  28. package/dist/cjs/components/compiled/common/EmojiUploadPicker.js +322 -0
  29. package/dist/cjs/components/compiled/common/EmojiUploadPreview.compiled.css +20 -0
  30. package/dist/cjs/components/compiled/common/EmojiUploadPreview.js +124 -0
  31. package/dist/cjs/components/compiled/common/RetryableButton.compiled.css +2 -0
  32. package/dist/cjs/components/compiled/common/RetryableButton.js +73 -0
  33. package/dist/cjs/components/compiled/common/Scrollable.compiled.css +13 -0
  34. package/dist/cjs/components/compiled/common/Scrollable.js +97 -0
  35. package/dist/cjs/components/compiled/common/TonePreviewButton.compiled.css +32 -0
  36. package/dist/cjs/components/compiled/common/TonePreviewButton.js +52 -0
  37. package/dist/cjs/components/compiled/common/ToneSelector.compiled.css +3 -0
  38. package/dist/cjs/components/compiled/common/ToneSelector.js +111 -0
  39. package/dist/cjs/components/compiled/common/ToolTipContentWithKeymap.compiled.css +7 -0
  40. package/dist/cjs/components/compiled/common/ToolTipContentWithKeymap.js +28 -0
  41. package/dist/cjs/components/picker/EmojiPickerFooter.js +2 -0
  42. package/dist/cjs/components/picker/EmojiPickerList.js +1 -0
  43. package/dist/cjs/components/picker/EmojiPickerVirtualItems.js +2 -1
  44. package/dist/cjs/components/typeahead/EmojiTypeAheadItem.js +1 -0
  45. package/dist/cjs/components/typeahead/EmojiTypeAheadList.js +3 -1
  46. package/dist/cjs/components/uploader/EmojiUploadComponent.js +2 -0
  47. package/dist/cjs/element.js +9 -15
  48. package/dist/cjs/index.js +3 -4
  49. package/dist/cjs/util/analytics/analytics.js +1 -1
  50. package/dist/es2019/components/common/CachingEmoji.js +63 -23
  51. package/dist/es2019/components/common/DeletableEmojiTooltipContent.js +14 -5
  52. package/dist/es2019/components/common/EmojiActions.js +4 -4
  53. package/dist/es2019/components/common/EmojiUploadPreview.js +1 -1
  54. package/dist/es2019/components/common/ResourcedEmojiComponent.js +20 -5
  55. package/dist/es2019/components/common/RetryableButton.js +3 -1
  56. package/dist/es2019/components/compiled/common/DeleteButton.compiled.css +9 -0
  57. package/dist/es2019/components/compiled/common/DeleteButton.js +40 -0
  58. package/dist/es2019/components/compiled/common/Emoji.compiled.css +23 -0
  59. package/dist/es2019/components/compiled/common/Emoji.js +368 -0
  60. package/dist/es2019/components/compiled/common/EmojiActions.compiled.css +21 -0
  61. package/dist/es2019/components/compiled/common/EmojiActions.js +195 -0
  62. package/dist/es2019/components/compiled/common/EmojiDeletePreview.compiled.css +21 -0
  63. package/dist/es2019/components/compiled/common/EmojiDeletePreview.js +126 -0
  64. package/dist/es2019/components/compiled/common/EmojiErrorMessage.compiled.css +9 -0
  65. package/dist/es2019/components/compiled/common/EmojiErrorMessage.js +51 -0
  66. package/dist/es2019/components/compiled/common/EmojiFallback.compiled.css +7 -0
  67. package/dist/es2019/components/compiled/common/EmojiFallback.js +33 -0
  68. package/dist/es2019/components/compiled/common/EmojiPlaceholder.compiled.css +21 -0
  69. package/dist/es2019/components/compiled/common/EmojiPlaceholder.js +51 -0
  70. package/dist/es2019/components/compiled/common/EmojiPreviewComponent.compiled.css +52 -0
  71. package/dist/es2019/components/compiled/common/EmojiPreviewComponent.js +29 -0
  72. package/dist/es2019/components/compiled/common/EmojiRadioButton.compiled.css +39 -0
  73. package/dist/es2019/components/compiled/common/EmojiRadioButton.js +58 -0
  74. package/dist/es2019/components/compiled/common/EmojiUploadPicker.compiled.css +26 -0
  75. package/dist/es2019/components/compiled/common/EmojiUploadPicker.js +276 -0
  76. package/dist/es2019/components/compiled/common/EmojiUploadPreview.compiled.css +20 -0
  77. package/dist/es2019/components/compiled/common/EmojiUploadPreview.js +96 -0
  78. package/dist/es2019/components/compiled/common/RetryableButton.compiled.css +2 -0
  79. package/dist/es2019/components/compiled/common/RetryableButton.js +67 -0
  80. package/dist/es2019/components/compiled/common/Scrollable.compiled.css +13 -0
  81. package/dist/es2019/components/compiled/common/Scrollable.js +69 -0
  82. package/dist/es2019/components/compiled/common/TonePreviewButton.compiled.css +32 -0
  83. package/dist/es2019/components/compiled/common/TonePreviewButton.js +41 -0
  84. package/dist/es2019/components/compiled/common/ToneSelector.compiled.css +3 -0
  85. package/dist/es2019/components/compiled/common/ToneSelector.js +99 -0
  86. package/dist/es2019/components/compiled/common/ToolTipContentWithKeymap.compiled.css +7 -0
  87. package/dist/es2019/components/compiled/common/ToolTipContentWithKeymap.js +17 -0
  88. package/dist/es2019/components/picker/EmojiPickerFooter.js +1 -1
  89. package/dist/es2019/components/picker/EmojiPickerList.js +2 -1
  90. package/dist/es2019/components/picker/EmojiPickerVirtualItems.js +2 -1
  91. package/dist/es2019/components/typeahead/EmojiTypeAheadItem.js +1 -1
  92. package/dist/es2019/components/typeahead/EmojiTypeAheadList.js +3 -2
  93. package/dist/es2019/components/uploader/EmojiUploadComponent.js +1 -1
  94. package/dist/es2019/element.js +9 -2
  95. package/dist/es2019/index.js +1 -2
  96. package/dist/es2019/util/analytics/analytics.js +1 -1
  97. package/dist/esm/components/common/CachingEmoji.js +63 -23
  98. package/dist/esm/components/common/DeletableEmojiTooltipContent.js +14 -5
  99. package/dist/esm/components/common/EmojiActions.js +4 -4
  100. package/dist/esm/components/common/EmojiUploadPreview.js +1 -1
  101. package/dist/esm/components/common/ResourcedEmojiComponent.js +20 -5
  102. package/dist/esm/components/common/RetryableButton.js +3 -1
  103. package/dist/esm/components/compiled/common/DeleteButton.compiled.css +9 -0
  104. package/dist/esm/components/compiled/common/DeleteButton.js +42 -0
  105. package/dist/esm/components/compiled/common/Emoji.compiled.css +23 -0
  106. package/dist/esm/components/compiled/common/Emoji.js +370 -0
  107. package/dist/esm/components/compiled/common/EmojiActions.compiled.css +21 -0
  108. package/dist/esm/components/compiled/common/EmojiActions.js +210 -0
  109. package/dist/esm/components/compiled/common/EmojiDeletePreview.compiled.css +21 -0
  110. package/dist/esm/components/compiled/common/EmojiDeletePreview.js +142 -0
  111. package/dist/esm/components/compiled/common/EmojiErrorMessage.compiled.css +9 -0
  112. package/dist/esm/components/compiled/common/EmojiErrorMessage.js +48 -0
  113. package/dist/esm/components/compiled/common/EmojiFallback.compiled.css +7 -0
  114. package/dist/esm/components/compiled/common/EmojiFallback.js +29 -0
  115. package/dist/esm/components/compiled/common/EmojiPlaceholder.compiled.css +20 -0
  116. package/dist/esm/components/compiled/common/EmojiPlaceholder.js +58 -0
  117. package/dist/esm/components/compiled/common/EmojiPreviewComponent.compiled.css +52 -0
  118. package/dist/esm/components/compiled/common/EmojiPreviewComponent.js +35 -0
  119. package/dist/esm/components/compiled/common/EmojiRadioButton.compiled.css +39 -0
  120. package/dist/esm/components/compiled/common/EmojiRadioButton.js +62 -0
  121. package/dist/esm/components/compiled/common/EmojiUploadPicker.compiled.css +26 -0
  122. package/dist/esm/components/compiled/common/EmojiUploadPicker.js +312 -0
  123. package/dist/esm/components/compiled/common/EmojiUploadPreview.compiled.css +20 -0
  124. package/dist/esm/components/compiled/common/EmojiUploadPreview.js +114 -0
  125. package/dist/esm/components/compiled/common/RetryableButton.compiled.css +2 -0
  126. package/dist/esm/components/compiled/common/RetryableButton.js +63 -0
  127. package/dist/esm/components/compiled/common/Scrollable.compiled.css +13 -0
  128. package/dist/esm/components/compiled/common/Scrollable.js +90 -0
  129. package/dist/esm/components/compiled/common/TonePreviewButton.compiled.css +32 -0
  130. package/dist/esm/components/compiled/common/TonePreviewButton.js +42 -0
  131. package/dist/esm/components/compiled/common/ToneSelector.compiled.css +3 -0
  132. package/dist/esm/components/compiled/common/ToneSelector.js +101 -0
  133. package/dist/esm/components/compiled/common/ToolTipContentWithKeymap.compiled.css +7 -0
  134. package/dist/esm/components/compiled/common/ToolTipContentWithKeymap.js +19 -0
  135. package/dist/esm/components/picker/EmojiPickerFooter.js +1 -1
  136. package/dist/esm/components/picker/EmojiPickerList.js +2 -1
  137. package/dist/esm/components/picker/EmojiPickerVirtualItems.js +2 -1
  138. package/dist/esm/components/typeahead/EmojiTypeAheadItem.js +1 -1
  139. package/dist/esm/components/typeahead/EmojiTypeAheadList.js +3 -2
  140. package/dist/esm/components/uploader/EmojiUploadComponent.js +1 -1
  141. package/dist/esm/element.js +9 -2
  142. package/dist/esm/index.js +1 -2
  143. package/dist/esm/util/analytics/analytics.js +1 -1
  144. package/dist/types/components/common/EmojiActions.d.ts +2 -2
  145. package/dist/types/components/compiled/common/DeleteButton.d.ts +8 -0
  146. package/dist/types/components/compiled/common/Emoji.d.ts +95 -0
  147. package/dist/types/components/compiled/common/EmojiActions.d.ts +34 -0
  148. package/dist/types/components/compiled/common/EmojiDeletePreview.d.ts +21 -0
  149. package/dist/types/components/compiled/common/EmojiErrorMessage.d.ts +14 -0
  150. package/dist/types/components/compiled/common/EmojiFallback.d.ts +8 -0
  151. package/dist/types/components/compiled/common/EmojiPlaceholder.d.ts +12 -0
  152. package/dist/types/components/compiled/common/EmojiPreviewComponent.d.ts +7 -0
  153. package/dist/types/components/compiled/common/EmojiRadioButton.d.ts +16 -0
  154. package/dist/types/components/compiled/common/EmojiUploadPicker.d.ts +20 -0
  155. package/dist/types/components/compiled/common/EmojiUploadPreview.d.ts +18 -0
  156. package/dist/types/components/compiled/common/RetryableButton.d.ts +14 -0
  157. package/dist/types/components/compiled/common/Scrollable.d.ts +19 -0
  158. package/dist/types/components/compiled/common/TonePreviewButton.d.ts +14 -0
  159. package/dist/types/components/compiled/common/ToneSelector.d.ts +15 -0
  160. package/dist/types/components/compiled/common/ToolTipContentWithKeymap.d.ts +11 -0
  161. package/dist/types/element.d.ts +5 -2
  162. package/dist/types/index.d.ts +1 -2
  163. package/dist/types-ts4.5/components/common/EmojiActions.d.ts +2 -2
  164. package/dist/types-ts4.5/components/compiled/common/DeleteButton.d.ts +8 -0
  165. package/dist/types-ts4.5/components/compiled/common/Emoji.d.ts +95 -0
  166. package/dist/types-ts4.5/components/compiled/common/EmojiActions.d.ts +34 -0
  167. package/dist/types-ts4.5/components/compiled/common/EmojiDeletePreview.d.ts +21 -0
  168. package/dist/types-ts4.5/components/compiled/common/EmojiErrorMessage.d.ts +14 -0
  169. package/dist/types-ts4.5/components/compiled/common/EmojiFallback.d.ts +8 -0
  170. package/dist/types-ts4.5/components/compiled/common/EmojiPlaceholder.d.ts +12 -0
  171. package/dist/types-ts4.5/components/compiled/common/EmojiPreviewComponent.d.ts +7 -0
  172. package/dist/types-ts4.5/components/compiled/common/EmojiRadioButton.d.ts +16 -0
  173. package/dist/types-ts4.5/components/compiled/common/EmojiUploadPicker.d.ts +20 -0
  174. package/dist/types-ts4.5/components/compiled/common/EmojiUploadPreview.d.ts +18 -0
  175. package/dist/types-ts4.5/components/compiled/common/RetryableButton.d.ts +14 -0
  176. package/dist/types-ts4.5/components/compiled/common/Scrollable.d.ts +19 -0
  177. package/dist/types-ts4.5/components/compiled/common/TonePreviewButton.d.ts +14 -0
  178. package/dist/types-ts4.5/components/compiled/common/ToneSelector.d.ts +15 -0
  179. package/dist/types-ts4.5/components/compiled/common/ToolTipContentWithKeymap.d.ts +11 -0
  180. package/dist/types-ts4.5/element.d.ts +5 -2
  181. package/dist/types-ts4.5/index.d.ts +1 -2
  182. package/package.json +10 -2
@@ -0,0 +1,99 @@
1
+ /* ToneSelector.tsx generated by @compiled/babel-plugin v0.36.1 */
2
+ import "./ToneSelector.compiled.css";
3
+ import * as React from 'react';
4
+ import { ax, ix } from "@compiled/react/runtime";
5
+ import { memo, useEffect, useMemo, useRef } from 'react';
6
+ import { withAnalyticsEvents } from '@atlaskit/analytics-next';
7
+ import { createAndFireEventInElementsChannel, toneSelectedEvent, toneSelectorOpenedEvent } from '../../../util/analytics';
8
+ import { setSkinToneAriaLabelText } from '../../common/setSkinToneAriaLabelText';
9
+ import EmojiRadioButton from './EmojiRadioButton';
10
+ import { useIntl } from 'react-intl-next';
11
+ import { messages } from '../../i18n';
12
+ const hidden = null;
13
+ export const toneSelectorTestId = 'tone-selector';
14
+ const extractAllTones = emoji => {
15
+ if (emoji.skinVariations) {
16
+ return [emoji, ...emoji.skinVariations];
17
+ }
18
+ return [emoji];
19
+ };
20
+ export const ToneSelectorInternal = props => {
21
+ const {
22
+ createAnalyticsEvent,
23
+ emoji,
24
+ onToneSelected,
25
+ onToneClose,
26
+ selectedTone,
27
+ isVisible
28
+ } = props;
29
+ const isMounted = useRef(false);
30
+ const selectedToneRadioRef = useRef(null);
31
+ const {
32
+ formatMessage
33
+ } = useIntl();
34
+ const emojiToneCollection = useMemo(() => {
35
+ var selectedToneIndex = -1;
36
+ const toneColletion = extractAllTones(emoji).map((tone, index) => {
37
+ const isSelected = index === selectedTone;
38
+ if (isSelected) {
39
+ selectedToneIndex = index;
40
+ }
41
+ return {
42
+ ...tone,
43
+ isSelected: isSelected,
44
+ label: setSkinToneAriaLabelText(tone.name),
45
+ toneIndex: index
46
+ };
47
+ });
48
+
49
+ // push description of selected tone to the end of the array
50
+ // so that it gets rendered last/rightmost
51
+ toneColletion.push(toneColletion.splice(selectedToneIndex, 1)[0]);
52
+ return toneColletion;
53
+ }, [emoji, selectedTone]);
54
+ useEffect(() => {
55
+ if (isVisible) {
56
+ var _selectedToneRadioRef;
57
+ (_selectedToneRadioRef = selectedToneRadioRef.current) === null || _selectedToneRadioRef === void 0 ? void 0 : _selectedToneRadioRef.focus();
58
+ }
59
+ }, [isVisible, selectedToneRadioRef]);
60
+ const fireAnalyticsEvent = event => {
61
+ if (createAnalyticsEvent) {
62
+ createAndFireEventInElementsChannel(event)(createAnalyticsEvent);
63
+ }
64
+ };
65
+ const onToneSelectedHandler = toneValue => () => {
66
+ if (selectedTone === toneValue && onToneClose) {
67
+ onToneClose();
68
+ return;
69
+ }
70
+ onToneSelected(toneValue);
71
+ const toneList = ['default', 'light', 'mediumLight', 'medium', 'mediumDark', 'dark'];
72
+ fireAnalyticsEvent(toneSelectedEvent({
73
+ skinToneModifier: toneList[toneValue]
74
+ }));
75
+ };
76
+ if (!isMounted.current) {
77
+ fireAnalyticsEvent(toneSelectorOpenedEvent({}));
78
+ }
79
+ isMounted.current = true;
80
+ return /*#__PURE__*/React.createElement("div", {
81
+ role: "radiogroup",
82
+ "data-testid": toneSelectorTestId,
83
+ id: "emoji-picker-tone-selector",
84
+ "aria-label": formatMessage(messages.emojiSelectSkinToneListAriaLabelText),
85
+ className: ax([!isVisible && "_tzy4idpf _3um015vq _1e0cglyw"])
86
+ }, emojiToneCollection.map(tone => {
87
+ return /*#__PURE__*/React.createElement(EmojiRadioButton, {
88
+ ref: tone.isSelected ? selectedToneRadioRef : null,
89
+ defaultChecked: tone.isSelected,
90
+ ariaLabelText: tone.label,
91
+ key: `${tone.id}`,
92
+ emoji: tone,
93
+ onSelected: onToneSelectedHandler(tone.toneIndex),
94
+ selectOnHover: true
95
+ });
96
+ }));
97
+ };
98
+ const ToneSelector = withAnalyticsEvents()(ToneSelectorInternal);
99
+ export default /*#__PURE__*/memo(ToneSelector);
@@ -0,0 +1,7 @@
1
+
2
+ ._2rko1l7b{border-radius:3px}._19bvv77o{padding-left:var(--ds-space-025,2px)}
3
+ ._bfhk17rn{background-color:var(--ds-background-inverse-subtle,#505f79)}
4
+ ._ca0qidpf{padding-top:0}
5
+ ._jqf61teg{label:tooltip-shortcut}
6
+ ._n3tdidpf{padding-bottom:0}
7
+ ._u5f3v77o{padding-right:var(--ds-space-025,2px)}
@@ -0,0 +1,17 @@
1
+ /* ToolTipContentWithKeymap.tsx generated by @compiled/babel-plugin v0.36.1 */
2
+ import "./ToolTipContentWithKeymap.compiled.css";
3
+ import { ax, ix } from "@compiled/react/runtime";
4
+ import React, { Fragment } from 'react';
5
+ import { N400 } from '@atlaskit/theme/colors';
6
+ import { formatShortcut } from '../../../util/keymaps';
7
+ const tooltipShortcutStyle = null;
8
+ export const ToolTipContentWithKeymap = /*#__PURE__*/React.memo(({
9
+ description,
10
+ shortcutOverride,
11
+ keymap
12
+ }) => {
13
+ const shortcut = shortcutOverride || keymap && formatShortcut(keymap);
14
+ return shortcut || description ? /*#__PURE__*/React.createElement(Fragment, null, description, shortcut && description && '\u00A0', shortcut && /*#__PURE__*/React.createElement("span", {
15
+ className: ax(["_2rko1l7b _bfhk17rn _ca0qidpf _n3tdidpf _19bvv77o _u5f3v77o _jqf61teg"])
16
+ }, shortcut)) : null;
17
+ });
@@ -5,7 +5,7 @@
5
5
  import { memo } from 'react';
6
6
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
7
7
  import { jsx } from '@emotion/react';
8
- import { EmojiPreviewComponent } from '../common/EmojiPreviewComponent';
8
+ import { EmojiPreviewComponent } from '../common/EmojiPreviewComponent'; // ED-26865: use compiled EmojiPreviewComponent when migrating picker to compiled css
9
9
  import { emojiPickerFooter, emojiPickerFooterWithTopShadow } from './styles';
10
10
  // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
11
11
  const previewFooterClassnames = [emojiPickerFooter, emojiPickerFooterWithTopShadow];
@@ -12,7 +12,8 @@ import { CategoryDescriptionMap } from './categories';
12
12
  import CategoryTracker from './CategoryTracker';
13
13
  import { sizes } from './EmojiPickerSizes';
14
14
  import { CategoryHeadingItem, EmojisRowItem, LoadingItem, virtualItemRenderer } from './EmojiPickerVirtualItems';
15
- import EmojiActions from '../common/EmojiActions';
15
+ import EmojiActions from '../common/EmojiActions'; // ED-26865: use compiled EmojiActions when migrating picker to compiled css
16
+
16
17
  import { emojiPickerList } from './styles';
17
18
  import { emojiPickerHeightOffset, scrollToRow } from './utils';
18
19
  import { VirtualList } from './VirtualList';
@@ -34,7 +34,8 @@ export class LoadingItem extends AbstractItem {
34
34
  jsx("div", {
35
35
  css: emojiPickerSpinner
36
36
  }, jsx("div", null, jsx(Spinner, {
37
- size: "medium"
37
+ size: "medium",
38
+ interactionName: "emoji-picker-loading-item-spinner"
38
39
  }))));
39
40
  }
40
41
  }
@@ -10,7 +10,7 @@ import { jsx } from '@emotion/react';
10
10
  import { PureComponent } from 'react';
11
11
  import { toEmojiId } from '../../util/type-helpers';
12
12
  import { leftClick } from '../../util/mouse';
13
- import { EmojiPreviewComponent } from '../common/EmojiPreviewComponent';
13
+ import { EmojiPreviewComponent } from '../common/EmojiPreviewComponent'; // ED-26864: use compiled EmojiPreviewComponent when migrating typeahead to compiled css
14
14
  import { EmojiCommonProvider } from '../../context/EmojiCommonProvider';
15
15
  import { typeAheadItem, selected as selectedStyles, typeAheadItemRow, typeaheadSelected } from './styles';
16
16
  class EmojiTypeAheadItemInternal extends PureComponent {
@@ -11,7 +11,7 @@ import { emojiTypeAheadMaxHeight } from '../../util/shared-styles';
11
11
  import { toEmojiId } from '../../util/type-helpers';
12
12
  import debug from '../../util/logger';
13
13
  import { actualMouseMove, mouseLocation } from '../../util/mouse';
14
- import Scrollable from '../common/Scrollable';
14
+ import Scrollable from '../common/Scrollable'; // ED-26864: use compiled Scrollable when migrating typeahead to compiled css
15
15
  import EmojiItem from './EmojiTypeAheadItem';
16
16
  import { emojiTypeAheadSpinner, emojiTypeAheadSpinnerContainer, typeAheadEmpty, typeAheadList, typeAheadListContainer } from './styles';
17
17
  import { fg } from '@atlaskit/platform-feature-flags';
@@ -227,7 +227,8 @@ export default class EmojiTypeAheadList extends PureComponent {
227
227
  }, jsx("div", {
228
228
  css: emojiTypeAheadSpinner
229
229
  }, jsx(Spinner, {
230
- size: "medium"
230
+ size: "medium",
231
+ interactionName: "empji-type-ahead-list-spinner"
231
232
  })));
232
233
  } else {
233
234
  listBody = this.renderItems(emojis);
@@ -7,7 +7,7 @@ import { useState, memo, useEffect } from 'react';
7
7
  import { jsx } from '@emotion/react';
8
8
  import { FormattedMessage } from 'react-intl-next';
9
9
  import { supportsUploadFeature } from '../../api/EmojiResource';
10
- import EmojiUploadPickerWithIntl from '../common/EmojiUploadPicker';
10
+ import EmojiUploadPickerWithIntl from '../common/EmojiUploadPicker'; // ED-26866: use compiled EmojiUploadPicker when migrating uploader to compiled css
11
11
  import { uploadEmoji } from '../common/UploadEmoji';
12
12
  import { createAndFireEventInElementsChannel, selectedFileEvent, uploadCancelButton, uploadConfirmButton } from '../../util/analytics';
13
13
  import { emojiUploadFooter, emojiUploadWidget } from './styles';
@@ -1,3 +1,10 @@
1
- export { default as EmojiPlaceholder } from './components/common/EmojiPlaceholder';
2
- export { default as Emoji } from './components/common/Emoji';
1
+ import { componentWithFG } from '@atlaskit/platform-feature-flags-react';
2
+ import { default as CompiledEmojiPlaceholder } from './components/compiled/common/EmojiPlaceholder';
3
+ import { default as EmotionEmojiPlaceholder } from './components/common/EmojiPlaceholder';
4
+ const EmojiPlaceholder = componentWithFG('platform_editor_css_migrate_emoji', CompiledEmojiPlaceholder, EmotionEmojiPlaceholder);
5
+ export { EmojiPlaceholder };
6
+ import { default as CompiledEmoji } from './components/compiled/common/Emoji';
7
+ import { default as EmotionEmoji } from './components/common/Emoji';
8
+ const Emoji = componentWithFG('platform_editor_css_migrate_emoji', CompiledEmoji, EmotionEmoji);
9
+ export { Emoji };
3
10
  export { default as ResourcedEmoji } from './components/common/ResourcedEmoji';
@@ -1,6 +1,5 @@
1
1
  import { AbstractResource } from '@atlaskit/util-service-support';
2
- import Emoji from './components/common/Emoji';
3
- import EmojiPlaceholder from './components/common/EmojiPlaceholder';
2
+ import { Emoji, EmojiPlaceholder } from './element';
4
3
  import ResourcedEmoji from './components/common/ResourcedEmoji';
5
4
  import EmojiPicker, { preloadEmojiPicker } from './components/picker/EmojiPicker';
6
5
  import EmojiUploader from './components/uploader/EmojiUploader';
@@ -8,7 +8,7 @@ const createEvent = (eventType, action, actionSubject, actionSubjectId, attribut
8
8
  actionSubjectId,
9
9
  attributes: {
10
10
  packageName: "@atlaskit/emoji",
11
- packageVersion: "68.0.4",
11
+ packageVersion: "69.0.0",
12
12
  ...attributes
13
13
  }
14
14
  });
@@ -8,9 +8,12 @@ import React, { memo, useEffect, useState } from 'react';
8
8
  import { isMediaEmoji } from '../../util/type-helpers';
9
9
  import { UfoEmojiTimings } from '../../types';
10
10
  import debug from '../../util/logger';
11
- import Emoji from './Emoji';
12
- import EmojiFallback from './EmojiFallback';
13
- import EmojiPlaceholder from './EmojiPlaceholder';
11
+ import { default as EmotionEmoji } from './Emoji';
12
+ import { default as CompiledEmoji } from '../compiled/common/Emoji';
13
+ import { default as EmotionEmojiPlaceholder } from './EmojiPlaceholder';
14
+ import { default as CompiledEmojiPlaceholder } from '../compiled/common/EmojiPlaceholder';
15
+ import { default as EmotionEmojiFallback } from './EmojiFallback';
16
+ import { default as CompiledEmojiFallback } from '../compiled/common/EmojiFallback';
14
17
  import { UfoErrorBoundary } from './UfoErrorBoundary';
15
18
  import { sampledUfoRenderedEmoji, ufoExperiences, useSampledUFOComponentExperience } from '../../util/analytics';
16
19
  import { SAMPLING_RATE_EMOJI_RENDERED_EXP } from '../../util/constants';
@@ -51,9 +54,15 @@ export var CachingEmoji = function CachingEmoji(props) {
51
54
  emoji: emoji
52
55
  }, restProps));
53
56
  } else {
54
- return /*#__PURE__*/React.createElement(Emoji, _extends({
55
- emoji: emoji
56
- }, restProps));
57
+ if (fg('platform_editor_css_migrate_emoji')) {
58
+ return /*#__PURE__*/React.createElement(CompiledEmoji, _extends({
59
+ emoji: emoji
60
+ }, restProps));
61
+ } else {
62
+ return /*#__PURE__*/React.createElement(EmotionEmoji, _extends({
63
+ emoji: emoji
64
+ }, restProps));
65
+ }
57
66
  }
58
67
  };
59
68
  return /*#__PURE__*/React.createElement(UfoErrorBoundary, {
@@ -71,14 +80,27 @@ var StandardEmoji = function StandardEmoji(props) {
71
80
  setImageLoadError(true);
72
81
  };
73
82
  if (imageLoadError) {
74
- return /*#__PURE__*/React.createElement(EmojiFallback, _extends({
75
- emoji: emoji
83
+ if (fg('platform_editor_css_migrate_emoji')) {
84
+ return /*#__PURE__*/React.createElement(CompiledEmojiFallback, _extends({
85
+ emoji: emoji
86
+ }, restProps));
87
+ } else {
88
+ return /*#__PURE__*/React.createElement(EmotionEmojiFallback, _extends({
89
+ emoji: emoji
90
+ }, restProps));
91
+ }
92
+ }
93
+ if (fg('platform_editor_css_migrate_emoji')) {
94
+ return /*#__PURE__*/React.createElement(CompiledEmoji, _extends({
95
+ emoji: emoji,
96
+ onLoadError: handleLoadError
97
+ }, restProps));
98
+ } else {
99
+ return /*#__PURE__*/React.createElement(EmotionEmoji, _extends({
100
+ emoji: emoji,
101
+ onLoadError: handleLoadError
76
102
  }, restProps));
77
103
  }
78
- return /*#__PURE__*/React.createElement(Emoji, _extends({
79
- emoji: emoji,
80
- onLoadError: handleLoadError
81
- }, restProps));
82
104
  };
83
105
 
84
106
  /**
@@ -140,18 +162,36 @@ export var CachingMediaEmoji = function CachingMediaEmoji(props) {
140
162
  setInvalidImage(true);
141
163
  };
142
164
  if (cachedEmoji && !inValidImage) {
143
- return /*#__PURE__*/React.createElement(Emoji, _extends({}, restProps, {
165
+ if (fg('platform_editor_css_migrate_emoji')) {
166
+ return /*#__PURE__*/React.createElement(CompiledEmoji, _extends({}, restProps, {
167
+ showTooltip: showTooltip,
168
+ fitToHeight: fitToHeight,
169
+ emoji: cachedEmoji,
170
+ onLoadError: handleLoadError
171
+ }));
172
+ } else {
173
+ return /*#__PURE__*/React.createElement(EmotionEmoji, _extends({}, restProps, {
174
+ showTooltip: showTooltip,
175
+ fitToHeight: fitToHeight,
176
+ emoji: cachedEmoji,
177
+ onLoadError: handleLoadError
178
+ }));
179
+ }
180
+ }
181
+ if (fg('platform_editor_css_migrate_emoji')) {
182
+ return /*#__PURE__*/React.createElement(CompiledEmojiPlaceholder, {
183
+ size: fitToHeight || placeholderSize,
184
+ shortName: shortName,
144
185
  showTooltip: showTooltip,
145
- fitToHeight: fitToHeight,
146
- emoji: cachedEmoji,
147
- onLoadError: handleLoadError
148
- }));
186
+ representation: representation
187
+ });
188
+ } else {
189
+ return /*#__PURE__*/React.createElement(EmotionEmojiPlaceholder, {
190
+ size: fitToHeight || placeholderSize,
191
+ shortName: shortName,
192
+ showTooltip: showTooltip,
193
+ representation: representation
194
+ });
149
195
  }
150
- return /*#__PURE__*/React.createElement(EmojiPlaceholder, {
151
- size: fitToHeight || placeholderSize,
152
- shortName: shortName,
153
- showTooltip: showTooltip,
154
- representation: representation
155
- });
156
196
  };
157
197
  export default /*#__PURE__*/memo(CachingEmoji);
@@ -2,16 +2,25 @@ import _extends from "@babel/runtime/helpers/extends";
2
2
  import React from 'react';
3
3
  import { FormattedMessage, useIntl } from 'react-intl-next';
4
4
  import { messages } from '../i18n';
5
- import { ToolTipContentWithKeymap } from './ToolTipContentWithKeymap';
5
+ import { ToolTipContentWithKeymap as EmotionToolTipContentWithKeymap } from './ToolTipContentWithKeymap';
6
+ import { ToolTipContentWithKeymap as CompiledToolTipContentWithKeymap } from '../compiled/common/ToolTipContentWithKeymap';
6
7
  import { backspace } from '../../util/keymaps';
7
8
  import VisuallyHidden from '@atlaskit/visually-hidden';
9
+ import { fg } from '@atlaskit/platform-feature-flags';
8
10
  export var DeletableEmojiTooltipContent = function DeletableEmojiTooltipContent() {
9
11
  var _useIntl = useIntl(),
10
12
  formatMessage = _useIntl.formatMessage;
11
- return /*#__PURE__*/React.createElement(ToolTipContentWithKeymap, {
12
- description: formatMessage(messages.deleteEmojiTooltip),
13
- keymap: backspace
14
- });
13
+ if (fg('platform_editor_css_migrate_emoji')) {
14
+ return /*#__PURE__*/React.createElement(CompiledToolTipContentWithKeymap, {
15
+ description: formatMessage(messages.deleteEmojiTooltip),
16
+ keymap: backspace
17
+ });
18
+ } else {
19
+ return /*#__PURE__*/React.createElement(EmotionToolTipContentWithKeymap, {
20
+ description: formatMessage(messages.deleteEmojiTooltip),
21
+ keymap: backspace
22
+ });
23
+ }
15
24
  };
16
25
  export var DeletableEmojiTooltipContentForScreenReader = function DeletableEmojiTooltipContentForScreenReader(_ref) {
17
26
  var emoji = _ref.emoji;
@@ -8,11 +8,11 @@ import { Fragment, useState, useRef, memo, useLayoutEffect } from 'react';
8
8
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
9
9
  import { jsx } from '@emotion/react';
10
10
  import { FormattedMessage, injectIntl } from 'react-intl-next';
11
- import EmojiDeletePreview from '../common/EmojiDeletePreview';
12
- import EmojiUploadPicker from '../common/EmojiUploadPicker';
13
- import { EmojiPickerListSearch } from '../picker/EmojiPickerListSearch';
14
- import ToneSelector from './ToneSelector';
11
+ import EmojiDeletePreview from './EmojiDeletePreview';
12
+ import EmojiUploadPicker from './EmojiUploadPicker';
15
13
  import TonePreviewButton from './TonePreviewButton';
14
+ import ToneSelector from './ToneSelector';
15
+ import { EmojiPickerListSearch } from '../picker/EmojiPickerListSearch';
16
16
  import { messages } from '../i18n';
17
17
  import AkButton from '@atlaskit/button/standard-button';
18
18
  import AddIcon from '@atlaskit/icon/core/migration/add';
@@ -19,9 +19,9 @@ import { FormattedMessage, injectIntl } from 'react-intl-next';
19
19
  import { customCategory } from '../../util/constants';
20
20
  import { messages } from '../i18n';
21
21
  import Emoji from './Emoji';
22
+ import RetryableButton from './RetryableButton';
22
23
  import EmojiErrorMessage from './EmojiErrorMessage';
23
24
  import { UploadStatus } from './internal-types';
24
- import RetryableButton from './RetryableButton';
25
25
  import { bigEmojiPreview, emojiPreviewErrorMessage, uploadAddRow, uploadPreview, uploadPreviewFooter, uploadPreviewText } from './styles';
26
26
  export var uploadPreviewTestId = 'upload-preview';
27
27
  export var cancelUploadButtonTestId = 'cancel-upload-button';
@@ -8,11 +8,14 @@ import React, { useCallback, useEffect, useMemo, useState } from 'react';
8
8
  import { defaultEmojiHeight } from '../../util/constants';
9
9
  import { isImageRepresentation, isMediaRepresentation, isPromise } from '../../util/type-helpers';
10
10
  import { UfoEmojiTimings } from '../../types';
11
- import Emoji from './Emoji';
12
- import EmojiPlaceholder from './EmojiPlaceholder';
11
+ import { default as EmotionEmoji } from './Emoji';
12
+ import { default as CompiledEmoji } from '../compiled/common/Emoji';
13
+ import { default as EmotionEmojiPlaceholder } from './EmojiPlaceholder';
14
+ import { default as CompiledEmojiPlaceholder } from '../compiled/common/EmojiPlaceholder';
13
15
  import { sampledUfoRenderedEmoji } from '../../util/analytics';
14
16
  import { EmojiCommonProvider } from '../../context/EmojiCommonProvider';
15
17
  import { hasUfoMarked } from '../../util/analytics/ufoExperiences';
18
+ import { fg } from '@atlaskit/platform-feature-flags';
16
19
  var ResourcedEmojiComponentRenderStatesEnum = /*#__PURE__*/function (ResourcedEmojiComponentRenderStatesEnum) {
17
20
  ResourcedEmojiComponentRenderStatesEnum["INITIAL"] = "INITIAL";
18
21
  ResourcedEmojiComponentRenderStatesEnum["FALLBACK"] = "FALLBACK";
@@ -202,18 +205,30 @@ export var ResourcedEmojiComponent = function ResourcedEmojiComponent(props) {
202
205
  "data-emoji-id": id,
203
206
  "data-emoji-short-name": shortName,
204
207
  "data-emoji-text": fallback || shortName
205
- }, emojiRenderState === ResourcedEmojiComponentRenderStatesEnum.INITIAL && /*#__PURE__*/React.createElement(EmojiPlaceholder, {
208
+ }, emojiRenderState === ResourcedEmojiComponentRenderStatesEnum.INITIAL && (fg('platform_editor_css_migrate_emoji') ? /*#__PURE__*/React.createElement(CompiledEmojiPlaceholder, {
206
209
  shortName: shortName,
207
210
  showTooltip: showTooltip,
208
211
  size: fitToHeight || defaultEmojiHeight,
209
212
  loading: true
210
- }), emojiRenderState === ResourcedEmojiComponentRenderStatesEnum.FALLBACK && /*#__PURE__*/React.createElement(React.Fragment, null, customFallback || fallback || shortName), emojiRenderState === ResourcedEmojiComponentRenderStatesEnum.EMOJI && optimisticEmojiDescription && /*#__PURE__*/React.createElement(Emoji, {
213
+ }) : /*#__PURE__*/React.createElement(EmotionEmojiPlaceholder, {
214
+ shortName: shortName,
215
+ showTooltip: showTooltip,
216
+ size: fitToHeight || defaultEmojiHeight,
217
+ loading: true
218
+ })), emojiRenderState === ResourcedEmojiComponentRenderStatesEnum.FALLBACK && /*#__PURE__*/React.createElement(React.Fragment, null, customFallback || fallback || shortName), emojiRenderState === ResourcedEmojiComponentRenderStatesEnum.EMOJI && optimisticEmojiDescription && (fg('platform_editor_css_migrate_emoji') ? /*#__PURE__*/React.createElement(CompiledEmoji, {
219
+ emoji: optimisticEmojiDescription,
220
+ onLoadError: handleOnLoadError,
221
+ showTooltip: showTooltip,
222
+ fitToHeight: fitToHeight,
223
+ autoWidth: !!emoji ? false : true,
224
+ editorEmoji: editorEmoji
225
+ }) : /*#__PURE__*/React.createElement(EmotionEmoji, {
211
226
  emoji: optimisticEmojiDescription,
212
227
  onLoadError: handleOnLoadError,
213
228
  showTooltip: showTooltip,
214
229
  fitToHeight: fitToHeight,
215
230
  autoWidth: !!emoji ? false : true,
216
231
  editorEmoji: editorEmoji
217
- })));
232
+ }))));
218
233
  };
219
234
  export default ResourcedEmojiComponent;
@@ -17,7 +17,9 @@ var LoadingSpinner = function LoadingSpinner() {
17
17
  // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
18
18
  jsx("span", {
19
19
  css: buttonSpinner
20
- }, jsx(Spinner, null))
20
+ }, jsx(Spinner, {
21
+ interactionName: "emoji-retry-button-spinner"
22
+ }))
21
23
  );
22
24
  };
23
25
  var RetryButton = function RetryButton(props) {
@@ -0,0 +1,9 @@
1
+ ._13t3idpf span{line-height:0}
2
+ ._154ix0bf{top:var(--ds-space-negative-100,-8px)}
3
+ ._1bsbf6fq{width:18px}
4
+ ._1e0c1txw{display:flex}
5
+ ._1pbykb7n{z-index:1}
6
+ ._1xi2x0bf{right:var(--ds-space-negative-100,-8px)}
7
+ ._3um015vq{visibility:hidden}
8
+ ._4t3if6fq{height:18px}
9
+ ._kqswstnw{position:absolute}
@@ -0,0 +1,42 @@
1
+ /* DeleteButton.tsx generated by @compiled/babel-plugin v0.36.1 */
2
+ import "./DeleteButton.compiled.css";
3
+ import * as React from 'react';
4
+ import { ax, ix } from "@compiled/react/runtime";
5
+ import Button from '@atlaskit/button/standard-button';
6
+ import CrossCircleIcon from '@atlaskit/icon/utility/migration/cross-circle';
7
+ import { N500 } from '@atlaskit/theme/colors';
8
+ import { deleteEmojiLabel } from '../../../util/constants';
9
+ import { emojiDeleteButton } from '../../common/styles';
10
+ import { Box } from '@atlaskit/primitives/compiled';
11
+ var styles = {
12
+ boxWrapperStyle: "_1bsbf6fq _4t3if6fq"
13
+ };
14
+ var deleteButton = null;
15
+
16
+ /**
17
+ * Test id for wrapper Emoji delete button
18
+ */
19
+ export var RENDER_EMOJI_DELETE_BUTTON_TESTID = 'render-emoji-delete-button';
20
+ var DeleteButton = function DeleteButton(props) {
21
+ return /*#__PURE__*/React.createElement("span", {
22
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
23
+ className: ax(["_3um015vq _1e0c1txw _kqswstnw _154ix0bf _1xi2x0bf _1pbykb7n _13t3idpf", emojiDeleteButton]),
24
+ "data-testid": RENDER_EMOJI_DELETE_BUTTON_TESTID
25
+ }, /*#__PURE__*/React.createElement(Button, {
26
+ iconBefore: /*#__PURE__*/React.createElement(Box, {
27
+ xcss: styles.boxWrapperStyle
28
+ }, /*#__PURE__*/React.createElement(CrossCircleIcon, {
29
+ label: deleteEmojiLabel,
30
+ color: "var(--ds-text-subtle, ".concat(N500, ")"),
31
+ LEGACY_size: "small"
32
+ })),
33
+ onClick: props.onClick
34
+ // TODO: (from codemod) "link" and "subtle-link" appearances are only available in LinkButton, please either provide a href prop then migrate to LinkButton, or remove the appearance from the default button.
35
+ ,
36
+ appearance: "subtle-link",
37
+ spacing: "none",
38
+ testId: "emoji-delete-button",
39
+ tabIndex: -1
40
+ }));
41
+ };
42
+ export default DeleteButton;
@@ -0,0 +1,23 @@
1
+
2
+ ._2rkosqtm{border-radius:var(--ds-border-radius-100,3px)}
3
+ ._jr50g2xd .emoji-common-emoji-sprite{background:transparent no-repeat}._109tnkob .emoji-common-emoji-sprite{vertical-align:middle}
4
+ ._160jewfl.emoji-common-select-on-hover:hover .emoji-common-deleteButton, ._1theewfl.emoji-common-selected{visibility:visible}
5
+ ._18u0idpf{margin-left:0}
6
+ ._19pk1n1a{margin-top:-1px}
7
+ ._1e0c1o8l{display:inline-block}
8
+ ._1hdcgktf .emoji-common-emoji-sprite{min-width:20px}
9
+ ._1kogh2mm.emoji-common-deletable{position:relative}
10
+ ._2hwxidpf{margin-right:0}
11
+ ._bfhk1j28{background-color:transparent}
12
+ ._otyr1n1a{margin-bottom:-1px}
13
+ ._pkaxgktf .emoji-common-emoji-sprite{min-height:20px}
14
+ ._qyp0ewfl.emoji-common-deletable:focus-within .emoji-common-deleteButton{visibility:visible}
15
+ ._s7n4nkob{vertical-align:middle}
16
+ ._v4pn1ule img{display:block}
17
+ ._ylp71o8l .emoji-common-emoji-sprite{display:inline-block}
18
+ ._1hvw1o36:focus{outline-width:medium}
19
+ ._491113zc:focus{transition-duration:0s,.2s}
20
+ ._49pcglyw:focus{outline-style:none}
21
+ ._7ehi1r2v:focus{box-shadow:var(--_1rebzxw)}
22
+ ._nt751r31:focus{outline-color:currentColor}
23
+ ._tn8j2tgk.emoji-common-select-on-hover:hover, ._3naf2tgk.emoji-common-selected{background-color:var(--_1y60f1n)}