@atlaskit/smart-card 26.50.13 → 26.50.15

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 (78) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/cjs/extractors/flexible/actions/index.js +17 -0
  3. package/dist/cjs/extractors/flexible/index.js +4 -3
  4. package/dist/cjs/state/flexible-ui-context/types.js +1 -3
  5. package/dist/cjs/state/hooks/use-ai-summary/ai-summary-service/index.js +6 -3
  6. package/dist/cjs/state/hooks/use-ai-summary/index.js +4 -2
  7. package/dist/cjs/utils/analytics/analytics.js +1 -1
  8. package/dist/cjs/view/FlexibleCard/components/actions/index.js +8 -12
  9. package/dist/cjs/view/FlexibleCard/components/actions/preview-action/index.js +83 -0
  10. package/dist/cjs/view/FlexibleCard/components/actions/types.js +5 -0
  11. package/dist/cjs/view/FlexibleCard/components/actions/utils.js +0 -13
  12. package/dist/cjs/view/FlexibleCard/components/blocks/action-group/action-group-item/index.js +8 -6
  13. package/dist/cjs/view/FlexibleCard/components/blocks/ai-summary-block/resolved/index.js +3 -1
  14. package/dist/cjs/view/FlexibleCard/components/blocks/utils.js +45 -11
  15. package/dist/cjs/view/HoverCard/components/ContentContainer.js +6 -3
  16. package/dist/cjs/view/HoverCard/components/views/resolved/index.js +7 -3
  17. package/dist/cjs/view/LinkUrl/index.js +1 -1
  18. package/dist/es2019/extractors/flexible/actions/index.js +9 -0
  19. package/dist/es2019/extractors/flexible/index.js +5 -4
  20. package/dist/es2019/state/flexible-ui-context/types.js +6 -1
  21. package/dist/es2019/state/hooks/use-ai-summary/ai-summary-service/index.js +6 -3
  22. package/dist/es2019/state/hooks/use-ai-summary/index.js +4 -2
  23. package/dist/es2019/utils/analytics/analytics.js +1 -1
  24. package/dist/es2019/view/FlexibleCard/components/actions/index.js +1 -11
  25. package/dist/es2019/view/FlexibleCard/components/actions/preview-action/index.js +52 -0
  26. package/dist/es2019/view/FlexibleCard/components/actions/utils.js +0 -14
  27. package/dist/es2019/view/FlexibleCard/components/blocks/action-group/action-group-item/index.js +8 -6
  28. package/dist/es2019/view/FlexibleCard/components/blocks/ai-summary-block/resolved/index.js +3 -1
  29. package/dist/es2019/view/FlexibleCard/components/blocks/utils.js +42 -33
  30. package/dist/es2019/view/HoverCard/components/ContentContainer.js +7 -4
  31. package/dist/es2019/view/HoverCard/components/views/resolved/index.js +8 -4
  32. package/dist/es2019/view/LinkUrl/index.js +1 -1
  33. package/dist/esm/extractors/flexible/actions/index.js +10 -0
  34. package/dist/esm/extractors/flexible/index.js +5 -4
  35. package/dist/esm/state/flexible-ui-context/types.js +6 -1
  36. package/dist/esm/state/hooks/use-ai-summary/ai-summary-service/index.js +6 -3
  37. package/dist/esm/state/hooks/use-ai-summary/index.js +4 -2
  38. package/dist/esm/utils/analytics/analytics.js +1 -1
  39. package/dist/esm/view/FlexibleCard/components/actions/index.js +1 -11
  40. package/dist/esm/view/FlexibleCard/components/actions/preview-action/index.js +73 -0
  41. package/dist/esm/view/FlexibleCard/components/actions/preview-action/types.js +1 -0
  42. package/dist/esm/view/FlexibleCard/components/actions/types.js +1 -0
  43. package/dist/esm/view/FlexibleCard/components/actions/utils.js +0 -13
  44. package/dist/esm/view/FlexibleCard/components/blocks/action-group/action-group-item/index.js +8 -6
  45. package/dist/esm/view/FlexibleCard/components/blocks/ai-summary-block/resolved/index.js +3 -1
  46. package/dist/esm/view/FlexibleCard/components/blocks/utils.js +45 -11
  47. package/dist/esm/view/HoverCard/components/ContentContainer.js +7 -4
  48. package/dist/esm/view/HoverCard/components/views/resolved/index.js +8 -4
  49. package/dist/esm/view/LinkUrl/index.js +1 -1
  50. package/dist/types/extractors/flexible/actions/index.d.ts +5 -0
  51. package/dist/types/state/flexible-ui-context/types.d.ts +14 -7
  52. package/dist/types/state/hooks/use-ai-summary/ai-summary-service/index.d.ts +1 -0
  53. package/dist/types/state/hooks/use-ai-summary/ai-summary-service/types.d.ts +7 -3
  54. package/dist/types/view/FlexibleCard/components/actions/index.d.ts +1 -7
  55. package/dist/types/view/FlexibleCard/components/actions/preview-action/index.d.ts +4 -0
  56. package/dist/types/view/FlexibleCard/components/actions/preview-action/types.d.ts +2 -0
  57. package/dist/types/view/FlexibleCard/components/actions/types.d.ts +7 -0
  58. package/dist/types/view/FlexibleCard/types.d.ts +20 -2
  59. package/dist/types-ts4.5/extractors/flexible/actions/index.d.ts +5 -0
  60. package/dist/types-ts4.5/state/flexible-ui-context/types.d.ts +14 -7
  61. package/dist/types-ts4.5/state/hooks/use-ai-summary/ai-summary-service/index.d.ts +1 -0
  62. package/dist/types-ts4.5/state/hooks/use-ai-summary/ai-summary-service/types.d.ts +7 -3
  63. package/dist/types-ts4.5/view/FlexibleCard/components/actions/index.d.ts +1 -7
  64. package/dist/types-ts4.5/view/FlexibleCard/components/actions/preview-action/index.d.ts +4 -0
  65. package/dist/types-ts4.5/view/FlexibleCard/components/actions/preview-action/types.d.ts +2 -0
  66. package/dist/types-ts4.5/view/FlexibleCard/components/actions/types.d.ts +7 -0
  67. package/dist/types-ts4.5/view/FlexibleCard/types.d.ts +20 -2
  68. package/package.json +3 -3
  69. package/dist/cjs/view/FlexibleCard/components/actions/action/preview-action/index.js +0 -87
  70. package/dist/es2019/view/FlexibleCard/components/actions/action/preview-action/index.js +0 -63
  71. package/dist/esm/view/FlexibleCard/components/actions/action/preview-action/index.js +0 -80
  72. package/dist/types/view/FlexibleCard/components/actions/action/preview-action/index.d.ts +0 -4
  73. package/dist/types/view/FlexibleCard/components/actions/action/preview-action/types.d.ts +0 -12
  74. package/dist/types-ts4.5/view/FlexibleCard/components/actions/action/preview-action/index.d.ts +0 -4
  75. package/dist/types-ts4.5/view/FlexibleCard/components/actions/action/preview-action/types.d.ts +0 -12
  76. /package/dist/cjs/view/FlexibleCard/components/actions/{action/preview-action → preview-action}/types.js +0 -0
  77. /package/dist/es2019/view/FlexibleCard/components/actions/{action/preview-action → preview-action}/types.js +0 -0
  78. /package/dist/{esm/view/FlexibleCard/components/actions/action/preview-action → es2019/view/FlexibleCard/components/actions}/types.js +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # @atlaskit/smart-card
2
2
 
3
+ ## 26.50.15
4
+
5
+ ### Patch Changes
6
+
7
+ - [#86332](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/86332) [`813df6eb80c9`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/813df6eb80c9) - Refactor FlexibleCard's PreviewAction creation
8
+
9
+ ## 26.50.14
10
+
11
+ ### Patch Changes
12
+
13
+ - [#86596](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/86596) [`37621cb1f1b9`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/37621cb1f1b9) - Update dependency json-ld-types
14
+ - [#86596](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/86596) [`3e267c62d680`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/3e267c62d680) - Change request shape to ai mate summary service and include ARI, add ari to flex context
15
+ - Updated dependencies
16
+
3
17
  ## 26.50.13
4
18
 
5
19
  ### Patch Changes
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
+ var _constants = require("../../../constants");
10
+ var _extractPreviewAction = require("./extract-preview-action");
11
+ var extractActions = function extractActions(response, actionOptions) {
12
+ var action = (0, _defineProperty2.default)({}, _constants.ActionName.PreviewAction, (0, _extractPreviewAction.extractPreviewAction)(response, actionOptions));
13
+ return Object.values(action).some(function (value) {
14
+ return Boolean(value);
15
+ }) ? action : undefined;
16
+ };
17
+ var _default = exports.default = extractActions;
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.default = void 0;
8
8
  var _primitives = require("../common/primitives");
9
+ var _actions = _interopRequireDefault(require("./actions"));
9
10
  var _extractFollowAction = _interopRequireDefault(require("./actions/extract-follow-action"));
10
11
  var _icon = require("./icon");
11
12
  var _utils = require("./utils");
@@ -16,7 +17,6 @@ var _extractProviderIcon = _interopRequireDefault(require("./icon/extract-provid
16
17
  var _extractPreview = _interopRequireDefault(require("./extract-preview"));
17
18
  var _extractState = _interopRequireDefault(require("./extract-state"));
18
19
  var _latestCommit = require("./latest-commit");
19
- var _extractPreviewAction = require("./actions/extract-preview-action");
20
20
  var _extractDownloadAction = require("./actions/extract-download-action");
21
21
  var _extractViewAction = require("./actions/extract-view-action");
22
22
  var extractFlexibleUiContext = function extractFlexibleUiContext() {
@@ -31,6 +31,7 @@ var extractFlexibleUiContext = function extractFlexibleUiContext() {
31
31
  var data = response.data;
32
32
  var url = (0, _linkExtractors.extractLink)(data);
33
33
  return {
34
+ actions: (0, _actions.default)(response, actionOptions),
34
35
  assignedToGroup: (0, _utils.extractPersonAssignedToAsArray)(data),
35
36
  attachmentCount: (0, _utils.extractAttachmentCount)(data),
36
37
  authorGroup: (0, _linkExtractors.extractPersonCreatedBy)(data),
@@ -47,7 +48,6 @@ var extractFlexibleUiContext = function extractFlexibleUiContext() {
47
48
  createdOn: (0, _linkExtractors.extractDateCreated)(data),
48
49
  dueOn: (0, _utils.extractDueOn)(data),
49
50
  followAction: (0, _extractFollowAction.default)(response, actionOptions, id),
50
- previewAction: (0, _extractPreviewAction.extractPreviewAction)(response, actionOptions),
51
51
  viewAction: (0, _extractViewAction.extractViewAction)(data, actionOptions),
52
52
  downloadAction: (0, _extractDownloadAction.extractDownloadAction)(data, actionOptions),
53
53
  latestCommit: (0, _latestCommit.extractLatestCommit)(data),
@@ -70,7 +70,8 @@ var extractFlexibleUiContext = function extractFlexibleUiContext() {
70
70
  storyPoints: (0, _utils.extractStoryPoints)(data),
71
71
  targetBranch: (0, _utils.extractTargetBranch)(data),
72
72
  title: (0, _linkExtractors.extractTitle)(data) || url,
73
- url: url
73
+ url: url,
74
+ ari: (0, _linkExtractors.extractAri)(data)
74
75
  };
75
76
  };
76
77
  var _default = exports.default = extractFlexibleUiContext;
@@ -1,5 +1,3 @@
1
1
  "use strict";
2
2
 
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
3
+ var _constants = require("../../constants");
@@ -37,9 +37,11 @@ var AISummaryService = exports.AISummaryService = /*#__PURE__*/function () {
37
37
  case 0:
38
38
  payload = {
39
39
  recipient_agent_named_id: 'summary_agent',
40
- agent_input: {
41
- urls: [_this.url],
42
- summary_style: summaryStyle
40
+ agent_input_context: {
41
+ content_url: _this.url,
42
+ content_ari: _this.ari,
43
+ summary_style: summaryStyle,
44
+ summary_output_mimetype: 'text/markdown'
43
45
  }
44
46
  };
45
47
  options = {
@@ -84,6 +86,7 @@ var AISummaryService = exports.AISummaryService = /*#__PURE__*/function () {
84
86
  headers: _objectSpread({}, props.headers || defaultConfig.headers)
85
87
  };
86
88
  this.url = props.url;
89
+ this.ari = props.ari;
87
90
  this.onStart = props.onStart;
88
91
  this.onSuccess = props.onSuccess;
89
92
  this.onError = props.onError;
@@ -17,7 +17,8 @@ var useAISummary = exports.useAISummary = function useAISummary(props) {
17
17
  var url = props.url,
18
18
  baseUrl = props.baseUrl,
19
19
  headers = props.headers,
20
- product = props.product;
20
+ product = props.product,
21
+ ari = props.ari;
21
22
  var _useState = (0, _react.useState)(((_AISummariesStore$get = _store.AISummariesStore.get(url)) === null || _AISummariesStore$get === void 0 ? void 0 : _AISummariesStore$get.state) || {
22
23
  status: 'ready',
23
24
  content: ''
@@ -45,6 +46,7 @@ var useAISummary = exports.useAISummary = function useAISummary(props) {
45
46
  if (!_store.AISummariesStore.get(url)) {
46
47
  _store.AISummariesStore.set(url, new _aiSummaryService.AISummaryService({
47
48
  url: url,
49
+ ari: ari,
48
50
  baseUrl: baseUrl,
49
51
  headers: headers,
50
52
  onError: onError,
@@ -56,7 +58,7 @@ var useAISummary = exports.useAISummary = function useAISummary(props) {
56
58
 
57
59
  //returns function that calls unsubscribe method
58
60
  return (_AISummariesStore$get2 = _store.AISummariesStore.get(url)) === null || _AISummariesStore$get2 === void 0 ? void 0 : _AISummariesStore$get2.subscribe(setState);
59
- }, [url, baseUrl, headers, onError, onStart, onSuccess, product]);
61
+ }, [url, baseUrl, headers, onError, onStart, onSuccess, product, ari]);
60
62
  var summariseUrl = function summariseUrl() {
61
63
  var _AISummariesStore$get3;
62
64
  return (_AISummariesStore$get3 = _store.AISummariesStore.get(url)) === null || _AISummariesStore$get3 === void 0 ? void 0 : _AISummariesStore$get3.summariseUrl();
@@ -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.50.13"
25
+ packageVersion: "26.50.15"
26
26
  };
27
27
  var TrackQuickActionType = exports.TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
28
28
  TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
@@ -11,14 +11,17 @@ Object.defineProperty(exports, "FollowAction", {
11
11
  return _followAction.default;
12
12
  }
13
13
  });
14
- exports.ViewAction = exports.PreviewAction = void 0;
14
+ Object.defineProperty(exports, "PreviewAction", {
15
+ enumerable: true,
16
+ get: function get() {
17
+ return _previewAction.default;
18
+ }
19
+ });
20
+ exports.ViewAction = void 0;
15
21
  var _constants = require("../../../../constants");
16
22
  var _utils = require("./utils");
17
23
  var _followAction = _interopRequireDefault(require("./follow-action"));
18
- // Attention: Keep the export name and action name the same.
19
- // This will help reducing the code for mapping action inside
20
- // createAction and renderActionItems
21
-
24
+ var _previewAction = _interopRequireDefault(require("./preview-action"));
22
25
  /**
23
26
  * Creates a DeleteAction component. Accepts default ActionProps, but defaults
24
27
  * the icon to a cross icon.
@@ -32,13 +35,6 @@ var DeleteAction = exports.DeleteAction = (0, _utils.createUIAction)(_constants.
32
35
  */
33
36
  var EditAction = exports.EditAction = (0, _utils.createUIAction)(_constants.ActionName.EditAction);
34
37
 
35
- /**
36
- * Creates a PreviewAction component. Accepts default PreviewActionProps, and defaults
37
- * to the text 'Preview' inside the button.
38
- * @see Action
39
- */
40
- var PreviewAction = exports.PreviewAction = (0, _utils.createDataAction)(_constants.ActionName.PreviewAction);
41
-
42
38
  /**
43
39
  * Creates a ViewAction component. Accepts default ViewActionProps, and defaults
44
40
  * to the text 'View' inside the button.
@@ -0,0 +1,83 @@
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 _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
14
+ var _vidFullScreenOn = _interopRequireDefault(require("@atlaskit/icon/glyph/vid-full-screen-on"));
15
+ var _react = _interopRequireWildcard(require("react"));
16
+ var _reactIntlNext = require("react-intl-next");
17
+ var _constants = require("../../../../../constants");
18
+ var _messages = require("../../../../../messages");
19
+ var _flexibleUiContext = require("../../../../../state/flexible-ui-context");
20
+ var _useInvokeClientAction = _interopRequireDefault(require("../../../../../state/hooks/use-invoke-client-action"));
21
+ var _utils = require("../../utils");
22
+ var _action = _interopRequireDefault(require("../action"));
23
+ var _excluded = ["onClick"];
24
+ 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); }
25
+ 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; }
26
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
27
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
28
+ var PreviewAction = function PreviewAction(_ref) {
29
+ var _context$actions;
30
+ var onClickCallback = _ref.onClick,
31
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
32
+ var context = (0, _flexibleUiContext.useFlexibleUiContext)();
33
+ var analytics = (0, _flexibleUiContext.useFlexibleUiAnalyticsContext)();
34
+ var invoke = (0, _useInvokeClientAction.default)({
35
+ analytics: analytics
36
+ });
37
+ var data = context === null || context === void 0 || (_context$actions = context.actions) === null || _context$actions === void 0 ? void 0 : _context$actions[_constants.ActionName.PreviewAction];
38
+ var onClick = (0, _react.useCallback)(function () {
39
+ if (data) {
40
+ invoke({
41
+ actionType: _constants.ActionName.PreviewAction,
42
+ actionFn: function () {
43
+ var _actionFn = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
44
+ return _regenerator.default.wrap(function _callee$(_context) {
45
+ while (1) switch (_context.prev = _context.next) {
46
+ case 0:
47
+ return _context.abrupt("return", (0, _utils.openEmbedModalWithFlexibleUiIcon)(_objectSpread({
48
+ download: data === null || data === void 0 ? void 0 : data.downloadUrl,
49
+ extensionKey: analytics === null || analytics === void 0 ? void 0 : analytics.extensionKey,
50
+ analytics: analytics
51
+ }, data)));
52
+ case 1:
53
+ case "end":
54
+ return _context.stop();
55
+ }
56
+ }, _callee);
57
+ }));
58
+ function actionFn() {
59
+ return _actionFn.apply(this, arguments);
60
+ }
61
+ return actionFn;
62
+ }(),
63
+ // These values have already been set in analytics context.
64
+ // We only pass these here for ufo experience.
65
+ display: analytics === null || analytics === void 0 ? void 0 : analytics.display,
66
+ extensionKey: analytics === null || analytics === void 0 ? void 0 : analytics.extensionKey
67
+ });
68
+ }
69
+ if (onClickCallback) {
70
+ onClickCallback();
71
+ }
72
+ }, [analytics, data, invoke, onClickCallback]);
73
+ return data ? /*#__PURE__*/_react.default.createElement(_action.default, (0, _extends2.default)({
74
+ content: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages.preview_improved),
75
+ icon: /*#__PURE__*/_react.default.createElement(_vidFullScreenOn.default, {
76
+ label: "Open preview"
77
+ }),
78
+ onClick: onClick,
79
+ testId: "smart-action-preview-action",
80
+ tooltipMessage: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages.preview_improved)
81
+ }, data, props)) : null;
82
+ };
83
+ var _default = exports.default = PreviewAction;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -17,8 +17,6 @@ var _reactIntlNext = require("react-intl-next");
17
17
  var _messages = require("../../../../messages");
18
18
  var _cross = _interopRequireDefault(require("@atlaskit/icon/glyph/cross"));
19
19
  var _edit = _interopRequireDefault(require("@atlaskit/icon/glyph/edit"));
20
- var _previewAction = _interopRequireDefault(require("./action/preview-action"));
21
- var _vidFullScreenOn = _interopRequireDefault(require("@atlaskit/icon/glyph/vid-full-screen-on"));
22
20
  var _viewAction = _interopRequireDefault(require("./action/view-action"));
23
21
  var _shortcut = _interopRequireDefault(require("@atlaskit/icon/glyph/shortcut"));
24
22
  var _downloadAction = _interopRequireDefault(require("./action/download-action"));
@@ -51,16 +49,6 @@ var actionMappings = (_actionMappings = {}, (0, _defineProperty2.default)(_actio
51
49
  }),
52
50
  tooltipMessage: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages.edit)
53
51
  }
54
- }), (0, _defineProperty2.default)(_actionMappings, _constants.ActionName.PreviewAction, {
55
- component: _previewAction.default,
56
- props: {
57
- testId: 'smart-action-preview-action',
58
- content: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages.preview_improved),
59
- icon: /*#__PURE__*/_react.default.createElement(_vidFullScreenOn.default, {
60
- label: "Open preview"
61
- }),
62
- tooltipMessage: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages.preview_improved)
63
- }
64
52
  }), (0, _defineProperty2.default)(_actionMappings, _constants.ActionName.ViewAction, {
65
53
  component: _viewAction.default,
66
54
  props: {
@@ -93,7 +81,6 @@ var getActionData = function getActionData(actionName, contextKey, context) {
93
81
  }
94
82
  var data = context[contextKey];
95
83
  switch (actionName) {
96
- case _constants.ActionName.PreviewAction:
97
84
  case _constants.ActionName.ViewAction:
98
85
  case _constants.ActionName.DownloadAction:
99
86
  return data;
@@ -12,7 +12,6 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/h
12
12
  var _react = require("@emotion/react");
13
13
  var _react2 = _interopRequireWildcard(require("react"));
14
14
  var Actions = _interopRequireWildcard(require("../../../actions"));
15
- var _utils = require("../../utils");
16
15
  var _excluded = ["name", "hideContent", "hideIcon", "onClick", "isDisabled"];
17
16
  /** @jsx jsx */
18
17
  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); }
@@ -50,7 +49,14 @@ var ActionGroupItem = function ActionGroupItem(_ref) {
50
49
  if (hideIcon) {
51
50
  actionProps.icon = undefined;
52
51
  }
53
- var action = (0, _react.jsx)(Action, (0, _extends2.default)({
52
+ return (0, _react.jsx)(Action
53
+ // Remove url once ViewAction is retired.
54
+ // This seems to be a typescript workaround
55
+ // because ViewAction marks it as required,
56
+ // which does not reflect actual implementation as the url
57
+ // came from data context and not all actions require url.
58
+ // https://product-fabric.atlassian.net/browse/EDM-9547
59
+ , (0, _extends2.default)({
54
60
  url: "",
55
61
  asDropDownItem: asDropDownItems,
56
62
  size: size,
@@ -58,9 +64,5 @@ var ActionGroupItem = function ActionGroupItem(_ref) {
58
64
  onClick: handleOnClick,
59
65
  isDisabled: isDisabled
60
66
  }, actionProps));
61
- if (!(0, _utils.isJSXElementNull)(action)) {
62
- return action;
63
- }
64
- return null;
65
67
  };
66
68
  var _default = exports.default = ActionGroupItem;
@@ -42,8 +42,10 @@ var AISummaryBlockResolvedView = function AISummaryBlockResolvedView(props) {
42
42
  fireEvent = _useAnalyticsEvents.fireEvent;
43
43
  var context = (0, _flexibleUiContext.useFlexibleUiContext)();
44
44
  var url = (context === null || context === void 0 ? void 0 : context.url) || '';
45
+ var ari = (context === null || context === void 0 ? void 0 : context.ari) || '';
45
46
  var _useAISummary = (0, _useAiSummary.useAISummary)({
46
- url: url
47
+ url: url,
48
+ ari: ari
47
49
  }),
48
50
  summariseUrl = _useAISummary.summariseUrl,
49
51
  _useAISummary$state = _useAISummary.state,
@@ -19,7 +19,7 @@ var _flexible = require("../../../../utils/flexible");
19
19
  var _actionGroup = _interopRequireDefault(require("./action-group"));
20
20
  var _elementGroup = _interopRequireDefault(require("./element-group"));
21
21
  var _excluded = ["name"];
22
- var _ElementDisplaySchema, _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
22
+ var _ElementDisplaySchema, _templateObject;
23
23
  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); }
24
24
  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; }
25
25
  // Determine whether the element can be display as inline/block.
@@ -28,10 +28,16 @@ var ElementDisplaySchema = exports.ElementDisplaySchema = (_ElementDisplaySchema
28
28
  var getDirectionStyles = function getDirectionStyles(direction) {
29
29
  switch (direction) {
30
30
  case _constants.SmartLinkDirection.Vertical:
31
- return (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n flex-direction: column;\n align-items: flex-start;\n "])));
31
+ return (0, _react2.css)({
32
+ flexDirection: 'column',
33
+ alignItems: 'flex-start'
34
+ });
32
35
  case _constants.SmartLinkDirection.Horizontal:
33
36
  default:
34
- return (0, _react2.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n flex-direction: row;\n align-items: center;\n "])));
37
+ return (0, _react2.css)({
38
+ flexDirection: 'row',
39
+ alignItems: 'center'
40
+ });
35
41
  }
36
42
  };
37
43
  var getGapSize = exports.getGapSize = function getGapSize(size) {
@@ -48,9 +54,26 @@ var getGapSize = exports.getGapSize = function getGapSize(size) {
48
54
  }
49
55
  };
50
56
  var getBaseStyles = exports.getBaseStyles = function getBaseStyles(direction, size) {
51
- return (0, _react2.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n align-items: center;\n display: flex;\n gap: ", "rem;\n line-height: 1rem;\n min-width: 0;\n overflow: hidden;\n ", ";\n &:empty {\n display: none;\n }\n & > * {\n min-width: 0;\n }\n & > [data-fit-to-content] {\n min-width: fit-content;\n }\n"])), getGapSize(size), getDirectionStyles(direction));
57
+ return (0, _react2.css)({
58
+ alignItems: 'center',
59
+ display: 'flex',
60
+ gap: "".concat(getGapSize(size), "rem"),
61
+ lineHeight: '1rem',
62
+ minWidth: 0,
63
+ overflow: 'hidden'
64
+ }, getDirectionStyles(direction), {
65
+ '&:empty': {
66
+ display: 'none'
67
+ },
68
+ '& > *': {
69
+ minWidth: 0
70
+ },
71
+ '& > [data-fit-to-content]': {
72
+ minWidth: 'fit-content'
73
+ }
74
+ });
52
75
  };
53
- var highlightRemoveStyles = exports.highlightRemoveStyles = (0, _react2.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n outline: none !important;\n outline-color: inherit;\n color: inherit;\n -webkit-tap-highlight-color: transparent;\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n"])));
76
+ var highlightRemoveStyles = exports.highlightRemoveStyles = (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n outline: none !important;\n outline-color: inherit;\n color: inherit;\n -webkit-tap-highlight-color: transparent;\n -webkit-touch-callout: none;\n -webkit-user-select: none;\n -moz-user-select: none;\n -ms-user-select: none;\n user-select: none;\n"])));
54
77
  var isActionGroup = function isActionGroup(node) {
55
78
  return /*#__PURE__*/_react.default.isValidElement(node) && node.type === _actionGroup.default;
56
79
  };
@@ -69,26 +92,37 @@ var getActionGroupStyles = exports.getActionGroupStyles = function getActionGrou
69
92
  // The biggest height of the action button exceeds the max line-height
70
93
  // of the elements causing the action on the block with x-large size to
71
94
  // get cut at the bottom.
72
- return (0, _react2.css)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n max-height: 2rem;\n "])));
95
+ return (0, _react2.css)({
96
+ maxHeight: '2rem'
97
+ });
73
98
  }
74
99
  };
75
100
  var filterActionItems = exports.filterActionItems = function filterActionItems() {
76
101
  var items = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
77
102
  var context = arguments.length > 1 ? arguments[1] : undefined;
78
103
  return items.filter(function (item) {
104
+ var _context$actions;
79
105
  switch (item.name) {
80
- // Action that require data from the data context to render.
106
+ case _constants.ActionName.DeleteAction:
107
+ case _constants.ActionName.EditAction:
108
+ case _constants.ActionName.CustomAction:
109
+ // Named and custom actions that user defines.
110
+ return Boolean(_constants.ActionName[item.name]);
81
111
  case _constants.ActionName.DownloadAction:
112
+ // Remove once DownloadAction is refactored to context.action
113
+ // https://product-fabric.atlassian.net/browse/EDM-9545
82
114
  return Boolean(context === null || context === void 0 ? void 0 : context.downloadAction);
115
+ // Remove once FollowAction is refactored to context.action
116
+ // https://product-fabric.atlassian.net/browse/EDM-9559
83
117
  case _constants.ActionName.FollowAction:
84
118
  return Boolean(context === null || context === void 0 ? void 0 : context.followAction);
85
- case _constants.ActionName.PreviewAction:
86
- return Boolean(context === null || context === void 0 ? void 0 : context.previewAction);
119
+ // Remove once ViewAction is retired
120
+ // https://product-fabric.atlassian.net/browse/EDM-9547
87
121
  case _constants.ActionName.ViewAction:
88
122
  return Boolean(context === null || context === void 0 ? void 0 : context.viewAction);
89
123
  default:
90
- // Named and custom actions that user defines.
91
- return Boolean(_constants.ActionName[item.name]);
124
+ // Action that require data from the data context to render.
125
+ return Boolean(context === null || context === void 0 || (_context$actions = context.actions) === null || _context$actions === void 0 ? void 0 : _context$actions[item.name]);
92
126
  }
93
127
  });
94
128
  };
@@ -21,7 +21,7 @@ var _excluded = ["children", "isAIEnabled", "testId", "url"],
21
21
  _excluded2 = ["children", "isAIEnabled", "testId", "url"];
22
22
  /** @jsx jsx */
23
23
  var ConnectedAIPrismContainer = function ConnectedAIPrismContainer(_ref) {
24
- var _extractLink, _cardState$details;
24
+ var _cardState$details, _extractLink, _extractAri;
25
25
  var children = _ref.children,
26
26
  _ref$isAIEnabled = _ref.isAIEnabled,
27
27
  isAIEnabled = _ref$isAIEnabled === void 0 ? false : _ref$isAIEnabled,
@@ -29,9 +29,12 @@ var ConnectedAIPrismContainer = function ConnectedAIPrismContainer(_ref) {
29
29
  url = _ref.url,
30
30
  props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
31
31
  var cardState = (0, _store.useSmartCardState)(url);
32
- var dataUrl = (_extractLink = (0, _linkExtractors.extractLink)(cardState === null || cardState === void 0 || (_cardState$details = cardState.details) === null || _cardState$details === void 0 ? void 0 : _cardState$details.data)) !== null && _extractLink !== void 0 ? _extractLink : '';
32
+ var data = cardState === null || cardState === void 0 || (_cardState$details = cardState.details) === null || _cardState$details === void 0 ? void 0 : _cardState$details.data;
33
+ var dataUrl = (_extractLink = (0, _linkExtractors.extractLink)(data)) !== null && _extractLink !== void 0 ? _extractLink : '';
34
+ var dataAri = (_extractAri = (0, _linkExtractors.extractAri)(data)) !== null && _extractAri !== void 0 ? _extractAri : '';
33
35
  var _useAISummary = (0, _useAiSummary.useAISummary)({
34
- url: dataUrl
36
+ url: dataUrl,
37
+ ari: dataAri
35
38
  }),
36
39
  status = _useAISummary.state.status;
37
40
  var _useState = (0, _react2.useState)(status === 'loading'),
@@ -63,9 +63,11 @@ var toFooterActions = exports.toFooterActions = function toFooterActions(cardAct
63
63
  var ConnectedAIBlock = function ConnectedAIBlock(_ref) {
64
64
  var bottomPrimary = _ref.bottomPrimary,
65
65
  imagePreview = _ref.imagePreview,
66
- url = _ref.url;
66
+ url = _ref.url,
67
+ ari = _ref.ari;
67
68
  var _useAISummary = (0, _useAiSummary.useAISummary)({
68
- url: url
69
+ url: url,
70
+ ari: ari
69
71
  }),
70
72
  _useAISummary$state = _useAISummary.state,
71
73
  status = _useAISummary$state.status,
@@ -85,7 +87,7 @@ var ConnectedAIBlock = function ConnectedAIBlock(_ref) {
85
87
  })) : null;
86
88
  };
87
89
  var HoverCardResolvedView = function HoverCardResolvedView(_ref2) {
88
- var _cardState$details, _extractLink;
90
+ var _cardState$details, _extractLink, _extractAri;
89
91
  var flexibleCardProps = _ref2.flexibleCardProps,
90
92
  titleBlockProps = _ref2.titleBlockProps,
91
93
  analytics = _ref2.analytics,
@@ -111,6 +113,7 @@ var HoverCardResolvedView = function HoverCardResolvedView(_ref2) {
111
113
  }, [cardActions, onActionClick]);
112
114
  var data = (_cardState$details = cardState.details) === null || _cardState$details === void 0 ? void 0 : _cardState$details.data;
113
115
  var dataUrl = (_extractLink = (0, _linkExtractors.extractLink)(data)) !== null && _extractLink !== void 0 ? _extractLink : '';
116
+ var dataAri = (_extractAri = (0, _linkExtractors.extractAri)(data)) !== null && _extractAri !== void 0 ? _extractAri : '';
114
117
  var _useMemo = (0, _react.useMemo)(function () {
115
118
  var betterMetadata = (0, _utils.getSimulatedBetterMetadata)(extensionKey, data);
116
119
  return {
@@ -160,6 +163,7 @@ var HoverCardResolvedView = function HoverCardResolvedView(_ref2) {
160
163
  }, /*#__PURE__*/_react.default.createElement(ConnectedAIBlock, {
161
164
  imagePreview: !!imagePreview,
162
165
  url: dataUrl,
166
+ ari: dataAri,
163
167
  bottomPrimary: bottomPrimary
164
168
  })), !isAISummaryEnabled && !imagePreview && /*#__PURE__*/_react.default.createElement(_blocks.SnippetBlock, {
165
169
  status: _constants.SmartLinkStatus.Resolved
@@ -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.50.13",
20
+ packageVersion: "26.50.15",
21
21
  componentName: 'linkUrl'
22
22
  };
23
23
  var Link = (0, _click.withLinkClickedEvent)('a');
@@ -0,0 +1,9 @@
1
+ import { ActionName } from '../../../constants';
2
+ import { extractPreviewAction } from './extract-preview-action';
3
+ const extractActions = (response, actionOptions) => {
4
+ const action = {
5
+ [ActionName.PreviewAction]: extractPreviewAction(response, actionOptions)
6
+ };
7
+ return Object.values(action).some(value => Boolean(value)) ? action : undefined;
8
+ };
9
+ export default extractActions;
@@ -1,15 +1,15 @@
1
1
  import { extractSummary } from '../common/primitives';
2
+ import extractActions from './actions';
2
3
  import extractFollowAction from './actions/extract-follow-action';
3
4
  import { extractLinkIcon } from './icon';
4
5
  import { extractAttachmentCount, extractChecklistProgress, extractCommentCount, extractCreatedBy, extractModifiedBy, extractProgrammingLanguage, extractSubscriberCount, extractViewCount, extractReactCount, extractVoteCount, extractSourceBranch, extractTargetBranch, extractDueOn, extractLocation, extractOwnedBy, extractAssignedTo, extractSubTasksProgress, extractStoryPoints, extractReadTime, extractSentOn, extractPersonAssignedToAsArray } from './utils';
5
6
  import { extractPersonsUpdatedBy } from './collaboratorGroup';
6
- import { extractPersonCreatedBy, extractTitle, extractDateUpdated, extractDateCreated, extractLink, extractPersonOwnedBy } from '@atlaskit/link-extractors';
7
+ import { extractPersonCreatedBy, extractTitle, extractDateUpdated, extractDateCreated, extractLink, extractPersonOwnedBy, extractAri } from '@atlaskit/link-extractors';
7
8
  import extractPriority from './extract-priority';
8
9
  import extractProviderIcon from './icon/extract-provider-icon';
9
10
  import extractPreview from './extract-preview';
10
11
  import extractState from './extract-state';
11
12
  import { extractLatestCommit } from './latest-commit';
12
- import { extractPreviewAction } from './actions/extract-preview-action';
13
13
  import { extractDownloadAction } from './actions/extract-download-action';
14
14
  import { extractViewAction } from './actions/extract-view-action';
15
15
  const extractFlexibleUiContext = ({
@@ -24,6 +24,7 @@ const extractFlexibleUiContext = ({
24
24
  const data = response.data;
25
25
  const url = extractLink(data);
26
26
  return {
27
+ actions: extractActions(response, actionOptions),
27
28
  assignedToGroup: extractPersonAssignedToAsArray(data),
28
29
  attachmentCount: extractAttachmentCount(data),
29
30
  authorGroup: extractPersonCreatedBy(data),
@@ -40,7 +41,6 @@ const extractFlexibleUiContext = ({
40
41
  createdOn: extractDateCreated(data),
41
42
  dueOn: extractDueOn(data),
42
43
  followAction: extractFollowAction(response, actionOptions, id),
43
- previewAction: extractPreviewAction(response, actionOptions),
44
44
  viewAction: extractViewAction(data, actionOptions),
45
45
  downloadAction: extractDownloadAction(data, actionOptions),
46
46
  latestCommit: extractLatestCommit(data),
@@ -63,7 +63,8 @@ const extractFlexibleUiContext = ({
63
63
  storyPoints: extractStoryPoints(data),
64
64
  targetBranch: extractTargetBranch(data),
65
65
  title: extractTitle(data) || url,
66
- url
66
+ url,
67
+ ari: extractAri(data)
67
68
  };
68
69
  };
69
70
  export default extractFlexibleUiContext;
@@ -1 +1,6 @@
1
- export {};
1
+ import { ActionName } from '../../constants';
2
+
3
+ /**
4
+ * This provides the data that will be used by Smart Links Flexible UI to populate it's
5
+ * underlying elements.
6
+ */
@@ -12,9 +12,11 @@ export class AISummaryService {
12
12
  _defineProperty(this, "fetchStream", async summaryStyle => {
13
13
  const payload = {
14
14
  recipient_agent_named_id: 'summary_agent',
15
- agent_input: {
16
- urls: [this.url],
17
- summary_style: summaryStyle
15
+ agent_input_context: {
16
+ content_url: this.url,
17
+ content_ari: this.ari,
18
+ summary_style: summaryStyle,
19
+ summary_output_mimetype: 'text/markdown'
18
20
  }
19
21
  };
20
22
  const options = {
@@ -47,6 +49,7 @@ export class AISummaryService {
47
49
  }
48
50
  };
49
51
  this.url = props.url;
52
+ this.ari = props.ari;
50
53
  this.onStart = props.onStart;
51
54
  this.onSuccess = props.onSuccess;
52
55
  this.onError = props.onError;