@atlaskit/emoji 64.2.1 → 64.3.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 (137) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/cjs/api/media/SiteEmojiResource.js +10 -2
  3. package/dist/cjs/components/common/CachingEmoji.js +6 -8
  4. package/dist/cjs/components/common/DeleteButton.js +9 -13
  5. package/dist/cjs/components/common/Emoji.js +18 -36
  6. package/dist/cjs/components/common/EmojiActions.js +26 -31
  7. package/dist/cjs/components/common/EmojiButton.js +7 -7
  8. package/dist/cjs/components/common/EmojiDeletePreview.js +20 -26
  9. package/dist/cjs/components/common/EmojiErrorMessage.js +10 -14
  10. package/dist/cjs/components/common/EmojiPlaceholder.js +5 -12
  11. package/dist/cjs/components/common/EmojiPreview.js +20 -40
  12. package/dist/cjs/components/common/EmojiPreviewComponent.js +34 -0
  13. package/dist/cjs/components/common/EmojiUploadPicker.js +26 -24
  14. package/dist/cjs/components/common/EmojiUploadPreview.js +22 -28
  15. package/dist/cjs/components/common/ResourcedEmojiComponent.js +17 -12
  16. package/dist/cjs/components/common/RetryableButton.js +12 -18
  17. package/dist/cjs/components/common/Scrollable.js +5 -10
  18. package/dist/cjs/components/common/styles.js +210 -266
  19. package/dist/cjs/components/picker/CategorySelector.js +13 -12
  20. package/dist/cjs/components/picker/EmojiPicker.js +6 -6
  21. package/dist/cjs/components/picker/EmojiPickerCategoryHeading.js +8 -14
  22. package/dist/cjs/components/picker/EmojiPickerComponent.js +24 -28
  23. package/dist/cjs/components/picker/EmojiPickerEmojiRow.js +8 -12
  24. package/dist/cjs/components/picker/EmojiPickerFooter.js +8 -14
  25. package/dist/cjs/components/picker/EmojiPickerList.js +28 -9
  26. package/dist/cjs/components/picker/EmojiPickerListSearch.js +10 -8
  27. package/dist/cjs/components/picker/EmojiPickerVirtualItems.js +9 -15
  28. package/dist/cjs/components/picker/styles.js +113 -161
  29. package/dist/cjs/components/typeahead/EmojiTypeAheadComponent.js +23 -24
  30. package/dist/cjs/components/typeahead/EmojiTypeAheadItem.js +10 -13
  31. package/dist/cjs/components/typeahead/EmojiTypeAheadList.js +17 -22
  32. package/dist/cjs/components/typeahead/styles.js +17 -19
  33. package/dist/cjs/components/uploader/EmojiUploadComponent.js +10 -16
  34. package/dist/cjs/components/uploader/styles.js +4 -4
  35. package/dist/cjs/index.js +3 -3
  36. package/dist/cjs/version.json +1 -1
  37. package/dist/es2019/api/media/SiteEmojiResource.js +10 -2
  38. package/dist/es2019/components/common/CachingEmoji.js +5 -7
  39. package/dist/es2019/components/common/DeleteButton.js +8 -6
  40. package/dist/es2019/components/common/Emoji.js +19 -34
  41. package/dist/es2019/components/common/EmojiActions.js +26 -24
  42. package/dist/es2019/components/common/EmojiButton.js +6 -6
  43. package/dist/es2019/components/common/EmojiDeletePreview.js +20 -20
  44. package/dist/es2019/components/common/EmojiErrorMessage.js +9 -8
  45. package/dist/es2019/components/common/EmojiPlaceholder.js +5 -8
  46. package/dist/es2019/components/common/EmojiPreview.js +19 -35
  47. package/dist/es2019/components/common/EmojiPreviewComponent.js +21 -0
  48. package/dist/es2019/components/common/EmojiUploadPicker.js +25 -22
  49. package/dist/es2019/components/common/EmojiUploadPreview.js +22 -22
  50. package/dist/es2019/components/common/ResourcedEmojiComponent.js +16 -11
  51. package/dist/es2019/components/common/RetryableButton.js +10 -11
  52. package/dist/es2019/components/common/Scrollable.js +6 -10
  53. package/dist/es2019/components/common/styles.js +195 -262
  54. package/dist/es2019/components/picker/CategorySelector.js +15 -12
  55. package/dist/es2019/components/picker/EmojiPicker.js +7 -5
  56. package/dist/es2019/components/picker/EmojiPickerCategoryHeading.js +8 -8
  57. package/dist/es2019/components/picker/EmojiPickerComponent.js +24 -19
  58. package/dist/es2019/components/picker/EmojiPickerEmojiRow.js +8 -7
  59. package/dist/es2019/components/picker/EmojiPickerFooter.js +8 -8
  60. package/dist/es2019/components/picker/EmojiPickerList.js +28 -8
  61. package/dist/es2019/components/picker/EmojiPickerListSearch.js +11 -8
  62. package/dist/es2019/components/picker/EmojiPickerVirtualItems.js +10 -8
  63. package/dist/es2019/components/picker/styles.js +112 -160
  64. package/dist/es2019/components/typeahead/EmojiTypeAheadComponent.js +22 -16
  65. package/dist/es2019/components/typeahead/EmojiTypeAheadItem.js +12 -13
  66. package/dist/es2019/components/typeahead/EmojiTypeAheadList.js +18 -19
  67. package/dist/es2019/components/typeahead/styles.js +14 -15
  68. package/dist/es2019/components/uploader/EmojiUploadComponent.js +10 -9
  69. package/dist/es2019/components/uploader/styles.js +4 -4
  70. package/dist/es2019/index.js +2 -1
  71. package/dist/es2019/version.json +1 -1
  72. package/dist/esm/api/media/SiteEmojiResource.js +10 -2
  73. package/dist/esm/components/common/CachingEmoji.js +5 -7
  74. package/dist/esm/components/common/DeleteButton.js +8 -6
  75. package/dist/esm/components/common/Emoji.js +18 -27
  76. package/dist/esm/components/common/EmojiActions.js +26 -25
  77. package/dist/esm/components/common/EmojiButton.js +6 -6
  78. package/dist/esm/components/common/EmojiDeletePreview.js +19 -20
  79. package/dist/esm/components/common/EmojiErrorMessage.js +9 -8
  80. package/dist/esm/components/common/EmojiPlaceholder.js +5 -8
  81. package/dist/esm/components/common/EmojiPreview.js +19 -33
  82. package/dist/esm/components/common/EmojiPreviewComponent.js +20 -0
  83. package/dist/esm/components/common/EmojiUploadPicker.js +27 -25
  84. package/dist/esm/components/common/EmojiUploadPreview.js +21 -22
  85. package/dist/esm/components/common/ResourcedEmojiComponent.js +16 -10
  86. package/dist/esm/components/common/RetryableButton.js +11 -12
  87. package/dist/esm/components/common/Scrollable.js +6 -10
  88. package/dist/esm/components/common/styles.js +192 -242
  89. package/dist/esm/components/picker/CategorySelector.js +14 -12
  90. package/dist/esm/components/picker/EmojiPicker.js +6 -5
  91. package/dist/esm/components/picker/EmojiPickerCategoryHeading.js +8 -8
  92. package/dist/esm/components/picker/EmojiPickerComponent.js +24 -19
  93. package/dist/esm/components/picker/EmojiPickerEmojiRow.js +8 -7
  94. package/dist/esm/components/picker/EmojiPickerFooter.js +8 -8
  95. package/dist/esm/components/picker/EmojiPickerList.js +29 -8
  96. package/dist/esm/components/picker/EmojiPickerListSearch.js +10 -8
  97. package/dist/esm/components/picker/EmojiPickerVirtualItems.js +9 -8
  98. package/dist/esm/components/picker/styles.js +108 -149
  99. package/dist/esm/components/typeahead/EmojiTypeAheadComponent.js +22 -16
  100. package/dist/esm/components/typeahead/EmojiTypeAheadItem.js +11 -13
  101. package/dist/esm/components/typeahead/EmojiTypeAheadList.js +17 -19
  102. package/dist/esm/components/typeahead/styles.js +14 -14
  103. package/dist/esm/components/uploader/EmojiUploadComponent.js +9 -9
  104. package/dist/esm/components/uploader/styles.js +4 -4
  105. package/dist/esm/index.js +2 -1
  106. package/dist/esm/version.json +1 -1
  107. package/dist/types/components/common/CachingEmoji.d.ts +8 -6
  108. package/dist/types/components/common/EmojiActions.d.ts +2 -3
  109. package/dist/types/components/common/EmojiDeletePreview.d.ts +3 -3
  110. package/dist/types/components/common/EmojiErrorMessage.d.ts +2 -1
  111. package/dist/types/components/common/EmojiPreview.d.ts +2 -3
  112. package/dist/types/components/common/EmojiPreviewComponent.d.ts +7 -0
  113. package/dist/types/components/common/EmojiUploadPreview.d.ts +3 -3
  114. package/dist/types/components/common/ResourcedEmojiComponent.d.ts +6 -0
  115. package/dist/types/components/common/RetryableButton.d.ts +0 -2
  116. package/dist/types/components/common/styles.d.ts +44 -44
  117. package/dist/types/components/picker/EmojiPicker.d.ts +2 -3
  118. package/dist/types/components/picker/EmojiPickerComponent.d.ts +6 -0
  119. package/dist/types/components/picker/EmojiPickerList.d.ts +10 -0
  120. package/dist/types/components/picker/styles.d.ts +17 -18
  121. package/dist/types/components/typeahead/EmojiTypeAheadComponent.d.ts +6 -0
  122. package/dist/types/components/typeahead/styles.d.ts +8 -7
  123. package/dist/types/components/uploader/styles.d.ts +2 -2
  124. package/dist/types/index.d.ts +1 -1
  125. package/package.json +8 -9
  126. package/dist/cjs/components/picker/EmojiPickerPreview.js +0 -87
  127. package/dist/cjs/context/EmojiContext.js +0 -11
  128. package/dist/cjs/context/EmojiContextProvider.js +0 -22
  129. package/dist/es2019/components/picker/EmojiPickerPreview.js +0 -43
  130. package/dist/es2019/context/EmojiContext.js +0 -2
  131. package/dist/es2019/context/EmojiContextProvider.js +0 -10
  132. package/dist/esm/components/picker/EmojiPickerPreview.js +0 -67
  133. package/dist/esm/context/EmojiContext.js +0 -2
  134. package/dist/esm/context/EmojiContextProvider.js +0 -9
  135. package/dist/types/components/picker/EmojiPickerPreview.d.ts +0 -9
  136. package/dist/types/context/EmojiContext.d.ts +0 -4
  137. package/dist/types/context/EmojiContextProvider.d.ts +0 -7
@@ -1,14 +1,12 @@
1
- import { style } from 'typestyle';
1
+ import { css } from '@emotion/core';
2
2
  import { token } from '@atlaskit/tokens';
3
3
  import { borderRadius } from '@atlaskit/theme/constants';
4
- import * as colors from '@atlaskit/theme/colors';
5
- import { akEmojiSelectedBackgroundColor, emojiPickerBorderColor, emojiPickerBoxShadow } from '../../util/shared-styles';
6
- import { emojiSprite, placeholder, emojiNode } from '../common/styles';
4
+ import { emojiPickerBorderColor, emojiPickerBoxShadow } from '../../util/shared-styles';
5
+ import { emojiSprite, placeholder, emojiNodeStyles } from '../common/styles';
7
6
  import { emojiPickerHeight, emojiPickerWidth } from '../../util/constants';
8
- export const active = 'emoji-picker-active';
9
- export const disable = 'emoji-picker-disable'; // Level 1 - picker
7
+ import { B200, B300, N100A, N200, N30, N30A, N50, N900 } from '@atlaskit/theme/colors'; // Level 1 - picker
10
8
 
11
- export const emojiPicker = style({
9
+ export const emojiPicker = css({
12
10
  display: 'flex',
13
11
  flexDirection: 'column',
14
12
  justifyContent: 'space-between',
@@ -24,73 +22,64 @@ export const emojiPicker = style({
24
22
  /// Category Selector
25
23
 
26
24
  export const addButton = 'emoji-picker-add-button';
27
- export const categorySelector = style({
25
+ export const categorySelector = css({
28
26
  flex: '0 0 auto',
29
- backgroundColor: token('elevation.surface.sunken', colors.N30),
30
- $nest: {
31
- ul: {
32
- listStyle: 'none',
33
- margin: '0 4px',
34
- padding: '3px 0',
35
- display: 'flex',
36
- flexDirection: 'row',
37
- justifyContent: 'space-around'
38
- },
39
- li: {
40
- display: 'inline-block',
41
- margin: 0,
42
- padding: 0,
43
- $nest: {
44
- button: {
45
- verticalAlign: 'middle'
46
- }
47
- }
48
- },
49
- [`.${addButton}`]: {
50
- color: token('color.text.subtlest', colors.N200),
51
- margin: '0 0 0 5px',
27
+ backgroundColor: token('elevation.surface.sunken', N30),
28
+ ul: {
29
+ listStyle: 'none',
30
+ margin: '0 4px',
31
+ padding: '3px 0',
32
+ display: 'flex',
33
+ flexDirection: 'row',
34
+ justifyContent: 'space-around'
35
+ },
36
+ li: {
37
+ display: 'inline-block',
38
+ margin: 0,
39
+ padding: 0,
40
+ button: {
52
41
  verticalAlign: 'middle'
53
42
  }
43
+ },
44
+ [`.${addButton}`]: {
45
+ color: token('color.text.subtlest', N200),
46
+ margin: '0 0 0 5px',
47
+ verticalAlign: 'middle'
54
48
  }
55
49
  });
56
- export const category = style({
50
+ export const active = css({
51
+ color: token('color.text.selected', B300),
52
+ ['&:hover']: {
53
+ color: token('color.text.selected', B300)
54
+ }
55
+ });
56
+ export const disable = css({
57
+ color: token('color.text.subtlest', N50),
58
+ cursor: 'default',
59
+ ['&:hover']: {
60
+ color: token('color.text.subtlest', N50)
61
+ }
62
+ });
63
+ export const categoryStyles = css({
57
64
  backgroundColor: 'transparent',
58
65
  border: 0,
59
- color: token('color.text.subtlest', colors.N100A),
66
+ color: token('color.text.subtlest', N100A),
60
67
  cursor: 'pointer',
61
68
  margin: '2px 0',
62
69
  padding: 0,
63
70
  transition: 'color 0.2s ease',
64
- $nest: {
65
- /* Firefox */
66
- ['&::-moz-focus-inner']: {
67
- border: '0 none',
68
- padding: 0
69
- },
70
- [`&.${active}`]: {
71
- color: token('color.text.brand', colors.B300),
72
- $nest: {
73
- ['&:hover']: {
74
- color: token('color.text.brand', colors.B300)
75
- }
76
- }
77
- },
78
- ['&:hover']: {
79
- color: token('color.text.brand', colors.B200)
80
- },
81
- [`&.${disable}`]: {
82
- color: token('color.text.subtlest', colors.N50),
83
- cursor: 'default',
84
- $nest: {
85
- ['&:hover']: {
86
- color: token('color.text.subtlest', colors.N50)
87
- }
88
- }
89
- }
71
+
72
+ /* Firefox */
73
+ ['&::-moz-focus-inner']: {
74
+ border: '0 none',
75
+ padding: 0
76
+ },
77
+ ['&:hover']: {
78
+ color: token('color.text.selected', B200)
90
79
  }
91
80
  }); /// EmojiPickerList
92
81
 
93
- export const emojiPickerList = style({
82
+ export const emojiPickerList = css({
94
83
  display: 'flex',
95
84
  flexDirection: 'column',
96
85
  flex: '1 1 auto',
@@ -98,139 +87,102 @@ export const emojiPickerList = style({
98
87
  height: '0'
99
88
  }); // react-virtualized enables focus style by default - turn it off
100
89
 
101
- export const virtualList = style({
102
- $nest: {
103
- '&:focus': {
104
- outline: 'none'
105
- }
90
+ export const virtualList = css({
91
+ '&:focus': {
92
+ outline: 'none'
106
93
  }
107
94
  }); //// Search
108
95
 
109
- export const searchIcon = 'search-icon';
110
- export const input = 'input';
111
- export const pickerSearch = style({
96
+ export const searchIcon = css({
97
+ opacity: 0.5
98
+ });
99
+ export const input = css({
112
100
  boxSizing: 'border-box',
113
- padding: '10px 10px 11px 10px',
101
+ color: 'inherit',
102
+ cursor: 'inherit',
103
+ fontSize: '14px',
104
+ outline: 'none',
105
+ padding: '1px 0 2px 6px',
114
106
  width: '100%',
115
- $nest: {
116
- [`.${searchIcon}`]: {
117
- opacity: 0.5
118
- },
119
- [`.${input}`]: {
120
- boxSizing: 'border-box',
121
- color: 'inherit',
122
- cursor: 'inherit',
123
- fontSize: '14px',
124
- outline: 'none',
125
- padding: '1px 0 2px 6px',
126
- width: '100%',
127
- $nest: {
128
- ['&:invalid']: {
129
- boxShadow: 'none'
130
- },
131
- ['&::-ms-clear']: {
132
- display: 'none'
133
- }
134
- }
135
- }
107
+ ['&:invalid']: {
108
+ boxShadow: 'none'
109
+ },
110
+ ['&::-ms-clear']: {
111
+ display: 'none'
136
112
  }
113
+ });
114
+ export const pickerSearch = css({
115
+ boxSizing: 'border-box',
116
+ padding: '10px 10px 11px 10px',
117
+ width: '100%'
137
118
  }); //// Loading/Spinner
138
119
 
139
- export const emojiPickerSpinner = style({
120
+ export const emojiPickerSpinner = css({
140
121
  display: 'flex',
141
122
  width: '100%',
142
123
  height: '150px',
143
124
  justifyContent: 'center',
144
125
  alignItems: 'center',
145
- $nest: {
146
- '>div': {
147
- flex: '0 0 auto'
148
- }
126
+ '>div': {
127
+ flex: '0 0 auto'
149
128
  }
150
129
  }); //// Category/Result
151
130
 
152
- export const emojiPickerRow = style({
131
+ export const emojiPickerRow = css({
153
132
  marginLeft: '8px'
154
133
  });
155
- export const emojiCategoryTitle = style({
134
+ export const emojiCategoryTitle = css({
156
135
  boxSizing: 'border-box',
157
- color: token('color.text', colors.N900),
136
+ color: token('color.text', N900),
158
137
  fontSize: '14px',
159
138
  padding: '5px 8px',
160
139
  textTransform: 'lowercase',
161
- $nest: {
162
- '&:first-letter': {
163
- textTransform: 'uppercase'
164
- }
140
+ '&:first-letter': {
141
+ textTransform: 'uppercase'
165
142
  }
166
143
  });
167
- export const emojiItem = style({
144
+ export const emojiItem = css({
168
145
  display: 'inline-block',
169
146
  textAlign: 'center',
170
147
  width: '40px',
171
- $nest: {
172
- [`&>.${emojiNode}`]: {
173
- cursor: 'pointer',
174
- padding: '8px',
175
- borderRadius: '5px',
176
- width: '24px',
177
- height: '24px',
178
- $nest: {
179
- // Fit non-square emoji to square
180
- '&>img': {
181
- position: 'relative',
182
- left: '50%',
183
- top: '50%',
184
- transform: 'translateX(-50%) translateY(-50%)',
185
- maxHeight: '24px',
186
- maxWidth: '24px',
187
- display: 'block'
188
- },
189
- // Scale sprite to fit regardless of default emoji size
190
- [`&>.${emojiSprite}`]: {
191
- height: '24px',
192
- width: '24px'
193
- }
194
- }
195
- },
196
- [`&>.${placeholder}`]: {
197
- padding: '0',
198
- margin: '7px',
199
- minWidth: '24px',
200
- maxWidth: '24px'
201
- }
202
- }
203
- });
204
- export const addEmoji = style({
205
- border: '2px dashed #ccc',
206
- borderRadius: `${borderRadius()}px`,
207
- backgroundColor: 'transparent',
208
- width: '32px',
209
- height: '32px',
210
- padding: 0,
211
- margin: '4px',
212
- verticalAlign: 'middle',
213
- $nest: {
214
- '&:hover': {
215
- backgroundColor: akEmojiSelectedBackgroundColor
216
- },
217
- '&:focus': {
218
- outline: '0'
219
- },
220
- span: {
221
- backgroundColor: 'inherit'
222
- }
148
+ [`& .${emojiNodeStyles}`]: {
149
+ cursor: 'pointer',
150
+ padding: '8px',
151
+ borderRadius: '5px',
152
+ width: '24px',
153
+ height: '24px'
154
+ },
155
+ [`& .${placeholder}`]: {
156
+ padding: '0',
157
+ margin: '7px',
158
+ minWidth: '24px',
159
+ maxWidth: '24px'
160
+ },
161
+ // Fit non-square emoji to square
162
+ [`& .${emojiNodeStyles} > img`]: {
163
+ position: 'relative',
164
+ left: '50%',
165
+ top: '50%',
166
+ transform: 'translateX(-50%) translateY(-50%)',
167
+ maxHeight: '24px',
168
+ maxWidth: '24px',
169
+ display: 'block'
170
+ },
171
+ // Scale sprite to fit regardless of default emoji size
172
+ [`& .${emojiNodeStyles} > .${emojiSprite}`]: {
173
+ height: '24px',
174
+ width: '24px'
223
175
  }
224
176
  }); /// Footer
225
177
 
226
- export const emojiPickerFooter = style({
178
+ export const emojiPickerFooter = css({
227
179
  flex: '0 0 auto'
228
180
  });
229
- export const emojiPickerFooterWithTopShadow = style({
230
- borderTop: `2px solid ${token('color.border', colors.N30A)}`,
181
+ export const emojiPickerFooterWithTopShadow = css({
182
+ borderTop: `2px solid ${token('color.border', N30A)}`,
231
183
  boxShadow: `0px -1px 1px 0px ${token('color.border', 'rgba(0, 0, 0, 0.1)')}`
232
184
  });
233
- export const emojiActionsContainerWithBottomShadow = style({
234
- borderBottom: `2px solid ${token('color.border', colors.N30A)}`,
185
+ export const emojiActionsContainerWithBottomShadow = css({
186
+ borderBottom: `2px solid ${token('color.border', N30A)}`,
235
187
  boxShadow: `0px 1px 1px 0px ${token('color.border', 'rgba(0, 0, 0, 0.1)')}`
236
188
  });
@@ -1,7 +1,9 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
- import classNames from 'classnames';
3
- import React from 'react';
2
+
3
+ /** @jsx jsx */
4
+ import { jsx } from '@emotion/core';
4
5
  import uuid from 'uuid';
6
+ import PropTypes from 'prop-types';
5
7
  import { PureComponent } from 'react';
6
8
  import { defaultListLimit } from '../../util/constants';
7
9
  import { toEmojiId } from '../../util/type-helpers';
@@ -10,8 +12,7 @@ import debug from '../../util/logger';
10
12
  import { typeaheadCancelledEvent, typeaheadSelectedEvent, typeaheadRenderedEvent } from '../../util/analytics';
11
13
  import { createRecordSelectionDefault } from '../common/RecordSelectionDefault';
12
14
  import EmojiList from './EmojiTypeAheadList';
13
- import * as styles from './styles';
14
- import { EmojiContextProvider } from '../../context/EmojiContextProvider';
15
+ import { emojiTypeAhead } from './styles';
15
16
 
16
17
  const isFullShortName = query => query && query.length > 1 && query.charAt(0) === ':' && query.charAt(query.length - 1) === ':';
17
18
 
@@ -144,6 +145,14 @@ export default class EmojiTypeAheadComponent extends PureComponent {
144
145
  this.selected = false;
145
146
  }
146
147
 
148
+ getChildContext() {
149
+ return {
150
+ emoji: {
151
+ emojiProvider: this.props.emojiProvider
152
+ }
153
+ };
154
+ }
155
+
147
156
  componentDidMount() {
148
157
  const {
149
158
  emojiProvider
@@ -244,27 +253,24 @@ export default class EmojiTypeAheadComponent extends PureComponent {
244
253
  const style = {
245
254
  display: visible ? 'block' : 'none'
246
255
  };
247
- const classes = classNames(['ak-emoji-typeahead', styles.emojiTypeAhead]);
248
- const emojiContextValue = {
249
- emoji: {
250
- emojiProvider: this.props.emojiProvider
251
- }
252
- };
253
- return /*#__PURE__*/React.createElement(EmojiContextProvider, {
254
- emojiContextValue: emojiContextValue
255
- }, /*#__PURE__*/React.createElement("div", {
256
+ return jsx("div", {
256
257
  style: style,
257
- className: classes
258
- }, /*#__PURE__*/React.createElement(EmojiList, {
258
+ className: 'ak-emoji-typeahead',
259
+ css: emojiTypeAhead
260
+ }, jsx(EmojiList, {
259
261
  emojis: emojis,
260
262
  onEmojiSelected: recordUsageOnSelection,
261
263
  ref: this.onEmojiListRef,
262
264
  loading: loading
263
- })));
265
+ }));
264
266
  }
265
267
 
266
268
  }
267
269
 
270
+ _defineProperty(EmojiTypeAheadComponent, "childContextTypes", {
271
+ emoji: PropTypes.object
272
+ });
273
+
268
274
  _defineProperty(EmojiTypeAheadComponent, "defaultProps", {
269
275
  onSelection: () => {},
270
276
  onOpen: () => {},
@@ -1,11 +1,13 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
- import classNames from 'classnames';
2
+
3
+ /** @jsx jsx */
4
+ import { jsx } from '@emotion/core';
3
5
  import React from 'react';
4
6
  import { PureComponent } from 'react';
5
7
  import { toEmojiId } from '../../util/type-helpers';
6
8
  import { leftClick } from '../../util/mouse';
7
- import * as styles from './styles';
8
- import EmojiPickerPreview from '../picker/EmojiPickerPreview';
9
+ import { EmojiPreviewComponent } from '../common/EmojiPreviewComponent';
10
+ import { typeAheadItem, selected as selectedStyles, typeAheadItemRow, typeaheadSelected } from './styles';
9
11
  export default class EmojiTypeAheadItem extends PureComponent {
10
12
  constructor(...args) {
11
13
  super(...args);
@@ -39,19 +41,16 @@ export default class EmojiTypeAheadItem extends PureComponent {
39
41
  selected,
40
42
  emoji
41
43
  } = this.props;
42
- const classes = classNames({
43
- 'ak-emoji-typeahead-item': true,
44
- [styles.typeAheadItem]: true,
45
- [styles.selected]: selected
46
- });
47
- return /*#__PURE__*/React.createElement("div", {
48
- className: classes,
44
+ const classes = [typeAheadItem, selected && selectedStyles];
45
+ return jsx("div", {
46
+ className: `ak-emoji-typeahead-item ${selected ? typeaheadSelected : ''}`,
47
+ css: classes,
49
48
  onMouseDown: this.onEmojiSelected,
50
49
  onMouseMove: this.onEmojiMenuItemMouseMove,
51
50
  "data-emoji-id": emoji.shortName
52
- }, /*#__PURE__*/React.createElement("div", {
53
- className: styles.typeAheadItemRow
54
- }, /*#__PURE__*/React.createElement(EmojiPickerPreview, {
51
+ }, jsx("div", {
52
+ css: typeAheadItemRow
53
+ }, emoji && jsx(EmojiPreviewComponent, {
55
54
  emoji: emoji
56
55
  })));
57
56
  }
@@ -1,6 +1,8 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
+
3
+ /** @jsx jsx */
4
+ import { jsx } from '@emotion/core';
2
5
  import Spinner from '@atlaskit/spinner';
3
- import classNames from 'classnames';
4
6
  import React from 'react';
5
7
  import { PureComponent } from 'react';
6
8
  import { emojiTypeAheadMaxHeight } from '../../util/shared-styles';
@@ -9,7 +11,7 @@ import debug from '../../util/logger';
9
11
  import { actualMouseMove, mouseLocation } from '../../util/mouse';
10
12
  import Scrollable from '../common/Scrollable';
11
13
  import EmojiItem from './EmojiTypeAheadItem';
12
- import * as styles from './styles';
14
+ import { emojiTypeAheadSpinner, emojiTypeAheadSpinnerContainer, typeAheadEmpty, typeAheadList, typeAheadListContainer } from './styles';
13
15
 
14
16
  function wrapIndex(emojis, index) {
15
17
  const len = emojis.length;
@@ -192,9 +194,9 @@ export default class EmojiTypeAheadList extends PureComponent {
192
194
  renderItems(emojis) {
193
195
  if (emojis && emojis.length) {
194
196
  this.items = {};
195
- return /*#__PURE__*/React.createElement("div", null, emojis.map((emoji, idx) => {
197
+ return jsx("div", null, emojis.map((emoji, idx) => {
196
198
  const key = getKey(emoji);
197
- const item = /*#__PURE__*/React.createElement(EmojiItem, {
199
+ const item = jsx(EmojiItem, {
198
200
  emoji: emoji,
199
201
  key: key,
200
202
  selected: this.isSelectedEmoji(emoji, idx),
@@ -228,30 +230,27 @@ export default class EmojiTypeAheadList extends PureComponent {
228
230
  loading
229
231
  } = this.props;
230
232
  const hasEmoji = emojis && emojis.length;
231
- const classes = classNames({
232
- 'ak-emoji-typeahead-list': true,
233
- [styles.typeAheadList]: true,
234
- [styles.typeAheadEmpty]: !hasEmoji && !loading
235
- });
233
+ const classes = [typeAheadList, !hasEmoji && !loading && typeAheadEmpty];
236
234
  let listBody;
237
235
 
238
236
  if (loading) {
239
- listBody = /*#__PURE__*/React.createElement("div", {
240
- className: styles.emojiTypeAheadSpinnerContainer
241
- }, /*#__PURE__*/React.createElement("div", {
242
- className: styles.emojiTypeAheadSpinner
243
- }, /*#__PURE__*/React.createElement(Spinner, {
237
+ listBody = jsx("div", {
238
+ css: emojiTypeAheadSpinnerContainer
239
+ }, jsx("div", {
240
+ css: emojiTypeAheadSpinner
241
+ }, jsx(Spinner, {
244
242
  size: "medium"
245
243
  })));
246
244
  } else {
247
245
  listBody = this.renderItems(emojis);
248
246
  }
249
247
 
250
- return /*#__PURE__*/React.createElement("div", {
251
- className: styles.typeAheadListContainer
252
- }, /*#__PURE__*/React.createElement("div", {
253
- className: classes
254
- }, /*#__PURE__*/React.createElement(Scrollable, {
248
+ return jsx("div", {
249
+ css: typeAheadListContainer
250
+ }, jsx("div", {
251
+ className: 'ak-emoji-typeahead-list',
252
+ css: classes
253
+ }, jsx(Scrollable, {
255
254
  ref: this.handleScrollableRef,
256
255
  maxHeight: `${emojiTypeAheadMaxHeight}px`
257
256
  }, listBody)));
@@ -1,10 +1,11 @@
1
- import { style } from 'typestyle';
1
+ import { css } from '@emotion/core';
2
2
  import { token } from '@atlaskit/tokens';
3
3
  import { emojiPreviewSelectedColor, emojiTypeAheadMaxHeight, emojiTypeAheadWidth, noDialogContainerBorderColor, noDialogContainerBorderRadius, noDialogContainerBoxShadow } from '../../util/shared-styles';
4
- export const selected = 'emoji-typeahead-selected';
5
4
  export const emojiTypeAhead = 'emoji-typeahead-element';
6
- export const typeAheadListContainer = 'emoji-typeahead-list-container';
7
- export const typeAheadList = style({
5
+ export const typeAheadListContainer = 'emoji-typeahead-list-container'; // editor-core is using this static class name for testing
6
+
7
+ export const typeaheadSelected = 'emoji-typeahead-selected';
8
+ export const typeAheadList = css({
8
9
  background: token('elevation.surface.overlay', 'white'),
9
10
  border: `1px solid ${noDialogContainerBorderColor}`,
10
11
  borderRadius: noDialogContainerBorderRadius,
@@ -12,33 +13,31 @@ export const typeAheadList = style({
12
13
  color: token('color.text.subtle', '#333'),
13
14
  width: emojiTypeAheadWidth
14
15
  });
15
- export const typeAheadEmpty = style({
16
+ export const typeAheadEmpty = css({
16
17
  display: 'none'
17
18
  });
18
- export const typeAheadItem = style({
19
+ export const selected = css({
20
+ backgroundColor: emojiPreviewSelectedColor
21
+ });
22
+ export const typeAheadItem = css({
19
23
  cursor: 'pointer',
20
24
  display: 'block',
21
25
  listStyleType: 'none',
22
26
  overflow: 'hidden',
23
- width: emojiTypeAheadWidth,
24
- $nest: {
25
- [`&.${selected}`]: {
26
- backgroundColor: emojiPreviewSelectedColor
27
- }
28
- }
27
+ width: emojiTypeAheadWidth
29
28
  });
30
- export const typeAheadItemRow = style({
29
+ export const typeAheadItemRow = css({
31
30
  display: 'flex',
32
31
  flexDirection: 'row',
33
32
  flexWrap: 'wrap',
34
33
  verticalAlign: 'middle'
35
34
  });
36
- export const emojiTypeAheadSpinnerContainer = style({
35
+ export const emojiTypeAheadSpinnerContainer = css({
37
36
  position: 'relative',
38
37
  height: `${emojiTypeAheadMaxHeight}px`,
39
38
  paddingTop: `${((emojiTypeAheadMaxHeight - 30) / 2).toFixed()}px`,
40
39
  boxSizing: 'border-box'
41
40
  });
42
- export const emojiTypeAheadSpinner = style({
41
+ export const emojiTypeAheadSpinner = css({
43
42
  textAlign: 'center'
44
43
  });
@@ -1,13 +1,14 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
- import React from 'react';
2
+
3
+ /** @jsx jsx */
4
+ import { jsx } from '@emotion/core';
3
5
  import { PureComponent } from 'react';
4
6
  import { FormattedMessage } from 'react-intl-next';
5
- import classNames from 'classnames';
6
- import * as styles from './styles';
7
7
  import { supportsUploadFeature } from '../../api/EmojiResource';
8
8
  import EmojiUploadPickerWithIntl from '../common/EmojiUploadPicker';
9
9
  import { uploadEmoji } from '../common/UploadEmoji';
10
10
  import { createAndFireEventInElementsChannel, selectedFileEvent, uploadCancelButton, uploadConfirmButton } from '../../util/analytics';
11
+ import { emojiUploadFooter, emojiUploadWidget } from './styles';
11
12
  export default class EmojiUploadComponent extends PureComponent {
12
13
  constructor(props) {
13
14
  super(props);
@@ -81,13 +82,13 @@ export default class EmojiUploadComponent extends PureComponent {
81
82
  const {
82
83
  uploadErrorMessage
83
84
  } = this.state;
84
- const errorMessage = uploadErrorMessage ? /*#__PURE__*/React.createElement(FormattedMessage, uploadErrorMessage) : null;
85
- return /*#__PURE__*/React.createElement("div", {
86
- className: classNames([styles.emojiUploadWidget]),
85
+ const errorMessage = uploadErrorMessage ? jsx(FormattedMessage, uploadErrorMessage) : null;
86
+ return jsx("div", {
87
+ css: emojiUploadWidget,
87
88
  ref: this.props.onUploaderRef
88
- }, /*#__PURE__*/React.createElement("div", {
89
- className: classNames([styles.emojiUploadFooter])
90
- }, /*#__PURE__*/React.createElement(EmojiUploadPickerWithIntl, {
89
+ }, jsx("div", {
90
+ css: emojiUploadFooter
91
+ }, jsx(EmojiUploadPickerWithIntl, {
91
92
  ref: this.onUploaderRef,
92
93
  onFileChooserClicked: this.onFileChooserClicked,
93
94
  onUploadCancelled: this.onUploadCancelled,
@@ -1,8 +1,8 @@
1
- import { style } from 'typestyle';
2
1
  import { token } from '@atlaskit/tokens';
3
- import { emojiPickerWidth } from '../../util/constants'; // Uploader
2
+ import { emojiPickerWidth } from '../../util/constants';
3
+ import { css } from '@emotion/core'; // Uploader
4
4
 
5
- export const emojiUploadWidget = style({
5
+ export const emojiUploadWidget = css({
6
6
  display: 'flex',
7
7
  flexDirection: 'column',
8
8
  justifyContent: 'center',
@@ -16,6 +16,6 @@ export const emojiUploadWidget = style({
16
16
  marginTop: '-16px'
17
17
  }); /// Footer
18
18
 
19
- export const emojiUploadFooter = style({
19
+ export const emojiUploadFooter = css({
20
20
  flex: '0 0 auto'
21
21
  });
@@ -6,7 +6,8 @@ import EmojiPicker from './components/picker/EmojiPicker';
6
6
  import EmojiUploader from './components/uploader/EmojiUploader';
7
7
  import EmojiTypeAhead from './components/typeahead/EmojiTypeAhead';
8
8
  import EmojiTypeAheadItem from './components/typeahead/EmojiTypeAheadItem';
9
- export { selected, selectOnHover, emojiSprite, emojiNode, emojiImage } from './components/common/styles';
9
+ export { // renaming exports to prevent breaking changes due to renaming
10
+ commonSelectedStyles as selected, selectOnHoverStyles as selectOnHover, emojiSprite, emojiNodeStyles as emojiNode, emojiImage } from './components/common/styles';
10
11
  import EmojiResource from './api/EmojiResource';
11
12
  import EmojiRepository from './api/EmojiRepository';
12
13
  import EmojiLoader from './api/EmojiLoader';
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/emoji",
3
- "version": "64.2.1",
3
+ "version": "64.3.0",
4
4
  "sideEffects": false
5
5
  }