@atlaskit/smart-card 26.60.0 → 26.62.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 (82) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/analytics.spec.yaml +6 -0
  3. package/dist/cjs/extractors/common/icon/extractIcon.js +19 -1
  4. package/dist/cjs/extractors/common/icon/index.js +7 -0
  5. package/dist/cjs/extractors/embed/index.js +26 -1
  6. package/dist/cjs/extractors/flexible/icon/extract-jsonld-data-icon.js +33 -4
  7. package/dist/cjs/messages.js +15 -0
  8. package/dist/cjs/utils/analytics/analytics.js +1 -1
  9. package/dist/cjs/view/FlexibleCard/components/actions/action/action-icon/index.js +4 -6
  10. package/dist/cjs/view/FlexibleCard/components/actions/action/action-stack-item/index.js +1 -1
  11. package/dist/cjs/view/FlexibleCard/components/actions/action/index.js +1 -1
  12. package/dist/cjs/view/FlexibleCard/components/actions/ai-summary-action/ai-summarise-action.js +59 -0
  13. package/dist/cjs/view/FlexibleCard/components/actions/ai-summary-action/ai-summary-action-component.js +20 -51
  14. package/dist/cjs/view/FlexibleCard/components/actions/ai-summary-action/copy-summary-action.js +62 -0
  15. package/dist/cjs/view/FlexibleCard/components/actions/follow-action/goal-icon/index.js +1 -1
  16. package/dist/cjs/view/FlexibleCard/components/actions/follow-action/projects-icon/index.js +1 -1
  17. package/dist/cjs/view/LinkUrl/index.js +1 -1
  18. package/dist/cjs/view/common/ai-icon/index.js +23 -20
  19. package/dist/cjs/view/common/ai-summary/index.js +1 -0
  20. package/dist/es2019/extractors/common/icon/extractIcon.js +21 -1
  21. package/dist/es2019/extractors/common/icon/index.js +1 -0
  22. package/dist/es2019/extractors/embed/index.js +28 -2
  23. package/dist/es2019/extractors/flexible/icon/extract-jsonld-data-icon.js +34 -3
  24. package/dist/es2019/messages.js +15 -0
  25. package/dist/es2019/utils/analytics/analytics.js +1 -1
  26. package/dist/es2019/view/FlexibleCard/components/actions/action/action-icon/index.js +4 -6
  27. package/dist/es2019/view/FlexibleCard/components/actions/action/action-stack-item/index.js +1 -1
  28. package/dist/es2019/view/FlexibleCard/components/actions/action/index.js +1 -1
  29. package/dist/es2019/view/FlexibleCard/components/actions/ai-summary-action/ai-summarise-action.js +49 -0
  30. package/dist/es2019/view/FlexibleCard/components/actions/ai-summary-action/ai-summary-action-component.js +19 -45
  31. package/dist/es2019/view/FlexibleCard/components/actions/ai-summary-action/copy-summary-action.js +36 -0
  32. package/dist/es2019/view/FlexibleCard/components/actions/follow-action/goal-icon/index.js +1 -1
  33. package/dist/es2019/view/FlexibleCard/components/actions/follow-action/projects-icon/index.js +1 -1
  34. package/dist/es2019/view/LinkUrl/index.js +1 -1
  35. package/dist/es2019/view/common/ai-icon/index.js +104 -99
  36. package/dist/es2019/view/common/ai-summary/index.js +1 -0
  37. package/dist/esm/extractors/common/icon/extractIcon.js +19 -1
  38. package/dist/esm/extractors/common/icon/index.js +1 -0
  39. package/dist/esm/extractors/embed/index.js +27 -2
  40. package/dist/esm/extractors/flexible/icon/extract-jsonld-data-icon.js +33 -3
  41. package/dist/esm/messages.js +15 -0
  42. package/dist/esm/utils/analytics/analytics.js +1 -1
  43. package/dist/esm/view/FlexibleCard/components/actions/action/action-icon/index.js +4 -6
  44. package/dist/esm/view/FlexibleCard/components/actions/action/action-stack-item/index.js +1 -1
  45. package/dist/esm/view/FlexibleCard/components/actions/action/index.js +1 -1
  46. package/dist/esm/view/FlexibleCard/components/actions/ai-summary-action/ai-summarise-action.js +49 -0
  47. package/dist/esm/view/FlexibleCard/components/actions/ai-summary-action/ai-summary-action-component.js +20 -48
  48. package/dist/esm/view/FlexibleCard/components/actions/ai-summary-action/copy-summary-action.js +52 -0
  49. package/dist/esm/view/FlexibleCard/components/actions/follow-action/goal-icon/index.js +1 -1
  50. package/dist/esm/view/FlexibleCard/components/actions/follow-action/projects-icon/index.js +1 -1
  51. package/dist/esm/view/LinkUrl/index.js +1 -1
  52. package/dist/esm/view/common/ai-icon/index.js +23 -20
  53. package/dist/esm/view/common/ai-summary/index.js +1 -0
  54. package/dist/types/common/analytics/generated/analytics.types.d.ts +5 -1
  55. package/dist/types/extractors/common/icon/index.d.ts +1 -0
  56. package/dist/types/extractors/embed/index.d.ts +3 -3
  57. package/dist/types/messages.d.ts +2 -2
  58. package/dist/types/view/FlexibleCard/components/actions/action/action-icon/index.d.ts +1 -1
  59. package/dist/types/view/FlexibleCard/components/actions/action/action-icon/types.d.ts +1 -1
  60. package/dist/types/view/FlexibleCard/components/actions/action/action-stack-item/index.d.ts +1 -1
  61. package/dist/types/view/FlexibleCard/components/actions/action/index.d.ts +1 -1
  62. package/dist/types/view/FlexibleCard/components/actions/ai-summary-action/ai-summarise-action.d.ts +8 -0
  63. package/dist/types/view/FlexibleCard/components/actions/ai-summary-action/ai-summary-action-component.d.ts +3 -3
  64. package/dist/types/view/FlexibleCard/components/actions/ai-summary-action/copy-summary-action.d.ts +6 -0
  65. package/dist/types/view/FlexibleCard/components/actions/follow-action/goal-icon/index.d.ts +1 -1
  66. package/dist/types/view/FlexibleCard/components/actions/follow-action/projects-icon/index.d.ts +1 -1
  67. package/dist/types/view/common/ai-summary/index.d.ts +1 -1
  68. package/dist/types-ts4.5/common/analytics/generated/analytics.types.d.ts +5 -1
  69. package/dist/types-ts4.5/extractors/common/icon/index.d.ts +1 -0
  70. package/dist/types-ts4.5/extractors/embed/index.d.ts +3 -3
  71. package/dist/types-ts4.5/messages.d.ts +2 -2
  72. package/dist/types-ts4.5/view/FlexibleCard/components/actions/action/action-icon/index.d.ts +1 -1
  73. package/dist/types-ts4.5/view/FlexibleCard/components/actions/action/action-icon/types.d.ts +1 -1
  74. package/dist/types-ts4.5/view/FlexibleCard/components/actions/action/action-stack-item/index.d.ts +1 -1
  75. package/dist/types-ts4.5/view/FlexibleCard/components/actions/action/index.d.ts +1 -1
  76. package/dist/types-ts4.5/view/FlexibleCard/components/actions/ai-summary-action/ai-summarise-action.d.ts +8 -0
  77. package/dist/types-ts4.5/view/FlexibleCard/components/actions/ai-summary-action/ai-summary-action-component.d.ts +3 -3
  78. package/dist/types-ts4.5/view/FlexibleCard/components/actions/ai-summary-action/copy-summary-action.d.ts +6 -0
  79. package/dist/types-ts4.5/view/FlexibleCard/components/actions/follow-action/goal-icon/index.d.ts +1 -1
  80. package/dist/types-ts4.5/view/FlexibleCard/components/actions/follow-action/projects-icon/index.d.ts +1 -1
  81. package/dist/types-ts4.5/view/common/ai-summary/index.d.ts +1 -1
  82. package/package.json +5 -5
package/CHANGELOG.md CHANGED
@@ -1,5 +1,37 @@
1
1
  # @atlaskit/smart-card
2
2
 
3
+ ## 26.62.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [#97986](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/97986)
8
+ [`add59fc2532d`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/add59fc2532d) -
9
+ [ux] AI summary button to change to copy summary button when summary generation is complete
10
+
11
+ ### Patch Changes
12
+
13
+ - [#98122](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/98122)
14
+ [`97965a03cc96`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/97965a03cc96) -
15
+ Hover preview redesign: Update action icon size
16
+
17
+ ## 26.61.0
18
+
19
+ ### Minor Changes
20
+
21
+ - [#97142](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/97142)
22
+ [`a2a8c037302c`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/a2a8c037302c) -
23
+ EDM-9697 Fix embeds to use icon supplied by prioritiseIcon under FF
24
+
25
+ ### Patch Changes
26
+
27
+ - [#97654](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/97654)
28
+ [`98a9f3d7124f`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/98a9f3d7124f) -
29
+ Hover preview redesign: Update action icon color
30
+ - [#97682](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/97682)
31
+ [`6c631fd32f18`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/6c631fd32f18) -
32
+ AI summary: Update word-break behavior for the summary content
33
+ - Updated dependencies
34
+
3
35
  ## 26.60.0
4
36
 
5
37
  ### Minor Changes
@@ -91,6 +91,12 @@ events:
91
91
  attributes:
92
92
  <<: [*PackageMetaDataContext, *ResolvedAttributes]
93
93
 
94
+ - button clicked (copySummary):
95
+ type: ui
96
+ description: fired when the copy ai summary button is clicked
97
+ attributes:
98
+ <<: [*PackageMetaDataContext, *ResolvedAttributes]
99
+
94
100
  - summary viewed:
95
101
  type: ui
96
102
  description: fired when a summary is viewed
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.extractIcon = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
9
10
  var _peopleGroup = _interopRequireDefault(require("@atlaskit/icon/glyph/people-group"));
10
11
  var _ = _interopRequireDefault(require("@atlaskit/icon-object/glyph/commit/16"));
11
12
  var _2 = _interopRequireDefault(require("@atlaskit/icon-object/glyph/pull-request/16"));
@@ -18,6 +19,7 @@ var _extractFileFormat = require("./extractFileFormat");
18
19
  var _extractIconFromDocument = require("./extractIconFromDocument");
19
20
  var _extractIconFromTask = require("./extractIconFromTask");
20
21
  var _extractTaskType = require("../lozenge/extractTaskType");
22
+ var _prioritiseIcon = require("./prioritiseIcon");
21
23
  var extractIcon = exports.extractIcon = function extractIcon(jsonLd) {
22
24
  var priority = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'type';
23
25
  var type = jsonLd['@type'];
@@ -94,6 +96,22 @@ var extractIconByType = function extractIconByType(type, opts) {
94
96
  case 'atlassian:Task':
95
97
  return (0, _extractIconFromTask.extractIconFromTask)(opts);
96
98
  default:
97
- return opts.provider && opts.provider.icon;
99
+ return (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.standardise-smart-link-icon-behaviour') ? extractDefaultIcon(opts) : opts.provider && opts.provider.icon;
98
100
  }
101
+ };
102
+
103
+ /**
104
+ * Choose which icon to show when the type is not recognized.
105
+ */
106
+ var extractDefaultIcon = function extractDefaultIcon(opts) {
107
+ var _opts$provider;
108
+ var provider = opts.provider;
109
+ var providerId = provider === null || provider === void 0 ? void 0 : provider.id;
110
+ return (0, _prioritiseIcon.prioritiseIcon)({
111
+ providerId: providerId,
112
+ fileFormatIcon: undefined,
113
+ documentTypeIcon: undefined,
114
+ urlIcon: opts.icon,
115
+ providerIcon: (_opts$provider = opts.provider) === null || _opts$provider === void 0 ? void 0 : _opts$provider.icon
116
+ });
99
117
  };
@@ -27,7 +27,14 @@ Object.defineProperty(exports, "extractIconFromTask", {
27
27
  return _extractIconFromTask.extractIconFromTask;
28
28
  }
29
29
  });
30
+ Object.defineProperty(exports, "prioritiseIcon", {
31
+ enumerable: true,
32
+ get: function get() {
33
+ return _prioritiseIcon.prioritiseIcon;
34
+ }
35
+ });
30
36
  var _extractFileFormat = require("./extractFileFormat");
37
+ var _prioritiseIcon = require("./prioritiseIcon");
31
38
  var _extractIcon = require("./extractIcon");
32
39
  var _extractIconFromDocument = require("./extractIconFromDocument");
33
40
  var _extractIconFromTask = require("./extractIconFromTask");
@@ -7,8 +7,10 @@ Object.defineProperty(exports, "__esModule", {
7
7
  exports.extractEmbedProps = void 0;
8
8
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
9
  var _linkExtractors = require("@atlaskit/link-extractors");
10
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
10
11
  var _extractIsTrusted = require("../common/meta/extractIsTrusted");
11
12
  var _extractIsSupportTheming = require("../common/meta/extractIsSupportTheming");
13
+ var _icon = require("../common/icon");
12
14
  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; }
13
15
  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; }
14
16
  var extractEmbedPreview = function extractEmbedPreview(jsonLd, platform, iframeUrlType) {
@@ -19,11 +21,34 @@ var extractEmbedPreview = function extractEmbedPreview(jsonLd, platform, iframeU
19
21
  });
20
22
  }
21
23
  };
24
+ function generateContext(jsonLd) {
25
+ var provider = (0, _linkExtractors.extractProvider)(jsonLd);
26
+ if (!provider) {
27
+ return undefined;
28
+ }
29
+
30
+ // If no icon is supplied, return existing context
31
+ if (!jsonLd.icon) {
32
+ return provider;
33
+ }
34
+ var generator = jsonLd.generator;
35
+ var icon = (0, _icon.prioritiseIcon)({
36
+ providerId: generator && typeof generator !== 'string' && generator['@type'] !== 'Link' ? generator['@id'] : undefined,
37
+ fileFormatIcon: undefined,
38
+ documentTypeIcon: undefined,
39
+ urlIcon: (0, _linkExtractors.extractUrlFromIconJsonLd)(jsonLd.icon),
40
+ // We still attempt to follow the icon priority function even if no generator (and therefore provider icon) is defined
41
+ providerIcon: generator && typeof generator !== 'string' && generator['@type'] !== 'Link' && (0, _linkExtractors.extractProviderIcon)(generator.icon)
42
+ });
43
+ return _objectSpread(_objectSpread({}, provider), {}, {
44
+ icon: icon ? icon : provider.icon
45
+ });
46
+ }
22
47
  var extractEmbedProps = exports.extractEmbedProps = function extractEmbedProps(jsonLd, meta, platform, iframeUrlType) {
23
48
  return {
24
49
  link: (0, _linkExtractors.extractLink)(jsonLd) || '',
25
50
  title: (0, _linkExtractors.extractTitle)(jsonLd),
26
- context: (0, _linkExtractors.extractProvider)(jsonLd),
51
+ context: (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.standardise-smart-link-icon-behaviour') ? generateContext(jsonLd) : (0, _linkExtractors.extractProvider)(jsonLd),
27
52
  preview: extractEmbedPreview(jsonLd, platform, iframeUrlType),
28
53
  isTrusted: (0, _extractIsTrusted.extractIsTrusted)(meta),
29
54
  isSupportTheming: (0, _extractIsSupportTheming.extractIsSupportTheming)(meta)
@@ -16,7 +16,7 @@ var _lozenge = require("../../common/lozenge");
16
16
  var _linkExtractors = require("@atlaskit/link-extractors");
17
17
  var _priority = require("../../common/icon/priority");
18
18
  var _constants2 = require("../../../constants");
19
- var _prioritiseIcon = require("../../common/icon/prioritiseIcon");
19
+ var _icon = require("../../common/icon");
20
20
  var extractTask = function extractTask(data, label) {
21
21
  var _ref = (0, _lozenge.extractTaskType)(data) || {},
22
22
  id = _ref.id,
@@ -75,7 +75,7 @@ var extractJsonldDataIcon = function extractJsonldDataIcon(data) {
75
75
  var fileFormatIcon = (0, _extractFileFormatIcon.default)(fileFormat);
76
76
  var documentTypeIcon = (0, _extractDocumentTypeIcon.default)(type, label);
77
77
  if ((0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.standardise-smart-link-icon-behaviour')) {
78
- return (0, _prioritiseIcon.prioritiseIcon)({
78
+ return (0, _icon.prioritiseIcon)({
79
79
  providerId: provider,
80
80
  fileFormatIcon: fileFormatIcon,
81
81
  documentTypeIcon: documentTypeIcon,
@@ -130,7 +130,36 @@ var extractJsonldDataIcon = function extractJsonldDataIcon(data) {
130
130
  label: label || 'Repository'
131
131
  };
132
132
  default:
133
- return providerIcon;
133
+ return (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.standardise-smart-link-icon-behaviour') ? extractDefaultIcon({
134
+ data: data,
135
+ type: type,
136
+ label: label,
137
+ provider: provider,
138
+ urlIcon: urlIcon,
139
+ providerIcon: providerIcon
140
+ }) : providerIcon;
134
141
  }
135
142
  };
136
- var _default = exports.default = extractJsonldDataIcon;
143
+ var _default = exports.default = extractJsonldDataIcon;
144
+ /**
145
+ * Choose which icon to show when the type is not recognized.
146
+ */
147
+ var extractDefaultIcon = function extractDefaultIcon(_ref2) {
148
+ var data = _ref2.data,
149
+ type = _ref2.type,
150
+ label = _ref2.label,
151
+ provider = _ref2.provider,
152
+ urlIcon = _ref2.urlIcon,
153
+ providerIcon = _ref2.providerIcon;
154
+ var documentData = data;
155
+ var fileFormat = documentData === null || documentData === void 0 ? void 0 : documentData['schema:fileFormat'];
156
+ var fileFormatIcon = (0, _extractFileFormatIcon.default)(fileFormat);
157
+ var documentTypeIcon = (0, _extractDocumentTypeIcon.default)(type, label);
158
+ return (0, _icon.prioritiseIcon)({
159
+ providerId: provider,
160
+ fileFormatIcon: fileFormatIcon,
161
+ documentTypeIcon: documentTypeIcon,
162
+ urlIcon: urlIcon,
163
+ providerIcon: providerIcon
164
+ });
165
+ };
@@ -211,6 +211,21 @@ var messages = exports.messages = (0, _reactIntlNext.defineMessages)({
211
211
  defaultMessage: 'Summarize the content of this link using Atlassian Intelligence.',
212
212
  description: 'Description of what the summarize link with AI action does'
213
213
  },
214
+ copy_summary_action: {
215
+ id: 'fabric.linking.copy_summary_action.nonfinal',
216
+ defaultMessage: 'Copy summary',
217
+ description: 'Allow a user to copy a generated summary'
218
+ },
219
+ copy_summary_action_description: {
220
+ id: 'fabric.linking.copy_summary_action.nonfinal',
221
+ defaultMessage: 'Copy summary',
222
+ description: 'Description of what the copy summary AI action does'
223
+ },
224
+ copied_summary_action_description: {
225
+ id: 'fabric.linking.copied_summary_action_description.nonfinal',
226
+ defaultMessage: 'Copied summary to clipboard',
227
+ description: 'Confirmation to the user that the summry has been copied'
228
+ },
214
229
  edit: {
215
230
  id: 'fabric.linking.edit',
216
231
  defaultMessage: 'Edit',
@@ -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.60.0"
25
+ packageVersion: "26.62.0"
26
26
  };
27
27
  var TrackQuickActionType = exports.TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
28
28
  TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
@@ -27,10 +27,8 @@ var getIconStyles = function getIconStyles(isDisabled) {
27
27
  color: isDisabled ? "var(--ds-text-disabled, #6B778C)" : "var(--ds-icon, #44546F)"
28
28
  });
29
29
  };
30
- var backgroundStyles = (0, _react2.css)({
31
- backgroundColor: "var(--ds-background-brand-subtlest, #E9F2FF)",
32
- borderRadius: "var(--ds-border-radius-050, 2px)",
33
- color: "var(--ds-icon-brand, #0C66E4)",
30
+ var stackItemIconSizeStyles = (0, _utils.getIconSizeStyles)('20px');
31
+ var stackItemIconStyles = (0, _react2.css)(stackItemIconSizeStyles, {
34
32
  display: 'inline-block',
35
33
  lineHeight: 0,
36
34
  padding: "var(--ds-space-025, 2px)",
@@ -43,9 +41,9 @@ var ActionIcon = function ActionIcon(_ref) {
43
41
  testId = _ref.testId,
44
42
  icon = _ref.icon,
45
43
  isDisabled = _ref.isDisabled,
46
- showBackground = _ref.showBackground;
44
+ asStackItemIcon = _ref.asStackItemIcon;
47
45
  return (0, _react2.jsx)("span", {
48
- css: [getIconStyles(isDisabled), (0, _utils.getIconSizeStyles)(getIconWidth(size)), showBackground && backgroundStyles],
46
+ css: [getIconStyles(isDisabled), asStackItemIcon ? stackItemIconStyles : (0, _utils.getIconSizeStyles)(getIconWidth(size))],
49
47
  "data-testid": "".concat(testId, "-icon")
50
48
  }, icon);
51
49
  };
@@ -66,10 +66,10 @@ var ActionStackItem = function ActionStackItem(_ref) {
66
66
  }
67
67
  }, [isDisabled, isLoading, onClickCallback]);
68
68
  var icon = iconOption && isLoading ? /*#__PURE__*/_react.default.createElement(_actionIcon.default, {
69
+ asStackItemIcon: true,
69
70
  icon: /*#__PURE__*/_react.default.createElement(_spinner.default, {
70
71
  testId: "".concat(testId, "-loading")
71
72
  }),
72
- showBackground: true,
73
73
  size: size
74
74
  }) : iconOption;
75
75
 
@@ -50,10 +50,10 @@ var Action = function Action(_ref) {
50
50
  var isStackItem = as === 'stack-item';
51
51
  var isDropdownItem = as === 'dropdown-item' || asDropDownItem;
52
52
  var actionIcon = icon && (0, _react.jsx)(_actionIcon.default, {
53
+ asStackItemIcon: isStackItem,
53
54
  isDisabled: isDisabled,
54
55
  icon: icon,
55
56
  size: size,
56
- showBackground: isStackItem,
57
57
  testId: testId
58
58
  });
59
59
  var iconBefore = icon && iconPosition === 'before' ? actionIcon : undefined;
@@ -0,0 +1,59 @@
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.AISummariseAction = AISummariseAction;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ var _reactIntlNext = require("react-intl-next");
13
+ var _action = _interopRequireDefault(require("../action"));
14
+ var _aiIcon = _interopRequireDefault(require("../../../../common/ai-icon"));
15
+ var _messages = require("../../../../../messages");
16
+ var _useAnalyticsEvents2 = require("../../../../../common/analytics/generated/use-analytics-events");
17
+ var _utils = require("./utils");
18
+ var _excluded = ["url", "ari", "product", "onClick", "onError", "testId", "status", "summariseUrl"];
19
+ 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); }
20
+ 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; }
21
+ function AISummariseAction(_ref) {
22
+ var url = _ref.url,
23
+ ari = _ref.ari,
24
+ product = _ref.product,
25
+ onClickCallback = _ref.onClick,
26
+ onErrorCallback = _ref.onError,
27
+ testId = _ref.testId,
28
+ status = _ref.status,
29
+ summariseUrl = _ref.summariseUrl,
30
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
31
+ var _useAnalyticsEvents = (0, _useAnalyticsEvents2.useAnalyticsEvents)(),
32
+ fireEvent = _useAnalyticsEvents.fireEvent;
33
+ var onCompleted = (0, _react.useCallback)(function (state) {
34
+ if ((state === null || state === void 0 ? void 0 : state.status) === 'error') {
35
+ onErrorCallback === null || onErrorCallback === void 0 || onErrorCallback((0, _utils.getErrorMessage)(state.error));
36
+ }
37
+ }, [onErrorCallback]);
38
+ var handleActionClick = (0, _react.useCallback)(function () {
39
+ var _summariseUrl;
40
+ fireEvent('ui.button.clicked.aiSummary', {});
41
+ fireEvent('track.aiInteraction.initiated', {
42
+ aiFeatureName: 'Smart Links Summary',
43
+ proactiveAIGenerated: 0,
44
+ userGeneratedAI: 1
45
+ });
46
+ (_summariseUrl = summariseUrl()) === null || _summariseUrl === void 0 || _summariseUrl.then(onCompleted, onCompleted);
47
+ onClickCallback === null || onClickCallback === void 0 || onClickCallback();
48
+ }, [fireEvent, onClickCallback, onCompleted, summariseUrl]);
49
+ return /*#__PURE__*/_react.default.createElement(_action.default, (0, _extends2.default)({
50
+ content: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages.ai_summary_action),
51
+ icon: /*#__PURE__*/_react.default.createElement(_aiIcon.default, {
52
+ label: "Summarise with AI"
53
+ }),
54
+ onClick: handleActionClick,
55
+ testId: "".concat(testId, "-summarise-action"),
56
+ isLoading: status === 'loading',
57
+ tooltipMessage: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages.ai_summary_action_description)
58
+ }, props));
59
+ }
@@ -1,68 +1,37 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof = require("@babel/runtime/helpers/typeof");
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.AISummaryActionComponent = void 0;
9
8
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
- var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
- var _react = _interopRequireWildcard(require("react"));
12
- var _reactIntlNext = require("react-intl-next");
9
+ var _react = _interopRequireDefault(require("react"));
13
10
  var _reactMagneticDi = require("react-magnetic-di");
14
- var _messages = require("../../../../../messages");
15
- var _action = _interopRequireDefault(require("../action"));
16
- var _aiIcon = _interopRequireDefault(require("../../../../common/ai-icon"));
17
- var _useAnalyticsEvents2 = require("../../../../../common/analytics/generated/use-analytics-events");
18
11
  var _useAiSummary = require("../../../../../state/hooks/use-ai-summary");
19
- var _utils = require("./utils");
20
- var _excluded = ["onClick", "onError", "url", "ari", "product"];
21
- 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); }
22
- 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; }
23
- var AISummaryActionComponent = exports.AISummaryActionComponent = function AISummaryActionComponent(_ref) {
24
- var onClickCallback = _ref.onClick,
25
- onErrorCallback = _ref.onError,
26
- _ref$url = _ref.url,
27
- url = _ref$url === void 0 ? '' : _ref$url,
28
- _ref$ari = _ref.ari,
29
- ari = _ref$ari === void 0 ? '' : _ref$ari,
30
- product = _ref.product,
31
- props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
32
- var _useAnalyticsEvents = (0, _useAnalyticsEvents2.useAnalyticsEvents)(),
33
- fireEvent = _useAnalyticsEvents.fireEvent;
12
+ var _copySummaryAction = require("./copy-summary-action");
13
+ var _aiSummariseAction = require("./ai-summarise-action");
14
+ var AISummaryActionComponent = exports.AISummaryActionComponent = function AISummaryActionComponent(props) {
15
+ var url = props.url,
16
+ ari = props.ari,
17
+ product = props.product,
18
+ _props$testId = props.testId,
19
+ testId = _props$testId === void 0 ? 'smart-action-ai-summary-action' : _props$testId;
34
20
  var _useAISummary = (0, _useAiSummary.useAISummary)({
35
21
  url: url,
36
22
  ari: ari,
37
23
  product: product
38
24
  }),
39
- status = _useAISummary.state.status,
25
+ _useAISummary$state = _useAISummary.state,
26
+ status = _useAISummary$state.status,
27
+ content = _useAISummary$state.content,
40
28
  summariseUrl = _useAISummary.summariseUrl;
41
- var onCompleted = (0, _react.useCallback)(function (state) {
42
- if ((state === null || state === void 0 ? void 0 : state.status) === 'error') {
43
- onErrorCallback === null || onErrorCallback === void 0 || onErrorCallback((0, _utils.getErrorMessage)(state.error));
44
- }
45
- }, [onErrorCallback]);
46
- var handleActionClick = (0, _react.useCallback)(function () {
47
- var _summariseUrl;
48
- fireEvent('ui.button.clicked.aiSummary', {});
49
- fireEvent('track.aiInteraction.initiated', {
50
- aiFeatureName: 'Smart Links Summary',
51
- proactiveAIGenerated: 0,
52
- userGeneratedAI: 1
53
- });
54
- (_summariseUrl = summariseUrl()) === null || _summariseUrl === void 0 || _summariseUrl.then(onCompleted, onCompleted);
55
- onClickCallback === null || onClickCallback === void 0 || onClickCallback();
56
- }, [fireEvent, onClickCallback, onCompleted, summariseUrl]);
57
- return /*#__PURE__*/_react.default.createElement(_action.default, (0, _extends2.default)({
58
- content: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages.ai_summary_action),
59
- icon: /*#__PURE__*/_react.default.createElement(_aiIcon.default, {
60
- label: "Summarise with AI"
61
- }),
62
- isLoading: status === 'loading',
63
- onClick: handleActionClick,
64
- testId: "smart-action-ai-summary-action",
65
- tooltipMessage: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages.ai_summary_action_description)
66
- }, props));
67
- return null;
29
+ return status === 'done' ? /*#__PURE__*/_react.default.createElement(_copySummaryAction.CopySummaryAction, (0, _extends2.default)({}, props, {
30
+ testId: testId,
31
+ content: content
32
+ })) : /*#__PURE__*/_react.default.createElement(_aiSummariseAction.AISummariseAction, (0, _extends2.default)({}, props, {
33
+ testId: testId,
34
+ summariseUrl: summariseUrl,
35
+ status: status
36
+ }));
68
37
  };
@@ -0,0 +1,62 @@
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.CopySummaryAction = CopySummaryAction;
9
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
12
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
14
+ var _react = _interopRequireWildcard(require("react"));
15
+ var _copy = _interopRequireDefault(require("@atlaskit/icon/glyph/copy"));
16
+ var _reactIntlNext = require("react-intl-next");
17
+ var _action = _interopRequireDefault(require("../action"));
18
+ var _messages = require("../../../../../messages");
19
+ var _useAnalyticsEvents2 = require("../../../../../common/analytics/generated/use-analytics-events");
20
+ var _excluded = ["url", "ari", "product", "onClick", "testId", "content"];
21
+ 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); }
22
+ 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; }
23
+ function CopySummaryAction(_ref) {
24
+ var url = _ref.url,
25
+ ari = _ref.ari,
26
+ product = _ref.product,
27
+ onClickCallback = _ref.onClick,
28
+ testId = _ref.testId,
29
+ content = _ref.content,
30
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
31
+ var _useAnalyticsEvents = (0, _useAnalyticsEvents2.useAnalyticsEvents)(),
32
+ fireEvent = _useAnalyticsEvents.fireEvent;
33
+ var _useState = (0, _react.useState)(_messages.messages.copy_summary_action),
34
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
35
+ tooltipMessage = _useState2[0],
36
+ setTooltipMessage = _useState2[1];
37
+ var handleCopySummaryClick = (0, _react.useCallback)( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
38
+ return _regenerator.default.wrap(function _callee$(_context) {
39
+ while (1) switch (_context.prev = _context.next) {
40
+ case 0:
41
+ fireEvent('ui.button.clicked.copySummary', {});
42
+ _context.next = 3;
43
+ return navigator.clipboard.writeText(content !== null && content !== void 0 ? content : '');
44
+ case 3:
45
+ setTooltipMessage(_messages.messages.copied_summary_action_description);
46
+ onClickCallback === null || onClickCallback === void 0 || onClickCallback();
47
+ case 5:
48
+ case "end":
49
+ return _context.stop();
50
+ }
51
+ }, _callee);
52
+ })), [fireEvent, onClickCallback, content]);
53
+ return /*#__PURE__*/_react.default.createElement(_action.default, (0, _extends2.default)({
54
+ content: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages.copy_summary_action),
55
+ icon: /*#__PURE__*/_react.default.createElement(_copy.default, {
56
+ label: "Copy Summary"
57
+ }),
58
+ onClick: handleCopySummaryClick,
59
+ testId: "".concat(testId, "-copy-summary-action"),
60
+ tooltipMessage: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, tooltipMessage)
61
+ }, props));
62
+ }
@@ -19,7 +19,7 @@ var GoalGlyph = function GoalGlyph(props) {
19
19
  fillRule: "evenodd",
20
20
  clipRule: "evenodd",
21
21
  d: "M12.6667 8C12.6667 10.5773 10.5773 12.6667 8 12.6667C5.42267 12.6667 3.33333 10.5773 3.33333 8C3.33333 5.42267 5.42267 3.33333 8 3.33333C10.5773 3.33333 12.6667 5.42267 12.6667 8ZM14 8C14 11.3137 11.3137 14 8 14C4.68629 14 2 11.3137 2 8C2 4.68629 4.68629 2 8 2C11.3137 2 14 4.68629 14 8ZM9.33333 8C9.33333 8.73638 8.73638 9.33333 8 9.33333C7.26362 9.33333 6.66667 8.73638 6.66667 8C6.66667 7.26362 7.26362 6.66667 8 6.66667C8.73638 6.66667 9.33333 7.26362 9.33333 8ZM10.6667 8C10.6667 9.47276 9.47276 10.6667 8 10.6667C6.52724 10.6667 5.33333 9.47276 5.33333 8C5.33333 6.52724 6.52724 5.33333 8 5.33333C9.47276 5.33333 10.6667 6.52724 10.6667 8Z",
22
- fill: "#0C66E4"
22
+ fill: "var(--ds-icon, #44546F)"
23
23
  }));
24
24
  };
25
25
  var GoalIcon = exports.GoalIcon = function GoalIcon(props) {
@@ -19,7 +19,7 @@ var ProjectsGlyph = function ProjectsGlyph(props) {
19
19
  fillRule: "evenodd",
20
20
  clipRule: "evenodd",
21
21
  d: "M9.88573 4.00002C9.70892 4.00002 9.53935 4.07026 9.41433 4.19528L6.97282 6.63678L4.20525 6.94429C4.05479 6.96101 3.91451 7.02844 3.80746 7.13548L3.60959 7.33335L4.35367 8.07743C4.6791 8.40287 4.6791 8.93051 4.35367 9.25594L3.47152 10.1381C3.21117 10.3984 2.78906 10.3984 2.52871 10.1381C2.26836 9.87774 2.26836 9.45563 2.52871 9.19528L3.0573 8.66669L2.43108 8.04046C2.04055 7.64993 2.04055 7.01677 2.43108 6.62625L2.86465 6.19267C3.18578 5.87154 3.60664 5.66927 4.05801 5.61911L6.36073 5.36326L8.47152 3.25247C8.84659 2.8774 9.3553 2.66669 9.88573 2.66669H12.0001C12.7365 2.66669 13.3334 3.26364 13.3334 4.00002V6.1144C13.3334 6.64483 13.1227 7.15354 12.7477 7.52862L10.6369 9.6394L10.381 11.9421C10.3309 12.3935 10.1286 12.8143 9.80746 13.1355L9.37389 13.5691C8.98336 13.9596 8.3502 13.9596 7.95967 13.5691L7.33345 12.9428L6.80485 13.4714C6.5445 13.7318 6.12239 13.7318 5.86204 13.4714C5.60169 13.2111 5.60169 12.789 5.86204 12.5286L6.74419 11.6465C7.06963 11.321 7.59726 11.321 7.9227 11.6465L8.66678 12.3905L8.86466 12.1927C8.9717 12.0856 9.03912 11.9453 9.05584 11.7949L9.36335 9.02731L11.8049 6.58581C11.9299 6.46078 12.0001 6.29121 12.0001 6.1144V4.00002H9.88573ZM5.80486 10.1953C6.06521 10.4556 6.06521 10.8777 5.80486 11.1381L3.80486 13.1381C3.54451 13.3984 3.1224 13.3984 2.86205 13.1381C2.6017 12.8777 2.6017 12.4556 2.86205 12.1953L4.86205 10.1953C5.1224 9.93493 5.54451 9.93493 5.80486 10.1953ZM10.0001 6.66669C10.3683 6.66669 10.6668 6.36821 10.6668 6.00002C10.6668 5.63183 10.3683 5.33335 10.0001 5.33335C9.63193 5.33335 9.33346 5.63183 9.33346 6.00002C9.33346 6.36821 9.63193 6.66669 10.0001 6.66669Z",
22
- fill: "#0C66E4"
22
+ fill: "var(--ds-icon, #44546F)"
23
23
  }));
24
24
  };
25
25
  var ProjectsIcon = exports.ProjectsIcon = function ProjectsIcon(props) {
@@ -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.60.0",
20
+ packageVersion: "26.62.0",
21
21
  componentName: 'linkUrl'
22
22
  };
23
23
  var Link = (0, _click.withLinkClickedEvent)('a');