@atlaskit/emoji 66.0.3 → 66.1.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.
- package/CHANGELOG.md +11 -0
- package/dist/cjs/components/common/EmojiUploadPicker.js +17 -0
- package/dist/cjs/components/common/styles.js +17 -6
- package/dist/cjs/components/picker/EmojiPicker.js +5 -0
- package/dist/cjs/components/picker/EmojiPickerComponent.js +6 -3
- package/dist/cjs/components/picker/EmojiPickerList.js +8 -3
- package/dist/cjs/components/picker/EmojiPickerListSearch.js +1 -1
- package/dist/cjs/components/picker/EmojiPickerSizes.js +1 -1
- package/dist/cjs/components/picker/styles.js +11 -4
- package/dist/cjs/components/picker/utils.js +20 -0
- package/dist/cjs/util/constants.js +13 -2
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/components/common/EmojiUploadPicker.js +16 -1
- package/dist/es2019/components/common/styles.js +14 -5
- package/dist/es2019/components/picker/EmojiPicker.js +6 -0
- package/dist/es2019/components/picker/EmojiPickerComponent.js +6 -4
- package/dist/es2019/components/picker/EmojiPickerList.js +7 -4
- package/dist/es2019/components/picker/EmojiPickerListSearch.js +1 -1
- package/dist/es2019/components/picker/EmojiPickerSizes.js +2 -2
- package/dist/es2019/components/picker/styles.js +10 -5
- package/dist/es2019/components/picker/utils.js +10 -0
- package/dist/es2019/util/constants.js +7 -1
- package/dist/es2019/version.json +1 -1
- package/dist/esm/components/common/EmojiUploadPicker.js +16 -1
- package/dist/esm/components/common/styles.js +14 -5
- package/dist/esm/components/picker/EmojiPicker.js +6 -0
- package/dist/esm/components/picker/EmojiPickerComponent.js +7 -4
- package/dist/esm/components/picker/EmojiPickerList.js +8 -4
- package/dist/esm/components/picker/EmojiPickerListSearch.js +1 -1
- package/dist/esm/components/picker/EmojiPickerSizes.js +2 -2
- package/dist/esm/components/picker/styles.js +10 -4
- package/dist/esm/components/picker/utils.js +10 -0
- package/dist/esm/util/constants.js +7 -1
- package/dist/esm/version.json +1 -1
- package/dist/types/components/common/styles.d.ts +2 -0
- package/dist/types/components/picker/EmojiPicker.d.ts +11 -2
- package/dist/types/components/picker/EmojiPickerComponent.d.ts +3 -2
- package/dist/types/components/picker/EmojiPickerList.d.ts +3 -1
- package/dist/types/components/picker/styles.d.ts +2 -1
- package/dist/types/components/picker/utils.d.ts +2 -0
- package/dist/types/index.d.ts +1 -1
- package/dist/types/types.d.ts +1 -0
- package/dist/types/util/constants.d.ts +6 -1
- package/package.json +4 -4
- package/report.api.md +66 -28
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# @atlaskit/emoji
|
|
2
2
|
|
|
3
|
+
## 66.1.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [`cde71051978`](https://bitbucket.org/atlassian/atlassian-frontend/commits/cde71051978) - [ux] Provide size options for emoji picker, including `small`, `medium`, and `large`. Make `medium` size for emoji picker by default, which will enlarge emoji picker to show more emojis.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- [`1324afa6676`](https://bitbucket.org/atlassian/atlassian-frontend/commits/1324afa6676) - Add autofocus for emoji picker inside requestAnimationFrame
|
|
12
|
+
- Updated dependencies
|
|
13
|
+
|
|
3
14
|
## 66.0.3
|
|
4
15
|
|
|
5
16
|
### Patch Changes
|
|
@@ -23,6 +23,10 @@ var _reactIntlNext = require("react-intl-next");
|
|
|
23
23
|
|
|
24
24
|
var _textfield = _interopRequireDefault(require("@atlaskit/textfield"));
|
|
25
25
|
|
|
26
|
+
var _cross = _interopRequireDefault(require("@atlaskit/icon/glyph/cross"));
|
|
27
|
+
|
|
28
|
+
var _standardButton = _interopRequireDefault(require("@atlaskit/button/standard-button"));
|
|
29
|
+
|
|
26
30
|
var ImageUtil = _interopRequireWildcard(require("../../util/image"));
|
|
27
31
|
|
|
28
32
|
var _logger = _interopRequireDefault(require("../../util/logger"));
|
|
@@ -83,10 +87,23 @@ var ChooseEmojiFile = function ChooseEmojiFile(props) {
|
|
|
83
87
|
return (0, _react2.jsx)("div", {
|
|
84
88
|
css: _styles.emojiUpload
|
|
85
89
|
}, (0, _react2.jsx)("div", {
|
|
90
|
+
css: _styles.emojiUploadTop
|
|
91
|
+
}, (0, _react2.jsx)("span", {
|
|
86
92
|
css: _styles.uploadChooseFileMessage
|
|
87
93
|
}, (0, _react2.jsx)(_reactIntlNext.FormattedMessage, _i18n.messages.addCustomEmojiLabel, function (message) {
|
|
88
94
|
return (0, _react2.jsx)("h5", null, message);
|
|
89
95
|
})), (0, _react2.jsx)("div", {
|
|
96
|
+
css: _styles.closeEmojiUploadButton
|
|
97
|
+
}, (0, _react2.jsx)(_standardButton.default, {
|
|
98
|
+
onClick: onUploadCancelled,
|
|
99
|
+
"aria-describedby": formatMessage(_i18n.messages.cancelLabel),
|
|
100
|
+
appearance: "subtle",
|
|
101
|
+
spacing: "none",
|
|
102
|
+
shouldFitContainer: true
|
|
103
|
+
}, (0, _react2.jsx)(_cross.default, {
|
|
104
|
+
size: "small",
|
|
105
|
+
label: formatMessage(_i18n.messages.cancelLabel)
|
|
106
|
+
})))), (0, _react2.jsx)("div", {
|
|
90
107
|
css: _styles.uploadChooseFileRow
|
|
91
108
|
}, (0, _react2.jsx)("span", {
|
|
92
109
|
css: _styles.uploadChooseFileEmojiName
|
|
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.uploadRetryButton = exports.uploadPreviewText = exports.uploadPreviewFooter = exports.uploadPreview = exports.uploadEmojiButton = exports.uploadChooseFileRow = exports.uploadChooseFileMessage = exports.uploadChooseFileEmojiName = exports.uploadChooseFileBrowse = exports.uploadAddRow = exports.submitDelete = exports.selectOnHoverStyles = exports.previewText = exports.previewImg = exports.previewButtonGroup = exports.preview = exports.placeholderContainerAnimated = exports.placeholderContainer = exports.placeholder = exports.hiddenToneButton = exports.emojiUploadBottom = exports.emojiUpload = exports.emojiToneSelectorContainer = exports.emojiStyles = exports.emojiSprite = exports.emojiShortName = exports.emojiScrollable = exports.emojiPreviewErrorMessage = exports.emojiPickerAddEmoji = exports.emojiNodeStyles = exports.emojiName = exports.emojiMainStyle = exports.emojiImage = exports.emojiDeleteErrorMessage = exports.emojiDeleteButton = exports.emojiContainer = exports.emojiChooseFileErrorMessage = exports.emojiButton = exports.emojiActionsWrapper = exports.deleteText = exports.deletePreview = exports.deleteFooter = exports.deleteButton = exports.commonSelectedStyles = exports.cancelButton = exports.buttonSpinner = exports.bigEmojiPreview = exports.addCustomEmojiButton = exports.addCustomEmoji = void 0;
|
|
8
|
+
exports.uploadRetryButton = exports.uploadPreviewText = exports.uploadPreviewFooter = exports.uploadPreview = exports.uploadEmojiButton = exports.uploadChooseFileRow = exports.uploadChooseFileMessage = exports.uploadChooseFileEmojiName = exports.uploadChooseFileBrowse = exports.uploadAddRow = exports.submitDelete = exports.selectOnHoverStyles = exports.previewText = exports.previewImg = exports.previewButtonGroup = exports.preview = exports.placeholderContainerAnimated = exports.placeholderContainer = exports.placeholder = exports.hiddenToneButton = exports.emojiUploadTop = exports.emojiUploadBottom = exports.emojiUpload = exports.emojiToneSelectorContainer = exports.emojiStyles = exports.emojiSprite = exports.emojiShortName = exports.emojiScrollable = exports.emojiPreviewErrorMessage = exports.emojiPickerAddEmoji = exports.emojiNodeStyles = exports.emojiName = exports.emojiMainStyle = exports.emojiImage = exports.emojiDeleteErrorMessage = exports.emojiDeleteButton = exports.emojiContainer = exports.emojiChooseFileErrorMessage = exports.emojiButton = exports.emojiActionsWrapper = exports.deleteText = exports.deletePreview = exports.deleteFooter = exports.deleteButton = exports.commonSelectedStyles = exports.closeEmojiUploadButton = exports.cancelButton = exports.buttonSpinner = exports.bigEmojiPreview = exports.addCustomEmojiButton = exports.addCustomEmoji = void 0;
|
|
9
9
|
|
|
10
10
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
11
|
|
|
@@ -129,7 +129,7 @@ var emojiButton = (0, _react.css)((_css3 = {
|
|
|
129
129
|
padding: 0
|
|
130
130
|
}), (0, _defineProperty2.default)(_css3, '&>span', (_span = {
|
|
131
131
|
borderRadius: "".concat((0, _constants.borderRadius)(), "px"),
|
|
132
|
-
padding: '
|
|
132
|
+
padding: '6px'
|
|
133
133
|
}, (0, _defineProperty2.default)(_span, "&>.".concat(emojiSprite), {
|
|
134
134
|
height: '24px',
|
|
135
135
|
width: '24px'
|
|
@@ -234,19 +234,30 @@ var emojiUpload = (0, _react.css)({
|
|
|
234
234
|
justifyContent: 'space-around'
|
|
235
235
|
});
|
|
236
236
|
exports.emojiUpload = emojiUpload;
|
|
237
|
+
var emojiUploadTop = (0, _react.css)({
|
|
238
|
+
paddingBottom: '7px',
|
|
239
|
+
display: 'flex',
|
|
240
|
+
justifyContent: 'space-between',
|
|
241
|
+
alignItems: 'flex-end',
|
|
242
|
+
fontSize: '12px'
|
|
243
|
+
});
|
|
244
|
+
exports.emojiUploadTop = emojiUploadTop;
|
|
237
245
|
var uploadChooseFileMessage = (0, _react.css)({
|
|
238
|
-
color: (0, _tokens.token)('color.text.subtle', _colors.N300)
|
|
239
|
-
fontSize: '12px',
|
|
240
|
-
paddingBottom: '7px'
|
|
246
|
+
color: (0, _tokens.token)('color.text.subtle', _colors.N300)
|
|
241
247
|
});
|
|
242
248
|
exports.uploadChooseFileMessage = uploadChooseFileMessage;
|
|
249
|
+
var closeEmojiUploadButton = (0, _react.css)({
|
|
250
|
+
display: 'flex'
|
|
251
|
+
});
|
|
252
|
+
exports.closeEmojiUploadButton = closeEmojiUploadButton;
|
|
243
253
|
var emojiUploadBottom = (0, _react.css)({
|
|
244
254
|
fontSize: '11px'
|
|
245
255
|
});
|
|
246
256
|
exports.emojiUploadBottom = emojiUploadBottom;
|
|
247
257
|
var uploadChooseFileRow = (0, _react.css)({
|
|
248
258
|
display: 'flex',
|
|
249
|
-
justifyContent: 'space-between'
|
|
259
|
+
justifyContent: 'space-between',
|
|
260
|
+
paddingBottom: '7px'
|
|
250
261
|
});
|
|
251
262
|
exports.uploadChooseFileRow = uploadChooseFileRow;
|
|
252
263
|
var uploadChooseFileEmojiName = (0, _react.css)({
|
|
@@ -41,6 +41,8 @@ var _styles = require("./styles");
|
|
|
41
41
|
|
|
42
42
|
var _UfoErrorBoundary = require("../common/UfoErrorBoundary");
|
|
43
43
|
|
|
44
|
+
var _constants = require("../../util/constants");
|
|
45
|
+
|
|
44
46
|
var _excluded = ["emojiProvider"];
|
|
45
47
|
|
|
46
48
|
function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
|
|
@@ -132,6 +134,9 @@ var EmojiPickerInternal = /*#__PURE__*/function (_LoadingEmojiComponen) {
|
|
|
132
134
|
}(_LoadingEmojiComponent.default);
|
|
133
135
|
|
|
134
136
|
exports.EmojiPickerInternal = EmojiPickerInternal;
|
|
137
|
+
(0, _defineProperty2.default)(EmojiPickerInternal, "defaultProps", {
|
|
138
|
+
size: _constants.defaultEmojiPickerSize
|
|
139
|
+
});
|
|
135
140
|
var EmojiPicker = (0, _analyticsNext.withAnalyticsEvents)()(EmojiPickerInternal);
|
|
136
141
|
var _default = EmojiPicker;
|
|
137
142
|
exports.default = _default;
|
|
@@ -62,7 +62,9 @@ var EmojiPickerComponent = function EmojiPickerComponent(_ref) {
|
|
|
62
62
|
onSelection = _ref.onSelection,
|
|
63
63
|
onPickerRef = _ref.onPickerRef,
|
|
64
64
|
hideToneSelector = _ref.hideToneSelector,
|
|
65
|
-
createAnalyticsEvent = _ref.createAnalyticsEvent
|
|
65
|
+
createAnalyticsEvent = _ref.createAnalyticsEvent,
|
|
66
|
+
_ref$size = _ref.size,
|
|
67
|
+
size = _ref$size === void 0 ? _constants.defaultEmojiPickerSize : _ref$size;
|
|
66
68
|
|
|
67
69
|
var _useState = (0, _react.useState)([]),
|
|
68
70
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
@@ -575,7 +577,7 @@ var EmojiPickerComponent = function EmojiPickerComponent(_ref) {
|
|
|
575
577
|
return (0, _react2.jsx)(_LegacyEmojiContextProvider.default, {
|
|
576
578
|
emojiContextValue: emojiContextValue
|
|
577
579
|
}, (0, _react2.jsx)("div", {
|
|
578
|
-
css: (0, _styles.emojiPicker)(showPreview),
|
|
580
|
+
css: (0, _styles.emojiPicker)(showPreview, size),
|
|
579
581
|
ref: onPickerRef,
|
|
580
582
|
"data-emoji-picker-container": true
|
|
581
583
|
}, (0, _react2.jsx)(_CategorySelector.default, {
|
|
@@ -608,7 +610,8 @@ var EmojiPickerComponent = function EmojiPickerComponent(_ref) {
|
|
|
608
610
|
onDeleteEmoji: onDeleteEmoji,
|
|
609
611
|
onCloseDelete: onCloseDelete,
|
|
610
612
|
onFileChooserClicked: onFileChooserClicked,
|
|
611
|
-
onOpenUpload: onOpenUpload
|
|
613
|
+
onOpenUpload: onOpenUpload,
|
|
614
|
+
size: size
|
|
612
615
|
}), showPreview && (0, _react2.jsx)(_EmojiPickerFooter.default, {
|
|
613
616
|
selectedEmoji: selectedEmoji
|
|
614
617
|
})));
|
|
@@ -45,6 +45,8 @@ var _EmojiActions = _interopRequireDefault(require("../common/EmojiActions"));
|
|
|
45
45
|
|
|
46
46
|
var _styles = require("./styles");
|
|
47
47
|
|
|
48
|
+
var _utils = require("./utils");
|
|
49
|
+
|
|
48
50
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
49
51
|
|
|
50
52
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -296,7 +298,9 @@ var EmojiPickerVirtualList = /*#__PURE__*/function (_PureComponent) {
|
|
|
296
298
|
onCloseDelete = _this$props2.onCloseDelete,
|
|
297
299
|
onDeleteEmoji = _this$props2.onDeleteEmoji,
|
|
298
300
|
onFileChooserClicked = _this$props2.onFileChooserClicked,
|
|
299
|
-
onOpenUpload = _this$props2.onOpenUpload
|
|
301
|
+
onOpenUpload = _this$props2.onOpenUpload,
|
|
302
|
+
_this$props2$size = _this$props2.size,
|
|
303
|
+
size = _this$props2$size === void 0 ? _constants.defaultEmojiPickerSize : _this$props2$size;
|
|
300
304
|
return (0, _react2.jsx)("div", {
|
|
301
305
|
ref: "root",
|
|
302
306
|
css: _styles.emojiPickerList,
|
|
@@ -321,7 +325,7 @@ var EmojiPickerVirtualList = /*#__PURE__*/function (_PureComponent) {
|
|
|
321
325
|
onChange: this.onSearch
|
|
322
326
|
}), (0, _react2.jsx)(_List.List, {
|
|
323
327
|
ref: "list",
|
|
324
|
-
height: _EmojiPickerSizes.sizes.listHeight,
|
|
328
|
+
height: _EmojiPickerSizes.sizes.listHeight + (0, _utils.emojiPickerHeightOffset)(size),
|
|
325
329
|
overscanRowCount: 5,
|
|
326
330
|
rowCount: this.virtualItems.length,
|
|
327
331
|
rowHeight: this.rowSize,
|
|
@@ -342,5 +346,6 @@ exports.default = EmojiPickerVirtualList;
|
|
|
342
346
|
onEmojiActive: function onEmojiActive() {},
|
|
343
347
|
onEmojiDelete: function onEmojiDelete() {},
|
|
344
348
|
onCategoryActivated: function onCategoryActivated() {},
|
|
345
|
-
onSearch: function onSearch() {}
|
|
349
|
+
onSearch: function onSearch() {},
|
|
350
|
+
size: _constants.defaultEmojiPickerSize
|
|
346
351
|
});
|
|
@@ -8,7 +8,7 @@ exports.sizes = void 0;
|
|
|
8
8
|
var _constants = require("../../util/constants");
|
|
9
9
|
|
|
10
10
|
var sizes = {
|
|
11
|
-
listHeight:
|
|
11
|
+
listHeight: _constants.emojiPickerListHeight,
|
|
12
12
|
listWidth: _constants.emojiPickerWidth,
|
|
13
13
|
searchHeight: 52,
|
|
14
14
|
// 32px height + 10px padding top/bottom
|
|
@@ -13,8 +13,6 @@ var _react = require("@emotion/react");
|
|
|
13
13
|
|
|
14
14
|
var _tokens = require("@atlaskit/tokens");
|
|
15
15
|
|
|
16
|
-
var _colors = require("@atlaskit/theme/colors");
|
|
17
|
-
|
|
18
16
|
var _constants = require("@atlaskit/theme/constants");
|
|
19
17
|
|
|
20
18
|
var _sharedStyles = require("../../util/shared-styles");
|
|
@@ -23,10 +21,16 @@ var _styles = require("../common/styles");
|
|
|
23
21
|
|
|
24
22
|
var _constants2 = require("../../util/constants");
|
|
25
23
|
|
|
24
|
+
var _colors = require("@atlaskit/theme/colors");
|
|
25
|
+
|
|
26
|
+
var _utils = require("./utils");
|
|
27
|
+
|
|
26
28
|
var _css4, _css5, _css6;
|
|
27
29
|
|
|
28
30
|
// Level 1 - picker
|
|
29
31
|
var emojiPicker = function emojiPicker(hasPreview) {
|
|
32
|
+
var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _constants2.defaultEmojiPickerSize;
|
|
33
|
+
var heightOffset = (0, _utils.emojiPickerHeightOffset)(size);
|
|
30
34
|
return (0, _react.css)({
|
|
31
35
|
display: 'flex',
|
|
32
36
|
flexDirection: 'column',
|
|
@@ -35,10 +39,13 @@ var emojiPicker = function emojiPicker(hasPreview) {
|
|
|
35
39
|
border: "".concat(_sharedStyles.emojiPickerBorderColor, " 1px solid"),
|
|
36
40
|
borderRadius: "".concat((0, _constants.borderRadius)(), "px"),
|
|
37
41
|
boxShadow: _sharedStyles.emojiPickerBoxShadow,
|
|
38
|
-
height: "".concat(hasPreview ? _constants2.emojiPickerHeightWithPreview : _constants2.emojiPickerHeight, "px"),
|
|
42
|
+
height: "".concat(hasPreview ? _constants2.emojiPickerHeightWithPreview + heightOffset : _constants2.emojiPickerHeight + heightOffset, "px"),
|
|
39
43
|
width: "".concat(_constants2.emojiPickerWidth, "px"),
|
|
40
44
|
marginBottom: '8px',
|
|
41
|
-
minWidth: "".concat(_constants2.emojiPickerWidth, "px")
|
|
45
|
+
minWidth: "".concat(_constants2.emojiPickerWidth, "px"),
|
|
46
|
+
minHeight: "".concat(_constants2.emojiPickerMinHeight + heightOffset, "px"),
|
|
47
|
+
maxHeight: 'calc(80vh - 86px)' // ensure showing full picker in small device: mobile header is 40px (Jira) - 56px(Confluence and Atlas), reaction picker height is 24px with margin 6px,
|
|
48
|
+
|
|
42
49
|
});
|
|
43
50
|
}; // Level 2
|
|
44
51
|
/// Category Selector
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.emojiPickerHeightOffset = void 0;
|
|
7
|
+
|
|
8
|
+
var _constants = require("../../util/constants");
|
|
9
|
+
|
|
10
|
+
var emojiPickerHeightOffset = function emojiPickerHeightOffset(size) {
|
|
11
|
+
if (size === 'medium') {
|
|
12
|
+
return _constants.sizeGap;
|
|
13
|
+
} else if (size === 'large') {
|
|
14
|
+
return _constants.sizeGap * 2;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
return 0;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
exports.emojiPickerHeightOffset = emojiPickerHeightOffset;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.userCustomTitle = exports.selectedToneStorageKey = exports.migrationUserId = exports.localStoragePrefix = exports.frequentCategory = exports.emojiPickerWidth = exports.emojiPickerHeightWithPreview = exports.emojiPickerHeight = exports.deleteEmojiLabel = exports.defaultListLimit = exports.defaultEmojiHeight = exports.defaultCategories = exports.dataURLPrefix = exports.customType = exports.customTitle = exports.customCategory = exports.analyticsEmojiPrefix = exports.SAMPLING_RATE_EMOJI_RESOURCE_FETCHED_EXP = exports.SAMPLING_RATE_EMOJI_RENDERED_EXP = exports.MAX_ORDINAL = void 0;
|
|
6
|
+
exports.userCustomTitle = exports.sizeGap = exports.selectedToneStorageKey = exports.migrationUserId = exports.localStoragePrefix = exports.frequentCategory = exports.emojiPickerWidth = exports.emojiPickerPreviewHeight = exports.emojiPickerMinHeight = exports.emojiPickerListHeight = exports.emojiPickerHeightWithPreview = exports.emojiPickerHeight = exports.deleteEmojiLabel = exports.defaultListLimit = exports.defaultEmojiPickerSize = exports.defaultEmojiHeight = exports.defaultCategories = exports.dataURLPrefix = exports.customType = exports.customTitle = exports.customCategory = exports.analyticsEmojiPrefix = exports.SAMPLING_RATE_EMOJI_RESOURCE_FETCHED_EXP = exports.SAMPLING_RATE_EMOJI_RENDERED_EXP = exports.MAX_ORDINAL = void 0;
|
|
7
7
|
var customCategory = 'CUSTOM';
|
|
8
8
|
exports.customCategory = customCategory;
|
|
9
9
|
var frequentCategory = 'FREQUENT';
|
|
@@ -29,9 +29,20 @@ var defaultEmojiHeight = 20;
|
|
|
29
29
|
exports.defaultEmojiHeight = defaultEmojiHeight;
|
|
30
30
|
var emojiPickerWidth = 350;
|
|
31
31
|
exports.emojiPickerWidth = emojiPickerWidth;
|
|
32
|
+
var sizeGap = 80;
|
|
33
|
+
exports.sizeGap = sizeGap;
|
|
34
|
+
var defaultEmojiPickerSize = 'medium';
|
|
35
|
+
exports.defaultEmojiPickerSize = defaultEmojiPickerSize;
|
|
36
|
+
var emojiPickerMinHeight = 260;
|
|
37
|
+
exports.emojiPickerMinHeight = emojiPickerMinHeight;
|
|
32
38
|
var emojiPickerHeight = 295;
|
|
33
39
|
exports.emojiPickerHeight = emojiPickerHeight;
|
|
34
|
-
var
|
|
40
|
+
var emojiPickerListHeight = emojiPickerHeight - 58; // picker height - actions height
|
|
41
|
+
|
|
42
|
+
exports.emojiPickerListHeight = emojiPickerListHeight;
|
|
43
|
+
var emojiPickerPreviewHeight = 54;
|
|
44
|
+
exports.emojiPickerPreviewHeight = emojiPickerPreviewHeight;
|
|
45
|
+
var emojiPickerHeightWithPreview = emojiPickerHeight + emojiPickerPreviewHeight;
|
|
35
46
|
exports.emojiPickerHeightWithPreview = emojiPickerHeightWithPreview;
|
|
36
47
|
var localStoragePrefix = 'fabric.emoji';
|
|
37
48
|
exports.localStoragePrefix = localStoragePrefix;
|
package/dist/cjs/version.json
CHANGED
|
@@ -3,6 +3,8 @@ import React, { Fragment, useEffect, useState } from 'react';
|
|
|
3
3
|
import { jsx } from '@emotion/react';
|
|
4
4
|
import { FormattedMessage, injectIntl } from 'react-intl-next';
|
|
5
5
|
import TextField from '@atlaskit/textfield';
|
|
6
|
+
import CrossIcon from '@atlaskit/icon/glyph/cross';
|
|
7
|
+
import AkButton from '@atlaskit/button/standard-button';
|
|
6
8
|
import * as ImageUtil from '../../util/image';
|
|
7
9
|
import debug from '../../util/logger';
|
|
8
10
|
import { messages } from '../i18n';
|
|
@@ -10,7 +12,7 @@ import EmojiErrorMessage from './EmojiErrorMessage';
|
|
|
10
12
|
import EmojiUploadPreview from './EmojiUploadPreview';
|
|
11
13
|
import FileChooser from './FileChooser';
|
|
12
14
|
import { UploadStatus } from './internal-types';
|
|
13
|
-
import { emojiChooseFileErrorMessage, emojiUpload, emojiUploadBottom, uploadChooseFileBrowse, uploadChooseFileEmojiName, uploadChooseFileMessage, uploadChooseFileRow } from './styles';
|
|
15
|
+
import { closeEmojiUploadButton, emojiChooseFileErrorMessage, emojiUpload, emojiUploadBottom, emojiUploadTop, uploadChooseFileBrowse, uploadChooseFileEmojiName, uploadChooseFileMessage, uploadChooseFileRow } from './styles';
|
|
14
16
|
const disallowedReplacementsMap = new Map([[':', ''], ['!', ''], ['@', ''], ['#', ''], ['%', ''], ['^', ''], ['&', ''], ['*', ''], ['(', ''], [')', ''], [' ', '_']]);
|
|
15
17
|
|
|
16
18
|
const sanitizeName = name => {
|
|
@@ -53,8 +55,21 @@ const ChooseEmojiFile = props => {
|
|
|
53
55
|
return jsx("div", {
|
|
54
56
|
css: emojiUpload
|
|
55
57
|
}, jsx("div", {
|
|
58
|
+
css: emojiUploadTop
|
|
59
|
+
}, jsx("span", {
|
|
56
60
|
css: uploadChooseFileMessage
|
|
57
61
|
}, jsx(FormattedMessage, messages.addCustomEmojiLabel, message => jsx("h5", null, message))), jsx("div", {
|
|
62
|
+
css: closeEmojiUploadButton
|
|
63
|
+
}, jsx(AkButton, {
|
|
64
|
+
onClick: onUploadCancelled,
|
|
65
|
+
"aria-describedby": formatMessage(messages.cancelLabel),
|
|
66
|
+
appearance: "subtle",
|
|
67
|
+
spacing: "none",
|
|
68
|
+
shouldFitContainer: true
|
|
69
|
+
}, jsx(CrossIcon, {
|
|
70
|
+
size: "small",
|
|
71
|
+
label: formatMessage(messages.cancelLabel)
|
|
72
|
+
})))), jsx("div", {
|
|
58
73
|
css: uploadChooseFileRow
|
|
59
74
|
}, jsx("span", {
|
|
60
75
|
css: uploadChooseFileEmojiName
|
|
@@ -109,7 +109,7 @@ export const emojiButton = css({
|
|
|
109
109
|
},
|
|
110
110
|
'&>span': {
|
|
111
111
|
borderRadius: `${borderRadius()}px`,
|
|
112
|
-
padding: '
|
|
112
|
+
padding: '6px',
|
|
113
113
|
// Scale sprite to fit regardless of default emoji size
|
|
114
114
|
[`&>.${emojiSprite}`]: {
|
|
115
115
|
height: '24px',
|
|
@@ -213,17 +213,26 @@ export const emojiUpload = css({
|
|
|
213
213
|
flexDirection: 'column',
|
|
214
214
|
justifyContent: 'space-around'
|
|
215
215
|
});
|
|
216
|
+
export const emojiUploadTop = css({
|
|
217
|
+
paddingBottom: '7px',
|
|
218
|
+
display: 'flex',
|
|
219
|
+
justifyContent: 'space-between',
|
|
220
|
+
alignItems: 'flex-end',
|
|
221
|
+
fontSize: '12px'
|
|
222
|
+
});
|
|
216
223
|
export const uploadChooseFileMessage = css({
|
|
217
|
-
color: token('color.text.subtle', N300)
|
|
218
|
-
|
|
219
|
-
|
|
224
|
+
color: token('color.text.subtle', N300)
|
|
225
|
+
});
|
|
226
|
+
export const closeEmojiUploadButton = css({
|
|
227
|
+
display: 'flex'
|
|
220
228
|
});
|
|
221
229
|
export const emojiUploadBottom = css({
|
|
222
230
|
fontSize: '11px'
|
|
223
231
|
});
|
|
224
232
|
export const uploadChooseFileRow = css({
|
|
225
233
|
display: 'flex',
|
|
226
|
-
justifyContent: 'space-between'
|
|
234
|
+
justifyContent: 'space-between',
|
|
235
|
+
paddingBottom: '7px'
|
|
227
236
|
});
|
|
228
237
|
export const uploadChooseFileEmojiName = css({
|
|
229
238
|
flex: '1 1 auto',
|
|
@@ -9,6 +9,7 @@ import LoadingEmojiComponent from '../common/LoadingEmojiComponent';
|
|
|
9
9
|
import { LoadingItem } from './EmojiPickerVirtualItems';
|
|
10
10
|
import { emojiPicker } from './styles';
|
|
11
11
|
import { UfoErrorBoundary } from '../common/UfoErrorBoundary';
|
|
12
|
+
import { defaultEmojiPickerSize } from '../../util/constants';
|
|
12
13
|
|
|
13
14
|
const emojiPickerModuleLoader = () => import(
|
|
14
15
|
/* webpackChunkName:"@atlaskit-internal_emojiPickerComponent" */
|
|
@@ -65,5 +66,10 @@ export class EmojiPickerInternal extends LoadingEmojiComponent {
|
|
|
65
66
|
}
|
|
66
67
|
|
|
67
68
|
}
|
|
69
|
+
|
|
70
|
+
_defineProperty(EmojiPickerInternal, "defaultProps", {
|
|
71
|
+
size: defaultEmojiPickerSize
|
|
72
|
+
});
|
|
73
|
+
|
|
68
74
|
const EmojiPicker = withAnalyticsEvents()(EmojiPickerInternal);
|
|
69
75
|
export default EmojiPicker;
|
|
@@ -5,7 +5,7 @@ import { unstable_batchedUpdates as batchedUpdates } from 'react-dom';
|
|
|
5
5
|
import { FormattedMessage } from 'react-intl-next';
|
|
6
6
|
import { getEmojiVariation } from '../../api/EmojiRepository';
|
|
7
7
|
import { supportsUploadFeature } from '../../api/EmojiResource';
|
|
8
|
-
import { customCategory, frequentCategory } from '../../util/constants';
|
|
8
|
+
import { customCategory, defaultEmojiPickerSize, frequentCategory } from '../../util/constants';
|
|
9
9
|
import { containsEmojiId, isPromise
|
|
10
10
|
/*, isEmojiIdEqual, isEmojiLoaded*/
|
|
11
11
|
, isEmojiDescription } from '../../util/type-helpers';
|
|
@@ -27,7 +27,8 @@ const EmojiPickerComponent = ({
|
|
|
27
27
|
onSelection,
|
|
28
28
|
onPickerRef,
|
|
29
29
|
hideToneSelector,
|
|
30
|
-
createAnalyticsEvent
|
|
30
|
+
createAnalyticsEvent,
|
|
31
|
+
size = defaultEmojiPickerSize
|
|
31
32
|
}) => {
|
|
32
33
|
const [filteredEmojis, setFilteredEmojis] = useState([]);
|
|
33
34
|
const [searchEmojis, setSearchEmojis] = useState([]);
|
|
@@ -463,7 +464,7 @@ const EmojiPickerComponent = ({
|
|
|
463
464
|
return jsx(LegacyEmojiContextProvider, {
|
|
464
465
|
emojiContextValue: emojiContextValue
|
|
465
466
|
}, jsx("div", {
|
|
466
|
-
css: emojiPicker(showPreview),
|
|
467
|
+
css: emojiPicker(showPreview, size),
|
|
467
468
|
ref: onPickerRef,
|
|
468
469
|
"data-emoji-picker-container": true
|
|
469
470
|
}, jsx(CategorySelector, {
|
|
@@ -496,7 +497,8 @@ const EmojiPickerComponent = ({
|
|
|
496
497
|
onDeleteEmoji: onDeleteEmoji,
|
|
497
498
|
onCloseDelete: onCloseDelete,
|
|
498
499
|
onFileChooserClicked: onFileChooserClicked,
|
|
499
|
-
onOpenUpload: onOpenUpload
|
|
500
|
+
onOpenUpload: onOpenUpload,
|
|
501
|
+
size: size
|
|
500
502
|
}), showPreview && jsx(EmojiPickerFooter, {
|
|
501
503
|
selectedEmoji: selectedEmoji
|
|
502
504
|
})));
|
|
@@ -4,13 +4,14 @@ import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
|
4
4
|
import React, { PureComponent } from 'react';
|
|
5
5
|
import { jsx } from '@emotion/react';
|
|
6
6
|
import { List as VirtualList } from 'react-virtualized/dist/commonjs/List';
|
|
7
|
-
import { customCategory, userCustomTitle } from '../../util/constants';
|
|
7
|
+
import { customCategory, defaultEmojiPickerSize, userCustomTitle } from '../../util/constants';
|
|
8
8
|
import { CategoryDescriptionMap } from './categories';
|
|
9
9
|
import CategoryTracker from './CategoryTracker';
|
|
10
10
|
import { sizes } from './EmojiPickerSizes';
|
|
11
11
|
import { CategoryHeadingItem, EmojisRowItem, LoadingItem, virtualItemRenderer } from './EmojiPickerVirtualItems';
|
|
12
12
|
import EmojiActions from '../common/EmojiActions';
|
|
13
13
|
import { emojiPickerList, virtualList } from './styles';
|
|
14
|
+
import { emojiPickerHeightOffset } from './utils';
|
|
14
15
|
/**
|
|
15
16
|
* Test id for wrapper Emoji Picker List div
|
|
16
17
|
*/
|
|
@@ -243,7 +244,8 @@ export default class EmojiPickerVirtualList extends PureComponent {
|
|
|
243
244
|
onCloseDelete,
|
|
244
245
|
onDeleteEmoji,
|
|
245
246
|
onFileChooserClicked,
|
|
246
|
-
onOpenUpload
|
|
247
|
+
onOpenUpload,
|
|
248
|
+
size = defaultEmojiPickerSize
|
|
247
249
|
} = this.props;
|
|
248
250
|
return jsx("div", {
|
|
249
251
|
ref: "root",
|
|
@@ -269,7 +271,7 @@ export default class EmojiPickerVirtualList extends PureComponent {
|
|
|
269
271
|
onChange: this.onSearch
|
|
270
272
|
}), jsx(VirtualList, {
|
|
271
273
|
ref: "list",
|
|
272
|
-
height: sizes.listHeight,
|
|
274
|
+
height: sizes.listHeight + emojiPickerHeightOffset(size),
|
|
273
275
|
overscanRowCount: 5,
|
|
274
276
|
rowCount: this.virtualItems.length,
|
|
275
277
|
rowHeight: this.rowSize,
|
|
@@ -288,5 +290,6 @@ _defineProperty(EmojiPickerVirtualList, "defaultProps", {
|
|
|
288
290
|
onEmojiActive: () => {},
|
|
289
291
|
onEmojiDelete: () => {},
|
|
290
292
|
onCategoryActivated: () => {},
|
|
291
|
-
onSearch: () => {}
|
|
293
|
+
onSearch: () => {},
|
|
294
|
+
size: defaultEmojiPickerSize
|
|
292
295
|
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { emojiPickerWidth } from '../../util/constants';
|
|
1
|
+
import { emojiPickerListHeight, emojiPickerWidth } from '../../util/constants';
|
|
2
2
|
export const sizes = {
|
|
3
|
-
listHeight:
|
|
3
|
+
listHeight: emojiPickerListHeight,
|
|
4
4
|
listWidth: emojiPickerWidth,
|
|
5
5
|
searchHeight: 52,
|
|
6
6
|
// 32px height + 10px padding top/bottom
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { css } from '@emotion/react';
|
|
2
2
|
import { token } from '@atlaskit/tokens';
|
|
3
|
-
import { B200, B300, N100A, N200, N30, N30A, N50, N900 } from '@atlaskit/theme/colors';
|
|
4
3
|
import { borderRadius } from '@atlaskit/theme/constants';
|
|
5
4
|
import { emojiPickerBorderColor, emojiPickerBoxShadow } from '../../util/shared-styles';
|
|
6
5
|
import { emojiSprite, placeholder, emojiNodeStyles } from '../common/styles';
|
|
7
|
-
import { emojiPickerHeight, emojiPickerHeightWithPreview, emojiPickerWidth } from '../../util/constants';
|
|
6
|
+
import { defaultEmojiPickerSize, emojiPickerHeight, emojiPickerHeightWithPreview, emojiPickerMinHeight, emojiPickerWidth } from '../../util/constants';
|
|
7
|
+
import { B200, B300, N100A, N200, N30, N30A, N50, N900 } from '@atlaskit/theme/colors';
|
|
8
|
+
import { emojiPickerHeightOffset } from './utils'; // Level 1 - picker
|
|
8
9
|
|
|
9
|
-
export const emojiPicker = hasPreview => {
|
|
10
|
+
export const emojiPicker = (hasPreview, size = defaultEmojiPickerSize) => {
|
|
11
|
+
const heightOffset = emojiPickerHeightOffset(size);
|
|
10
12
|
return css({
|
|
11
13
|
display: 'flex',
|
|
12
14
|
flexDirection: 'column',
|
|
@@ -15,10 +17,13 @@ export const emojiPicker = hasPreview => {
|
|
|
15
17
|
border: `${emojiPickerBorderColor} 1px solid`,
|
|
16
18
|
borderRadius: `${borderRadius()}px`,
|
|
17
19
|
boxShadow: emojiPickerBoxShadow,
|
|
18
|
-
height: `${hasPreview ? emojiPickerHeightWithPreview : emojiPickerHeight}px`,
|
|
20
|
+
height: `${hasPreview ? emojiPickerHeightWithPreview + heightOffset : emojiPickerHeight + heightOffset}px`,
|
|
19
21
|
width: `${emojiPickerWidth}px`,
|
|
20
22
|
marginBottom: '8px',
|
|
21
|
-
minWidth: `${emojiPickerWidth}px
|
|
23
|
+
minWidth: `${emojiPickerWidth}px`,
|
|
24
|
+
minHeight: `${emojiPickerMinHeight + heightOffset}px`,
|
|
25
|
+
maxHeight: 'calc(80vh - 86px)' // ensure showing full picker in small device: mobile header is 40px (Jira) - 56px(Confluence and Atlas), reaction picker height is 24px with margin 6px,
|
|
26
|
+
|
|
22
27
|
});
|
|
23
28
|
}; // Level 2
|
|
24
29
|
/// Category Selector
|
|
@@ -13,8 +13,14 @@ export const deleteEmojiLabel = 'delete-emoji';
|
|
|
13
13
|
export const MAX_ORDINAL = 100000;
|
|
14
14
|
export const defaultEmojiHeight = 20;
|
|
15
15
|
export const emojiPickerWidth = 350;
|
|
16
|
+
export const sizeGap = 80;
|
|
17
|
+
export const defaultEmojiPickerSize = 'medium';
|
|
18
|
+
export const emojiPickerMinHeight = 260;
|
|
16
19
|
export const emojiPickerHeight = 295;
|
|
17
|
-
export const
|
|
20
|
+
export const emojiPickerListHeight = emojiPickerHeight - 58; // picker height - actions height
|
|
21
|
+
|
|
22
|
+
export const emojiPickerPreviewHeight = 54;
|
|
23
|
+
export const emojiPickerHeightWithPreview = emojiPickerHeight + emojiPickerPreviewHeight;
|
|
18
24
|
export const localStoragePrefix = 'fabric.emoji';
|
|
19
25
|
export const selectedToneStorageKey = `${localStoragePrefix}.selectedTone`;
|
|
20
26
|
export const defaultCategories = ['PEOPLE', 'NATURE', 'FOODS', 'ACTIVITY', 'PLACES', 'OBJECTS', 'SYMBOLS', 'FLAGS'];
|
package/dist/es2019/version.json
CHANGED
|
@@ -7,6 +7,8 @@ import React, { Fragment, useEffect, useState } from 'react';
|
|
|
7
7
|
import { jsx } from '@emotion/react';
|
|
8
8
|
import { FormattedMessage, injectIntl } from 'react-intl-next';
|
|
9
9
|
import TextField from '@atlaskit/textfield';
|
|
10
|
+
import CrossIcon from '@atlaskit/icon/glyph/cross';
|
|
11
|
+
import AkButton from '@atlaskit/button/standard-button';
|
|
10
12
|
import * as ImageUtil from '../../util/image';
|
|
11
13
|
import debug from '../../util/logger';
|
|
12
14
|
import { messages } from '../i18n';
|
|
@@ -14,7 +16,7 @@ import EmojiErrorMessage from './EmojiErrorMessage';
|
|
|
14
16
|
import EmojiUploadPreview from './EmojiUploadPreview';
|
|
15
17
|
import FileChooser from './FileChooser';
|
|
16
18
|
import { UploadStatus } from './internal-types';
|
|
17
|
-
import { emojiChooseFileErrorMessage, emojiUpload, emojiUploadBottom, uploadChooseFileBrowse, uploadChooseFileEmojiName, uploadChooseFileMessage, uploadChooseFileRow } from './styles';
|
|
19
|
+
import { closeEmojiUploadButton, emojiChooseFileErrorMessage, emojiUpload, emojiUploadBottom, emojiUploadTop, uploadChooseFileBrowse, uploadChooseFileEmojiName, uploadChooseFileMessage, uploadChooseFileRow } from './styles';
|
|
18
20
|
var disallowedReplacementsMap = new Map([[':', ''], ['!', ''], ['@', ''], ['#', ''], ['%', ''], ['^', ''], ['&', ''], ['*', ''], ['(', ''], [')', ''], [' ', '_']]);
|
|
19
21
|
|
|
20
22
|
var sanitizeName = function sanitizeName(name) {
|
|
@@ -54,10 +56,23 @@ var ChooseEmojiFile = function ChooseEmojiFile(props) {
|
|
|
54
56
|
return jsx("div", {
|
|
55
57
|
css: emojiUpload
|
|
56
58
|
}, jsx("div", {
|
|
59
|
+
css: emojiUploadTop
|
|
60
|
+
}, jsx("span", {
|
|
57
61
|
css: uploadChooseFileMessage
|
|
58
62
|
}, jsx(FormattedMessage, messages.addCustomEmojiLabel, function (message) {
|
|
59
63
|
return jsx("h5", null, message);
|
|
60
64
|
})), jsx("div", {
|
|
65
|
+
css: closeEmojiUploadButton
|
|
66
|
+
}, jsx(AkButton, {
|
|
67
|
+
onClick: onUploadCancelled,
|
|
68
|
+
"aria-describedby": formatMessage(messages.cancelLabel),
|
|
69
|
+
appearance: "subtle",
|
|
70
|
+
spacing: "none",
|
|
71
|
+
shouldFitContainer: true
|
|
72
|
+
}, jsx(CrossIcon, {
|
|
73
|
+
size: "small",
|
|
74
|
+
label: formatMessage(messages.cancelLabel)
|
|
75
|
+
})))), jsx("div", {
|
|
61
76
|
css: uploadChooseFileRow
|
|
62
77
|
}, jsx("span", {
|
|
63
78
|
css: uploadChooseFileEmojiName
|