@atlaskit/emoji 64.2.1 → 64.4.1

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 (160) hide show
  1. package/CHANGELOG.md +27 -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/RecordSelectionDefault.js +8 -2
  16. package/dist/cjs/components/common/ResourcedEmojiComponent.js +17 -12
  17. package/dist/cjs/components/common/RetryableButton.js +12 -18
  18. package/dist/cjs/components/common/Scrollable.js +5 -10
  19. package/dist/cjs/components/common/UploadEmoji.js +8 -0
  20. package/dist/cjs/components/common/styles.js +210 -266
  21. package/dist/cjs/components/picker/CategorySelector.js +13 -12
  22. package/dist/cjs/components/picker/EmojiPicker.js +17 -6
  23. package/dist/cjs/components/picker/EmojiPickerCategoryHeading.js +8 -14
  24. package/dist/cjs/components/picker/EmojiPickerComponent.js +51 -30
  25. package/dist/cjs/components/picker/EmojiPickerEmojiRow.js +8 -12
  26. package/dist/cjs/components/picker/EmojiPickerFooter.js +8 -14
  27. package/dist/cjs/components/picker/EmojiPickerList.js +28 -9
  28. package/dist/cjs/components/picker/EmojiPickerListSearch.js +10 -8
  29. package/dist/cjs/components/picker/EmojiPickerVirtualItems.js +9 -15
  30. package/dist/cjs/components/picker/styles.js +113 -161
  31. package/dist/cjs/components/typeahead/EmojiTypeAheadComponent.js +40 -24
  32. package/dist/cjs/components/typeahead/EmojiTypeAheadItem.js +10 -13
  33. package/dist/cjs/components/typeahead/EmojiTypeAheadList.js +17 -22
  34. package/dist/cjs/components/typeahead/styles.js +17 -19
  35. package/dist/cjs/components/uploader/EmojiUploadComponent.js +22 -15
  36. package/dist/cjs/components/uploader/styles.js +4 -4
  37. package/dist/cjs/index.js +21 -3
  38. package/dist/cjs/types.js +23 -2
  39. package/dist/cjs/util/analytics/analytics.js +11 -41
  40. package/dist/cjs/util/analytics/index.js +16 -14
  41. package/dist/cjs/util/analytics/ufoExperiences.js +48 -0
  42. package/dist/cjs/version.json +1 -1
  43. package/dist/es2019/api/media/SiteEmojiResource.js +10 -2
  44. package/dist/es2019/components/common/CachingEmoji.js +5 -7
  45. package/dist/es2019/components/common/DeleteButton.js +8 -6
  46. package/dist/es2019/components/common/Emoji.js +19 -34
  47. package/dist/es2019/components/common/EmojiActions.js +26 -24
  48. package/dist/es2019/components/common/EmojiButton.js +6 -6
  49. package/dist/es2019/components/common/EmojiDeletePreview.js +20 -20
  50. package/dist/es2019/components/common/EmojiErrorMessage.js +9 -8
  51. package/dist/es2019/components/common/EmojiPlaceholder.js +5 -8
  52. package/dist/es2019/components/common/EmojiPreview.js +19 -35
  53. package/dist/es2019/components/common/EmojiPreviewComponent.js +21 -0
  54. package/dist/es2019/components/common/EmojiUploadPicker.js +25 -22
  55. package/dist/es2019/components/common/EmojiUploadPreview.js +22 -22
  56. package/dist/es2019/components/common/RecordSelectionDefault.js +9 -2
  57. package/dist/es2019/components/common/ResourcedEmojiComponent.js +16 -11
  58. package/dist/es2019/components/common/RetryableButton.js +10 -11
  59. package/dist/es2019/components/common/Scrollable.js +6 -10
  60. package/dist/es2019/components/common/UploadEmoji.js +4 -0
  61. package/dist/es2019/components/common/styles.js +195 -262
  62. package/dist/es2019/components/picker/CategorySelector.js +15 -12
  63. package/dist/es2019/components/picker/EmojiPicker.js +15 -6
  64. package/dist/es2019/components/picker/EmojiPickerCategoryHeading.js +8 -8
  65. package/dist/es2019/components/picker/EmojiPickerComponent.js +46 -22
  66. package/dist/es2019/components/picker/EmojiPickerEmojiRow.js +8 -7
  67. package/dist/es2019/components/picker/EmojiPickerFooter.js +8 -8
  68. package/dist/es2019/components/picker/EmojiPickerList.js +28 -8
  69. package/dist/es2019/components/picker/EmojiPickerListSearch.js +11 -8
  70. package/dist/es2019/components/picker/EmojiPickerVirtualItems.js +10 -8
  71. package/dist/es2019/components/picker/styles.js +112 -160
  72. package/dist/es2019/components/typeahead/EmojiTypeAheadComponent.js +35 -17
  73. package/dist/es2019/components/typeahead/EmojiTypeAheadItem.js +12 -13
  74. package/dist/es2019/components/typeahead/EmojiTypeAheadList.js +18 -19
  75. package/dist/es2019/components/typeahead/styles.js +14 -15
  76. package/dist/es2019/components/uploader/EmojiUploadComponent.js +19 -9
  77. package/dist/es2019/components/uploader/styles.js +4 -4
  78. package/dist/es2019/index.js +5 -4
  79. package/dist/es2019/types.js +20 -1
  80. package/dist/es2019/util/analytics/analytics.js +16 -37
  81. package/dist/es2019/util/analytics/index.js +2 -1
  82. package/dist/es2019/util/analytics/ufoExperiences.js +35 -0
  83. package/dist/es2019/version.json +1 -1
  84. package/dist/esm/api/media/SiteEmojiResource.js +10 -2
  85. package/dist/esm/components/common/CachingEmoji.js +5 -7
  86. package/dist/esm/components/common/DeleteButton.js +8 -6
  87. package/dist/esm/components/common/Emoji.js +18 -27
  88. package/dist/esm/components/common/EmojiActions.js +26 -25
  89. package/dist/esm/components/common/EmojiButton.js +6 -6
  90. package/dist/esm/components/common/EmojiDeletePreview.js +19 -20
  91. package/dist/esm/components/common/EmojiErrorMessage.js +9 -8
  92. package/dist/esm/components/common/EmojiPlaceholder.js +5 -8
  93. package/dist/esm/components/common/EmojiPreview.js +19 -33
  94. package/dist/esm/components/common/EmojiPreviewComponent.js +20 -0
  95. package/dist/esm/components/common/EmojiUploadPicker.js +27 -25
  96. package/dist/esm/components/common/EmojiUploadPreview.js +21 -22
  97. package/dist/esm/components/common/RecordSelectionDefault.js +6 -3
  98. package/dist/esm/components/common/ResourcedEmojiComponent.js +16 -10
  99. package/dist/esm/components/common/RetryableButton.js +11 -12
  100. package/dist/esm/components/common/Scrollable.js +6 -10
  101. package/dist/esm/components/common/UploadEmoji.js +4 -0
  102. package/dist/esm/components/common/styles.js +192 -242
  103. package/dist/esm/components/picker/CategorySelector.js +14 -12
  104. package/dist/esm/components/picker/EmojiPicker.js +13 -6
  105. package/dist/esm/components/picker/EmojiPickerCategoryHeading.js +8 -8
  106. package/dist/esm/components/picker/EmojiPickerComponent.js +47 -22
  107. package/dist/esm/components/picker/EmojiPickerEmojiRow.js +8 -7
  108. package/dist/esm/components/picker/EmojiPickerFooter.js +8 -8
  109. package/dist/esm/components/picker/EmojiPickerList.js +29 -8
  110. package/dist/esm/components/picker/EmojiPickerListSearch.js +10 -8
  111. package/dist/esm/components/picker/EmojiPickerVirtualItems.js +9 -8
  112. package/dist/esm/components/picker/styles.js +108 -149
  113. package/dist/esm/components/typeahead/EmojiTypeAheadComponent.js +35 -17
  114. package/dist/esm/components/typeahead/EmojiTypeAheadItem.js +11 -13
  115. package/dist/esm/components/typeahead/EmojiTypeAheadList.js +17 -19
  116. package/dist/esm/components/typeahead/styles.js +14 -14
  117. package/dist/esm/components/uploader/EmojiUploadComponent.js +19 -9
  118. package/dist/esm/components/uploader/styles.js +4 -4
  119. package/dist/esm/index.js +5 -4
  120. package/dist/esm/types.js +20 -1
  121. package/dist/esm/util/analytics/analytics.js +8 -33
  122. package/dist/esm/util/analytics/index.js +2 -1
  123. package/dist/esm/util/analytics/ufoExperiences.js +35 -0
  124. package/dist/esm/version.json +1 -1
  125. package/dist/types/components/common/CachingEmoji.d.ts +8 -6
  126. package/dist/types/components/common/EmojiActions.d.ts +2 -3
  127. package/dist/types/components/common/EmojiDeletePreview.d.ts +3 -3
  128. package/dist/types/components/common/EmojiErrorMessage.d.ts +2 -1
  129. package/dist/types/components/common/EmojiPreview.d.ts +2 -3
  130. package/dist/types/components/common/EmojiPreviewComponent.d.ts +7 -0
  131. package/dist/types/components/common/EmojiUploadPreview.d.ts +3 -3
  132. package/dist/types/components/common/ResourcedEmojiComponent.d.ts +6 -0
  133. package/dist/types/components/common/RetryableButton.d.ts +0 -2
  134. package/dist/types/components/common/styles.d.ts +44 -44
  135. package/dist/types/components/picker/EmojiPicker.d.ts +2 -3
  136. package/dist/types/components/picker/EmojiPickerComponent.d.ts +6 -0
  137. package/dist/types/components/picker/EmojiPickerList.d.ts +10 -0
  138. package/dist/types/components/picker/styles.d.ts +17 -18
  139. package/dist/types/components/typeahead/EmojiTypeAheadComponent.d.ts +6 -0
  140. package/dist/types/components/typeahead/styles.d.ts +8 -7
  141. package/dist/types/components/uploader/EmojiUploadComponent.d.ts +1 -0
  142. package/dist/types/components/uploader/styles.d.ts +2 -2
  143. package/dist/types/index.d.ts +4 -4
  144. package/dist/types/types.d.ts +13 -0
  145. package/dist/types/util/analytics/analytics.d.ts +3 -7
  146. package/dist/types/util/analytics/index.d.ts +3 -2
  147. package/dist/types/util/analytics/ufoExperiences.d.ts +11 -0
  148. package/package.json +9 -10
  149. package/dist/cjs/components/picker/EmojiPickerPreview.js +0 -87
  150. package/dist/cjs/context/EmojiContext.js +0 -11
  151. package/dist/cjs/context/EmojiContextProvider.js +0 -22
  152. package/dist/es2019/components/picker/EmojiPickerPreview.js +0 -43
  153. package/dist/es2019/context/EmojiContext.js +0 -2
  154. package/dist/es2019/context/EmojiContextProvider.js +0 -10
  155. package/dist/esm/components/picker/EmojiPickerPreview.js +0 -67
  156. package/dist/esm/context/EmojiContext.js +0 -2
  157. package/dist/esm/context/EmojiContextProvider.js +0 -9
  158. package/dist/types/components/picker/EmojiPickerPreview.d.ts +0 -9
  159. package/dist/types/context/EmojiContext.d.ts +0 -4
  160. package/dist/types/context/EmojiContextProvider.d.ts +0 -7
@@ -1,18 +1,16 @@
1
1
  import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
2
 
3
- var _$nest4, _$nest5, _$nest6, _$nest8;
3
+ var _css4, _css5, _css6;
4
4
 
5
- import { style } from 'typestyle';
5
+ import { css } from '@emotion/core';
6
6
  import { token } from '@atlaskit/tokens';
7
7
  import { borderRadius } from '@atlaskit/theme/constants';
8
- import * as colors from '@atlaskit/theme/colors';
9
- import { akEmojiSelectedBackgroundColor, emojiPickerBorderColor, emojiPickerBoxShadow } from '../../util/shared-styles';
10
- import { emojiSprite, placeholder, emojiNode } from '../common/styles';
8
+ import { emojiPickerBorderColor, emojiPickerBoxShadow } from '../../util/shared-styles';
9
+ import { emojiSprite, placeholder, emojiNodeStyles } from '../common/styles';
11
10
  import { emojiPickerHeight, emojiPickerWidth } from '../../util/constants';
12
- export var active = 'emoji-picker-active';
13
- export var disable = 'emoji-picker-disable'; // Level 1 - picker
11
+ import { B200, B300, N100A, N200, N30, N30A, N50, N900 } from '@atlaskit/theme/colors'; // Level 1 - picker
14
12
 
15
- export var emojiPicker = style({
13
+ export var emojiPicker = css({
16
14
  display: 'flex',
17
15
  flexDirection: 'column',
18
16
  justifyContent: 'space-between',
@@ -28,62 +26,57 @@ export var emojiPicker = style({
28
26
  /// Category Selector
29
27
 
30
28
  export var addButton = 'emoji-picker-add-button';
31
- export var categorySelector = style({
29
+ export var categorySelector = css(_defineProperty({
32
30
  flex: '0 0 auto',
33
- backgroundColor: token('elevation.surface.sunken', colors.N30),
34
- $nest: _defineProperty({
35
- ul: {
36
- listStyle: 'none',
37
- margin: '0 4px',
38
- padding: '3px 0',
39
- display: 'flex',
40
- flexDirection: 'row',
41
- justifyContent: 'space-around'
42
- },
43
- li: {
44
- display: 'inline-block',
45
- margin: 0,
46
- padding: 0,
47
- $nest: {
48
- button: {
49
- verticalAlign: 'middle'
50
- }
51
- }
31
+ backgroundColor: token('elevation.surface.sunken', N30),
32
+ ul: {
33
+ listStyle: 'none',
34
+ margin: '0 4px',
35
+ padding: '3px 0',
36
+ display: 'flex',
37
+ flexDirection: 'row',
38
+ justifyContent: 'space-around'
39
+ },
40
+ li: {
41
+ display: 'inline-block',
42
+ margin: 0,
43
+ padding: 0,
44
+ button: {
45
+ verticalAlign: 'middle'
52
46
  }
53
- }, ".".concat(addButton), {
54
- color: token('color.text.subtlest', colors.N200),
55
- margin: '0 0 0 5px',
56
- verticalAlign: 'middle'
57
- })
58
- });
59
- export var category = style({
47
+ }
48
+ }, ".".concat(addButton), {
49
+ color: token('color.text.subtlest', N200),
50
+ margin: '0 0 0 5px',
51
+ verticalAlign: 'middle'
52
+ }));
53
+ export var active = css(_defineProperty({
54
+ color: token('color.text.selected', B300)
55
+ }, '&:hover', {
56
+ color: token('color.text.selected', B300)
57
+ }));
58
+ export var disable = css(_defineProperty({
59
+ color: token('color.text.subtlest', N50),
60
+ cursor: 'default'
61
+ }, '&:hover', {
62
+ color: token('color.text.subtlest', N50)
63
+ }));
64
+ export var categoryStyles = css((_css4 = {
60
65
  backgroundColor: 'transparent',
61
66
  border: 0,
62
- color: token('color.text.subtlest', colors.N100A),
67
+ color: token('color.text.subtlest', N100A),
63
68
  cursor: 'pointer',
64
69
  margin: '2px 0',
65
70
  padding: 0,
66
- transition: 'color 0.2s ease',
67
- $nest: (_$nest4 = {}, _defineProperty(_$nest4, '&::-moz-focus-inner', {
68
- border: '0 none',
69
- padding: 0
70
- }), _defineProperty(_$nest4, "&.".concat(active), {
71
- color: token('color.text.brand', colors.B300),
72
- $nest: _defineProperty({}, '&:hover', {
73
- color: token('color.text.brand', colors.B300)
74
- })
75
- }), _defineProperty(_$nest4, '&:hover', {
76
- color: token('color.text.brand', colors.B200)
77
- }), _defineProperty(_$nest4, "&.".concat(disable), {
78
- color: token('color.text.subtlest', colors.N50),
79
- cursor: 'default',
80
- $nest: _defineProperty({}, '&:hover', {
81
- color: token('color.text.subtlest', colors.N50)
82
- })
83
- }), _$nest4)
84
- }); /// EmojiPickerList
71
+ transition: 'color 0.2s ease'
72
+ }, _defineProperty(_css4, '&::-moz-focus-inner', {
73
+ border: '0 none',
74
+ padding: 0
75
+ }), _defineProperty(_css4, '&:hover', {
76
+ color: token('color.text.selected', B200)
77
+ }), _css4)); /// EmojiPickerList
85
78
 
86
- export var emojiPickerList = style({
79
+ export var emojiPickerList = css({
87
80
  display: 'flex',
88
81
  flexDirection: 'column',
89
82
  flex: '1 1 auto',
@@ -91,128 +84,94 @@ export var emojiPickerList = style({
91
84
  height: '0'
92
85
  }); // react-virtualized enables focus style by default - turn it off
93
86
 
94
- export var virtualList = style({
95
- $nest: {
96
- '&:focus': {
97
- outline: 'none'
98
- }
87
+ export var virtualList = css({
88
+ '&:focus': {
89
+ outline: 'none'
99
90
  }
100
91
  }); //// Search
101
92
 
102
- export var searchIcon = 'search-icon';
103
- export var input = 'input';
104
- export var pickerSearch = style({
93
+ export var searchIcon = css({
94
+ opacity: 0.5
95
+ });
96
+ export var input = css((_css5 = {
97
+ boxSizing: 'border-box',
98
+ color: 'inherit',
99
+ cursor: 'inherit',
100
+ fontSize: '14px',
101
+ outline: 'none',
102
+ padding: '1px 0 2px 6px',
103
+ width: '100%'
104
+ }, _defineProperty(_css5, '&:invalid', {
105
+ boxShadow: 'none'
106
+ }), _defineProperty(_css5, '&::-ms-clear', {
107
+ display: 'none'
108
+ }), _css5));
109
+ export var pickerSearch = css({
105
110
  boxSizing: 'border-box',
106
111
  padding: '10px 10px 11px 10px',
107
- width: '100%',
108
- $nest: (_$nest6 = {}, _defineProperty(_$nest6, ".".concat(searchIcon), {
109
- opacity: 0.5
110
- }), _defineProperty(_$nest6, ".".concat(input), {
111
- boxSizing: 'border-box',
112
- color: 'inherit',
113
- cursor: 'inherit',
114
- fontSize: '14px',
115
- outline: 'none',
116
- padding: '1px 0 2px 6px',
117
- width: '100%',
118
- $nest: (_$nest5 = {}, _defineProperty(_$nest5, '&:invalid', {
119
- boxShadow: 'none'
120
- }), _defineProperty(_$nest5, '&::-ms-clear', {
121
- display: 'none'
122
- }), _$nest5)
123
- }), _$nest6)
112
+ width: '100%'
124
113
  }); //// Loading/Spinner
125
114
 
126
- export var emojiPickerSpinner = style({
115
+ export var emojiPickerSpinner = css({
127
116
  display: 'flex',
128
117
  width: '100%',
129
118
  height: '150px',
130
119
  justifyContent: 'center',
131
120
  alignItems: 'center',
132
- $nest: {
133
- '>div': {
134
- flex: '0 0 auto'
135
- }
121
+ '>div': {
122
+ flex: '0 0 auto'
136
123
  }
137
124
  }); //// Category/Result
138
125
 
139
- export var emojiPickerRow = style({
126
+ export var emojiPickerRow = css({
140
127
  marginLeft: '8px'
141
128
  });
142
- export var emojiCategoryTitle = style({
129
+ export var emojiCategoryTitle = css({
143
130
  boxSizing: 'border-box',
144
- color: token('color.text', colors.N900),
131
+ color: token('color.text', N900),
145
132
  fontSize: '14px',
146
133
  padding: '5px 8px',
147
134
  textTransform: 'lowercase',
148
- $nest: {
149
- '&:first-letter': {
150
- textTransform: 'uppercase'
151
- }
135
+ '&:first-letter': {
136
+ textTransform: 'uppercase'
152
137
  }
153
138
  });
154
- export var emojiItem = style({
139
+ export var emojiItem = css((_css6 = {
155
140
  display: 'inline-block',
156
141
  textAlign: 'center',
157
- width: '40px',
158
- $nest: (_$nest8 = {}, _defineProperty(_$nest8, "&>.".concat(emojiNode), {
159
- cursor: 'pointer',
160
- padding: '8px',
161
- borderRadius: '5px',
162
- width: '24px',
163
- height: '24px',
164
- $nest: _defineProperty({
165
- // Fit non-square emoji to square
166
- '&>img': {
167
- position: 'relative',
168
- left: '50%',
169
- top: '50%',
170
- transform: 'translateX(-50%) translateY(-50%)',
171
- maxHeight: '24px',
172
- maxWidth: '24px',
173
- display: 'block'
174
- }
175
- }, "&>.".concat(emojiSprite), {
176
- height: '24px',
177
- width: '24px'
178
- })
179
- }), _defineProperty(_$nest8, "&>.".concat(placeholder), {
180
- padding: '0',
181
- margin: '7px',
182
- minWidth: '24px',
183
- maxWidth: '24px'
184
- }), _$nest8)
185
- });
186
- export var addEmoji = style({
187
- border: '2px dashed #ccc',
188
- borderRadius: "".concat(borderRadius(), "px"),
189
- backgroundColor: 'transparent',
190
- width: '32px',
191
- height: '32px',
192
- padding: 0,
193
- margin: '4px',
194
- verticalAlign: 'middle',
195
- $nest: {
196
- '&:hover': {
197
- backgroundColor: akEmojiSelectedBackgroundColor
198
- },
199
- '&:focus': {
200
- outline: '0'
201
- },
202
- span: {
203
- backgroundColor: 'inherit'
204
- }
205
- }
206
- }); /// Footer
142
+ width: '40px'
143
+ }, _defineProperty(_css6, "& .".concat(emojiNodeStyles), {
144
+ cursor: 'pointer',
145
+ padding: '8px',
146
+ borderRadius: '5px',
147
+ width: '24px',
148
+ height: '24px'
149
+ }), _defineProperty(_css6, "& .".concat(placeholder), {
150
+ padding: '0',
151
+ margin: '7px',
152
+ minWidth: '24px',
153
+ maxWidth: '24px'
154
+ }), _defineProperty(_css6, "& .".concat(emojiNodeStyles, " > img"), {
155
+ position: 'relative',
156
+ left: '50%',
157
+ top: '50%',
158
+ transform: 'translateX(-50%) translateY(-50%)',
159
+ maxHeight: '24px',
160
+ maxWidth: '24px',
161
+ display: 'block'
162
+ }), _defineProperty(_css6, "& .".concat(emojiNodeStyles, " > .").concat(emojiSprite), {
163
+ height: '24px',
164
+ width: '24px'
165
+ }), _css6)); /// Footer
207
166
 
208
- export var emojiPickerFooter = style({
167
+ export var emojiPickerFooter = css({
209
168
  flex: '0 0 auto'
210
169
  });
211
- export var emojiPickerFooterWithTopShadow = style({
212
- borderTop: "2px solid ".concat(token('color.border', colors.N30A)),
170
+ export var emojiPickerFooterWithTopShadow = css({
171
+ borderTop: "2px solid ".concat(token('color.border', N30A)),
213
172
  boxShadow: "0px -1px 1px 0px ".concat(token('color.border', 'rgba(0, 0, 0, 0.1)'))
214
173
  });
215
- export var emojiActionsContainerWithBottomShadow = style({
216
- borderBottom: "2px solid ".concat(token('color.border', colors.N30A)),
174
+ export var emojiActionsContainerWithBottomShadow = css({
175
+ borderBottom: "2px solid ".concat(token('color.border', N30A)),
217
176
  boxShadow: "0px 1px 1px 0px ".concat(token('color.border', 'rgba(0, 0, 0, 0.1)'))
218
177
  });
@@ -16,19 +16,19 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
16
16
 
17
17
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
18
18
 
19
- import classNames from 'classnames';
20
- import React from 'react';
19
+ /** @jsx jsx */
20
+ import { jsx } from '@emotion/core';
21
21
  import uuid from 'uuid';
22
+ import PropTypes from 'prop-types';
22
23
  import { PureComponent } from 'react';
23
24
  import { defaultListLimit } from '../../util/constants';
24
25
  import { toEmojiId } from '../../util/type-helpers';
25
26
  import { SearchSort } from '../../types';
26
27
  import debug from '../../util/logger';
27
- import { typeaheadCancelledEvent, typeaheadSelectedEvent, typeaheadRenderedEvent } from '../../util/analytics';
28
+ import { typeaheadCancelledEvent, typeaheadSelectedEvent, typeaheadRenderedEvent, ufoExperiences } from '../../util/analytics';
28
29
  import { createRecordSelectionDefault } from '../common/RecordSelectionDefault';
29
30
  import EmojiList from './EmojiTypeAheadList';
30
- import * as styles from './styles';
31
- import { EmojiContextProvider } from '../../context/EmojiContextProvider';
31
+ import { emojiTypeAhead } from './styles';
32
32
 
33
33
  var isFullShortName = function isFullShortName(query) {
34
34
  return query && query.length > 1 && query.charAt(0) === ':' && query.charAt(query.length - 1) === ':';
@@ -124,6 +124,11 @@ var EmojiTypeAheadComponent = /*#__PURE__*/function (_PureComponent) {
124
124
 
125
125
  _this.fireAnalyticsEvent(typeaheadRenderedEvent(Date.now() - _this.renderStartTime, query, emojis));
126
126
 
127
+ ufoExperiences['emoji-searched'].success({
128
+ metadata: {
129
+ emojisLength: emojis.length
130
+ }
131
+ });
127
132
  debug('emoji-typeahead.applyPropChanges', emojis.length, wasVisible, visible);
128
133
 
129
134
  _this.setState({
@@ -187,6 +192,15 @@ var EmojiTypeAheadComponent = /*#__PURE__*/function (_PureComponent) {
187
192
  }
188
193
 
189
194
  _createClass(EmojiTypeAheadComponent, [{
195
+ key: "getChildContext",
196
+ value: function getChildContext() {
197
+ return {
198
+ emoji: {
199
+ emojiProvider: this.props.emojiProvider
200
+ }
201
+ };
202
+ }
203
+ }, {
190
204
  key: "componentDidMount",
191
205
  value: function componentDidMount() {
192
206
  var emojiProvider = this.props.emojiProvider;
@@ -206,6 +220,8 @@ var EmojiTypeAheadComponent = /*#__PURE__*/function (_PureComponent) {
206
220
  this.fireAnalyticsEvent(typeaheadCancelledEvent(Date.now() - this.openTime, query, emojis));
207
221
  }
208
222
 
223
+ ufoExperiences['emoji-searched'].abort();
224
+ ufoExperiences['emoji-selection-recorded'].abort();
209
225
  this.sessionId = uuid();
210
226
  this.selected = false;
211
227
  }
@@ -251,6 +267,11 @@ var EmojiTypeAheadComponent = /*#__PURE__*/function (_PureComponent) {
251
267
  options.sort = SearchSort.UsageFrequency;
252
268
  }
253
269
 
270
+ ufoExperiences['emoji-searched'].start();
271
+ ufoExperiences['emoji-searched'].addMetadata({
272
+ queryLength: (query === null || query === void 0 ? void 0 : query.length) || 0,
273
+ source: 'typeahead'
274
+ });
254
275
  this.renderStartTime = Date.now();
255
276
  emojiProvider.filter(query, options);
256
277
  }
@@ -286,29 +307,26 @@ var EmojiTypeAheadComponent = /*#__PURE__*/function (_PureComponent) {
286
307
  var style = {
287
308
  display: visible ? 'block' : 'none'
288
309
  };
289
- var classes = classNames(['ak-emoji-typeahead', styles.emojiTypeAhead]);
290
- var emojiContextValue = {
291
- emoji: {
292
- emojiProvider: this.props.emojiProvider
293
- }
294
- };
295
- return /*#__PURE__*/React.createElement(EmojiContextProvider, {
296
- emojiContextValue: emojiContextValue
297
- }, /*#__PURE__*/React.createElement("div", {
310
+ return jsx("div", {
298
311
  style: style,
299
- className: classes
300
- }, /*#__PURE__*/React.createElement(EmojiList, {
312
+ className: 'ak-emoji-typeahead',
313
+ css: emojiTypeAhead
314
+ }, jsx(EmojiList, {
301
315
  emojis: emojis,
302
316
  onEmojiSelected: recordUsageOnSelection,
303
317
  ref: this.onEmojiListRef,
304
318
  loading: loading
305
- })));
319
+ }));
306
320
  }
307
321
  }]);
308
322
 
309
323
  return EmojiTypeAheadComponent;
310
324
  }(PureComponent);
311
325
 
326
+ _defineProperty(EmojiTypeAheadComponent, "childContextTypes", {
327
+ emoji: PropTypes.object
328
+ });
329
+
312
330
  _defineProperty(EmojiTypeAheadComponent, "defaultProps", {
313
331
  onSelection: function onSelection() {},
314
332
  onOpen: function onOpen() {},
@@ -10,13 +10,14 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
10
10
 
11
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
12
 
13
- import classNames from 'classnames';
13
+ /** @jsx jsx */
14
+ import { jsx } from '@emotion/core';
14
15
  import React from 'react';
15
16
  import { PureComponent } from 'react';
16
17
  import { toEmojiId } from '../../util/type-helpers';
17
18
  import { leftClick } from '../../util/mouse';
18
- import * as styles from './styles';
19
- import EmojiPickerPreview from '../picker/EmojiPickerPreview';
19
+ import { EmojiPreviewComponent } from '../common/EmojiPreviewComponent';
20
+ import { typeAheadItem, selected as selectedStyles, typeAheadItemRow, typeaheadSelected } from './styles';
20
21
 
21
22
  var EmojiTypeAheadItem = /*#__PURE__*/function (_PureComponent) {
22
23
  _inherits(EmojiTypeAheadItem, _PureComponent);
@@ -61,22 +62,19 @@ var EmojiTypeAheadItem = /*#__PURE__*/function (_PureComponent) {
61
62
  _createClass(EmojiTypeAheadItem, [{
62
63
  key: "render",
63
64
  value: function render() {
64
- var _classNames;
65
-
66
65
  var _this$props3 = this.props,
67
66
  selected = _this$props3.selected,
68
67
  emoji = _this$props3.emoji;
69
- var classes = classNames((_classNames = {
70
- 'ak-emoji-typeahead-item': true
71
- }, _defineProperty(_classNames, styles.typeAheadItem, true), _defineProperty(_classNames, styles.selected, selected), _classNames));
72
- return /*#__PURE__*/React.createElement("div", {
73
- className: classes,
68
+ var classes = [typeAheadItem, selected && selectedStyles];
69
+ return jsx("div", {
70
+ className: "ak-emoji-typeahead-item ".concat(selected ? typeaheadSelected : ''),
71
+ css: classes,
74
72
  onMouseDown: this.onEmojiSelected,
75
73
  onMouseMove: this.onEmojiMenuItemMouseMove,
76
74
  "data-emoji-id": emoji.shortName
77
- }, /*#__PURE__*/React.createElement("div", {
78
- className: styles.typeAheadItemRow
79
- }, /*#__PURE__*/React.createElement(EmojiPickerPreview, {
75
+ }, jsx("div", {
76
+ css: typeAheadItemRow
77
+ }, emoji && jsx(EmojiPreviewComponent, {
80
78
  emoji: emoji
81
79
  })));
82
80
  }
@@ -10,8 +10,9 @@ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflec
10
10
 
11
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
12
 
13
+ /** @jsx jsx */
14
+ import { jsx } from '@emotion/core';
13
15
  import Spinner from '@atlaskit/spinner';
14
- import classNames from 'classnames';
15
16
  import React from 'react';
16
17
  import { PureComponent } from 'react';
17
18
  import { emojiTypeAheadMaxHeight } from '../../util/shared-styles';
@@ -20,7 +21,7 @@ import debug from '../../util/logger';
20
21
  import { actualMouseMove, mouseLocation } from '../../util/mouse';
21
22
  import Scrollable from '../common/Scrollable';
22
23
  import EmojiItem from './EmojiTypeAheadItem';
23
- import * as styles from './styles';
24
+ import { emojiTypeAheadSpinner, emojiTypeAheadSpinnerContainer, typeAheadEmpty, typeAheadList, typeAheadListContainer } from './styles';
24
25
 
25
26
  function wrapIndex(emojis, index) {
26
27
  var len = emojis.length;
@@ -209,9 +210,9 @@ var EmojiTypeAheadList = /*#__PURE__*/function (_PureComponent) {
209
210
 
210
211
  if (emojis && emojis.length) {
211
212
  this.items = {};
212
- return /*#__PURE__*/React.createElement("div", null, emojis.map(function (emoji, idx) {
213
+ return jsx("div", null, emojis.map(function (emoji, idx) {
213
214
  var key = getKey(emoji);
214
- var item = /*#__PURE__*/React.createElement(EmojiItem, {
215
+ var item = jsx(EmojiItem, {
215
216
  emoji: emoji,
216
217
  key: key,
217
218
  selected: _this2.isSelectedEmoji(emoji, idx),
@@ -240,34 +241,31 @@ var EmojiTypeAheadList = /*#__PURE__*/function (_PureComponent) {
240
241
  }, {
241
242
  key: "render",
242
243
  value: function render() {
243
- var _classNames;
244
-
245
244
  var _this$props2 = this.props,
246
245
  emojis = _this$props2.emojis,
247
246
  loading = _this$props2.loading;
248
247
  var hasEmoji = emojis && emojis.length;
249
- var classes = classNames((_classNames = {
250
- 'ak-emoji-typeahead-list': true
251
- }, _defineProperty(_classNames, styles.typeAheadList, true), _defineProperty(_classNames, styles.typeAheadEmpty, !hasEmoji && !loading), _classNames));
248
+ var classes = [typeAheadList, !hasEmoji && !loading && typeAheadEmpty];
252
249
  var listBody;
253
250
 
254
251
  if (loading) {
255
- listBody = /*#__PURE__*/React.createElement("div", {
256
- className: styles.emojiTypeAheadSpinnerContainer
257
- }, /*#__PURE__*/React.createElement("div", {
258
- className: styles.emojiTypeAheadSpinner
259
- }, /*#__PURE__*/React.createElement(Spinner, {
252
+ listBody = jsx("div", {
253
+ css: emojiTypeAheadSpinnerContainer
254
+ }, jsx("div", {
255
+ css: emojiTypeAheadSpinner
256
+ }, jsx(Spinner, {
260
257
  size: "medium"
261
258
  })));
262
259
  } else {
263
260
  listBody = this.renderItems(emojis);
264
261
  }
265
262
 
266
- return /*#__PURE__*/React.createElement("div", {
267
- className: styles.typeAheadListContainer
268
- }, /*#__PURE__*/React.createElement("div", {
269
- className: classes
270
- }, /*#__PURE__*/React.createElement(Scrollable, {
263
+ return jsx("div", {
264
+ css: typeAheadListContainer
265
+ }, jsx("div", {
266
+ className: 'ak-emoji-typeahead-list',
267
+ css: classes
268
+ }, jsx(Scrollable, {
271
269
  ref: this.handleScrollableRef,
272
270
  maxHeight: "".concat(emojiTypeAheadMaxHeight, "px")
273
271
  }, listBody)));
@@ -1,11 +1,11 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
- import { style } from 'typestyle';
1
+ import { css } from '@emotion/core';
3
2
  import { token } from '@atlaskit/tokens';
4
3
  import { emojiPreviewSelectedColor, emojiTypeAheadMaxHeight, emojiTypeAheadWidth, noDialogContainerBorderColor, noDialogContainerBorderRadius, noDialogContainerBoxShadow } from '../../util/shared-styles';
5
- export var selected = 'emoji-typeahead-selected';
6
4
  export var emojiTypeAhead = 'emoji-typeahead-element';
7
- export var typeAheadListContainer = 'emoji-typeahead-list-container';
8
- export var typeAheadList = style({
5
+ export var typeAheadListContainer = 'emoji-typeahead-list-container'; // editor-core is using this static class name for testing
6
+
7
+ export var typeaheadSelected = 'emoji-typeahead-selected';
8
+ export var typeAheadList = css({
9
9
  background: token('elevation.surface.overlay', 'white'),
10
10
  border: "1px solid ".concat(noDialogContainerBorderColor),
11
11
  borderRadius: noDialogContainerBorderRadius,
@@ -13,31 +13,31 @@ export var typeAheadList = style({
13
13
  color: token('color.text.subtle', '#333'),
14
14
  width: emojiTypeAheadWidth
15
15
  });
16
- export var typeAheadEmpty = style({
16
+ export var typeAheadEmpty = css({
17
17
  display: 'none'
18
18
  });
19
- export var typeAheadItem = style({
19
+ export var selected = css({
20
+ backgroundColor: emojiPreviewSelectedColor
21
+ });
22
+ export var typeAheadItem = css({
20
23
  cursor: 'pointer',
21
24
  display: 'block',
22
25
  listStyleType: 'none',
23
26
  overflow: 'hidden',
24
- width: emojiTypeAheadWidth,
25
- $nest: _defineProperty({}, "&.".concat(selected), {
26
- backgroundColor: emojiPreviewSelectedColor
27
- })
27
+ width: emojiTypeAheadWidth
28
28
  });
29
- export var typeAheadItemRow = style({
29
+ export var typeAheadItemRow = css({
30
30
  display: 'flex',
31
31
  flexDirection: 'row',
32
32
  flexWrap: 'wrap',
33
33
  verticalAlign: 'middle'
34
34
  });
35
- export var emojiTypeAheadSpinnerContainer = style({
35
+ export var emojiTypeAheadSpinnerContainer = css({
36
36
  position: 'relative',
37
37
  height: "".concat(emojiTypeAheadMaxHeight, "px"),
38
38
  paddingTop: "".concat(((emojiTypeAheadMaxHeight - 30) / 2).toFixed(), "px"),
39
39
  boxSizing: 'border-box'
40
40
  });
41
- export var emojiTypeAheadSpinner = style({
41
+ export var emojiTypeAheadSpinner = css({
42
42
  textAlign: 'center'
43
43
  });