@atlaskit/smart-card 18.0.13 → 18.0.16

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 (243) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/cjs/extractors/common/context/extractProvider.js +14 -4
  3. package/dist/cjs/extractors/common/detail/extractCommentCount.js +3 -1
  4. package/dist/cjs/extractors/common/detail/extractProgrammingLanguage.js +3 -1
  5. package/dist/cjs/extractors/common/detail/extractSubscriberCount.js +3 -1
  6. package/dist/cjs/extractors/common/primitives/extractTitleTextColor.js +3 -1
  7. package/dist/cjs/state/analytics/useSmartLinkAnalytics.js +9 -0
  8. package/dist/cjs/state/flexible-ui-context/index.js +4 -0
  9. package/dist/cjs/utils/analytics/analytics.js +52 -2
  10. package/dist/cjs/utils/analytics/index.js +18 -0
  11. package/dist/cjs/version.json +1 -1
  12. package/dist/cjs/view/BlockCard/components/Frame.js +10 -7
  13. package/dist/cjs/view/BlockCard/components/Link.js +3 -1
  14. package/dist/cjs/view/BlockCard/components/Provider.js +3 -1
  15. package/dist/cjs/view/BlockCard/views/ErroredView.js +3 -1
  16. package/dist/cjs/view/BlockCard/views/ForbiddenView.js +3 -1
  17. package/dist/cjs/view/BlockCard/views/NotFoundView.js +3 -1
  18. package/dist/cjs/view/BlockCard/views/ResolvingView.js +4 -2
  19. package/dist/cjs/view/CardWithUrl/component.js +4 -2
  20. package/dist/cjs/view/CardWithUrl/loader.js +4 -2
  21. package/dist/cjs/view/EmbedCard/components/styled.js +15 -13
  22. package/dist/cjs/view/EmbedCard/views/ErroredView.js +3 -1
  23. package/dist/cjs/view/FlexibleCard/components/actions/action/index.js +26 -4
  24. package/dist/cjs/view/FlexibleCard/components/actions/index.js +18 -2
  25. package/dist/cjs/view/FlexibleCard/components/blocks/action-group/index.js +6 -0
  26. package/dist/cjs/view/FlexibleCard/components/blocks/block/index.js +9 -2
  27. package/dist/cjs/view/FlexibleCard/components/blocks/element-group/index.js +9 -2
  28. package/dist/cjs/view/FlexibleCard/components/blocks/footer-block/index.js +6 -0
  29. package/dist/cjs/view/FlexibleCard/components/blocks/metadata-block/index.js +9 -2
  30. package/dist/cjs/view/FlexibleCard/components/blocks/preview-block/index.js +5 -0
  31. package/dist/cjs/view/FlexibleCard/components/blocks/snippet-block/index.js +5 -0
  32. package/dist/cjs/view/FlexibleCard/components/blocks/title-block/errored/index.js +39 -19
  33. package/dist/cjs/view/FlexibleCard/components/blocks/title-block/index.js +92 -17
  34. package/dist/cjs/view/FlexibleCard/components/blocks/title-block/resolved/index.js +45 -9
  35. package/dist/cjs/view/FlexibleCard/components/blocks/title-block/resolving/index.js +23 -12
  36. package/dist/cjs/view/FlexibleCard/components/common/atlaskit-icon/index.js +8 -2
  37. package/dist/cjs/view/FlexibleCard/components/common/image-icon/index.js +3 -1
  38. package/dist/cjs/view/FlexibleCard/components/container/index.js +5 -0
  39. package/dist/cjs/view/FlexibleCard/components/elements/avatar-group/index.js +12 -1
  40. package/dist/cjs/view/FlexibleCard/components/elements/badge/index.js +18 -3
  41. package/dist/cjs/view/FlexibleCard/components/elements/date-time/index.js +9 -1
  42. package/dist/cjs/view/FlexibleCard/components/elements/icon/index.js +9 -1
  43. package/dist/cjs/view/FlexibleCard/components/elements/index.js +96 -0
  44. package/dist/cjs/view/FlexibleCard/components/elements/link/index.js +10 -1
  45. package/dist/cjs/view/FlexibleCard/components/elements/lozenge/index.js +11 -3
  46. package/dist/cjs/view/FlexibleCard/components/elements/media/index.js +9 -2
  47. package/dist/cjs/view/FlexibleCard/components/elements/text/index.js +12 -6
  48. package/dist/cjs/view/FlexibleCard/components/elements/utils.js +7 -3
  49. package/dist/cjs/view/FlexibleCard/index.js +6 -0
  50. package/dist/cjs/view/HoverCard/index.js +48 -10
  51. package/dist/cjs/view/HoverCard/styled.js +3 -1
  52. package/dist/cjs/view/InlineCard/ErroredView/index.js +3 -1
  53. package/dist/cjs/view/InlineCard/ForbiddenView/index.js +4 -2
  54. package/dist/cjs/view/InlineCard/Frame/styled.js +16 -13
  55. package/dist/cjs/view/InlineCard/Icon.js +3 -1
  56. package/dist/cjs/view/InlineCard/UnauthorisedView/index.js +4 -2
  57. package/dist/cjs/view/InlineCard/styled.js +6 -4
  58. package/dist/cjs/view/common/Byline.js +3 -1
  59. package/dist/cjs/view/common/Metadata.js +3 -1
  60. package/dist/cjs/view/common/ModalHeader.js +4 -2
  61. package/dist/es2019/extractors/common/context/extractProvider.js +13 -4
  62. package/dist/es2019/extractors/common/detail/extractCommentCount.js +2 -1
  63. package/dist/es2019/extractors/common/detail/extractProgrammingLanguage.js +2 -1
  64. package/dist/es2019/extractors/common/detail/extractSubscriberCount.js +2 -1
  65. package/dist/es2019/extractors/common/primitives/extractTitleTextColor.js +2 -1
  66. package/dist/es2019/state/analytics/useSmartLinkAnalytics.js +7 -2
  67. package/dist/es2019/state/flexible-ui-context/index.js +5 -0
  68. package/dist/es2019/utils/analytics/analytics.js +35 -0
  69. package/dist/es2019/utils/analytics/index.js +1 -1
  70. package/dist/es2019/version.json +1 -1
  71. package/dist/es2019/view/BlockCard/components/Frame.js +9 -7
  72. package/dist/es2019/view/BlockCard/components/Link.js +2 -1
  73. package/dist/es2019/view/BlockCard/components/Provider.js +2 -1
  74. package/dist/es2019/view/BlockCard/views/ErroredView.js +2 -1
  75. package/dist/es2019/view/BlockCard/views/ForbiddenView.js +2 -1
  76. package/dist/es2019/view/BlockCard/views/NotFoundView.js +2 -1
  77. package/dist/es2019/view/BlockCard/views/ResolvingView.js +3 -2
  78. package/dist/es2019/view/CardWithUrl/component.js +4 -2
  79. package/dist/es2019/view/CardWithUrl/loader.js +4 -2
  80. package/dist/es2019/view/EmbedCard/components/styled.js +15 -15
  81. package/dist/es2019/view/EmbedCard/views/ErroredView.js +2 -1
  82. package/dist/es2019/view/FlexibleCard/components/actions/action/index.js +37 -4
  83. package/dist/es2019/view/FlexibleCard/components/actions/index.js +18 -2
  84. package/dist/es2019/view/FlexibleCard/components/blocks/action-group/index.js +6 -0
  85. package/dist/es2019/view/FlexibleCard/components/blocks/block/index.js +9 -2
  86. package/dist/es2019/view/FlexibleCard/components/blocks/element-group/index.js +8 -2
  87. package/dist/es2019/view/FlexibleCard/components/blocks/footer-block/index.js +6 -0
  88. package/dist/es2019/view/FlexibleCard/components/blocks/metadata-block/index.js +9 -2
  89. package/dist/es2019/view/FlexibleCard/components/blocks/preview-block/index.js +5 -0
  90. package/dist/es2019/view/FlexibleCard/components/blocks/snippet-block/index.js +5 -0
  91. package/dist/es2019/view/FlexibleCard/components/blocks/title-block/errored/index.js +31 -15
  92. package/dist/es2019/view/FlexibleCard/components/blocks/title-block/index.js +77 -15
  93. package/dist/es2019/view/FlexibleCard/components/blocks/title-block/resolved/index.js +35 -8
  94. package/dist/es2019/view/FlexibleCard/components/blocks/title-block/resolving/index.js +20 -11
  95. package/dist/es2019/view/FlexibleCard/components/common/atlaskit-icon/index.js +8 -3
  96. package/dist/es2019/view/FlexibleCard/components/common/image-icon/index.js +7 -6
  97. package/dist/es2019/view/FlexibleCard/components/container/index.js +5 -0
  98. package/dist/es2019/view/FlexibleCard/components/elements/avatar-group/index.js +12 -1
  99. package/dist/es2019/view/FlexibleCard/components/elements/badge/index.js +18 -3
  100. package/dist/es2019/view/FlexibleCard/components/elements/date-time/index.js +9 -1
  101. package/dist/es2019/view/FlexibleCard/components/elements/icon/index.js +9 -1
  102. package/dist/es2019/view/FlexibleCard/components/elements/index.js +96 -0
  103. package/dist/es2019/view/FlexibleCard/components/elements/link/index.js +10 -1
  104. package/dist/es2019/view/FlexibleCard/components/elements/lozenge/index.js +11 -3
  105. package/dist/es2019/view/FlexibleCard/components/elements/media/index.js +8 -1
  106. package/dist/es2019/view/FlexibleCard/components/elements/text/index.js +11 -4
  107. package/dist/es2019/view/FlexibleCard/components/elements/utils.js +5 -2
  108. package/dist/es2019/view/FlexibleCard/index.js +6 -0
  109. package/dist/es2019/view/HoverCard/index.js +40 -10
  110. package/dist/es2019/view/HoverCard/styled.js +6 -1
  111. package/dist/es2019/view/InlineCard/ErroredView/index.js +2 -1
  112. package/dist/es2019/view/InlineCard/ForbiddenView/index.js +3 -2
  113. package/dist/es2019/view/InlineCard/Frame/styled.js +15 -12
  114. package/dist/es2019/view/InlineCard/Icon.js +7 -6
  115. package/dist/es2019/view/InlineCard/UnauthorisedView/index.js +3 -2
  116. package/dist/es2019/view/InlineCard/styled.js +5 -4
  117. package/dist/es2019/view/common/Byline.js +2 -1
  118. package/dist/es2019/view/common/Metadata.js +2 -1
  119. package/dist/es2019/view/common/ModalHeader.js +3 -2
  120. package/dist/esm/extractors/common/context/extractProvider.js +13 -4
  121. package/dist/esm/extractors/common/detail/extractCommentCount.js +2 -1
  122. package/dist/esm/extractors/common/detail/extractProgrammingLanguage.js +2 -1
  123. package/dist/esm/extractors/common/detail/extractSubscriberCount.js +2 -1
  124. package/dist/esm/extractors/common/primitives/extractTitleTextColor.js +2 -1
  125. package/dist/esm/state/analytics/useSmartLinkAnalytics.js +10 -1
  126. package/dist/esm/state/flexible-ui-context/index.js +5 -0
  127. package/dist/esm/utils/analytics/analytics.js +41 -0
  128. package/dist/esm/utils/analytics/index.js +1 -1
  129. package/dist/esm/version.json +1 -1
  130. package/dist/esm/view/BlockCard/components/Frame.js +9 -7
  131. package/dist/esm/view/BlockCard/components/Link.js +2 -1
  132. package/dist/esm/view/BlockCard/components/Provider.js +2 -1
  133. package/dist/esm/view/BlockCard/views/ErroredView.js +2 -1
  134. package/dist/esm/view/BlockCard/views/ForbiddenView.js +2 -1
  135. package/dist/esm/view/BlockCard/views/NotFoundView.js +2 -1
  136. package/dist/esm/view/BlockCard/views/ResolvingView.js +3 -2
  137. package/dist/esm/view/CardWithUrl/component.js +4 -2
  138. package/dist/esm/view/CardWithUrl/loader.js +4 -2
  139. package/dist/esm/view/EmbedCard/components/styled.js +14 -13
  140. package/dist/esm/view/EmbedCard/views/ErroredView.js +2 -1
  141. package/dist/esm/view/FlexibleCard/components/actions/action/index.js +25 -4
  142. package/dist/esm/view/FlexibleCard/components/actions/index.js +18 -2
  143. package/dist/esm/view/FlexibleCard/components/blocks/action-group/index.js +6 -0
  144. package/dist/esm/view/FlexibleCard/components/blocks/block/index.js +9 -2
  145. package/dist/esm/view/FlexibleCard/components/blocks/element-group/index.js +8 -2
  146. package/dist/esm/view/FlexibleCard/components/blocks/footer-block/index.js +6 -0
  147. package/dist/esm/view/FlexibleCard/components/blocks/metadata-block/index.js +9 -2
  148. package/dist/esm/view/FlexibleCard/components/blocks/preview-block/index.js +5 -0
  149. package/dist/esm/view/FlexibleCard/components/blocks/snippet-block/index.js +5 -0
  150. package/dist/esm/view/FlexibleCard/components/blocks/title-block/errored/index.js +33 -16
  151. package/dist/esm/view/FlexibleCard/components/blocks/title-block/index.js +79 -17
  152. package/dist/esm/view/FlexibleCard/components/blocks/title-block/resolved/index.js +39 -8
  153. package/dist/esm/view/FlexibleCard/components/blocks/title-block/resolving/index.js +22 -11
  154. package/dist/esm/view/FlexibleCard/components/common/atlaskit-icon/index.js +8 -3
  155. package/dist/esm/view/FlexibleCard/components/common/image-icon/index.js +2 -1
  156. package/dist/esm/view/FlexibleCard/components/container/index.js +5 -0
  157. package/dist/esm/view/FlexibleCard/components/elements/avatar-group/index.js +12 -1
  158. package/dist/esm/view/FlexibleCard/components/elements/badge/index.js +18 -3
  159. package/dist/esm/view/FlexibleCard/components/elements/date-time/index.js +9 -1
  160. package/dist/esm/view/FlexibleCard/components/elements/icon/index.js +9 -1
  161. package/dist/esm/view/FlexibleCard/components/elements/index.js +96 -0
  162. package/dist/esm/view/FlexibleCard/components/elements/link/index.js +10 -1
  163. package/dist/esm/view/FlexibleCard/components/elements/lozenge/index.js +11 -3
  164. package/dist/esm/view/FlexibleCard/components/elements/media/index.js +9 -2
  165. package/dist/esm/view/FlexibleCard/components/elements/text/index.js +12 -6
  166. package/dist/esm/view/FlexibleCard/components/elements/utils.js +5 -3
  167. package/dist/esm/view/FlexibleCard/index.js +6 -0
  168. package/dist/esm/view/HoverCard/index.js +42 -10
  169. package/dist/esm/view/HoverCard/styled.js +2 -1
  170. package/dist/esm/view/InlineCard/ErroredView/index.js +2 -1
  171. package/dist/esm/view/InlineCard/ForbiddenView/index.js +3 -2
  172. package/dist/esm/view/InlineCard/Frame/styled.js +16 -13
  173. package/dist/esm/view/InlineCard/Icon.js +2 -1
  174. package/dist/esm/view/InlineCard/UnauthorisedView/index.js +3 -2
  175. package/dist/esm/view/InlineCard/styled.js +5 -4
  176. package/dist/esm/view/common/Byline.js +2 -1
  177. package/dist/esm/view/common/Metadata.js +2 -1
  178. package/dist/esm/view/common/ModalHeader.js +3 -2
  179. package/dist/types/client/errors.d.ts +3 -2
  180. package/dist/types/extractors/block/index.d.ts +2 -2
  181. package/dist/types/extractors/common/__mocks__/jsonld.d.ts +46 -66
  182. package/dist/types/extractors/common/actions/extractPreviewAction.d.ts +1 -1
  183. package/dist/types/extractors/common/title-prefix/extractTitlePrefix.d.ts +2 -1
  184. package/dist/types/extractors/embed/index.d.ts +1 -1
  185. package/dist/types/extractors/flexible/icon/extract-url-icon.d.ts +1 -1
  186. package/dist/types/state/analytics/useSmartLinkAnalytics.d.ts +4 -0
  187. package/dist/types/state/flexible-ui-context/index.d.ts +4 -0
  188. package/dist/types/state/flexible-ui-context/types.d.ts +102 -0
  189. package/dist/types/state/hooks/useSmartLink.d.ts +3 -0
  190. package/dist/types/utils/analytics/analytics.d.ts +5 -1
  191. package/dist/types/utils/analytics/index.d.ts +1 -1
  192. package/dist/types/utils/types.d.ts +2 -2
  193. package/dist/types/view/BlockCard/utils/handlers.d.ts +1 -1
  194. package/dist/types/view/Card/index.d.ts +1 -1
  195. package/dist/types/view/Card/types.d.ts +1 -0
  196. package/dist/types/view/CardWithUrl/component.d.ts +1 -1
  197. package/dist/types/view/CardWithUrl/types.d.ts +1 -0
  198. package/dist/types/view/EmbedCard/components/styled.d.ts +9 -9
  199. package/dist/types/view/FlexibleCard/components/actions/action/index.d.ts +8 -0
  200. package/dist/types/view/FlexibleCard/components/actions/action/types.d.ts +4 -2
  201. package/dist/types/view/FlexibleCard/components/actions/index.d.ts +15 -0
  202. package/dist/types/view/FlexibleCard/components/blocks/action-group/index.d.ts +6 -0
  203. package/dist/types/view/FlexibleCard/components/blocks/action-group/types.d.ts +1 -1
  204. package/dist/types/view/FlexibleCard/components/blocks/block/index.d.ts +6 -0
  205. package/dist/types/view/FlexibleCard/components/blocks/element-group/index.d.ts +6 -0
  206. package/dist/types/view/FlexibleCard/components/blocks/element-group/types.d.ts +2 -2
  207. package/dist/types/view/FlexibleCard/components/blocks/footer-block/index.d.ts +6 -0
  208. package/dist/types/view/FlexibleCard/components/blocks/metadata-block/index.d.ts +6 -0
  209. package/dist/types/view/FlexibleCard/components/blocks/preview-block/index.d.ts +5 -0
  210. package/dist/types/view/FlexibleCard/components/blocks/snippet-block/index.d.ts +5 -0
  211. package/dist/types/view/FlexibleCard/components/blocks/title-block/errored/index.d.ts +9 -2
  212. package/dist/types/view/FlexibleCard/components/blocks/title-block/index.d.ts +11 -0
  213. package/dist/types/view/FlexibleCard/components/blocks/title-block/resolved/index.d.ts +7 -3
  214. package/dist/types/view/FlexibleCard/components/blocks/title-block/resolving/index.d.ts +8 -2
  215. package/dist/types/view/FlexibleCard/components/blocks/title-block/types.d.ts +10 -1
  216. package/dist/types/view/FlexibleCard/components/blocks/types.d.ts +7 -5
  217. package/dist/types/view/FlexibleCard/components/blocks/utils.d.ts +2 -1
  218. package/dist/types/view/FlexibleCard/components/container/index.d.ts +4 -0
  219. package/dist/types/view/FlexibleCard/components/container/types.d.ts +2 -2
  220. package/dist/types/view/FlexibleCard/components/elements/avatar-group/index.d.ts +7 -0
  221. package/dist/types/view/FlexibleCard/components/elements/badge/index.d.ts +13 -0
  222. package/dist/types/view/FlexibleCard/components/elements/date-time/index.d.ts +7 -0
  223. package/dist/types/view/FlexibleCard/components/elements/icon/index.d.ts +6 -0
  224. package/dist/types/view/FlexibleCard/components/elements/icon/types.d.ts +5 -1
  225. package/dist/types/view/FlexibleCard/components/elements/index.d.ts +77 -0
  226. package/dist/types/view/FlexibleCard/components/elements/link/index.d.ts +6 -0
  227. package/dist/types/view/FlexibleCard/components/elements/lozenge/index.d.ts +6 -0
  228. package/dist/types/view/FlexibleCard/components/elements/media/index.d.ts +6 -0
  229. package/dist/types/view/FlexibleCard/components/elements/text/index.d.ts +6 -0
  230. package/dist/types/view/FlexibleCard/components/elements/text/types.d.ts +1 -2
  231. package/dist/types/view/FlexibleCard/components/elements/types.d.ts +2 -0
  232. package/dist/types/view/FlexibleCard/index.d.ts +6 -0
  233. package/dist/types/view/HoverCard/index.d.ts +3 -2
  234. package/dist/types/view/HoverCard/types.d.ts +5 -2
  235. package/dist/types/view/InlineCard/Icon.d.ts +3 -3
  236. package/dist/types/view/InlineCard/IconAndTitleLayout/styled.d.ts +9 -9
  237. package/dist/types/view/InlineCard/ResolvingView/styled.d.ts +3 -3
  238. package/dist/types/view/InlineCard/styled.d.ts +4 -4
  239. package/package.json +9 -4
  240. package/dist/cjs/view/FlexibleCard/components/blocks/title-block/utils.js +0 -105
  241. package/dist/es2019/view/FlexibleCard/components/blocks/title-block/utils.js +0 -71
  242. package/dist/esm/view/FlexibleCard/components/blocks/title-block/utils.js +0 -76
  243. package/dist/types/view/FlexibleCard/components/blocks/title-block/utils.d.ts +0 -11
@@ -77,6 +77,11 @@ var renderChildren = function renderChildren(children, containerSize, containerT
77
77
  }
78
78
  });
79
79
  };
80
+ /**
81
+ * This represents the container in which all Flexible UI Smart Links are rendered.
82
+ * @see Block
83
+ */
84
+
80
85
 
81
86
  var Container = function Container(_ref) {
82
87
  var children = _ref.children,
@@ -34,12 +34,21 @@ var getStyles = function getStyles(size) {
34
34
  return (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n li {\n span,\n svg {\n max-height: 1.25rem;\n max-width: 1.25rem;\n }\n }\n "])));
35
35
  }
36
36
  };
37
+ /**
38
+ * An element that displays a group of avatars.
39
+ * @public
40
+ * @param {AvatarGroupProps} AvatarGroupProps - The props necessary for the AvatarGroup.
41
+ * @see AuthorGroup
42
+ * @see CollaboratorGroup
43
+ */
44
+
37
45
 
38
46
  var AvatarGroup = function AvatarGroup(_ref) {
39
47
  var _ref$items = _ref.items,
40
48
  items = _ref$items === void 0 ? [] : _ref$items,
41
49
  _ref$maxCount = _ref.maxCount,
42
50
  maxCount = _ref$maxCount === void 0 ? MAX_COUNT : _ref$maxCount,
51
+ overrideCss = _ref.overrideCss,
43
52
  _ref$size = _ref.size,
44
53
  size = _ref$size === void 0 ? _constants.SmartLinkSize.Medium : _ref$size,
45
54
  _ref$testId = _ref.testId,
@@ -50,7 +59,9 @@ var AvatarGroup = function AvatarGroup(_ref) {
50
59
  }
51
60
 
52
61
  return (0, _core.jsx)("span", {
53
- css: getStyles(size)
62
+ css: [getStyles(size), overrideCss],
63
+ "data-smart-element-avatar-group": true,
64
+ "data-testid": testId
54
65
  }, (0, _core.jsx)(_avatarGroup.default, {
55
66
  maxCount: maxCount,
56
67
  appearance: "stack",
@@ -64,13 +64,28 @@ var renderImageIcon = function renderImageIcon(url, testId) {
64
64
  });
65
65
  }
66
66
  };
67
+ /**
68
+ * An element that displays some text with an associated icon.
69
+ * @public
70
+ * @param {BadgeProps} BadgeProps - The props necessary for the Badge.
71
+ * @see CommentCount
72
+ * @see ViewCount
73
+ * @see ReactCount
74
+ * @see VoteCount
75
+ * @see SubscriberCount
76
+ * @see Priority
77
+ * @see ProgrammingLanguage
78
+ * @see Provider
79
+ */
80
+
67
81
 
68
82
  var Badge = function Badge(_ref) {
69
83
  var icon = _ref.icon,
70
- url = _ref.url,
71
84
  label = _ref.label,
85
+ overrideCss = _ref.overrideCss,
72
86
  _ref$testId = _ref.testId,
73
- testId = _ref$testId === void 0 ? 'smart-element-badge' : _ref$testId;
87
+ testId = _ref$testId === void 0 ? 'smart-element-badge' : _ref$testId,
88
+ url = _ref.url;
74
89
  var formattedMessageOrLabel = getFormattedMessageFromIcon(icon) || label;
75
90
  var badgeIcon = renderAtlaskitIcon(icon, testId) || renderImageIcon(url, testId);
76
91
 
@@ -79,7 +94,7 @@ var Badge = function Badge(_ref) {
79
94
  }
80
95
 
81
96
  return (0, _core.jsx)("div", {
82
- css: badgeStyles,
97
+ css: [badgeStyles, overrideCss],
83
98
  "data-fit-to-content": true,
84
99
  "data-smart-element-badge": true,
85
100
  "data-testid": testId
@@ -32,9 +32,17 @@ var typeToDescriptorMap = {
32
32
  created: _messages.messages.created_on,
33
33
  modified: _messages.messages.modified_on
34
34
  };
35
+ /**
36
+ * An element that displays an ISO Timestamp in text.
37
+ * @public
38
+ * @param {DateTimeProps} DateTimeProps - The props necessary for the DateTime element.
39
+ * @see CreatedOn
40
+ * @see ModifiedOn
41
+ */
35
42
 
36
43
  var DateTime = function DateTime(_ref) {
37
44
  var date = _ref.date,
45
+ overrideCss = _ref.overrideCss,
38
46
  type = _ref.type,
39
47
  _ref$testId = _ref.testId,
40
48
  testId = _ref$testId === void 0 ? 'smart-element-date-time' : _ref$testId;
@@ -54,7 +62,7 @@ var DateTime = function DateTime(_ref) {
54
62
  numeric: 'auto'
55
63
  });
56
64
  return (0, _core.jsx)("span", {
57
- css: styles,
65
+ css: [styles, overrideCss],
58
66
  "data-separator": true,
59
67
  "data-smart-element-date-time": true,
60
68
  "data-testid": testId
@@ -93,6 +93,13 @@ var renderImageIcon = function renderImageIcon(defaultIcon, icon, url, testId) {
93
93
  });
94
94
  }
95
95
  };
96
+ /**
97
+ * An element that displays an Icon or favicon.
98
+ * @public
99
+ * @param {IconProps} IconProps - The props necessary for the Icon element.
100
+ * @see LinkIcon
101
+ */
102
+
96
103
 
97
104
  var Icon = function Icon(_ref) {
98
105
  var icon = _ref.icon,
@@ -100,6 +107,7 @@ var Icon = function Icon(_ref) {
100
107
  label = _ref$label === void 0 ? 'Link' : _ref$label,
101
108
  _ref$position = _ref.position,
102
109
  position = _ref$position === void 0 ? _constants.SmartLinkPosition.Top : _ref$position,
110
+ overrideCss = _ref.overrideCss,
103
111
  render = _ref.render,
104
112
  _ref$size = _ref.size,
105
113
  size = _ref$size === void 0 ? _constants.SmartLinkSize.Medium : _ref$size,
@@ -114,7 +122,7 @@ var Icon = function Icon(_ref) {
114
122
  var styles = getIconStyles(size, position, width);
115
123
  var renderStyles = render ? getCustomRenderStyles(width) : undefined;
116
124
  return (0, _core.jsx)("div", {
117
- css: [styles, renderStyles],
125
+ css: [styles, renderStyles, overrideCss],
118
126
  "data-fit-to-content": true,
119
127
  "data-smart-element-icon": true,
120
128
  "data-testid": testId
@@ -12,41 +12,137 @@ var _constants = require("../../../../constants");
12
12
  // Attention: Keep the export name and element name the same.
13
13
  // This will help reducing the code for mapping elements inside
14
14
  // createElement and renderElementItems
15
+
16
+ /**
17
+ * Creates an AvatarGroup element using the data from AuthorGroup in the Flexible UI Context.
18
+ * @see AvatarGroup
19
+ */
15
20
  var AuthorGroup = (0, _utils.createElement)(_constants.ElementName.AuthorGroup);
21
+ /**
22
+ * Creates an AvatarGroup element using the data from CollaboratorGroup in the Flexible UI Context.
23
+ * @see AvatarGroup
24
+ */
25
+
16
26
  exports.AuthorGroup = AuthorGroup;
17
27
  var CollaboratorGroup = (0, _utils.createElement)(_constants.ElementName.CollaboratorGroup);
28
+ /**
29
+ * Creates a CommentCount Badge element using the data from CommentCount in the Flexible UI Context.
30
+ * @see Badge
31
+ */
32
+
18
33
  exports.CollaboratorGroup = CollaboratorGroup;
19
34
  var CommentCount = (0, _utils.createElement)(_constants.ElementName.CommentCount);
35
+ /**
36
+ * Creates a ViewCount Badge element using the data from ViewCount in the Flexible UI Context.
37
+ * @see Badge
38
+ */
39
+
20
40
  exports.CommentCount = CommentCount;
21
41
  var ViewCount = (0, _utils.createElement)(_constants.ElementName.ViewCount);
42
+ /**
43
+ * Creates a ReactCount Badge element using the data from ReactCount in the Flexible UI Context.
44
+ * @see Badge
45
+ */
46
+
22
47
  exports.ViewCount = ViewCount;
23
48
  var ReactCount = (0, _utils.createElement)(_constants.ElementName.ReactCount);
49
+ /**
50
+ * Creates a VoteCount Badge element using the data from VoteCount in the Flexible UI Context.
51
+ * @see Badge
52
+ */
53
+
24
54
  exports.ReactCount = ReactCount;
25
55
  var VoteCount = (0, _utils.createElement)(_constants.ElementName.VoteCount);
56
+ /**
57
+ * Creates a CreatedBy text element using the data from CreatedBy in the Flexible UI Context.
58
+ * @see Text
59
+ */
60
+
26
61
  exports.VoteCount = VoteCount;
27
62
  var CreatedBy = (0, _utils.createElement)(_constants.ElementName.CreatedBy);
63
+ /**
64
+ * Creates a CreatedOn DateTime element using the data from CreatedOn in the Flexible UI Context.
65
+ * @see DateTime
66
+ */
67
+
28
68
  exports.CreatedBy = CreatedBy;
29
69
  var CreatedOn = (0, _utils.createElement)(_constants.ElementName.CreatedOn);
70
+ /**
71
+ * Creates a LinkIcon Icon element using the data from LinkIcon in the Flexible UI Context.
72
+ * @see Icon
73
+ */
74
+
30
75
  exports.CreatedOn = CreatedOn;
31
76
  var LinkIcon = (0, _utils.createElement)(_constants.ElementName.LinkIcon);
77
+ /**
78
+ * Creates a ModifiedBy Text element using the data from ModifiedBy in the Flexible UI Context.
79
+ * @see Text
80
+ */
81
+
32
82
  exports.LinkIcon = LinkIcon;
33
83
  var ModifiedBy = (0, _utils.createElement)(_constants.ElementName.ModifiedBy);
84
+ /**
85
+ * Creates a ModifiedOn DateTime element using the data from ModifiedOn in the Flexible UI Context.
86
+ * @see DateTime
87
+ */
88
+
34
89
  exports.ModifiedBy = ModifiedBy;
35
90
  var ModifiedOn = (0, _utils.createElement)(_constants.ElementName.ModifiedOn);
91
+ /**
92
+ * Creates a Preview element using the data from Preview in the Flexible UI Context.
93
+ * @see Preview
94
+ */
95
+
36
96
  exports.ModifiedOn = ModifiedOn;
37
97
  var Preview = (0, _utils.createElement)(_constants.ElementName.Preview);
98
+ /**
99
+ * Creates a Priority Badge element using the data from Priority in the Flexible UI Context.
100
+ * @see Badge
101
+ */
102
+
38
103
  exports.Preview = Preview;
39
104
  var Priority = (0, _utils.createElement)(_constants.ElementName.Priority);
105
+ /**
106
+ * Creates a ProgrammingLanguage Badge element using the data from ProgrammingLanguage in the Flexible UI Context.
107
+ * @see Badge
108
+ */
109
+
40
110
  exports.Priority = Priority;
41
111
  var ProgrammingLanguage = (0, _utils.createElement)(_constants.ElementName.ProgrammingLanguage);
112
+ /**
113
+ * Creates a Snippet element using the data from Snippet in the Flexible UI Context.
114
+ * @see Text
115
+ */
116
+
42
117
  exports.ProgrammingLanguage = ProgrammingLanguage;
43
118
  var Snippet = (0, _utils.createElement)(_constants.ElementName.Snippet);
119
+ /**
120
+ * Creates a State Lozenge element using the data from State in the Flexible UI Context.
121
+ * @see Lozenge
122
+ */
123
+
44
124
  exports.Snippet = Snippet;
45
125
  var State = (0, _utils.createElement)(_constants.ElementName.State);
126
+ /**
127
+ * Creates a SubscriberCount Badge element using the data from SubscriberCount in the Flexible UI Context.
128
+ * @see Badge
129
+ */
130
+
46
131
  exports.State = State;
47
132
  var SubscriberCount = (0, _utils.createElement)(_constants.ElementName.SubscriberCount);
133
+ /**
134
+ * Creates a Title Link element using the data from Title in the Flexible UI Context.
135
+ * This represents the main link text within the Smart Link.
136
+ * @see Link
137
+ */
138
+
48
139
  exports.SubscriberCount = SubscriberCount;
49
140
  var Title = (0, _utils.createElement)(_constants.ElementName.Title);
141
+ /**
142
+ * Creates a Provider Badge element using the data from Provider in the Flexible UI Context.
143
+ * @see Badge
144
+ */
145
+
50
146
  exports.Title = Title;
51
147
  var Provider = (0, _utils.createElement)(_constants.ElementName.Provider);
52
148
  exports.Provider = Provider;
@@ -30,6 +30,7 @@ var containerStyles = (0, _core.css)(_templateObject || (_templateObject = (0, _
30
30
 
31
31
  var getThemeStyles = function getThemeStyles(theme) {
32
32
  switch (theme) {
33
+ // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage
33
34
  case _constants.SmartLinkTheme.Black:
34
35
  return (0, _core.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n color: ", ";\n :active {\n color: ", ";\n }\n :hover {\n color: ", ";\n text-decoration: underline;\n }\n "])), _token.tokens.blackLink, _token.tokens.blackLinkPressed, _token.tokens.blackLink);
35
36
 
@@ -55,10 +56,18 @@ var getMaxLines = function getMaxLines(maxLines) {
55
56
 
56
57
  return maxLines;
57
58
  };
59
+ /**
60
+ * An element that represent.
61
+ * @public
62
+ * @param {LinkProps} LinkProps - The props necessary for the Icon element.
63
+ * @see LinkIcon
64
+ */
65
+
58
66
 
59
67
  var Link = function Link(_ref) {
60
68
  var _ref$maxLines = _ref.maxLines,
61
69
  maxLines = _ref$maxLines === void 0 ? DEFAULT_MAX_LINES : _ref$maxLines,
70
+ overrideCss = _ref.overrideCss,
62
71
  _ref$size = _ref.size,
63
72
  size = _ref$size === void 0 ? _constants.SmartLinkSize.Medium : _ref$size,
64
73
  _ref$testId = _ref.testId,
@@ -76,7 +85,7 @@ var Link = function Link(_ref) {
76
85
  testId: "".concat(testId, "-tooltip"),
77
86
  tag: "span"
78
87
  }, (0, _core.jsx)("a", {
79
- css: getAnchorStyles(size, theme, getMaxLines(maxLines)),
88
+ css: [getAnchorStyles(size, theme, getMaxLines(maxLines)), overrideCss],
80
89
  "data-smart-element-link": true,
81
90
  "data-testid": testId,
82
91
  onClick: onClick,
@@ -18,10 +18,17 @@ var _lozenge = _interopRequireDefault(require("@atlaskit/lozenge"));
18
18
  var _templateObject;
19
19
 
20
20
  var styles = (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n line-height: inherit;\n"])));
21
+ /**
22
+ * An element that displays a Lozenge.
23
+ * @public
24
+ * @param {LozengeProps} LozengeProps - The props necessary for the Lozenge element.
25
+ * @see State
26
+ */
21
27
 
22
28
  var Lozenge = function Lozenge(_ref) {
23
29
  var _ref$appearance = _ref.appearance,
24
30
  appearance = _ref$appearance === void 0 ? 'default' : _ref$appearance,
31
+ overrideCss = _ref.overrideCss,
25
32
  text = _ref.text,
26
33
  _ref$testId = _ref.testId,
27
34
  testId = _ref$testId === void 0 ? 'smart-element-lozenge' : _ref$testId;
@@ -31,12 +38,13 @@ var Lozenge = function Lozenge(_ref) {
31
38
  }
32
39
 
33
40
  return (0, _core.jsx)("span", {
34
- css: styles,
41
+ css: [styles, overrideCss],
35
42
  "data-fit-to-content": true,
36
- "data-smart-element-lozenge": true
43
+ "data-smart-element-lozenge": true,
44
+ "data-testid": testId
37
45
  }, (0, _core.jsx)(_lozenge.default, {
38
46
  appearance: appearance,
39
- testId: testId
47
+ testId: "".concat(testId, "-lozenge")
40
48
  }, text));
41
49
  };
42
50
 
@@ -28,9 +28,16 @@ var _templateObject;
28
28
  * contents within the element's box.
29
29
  */
30
30
  var styles = (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n aspect-ratio: 16 / 9;\n display: flex;\n width: 100%;\n\n // fallback\n @supports not (aspect-ratio: auto) {\n padding-top: 56.25%; // 16:9 ratio (9 / 16 = 0.5625)\n height: 0;\n position: relative;\n overflow: hidden;\n }\n\n > img {\n min-height: 100%;\n min-width: 100%;\n max-height: 100%;\n max-width: 100%;\n object-fit: cover;\n object-position: center center;\n\n // fallback\n @supports not (aspect-ratio: auto) {\n position: absolute;\n transform: translate(-50%, -50%);\n left: 50%;\n top: 50%;\n width: auto;\n height: auto;\n }\n }\n"])));
31
+ /**
32
+ * An element that displays a Media.
33
+ * @public
34
+ * @param {MediaProps} MediaProps - The props necessary for the Media element.
35
+ * @see Preview
36
+ */
31
37
 
32
38
  var Media = function Media(_ref) {
33
- var _ref$testId = _ref.testId,
39
+ var overrideCss = _ref.overrideCss,
40
+ _ref$testId = _ref.testId,
34
41
  testId = _ref$testId === void 0 ? 'smart-element-media' : _ref$testId,
35
42
  type = _ref.type,
36
43
  url = _ref.url;
@@ -40,7 +47,7 @@ var Media = function Media(_ref) {
40
47
  }
41
48
 
42
49
  return (0, _core.jsx)("div", {
43
- css: styles,
50
+ css: [styles, overrideCss],
44
51
  "data-smart-element-media": true,
45
52
  "data-testid": testId
46
53
  }, (0, _core.jsx)(_imageIcon.default, {
@@ -19,17 +19,23 @@ var _token = require("../../../../../utils/token");
19
19
 
20
20
  var _templateObject;
21
21
 
22
- var getStyles = function getStyles(maxLines, color) {
23
- return (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n color: ", ";\n font-size: 0.75rem;\n line-height: 1rem;\n ", "\n"])), color, (0, _utils.getTruncateStyles)(maxLines));
22
+ var getStyles = function getStyles(maxLines) {
23
+ return (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n color: ", ";\n font-size: 0.75rem;\n line-height: 1rem;\n ", "\n"])), _token.tokens.text, (0, _utils.getTruncateStyles)(maxLines));
24
24
  };
25
+ /**
26
+ * An element that displays some Text.
27
+ * @public
28
+ * @param {TextProps} TextProps - The props necessary for the Text element.
29
+ * @see Title
30
+ */
31
+
25
32
 
26
33
  var Text = function Text(_ref) {
27
- var _ref$color = _ref.color,
28
- color = _ref$color === void 0 ? _token.tokens.text : _ref$color,
29
- content = _ref.content,
34
+ var content = _ref.content,
30
35
  _ref$maxLines = _ref.maxLines,
31
36
  maxLines = _ref$maxLines === void 0 ? 1 : _ref$maxLines,
32
37
  message = _ref.message,
38
+ overrideCss = _ref.overrideCss,
33
39
  _ref$testId = _ref.testId,
34
40
  testId = _ref$testId === void 0 ? 'smart-element-text' : _ref$testId;
35
41
 
@@ -38,7 +44,7 @@ var Text = function Text(_ref) {
38
44
  }
39
45
 
40
46
  return (0, _core.jsx)("span", {
41
- css: getStyles(maxLines, color),
47
+ css: [getStyles(maxLines), overrideCss],
42
48
  "data-separator": true,
43
49
  "data-smart-element-text": true,
44
50
  "data-testid": testId
@@ -13,8 +13,12 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
13
13
 
14
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
15
 
16
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
17
+
16
18
  var _react = _interopRequireWildcard(require("react"));
17
19
 
20
+ var _core = require("@emotion/core");
21
+
18
22
  var _constants = require("../../../../constants");
19
23
 
20
24
  var _icon = _interopRequireDefault(require("./icon"));
@@ -39,7 +43,7 @@ var _dateTime = _interopRequireDefault(require("./date-time"));
39
43
 
40
44
  var _token = require("../../../../utils/token");
41
45
 
42
- var _elementMappings;
46
+ var _templateObject, _elementMappings;
43
47
 
44
48
  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); }
45
49
 
@@ -88,8 +92,8 @@ var elementMappings = (_elementMappings = {}, (0, _defineProperty2.default)(_ele
88
92
  }), (0, _defineProperty2.default)(_elementMappings, _constants.ElementName.Snippet, {
89
93
  component: _text.default,
90
94
  props: {
91
- color: _token.tokens.snippet,
92
- maxLines: SNIPPET_DEFAULT_MAX_LINES
95
+ maxLines: SNIPPET_DEFAULT_MAX_LINES,
96
+ overrideCss: (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n color: ", ";\n "])), _token.tokens.snippet)
93
97
  }
94
98
  }), (0, _defineProperty2.default)(_elementMappings, _constants.ElementName.State, {
95
99
  component: _lozenge.default
@@ -17,6 +17,12 @@ var _flexibleUiContext = require("../../state/flexible-ui-context");
17
17
 
18
18
  var _utils = require("./utils");
19
19
 
20
+ /**
21
+ * This represents a Flexible Card: a link represented by a card with metadata.
22
+ * This is the container in which all Flexible UI Blocks and Elements exist.
23
+ * Note: TitleBlock is mandatory for a Flexible Card to render.
24
+ * @see Container
25
+ */
20
26
  var FlexibleCard = function FlexibleCard(_ref) {
21
27
  var cardState = _ref.cardState,
22
28
  children = _ref.children,
@@ -7,7 +7,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
- exports.HoverCard = void 0;
10
+ exports.HoverCardComponent = exports.HoverCard = void 0;
11
11
 
12
12
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
13
 
@@ -31,14 +31,28 @@ var _styled = require("./styled");
31
31
 
32
32
  var _shortcut = _interopRequireDefault(require("@atlaskit/icon/glyph/shortcut"));
33
33
 
34
+ var _analyticsNext = require("@atlaskit/analytics-next");
35
+
36
+ var _analytics = require("../../utils/analytics");
37
+
38
+ var _store = require("../../state/store");
39
+
40
+ var _analytics2 = require("../../state/analytics");
41
+
42
+ var _helpers = require("../../state/helpers");
43
+
34
44
  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); }
35
45
 
36
46
  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; }
37
47
 
38
48
  /** @jsx jsx */
39
- var HoverCard = function HoverCard(_ref) {
49
+ var HoverCardComponent = function HoverCardComponent(_ref) {
40
50
  var children = _ref.children,
41
- url = _ref.url;
51
+ url = _ref.url,
52
+ createAnalyticsEvent = _ref.createAnalyticsEvent;
53
+ var analyticsHandler = (0, _react.useCallback)(function (analyticsPayload) {
54
+ (0, _analytics.fireSmartLinkEvent)(analyticsPayload, createAnalyticsEvent);
55
+ }, [createAnalyticsEvent]);
42
56
  var delay = 300;
43
57
 
44
58
  var _React$useState = _react.default.useState(false),
@@ -48,26 +62,45 @@ var HoverCard = function HoverCard(_ref) {
48
62
 
49
63
  var fadeOutTimeoutId = (0, _react.useRef)();
50
64
  var fadeInTimeoutId = (0, _react.useRef)();
65
+ var cardOpenTime = (0, _react.useRef)();
66
+ var linkState = (0, _store.useSmartCardState)(url);
67
+ var analytics = (0, _analytics2.useSmartLinkAnalytics)(analyticsHandler);
68
+ var extensionKey = (0, _react.useMemo)(function () {
69
+ return (0, _helpers.getExtensionKey)(linkState.details);
70
+ }, [linkState]);
71
+ var definitionId = (0, _react.useMemo)(function () {
72
+ return (0, _helpers.getDefinitionId)(linkState.details);
73
+ }, [linkState]);
51
74
  var initHideCard = (0, _react.useCallback)(function () {
52
75
  if (fadeInTimeoutId.current) {
53
76
  clearTimeout(fadeInTimeoutId.current);
54
77
  }
55
78
 
56
79
  fadeOutTimeoutId.current = setTimeout(function () {
80
+ //Check its previously open to avoid firing events when moving between the child and hover card components
81
+ if (isOpen === true && cardOpenTime.current) {
82
+ var hoverTime = Date.now() - cardOpenTime.current;
83
+ analytics.ui.hoverCardDismissedEvent('card', hoverTime, definitionId, extensionKey);
84
+ }
85
+
57
86
  setIsOpen(false);
58
87
  }, delay);
59
- }, [delay]);
88
+ }, [delay, isOpen, definitionId, extensionKey, analytics]);
60
89
  var initShowCard = (0, _react.useCallback)(function () {
61
90
  if (fadeOutTimeoutId.current) {
62
91
  clearTimeout(fadeOutTimeoutId.current);
63
92
  }
64
93
 
65
94
  fadeInTimeoutId.current = setTimeout(function () {
95
+ //Check if its previously closed to avoid firing events when moving between the child and hover card components
96
+ if (isOpen === false) {
97
+ cardOpenTime.current = Date.now();
98
+ analytics.ui.hoverCardViewedEvent('card', definitionId, extensionKey);
99
+ }
100
+
66
101
  setIsOpen(true);
67
102
  }, delay);
68
- }, [delay]); //TODO: EDM-2905: Add analytics events
69
-
70
- var analyticsHandler = (0, _react.useCallback)(function () {}, []);
103
+ }, [delay, isOpen, definitionId, extensionKey, analytics]);
71
104
  var linkActions = (0, _useSmartLinkActions.useSmartLinkActions)({
72
105
  url: url,
73
106
  appearance: 'block',
@@ -94,11 +127,12 @@ var HoverCard = function HoverCard(_ref) {
94
127
  }),
95
128
  iconPosition: 'before',
96
129
  onClick: function onClick() {
97
- return window.open(url, '_blank');
130
+ window.open(url, '_blank');
131
+ analytics.ui.hoverCardOpenLinkClickedEvent('card', definitionId, extensionKey);
98
132
  },
99
133
  testId: 'hover-card-open-button'
100
134
  };
101
- }, [url]);
135
+ }, [url, definitionId, extensionKey, analytics]);
102
136
 
103
137
  var cardComponent = function cardComponent() {
104
138
  return (0, _core.jsx)("div", {
@@ -126,7 +160,7 @@ var HoverCard = function HoverCard(_ref) {
126
160
  testId: "hover-card",
127
161
  isOpen: isOpen,
128
162
  onClose: onClose,
129
- placement: "bottom",
163
+ placement: "bottom-start",
130
164
  content: cardComponent,
131
165
  trigger: function trigger(triggerProps) {
132
166
  return (0, _core.jsx)("span", (0, _extends2.default)({}, triggerProps, {
@@ -137,4 +171,8 @@ var HoverCard = function HoverCard(_ref) {
137
171
  });
138
172
  };
139
173
 
174
+ exports.HoverCardComponent = HoverCardComponent;
175
+ var HoverCard = (0, _analyticsNext.withAnalyticsContext)({
176
+ source: 'smartLinkPreviewHoverCard'
177
+ })((0, _analyticsNext.withAnalyticsEvents)()(HoverCardComponent));
140
178
  exports.HoverCard = HoverCard;
@@ -11,7 +11,9 @@ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/hel
11
11
 
12
12
  var _core = require("@emotion/core");
13
13
 
14
+ var _index = require("../../index");
15
+
14
16
  var _templateObject;
15
17
 
16
- var HoverCardContainer = (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n background: none;\n border-width: 0;\n max-width: 500px;\n padding: 0;\n"])));
18
+ var HoverCardContainer = (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n background: none;\n border-width: 0;\n max-width: 350px;\n padding: 0;\n\n .", " {\n display: none;\n }\n"])), _index.loadingPlaceholderClassName);
17
19
  exports.HoverCardContainer = HoverCardContainer;
@@ -25,6 +25,8 @@ var _react = _interopRequireDefault(require("react"));
25
25
 
26
26
  var _colors = require("@atlaskit/theme/colors");
27
27
 
28
+ var _tokens = require("@atlaskit/tokens");
29
+
28
30
  var _error = _interopRequireDefault(require("@atlaskit/icon/glyph/error"));
29
31
 
30
32
  var _customThemeButton = _interopRequireDefault(require("@atlaskit/button/custom-theme-button"));
@@ -110,7 +112,7 @@ var InlineCardErroredView = /*#__PURE__*/function (_React$Component) {
110
112
  icon: icon || /*#__PURE__*/_react.default.createElement(_Icon.AKIconWrapper, null, /*#__PURE__*/_react.default.createElement(_error.default, {
111
113
  label: "error",
112
114
  size: "small",
113
- primaryColor: _colors.R300
115
+ primaryColor: (0, _tokens.token)('color.icon.danger', _colors.R300)
114
116
  })),
115
117
  title: this.renderMessage()
116
118
  }));
@@ -27,6 +27,8 @@ var _react = _interopRequireDefault(require("react"));
27
27
 
28
28
  var _colors = require("@atlaskit/theme/colors");
29
29
 
30
+ var _tokens = require("@atlaskit/tokens");
31
+
30
32
  var _lockFilled = _interopRequireDefault(require("@atlaskit/icon/glyph/lock-filled"));
31
33
 
32
34
  var _customThemeButton = _interopRequireDefault(require("@atlaskit/button/custom-theme-button"));
@@ -50,7 +52,7 @@ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Re
50
52
  var FallbackForbiddenIcon = /*#__PURE__*/_react.default.createElement(_Icon.AKIconWrapper, null, /*#__PURE__*/_react.default.createElement(_lockFilled.default, {
51
53
  label: "error",
52
54
  size: "small",
53
- primaryColor: _colors.R400
55
+ primaryColor: (0, _tokens.token)('color.icon.danger', _colors.R400)
54
56
  }));
55
57
 
56
58
  var InlineCardForbiddenView = /*#__PURE__*/function (_React$Component) {
@@ -138,7 +140,7 @@ var InlineCardForbiddenView = /*#__PURE__*/function (_React$Component) {
138
140
  }, /*#__PURE__*/_react.default.createElement(_IconAndTitleLayout.IconAndTitleLayout, {
139
141
  icon: icon ? icon : FallbackForbiddenIcon,
140
142
  title: this.renderMessage(),
141
- titleColor: _colors.N500
143
+ titleColor: (0, _tokens.token)('color.text.subtle', _colors.N500)
142
144
  }));
143
145
  }
144
146
  }]);