@atlaskit/smart-card 26.67.0 → 26.69.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/cjs/messages.js +22 -22
  3. package/dist/cjs/utils/analytics/analytics.js +1 -1
  4. package/dist/cjs/view/FlexibleCard/components/actions/action/action-stack-item/index.js +1 -0
  5. package/dist/cjs/view/FlexibleCard/components/actions/ai-summary-action/copy-summary-action.js +5 -2
  6. package/dist/cjs/view/FlexibleCard/components/actions/automation-action/index.js +5 -4
  7. package/dist/cjs/view/FlexibleCard/components/blocks/ai-footer-block/resolved/ai-footer-metadata.js +7 -7
  8. package/dist/cjs/view/FlexibleCard/components/blocks/ai-summary-block/resolved/index.js +8 -3
  9. package/dist/cjs/view/HoverCard/components/HoverCardContent.js +13 -0
  10. package/dist/cjs/view/HoverCard/components/views/resolved/index.js +3 -7
  11. package/dist/cjs/view/HoverCard/components/views/resolved/redesign.js +81 -0
  12. package/dist/cjs/view/LinkUrl/index.js +1 -1
  13. package/dist/es2019/messages.js +22 -22
  14. package/dist/es2019/utils/analytics/analytics.js +1 -1
  15. package/dist/es2019/view/FlexibleCard/components/actions/action/action-stack-item/index.js +1 -0
  16. package/dist/es2019/view/FlexibleCard/components/actions/ai-summary-action/copy-summary-action.js +3 -2
  17. package/dist/es2019/view/FlexibleCard/components/actions/automation-action/index.js +3 -2
  18. package/dist/es2019/view/FlexibleCard/components/blocks/ai-footer-block/resolved/ai-footer-metadata.js +7 -7
  19. package/dist/es2019/view/FlexibleCard/components/blocks/ai-summary-block/resolved/index.js +8 -3
  20. package/dist/es2019/view/HoverCard/components/HoverCardContent.js +13 -0
  21. package/dist/es2019/view/HoverCard/components/views/resolved/index.js +4 -8
  22. package/dist/es2019/view/HoverCard/components/views/resolved/redesign.js +73 -0
  23. package/dist/es2019/view/LinkUrl/index.js +1 -1
  24. package/dist/esm/messages.js +22 -22
  25. package/dist/esm/utils/analytics/analytics.js +1 -1
  26. package/dist/esm/view/FlexibleCard/components/actions/action/action-stack-item/index.js +1 -0
  27. package/dist/esm/view/FlexibleCard/components/actions/ai-summary-action/copy-summary-action.js +5 -2
  28. package/dist/esm/view/FlexibleCard/components/actions/automation-action/index.js +5 -4
  29. package/dist/esm/view/FlexibleCard/components/blocks/ai-footer-block/resolved/ai-footer-metadata.js +7 -7
  30. package/dist/esm/view/FlexibleCard/components/blocks/ai-summary-block/resolved/index.js +8 -3
  31. package/dist/esm/view/HoverCard/components/HoverCardContent.js +13 -0
  32. package/dist/esm/view/HoverCard/components/views/resolved/index.js +4 -8
  33. package/dist/esm/view/HoverCard/components/views/resolved/redesign.js +71 -0
  34. package/dist/esm/view/LinkUrl/index.js +1 -1
  35. package/dist/types/__fixtures__/flexible-ui-data-context.d.ts +1 -1
  36. package/dist/types/view/FlexibleCard/components/blocks/ai-summary-block/types.d.ts +7 -2
  37. package/dist/types/view/HoverCard/components/views/resolved/redesign.d.ts +4 -0
  38. package/dist/types-ts4.5/__fixtures__/flexible-ui-data-context.d.ts +1 -1
  39. package/dist/types-ts4.5/view/FlexibleCard/components/blocks/ai-summary-block/types.d.ts +7 -2
  40. package/dist/types-ts4.5/view/HoverCard/components/views/resolved/redesign.d.ts +4 -0
  41. package/package.json +3 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,33 @@
1
1
  # @atlaskit/smart-card
2
2
 
3
+ ## 26.69.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#101702](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/101702)
8
+ [`2d087cf38dab`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/2d087cf38dab) -
9
+ Fixes issue with the tooltip on the copy summary action
10
+
11
+ ### Patch Changes
12
+
13
+ - [#101752](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/101752)
14
+ [`ce0a0cf5380a`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/ce0a0cf5380a) -
15
+ Finalise hover card redesign localisation
16
+
17
+ ## 26.68.0
18
+
19
+ ### Minor Changes
20
+
21
+ - [#100572](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/100572)
22
+ [`f7db86ab4de9`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/f7db86ab4de9) -
23
+ [ux] Remove footer AI icon tooltip and realign AI information quality tooltip
24
+
25
+ ### Patch Changes
26
+
27
+ - [#99219](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/99219)
28
+ [`3df318ff4439`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/3df318ff4439) -
29
+ Hover preview: Move resolved view redesign into its own separate component
30
+
3
31
  ## 26.67.0
4
32
 
5
33
  ### Minor Changes
@@ -37,7 +37,7 @@ var messages = exports.messages = (0, _reactIntlNext.defineMessages)({
37
37
  description: 'Additional info about the content summarised by AI.'
38
38
  },
39
39
  ai_summarized_info_short: {
40
- id: 'fabric.linking.ai_summarized_info_short.nonfinal',
40
+ id: 'fabric.linking.ai_summarized_info_short',
41
41
  defaultMessage: 'Content quality may vary',
42
42
  description: 'Additional info about the content summarised by AI.'
43
43
  },
@@ -192,7 +192,7 @@ var messages = exports.messages = (0, _reactIntlNext.defineMessages)({
192
192
  description: ''
193
193
  },
194
194
  copied_url_to_clipboard: {
195
- id: 'fabric.linking.copied_url_to_clipboard.nonfinal',
195
+ id: 'fabric.linking.copied_url_to_clipboard',
196
196
  defaultMessage: 'Copied!',
197
197
  description: 'Url has been copied to the clipboard'
198
198
  },
@@ -227,37 +227,37 @@ var messages = exports.messages = (0, _reactIntlNext.defineMessages)({
227
227
  description: ''
228
228
  },
229
229
  download_description: {
230
- id: 'fabric.linking.download_description.nonfinal',
230
+ id: 'fabric.linking.download_description',
231
231
  defaultMessage: 'Download this file into your local storage',
232
232
  description: 'Description on what Download does'
233
233
  },
234
234
  download_file: {
235
- id: 'fabric.linking.download_file.nonfinal',
235
+ id: 'fabric.linking.download_file',
236
236
  defaultMessage: 'Download file',
237
237
  description: 'Allow a user to download a file'
238
238
  },
239
239
  ai_summary_action: {
240
- id: 'fabric.linking.ai_summary_action.nonfinal',
240
+ id: 'fabric.linking.ai_summary_action',
241
241
  defaultMessage: 'Summarize with AI',
242
242
  description: 'Allow a user to summarize a link'
243
243
  },
244
244
  ai_summary_action_description: {
245
- id: 'fabric.linking.ai_summary_action_description.nonfinal',
245
+ id: 'fabric.linking.ai_summary_action_description',
246
246
  defaultMessage: 'Summarize the content of this link using Atlassian Intelligence.',
247
247
  description: 'Description of what the summarize link with AI action does'
248
248
  },
249
249
  copy_summary_action: {
250
- id: 'fabric.linking.copy_summary_action.nonfinal',
250
+ id: 'fabric.linking.copy_summary_action',
251
251
  defaultMessage: 'Copy summary',
252
252
  description: 'Allow a user to copy a generated summary'
253
253
  },
254
254
  copy_summary_action_description: {
255
- id: 'fabric.linking.copy_summary_action.nonfinal',
255
+ id: 'fabric.linking.copy_summary_action_description',
256
256
  defaultMessage: 'Copy summary',
257
257
  description: 'Description of what the copy summary AI action does'
258
258
  },
259
259
  copied_summary_action_description: {
260
- id: 'fabric.linking.copied_summary_action_description.nonfinal',
260
+ id: 'fabric.linking.copied_summary_action_description',
261
261
  defaultMessage: 'Copied summary to clipboard',
262
262
  description: 'Confirmation to the user that the summry has been copied'
263
263
  },
@@ -272,32 +272,32 @@ var messages = exports.messages = (0, _reactIntlNext.defineMessages)({
272
272
  description: 'Click to follow a project.'
273
273
  },
274
274
  follow_project_description: {
275
- id: 'fabric.linking.follow_project_description.nonfinal',
275
+ id: 'fabric.linking.follow_project_description',
276
276
  defaultMessage: 'Follow to get notifications on this project',
277
277
  description: 'Description on what Follow does'
278
278
  },
279
279
  follow_project: {
280
- id: 'fabric.linking.follow_project.nonfinal',
280
+ id: 'fabric.linking.follow_project',
281
281
  defaultMessage: 'Follow project',
282
282
  description: 'Click to follow a project.'
283
283
  },
284
284
  follow_project_error: {
285
- id: 'fabric.linking.follow_project_error.nonfinal',
285
+ id: 'fabric.linking.follow_project_error',
286
286
  defaultMessage: 'We encountered an error while trying to follow the project. Check your connection or refresh the page and try again.',
287
287
  description: 'Shown when an unknown error occurs when following an Atlas project'
288
288
  },
289
289
  follow_goal_description: {
290
- id: 'fabric.linking.follow_goal_description.nonfinal',
290
+ id: 'fabric.linking.follow_goal_description',
291
291
  defaultMessage: 'Follow this goal to get notifications on updates',
292
292
  description: 'Description on what Follow does'
293
293
  },
294
294
  follow_goal: {
295
- id: 'fabric.linking.follow_goal.nonfinal',
295
+ id: 'fabric.linking.follow_goal',
296
296
  defaultMessage: 'Follow goal',
297
297
  description: 'Click to follow a project.'
298
298
  },
299
299
  follow_goal_error: {
300
- id: 'fabric.linking.follow_goal_error.nonfinal',
300
+ id: 'fabric.linking.follow_goal_error',
301
301
  defaultMessage: 'We encountered an error while trying to follow the goal. Check your connection or refresh the page and try again.',
302
302
  description: 'Shown when an unknown error occurs when following an Atlas goal'
303
303
  },
@@ -372,7 +372,7 @@ var messages = exports.messages = (0, _reactIntlNext.defineMessages)({
372
372
  description: 'Indicates the person or entity that owns or maintains the resource.'
373
373
  },
374
374
  preview_description: {
375
- id: 'fabric.linking.preview_description.nonfinal',
375
+ id: 'fabric.linking.preview_description',
376
376
  defaultMessage: 'Open a full screen preview of this link',
377
377
  description: 'Description on what Preview does'
378
378
  },
@@ -562,32 +562,32 @@ var messages = exports.messages = (0, _reactIntlNext.defineMessages)({
562
562
  description: 'Click to unfollow a project.'
563
563
  },
564
564
  unfollow_project_description: {
565
- id: 'fabric.linking.unfollow_project_description.nonfinal',
565
+ id: 'fabric.linking.unfollow_project_description',
566
566
  defaultMessage: 'Unfollow to stop receiving project notifications',
567
567
  description: 'Description on what Unfollow does'
568
568
  },
569
569
  unfollow_project: {
570
- id: 'fabric.linking.unfollow_project.nonfinal',
570
+ id: 'fabric.linking.unfollow_project',
571
571
  defaultMessage: 'Unfollow project',
572
572
  description: 'Click to unfollow a project.'
573
573
  },
574
574
  unfollow_project_error: {
575
- id: 'fabric.linking.unfollow_project_error.nonfinal',
575
+ id: 'fabric.linking.unfollow_project_error',
576
576
  defaultMessage: 'We encountered an error while trying to unfollow the project. Check your connection or refresh the page and try again.',
577
577
  description: 'Shown when an unknown error occurs when unfollowing an Atlas project'
578
578
  },
579
579
  unfollow_goal_description: {
580
- id: 'fabric.linking.unfollow_goal_description.nonfinal',
580
+ id: 'fabric.linking.unfollow_goal_description',
581
581
  defaultMessage: 'Unfollow to stop receiving notifications for this goal',
582
582
  description: 'Description on what Unfollow does'
583
583
  },
584
584
  unfollow_goal: {
585
- id: 'fabric.linking.unfollow_goal.nonfinal',
585
+ id: 'fabric.linking.unfollow_goal',
586
586
  defaultMessage: 'Unfollow goal',
587
587
  description: 'Click to unfollow a project.'
588
588
  },
589
589
  unfollow_goal_error: {
590
- id: 'fabric.linking.unfollow_goal_error.nonfinal',
590
+ id: 'fabric.linking.unfollow_goal_error',
591
591
  defaultMessage: 'We encountered an error while trying to unfollow the goal. Check your connection or refresh the page and try again.',
592
592
  description: 'Shown when an unknown error occurs when unfollowing an Atlas goal'
593
593
  },
@@ -22,7 +22,7 @@ var ANALYTICS_CHANNEL = exports.ANALYTICS_CHANNEL = 'media';
22
22
  var context = exports.context = {
23
23
  componentName: 'smart-cards',
24
24
  packageName: "@atlaskit/smart-card",
25
- packageVersion: "26.67.0"
25
+ packageVersion: "26.69.0"
26
26
  };
27
27
  var TrackQuickActionType = exports.TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
28
28
  TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
@@ -17,6 +17,7 @@ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return
17
17
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
18
  var buttonStyles = (0, _primitives.xcss)({
19
19
  all: 'unset',
20
+ cursor: 'pointer',
20
21
  padding: 'space.050',
21
22
  width: '100%',
22
23
  ':focus:not(:focus-visible)': {
@@ -30,7 +30,7 @@ function CopySummaryAction(_ref) {
30
30
  props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
31
31
  var _useAnalyticsEvents = (0, _useAnalyticsEvents2.useAnalyticsEvents)(),
32
32
  fireEvent = _useAnalyticsEvents.fireEvent;
33
- var _useState = (0, _react.useState)(_messages.messages.copy_summary_action),
33
+ var _useState = (0, _react.useState)(_messages.messages.copy_summary_action_description),
34
34
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
35
35
  tooltipMessage = _useState2[0],
36
36
  setTooltipMessage = _useState2[1];
@@ -57,6 +57,9 @@ function CopySummaryAction(_ref) {
57
57
  }),
58
58
  onClick: handleCopySummaryClick,
59
59
  testId: "".concat(testId, "-copy-summary-action"),
60
- tooltipMessage: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, tooltipMessage)
60
+ tooltipMessage: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, tooltipMessage),
61
+ tooltipOnHide: function tooltipOnHide() {
62
+ return setTooltipMessage(_messages.messages.copy_summary_action_description);
63
+ }
61
64
  }, props));
62
65
  }
@@ -41,16 +41,17 @@ var AutomationAction = function AutomationAction(props) {
41
41
  var automationActionTitle = /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages.automation_action_title);
42
42
  var automationActionTooltip = /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages.automation_action_tooltip);
43
43
  var automationActionIconLabel = formatMessage(_messages.messages.automation_action_icon_label);
44
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_action.default, (0, _extends2.default)({}, data, props, {
44
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_action.default, (0, _extends2.default)({
45
45
  content: automationActionTitle,
46
46
  icon: /*#__PURE__*/_react.default.createElement(_manaulTriggersIcon.default, {
47
47
  label: automationActionIconLabel
48
48
  }),
49
- onClick: function onClick() {
50
- return handleAutomateActionClick(setIsModalOpen);
51
- },
52
49
  testId: "smart-action-automation-action",
53
50
  tooltipMessage: automationActionTooltip
51
+ }, data, props, {
52
+ onClick: function onClick() {
53
+ return handleAutomateActionClick(setIsModalOpen);
54
+ }
54
55
  })));
55
56
  };
56
57
  var _default = exports.default = AutomationAction;
@@ -6,11 +6,11 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.AIFooterMetadata = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
+ var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
9
10
  var _reactMagneticDi = require("react-magnetic-di");
10
11
  var _reactIntlNext = require("react-intl-next");
11
- var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
12
12
  var _primitives = require("@atlaskit/primitives");
13
- var _aiStateIndicator = _interopRequireDefault(require("../../ai-summary-block/ai-state-indicator"));
13
+ var _aiIcon = _interopRequireDefault(require("../../../../../common/ai-icon"));
14
14
  var _info = require("../icons/info");
15
15
  var _messages = require("../../../../../../messages");
16
16
  var _useAiSummary = require("../../../../../../state/hooks/use-ai-summary");
@@ -35,16 +35,16 @@ var AIFooterMetadata = exports.AIFooterMetadata = function AIFooterMetadata(_ref
35
35
  grow: "fill"
36
36
  }, /*#__PURE__*/_react.default.createElement(_tooltip.default, {
37
37
  content: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages.ai_summarized_info_short),
38
- position: "top"
38
+ position: "bottom"
39
39
  }, function (tooltipProps) {
40
40
  return /*#__PURE__*/_react.default.createElement(_primitives.Box, tooltipProps, /*#__PURE__*/_react.default.createElement(_info.InfoIcon, {
41
41
  label: "Information",
42
42
  size: "small",
43
43
  primaryColor: "var(--ds-icon-subtle, #626F86)"
44
44
  }));
45
- }), /*#__PURE__*/_react.default.createElement(_aiStateIndicator.default, {
46
- appearance: "icon-only",
47
- state: "done",
48
- testId: "ai-tooltip"
45
+ }), /*#__PURE__*/_react.default.createElement(_aiIcon.default, {
46
+ label: "AI",
47
+ size: "small",
48
+ primaryColor: "var(--ds-icon-subtle, #626F86)"
49
49
  }));
50
50
  };
@@ -73,7 +73,8 @@ var AISummaryBlockResolvedView = function AISummaryBlockResolvedView(props) {
73
73
  testId = props.testId,
74
74
  _props$aiSummaryMinHe = props.aiSummaryMinHeight,
75
75
  aiSummaryMinHeight = _props$aiSummaryMinHe === void 0 ? 0 : _props$aiSummaryMinHe,
76
- metadata = props.metadata;
76
+ metadata = props.metadata,
77
+ placeholder = props.placeholder;
77
78
  var _useAnalyticsEvents = (0, _useAnalyticsEvents2.useAnalyticsEvents)(),
78
79
  fireEvent = _useAnalyticsEvents.fireEvent;
79
80
  var context = (0, _flexibleUiContext.useFlexibleUiContext)();
@@ -99,6 +100,7 @@ var AISummaryBlockResolvedView = function AISummaryBlockResolvedView(props) {
99
100
  status === 'loading' && !!content;
100
101
  var isSummarisedOnMountRef = (0, _react.useRef)(status === 'done');
101
102
  var isErroredOnMountRef = (0, _react.useRef)(status === 'error');
103
+ var minHeight = (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.hover-card-action-redesign') && isSummarisedOnMountRef.current ? 0 : aiSummaryMinHeight;
102
104
  (0, _react.useEffect)(function () {
103
105
  // if the error was apparent on mount and the status is changed to loading we can
104
106
  // clear the initial error on mount state
@@ -141,6 +143,9 @@ var AISummaryBlockResolvedView = function AISummaryBlockResolvedView(props) {
141
143
  });
142
144
  }
143
145
  }, [onActionMenuOpenChange]);
146
+ if (!showAISummary && (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.hover-card-action-redesign')) {
147
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, placeholder);
148
+ }
144
149
  return /*#__PURE__*/_react.default.createElement(_block.default, (0, _extends2.default)({}, props, {
145
150
  direction: _constants.SmartLinkDirection.Vertical,
146
151
  testId: "".concat(testId, "-resolved-view")
@@ -154,12 +159,12 @@ var AISummaryBlockResolvedView = function AISummaryBlockResolvedView(props) {
154
159
  }), status === 'done' && /*#__PURE__*/_react.default.createElement(_aiEventSummaryViewed.default, {
155
160
  fromCache: isSummarisedOnMountRef.current
156
161
  }), /*#__PURE__*/_react.default.createElement(_motionWrapper.default, {
157
- minHeight: aiSummaryMinHeight,
162
+ minHeight: minHeight,
158
163
  show: showAISummary,
159
164
  showTransition: !isSummarisedOnMountRef.current
160
165
  }, /*#__PURE__*/_react.default.createElement(_aiSummary.default, {
161
166
  testId: "".concat(testId, "-ai-summary"),
162
- minHeight: aiSummaryMinHeight,
167
+ minHeight: minHeight,
163
168
  content: content,
164
169
  showIcon: !(0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.hover-card-action-redesign') && isSummarisedOnMountRef.current
165
170
  })), !(0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.hover-card-action-redesign') && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_primitives.Inline, {
@@ -23,6 +23,7 @@ var _utils2 = require("../utils");
23
23
  var _resolving = _interopRequireDefault(require("./views/resolving"));
24
24
  var _unauthorised = _interopRequireDefault(require("./views/unauthorised"));
25
25
  var _resolved = _interopRequireDefault(require("./views/resolved"));
26
+ var _redesign = _interopRequireDefault(require("./views/resolved/redesign"));
26
27
  var _reactIntlNext = require("react-intl-next");
27
28
  var _messages = require("../../../messages");
28
29
  var _click = require("../../../utils/analytics/click");
@@ -191,6 +192,18 @@ var HoverCardContent = function HoverCardContent(_ref) {
191
192
  });
192
193
  }
193
194
  if (cardState.status === 'resolved') {
195
+ if ((0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.hover-card-action-redesign')) {
196
+ return (0, _react.jsx)(_redesign.default, {
197
+ analytics: analytics,
198
+ cardState: cardState,
199
+ extensionKey: extensionKey,
200
+ flexibleCardProps: flexibleCardProps,
201
+ isAISummaryEnabled: isAISummaryEnabled,
202
+ onActionClick: onActionClick,
203
+ titleBlockProps: titleBlockProps,
204
+ url: url
205
+ });
206
+ }
194
207
  return (0, _react.jsx)(_resolved.default, {
195
208
  id: id,
196
209
  url: url,
@@ -86,7 +86,7 @@ var ConnectedAIBlock = function ConnectedAIBlock(_ref) {
86
86
  return showData ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, !imagePreview && /*#__PURE__*/_react.default.createElement(_blocks.SnippetBlock, {
87
87
  testId: 'connected-AI',
88
88
  status: _constants.SmartLinkStatus.Resolved
89
- }), !(0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.hover-card-action-redesign') && /*#__PURE__*/_react.default.createElement(_blocks.MetadataBlock, {
89
+ }), /*#__PURE__*/_react.default.createElement(_blocks.MetadataBlock, {
90
90
  primary: bottomPrimary,
91
91
  size: _constants.SmartLinkSize.Large,
92
92
  overrideCss: _styled.metadataBlockCss,
@@ -145,7 +145,6 @@ var HoverCardResolvedView = function HoverCardResolvedView(_ref2) {
145
145
  data: data,
146
146
  fallbackElementHeight: snippetHeight.current
147
147
  });
148
- var isActionBlockEnabled = (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.hover-card-action-redesign') ? true : false;
149
148
  return /*#__PURE__*/_react.default.createElement(_FlexibleCard.default, flexibleCardProps, imagePreview, /*#__PURE__*/_react.default.createElement(_blocks.TitleBlock, (0, _extends2.default)({}, titleBlockProps, {
150
149
  metadataPosition: _constants.SmartLinkPosition.Top
151
150
  })), /*#__PURE__*/_react.default.createElement(_blocks.MetadataBlock, {
@@ -173,7 +172,7 @@ var HoverCardResolvedView = function HoverCardResolvedView(_ref2) {
173
172
  onRender: onSnippetRender,
174
173
  blockRef: snippetBlockRef,
175
174
  overrideCss: _styled.hiddenSnippetStyles
176
- }), !isAISummaryEnabled && !isActionBlockEnabled && /*#__PURE__*/_react.default.createElement(_blocks.MetadataBlock, {
175
+ }), !isAISummaryEnabled && /*#__PURE__*/_react.default.createElement(_blocks.MetadataBlock, {
177
176
  primary: tertiary,
178
177
  size: _constants.SmartLinkSize.Large,
179
178
  overrideCss: _styled.metadataBlockCss,
@@ -188,10 +187,7 @@ var HoverCardResolvedView = function HoverCardResolvedView(_ref2) {
188
187
  }],
189
188
  actions: footerActions,
190
189
  aiSummaryMinHeight: connectedAIBlockHeight.current
191
- }), isActionBlockEnabled && /*#__PURE__*/_react.default.createElement(_blocks.ActionBlock, {
192
- onClick: onActionClick,
193
- spaceInline: "space.100"
194
- }), isActionBlockEnabled && /*#__PURE__*/_react.default.createElement(_blocks.AIFooterBlock, null), !isAISummaryEnabled && !isActionBlockEnabled && /*#__PURE__*/_react.default.createElement(_blocks.FooterBlock, {
190
+ }), !isAISummaryEnabled && /*#__PURE__*/_react.default.createElement(_blocks.FooterBlock, {
195
191
  actions: footerActions,
196
192
  size: _constants.SmartLinkSize.Large,
197
193
  overrideCss: _styled.footerBlockCss
@@ -0,0 +1,81 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _constants = require("../../../../../constants");
12
+ var _helpers = require("../../../../../state/helpers");
13
+ var _FlexibleCard = _interopRequireDefault(require("../../../../FlexibleCard"));
14
+ var _blocks = require("../../../../FlexibleCard/components/blocks");
15
+ var _utils = require("../../../utils");
16
+ var _ImagePreview = _interopRequireDefault(require("../../ImagePreview"));
17
+ var _styled = require("./styled");
18
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
19
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
20
+ var HoverCardResolvedView = function HoverCardResolvedView(_ref) {
21
+ var _cardState$details;
22
+ var analytics = _ref.analytics,
23
+ cardState = _ref.cardState,
24
+ extensionKey = _ref.extensionKey,
25
+ flexibleCardProps = _ref.flexibleCardProps,
26
+ isAISummaryEnabled = _ref.isAISummaryEnabled,
27
+ onActionClick = _ref.onActionClick,
28
+ titleBlockProps = _ref.titleBlockProps;
29
+ var canBeDatasource = (0, _helpers.getCanBeDatasource)(cardState.details);
30
+ (0, _react.useEffect)(function () {
31
+ // Since this hover view is only rendered on resolved status,
32
+ // there is no need to check for statuses.
33
+ analytics.ui.renderSuccessEvent({
34
+ display: _constants.CardDisplay.HoverCardPreview,
35
+ status: cardState.status,
36
+ canBeDatasource: canBeDatasource
37
+ });
38
+ }, [analytics.ui, cardState.status, canBeDatasource]);
39
+ var data = (_cardState$details = cardState.details) === null || _cardState$details === void 0 ? void 0 : _cardState$details.data;
40
+ var _useMemo = (0, _react.useMemo)(function () {
41
+ return (0, _utils.getMetadata)(extensionKey, data);
42
+ }, [data, extensionKey]),
43
+ primary = _useMemo.primary,
44
+ secondary = _useMemo.secondary;
45
+ var snippetHeight = _react.default.useRef(0);
46
+ var snippetBlockRef = (0, _react.useRef)(null);
47
+ var onSnippetRender = (0, _react.useCallback)(function () {
48
+ var _snippetBlockRef$curr, _snippetBlockRef$curr2;
49
+ snippetHeight.current = (_snippetBlockRef$curr = (_snippetBlockRef$curr2 = snippetBlockRef.current) === null || _snippetBlockRef$curr2 === void 0 ? void 0 : _snippetBlockRef$curr2.getBoundingClientRect().height) !== null && _snippetBlockRef$curr !== void 0 ? _snippetBlockRef$curr : 0;
50
+ }, []);
51
+ var imagePreview = (0, _ImagePreview.default)({
52
+ data: data,
53
+ fallbackElementHeight: snippetHeight.current
54
+ });
55
+ var snippet = imagePreview ? null : /*#__PURE__*/_react.default.createElement(_blocks.SnippetBlock, {
56
+ status: _constants.SmartLinkStatus.Resolved
57
+ });
58
+ var aiSummaryMinHeight = snippet ? snippetHeight.current : 0;
59
+ return /*#__PURE__*/_react.default.createElement(_FlexibleCard.default, flexibleCardProps, imagePreview, /*#__PURE__*/_react.default.createElement(_blocks.TitleBlock, (0, _extends2.default)({}, titleBlockProps, {
60
+ metadataPosition: _constants.SmartLinkPosition.Top
61
+ })), /*#__PURE__*/_react.default.createElement(_blocks.MetadataBlock, {
62
+ primary: primary,
63
+ secondary: secondary,
64
+ overrideCss: _styled.metadataBlockCss,
65
+ maxLines: 1,
66
+ size: _constants.SmartLinkSize.Medium
67
+ }), isAISummaryEnabled ? /*#__PURE__*/_react.default.createElement(_blocks.AISummaryBlock, {
68
+ aiSummaryMinHeight: aiSummaryMinHeight,
69
+ placeholder: snippet,
70
+ status: _constants.SmartLinkStatus.Resolved
71
+ }) : snippet, /*#__PURE__*/_react.default.createElement(_blocks.SnippetBlock, {
72
+ testId: "hidden-snippet",
73
+ onRender: onSnippetRender,
74
+ blockRef: snippetBlockRef,
75
+ overrideCss: _styled.hiddenSnippetStyles
76
+ }), /*#__PURE__*/_react.default.createElement(_blocks.ActionBlock, {
77
+ onClick: onActionClick,
78
+ spaceInline: "space.100"
79
+ }), /*#__PURE__*/_react.default.createElement(_blocks.AIFooterBlock, null));
80
+ };
81
+ var _default = exports.default = HoverCardResolvedView;
@@ -17,7 +17,7 @@ var _excluded = ["href", "children", "checkSafety", "onClick", "testId"],
17
17
  _excluded2 = ["isLinkSafe", "showSafetyWarningModal"];
18
18
  var PACKAGE_DATA = {
19
19
  packageName: "@atlaskit/smart-card",
20
- packageVersion: "26.67.0",
20
+ packageVersion: "26.69.0",
21
21
  componentName: 'linkUrl'
22
22
  };
23
23
  var Link = (0, _click.withLinkClickedEvent)('a');
@@ -31,7 +31,7 @@ export const messages = defineMessages({
31
31
  description: 'Additional info about the content summarised by AI.'
32
32
  },
33
33
  ai_summarized_info_short: {
34
- id: 'fabric.linking.ai_summarized_info_short.nonfinal',
34
+ id: 'fabric.linking.ai_summarized_info_short',
35
35
  defaultMessage: 'Content quality may vary',
36
36
  description: 'Additional info about the content summarised by AI.'
37
37
  },
@@ -186,7 +186,7 @@ export const messages = defineMessages({
186
186
  description: ''
187
187
  },
188
188
  copied_url_to_clipboard: {
189
- id: 'fabric.linking.copied_url_to_clipboard.nonfinal',
189
+ id: 'fabric.linking.copied_url_to_clipboard',
190
190
  defaultMessage: 'Copied!',
191
191
  description: 'Url has been copied to the clipboard'
192
192
  },
@@ -221,37 +221,37 @@ export const messages = defineMessages({
221
221
  description: ''
222
222
  },
223
223
  download_description: {
224
- id: 'fabric.linking.download_description.nonfinal',
224
+ id: 'fabric.linking.download_description',
225
225
  defaultMessage: 'Download this file into your local storage',
226
226
  description: 'Description on what Download does'
227
227
  },
228
228
  download_file: {
229
- id: 'fabric.linking.download_file.nonfinal',
229
+ id: 'fabric.linking.download_file',
230
230
  defaultMessage: 'Download file',
231
231
  description: 'Allow a user to download a file'
232
232
  },
233
233
  ai_summary_action: {
234
- id: 'fabric.linking.ai_summary_action.nonfinal',
234
+ id: 'fabric.linking.ai_summary_action',
235
235
  defaultMessage: 'Summarize with AI',
236
236
  description: 'Allow a user to summarize a link'
237
237
  },
238
238
  ai_summary_action_description: {
239
- id: 'fabric.linking.ai_summary_action_description.nonfinal',
239
+ id: 'fabric.linking.ai_summary_action_description',
240
240
  defaultMessage: 'Summarize the content of this link using Atlassian Intelligence.',
241
241
  description: 'Description of what the summarize link with AI action does'
242
242
  },
243
243
  copy_summary_action: {
244
- id: 'fabric.linking.copy_summary_action.nonfinal',
244
+ id: 'fabric.linking.copy_summary_action',
245
245
  defaultMessage: 'Copy summary',
246
246
  description: 'Allow a user to copy a generated summary'
247
247
  },
248
248
  copy_summary_action_description: {
249
- id: 'fabric.linking.copy_summary_action.nonfinal',
249
+ id: 'fabric.linking.copy_summary_action_description',
250
250
  defaultMessage: 'Copy summary',
251
251
  description: 'Description of what the copy summary AI action does'
252
252
  },
253
253
  copied_summary_action_description: {
254
- id: 'fabric.linking.copied_summary_action_description.nonfinal',
254
+ id: 'fabric.linking.copied_summary_action_description',
255
255
  defaultMessage: 'Copied summary to clipboard',
256
256
  description: 'Confirmation to the user that the summry has been copied'
257
257
  },
@@ -266,32 +266,32 @@ export const messages = defineMessages({
266
266
  description: 'Click to follow a project.'
267
267
  },
268
268
  follow_project_description: {
269
- id: 'fabric.linking.follow_project_description.nonfinal',
269
+ id: 'fabric.linking.follow_project_description',
270
270
  defaultMessage: 'Follow to get notifications on this project',
271
271
  description: 'Description on what Follow does'
272
272
  },
273
273
  follow_project: {
274
- id: 'fabric.linking.follow_project.nonfinal',
274
+ id: 'fabric.linking.follow_project',
275
275
  defaultMessage: 'Follow project',
276
276
  description: 'Click to follow a project.'
277
277
  },
278
278
  follow_project_error: {
279
- id: 'fabric.linking.follow_project_error.nonfinal',
279
+ id: 'fabric.linking.follow_project_error',
280
280
  defaultMessage: 'We encountered an error while trying to follow the project. Check your connection or refresh the page and try again.',
281
281
  description: 'Shown when an unknown error occurs when following an Atlas project'
282
282
  },
283
283
  follow_goal_description: {
284
- id: 'fabric.linking.follow_goal_description.nonfinal',
284
+ id: 'fabric.linking.follow_goal_description',
285
285
  defaultMessage: 'Follow this goal to get notifications on updates',
286
286
  description: 'Description on what Follow does'
287
287
  },
288
288
  follow_goal: {
289
- id: 'fabric.linking.follow_goal.nonfinal',
289
+ id: 'fabric.linking.follow_goal',
290
290
  defaultMessage: 'Follow goal',
291
291
  description: 'Click to follow a project.'
292
292
  },
293
293
  follow_goal_error: {
294
- id: 'fabric.linking.follow_goal_error.nonfinal',
294
+ id: 'fabric.linking.follow_goal_error',
295
295
  defaultMessage: 'We encountered an error while trying to follow the goal. Check your connection or refresh the page and try again.',
296
296
  description: 'Shown when an unknown error occurs when following an Atlas goal'
297
297
  },
@@ -366,7 +366,7 @@ export const messages = defineMessages({
366
366
  description: 'Indicates the person or entity that owns or maintains the resource.'
367
367
  },
368
368
  preview_description: {
369
- id: 'fabric.linking.preview_description.nonfinal',
369
+ id: 'fabric.linking.preview_description',
370
370
  defaultMessage: 'Open a full screen preview of this link',
371
371
  description: 'Description on what Preview does'
372
372
  },
@@ -556,32 +556,32 @@ export const messages = defineMessages({
556
556
  description: 'Click to unfollow a project.'
557
557
  },
558
558
  unfollow_project_description: {
559
- id: 'fabric.linking.unfollow_project_description.nonfinal',
559
+ id: 'fabric.linking.unfollow_project_description',
560
560
  defaultMessage: 'Unfollow to stop receiving project notifications',
561
561
  description: 'Description on what Unfollow does'
562
562
  },
563
563
  unfollow_project: {
564
- id: 'fabric.linking.unfollow_project.nonfinal',
564
+ id: 'fabric.linking.unfollow_project',
565
565
  defaultMessage: 'Unfollow project',
566
566
  description: 'Click to unfollow a project.'
567
567
  },
568
568
  unfollow_project_error: {
569
- id: 'fabric.linking.unfollow_project_error.nonfinal',
569
+ id: 'fabric.linking.unfollow_project_error',
570
570
  defaultMessage: 'We encountered an error while trying to unfollow the project. Check your connection or refresh the page and try again.',
571
571
  description: 'Shown when an unknown error occurs when unfollowing an Atlas project'
572
572
  },
573
573
  unfollow_goal_description: {
574
- id: 'fabric.linking.unfollow_goal_description.nonfinal',
574
+ id: 'fabric.linking.unfollow_goal_description',
575
575
  defaultMessage: 'Unfollow to stop receiving notifications for this goal',
576
576
  description: 'Description on what Unfollow does'
577
577
  },
578
578
  unfollow_goal: {
579
- id: 'fabric.linking.unfollow_goal.nonfinal',
579
+ id: 'fabric.linking.unfollow_goal',
580
580
  defaultMessage: 'Unfollow goal',
581
581
  description: 'Click to unfollow a project.'
582
582
  },
583
583
  unfollow_goal_error: {
584
- id: 'fabric.linking.unfollow_goal_error.nonfinal',
584
+ id: 'fabric.linking.unfollow_goal_error',
585
585
  defaultMessage: 'We encountered an error while trying to unfollow the goal. Check your connection or refresh the page and try again.',
586
586
  description: 'Shown when an unknown error occurs when unfollowing an Atlas goal'
587
587
  },
@@ -4,7 +4,7 @@ export const ANALYTICS_CHANNEL = 'media';
4
4
  export const context = {
5
5
  componentName: 'smart-cards',
6
6
  packageName: "@atlaskit/smart-card",
7
- packageVersion: "26.67.0"
7
+ packageVersion: "26.69.0"
8
8
  };
9
9
  export let TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
10
10
  TrackQuickActionType["StatusUpdate"] = "StatusUpdate";