@atlaskit/emoji 71.6.5 → 71.7.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 (55) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/afm-cc/tsconfig.json +3 -0
  3. package/afm-products/tsconfig.json +3 -0
  4. package/dist/cjs/api/ai/generateEmojiImage.js +101 -0
  5. package/dist/cjs/components/common/CreateEmojiWithRovo.compiled.css +12 -0
  6. package/dist/cjs/components/common/CreateEmojiWithRovo.js +150 -0
  7. package/dist/cjs/components/common/EmojiActions.js +6 -2
  8. package/dist/cjs/components/common/EmojiUploadPicker.js +30 -1
  9. package/dist/cjs/components/i18n.js +25 -0
  10. package/dist/cjs/components/picker/EmojiPickerComponent.compiled.css +3 -0
  11. package/dist/cjs/components/picker/EmojiPickerComponent.js +22 -3
  12. package/dist/cjs/components/picker/EmojiPickerList.js +6 -2
  13. package/dist/cjs/components/uploader/EmojiUploadComponent.js +5 -2
  14. package/dist/cjs/util/ai-emoji.js +72 -0
  15. package/dist/cjs/util/analytics/analytics.js +14 -2
  16. package/dist/cjs/util/analytics/index.js +18 -0
  17. package/dist/es2019/api/ai/generateEmojiImage.js +64 -0
  18. package/dist/es2019/components/common/CreateEmojiWithRovo.compiled.css +12 -0
  19. package/dist/es2019/components/common/CreateEmojiWithRovo.js +113 -0
  20. package/dist/es2019/components/common/EmojiActions.js +6 -2
  21. package/dist/es2019/components/common/EmojiUploadPicker.js +28 -1
  22. package/dist/es2019/components/i18n.js +25 -0
  23. package/dist/es2019/components/picker/EmojiPickerComponent.compiled.css +3 -0
  24. package/dist/es2019/components/picker/EmojiPickerComponent.js +22 -3
  25. package/dist/es2019/components/picker/EmojiPickerList.js +6 -2
  26. package/dist/es2019/components/uploader/EmojiUploadComponent.js +5 -2
  27. package/dist/es2019/util/ai-emoji.js +64 -0
  28. package/dist/es2019/util/analytics/analytics.js +5 -1
  29. package/dist/es2019/util/analytics/index.js +1 -1
  30. package/dist/esm/api/ai/generateEmojiImage.js +94 -0
  31. package/dist/esm/components/common/CreateEmojiWithRovo.compiled.css +12 -0
  32. package/dist/esm/components/common/CreateEmojiWithRovo.js +141 -0
  33. package/dist/esm/components/common/EmojiActions.js +6 -2
  34. package/dist/esm/components/common/EmojiUploadPicker.js +30 -1
  35. package/dist/esm/components/i18n.js +25 -0
  36. package/dist/esm/components/picker/EmojiPickerComponent.compiled.css +3 -0
  37. package/dist/esm/components/picker/EmojiPickerComponent.js +22 -3
  38. package/dist/esm/components/picker/EmojiPickerList.js +6 -2
  39. package/dist/esm/components/uploader/EmojiUploadComponent.js +5 -2
  40. package/dist/esm/util/ai-emoji.js +66 -0
  41. package/dist/esm/util/analytics/analytics.js +13 -1
  42. package/dist/esm/util/analytics/index.js +1 -1
  43. package/dist/types/api/ai/generateEmojiImage.d.ts +29 -0
  44. package/dist/types/components/common/CreateEmojiWithRovo.d.ts +24 -0
  45. package/dist/types/components/common/EmojiActions.d.ts +11 -0
  46. package/dist/types/components/common/EmojiUploadPicker.d.ts +9 -0
  47. package/dist/types/components/i18n.d.ts +25 -0
  48. package/dist/types/components/picker/EmojiPicker.d.ts +6 -0
  49. package/dist/types/components/picker/EmojiPickerComponent.d.ts +6 -0
  50. package/dist/types/components/picker/EmojiPickerList.d.ts +5 -0
  51. package/dist/types/components/uploader/EmojiUploadComponent.d.ts +2 -0
  52. package/dist/types/util/ai-emoji.d.ts +41 -0
  53. package/dist/types/util/analytics/analytics.d.ts +7 -0
  54. package/dist/types/util/analytics/index.d.ts +1 -1
  55. package/package.json +7 -2
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Pure utilities for the "Create an emoji with Rovo" (AI emoji generation) flow.
3
+ */
4
+
5
+ /**
6
+ * Maximum length of an auto-generated shortname. Matches the `maxNameLength`
7
+ * used by the manual emoji upload flow (see EmojiUploadPicker).
8
+ */
9
+ export var MAX_SHORTNAME_LENGTH = 50;
10
+ var LEADING_ARTICLES = ['a', 'an', 'the'];
11
+
12
+ /**
13
+ * Convert a free-text emoji description into a slugified shortname suitable for
14
+ * the `:shortname:` field expected by pf-emoji-service.
15
+ *
16
+ * Rules (v1):
17
+ * - Strip leading articles (a, an, the)
18
+ * - Lowercase
19
+ * - Replace runs of whitespace with a single underscore
20
+ * - Remove any character that is not a-z, 0-9 or underscore
21
+ * - Collapse repeated underscores and trim leading/trailing underscores
22
+ * - Truncate to {@link MAX_SHORTNAME_LENGTH} characters
23
+ *
24
+ * @example
25
+ * slugifyPrompt('a cat wearing a hard hat') // => 'cat_wearing_a_hard_hat'
26
+ */
27
+ export var slugifyPrompt = function slugifyPrompt(prompt) {
28
+ if (!prompt) {
29
+ return '';
30
+ }
31
+ var words = prompt.trim().toLowerCase().split(/\s+/);
32
+
33
+ // Strip a single leading article only (e.g. "a cat" -> "cat").
34
+ if (words.length > 1 && LEADING_ARTICLES.includes(words[0])) {
35
+ words = words.slice(1);
36
+ }
37
+ var slug = words.join('_')
38
+ // remove everything that is not a word char (letters, digits, underscore)
39
+ .replace(/[^a-z0-9_]/g, '')
40
+ // collapse repeated underscores introduced by removed characters
41
+ .replace(/_+/g, '_')
42
+ // trim leading/trailing underscores
43
+ .replace(/^_+|_+$/g, '');
44
+ return slug.slice(0, MAX_SHORTNAME_LENGTH);
45
+ };
46
+
47
+ /**
48
+ * Prefix prepended to the user's description so the header-image backend
49
+ * produces clean, emoji-style output instead of a scene/photo.
50
+ *
51
+ * Kept as a single line (no newlines) — newlines in the prompt can degrade the
52
+ * model's output. Learnings from ShipIt 56 ("Emoji Pop") showed that a simple
53
+ * prompt prefix significantly improved emoji quality.
54
+ */
55
+ export var EMOJI_PROMPT_PREFIX = 'Generate a clean, simple, emoji-style icon of ';
56
+
57
+ /**
58
+ * Wrap the raw user prompt with the emoji-style prefix.
59
+ *
60
+ * @example
61
+ * wrapEmojiPrompt('a cat wearing a hard hat')
62
+ * // => 'Generate a clean, simple, emoji-style icon of a cat wearing a hard hat'
63
+ */
64
+ export var wrapEmojiPrompt = function wrapEmojiPrompt(userPrompt) {
65
+ return "".concat(EMOJI_PROMPT_PREFIX).concat(userPrompt.trim());
66
+ };
@@ -14,7 +14,7 @@ var createEvent = function createEvent(eventType, action, actionSubject, actionS
14
14
  actionSubjectId: actionSubjectId,
15
15
  attributes: _objectSpread({
16
16
  packageName: "@atlaskit/emoji",
17
- packageVersion: "71.6.4"
17
+ packageVersion: "71.6.6"
18
18
  }, attributes)
19
19
  };
20
20
  };
@@ -132,6 +132,18 @@ export var uploadSucceededEvent = function uploadSucceededEvent(attributes) {
132
132
  export var uploadFailedEvent = function uploadFailedEvent(attributes) {
133
133
  return createEvent('operational', 'failed', 'emojiUploader', undefined, attributes);
134
134
  };
135
+ var aiEmojiGenerationEvent = function aiEmojiGenerationEvent(action, actionSubjectId, attributes) {
136
+ return createEvent('ui', action, 'emojiPickerAiGeneration', actionSubjectId, attributes);
137
+ };
138
+ export var aiGenerationStartedEvent = function aiGenerationStartedEvent(attributes) {
139
+ return aiEmojiGenerationEvent('started', 'generateButton', attributes);
140
+ };
141
+ export var aiGenerationCompletedEvent = function aiGenerationCompletedEvent(attributes) {
142
+ return createEvent('operational', 'completed', 'emojiPickerAiGeneration', undefined, attributes);
143
+ };
144
+ export var aiGenerationFailedEvent = function aiGenerationFailedEvent(attributes) {
145
+ return createEvent('operational', 'failed', 'emojiPickerAiGeneration', undefined, attributes);
146
+ };
135
147
  export var deleteBeginEvent = function deleteBeginEvent(attributes) {
136
148
  return createEvent('ui', 'clicked', 'emojiPicker', 'deleteEmojiTrigger', attributes);
137
149
  };
@@ -1,4 +1,4 @@
1
1
  export { ufoExperiencesSampled, clearSampled, isExperienceSampled, withSampling } from './samplingUfo';
2
- export { categoryClickedEvent, createAndFireEventInElementsChannel, closedPickerEvent, deleteBeginEvent, deleteCancelEvent, deleteConfirmEvent, recordFailed, recordFailedEmoji, recordSucceeded, recordSucceededEmoji, openedPickerEvent, pickerClickedEvent, pickerSearchedEvent, recordSelectionFailedSli, recordSelectionSucceededSli, selectedFileEvent, toneSelectedEvent, toneSelectorClosedEvent, toneSelectorOpenedEvent, typeaheadCancelledEvent, typeaheadRenderedEvent, typeaheadSelectedEvent, uploadBeginButton, uploadCancelButton, uploadConfirmButton, uploadFailedEvent, uploadSucceededEvent } from './analytics';
2
+ export { aiGenerationStartedEvent, aiGenerationCompletedEvent, aiGenerationFailedEvent, categoryClickedEvent, createAndFireEventInElementsChannel, closedPickerEvent, deleteBeginEvent, deleteCancelEvent, deleteConfirmEvent, recordFailed, recordFailedEmoji, recordSucceeded, recordSucceededEmoji, openedPickerEvent, pickerClickedEvent, pickerSearchedEvent, recordSelectionFailedSli, recordSelectionSucceededSli, selectedFileEvent, toneSelectedEvent, toneSelectorClosedEvent, toneSelectorOpenedEvent, typeaheadCancelledEvent, typeaheadRenderedEvent, typeaheadSelectedEvent, uploadBeginButton, uploadCancelButton, uploadConfirmButton, uploadFailedEvent, uploadSucceededEvent } from './analytics';
3
3
  export { sampledUfoRenderedEmoji, ufoExperiences } from './ufoExperiences';
4
4
  export { useSampledUFOComponentExperience } from './useSampledUFOComponentExperience';
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Calls the Confluence "header image" AI backend to generate an emoji-style
3
+ * image (base64) from a text description.
4
+ */
5
+ export interface GenerateEmojiImageResult {
6
+ /** Base64-encoded image data, used for preview and emoji upload. */
7
+ imageData: string;
8
+ /** Media Service file id (informational; not used for registration). */
9
+ mediaFileId?: string;
10
+ }
11
+ export interface GenerateEmojiImageOptions {
12
+ /**
13
+ * The current Confluence page content id. Required by the header image BE so
14
+ * generation is scoped/attributed to a piece of content.
15
+ */
16
+ contentId: string;
17
+ /**
18
+ * The raw text description typed by the user (e.g. "a cat wearing a hard hat").
19
+ * It is wrapped with the emoji-style prefix before being sent to the backend.
20
+ */
21
+ prompt: string;
22
+ }
23
+ /**
24
+ * Generate an emoji-style image and return its base64 image data.
25
+ *
26
+ * @throws Error if the request fails, the BE returns a body-level error, or no
27
+ * image data is returned.
28
+ */
29
+ export declare const generateEmojiImage: ({ contentId, prompt, }: GenerateEmojiImageOptions) => Promise<GenerateEmojiImageResult>;
@@ -0,0 +1,24 @@
1
+ import type { AnalyticsEventPayload } from '@atlaskit/analytics-next';
2
+ export declare const createEmojiWithRovoTestId = "create-emoji-with-rovo";
3
+ export declare const createEmojiWithRovoPromptTestId = "create-emoji-with-rovo-prompt";
4
+ export declare const createEmojiWithRovoGenerateTestId = "create-emoji-with-rovo-generate";
5
+ export interface CreateEmojiWithRovoProps {
6
+ /**
7
+ * The current Confluence page content id. Required by the image generation
8
+ * backend. When absent, the section should not be rendered by the caller.
9
+ */
10
+ contentId: string;
11
+ /**
12
+ * Fires an analytics event in the elements channel.
13
+ */
14
+ fireAnalytics?: (event: AnalyticsEventPayload) => void;
15
+ /**
16
+ * Called when an emoji image has been generated. The generated image (as a
17
+ * data URL) and a suggested slug name are handed back to the parent upload
18
+ * form, which then drives the shared preview, name field and "Add emoji"
19
+ * button — so there is a single name input and a single submit button.
20
+ */
21
+ onEmojiGenerated: (dataURL: string, suggestedName: string) => void;
22
+ }
23
+ declare const CreateEmojiWithRovo: (props: CreateEmojiWithRovoProps) => JSX.Element;
24
+ export default CreateEmojiWithRovo;
@@ -5,6 +5,7 @@
5
5
  import { type ComponentType, type FC } from 'react';
6
6
  import { type WithIntlProps, type WrappedComponentProps } from 'react-intl';
7
7
  import type { EmojiDescription, EmojiDescriptionWithVariations, Message, OnToneSelected, OnToneSelectorCancelled, ToneSelection } from '../../types';
8
+ import type { AnalyticsEventPayload } from '@atlaskit/analytics-next';
8
9
  import type { CategoryId } from '../picker/categories';
9
10
  import { type OnDeleteEmoji } from './EmojiDeletePreview';
10
11
  import { type OnUploadEmoji } from './EmojiUploadPicker';
@@ -12,6 +13,16 @@ import type { ProductivityColor } from '../../util/productivity-colors';
12
13
  export interface Props {
13
14
  activeCategoryId?: CategoryId | null;
14
15
  activeAtlassianSubcategory?: string | null;
16
+ /**
17
+ * Current Confluence page content id, required to enable AI emoji generation.
18
+ * When undefined, the "Create an emoji with Rovo" section is not shown.
19
+ */
20
+ contentId?: string;
21
+ /**
22
+ * Fires an analytics event in the elements channel. Required for AI emoji
23
+ * generation analytics.
24
+ */
25
+ fireAnalytics?: (event: AnalyticsEventPayload) => void;
15
26
  emojiToDelete?: EmojiDescription;
16
27
  initialUploadName?: string;
17
28
  onChange: (value: string) => void;
@@ -4,6 +4,7 @@
4
4
  */
5
5
  import { type ComponentType, type FC } from 'react';
6
6
  import { type WithIntlProps, type WrappedComponentProps } from 'react-intl';
7
+ import type { AnalyticsEventPayload } from '@atlaskit/analytics-next';
7
8
  import type { EmojiUpload, Message } from '../../types';
8
9
  export interface OnUploadEmoji {
9
10
  (upload: EmojiUpload, retry: boolean, onSuccessHandler?: () => void): void;
@@ -18,6 +19,14 @@ export interface Props {
18
19
  onFileChooserClicked?: () => void;
19
20
  onUploadCancelled: () => void;
20
21
  onUploadEmoji: OnUploadEmoji;
22
+ /**
23
+ * Current Confluence page content id. When provided (and the
24
+ * `confluence_ai_generated_emojis` experiment is on), the "Create an emoji
25
+ * with Rovo" AI generation section is shown above the Emoji name field.
26
+ */
27
+ contentId?: string;
28
+ /** Fires an analytics event (used by AI emoji generation). */
29
+ fireAnalytics?: (event: AnalyticsEventPayload) => void;
21
30
  }
22
31
  declare const EmojiUploadPickerComponent: FC<WithIntlProps<Props & WrappedComponentProps>> & {
23
32
  WrappedComponent: ComponentType<Props & WrappedComponentProps>;
@@ -14,6 +14,31 @@ export declare const messages: {
14
14
  description: string;
15
15
  id: string;
16
16
  };
17
+ createEmojiWithRovoTitle: {
18
+ defaultMessage: string;
19
+ description: string;
20
+ id: string;
21
+ };
22
+ createEmojiWithRovoPromptPlaceholder: {
23
+ defaultMessage: string;
24
+ description: string;
25
+ id: string;
26
+ };
27
+ createEmojiWithRovoPromptAriaLabel: {
28
+ defaultMessage: string;
29
+ description: string;
30
+ id: string;
31
+ };
32
+ createEmojiWithRovoGenerateLabel: {
33
+ defaultMessage: string;
34
+ description: string;
35
+ id: string;
36
+ };
37
+ createEmojiWithRovoError: {
38
+ defaultMessage: string;
39
+ description: string;
40
+ id: string;
41
+ };
17
42
  allUploadsCustomCategory: {
18
43
  defaultMessage: string;
19
44
  description: string;
@@ -11,6 +11,12 @@ import LoadingEmojiComponent, { type Props as LoadingProps, type State as Loadin
11
11
  import type { PickerRefHandler, Props as ComponentProps } from './EmojiPickerComponent';
12
12
  export declare const preloadEmojiPicker: () => void;
13
13
  export interface Props extends LoadingProps {
14
+ /**
15
+ * The current Confluence page content id. When provided (and the
16
+ * `confluence_ai_generated_emojis` experiment is on), enables the
17
+ * "Create an emoji with Rovo" AI generation section in the upload flow.
18
+ */
19
+ contentId?: string;
14
20
  /**
15
21
  * Flag to disable tone selector.
16
22
  */
@@ -6,6 +6,12 @@ export interface PickerRefHandler {
6
6
  }
7
7
  export interface Props {
8
8
  createAnalyticsEvent?: CreateUIAnalyticsEvent;
9
+ /**
10
+ * The current Confluence page content id. When provided (and the
11
+ * `confluence_ai_generated_emojis` experiment is on), enables the
12
+ * "Create an emoji with Rovo" AI generation section in the upload flow.
13
+ */
14
+ contentId?: string;
9
15
  /**
10
16
  * Flag to disable tone selector.
11
17
  */
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  import type { EmojiDescription, EmojiDescriptionWithVariations, Message, OnCategory, OnEmojiEvent, OnToneSelected, OnToneSelectorCancelled, PickerSize, ToneSelection, User } from '../../types';
3
3
  import { type ProductivityColor } from '../../util/productivity-colors';
4
4
  import { type CategoryId } from './categories';
5
+ import type { AnalyticsEventPayload } from '@atlaskit/analytics-next';
5
6
  import type { OnUploadEmoji } from '../common/EmojiUploadPicker';
6
7
  import type { OnDeleteEmoji } from '../common/EmojiDeletePreview';
7
8
  /**
@@ -13,6 +14,10 @@ export interface OnSearch {
13
14
  }
14
15
  export interface Props {
15
16
  activeCategoryId?: CategoryId | null;
17
+ /** Current Confluence page content id, enables AI emoji generation. */
18
+ contentId?: string;
19
+ /** Fires analytics events (used by AI emoji generation). */
20
+ fireAnalytics?: (event: AnalyticsEventPayload) => void;
16
21
  currentUser?: User;
17
22
  emojis: EmojiDescription[];
18
23
  emojiToDelete?: EmojiDescription;
@@ -13,6 +13,8 @@ export interface Props {
13
13
  disableFocusLock?: boolean;
14
14
  emojiProvider: EmojiProvider;
15
15
  onUploaderRef?: UploadRefHandler;
16
+ /** Current Confluence page content id, enables AI emoji generation. */
17
+ contentId?: string;
16
18
  }
17
19
  declare const _default_1: MemoExoticComponent<(props: Props) => JSX.Element>;
18
20
  export default _default_1;
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Pure utilities for the "Create an emoji with Rovo" (AI emoji generation) flow.
3
+ */
4
+ /**
5
+ * Maximum length of an auto-generated shortname. Matches the `maxNameLength`
6
+ * used by the manual emoji upload flow (see EmojiUploadPicker).
7
+ */
8
+ export declare const MAX_SHORTNAME_LENGTH = 50;
9
+ /**
10
+ * Convert a free-text emoji description into a slugified shortname suitable for
11
+ * the `:shortname:` field expected by pf-emoji-service.
12
+ *
13
+ * Rules (v1):
14
+ * - Strip leading articles (a, an, the)
15
+ * - Lowercase
16
+ * - Replace runs of whitespace with a single underscore
17
+ * - Remove any character that is not a-z, 0-9 or underscore
18
+ * - Collapse repeated underscores and trim leading/trailing underscores
19
+ * - Truncate to {@link MAX_SHORTNAME_LENGTH} characters
20
+ *
21
+ * @example
22
+ * slugifyPrompt('a cat wearing a hard hat') // => 'cat_wearing_a_hard_hat'
23
+ */
24
+ export declare const slugifyPrompt: (prompt: string) => string;
25
+ /**
26
+ * Prefix prepended to the user's description so the header-image backend
27
+ * produces clean, emoji-style output instead of a scene/photo.
28
+ *
29
+ * Kept as a single line (no newlines) — newlines in the prompt can degrade the
30
+ * model's output. Learnings from ShipIt 56 ("Emoji Pop") showed that a simple
31
+ * prompt prefix significantly improved emoji quality.
32
+ */
33
+ export declare const EMOJI_PROMPT_PREFIX = "Generate a clean, simple, emoji-style icon of ";
34
+ /**
35
+ * Wrap the raw user prompt with the emoji-style prefix.
36
+ *
37
+ * @example
38
+ * wrapEmojiPrompt('a cat wearing a hard hat')
39
+ * // => 'Generate a clean, simple, emoji-style icon of a cat wearing a hard hat'
40
+ */
41
+ export declare const wrapEmojiPrompt: (userPrompt: string) => string;
@@ -44,6 +44,13 @@ export declare const uploadSucceededEvent: (attributes: Duration) => AnalyticsEv
44
44
  export declare const uploadFailedEvent: (attributes: {
45
45
  reason: string;
46
46
  } & Duration) => AnalyticsEventPayload;
47
+ export declare const aiGenerationStartedEvent: (attributes: {
48
+ promptLength: number;
49
+ }) => AnalyticsEventPayload;
50
+ export declare const aiGenerationCompletedEvent: (attributes: Duration) => AnalyticsEventPayload;
51
+ export declare const aiGenerationFailedEvent: (attributes: {
52
+ errorType: string;
53
+ }) => AnalyticsEventPayload;
47
54
  interface Attributes {
48
55
  emojiId?: string;
49
56
  }
@@ -1,6 +1,6 @@
1
1
  export { ufoExperiencesSampled, clearSampled, isExperienceSampled, withSampling, } from './samplingUfo';
2
2
  export type { UFOExperienceSampledRecords, WithSamplingUFOExperience } from './samplingUfo';
3
- export { categoryClickedEvent, createAndFireEventInElementsChannel, closedPickerEvent, deleteBeginEvent, deleteCancelEvent, deleteConfirmEvent, recordFailed, recordFailedEmoji, recordSucceeded, recordSucceededEmoji, openedPickerEvent, pickerClickedEvent, pickerSearchedEvent, recordSelectionFailedSli, recordSelectionSucceededSli, selectedFileEvent, toneSelectedEvent, toneSelectorClosedEvent, toneSelectorOpenedEvent, typeaheadCancelledEvent, typeaheadRenderedEvent, typeaheadSelectedEvent, uploadBeginButton, uploadCancelButton, uploadConfirmButton, uploadFailedEvent, uploadSucceededEvent, } from './analytics';
3
+ export { aiGenerationStartedEvent, aiGenerationCompletedEvent, aiGenerationFailedEvent, categoryClickedEvent, createAndFireEventInElementsChannel, closedPickerEvent, deleteBeginEvent, deleteCancelEvent, deleteConfirmEvent, recordFailed, recordFailedEmoji, recordSucceeded, recordSucceededEmoji, openedPickerEvent, pickerClickedEvent, pickerSearchedEvent, recordSelectionFailedSli, recordSelectionSucceededSli, selectedFileEvent, toneSelectedEvent, toneSelectorClosedEvent, toneSelectorOpenedEvent, typeaheadCancelledEvent, typeaheadRenderedEvent, typeaheadSelectedEvent, uploadBeginButton, uploadCancelButton, uploadConfirmButton, uploadFailedEvent, uploadSucceededEvent, } from './analytics';
4
4
  export { sampledUfoRenderedEmoji, ufoExperiences } from './ufoExperiences';
5
5
  export type { EmojiInsertionAnalytic } from './analytics';
6
6
  export { useSampledUFOComponentExperience } from './useSampledUFOComponentExperience';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/emoji",
3
- "version": "71.6.5",
3
+ "version": "71.7.0",
4
4
  "description": "Fabric emoji React components",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -40,6 +40,7 @@
40
40
  "@atlaskit/icon": "^36.1.0",
41
41
  "@atlaskit/icon-lab": "^7.2.0",
42
42
  "@atlaskit/image": "^4.1.0",
43
+ "@atlaskit/logo": "^21.3.0",
43
44
  "@atlaskit/media-client": "^37.1.0",
44
45
  "@atlaskit/media-client-react": "^6.1.0",
45
46
  "@atlaskit/platform-feature-flags": "^2.0.0",
@@ -49,7 +50,7 @@
49
50
  "@atlaskit/spinner": "^20.1.0",
50
51
  "@atlaskit/textfield": "^9.1.0",
51
52
  "@atlaskit/theme": "^26.1.0",
52
- "@atlaskit/tmp-editor-statsig": "^118.0.0",
53
+ "@atlaskit/tmp-editor-statsig": "^119.2.0",
53
54
  "@atlaskit/tokens": "^15.3.0",
54
55
  "@atlaskit/tooltip": "^23.1.0",
55
56
  "@atlaskit/ufo": "^1.0.0",
@@ -150,6 +151,10 @@
150
151
  "platform_teamoji_26_refresh_emoji_picker": {
151
152
  "param": "isEnabled",
152
153
  "defaultValue": false
154
+ },
155
+ "confluence_ai_generated_emojis": {
156
+ "param": "isEnabled",
157
+ "defaultValue": false
153
158
  }
154
159
  },
155
160
  "scripts": {