@atlaskit/smart-card 26.3.2 → 26.3.4

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 (50) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/cjs/utils/analytics/SmartLinkAnalyticsContext.js +3 -1
  3. package/dist/cjs/version.json +1 -1
  4. package/dist/cjs/view/BlockCard/index.js +1 -1
  5. package/dist/cjs/view/EmbedCard/components/styled.js +10 -6
  6. package/dist/cjs/view/EmbedModal/components/link-info/styled.js +3 -2
  7. package/dist/cjs/view/FlexibleCard/components/common/lozenge-action/lozenge-action-error/styled.js +2 -0
  8. package/dist/cjs/view/FlexibleCard/components/common/lozenge-action/styled.js +5 -3
  9. package/dist/cjs/view/FlexibleCard/components/container/index.js +1 -1
  10. package/dist/cjs/view/HoverCard/components/HoverCardComponent.js +45 -39
  11. package/dist/cjs/view/HoverCard/components/HoverCardContent.js +44 -2
  12. package/dist/cjs/view/HoverCard/index.js +23 -6
  13. package/dist/cjs/view/InlineCard/Icon.js +2 -2
  14. package/dist/cjs/view/InlineCard/IconAndTitleLayout/styled.js +4 -4
  15. package/dist/cjs/view/InlineCard/ResolvingView/styled.js +1 -1
  16. package/dist/es2019/utils/analytics/SmartLinkAnalyticsContext.js +3 -1
  17. package/dist/es2019/version.json +1 -1
  18. package/dist/es2019/view/BlockCard/index.js +1 -1
  19. package/dist/es2019/view/EmbedCard/components/styled.js +14 -8
  20. package/dist/es2019/view/EmbedModal/components/link-info/styled.js +5 -3
  21. package/dist/es2019/view/FlexibleCard/components/common/lozenge-action/lozenge-action-error/styled.js +2 -0
  22. package/dist/es2019/view/FlexibleCard/components/common/lozenge-action/styled.js +7 -3
  23. package/dist/es2019/view/FlexibleCard/components/container/index.js +1 -1
  24. package/dist/es2019/view/HoverCard/components/HoverCardComponent.js +56 -48
  25. package/dist/es2019/view/HoverCard/components/HoverCardContent.js +45 -3
  26. package/dist/es2019/view/HoverCard/index.js +24 -7
  27. package/dist/es2019/view/InlineCard/Icon.js +2 -2
  28. package/dist/es2019/view/InlineCard/IconAndTitleLayout/styled.js +5 -6
  29. package/dist/es2019/view/InlineCard/ResolvingView/styled.js +1 -1
  30. package/dist/esm/utils/analytics/SmartLinkAnalyticsContext.js +3 -1
  31. package/dist/esm/version.json +1 -1
  32. package/dist/esm/view/BlockCard/index.js +1 -1
  33. package/dist/esm/view/EmbedCard/components/styled.js +10 -6
  34. package/dist/esm/view/EmbedModal/components/link-info/styled.js +3 -2
  35. package/dist/esm/view/FlexibleCard/components/common/lozenge-action/lozenge-action-error/styled.js +2 -0
  36. package/dist/esm/view/FlexibleCard/components/common/lozenge-action/styled.js +5 -3
  37. package/dist/esm/view/FlexibleCard/components/container/index.js +1 -1
  38. package/dist/esm/view/HoverCard/components/HoverCardComponent.js +45 -37
  39. package/dist/esm/view/HoverCard/components/HoverCardContent.js +45 -3
  40. package/dist/esm/view/HoverCard/index.js +24 -7
  41. package/dist/esm/view/InlineCard/Icon.js +2 -2
  42. package/dist/esm/view/InlineCard/IconAndTitleLayout/styled.js +4 -5
  43. package/dist/esm/view/InlineCard/ResolvingView/styled.js +1 -1
  44. package/dist/types/utils/analytics/SmartLinkAnalyticsContext.d.ts +1 -0
  45. package/dist/types/view/HoverCard/index.d.ts +2 -2
  46. package/dist/types/view/HoverCard/types.d.ts +4 -4
  47. package/dist/types-ts4.5/utils/analytics/SmartLinkAnalyticsContext.d.ts +1 -0
  48. package/dist/types-ts4.5/view/HoverCard/index.d.ts +2 -2
  49. package/dist/types-ts4.5/view/HoverCard/types.d.ts +4 -4
  50. package/package.json +9 -5
package/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # @atlaskit/smart-card
2
2
 
3
+ ## 26.3.4
4
+
5
+ ### Patch Changes
6
+
7
+ - [`d86bc75af82`](https://bitbucket.org/atlassian/atlassian-frontend/commits/d86bc75af82) - Internal change to enforce token usage for spacing properties. There is no expected visual or behaviour change.
8
+
9
+ ## 26.3.3
10
+
11
+ ### Patch Changes
12
+
13
+ - [`6d9a4d28d94`](https://bitbucket.org/atlassian/atlassian-frontend/commits/6d9a4d28d94) - Fixes HoverCard component providing hover card analytics context to the wrapped trigger component.
14
+ - Updated dependencies
15
+
3
16
  ## 26.3.2
4
17
 
5
18
  ### Patch Changes
@@ -21,7 +21,8 @@ var SmartLinkAnalyticsContext = function SmartLinkAnalyticsContext(_ref) {
21
21
  var children = _ref.children,
22
22
  url = _ref.url,
23
23
  appearance = _ref.appearance,
24
- id = _ref.id;
24
+ id = _ref.id,
25
+ source = _ref.source;
25
26
  var _useSmartLinkState = (0, _store.useSmartCardState)(url),
26
27
  details = _useSmartLinkState.details,
27
28
  status = _useSmartLinkState.status;
@@ -36,6 +37,7 @@ var SmartLinkAnalyticsContext = function SmartLinkAnalyticsContext(_ref) {
36
37
  var display = isFlexibleUi ? _constants.CardDisplay.Flexible : appearance;
37
38
  return /*#__PURE__*/_react.default.createElement(_analyticsNext.AnalyticsContext, {
38
39
  data: {
40
+ source: source,
39
41
  attributes: _objectSpread(_objectSpread({}, resolvedAttributes), {}, {
40
42
  urlHash: urlHash,
41
43
  display: display,
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/smart-card",
3
- "version": "26.3.2",
3
+ "version": "26.3.4",
4
4
  "sideEffects": false
5
5
  }
@@ -86,7 +86,7 @@ var _linkProvider = require("@atlaskit/link-provider");
86
86
  var _PreviewAction = _interopRequireDefault(require("./actions/PreviewAction"));
87
87
  var _templateObject;
88
88
  /** @jsx jsx */
89
- var flexibleBlockCardElevationStyle = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n border-radius: 1.5px;\n box-shadow: ", ";\n margin: 2px;\n"])), _token.tokens.elevation);
89
+ var flexibleBlockCardElevationStyle = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n border-radius: 1.5px;\n box-shadow: ", ";\n margin: ", ";\n"])), _token.tokens.elevation, "var(--ds-space-025, 2px)");
90
90
  var BlockCard = function BlockCard(_ref) {
91
91
  var _details$meta, _forbiddenViewProps$c;
92
92
  var id = _ref.id,
@@ -73,6 +73,8 @@ function visible(_ref6) {
73
73
  var LinkWrapper = _styled.default.div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n ", " &:hover {\n text-decoration: none;\n }\n"])), function (props) {
74
74
  return wrapperStyles(props);
75
75
  });
76
+
77
+ // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage-spacing
76
78
  exports.LinkWrapper = LinkWrapper;
77
79
  var Wrapper = _styled.default.div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n ", ";\n margin-top: 10px;\n"])), function (props) {
78
80
  return wrapperStyles(props);
@@ -125,24 +127,26 @@ var Image = _styled.default.img(_templateObject7 || (_templateObject7 = (0, _tag
125
127
  exports.Image = Image;
126
128
  var maxAvatarCount = 6;
127
129
  exports.maxAvatarCount = maxAvatarCount;
128
- var ContentWrapper = _styled.default.div(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n flex-direction: row;\n box-sizing: border-box;\n padding: 8px 12px 12px 12px;\n"])));
130
+ var ContentWrapper = _styled.default.div(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n flex-direction: row;\n box-sizing: border-box;\n padding: ", " ", "\n ", " ", ";\n"])), "var(--ds-space-100, 8px)", "var(--ds-space-150, 12px)", "var(--ds-space-150, 12px)", "var(--ds-space-150, 12px)");
129
131
  exports.ContentWrapper = ContentWrapper;
130
132
  var Title = _styled.default.div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2.default)(["\n color: ", ";\n font-size: 16px;\n font-weight: 500;\n line-height: ", ";\n max-height: ", "px;\n overflow: hidden;\n"])), "var(--ds-text, ".concat(colors.N900, ")"), 20 / 16, 20 * 4);
131
133
  exports.Title = Title;
132
- var Byline = _styled.default.div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2.default)(["\n margin-top: 4px;\n color: ", ";\n font-size: 12px;\n font-weight: normal;\n line-height: ", ";\n ", ";\n"])), "var(--ds-text-subtlest, ".concat(colors.N300, ")"), 16 / 12, ellipsis('100%'));
134
+ var Byline = _styled.default.div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2.default)(["\n margin-top: ", ";\n color: ", ";\n font-size: 12px;\n font-weight: normal;\n line-height: ", ";\n ", ";\n"])), "var(--ds-space-050, 4px)", "var(--ds-text-subtlest, ".concat(colors.N300, ")"), 16 / 12, ellipsis('100%'));
135
+
136
+ // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage-spacing
133
137
  exports.Byline = Byline;
134
138
  var Description = _styled.default.div(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2.default)(["\n margin-top: 7px;\n color: ", ";\n font-size: 12px;\n font-weight: normal;\n line-height: ", ";\n max-height: ", "px;\n overflow: hidden;\n"])), "var(--ds-text, ".concat(colors.N800, ")"), 18 / 12, 18 * 3);
135
139
  exports.Description = Description;
136
- var ResolvedViewIconWrapper = _styled.default.div(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2.default)(["\n margin-top: 4px;\n"])));
140
+ var ResolvedViewIconWrapper = _styled.default.div(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2.default)(["\n margin-top: ", ";\n"])), "var(--ds-space-050, 4px)");
137
141
  exports.ResolvedViewIconWrapper = ResolvedViewIconWrapper;
138
- var Thumbnail = _styled.default.div(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2.default)(["\n ", "\n ", "\n float: right;\n margin: 4px 0 12px 12px;\n background-color: ", ";\n background-image: url(", ");\n background-size: cover;\n"])), borderRadius, csssize(48), "var(--ds-skeleton, ".concat(colors.N30, ")"), function (_ref13) {
142
+ var Thumbnail = _styled.default.div(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2.default)(["\n ", "\n ", "\n float: right;\n margin: ", " 0 ", "\n ", ";\n background-color: ", ";\n background-image: url(", ");\n background-size: cover;\n"])), borderRadius, csssize(48), "var(--ds-space-050, 4px)", "var(--ds-space-150, 12px)", "var(--ds-space-150, 12px)", "var(--ds-skeleton, ".concat(colors.N30, ")"), function (_ref13) {
139
143
  var src = _ref13.src;
140
144
  return src;
141
145
  });
142
146
  exports.Thumbnail = Thumbnail;
143
- var UsersWrapper = _styled.default.div(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteral2.default)(["\n margin-top: 8px;\n"])));
147
+ var UsersWrapper = _styled.default.div(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteral2.default)(["\n margin-top: ", ";\n"])), "var(--ds-space-100, 8px)");
144
148
  exports.UsersWrapper = UsersWrapper;
145
- var ActionsWrapper = _styled.default.div(_templateObject15 || (_templateObject15 = (0, _taggedTemplateLiteral2.default)(["\n margin-top: 8px;\n text-align: right;\n\n > * {\n margin-top: 4px;\n }\n\n > * + * {\n margin-left: 4px;\n }\n"])));
149
+ var ActionsWrapper = _styled.default.div(_templateObject15 || (_templateObject15 = (0, _taggedTemplateLiteral2.default)(["\n margin-top: ", ";\n text-align: right;\n\n > * {\n margin-top: ", ";\n }\n\n > * + * {\n margin-left: ", ";\n }\n"])), "var(--ds-space-100, 8px)", "var(--ds-space-050, 4px)", "var(--ds-space-050, 4px)");
146
150
  exports.ActionsWrapper = ActionsWrapper;
147
151
  var AlertWrapper = _styled.default.div(_templateObject16 || (_templateObject16 = (0, _taggedTemplateLiteral2.default)(["\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n overflow: hidden;\n pointer-events: none;\n /* z-index has to be 1 higher than the number of avatars in the avatar stack */\n z-index: ", ";\n"])), maxAvatarCount + 1);
148
152
  exports.AlertWrapper = AlertWrapper;
@@ -8,7 +8,8 @@ exports.titleCss = exports.iconCss = exports.containerStyles = exports.actionCss
8
8
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
9
9
  var _react = require("@emotion/react");
10
10
  var _templateObject, _templateObject2, _templateObject3, _templateObject4;
11
- var containerStyles = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n align-items: center;\n display: flex;\n gap: 8px;\n justify-content: space-between;\n // AK ModalBody has 2px padding top and bottom.\n // Using 14px here to create 16px gap between\n // link info and iframe\n padding: 24px 24px 14px 24px;\n"])));
11
+ // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage-spacing
12
+ var containerStyles = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n align-items: center;\n display: flex;\n gap: ", ";\n justify-content: space-between;\n // AK ModalBody has 2px padding top and bottom.\n // Using 14px here to create 16px gap between\n // link info and iframe\n padding: ", " ", " 14px\n ", ";\n"])), "var(--ds-space-100, 8px)", "var(--ds-space-300, 24px)", "var(--ds-space-300, 24px)", "var(--ds-space-300, 24px)");
12
13
  exports.containerStyles = containerStyles;
13
14
  var iconSize = '24px';
14
15
  var iconCss = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n img,\n span,\n svg {\n height: ", ";\n min-height: ", ";\n max-height: ", ";\n width: ", ";\n min-width: ", ";\n max-width: ", ";\n }\n"])), iconSize, iconSize, iconSize, iconSize, iconSize, iconSize);
@@ -16,5 +17,5 @@ exports.iconCss = iconCss;
16
17
  var height = '20px';
17
18
  var titleCss = (0, _react.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n flex: 1 1 auto;\n\n h3 {\n flex: 1 1 auto;\n font-size: 16px;\n font-weight: 400;\n line-height: ", ";\n\n display: -webkit-box;\n margin-bottom: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n word-break: break-word;\n -webkit-line-clamp: 1;\n -webkit-box-orient: vertical;\n // Fallback options\n @supports not (-webkit-line-clamp: 1) {\n max-height: ", ";\n }\n }\n"])), height, height);
18
19
  exports.titleCss = titleCss;
19
- var actionCss = (0, _react.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n flex: 0 0 auto;\n gap: 4px;\n line-height: ", ";\n span {\n line-height: ", ";\n }\n\n @media only screen and (max-width: 980px) {\n // Hide resize button if the screen is smaller than the min width\n // or too small to have enough impact to matter.\n .smart-link-resize-button {\n display: none;\n }\n }\n"])), height, height);
20
+ var actionCss = (0, _react.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n flex: 0 0 auto;\n gap: ", ";\n line-height: ", ";\n span {\n line-height: ", ";\n }\n\n @media only screen and (max-width: 980px) {\n // Hide resize button if the screen is smaller than the min width\n // or too small to have enough impact to matter.\n .smart-link-resize-button {\n display: none;\n }\n }\n"])), "var(--ds-space-050, 4px)", height, height);
20
21
  exports.actionCss = actionCss;
@@ -14,6 +14,8 @@ var dropdownItemGroupStyles = (0, _react.css)(_templateObject || (_templateObjec
14
14
  exports.dropdownItemGroupStyles = dropdownItemGroupStyles;
15
15
  var sharedBlockStyles = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n gap: 0.5rem;\n line-height: 1rem;\n min-width: 0;\n overflow: hidden;\n flex-direction: row;\n align-items: center;\n"])));
16
16
  var contentStyles = (0, _react.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n ", ";\n\n margin-top: ", ";\n align-items: flex-start;\n\n > span,\n > div {\n font-size: 0.875rem;\n line-height: 1.25rem;\n color: ", ";\n }\n"])), sharedBlockStyles, "var(--ds-space-025, 2px)", "var(--ds-text, ".concat(_colors.N800, ")"));
17
+
18
+ // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage-spacing
17
19
  exports.contentStyles = contentStyles;
18
20
  var linkStyles = (0, _react.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n ", ";\n\n cursor: pointer;\n font-size: 0.875rem;\n margin-top: 10px;\n margin-left: ", ";\n margin-bottom: ", ";\n"])), sharedBlockStyles, "var(--ds-space-400, 32px)", "var(--ds-space-025, 2px)");
19
21
  exports.linkStyles = linkStyles;
@@ -8,9 +8,11 @@ exports.triggerLozengeStyles = exports.triggerButtonStyles = exports.dropdownIte
8
8
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
9
9
  var _react = require("@emotion/react");
10
10
  var _templateObject, _templateObject2, _templateObject3;
11
- var triggerButtonStyles = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n all: unset;\n background-color: transparent;\n color: unset;\n cursor: pointer;\n font-family: unset;\n font-size: unset;\n font-style: unset;\n font-weight: unset;\n font-variant: unset;\n line-height: 0;\n padding: 0;\n text-transform: unset;\n\n border: 2px solid transparent;\n margin: 2px;\n\n &:focus-visible,\n &:focus-within,\n &[aria-expanded='true'] {\n outline: none;\n box-shadow: 0 0 0 2px ", ";\n border-radius: 5px;\n }\n"])), "var(--ds-border-focused, #388BFF)");
11
+ var triggerButtonStyles = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n all: unset;\n background-color: transparent;\n color: unset;\n cursor: pointer;\n font-family: unset;\n font-size: unset;\n font-style: unset;\n font-weight: unset;\n font-variant: unset;\n line-height: 0;\n padding: 0;\n text-transform: unset;\n\n border: 2px solid transparent;\n margin: ", ";\n\n &:focus-visible,\n &:focus-within,\n &[aria-expanded='true'] {\n outline: none;\n box-shadow: 0 0 0 2px ", ";\n border-radius: 5px;\n }\n"])), "var(--ds-space-025, 2px)", "var(--ds-border-focused, #388BFF)");
12
+
13
+ // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage-spacing
12
14
  exports.triggerButtonStyles = triggerButtonStyles;
13
- var triggerLozengeStyles = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n align-items: center;\n display: flex;\n\n span[role='img'] {\n margin: -4px -8px -4px -1px;\n }\n"])));
15
+ var triggerLozengeStyles = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n align-items: center;\n display: flex;\n\n span[role='img'] {\n margin: calc(-1 * ", ")\n calc(-1 * ", ")\n calc(-1 * ", ") -1px;\n }\n"])), "var(--ds-space-050, 4px)", "var(--ds-space-100, 8px)", "var(--ds-space-050, 4px)");
14
16
  exports.triggerLozengeStyles = triggerLozengeStyles;
15
- var dropdownItemGroupStyles = (0, _react.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n max-height: 300px;\n overflow-y: auto;\n\n button {\n padding: 6px 12px;\n min-height: 28px;\n width: 220px;\n\n &:hover {\n background-color: inherit;\n }\n\n &:focus,\n &:focus-visible {\n background-color: ", ";\n box-sizing: border-box;\n box-shadow: inset 2px 0 0 ", ";\n outline: none;\n }\n }\n"])), "var(--ds-background-neutral-subtle-hovered, #091E420F)", "var(--ds-border-selected, #0C66E4)");
17
+ var dropdownItemGroupStyles = (0, _react.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n max-height: 300px;\n overflow-y: auto;\n\n button {\n padding: ", " ", ";\n min-height: 28px;\n width: 220px;\n\n &:hover {\n background-color: inherit;\n }\n\n &:focus,\n &:focus-visible {\n background-color: ", ";\n box-sizing: border-box;\n box-shadow: inset 2px 0 0 ", ";\n outline: none;\n }\n }\n"])), "var(--ds-space-075, 6px)", "var(--ds-space-150, 12px)", "var(--ds-background-neutral-subtle-hovered, #091E420F)", "var(--ds-border-selected, #0C66E4)");
16
18
  exports.dropdownItemGroupStyles = dropdownItemGroupStyles;
@@ -21,7 +21,7 @@ var _templateObject, _templateObject2, _templateObject3, _templateObject4;
21
21
  /** @jsx jsx */
22
22
  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); }
23
23
  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; }
24
- var elevationStyles = (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n border: 1px solid transparent;\n border-radius: 1.5px;\n box-shadow: ", ";\n margin: 2px;\n"])), _token.tokens.elevation);
24
+ var elevationStyles = (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n border: 1px solid transparent;\n border-radius: 1.5px;\n box-shadow: ", ";\n margin: ", ";\n"])), _token.tokens.elevation, "var(--ds-space-025, 2px)");
25
25
  var getGap = function getGap(size) {
26
26
  switch (size) {
27
27
  case _constants.SmartLinkSize.XLarge:
@@ -7,6 +7,7 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.HoverCardComponent = void 0;
9
9
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
10
11
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
12
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
12
13
  var _popup = _interopRequireDefault(require("@atlaskit/popup"));
@@ -21,8 +22,9 @@ var _constants = require("../../../constants");
21
22
  var _SmartLinkAnalyticsContext = require("../../../utils/analytics/SmartLinkAnalyticsContext");
22
23
  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); }
23
24
  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; }
24
- /** @jsx jsx */
25
-
25
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
26
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } /** @jsx jsx */
27
+ var HOVER_CARD_SOURCE = 'smartLinkPreviewHoverCard';
26
28
  var HoverCardComponent = function HoverCardComponent(_ref) {
27
29
  var children = _ref.children,
28
30
  url = _ref.url,
@@ -63,18 +65,24 @@ var HoverCardComponent = function HoverCardComponent(_ref) {
63
65
  };
64
66
  }, [isOpen]);
65
67
  var hideCard = (0, _react2.useCallback)(function () {
66
- //Check its previously open to avoid firing events when moving between the child and hover card components
67
- if (isOpen === true && cardOpenTime.current) {
68
- var hoverTime = Date.now() - cardOpenTime.current;
69
- analytics.ui.hoverCardDismissedEvent({
70
- previewDisplay: 'card',
71
- hoverTime: hoverTime,
72
- previewInvokeMethod: 'mouse_hover',
73
- status: linkStatus
74
- });
68
+ if ((0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.refactor-hover-card-analytics')) {
69
+ /**
70
+ * Defer to inner HoverCardContent to fire this event
71
+ */
72
+ } else {
73
+ //Check its previously open to avoid firing events when moving between the child and hover card components
74
+ if (isOpen === true && cardOpenTime.current) {
75
+ var hoverTime = Date.now() - cardOpenTime.current;
76
+ analytics === null || analytics === void 0 ? void 0 : analytics.ui.hoverCardDismissedEvent({
77
+ previewDisplay: 'card',
78
+ hoverTime: hoverTime,
79
+ previewInvokeMethod: 'mouse_hover',
80
+ status: linkStatus
81
+ });
82
+ }
75
83
  }
76
84
  setIsOpen(false);
77
- }, [analytics.ui, isOpen, linkStatus]);
85
+ }, [analytics, isOpen, linkStatus]);
78
86
  var initHideCard = (0, _react2.useCallback)(function () {
79
87
  if (fadeInTimeoutId.current) {
80
88
  clearTimeout(fadeInTimeoutId.current);
@@ -90,14 +98,20 @@ var HoverCardComponent = function HoverCardComponent(_ref) {
90
98
  //Set mouse position in the case it's not already set by onMouseMove, as in the case of scrolling
91
99
  setMousePosition(event);
92
100
  fadeInTimeoutId.current = setTimeout(function () {
93
- //Check if its previously closed to avoid firing events when moving between the child and hover card components
94
- if (isOpen === false) {
95
- cardOpenTime.current = Date.now();
96
- analytics.ui.hoverCardViewedEvent({
97
- previewDisplay: hoverDisplay,
98
- previewInvokeMethod: invokeMethod,
99
- status: linkStatus
100
- });
101
+ if ((0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.refactor-hover-card-analytics')) {
102
+ /**
103
+ * Defer to inner HoverCardContent to fire this event
104
+ */
105
+ } else {
106
+ //Check if its previously closed to avoid firing events when moving between the child and hover card components
107
+ if (isOpen === false) {
108
+ cardOpenTime.current = Date.now();
109
+ analytics === null || analytics === void 0 ? void 0 : analytics.ui.hoverCardViewedEvent({
110
+ previewDisplay: hoverDisplay,
111
+ previewInvokeMethod: invokeMethod,
112
+ status: linkStatus
113
+ });
114
+ }
101
115
  }
102
116
  //If these are undefined then popupOffset is undefined and we fallback to default bottom-start placement
103
117
  if (parentSpan.current && mousePos.current) {
@@ -108,12 +122,12 @@ var HoverCardComponent = function HoverCardComponent(_ref) {
108
122
  }
109
123
  setIsOpen(true);
110
124
  }, delay);
111
- }, [isOpen, setMousePosition, analytics.ui, linkStatus]);
125
+ }, [isOpen, setMousePosition, analytics, linkStatus]);
112
126
  var linkActions = (0, _useSmartLinkActions.useSmartLinkActions)({
113
127
  url: url,
114
128
  appearance: _constants.CardDisplay.HoverCardPreview,
115
129
  analyticsHandler: analyticsHandler,
116
- origin: 'smartLinkPreviewHoverCard'
130
+ origin: HOVER_CARD_SOURCE
117
131
  });
118
132
  var filteredActions = (0, _react2.useMemo)(function () {
119
133
  return hidePreviewButton ? linkActions.filter(function (action) {
@@ -136,14 +150,9 @@ var HoverCardComponent = function HoverCardComponent(_ref) {
136
150
  }, [closeOnChildClick, hideCard]);
137
151
  var content = (0, _react2.useCallback)(function (_ref2) {
138
152
  var update = _ref2.update;
139
- return (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.enable-analytics-context') ? (0, _react.jsx)(_SmartLinkAnalyticsContext.SmartLinkAnalyticsContext, {
140
- url: url,
141
- appearance: _constants.CardDisplay.HoverCardPreview,
142
- id: id
143
- }, (0, _react.jsx)(_HoverCardContent.default, {
153
+ var hoverCardContentProps = _objectSpread({
144
154
  onMouseEnter: initShowCard,
145
155
  onMouseLeave: initHideCard,
146
- analytics: analytics,
147
156
  cardActions: filteredActions,
148
157
  cardState: linkState,
149
158
  onActionClick: onActionClick,
@@ -152,18 +161,15 @@ var HoverCardComponent = function HoverCardComponent(_ref) {
152
161
  showServerActions: showServerActions,
153
162
  url: url,
154
163
  id: id
155
- })) : (0, _react.jsx)(_HoverCardContent.default, {
156
- onMouseEnter: initShowCard,
157
- onMouseLeave: initHideCard,
158
- analytics: analytics,
159
- cardActions: filteredActions,
160
- cardState: linkState,
161
- onActionClick: onActionClick,
162
- onResolve: update,
163
- renderers: renderers,
164
- showServerActions: showServerActions,
165
- url: url
164
+ }, (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.refactor-hover-card-analytics') ? {} : {
165
+ analytics: analytics
166
166
  });
167
+ return (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.enable-analytics-context') ? (0, _react.jsx)(_SmartLinkAnalyticsContext.SmartLinkAnalyticsContext, {
168
+ url: url,
169
+ appearance: _constants.CardDisplay.HoverCardPreview,
170
+ id: id,
171
+ source: HOVER_CARD_SOURCE
172
+ }, (0, _react.jsx)(_HoverCardContent.default, hoverCardContentProps)) : (0, _react.jsx)(_HoverCardContent.default, hoverCardContentProps);
167
173
  }, [analytics, initHideCard, initShowCard, filteredActions, linkState, onActionClick, renderers, showServerActions, url, id]);
168
174
  var trigger = (0, _react2.useCallback)(function (triggerProps) {
169
175
  return (0, _react.jsx)("span", {
@@ -9,12 +9,14 @@ exports.hoverCardClassName = exports.getOpenAction = exports.getCopyAction = exp
9
9
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
10
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
11
11
  var _react = require("@emotion/react");
12
+ var _analyticsNext = require("@atlaskit/analytics-next");
13
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
12
14
  var _shortcut = _interopRequireDefault(require("@atlaskit/icon/glyph/shortcut"));
13
15
  var _copy = _interopRequireDefault(require("@atlaskit/icon/glyph/copy"));
14
- var _analyticsNext = require("@atlaskit/analytics-next");
15
16
  var _react2 = _interopRequireWildcard(require("react"));
16
17
  var _constants = require("../../../constants");
17
18
  var _extractMetadata2 = require("../../../extractors/hover/extractMetadata");
19
+ var _analytics2 = require("../../../state/analytics");
18
20
  var _helpers = require("../../../state/helpers");
19
21
  var _utils = require("../../../utils");
20
22
  var _styled = require("../styled");
@@ -26,6 +28,7 @@ var _reactIntlNext = require("react-intl-next");
26
28
  var _messages = require("../../../messages");
27
29
  var _actions = require("../../../state/actions");
28
30
  var _click = require("../../../utils/analytics/click");
31
+ var _store = require("../../../state/store");
29
32
  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); }
30
33
  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; }
31
34
  /** @jsx jsx */
@@ -91,7 +94,7 @@ var HoverCardContent = function HoverCardContent(_ref) {
91
94
  var _cardState$details;
92
95
  var _ref$id = _ref.id,
93
96
  id = _ref$id === void 0 ? '' : _ref$id,
94
- analytics = _ref.analytics,
97
+ _analytics = _ref.analytics,
95
98
  _ref$cardActions = _ref.cardActions,
96
99
  cardActions = _ref$cardActions === void 0 ? [] : _ref$cardActions,
97
100
  cardState = _ref.cardState,
@@ -104,13 +107,52 @@ var HoverCardContent = function HoverCardContent(_ref) {
104
107
  showServerActions = _ref.showServerActions;
105
108
  var _useAnalyticsEvents = (0, _analyticsNext.useAnalyticsEvents)(),
106
109
  createAnalyticsEvent = _useAnalyticsEvents.createAnalyticsEvent;
110
+ var defaultAnalytics = (0, _analytics2.useSmartLinkAnalytics)(url, undefined, id);
111
+ var analytics = _analytics !== null && _analytics !== void 0 ? _analytics : defaultAnalytics;
107
112
  var extensionKey = (0, _react2.useMemo)(function () {
108
113
  return (0, _helpers.getExtensionKey)(cardState.details);
109
114
  }, [cardState.details]);
110
115
  var actions = (0, _actions.useSmartCardActions)(id, url, analytics);
116
+ var linkState = (0, _store.useSmartCardState)(url);
117
+ var linkStatus = linkState.status;
118
+ var statusRef = (0, _react2.useRef)(linkStatus);
119
+ var analyticsRef = (0, _react2.useRef)(analytics);
111
120
  (0, _react2.useEffect)(function () {
112
121
  actions.loadMetadata();
113
122
  }, [actions]);
123
+ (0, _react2.useEffect)(function () {
124
+ /**
125
+ * Must access current analytics object value via ref because its not stable
126
+ * and it can trigger useEffect to re-run below
127
+ */
128
+ if (analyticsRef.current !== analytics) {
129
+ analyticsRef.current = analytics;
130
+ }
131
+ if (statusRef.current !== linkStatus) {
132
+ statusRef.current = linkStatus;
133
+ }
134
+ }, [analytics, linkStatus]);
135
+ (0, _react2.useEffect)(function () {
136
+ if ((0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.refactor-hover-card-analytics')) {
137
+ var previewDisplay = 'card';
138
+ var previewInvokeMethod = 'mouse_hover';
139
+ var cardOpenTime = Date.now();
140
+ analyticsRef.current.ui.hoverCardViewedEvent({
141
+ previewDisplay: previewDisplay,
142
+ previewInvokeMethod: previewInvokeMethod,
143
+ status: statusRef.current
144
+ });
145
+ return function () {
146
+ var hoverTime = Date.now() - cardOpenTime;
147
+ analyticsRef.current.ui.hoverCardDismissedEvent({
148
+ previewDisplay: previewDisplay,
149
+ previewInvokeMethod: previewInvokeMethod,
150
+ hoverTime: hoverTime,
151
+ status: statusRef.current
152
+ });
153
+ };
154
+ }
155
+ }, []);
114
156
  var onClick = (0, _react2.useCallback)(function (event) {
115
157
  var isModifierKeyPressed = (0, _utils.isSpecialEvent)(event);
116
158
  analytics.ui.cardClickedEvent({
@@ -10,6 +10,7 @@ var _analyticsNext = require("@atlaskit/analytics-next");
10
10
  var _react = require("@emotion/react");
11
11
  var _react2 = require("react");
12
12
  var _reactErrorBoundary = require("react-error-boundary");
13
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
13
14
  var _analytics = require("../../state/analytics");
14
15
  var _analytics2 = require("../../utils/analytics");
15
16
  var _HoverCardComponent = require("./components/HoverCardComponent");
@@ -24,7 +25,11 @@ var HoverCardWithErrorBoundary = function HoverCardWithErrorBoundary(props) {
24
25
  var analyticsHandler = (0, _react2.useCallback)(function (analyticsPayload) {
25
26
  (0, _analytics2.fireSmartLinkEvent)(analyticsPayload, createAnalyticsEvent);
26
27
  }, [createAnalyticsEvent]);
27
- var analytics = (0, _analytics.useSmartLinkAnalytics)(url, analyticsHandler, id);
28
+
29
+ /**
30
+ * Feature flag disables prop drilling of analytics handlers
31
+ */
32
+ var analytics = (0, _analytics.useSmartLinkAnalytics)(url, (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.refactor-hover-card-analytics') ? undefined : analyticsHandler, id);
28
33
  var onError = (0, _react2.useCallback)(function (error, info) {
29
34
  analytics.ui.renderFailedEvent({
30
35
  display: _constants.CardDisplay.HoverCardPreview,
@@ -33,18 +38,30 @@ var HoverCardWithErrorBoundary = function HoverCardWithErrorBoundary(props) {
33
38
  errorInfo: info
34
39
  });
35
40
  }, [analytics.ui, id]);
41
+
42
+ /**
43
+ * Feature flag disables the prop drilling of analytics handlers to hover card component
44
+ */
45
+ var analyticsProps = (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.refactor-hover-card-analytics') ? {} : {
46
+ analyticsHandler: analyticsHandler,
47
+ analytics: analytics
48
+ };
36
49
  return (0, _react.jsx)(_reactErrorBoundary.ErrorBoundary, {
37
50
  fallback: children,
38
51
  onError: onError
39
- }, (0, _react.jsx)(_HoverCardComponent.HoverCardComponent, (0, _extends2.default)({}, props, {
40
- analyticsHandler: analyticsHandler,
41
- analytics: analytics
42
- }), children));
52
+ }, (0, _react.jsx)(_HoverCardComponent.HoverCardComponent, (0, _extends2.default)({}, props, analyticsProps), children));
43
53
  };
44
- var HoverCard = (0, _analyticsNext.withAnalyticsContext)({
54
+ var HoverCardWithAnalyticsContext = (0, _analyticsNext.withAnalyticsContext)({
45
55
  source: 'smartLinkPreviewHoverCard',
46
56
  attributes: {
47
57
  display: _constants.CardDisplay.HoverCardPreview
48
58
  }
49
59
  })((0, _analyticsNext.withAnalyticsEvents)()(HoverCardWithErrorBoundary));
60
+ var HoverCardWithoutAnalyticsContext = (0, _analyticsNext.withAnalyticsEvents)()(HoverCardWithErrorBoundary);
61
+ var HoverCard = function HoverCard(props) {
62
+ if ((0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.refactor-hover-card-analytics')) {
63
+ return (0, _react.jsx)(HoverCardWithoutAnalyticsContext, props);
64
+ }
65
+ return (0, _react.jsx)(HoverCardWithAnalyticsContext, props);
66
+ };
50
67
  exports.HoverCard = HoverCard;
@@ -15,13 +15,13 @@ var _templateObject, _templateObject2;
15
15
  // Current rationale: vertically positioned at the top of
16
16
  // the smart card container (when set to 0). Offset this
17
17
  // to position it with appropriate whitespace from the top.
18
- var Icon = _styled.default.img(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n height: 14px;\n width: 14px;\n margin-right: 4px;\n border-radius: 2px;\n user-select: none;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n"])));
18
+ var Icon = _styled.default.img(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n height: 14px;\n width: 14px;\n margin-right: ", ";\n border-radius: 2px;\n user-select: none;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n"])), "var(--ds-space-050, 4px)");
19
19
 
20
20
  // Used for 'untrue' icons which claim to be 16x16 but
21
21
  // are less than that in height/width.
22
22
  // TODO: Replace this override with proper AtlasKit solution.
23
23
  exports.Icon = Icon;
24
- var AKIconWrapper = _styled.default.span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n margin-right: -2px;\n"])));
24
+ var AKIconWrapper = _styled.default.span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n margin-right: calc(-1 * ", ");\n"])), "var(--ds-space-025, 2px)");
25
25
  exports.AKIconWrapper = AKIconWrapper;
26
26
  var Shimmer = function Shimmer(_ref) {
27
27
  var testId = _ref.testId;
@@ -25,7 +25,7 @@ var IconWrapper = _styled.default.span(_templateObject || (_templateObject = (0,
25
25
 
26
26
  // Wraps all emoji in Inline Links similar to icon
27
27
  exports.IconWrapper = IconWrapper;
28
- var EmojiWrapper = _styled.default.span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n display: inline-block;\n margin-right: 2px;\n user-select: none;\n ", "\n ", "\n"])), IconOverrides, IconObjectOverrides);
28
+ var EmojiWrapper = _styled.default.span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n display: inline-block;\n margin-right: ", ";\n user-select: none;\n ", "\n ", "\n"])), "var(--ds-space-025, 2px)", IconOverrides, IconObjectOverrides);
29
29
 
30
30
  // The main 'wrapping' element, title of the content.
31
31
  // NB: `white-space` adds little whitespace before wrapping.
@@ -38,15 +38,15 @@ exports.IconTitleWrapper = IconTitleWrapper;
38
38
  var LozengeWrapper = _styled.default.span(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n display: inline-block;\n vertical-align: 1px;\n"])));
39
39
  // TODO: Replace overrides with proper AtlasKit solution.
40
40
  exports.LozengeWrapper = LozengeWrapper;
41
- var LozengeBlockWrapper = _styled.default.span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n & > span {\n margin-left: 4px;\n }\n"])));
41
+ var LozengeBlockWrapper = _styled.default.span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n & > span {\n margin-left: ", ";\n }\n"])), "var(--ds-space-050, 4px)");
42
42
  exports.LozengeBlockWrapper = LozengeBlockWrapper;
43
- var RightIconPositionWrapper = _styled.default.span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["\n margin-left: 2px;\n margin-right: 4px;\n position: relative;\n display: inline-block;\n"])));
43
+ var RightIconPositionWrapper = _styled.default.span(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["\n margin-left: ", ";\n margin-right: ", ";\n position: relative;\n display: inline-block;\n"])), "var(--ds-space-025, 2px)", "var(--ds-space-050, 4px)");
44
44
 
45
45
  // The following components are used to absolutely position icons in the vertical center.
46
46
  // - IconPositionWrapper: the `relative` parent which has no height in itself.
47
47
  // - IconEmptyWrapper: the child which forces `IconPositionWrapper` to have a height.
48
48
  exports.RightIconPositionWrapper = RightIconPositionWrapper;
49
- var IconPositionWrapper = _styled.default.span(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["\n margin-right: 4px;\n position: relative;\n display: inline-block;\n"])));
49
+ var IconPositionWrapper = _styled.default.span(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2.default)(["\n margin-right: ", ";\n position: relative;\n display: inline-block;\n"])), "var(--ds-space-050, 4px)");
50
50
  exports.IconPositionWrapper = IconPositionWrapper;
51
51
  var IconEmptyWrapper = _styled.default.span(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2.default)(["\n width: 14px;\n height: 100%;\n display: inline-block;\n opacity: 0;\n"])));
52
52
 
@@ -9,5 +9,5 @@ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/hel
9
9
  var _styled = _interopRequireDefault(require("@emotion/styled"));
10
10
  var _styled2 = require("../IconAndTitleLayout/styled");
11
11
  var _templateObject;
12
- var SpinnerWrapper = (0, _styled.default)(_styled2.IconTitleWrapper)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n vertical-align: text-top;\n margin-left: 2px;\n"])));
12
+ var SpinnerWrapper = (0, _styled.default)(_styled2.IconTitleWrapper)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n vertical-align: text-top;\n margin-left: ", ";\n"])), "var(--ds-space-025, 2px)");
13
13
  exports.SpinnerWrapper = SpinnerWrapper;
@@ -8,7 +8,8 @@ export const SmartLinkAnalyticsContext = ({
8
8
  children,
9
9
  url,
10
10
  appearance,
11
- id
11
+ id,
12
+ source
12
13
  }) => {
13
14
  const {
14
15
  details,
@@ -24,6 +25,7 @@ export const SmartLinkAnalyticsContext = ({
24
25
  const display = isFlexibleUi ? CardDisplay.Flexible : appearance;
25
26
  return /*#__PURE__*/React.createElement(AnalyticsContext, {
26
27
  data: {
28
+ source,
27
29
  attributes: {
28
30
  ...resolvedAttributes,
29
31
  urlHash,
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/smart-card",
3
- "version": "26.3.2",
3
+ "version": "26.3.4",
4
4
  "sideEffects": false
5
5
  }
@@ -28,7 +28,7 @@ export { ForbiddenAction, AuthorizeAction, BlockCardResolvedView, BlockCardResol
28
28
  const flexibleBlockCardElevationStyle = css`
29
29
  border-radius: 1.5px;
30
30
  box-shadow: ${tokens.elevation};
31
- margin: 2px;
31
+ margin: ${"var(--ds-space-025, 2px)"};
32
32
  `;
33
33
  export const BlockCard = ({
34
34
  id,
@@ -127,6 +127,8 @@ export const LinkWrapper = styled.div`
127
127
  text-decoration: none;
128
128
  }
129
129
  `;
130
+
131
+ // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage-spacing
130
132
  export const Wrapper = styled.div`
131
133
  ${props => wrapperStyles(props)};
132
134
  margin-top: 10px;
@@ -239,7 +241,8 @@ export const ContentWrapper = styled.div`
239
241
  display: flex;
240
242
  flex-direction: row;
241
243
  box-sizing: border-box;
242
- padding: 8px 12px 12px 12px;
244
+ padding: ${"var(--ds-space-100, 8px)"} ${"var(--ds-space-150, 12px)"}
245
+ ${"var(--ds-space-150, 12px)"} ${"var(--ds-space-150, 12px)"};
243
246
  `;
244
247
  export const Title = styled.div`
245
248
  color: ${`var(--ds-text, ${colors.N900})`};
@@ -250,13 +253,15 @@ export const Title = styled.div`
250
253
  overflow: hidden;
251
254
  `;
252
255
  export const Byline = styled.div`
253
- margin-top: 4px;
256
+ margin-top: ${"var(--ds-space-050, 4px)"};
254
257
  color: ${`var(--ds-text-subtlest, ${colors.N300})`};
255
258
  font-size: 12px;
256
259
  font-weight: normal;
257
260
  line-height: ${16 / 12};
258
261
  ${ellipsis('100%')};
259
262
  `;
263
+
264
+ // eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage-spacing
260
265
  export const Description = styled.div`
261
266
  margin-top: 7px;
262
267
  color: ${`var(--ds-text, ${colors.N800})`};
@@ -267,13 +272,14 @@ export const Description = styled.div`
267
272
  overflow: hidden;
268
273
  `;
269
274
  export const ResolvedViewIconWrapper = styled.div`
270
- margin-top: 4px;
275
+ margin-top: ${"var(--ds-space-050, 4px)"};
271
276
  `;
272
277
  export const Thumbnail = styled.div`
273
278
  ${borderRadius}
274
279
  ${csssize(48)}
275
280
  float: right;
276
- margin: 4px 0 12px 12px;
281
+ margin: ${"var(--ds-space-050, 4px)"} 0 ${"var(--ds-space-150, 12px)"}
282
+ ${"var(--ds-space-150, 12px)"};
277
283
  background-color: ${`var(--ds-skeleton, ${colors.N30})`};
278
284
  background-image: url(${({
279
285
  src
@@ -281,18 +287,18 @@ export const Thumbnail = styled.div`
281
287
  background-size: cover;
282
288
  `;
283
289
  export const UsersWrapper = styled.div`
284
- margin-top: 8px;
290
+ margin-top: ${"var(--ds-space-100, 8px)"};
285
291
  `;
286
292
  export const ActionsWrapper = styled.div`
287
- margin-top: 8px;
293
+ margin-top: ${"var(--ds-space-100, 8px)"};
288
294
  text-align: right;
289
295
 
290
296
  > * {
291
- margin-top: 4px;
297
+ margin-top: ${"var(--ds-space-050, 4px)"};
292
298
  }
293
299
 
294
300
  > * + * {
295
- margin-left: 4px;
301
+ margin-left: ${"var(--ds-space-050, 4px)"};
296
302
  }
297
303
  `;
298
304
  export const AlertWrapper = styled.div`