@atlaskit/emoji 65.0.0 → 65.2.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 (115) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/dist/cjs/components/common/CachingEmoji.js +84 -151
  3. package/dist/cjs/components/common/Emoji.js +2 -2
  4. package/dist/cjs/components/common/EmojiActions.js +129 -175
  5. package/dist/cjs/components/common/EmojiErrorMessage.js +23 -59
  6. package/dist/cjs/components/common/EmojiPreviewComponent.js +1 -0
  7. package/dist/cjs/components/common/EmojiUploadPicker.js +235 -293
  8. package/dist/cjs/components/common/FileChooser.js +34 -71
  9. package/dist/cjs/components/common/Popup.js +105 -154
  10. package/dist/cjs/components/common/ResourcedEmojiComponent.js +10 -5
  11. package/dist/cjs/components/common/RetryableButton.js +43 -64
  12. package/dist/cjs/components/common/ToneSelector.js +50 -89
  13. package/dist/cjs/components/common/styles.js +14 -16
  14. package/dist/cjs/components/hooks.js +16 -0
  15. package/dist/cjs/components/picker/EmojiPickerCategoryHeading.js +16 -48
  16. package/dist/cjs/components/picker/EmojiPickerComponent.js +496 -508
  17. package/dist/cjs/components/picker/EmojiPickerEmojiRow.js +33 -60
  18. package/dist/cjs/components/picker/EmojiPickerFooter.js +13 -46
  19. package/dist/cjs/components/picker/styles.js +16 -13
  20. package/dist/cjs/components/uploader/EmojiUploadComponent.js +124 -109
  21. package/dist/cjs/hooks/useEmojiContext.js +16 -0
  22. package/dist/cjs/hooks/usePrevious.js +16 -0
  23. package/dist/cjs/index.js +16 -0
  24. package/dist/cjs/util/constants.js +3 -1
  25. package/dist/cjs/version.json +1 -1
  26. package/dist/es2019/components/common/CachingEmoji.js +65 -112
  27. package/dist/es2019/components/common/Emoji.js +2 -2
  28. package/dist/es2019/components/common/EmojiActions.js +124 -150
  29. package/dist/es2019/components/common/EmojiErrorMessage.js +22 -26
  30. package/dist/es2019/components/common/EmojiPreviewComponent.js +1 -0
  31. package/dist/es2019/components/common/EmojiUploadPicker.js +190 -253
  32. package/dist/es2019/components/common/FileChooser.js +37 -40
  33. package/dist/es2019/components/common/Popup.js +89 -109
  34. package/dist/es2019/components/common/ResourcedEmojiComponent.js +5 -4
  35. package/dist/es2019/components/common/RetryableButton.js +43 -34
  36. package/dist/es2019/components/common/ToneSelector.js +46 -59
  37. package/dist/es2019/components/common/styles.js +9 -9
  38. package/dist/es2019/components/hooks.js +8 -0
  39. package/dist/es2019/components/picker/EmojiPickerCategoryHeading.js +13 -17
  40. package/dist/es2019/components/picker/EmojiPickerComponent.js +417 -497
  41. package/dist/es2019/components/picker/EmojiPickerEmojiRow.js +32 -35
  42. package/dist/es2019/components/picker/EmojiPickerFooter.js +11 -19
  43. package/dist/es2019/components/picker/styles.js +16 -14
  44. package/dist/es2019/components/uploader/EmojiUploadComponent.js +81 -91
  45. package/dist/es2019/hooks/useEmojiContext.js +3 -0
  46. package/dist/es2019/hooks/usePrevious.js +8 -0
  47. package/dist/es2019/index.js +4 -1
  48. package/dist/es2019/util/constants.js +1 -0
  49. package/dist/es2019/version.json +1 -1
  50. package/dist/esm/components/common/CachingEmoji.js +86 -156
  51. package/dist/esm/components/common/Emoji.js +2 -2
  52. package/dist/esm/components/common/EmojiActions.js +129 -176
  53. package/dist/esm/components/common/EmojiErrorMessage.js +21 -56
  54. package/dist/esm/components/common/EmojiPreviewComponent.js +1 -0
  55. package/dist/esm/components/common/EmojiUploadPicker.js +233 -299
  56. package/dist/esm/components/common/FileChooser.js +34 -70
  57. package/dist/esm/components/common/Popup.js +104 -155
  58. package/dist/esm/components/common/ResourcedEmojiComponent.js +8 -4
  59. package/dist/esm/components/common/RetryableButton.js +40 -60
  60. package/dist/esm/components/common/ToneSelector.js +50 -87
  61. package/dist/esm/components/common/styles.js +10 -10
  62. package/dist/esm/components/hooks.js +8 -0
  63. package/dist/esm/components/picker/EmojiPickerCategoryHeading.js +14 -43
  64. package/dist/esm/components/picker/EmojiPickerComponent.js +486 -526
  65. package/dist/esm/components/picker/EmojiPickerEmojiRow.js +31 -59
  66. package/dist/esm/components/picker/EmojiPickerFooter.js +14 -47
  67. package/dist/esm/components/picker/styles.js +16 -14
  68. package/dist/esm/components/uploader/EmojiUploadComponent.js +119 -113
  69. package/dist/esm/hooks/useEmojiContext.js +5 -0
  70. package/dist/esm/hooks/usePrevious.js +8 -0
  71. package/dist/esm/index.js +4 -1
  72. package/dist/esm/util/constants.js +1 -0
  73. package/dist/esm/version.json +1 -1
  74. package/dist/types/api/EmojiResource.d.ts +2 -3
  75. package/dist/types/components/common/CachingEmoji.d.ts +3 -13
  76. package/dist/types/components/common/Emoji.d.ts +1 -2
  77. package/dist/types/components/common/EmojiActions.d.ts +6 -17
  78. package/dist/types/components/common/EmojiErrorMessage.d.ts +3 -6
  79. package/dist/types/components/common/EmojiPreviewComponent.d.ts +2 -2
  80. package/dist/types/components/common/EmojiUploadPicker.d.ts +3 -27
  81. package/dist/types/components/common/FileChooser.d.ts +3 -5
  82. package/dist/types/components/common/LoadingEmojiComponent.d.ts +3 -0
  83. package/dist/types/components/common/Popup.d.ts +3 -20
  84. package/dist/types/components/common/ResourcedEmojiComponent.d.ts +23 -11
  85. package/dist/types/components/common/RetryableButton.d.ts +3 -7
  86. package/dist/types/components/common/ToneSelector.d.ts +4 -10
  87. package/dist/types/components/common/setSkinToneAriaLabelText.d.ts +1 -1
  88. package/dist/types/components/common/styles.d.ts +1 -3
  89. package/dist/types/components/hooks.d.ts +1 -0
  90. package/dist/types/components/picker/CategorySelector.d.ts +1 -1
  91. package/dist/types/components/picker/EmojiPicker.d.ts +12 -3
  92. package/dist/types/components/picker/EmojiPickerCategoryHeading.d.ts +3 -4
  93. package/dist/types/components/picker/EmojiPickerComponent.d.ts +14 -76
  94. package/dist/types/components/picker/EmojiPickerEmojiRow.d.ts +3 -4
  95. package/dist/types/components/picker/EmojiPickerFooter.d.ts +3 -5
  96. package/dist/types/components/picker/styles.d.ts +1 -1
  97. package/dist/types/components/typeahead/EmojiTypeAheadComponent.d.ts +18 -0
  98. package/dist/types/components/uploader/EmojiUploadComponent.d.ts +3 -17
  99. package/dist/types/components/uploader/EmojiUploader.d.ts +5 -7
  100. package/dist/types/hooks/useEmojiContext.d.ts +1 -0
  101. package/dist/types/hooks/usePrevious.d.ts +1 -0
  102. package/dist/types/index.d.ts +3 -1
  103. package/dist/types/types.d.ts +2 -1
  104. package/dist/types/util/constants.d.ts +1 -0
  105. package/docs/0-intro.tsx +35 -27
  106. package/docs/1-resourced-emoji.tsx +74 -0
  107. package/docs/2-emoji-picker.tsx +56 -0
  108. package/docs/3-typeahead.tsx +20 -0
  109. package/docs/4-emoji-provider.tsx +98 -0
  110. package/local-config-example.ts +3 -1
  111. package/package.json +19 -6
  112. package/dist/cjs/components/common/EmojiPreview.js +0 -194
  113. package/dist/es2019/components/common/EmojiPreview.js +0 -152
  114. package/dist/esm/components/common/EmojiPreview.js +0 -170
  115. package/dist/types/components/common/EmojiPreview.d.ts +0 -31
@@ -1,152 +0,0 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
-
3
- /** @jsx jsx */
4
- import { jsx } from '@emotion/core';
5
- import AkButton from '@atlaskit/button/standard-button';
6
- import AddIcon from '@atlaskit/icon/glyph/add';
7
- import { PureComponent } from 'react';
8
- import { FormattedMessage, injectIntl } from 'react-intl-next';
9
- import EmojiButton from '../../components/common/EmojiButton';
10
- import { messages } from '../i18n';
11
- import ToneSelector from './ToneSelector';
12
- import { setSkinToneAriaLabelText } from './setSkinToneAriaLabelText';
13
- import { addCustomEmoji, addCustomEmojiButton, emojiPickerAddEmoji, emojiPreview, toneSelectorContainer } from './styles';
14
- import { EmojiPreviewComponent } from './EmojiPreviewComponent';
15
- export class EmojiPreview extends PureComponent {
16
- constructor(...args) {
17
- super(...args);
18
-
19
- _defineProperty(this, "state", {
20
- selectingTone: false
21
- });
22
-
23
- _defineProperty(this, "onToneButtonClick", () => {
24
- this.setState({
25
- selectingTone: !this.state.selectingTone
26
- });
27
- });
28
-
29
- _defineProperty(this, "onToneSelected", toneValue => {
30
- this.setState({
31
- selectingTone: false
32
- });
33
-
34
- if (this.props.onToneSelected) {
35
- this.props.onToneSelected(toneValue);
36
- }
37
- });
38
-
39
- _defineProperty(this, "onMouseLeave", () => {
40
- const {
41
- selectingTone
42
- } = this.state;
43
- const {
44
- onToneSelectorCancelled
45
- } = this.props;
46
-
47
- if (selectingTone && onToneSelectorCancelled) {
48
- onToneSelectorCancelled();
49
- }
50
-
51
- this.setState({
52
- selectingTone: false
53
- });
54
- });
55
- }
56
-
57
- renderTones() {
58
- const {
59
- toneEmoji,
60
- selectedTone,
61
- intl
62
- } = this.props;
63
- const {
64
- formatMessage
65
- } = intl;
66
-
67
- if (!toneEmoji) {
68
- return null;
69
- }
70
-
71
- let previewEmoji = toneEmoji;
72
-
73
- if (selectedTone && previewEmoji.skinVariations) {
74
- previewEmoji = previewEmoji.skinVariations[(selectedTone || 1) - 1];
75
- }
76
-
77
- return jsx("div", {
78
- className: toneSelectorContainer
79
- }, this.state.selectingTone && jsx(ToneSelector, {
80
- emoji: toneEmoji,
81
- onToneSelected: this.onToneSelected,
82
- previewEmojiId: previewEmoji.id
83
- }), jsx(EmojiButton, {
84
- ariaExpanded: this.state.selectingTone,
85
- emoji: previewEmoji,
86
- selectOnHover: true,
87
- onSelected: this.onToneButtonClick,
88
- ariaLabelText: formatMessage(messages.emojiSelectSkinToneButtonAriaLabelText, {
89
- selectedTone: `${setSkinToneAriaLabelText(previewEmoji.name)} selected`
90
- })
91
- }));
92
- }
93
-
94
- renderEmojiPreview() {
95
- const {
96
- selectingTone
97
- } = this.state;
98
- const {
99
- emoji,
100
- uploadEnabled
101
- } = this.props;
102
-
103
- if (!emoji || selectingTone || uploadEnabled) {
104
- return null;
105
- }
106
-
107
- return jsx(EmojiPreviewComponent, {
108
- emoji: emoji
109
- });
110
- } // note: emoji-picker-add-emoji className is used by pollinator synthetic checks
111
-
112
-
113
- renderAddOwnEmoji() {
114
- const {
115
- onOpenUpload,
116
- uploadEnabled,
117
- intl
118
- } = this.props;
119
- const {
120
- selectingTone
121
- } = this.state;
122
- const {
123
- formatMessage
124
- } = intl;
125
-
126
- if (!uploadEnabled || selectingTone) {
127
- return null;
128
- }
129
-
130
- return jsx("div", {
131
- css: addCustomEmoji
132
- }, jsx(FormattedMessage, messages.addCustomEmojiLabel, label => jsx(AkButton, {
133
- onClick: onOpenUpload,
134
- iconBefore: jsx(AddIcon, {
135
- label: formatMessage(messages.addCustomEmojiLabel),
136
- size: "small"
137
- }),
138
- appearance: "subtle",
139
- css: addCustomEmojiButton,
140
- className: emojiPickerAddEmoji
141
- }, label)));
142
- }
143
-
144
- render() {
145
- return jsx("div", {
146
- css: emojiPreview,
147
- onMouseLeave: this.onMouseLeave
148
- }, this.renderAddOwnEmoji(), this.renderEmojiPreview(), this.renderTones());
149
- }
150
-
151
- }
152
- export default injectIntl(EmojiPreview);
@@ -1,170 +0,0 @@
1
- import _classCallCheck from "@babel/runtime/helpers/classCallCheck";
2
- import _createClass from "@babel/runtime/helpers/createClass";
3
- import _assertThisInitialized from "@babel/runtime/helpers/assertThisInitialized";
4
- import _inherits from "@babel/runtime/helpers/inherits";
5
- import _possibleConstructorReturn from "@babel/runtime/helpers/possibleConstructorReturn";
6
- import _getPrototypeOf from "@babel/runtime/helpers/getPrototypeOf";
7
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
8
-
9
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
10
-
11
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
12
-
13
- /** @jsx jsx */
14
- import { jsx } from '@emotion/core';
15
- import AkButton from '@atlaskit/button/standard-button';
16
- import AddIcon from '@atlaskit/icon/glyph/add';
17
- import { PureComponent } from 'react';
18
- import { FormattedMessage, injectIntl } from 'react-intl-next';
19
- import EmojiButton from '../../components/common/EmojiButton';
20
- import { messages } from '../i18n';
21
- import ToneSelector from './ToneSelector';
22
- import { setSkinToneAriaLabelText } from './setSkinToneAriaLabelText';
23
- import { addCustomEmoji, addCustomEmojiButton, emojiPickerAddEmoji, emojiPreview, toneSelectorContainer } from './styles';
24
- import { EmojiPreviewComponent } from './EmojiPreviewComponent';
25
- export var EmojiPreview = /*#__PURE__*/function (_PureComponent) {
26
- _inherits(EmojiPreview, _PureComponent);
27
-
28
- var _super = _createSuper(EmojiPreview);
29
-
30
- function EmojiPreview() {
31
- var _this;
32
-
33
- _classCallCheck(this, EmojiPreview);
34
-
35
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
36
- args[_key] = arguments[_key];
37
- }
38
-
39
- _this = _super.call.apply(_super, [this].concat(args));
40
-
41
- _defineProperty(_assertThisInitialized(_this), "state", {
42
- selectingTone: false
43
- });
44
-
45
- _defineProperty(_assertThisInitialized(_this), "onToneButtonClick", function () {
46
- _this.setState({
47
- selectingTone: !_this.state.selectingTone
48
- });
49
- });
50
-
51
- _defineProperty(_assertThisInitialized(_this), "onToneSelected", function (toneValue) {
52
- _this.setState({
53
- selectingTone: false
54
- });
55
-
56
- if (_this.props.onToneSelected) {
57
- _this.props.onToneSelected(toneValue);
58
- }
59
- });
60
-
61
- _defineProperty(_assertThisInitialized(_this), "onMouseLeave", function () {
62
- var selectingTone = _this.state.selectingTone;
63
- var onToneSelectorCancelled = _this.props.onToneSelectorCancelled;
64
-
65
- if (selectingTone && onToneSelectorCancelled) {
66
- onToneSelectorCancelled();
67
- }
68
-
69
- _this.setState({
70
- selectingTone: false
71
- });
72
- });
73
-
74
- return _this;
75
- }
76
-
77
- _createClass(EmojiPreview, [{
78
- key: "renderTones",
79
- value: function renderTones() {
80
- var _this$props = this.props,
81
- toneEmoji = _this$props.toneEmoji,
82
- selectedTone = _this$props.selectedTone,
83
- intl = _this$props.intl;
84
- var formatMessage = intl.formatMessage;
85
-
86
- if (!toneEmoji) {
87
- return null;
88
- }
89
-
90
- var previewEmoji = toneEmoji;
91
-
92
- if (selectedTone && previewEmoji.skinVariations) {
93
- previewEmoji = previewEmoji.skinVariations[(selectedTone || 1) - 1];
94
- }
95
-
96
- return jsx("div", {
97
- className: toneSelectorContainer
98
- }, this.state.selectingTone && jsx(ToneSelector, {
99
- emoji: toneEmoji,
100
- onToneSelected: this.onToneSelected,
101
- previewEmojiId: previewEmoji.id
102
- }), jsx(EmojiButton, {
103
- ariaExpanded: this.state.selectingTone,
104
- emoji: previewEmoji,
105
- selectOnHover: true,
106
- onSelected: this.onToneButtonClick,
107
- ariaLabelText: formatMessage(messages.emojiSelectSkinToneButtonAriaLabelText, {
108
- selectedTone: "".concat(setSkinToneAriaLabelText(previewEmoji.name), " selected")
109
- })
110
- }));
111
- }
112
- }, {
113
- key: "renderEmojiPreview",
114
- value: function renderEmojiPreview() {
115
- var selectingTone = this.state.selectingTone;
116
- var _this$props2 = this.props,
117
- emoji = _this$props2.emoji,
118
- uploadEnabled = _this$props2.uploadEnabled;
119
-
120
- if (!emoji || selectingTone || uploadEnabled) {
121
- return null;
122
- }
123
-
124
- return jsx(EmojiPreviewComponent, {
125
- emoji: emoji
126
- });
127
- } // note: emoji-picker-add-emoji className is used by pollinator synthetic checks
128
-
129
- }, {
130
- key: "renderAddOwnEmoji",
131
- value: function renderAddOwnEmoji() {
132
- var _this$props3 = this.props,
133
- onOpenUpload = _this$props3.onOpenUpload,
134
- uploadEnabled = _this$props3.uploadEnabled,
135
- intl = _this$props3.intl;
136
- var selectingTone = this.state.selectingTone;
137
- var formatMessage = intl.formatMessage;
138
-
139
- if (!uploadEnabled || selectingTone) {
140
- return null;
141
- }
142
-
143
- return jsx("div", {
144
- css: addCustomEmoji
145
- }, jsx(FormattedMessage, messages.addCustomEmojiLabel, function (label) {
146
- return jsx(AkButton, {
147
- onClick: onOpenUpload,
148
- iconBefore: jsx(AddIcon, {
149
- label: formatMessage(messages.addCustomEmojiLabel),
150
- size: "small"
151
- }),
152
- appearance: "subtle",
153
- css: addCustomEmojiButton,
154
- className: emojiPickerAddEmoji
155
- }, label);
156
- }));
157
- }
158
- }, {
159
- key: "render",
160
- value: function render() {
161
- return jsx("div", {
162
- css: emojiPreview,
163
- onMouseLeave: this.onMouseLeave
164
- }, this.renderAddOwnEmoji(), this.renderEmojiPreview(), this.renderTones());
165
- }
166
- }]);
167
-
168
- return EmojiPreview;
169
- }(PureComponent);
170
- export default injectIntl(EmojiPreview);
@@ -1,31 +0,0 @@
1
- import { PureComponent } from 'react';
2
- import { WrappedComponentProps } from 'react-intl-next';
3
- import { EmojiDescription, EmojiDescriptionWithVariations, OnToneSelected, OnToneSelectorCancelled, ToneSelection } from '../../types';
4
- export interface Props {
5
- emoji?: EmojiDescription;
6
- toneEmoji?: EmojiDescriptionWithVariations;
7
- selectedTone?: ToneSelection;
8
- onToneSelected?: OnToneSelected;
9
- onToneSelectorCancelled?: OnToneSelectorCancelled;
10
- uploadEnabled?: boolean;
11
- onOpenUpload?: () => void;
12
- }
13
- export interface State {
14
- selectingTone: boolean;
15
- }
16
- export declare class EmojiPreview extends PureComponent<Props & WrappedComponentProps, State> {
17
- state: {
18
- selectingTone: boolean;
19
- };
20
- onToneButtonClick: () => void;
21
- onToneSelected: (toneValue: number) => void;
22
- onMouseLeave: () => void;
23
- renderTones(): JSX.Element | null;
24
- renderEmojiPreview(): JSX.Element | null;
25
- renderAddOwnEmoji(): JSX.Element | null;
26
- render(): JSX.Element;
27
- }
28
- declare const _default: import("react").FC<import("react-intl-next").WithIntlProps<Props & WrappedComponentProps<"intl">>> & {
29
- WrappedComponent: import("react").ComponentType<Props & WrappedComponentProps<"intl">>;
30
- };
31
- export default _default;