@atlaskit/emoji 73.3.7 → 73.3.8

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # @atlaskit/emoji
2
2
 
3
+ ## 73.3.8
4
+
5
+ ### Patch Changes
6
+
7
+ - [`12727dc9ff879`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/12727dc9ff879) -
8
+ Reuse the provider's MDPI image for compact standard and Atlassian emojis behind
9
+ platform_emoji_adaptive_image_size when it has enough pixels for the display. Preserve catalogue
10
+ images for larger or denser displays and providers without a suitable URL.
11
+
3
12
  ## 73.3.7
4
13
 
5
14
  ### Patch Changes
@@ -10,10 +10,12 @@ exports.default = exports.ResourcedEmojiComponent = void 0;
10
10
  require("./ResourcedEmojiComponent.compiled.css");
11
11
  var _runtime = require("@compiled/react/runtime");
12
12
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
14
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
14
15
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
16
  var _react = _interopRequireWildcard(require("react"));
16
17
  var _fg = require("@atlaskit/platform-feature-flags/fg");
18
+ var _getPixelRatio = require("../../api/getPixelRatio");
17
19
  var _EmojiCommonProvider = require("../../context/EmojiCommonProvider");
18
20
  var _types = require("../../types");
19
21
  var _hasUfoMarked = require("../../util/analytics/hasUfoMarked");
@@ -23,7 +25,16 @@ var _isPromise = require("../../util/is-promise");
23
25
  var _Emoji = _interopRequireDefault(require("./Emoji"));
24
26
  var _EmojiPlaceholder = _interopRequireDefault(require("./EmojiPlaceholder"));
25
27
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
28
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
29
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
26
30
  var ignoreWrapperStyles = null;
31
+ var isMdpiImageURL = function isMdpiImageURL(imageURL) {
32
+ try {
33
+ return new URL(imageURL, 'https://emoji.invalid').searchParams.get('scale') === 'MDPI';
34
+ } catch (_unused) {
35
+ return false;
36
+ }
37
+ };
27
38
  var ResourcedEmojiComponentRenderStatesEnum = /*#__PURE__*/function (ResourcedEmojiComponentRenderStatesEnum) {
28
39
  ResourcedEmojiComponentRenderStatesEnum["INITIAL"] = "INITIAL";
29
40
  ResourcedEmojiComponentRenderStatesEnum["FALLBACK"] = "FALLBACK";
@@ -69,8 +80,12 @@ var ResourcedEmojiComponent = exports.ResourcedEmojiComponent = function Resourc
69
80
  setImageLoadError = _useState6[1];
70
81
  var _useState7 = (0, _react.useState)(),
71
82
  _useState8 = (0, _slicedToArray2.default)(_useState7, 2),
72
- resolvedEmojiProvider = _useState8[0],
73
- setResolvedEmojiProvider = _useState8[1];
83
+ failedAdaptiveImageURL = _useState8[0],
84
+ setFailedAdaptiveImageURL = _useState8[1];
85
+ var _useState9 = (0, _react.useState)(),
86
+ _useState0 = (0, _slicedToArray2.default)(_useState9, 2),
87
+ resolvedEmojiProvider = _useState0[0],
88
+ setResolvedEmojiProvider = _useState0[1];
74
89
  var fetchOrGetEmoji = (0, _react.useCallback)( /*#__PURE__*/function () {
75
90
  var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(_emojiProvider, emojiId) {
76
91
  var optimisticFetch,
@@ -187,6 +202,10 @@ var ResourcedEmojiComponent = exports.ResourcedEmojiComponent = function Resourc
187
202
  return ResourcedEmojiComponentRenderStatesEnum.EMOJI;
188
203
  }, [emoji, loaded, optimisticImageURL, imageLoadError]);
189
204
  var optimisticEmojiDescription = (0, _react.useMemo)(function () {
205
+ if (optimisticImageURL && emoji && (emoji.type === 'STANDARD' || emoji.type === 'ATLASSIAN') && fitToHeight * Math.max(1, (0, _getPixelRatio.getPixelRatio)()) > 32 && isMdpiImageURL(optimisticImageURL) && (0, _fg.fg)('platform_emoji_adaptive_image_size')) {
206
+ return emoji;
207
+ }
208
+
190
209
  // reduce blast radius by targeting page title
191
210
  if (pageTitleEmoji && optimisticImageURL && (0, _fg.fg)('platform_emoji_prevent_img_src_changing')) {
192
211
  return {
@@ -219,9 +238,33 @@ var ResourcedEmojiComponent = exports.ResourcedEmojiComponent = function Resourc
219
238
  }
220
239
  };
221
240
  }
241
+ if ((0, _fg.fg)('platform_emoji_adaptive_image_size') && emoji && (emoji.type === 'STANDARD' || emoji.type === 'ATLASSIAN') && emoji.representation && 'imagePath' in emoji.representation && emoji.representation.height > 32 && fitToHeight > 0 && fitToHeight * Math.max(1, (0, _getPixelRatio.getPixelRatio)()) <= 32) {
242
+ var _resolvedEmojiProvide;
243
+ var imageURL = resolvedEmojiProvider === null || resolvedEmojiProvider === void 0 || (_resolvedEmojiProvide = resolvedEmojiProvider.getOptimisticImageURL) === null || _resolvedEmojiProvide === void 0 ? void 0 : _resolvedEmojiProvide.call(resolvedEmojiProvider, {
244
+ id: id,
245
+ shortName: shortName,
246
+ fallback: fallback
247
+ });
248
+ // MDPI standard/Atlassian images are 32px. Reuse the provider's URL instead of
249
+ // downloading a larger catalogue image when those pixels already cover the display.
250
+ if (imageURL && imageURL !== failedAdaptiveImageURL && isMdpiImageURL(imageURL)) {
251
+ return _objectSpread(_objectSpread({}, emoji), {}, {
252
+ representation: {
253
+ imagePath: imageURL,
254
+ width: 32,
255
+ height: 32
256
+ },
257
+ altRepresentation: undefined
258
+ });
259
+ }
260
+ }
222
261
  return emoji;
223
- }, [emoji, optimisticImageURL, fallback, fitToHeight, id, shortName, pageTitleEmoji]);
262
+ }, [emoji, optimisticImageURL, fallback, fitToHeight, id, shortName, pageTitleEmoji, resolvedEmojiProvider, failedAdaptiveImageURL]);
224
263
  var handleOnLoadError = (0, _react.useCallback)(function (emojiId) {
264
+ if ((0, _fg.fg)('platform_emoji_adaptive_image_size') && !optimisticImageURL && optimisticEmojiDescription !== emoji && optimisticEmojiDescription !== null && optimisticEmojiDescription !== void 0 && optimisticEmojiDescription.representation && 'imagePath' in optimisticEmojiDescription.representation) {
265
+ setFailedAdaptiveImageURL(optimisticEmojiDescription.representation.imagePath);
266
+ return;
267
+ }
225
268
  setImageLoadError(true);
226
269
  var reason = 'load error';
227
270
  onEmojiLoadFail && onEmojiLoadFail(emojiId.id, reason);
@@ -232,7 +275,7 @@ var ResourcedEmojiComponent = exports.ResourcedEmojiComponent = function Resourc
232
275
  emojiId: emojiId.id
233
276
  }
234
277
  });
235
- }, [onEmojiLoadFail]);
278
+ }, [onEmojiLoadFail, optimisticImageURL, optimisticEmojiDescription, emoji]);
236
279
  var handleOnLoadSuccess = (0, _react.useCallback)(function (emojiId) {
237
280
  onEmojiLoadSuccess && onEmojiLoadSuccess(emojiId.id);
238
281
  }, [onEmojiLoadSuccess]);
@@ -17,7 +17,7 @@ var createEvent = exports.createEvent = function createEvent(eventType, action,
17
17
  actionSubjectId: actionSubjectId,
18
18
  attributes: _objectSpread({
19
19
  packageName: "@atlaskit/emoji",
20
- packageVersion: "73.3.6"
20
+ packageVersion: "73.3.7"
21
21
  }, attributes)
22
22
  };
23
23
  };
@@ -3,6 +3,7 @@ import "./ResourcedEmojiComponent.compiled.css";
3
3
  import { ax, ix } from "@compiled/react/runtime";
4
4
  import React, { useCallback, useEffect, useLayoutEffect, useMemo, useState } from 'react';
5
5
  import { fg } from '@atlaskit/platform-feature-flags/fg';
6
+ import { getPixelRatio } from '../../api/getPixelRatio';
6
7
  import { EmojiCommonProvider } from '../../context/EmojiCommonProvider';
7
8
  import { UfoEmojiTimings } from '../../types';
8
9
  import { hasUfoMarked } from '../../util/analytics/hasUfoMarked';
@@ -12,6 +13,13 @@ import { isPromise } from '../../util/is-promise';
12
13
  import Emoji from './Emoji';
13
14
  import EmojiPlaceholder from './EmojiPlaceholder';
14
15
  const ignoreWrapperStyles = null;
16
+ const isMdpiImageURL = imageURL => {
17
+ try {
18
+ return new URL(imageURL, 'https://emoji.invalid').searchParams.get('scale') === 'MDPI';
19
+ } catch {
20
+ return false;
21
+ }
22
+ };
15
23
  var ResourcedEmojiComponentRenderStatesEnum = /*#__PURE__*/function (ResourcedEmojiComponentRenderStatesEnum) {
16
24
  ResourcedEmojiComponentRenderStatesEnum["INITIAL"] = "INITIAL";
17
25
  ResourcedEmojiComponentRenderStatesEnum["FALLBACK"] = "FALLBACK";
@@ -42,6 +50,7 @@ export const ResourcedEmojiComponent = ({
42
50
  const [emoji, setEmoji] = useState();
43
51
  const [loaded, setLoaded] = useState(false);
44
52
  const [imageLoadError, setImageLoadError] = useState(false);
53
+ const [failedAdaptiveImageURL, setFailedAdaptiveImageURL] = useState();
45
54
  const [resolvedEmojiProvider, setResolvedEmojiProvider] = useState();
46
55
  const fetchOrGetEmoji = useCallback(async (_emojiProvider, emojiId, optimisticFetch = false) => {
47
56
  if (!_emojiProvider.fetchByEmojiId) {
@@ -141,6 +150,10 @@ export const ResourcedEmojiComponent = ({
141
150
  return ResourcedEmojiComponentRenderStatesEnum.EMOJI;
142
151
  }, [emoji, loaded, optimisticImageURL, imageLoadError]);
143
152
  const optimisticEmojiDescription = useMemo(() => {
153
+ if (optimisticImageURL && emoji && (emoji.type === 'STANDARD' || emoji.type === 'ATLASSIAN') && fitToHeight * Math.max(1, getPixelRatio()) > 32 && isMdpiImageURL(optimisticImageURL) && fg('platform_emoji_adaptive_image_size')) {
154
+ return emoji;
155
+ }
156
+
144
157
  // reduce blast radius by targeting page title
145
158
  if (pageTitleEmoji && optimisticImageURL && fg('platform_emoji_prevent_img_src_changing')) {
146
159
  return {
@@ -173,9 +186,34 @@ export const ResourcedEmojiComponent = ({
173
186
  }
174
187
  };
175
188
  }
189
+ if (fg('platform_emoji_adaptive_image_size') && emoji && (emoji.type === 'STANDARD' || emoji.type === 'ATLASSIAN') && emoji.representation && 'imagePath' in emoji.representation && emoji.representation.height > 32 && fitToHeight > 0 && fitToHeight * Math.max(1, getPixelRatio()) <= 32) {
190
+ var _resolvedEmojiProvide;
191
+ const imageURL = resolvedEmojiProvider === null || resolvedEmojiProvider === void 0 ? void 0 : (_resolvedEmojiProvide = resolvedEmojiProvider.getOptimisticImageURL) === null || _resolvedEmojiProvide === void 0 ? void 0 : _resolvedEmojiProvide.call(resolvedEmojiProvider, {
192
+ id,
193
+ shortName,
194
+ fallback
195
+ });
196
+ // MDPI standard/Atlassian images are 32px. Reuse the provider's URL instead of
197
+ // downloading a larger catalogue image when those pixels already cover the display.
198
+ if (imageURL && imageURL !== failedAdaptiveImageURL && isMdpiImageURL(imageURL)) {
199
+ return {
200
+ ...emoji,
201
+ representation: {
202
+ imagePath: imageURL,
203
+ width: 32,
204
+ height: 32
205
+ },
206
+ altRepresentation: undefined
207
+ };
208
+ }
209
+ }
176
210
  return emoji;
177
- }, [emoji, optimisticImageURL, fallback, fitToHeight, id, shortName, pageTitleEmoji]);
211
+ }, [emoji, optimisticImageURL, fallback, fitToHeight, id, shortName, pageTitleEmoji, resolvedEmojiProvider, failedAdaptiveImageURL]);
178
212
  const handleOnLoadError = useCallback(emojiId => {
213
+ if (fg('platform_emoji_adaptive_image_size') && !optimisticImageURL && optimisticEmojiDescription !== emoji && optimisticEmojiDescription !== null && optimisticEmojiDescription !== void 0 && optimisticEmojiDescription.representation && 'imagePath' in optimisticEmojiDescription.representation) {
214
+ setFailedAdaptiveImageURL(optimisticEmojiDescription.representation.imagePath);
215
+ return;
216
+ }
179
217
  setImageLoadError(true);
180
218
  const reason = 'load error';
181
219
  onEmojiLoadFail && onEmojiLoadFail(emojiId.id, reason);
@@ -186,7 +224,7 @@ export const ResourcedEmojiComponent = ({
186
224
  emojiId: emojiId.id
187
225
  }
188
226
  });
189
- }, [onEmojiLoadFail]);
227
+ }, [onEmojiLoadFail, optimisticImageURL, optimisticEmojiDescription, emoji]);
190
228
  const handleOnLoadSuccess = useCallback(emojiId => {
191
229
  onEmojiLoadSuccess && onEmojiLoadSuccess(emojiId.id);
192
230
  }, [onEmojiLoadSuccess]);
@@ -5,7 +5,7 @@ export const createEvent = (eventType, action, actionSubject, actionSubjectId, a
5
5
  actionSubjectId,
6
6
  attributes: {
7
7
  packageName: "@atlaskit/emoji",
8
- packageVersion: "73.3.6",
8
+ packageVersion: "73.3.7",
9
9
  ...attributes
10
10
  }
11
11
  });
@@ -1,11 +1,15 @@
1
1
  /* ResourcedEmojiComponent.tsx generated by @compiled/babel-plugin v3.0.2 */
2
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
3
  import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
4
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
5
  import "./ResourcedEmojiComponent.compiled.css";
5
6
  import { ax, ix } from "@compiled/react/runtime";
7
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
8
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
6
9
  import _regeneratorRuntime from "@babel/runtime/regenerator";
7
10
  import React, { useCallback, useEffect, useLayoutEffect, useMemo, useState } from 'react';
8
11
  import { fg } from '@atlaskit/platform-feature-flags/fg';
12
+ import { getPixelRatio } from '../../api/getPixelRatio';
9
13
  import { EmojiCommonProvider } from '../../context/EmojiCommonProvider';
10
14
  import { UfoEmojiTimings } from '../../types';
11
15
  import { hasUfoMarked } from '../../util/analytics/hasUfoMarked';
@@ -15,6 +19,13 @@ import { isPromise } from '../../util/is-promise';
15
19
  import Emoji from './Emoji';
16
20
  import EmojiPlaceholder from './EmojiPlaceholder';
17
21
  var ignoreWrapperStyles = null;
22
+ var isMdpiImageURL = function isMdpiImageURL(imageURL) {
23
+ try {
24
+ return new URL(imageURL, 'https://emoji.invalid').searchParams.get('scale') === 'MDPI';
25
+ } catch (_unused) {
26
+ return false;
27
+ }
28
+ };
18
29
  var ResourcedEmojiComponentRenderStatesEnum = /*#__PURE__*/function (ResourcedEmojiComponentRenderStatesEnum) {
19
30
  ResourcedEmojiComponentRenderStatesEnum["INITIAL"] = "INITIAL";
20
31
  ResourcedEmojiComponentRenderStatesEnum["FALLBACK"] = "FALLBACK";
@@ -60,8 +71,12 @@ export var ResourcedEmojiComponent = function ResourcedEmojiComponent(_ref) {
60
71
  setImageLoadError = _useState6[1];
61
72
  var _useState7 = useState(),
62
73
  _useState8 = _slicedToArray(_useState7, 2),
63
- resolvedEmojiProvider = _useState8[0],
64
- setResolvedEmojiProvider = _useState8[1];
74
+ failedAdaptiveImageURL = _useState8[0],
75
+ setFailedAdaptiveImageURL = _useState8[1];
76
+ var _useState9 = useState(),
77
+ _useState0 = _slicedToArray(_useState9, 2),
78
+ resolvedEmojiProvider = _useState0[0],
79
+ setResolvedEmojiProvider = _useState0[1];
65
80
  var fetchOrGetEmoji = useCallback( /*#__PURE__*/function () {
66
81
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_emojiProvider, emojiId) {
67
82
  var optimisticFetch,
@@ -178,6 +193,10 @@ export var ResourcedEmojiComponent = function ResourcedEmojiComponent(_ref) {
178
193
  return ResourcedEmojiComponentRenderStatesEnum.EMOJI;
179
194
  }, [emoji, loaded, optimisticImageURL, imageLoadError]);
180
195
  var optimisticEmojiDescription = useMemo(function () {
196
+ if (optimisticImageURL && emoji && (emoji.type === 'STANDARD' || emoji.type === 'ATLASSIAN') && fitToHeight * Math.max(1, getPixelRatio()) > 32 && isMdpiImageURL(optimisticImageURL) && fg('platform_emoji_adaptive_image_size')) {
197
+ return emoji;
198
+ }
199
+
181
200
  // reduce blast radius by targeting page title
182
201
  if (pageTitleEmoji && optimisticImageURL && fg('platform_emoji_prevent_img_src_changing')) {
183
202
  return {
@@ -210,9 +229,33 @@ export var ResourcedEmojiComponent = function ResourcedEmojiComponent(_ref) {
210
229
  }
211
230
  };
212
231
  }
232
+ if (fg('platform_emoji_adaptive_image_size') && emoji && (emoji.type === 'STANDARD' || emoji.type === 'ATLASSIAN') && emoji.representation && 'imagePath' in emoji.representation && emoji.representation.height > 32 && fitToHeight > 0 && fitToHeight * Math.max(1, getPixelRatio()) <= 32) {
233
+ var _resolvedEmojiProvide;
234
+ var imageURL = resolvedEmojiProvider === null || resolvedEmojiProvider === void 0 || (_resolvedEmojiProvide = resolvedEmojiProvider.getOptimisticImageURL) === null || _resolvedEmojiProvide === void 0 ? void 0 : _resolvedEmojiProvide.call(resolvedEmojiProvider, {
235
+ id: id,
236
+ shortName: shortName,
237
+ fallback: fallback
238
+ });
239
+ // MDPI standard/Atlassian images are 32px. Reuse the provider's URL instead of
240
+ // downloading a larger catalogue image when those pixels already cover the display.
241
+ if (imageURL && imageURL !== failedAdaptiveImageURL && isMdpiImageURL(imageURL)) {
242
+ return _objectSpread(_objectSpread({}, emoji), {}, {
243
+ representation: {
244
+ imagePath: imageURL,
245
+ width: 32,
246
+ height: 32
247
+ },
248
+ altRepresentation: undefined
249
+ });
250
+ }
251
+ }
213
252
  return emoji;
214
- }, [emoji, optimisticImageURL, fallback, fitToHeight, id, shortName, pageTitleEmoji]);
253
+ }, [emoji, optimisticImageURL, fallback, fitToHeight, id, shortName, pageTitleEmoji, resolvedEmojiProvider, failedAdaptiveImageURL]);
215
254
  var handleOnLoadError = useCallback(function (emojiId) {
255
+ if (fg('platform_emoji_adaptive_image_size') && !optimisticImageURL && optimisticEmojiDescription !== emoji && optimisticEmojiDescription !== null && optimisticEmojiDescription !== void 0 && optimisticEmojiDescription.representation && 'imagePath' in optimisticEmojiDescription.representation) {
256
+ setFailedAdaptiveImageURL(optimisticEmojiDescription.representation.imagePath);
257
+ return;
258
+ }
216
259
  setImageLoadError(true);
217
260
  var reason = 'load error';
218
261
  onEmojiLoadFail && onEmojiLoadFail(emojiId.id, reason);
@@ -223,7 +266,7 @@ export var ResourcedEmojiComponent = function ResourcedEmojiComponent(_ref) {
223
266
  emojiId: emojiId.id
224
267
  }
225
268
  });
226
- }, [onEmojiLoadFail]);
269
+ }, [onEmojiLoadFail, optimisticImageURL, optimisticEmojiDescription, emoji]);
227
270
  var handleOnLoadSuccess = useCallback(function (emojiId) {
228
271
  onEmojiLoadSuccess && onEmojiLoadSuccess(emojiId.id);
229
272
  }, [onEmojiLoadSuccess]);
@@ -10,7 +10,7 @@ export var createEvent = function createEvent(eventType, action, actionSubject,
10
10
  actionSubjectId: actionSubjectId,
11
11
  attributes: _objectSpread({
12
12
  packageName: "@atlaskit/emoji",
13
- packageVersion: "73.3.6"
13
+ packageVersion: "73.3.7"
14
14
  }, attributes)
15
15
  };
16
16
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/emoji",
3
- "version": "73.3.7",
3
+ "version": "73.3.8",
4
4
  "description": "Fabric emoji React components",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"