@atlaskit/smart-card 26.50.9 → 26.50.11
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.
- package/CHANGELOG.md +13 -0
- package/dist/cjs/constants.js +2 -1
- package/dist/cjs/messages.js +5 -0
- package/dist/cjs/state/hooks/use-ai-summary/ai-summary-service/index.js +16 -5
- package/dist/cjs/state/hooks/use-ai-summary/ai-summary-service/types.js +7 -1
- package/dist/cjs/state/hooks/use-ai-summary/ai-summary-service/utils.js +47 -41
- package/dist/cjs/utils/analytics/analytics.js +1 -1
- package/dist/cjs/view/EmbedCard/components/styled.js +1 -1
- package/dist/cjs/view/FlexibleCard/components/blocks/action-group/index.js +1 -1
- package/dist/cjs/view/FlexibleCard/components/blocks/ai-summary-block/ai-event-error-viewed/index.js +6 -3
- package/dist/cjs/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/ai-state-error.js +38 -12
- package/dist/cjs/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/index.js +4 -2
- package/dist/cjs/view/FlexibleCard/components/blocks/ai-summary-block/resolved/index.js +6 -2
- package/dist/cjs/view/FlexibleCard/components/elements/lozenge/lozenge-action/lozenge-action-error/styled.js +1 -1
- package/dist/cjs/view/HoverCard/components/ContentContainer.js +1 -1
- package/dist/cjs/view/HoverCard/styled.js +23 -8
- package/dist/cjs/view/LinkUrl/index.js +1 -1
- package/dist/cjs/view/common/ai-prism/index.js +11 -4
- package/dist/es2019/constants.js +1 -0
- package/dist/es2019/messages.js +5 -0
- package/dist/es2019/state/hooks/use-ai-summary/ai-summary-service/index.js +8 -2
- package/dist/es2019/state/hooks/use-ai-summary/ai-summary-service/types.js +1 -0
- package/dist/es2019/state/hooks/use-ai-summary/ai-summary-service/utils.js +16 -12
- package/dist/es2019/utils/analytics/analytics.js +1 -1
- package/dist/es2019/view/EmbedCard/components/styled.js +1 -1
- package/dist/es2019/view/FlexibleCard/components/blocks/action-group/index.js +2 -1
- package/dist/es2019/view/FlexibleCard/components/blocks/ai-summary-block/ai-event-error-viewed/index.js +7 -3
- package/dist/es2019/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/ai-state-error.js +35 -9
- package/dist/es2019/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/index.js +4 -2
- package/dist/es2019/view/FlexibleCard/components/blocks/ai-summary-block/resolved/index.js +6 -2
- package/dist/es2019/view/FlexibleCard/components/elements/lozenge/lozenge-action/lozenge-action-error/styled.js +1 -1
- package/dist/es2019/view/HoverCard/components/ContentContainer.js +1 -1
- package/dist/es2019/view/HoverCard/styled.js +19 -20
- package/dist/es2019/view/LinkUrl/index.js +1 -1
- package/dist/es2019/view/common/ai-prism/index.js +12 -5
- package/dist/esm/constants.js +1 -0
- package/dist/esm/messages.js +5 -0
- package/dist/esm/state/hooks/use-ai-summary/ai-summary-service/index.js +16 -5
- package/dist/esm/state/hooks/use-ai-summary/ai-summary-service/types.js +1 -0
- package/dist/esm/state/hooks/use-ai-summary/ai-summary-service/utils.js +47 -41
- package/dist/esm/utils/analytics/analytics.js +1 -1
- package/dist/esm/view/EmbedCard/components/styled.js +1 -1
- package/dist/esm/view/FlexibleCard/components/blocks/action-group/index.js +2 -1
- package/dist/esm/view/FlexibleCard/components/blocks/ai-summary-block/ai-event-error-viewed/index.js +6 -3
- package/dist/esm/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/ai-state-error.js +39 -13
- package/dist/esm/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/index.js +4 -2
- package/dist/esm/view/FlexibleCard/components/blocks/ai-summary-block/resolved/index.js +6 -2
- package/dist/esm/view/FlexibleCard/components/elements/lozenge/lozenge-action/lozenge-action-error/styled.js +1 -1
- package/dist/esm/view/HoverCard/components/ContentContainer.js +1 -1
- package/dist/esm/view/HoverCard/styled.js +23 -8
- package/dist/esm/view/LinkUrl/index.js +1 -1
- package/dist/esm/view/common/ai-prism/index.js +12 -5
- package/dist/types/common/analytics/generated/analytics.types.d.ts +3 -1
- package/dist/types/constants.d.ts +1 -0
- package/dist/types/messages.d.ts +1 -1
- package/dist/types/state/hooks/use-ai-summary/ai-summary-service/index.d.ts +2 -1
- package/dist/types/state/hooks/use-ai-summary/ai-summary-service/types.d.ts +4 -1
- package/dist/types/state/hooks/use-ai-summary/index.d.ts +2 -5
- package/dist/types/view/FlexibleCard/components/blocks/ai-summary-block/ai-event-error-viewed/index.d.ts +3 -1
- package/dist/types/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/types.d.ts +2 -1
- package/dist/types/view/HoverCard/styled.d.ts +1 -1
- package/dist/types-ts4.5/common/analytics/generated/analytics.types.d.ts +3 -1
- package/dist/types-ts4.5/constants.d.ts +1 -0
- package/dist/types-ts4.5/messages.d.ts +1 -1
- package/dist/types-ts4.5/state/hooks/use-ai-summary/ai-summary-service/index.d.ts +2 -1
- package/dist/types-ts4.5/state/hooks/use-ai-summary/ai-summary-service/types.d.ts +14 -1
- package/dist/types-ts4.5/state/hooks/use-ai-summary/index.d.ts +2 -5
- package/dist/types-ts4.5/view/FlexibleCard/components/blocks/ai-summary-block/ai-event-error-viewed/index.d.ts +3 -1
- package/dist/types-ts4.5/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/types.d.ts +2 -1
- package/dist/types-ts4.5/view/HoverCard/styled.d.ts +1 -1
- package/package.json +4 -4
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @atlaskit/smart-card
|
|
2
2
|
|
|
3
|
+
## 26.50.11
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [#84238](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/84238) [`76b053da8795`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/76b053da8795) - [ux] Add fade in/out transition to AI prism border
|
|
8
|
+
- [#85227](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/85227) [`ceaf5b7ee00b`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/ceaf5b7ee00b) - [ux] Add new error message to hover card ai summary based on response from api
|
|
9
|
+
|
|
10
|
+
## 26.50.10
|
|
11
|
+
|
|
12
|
+
### Patch Changes
|
|
13
|
+
|
|
14
|
+
- [#83297](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/83297) [`6b1707c169e0`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/6b1707c169e0) - The internal composition of this component has changed. There is no expected change in behaviour.
|
|
15
|
+
|
|
3
16
|
## 26.50.9
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
package/dist/cjs/constants.js
CHANGED
|
@@ -3,11 +3,12 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.SmartLinkWidth = exports.SmartLinkTheme = exports.SmartLinkStatus = exports.SmartLinkSize = exports.SmartLinkPosition = exports.SmartLinkInternalTheme = exports.SmartLinkDirection = exports.SmartLinkAlignment = exports.MediaType = exports.MediaPlacement = exports.IconType = exports.ElementName = exports.CardDisplay = exports.CONTENT_URL_SECURITY_AND_PERMISSIONS = exports.CONTENT_URL_AI_TROUBLESHOOTING = exports.CONTENT_URL_AI = exports.CONTENT_URL_3P_ACCOUNT_AUTH = exports.ActionName = void 0;
|
|
6
|
+
exports.SmartLinkWidth = exports.SmartLinkTheme = exports.SmartLinkStatus = exports.SmartLinkSize = exports.SmartLinkPosition = exports.SmartLinkInternalTheme = exports.SmartLinkDirection = exports.SmartLinkAlignment = exports.MediaType = exports.MediaPlacement = exports.IconType = exports.ElementName = exports.CardDisplay = exports.CONTENT_URL_SECURITY_AND_PERMISSIONS = exports.CONTENT_URL_AI_TROUBLESHOOTING = exports.CONTENT_URL_AI = exports.CONTENT_URL_ACCEPTABLE_USE_POLICY = exports.CONTENT_URL_3P_ACCOUNT_AUTH = exports.ActionName = void 0;
|
|
7
7
|
var CONTENT_URL_SECURITY_AND_PERMISSIONS = exports.CONTENT_URL_SECURITY_AND_PERMISSIONS = 'https://support.atlassian.com/confluence-cloud/docs/insert-links-and-anchors/#Smart-links';
|
|
8
8
|
var CONTENT_URL_3P_ACCOUNT_AUTH = exports.CONTENT_URL_3P_ACCOUNT_AUTH = 'https://support.atlassian.com/confluence-cloud/docs/what-data-is-sent-and-received-when-pasting-a-smart-link/';
|
|
9
9
|
var CONTENT_URL_AI = exports.CONTENT_URL_AI = 'https://www.atlassian.com/trust/atlassian-intelligence';
|
|
10
10
|
var CONTENT_URL_AI_TROUBLESHOOTING = exports.CONTENT_URL_AI_TROUBLESHOOTING = 'https://support.atlassian.com/organization-administration/docs/troubleshooting-for-atlassian-intelligence/';
|
|
11
|
+
var CONTENT_URL_ACCEPTABLE_USE_POLICY = exports.CONTENT_URL_ACCEPTABLE_USE_POLICY = 'https://www.atlassian.com/legal/acceptable-use-policy';
|
|
11
12
|
|
|
12
13
|
/**
|
|
13
14
|
* The alignment of Flexible UI component.
|
package/dist/cjs/messages.js
CHANGED
|
@@ -46,6 +46,11 @@ var messages = exports.messages = (0, _reactIntlNext.defineMessages)({
|
|
|
46
46
|
defaultMessage: "Atlassian Intelligence can't provide a response right now. Read more <a>in our support documentation</a>.",
|
|
47
47
|
description: 'Shown when AI summary is summarising the link resource content.'
|
|
48
48
|
},
|
|
49
|
+
ai_summary_error_acceptable_use_violation: {
|
|
50
|
+
id: 'fabric.linking.ai_summary_error_acceptable_use_violation',
|
|
51
|
+
defaultMessage: "We cannot show the results of this summary as it goes against <a>Atlassian's Acceptable Use Policy</a>.",
|
|
52
|
+
description: 'Shown when AI summary is summarising the link resource content and the content violates atlassians acceptable use policy.'
|
|
53
|
+
},
|
|
49
54
|
assigned_to: {
|
|
50
55
|
id: 'fabric.linking.assigned_to',
|
|
51
56
|
defaultMessage: 'Assigned to {context}',
|
|
@@ -11,6 +11,7 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
|
|
|
11
11
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
12
12
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
13
13
|
var _uuid = _interopRequireDefault(require("uuid"));
|
|
14
|
+
var _types = require("./types");
|
|
14
15
|
var _utils = require("./utils");
|
|
15
16
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
16
17
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
@@ -111,6 +112,7 @@ var AISummaryService = exports.AISummaryService = /*#__PURE__*/function () {
|
|
|
111
112
|
subscriber,
|
|
112
113
|
_chunk$message,
|
|
113
114
|
_this$onError,
|
|
115
|
+
message,
|
|
114
116
|
_iterator4,
|
|
115
117
|
_step4,
|
|
116
118
|
_subscriber2,
|
|
@@ -219,17 +221,19 @@ var AISummaryService = exports.AISummaryService = /*#__PURE__*/function () {
|
|
|
219
221
|
status: 'done',
|
|
220
222
|
content: bufferContent
|
|
221
223
|
};
|
|
222
|
-
_context2.next =
|
|
224
|
+
_context2.next = 51;
|
|
223
225
|
break;
|
|
224
226
|
case 46:
|
|
225
227
|
_context2.prev = 46;
|
|
226
228
|
_context2.t1 = _context2["catch"](5);
|
|
227
|
-
|
|
229
|
+
message = _context2.t1 instanceof Error && this.isExpectedError(_context2.t1.message) ? _context2.t1.message : 'UNEXPECTED';
|
|
230
|
+
(_this$onError = this.onError) === null || _this$onError === void 0 || _this$onError.call(this, id, message);
|
|
228
231
|
this.state = {
|
|
229
232
|
status: 'error',
|
|
230
|
-
content: ''
|
|
233
|
+
content: '',
|
|
234
|
+
error: message
|
|
231
235
|
};
|
|
232
|
-
case
|
|
236
|
+
case 51:
|
|
233
237
|
_iterator4 = _createForOfIteratorHelper(this.subscribedStateSetters);
|
|
234
238
|
try {
|
|
235
239
|
for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
|
|
@@ -241,7 +245,7 @@ var AISummaryService = exports.AISummaryService = /*#__PURE__*/function () {
|
|
|
241
245
|
} finally {
|
|
242
246
|
_iterator4.f();
|
|
243
247
|
}
|
|
244
|
-
case
|
|
248
|
+
case 53:
|
|
245
249
|
case "end":
|
|
246
250
|
return _context2.stop();
|
|
247
251
|
}
|
|
@@ -252,6 +256,13 @@ var AISummaryService = exports.AISummaryService = /*#__PURE__*/function () {
|
|
|
252
256
|
}
|
|
253
257
|
return summariseUrl;
|
|
254
258
|
}()
|
|
259
|
+
}, {
|
|
260
|
+
key: "isExpectedError",
|
|
261
|
+
value: function isExpectedError(value) {
|
|
262
|
+
return typeof value === 'string' && _types.errorMessages.some(function (a) {
|
|
263
|
+
return a === value;
|
|
264
|
+
});
|
|
265
|
+
}
|
|
255
266
|
}, {
|
|
256
267
|
key: "subscribe",
|
|
257
268
|
value: function subscribe(stateSetter) {
|
|
@@ -1 +1,7 @@
|
|
|
1
|
-
"use strict";
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.errorMessages = void 0;
|
|
7
|
+
var errorMessages = exports.errorMessages = ['NETWORK_ERROR', 'NO_ANSWER', 'RATE_LIMIT', 'NO_AGENT', 'PLUGIN_ERRORED', 'OPENAI_RATE_LIMIT_USER_ABUSE', 'ACCEPTABLE_USE_VIOLATIONS', 'AI_DISABLED', 'UNEXPECTED'];
|
|
@@ -17,27 +17,27 @@ function readStream(_x) {
|
|
|
17
17
|
}
|
|
18
18
|
function _readStream() {
|
|
19
19
|
_readStream = (0, _wrapAsyncGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(response) {
|
|
20
|
-
var reader, doneStreaming, chunkBuffer, _yield$_awaitAsyncGen, value, done, processedChunks, _iterator, _step, chunk,
|
|
20
|
+
var reader, doneStreaming, chunkBuffer, chunkTypeErrorMessage, _yield$_awaitAsyncGen, value, done, processedChunks, _iterator, _step, chunk, jsonChunk, error;
|
|
21
21
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
22
22
|
while (1) switch (_context.prev = _context.next) {
|
|
23
23
|
case 0:
|
|
24
24
|
reader = getBufferReader(response);
|
|
25
25
|
doneStreaming = false;
|
|
26
26
|
chunkBuffer = '';
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
_context.
|
|
27
|
+
chunkTypeErrorMessage = 'jsonChunkType error';
|
|
28
|
+
case 4:
|
|
29
|
+
_context.prev = 4;
|
|
30
|
+
_context.next = 7;
|
|
30
31
|
return (0, _awaitAsyncGenerator2.default)(reader.read());
|
|
31
|
-
case
|
|
32
|
+
case 7:
|
|
32
33
|
_yield$_awaitAsyncGen = _context.sent;
|
|
33
34
|
value = _yield$_awaitAsyncGen.value;
|
|
34
35
|
done = _yield$_awaitAsyncGen.done;
|
|
35
36
|
doneStreaming = done;
|
|
36
37
|
if (!value) {
|
|
37
|
-
_context.next =
|
|
38
|
+
_context.next = 42;
|
|
38
39
|
break;
|
|
39
40
|
}
|
|
40
|
-
_context.prev = 11;
|
|
41
41
|
processedChunks = "".concat(chunkBuffer).concat(value).split('\n'); // assumes that all JSON chunks are separated by a new-line;
|
|
42
42
|
chunkBuffer = '';
|
|
43
43
|
_iterator = _createForOfIteratorHelper(processedChunks);
|
|
@@ -45,61 +45,67 @@ function _readStream() {
|
|
|
45
45
|
_iterator.s();
|
|
46
46
|
case 17:
|
|
47
47
|
if ((_step = _iterator.n()).done) {
|
|
48
|
-
_context.next =
|
|
48
|
+
_context.next = 34;
|
|
49
49
|
break;
|
|
50
50
|
}
|
|
51
51
|
chunk = _step.value;
|
|
52
52
|
_context.prev = 19;
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
53
|
+
jsonChunk = JSON.parse(chunk);
|
|
54
|
+
if (!(jsonChunk.type === 'ERROR')) {
|
|
55
|
+
_context.next = 23;
|
|
56
|
+
break;
|
|
57
|
+
}
|
|
58
|
+
throw new Error(chunkTypeErrorMessage);
|
|
59
|
+
case 23:
|
|
60
|
+
_context.next = 25;
|
|
61
|
+
return jsonChunk;
|
|
62
|
+
case 25:
|
|
63
|
+
_context.next = 32;
|
|
57
64
|
break;
|
|
58
|
-
case
|
|
59
|
-
_context.prev =
|
|
65
|
+
case 27:
|
|
66
|
+
_context.prev = 27;
|
|
60
67
|
_context.t0 = _context["catch"](19);
|
|
68
|
+
if (!(_context.t0 instanceof Error && _context.t0.message === chunkTypeErrorMessage)) {
|
|
69
|
+
_context.next = 31;
|
|
70
|
+
break;
|
|
71
|
+
}
|
|
72
|
+
throw _context.t0;
|
|
73
|
+
case 31:
|
|
61
74
|
// the chunk may be incomplete, so we'll save it for the next iteration.
|
|
62
75
|
chunkBuffer = chunk;
|
|
63
|
-
case
|
|
76
|
+
case 32:
|
|
64
77
|
_context.next = 17;
|
|
65
78
|
break;
|
|
66
|
-
case
|
|
67
|
-
_context.next =
|
|
79
|
+
case 34:
|
|
80
|
+
_context.next = 39;
|
|
68
81
|
break;
|
|
69
|
-
case
|
|
70
|
-
_context.prev =
|
|
82
|
+
case 36:
|
|
83
|
+
_context.prev = 36;
|
|
71
84
|
_context.t1 = _context["catch"](15);
|
|
72
85
|
_iterator.e(_context.t1);
|
|
73
|
-
case 34:
|
|
74
|
-
_context.prev = 34;
|
|
75
|
-
_iterator.f();
|
|
76
|
-
return _context.finish(34);
|
|
77
|
-
case 37:
|
|
78
|
-
_context.next = 43;
|
|
79
|
-
break;
|
|
80
86
|
case 39:
|
|
81
87
|
_context.prev = 39;
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
case 43:
|
|
88
|
+
_iterator.f();
|
|
89
|
+
return _context.finish(39);
|
|
90
|
+
case 42:
|
|
86
91
|
_context.next = 52;
|
|
87
92
|
break;
|
|
88
|
-
case
|
|
89
|
-
_context.prev =
|
|
90
|
-
_context.
|
|
91
|
-
if (!(_context.
|
|
92
|
-
_context.next =
|
|
93
|
+
case 44:
|
|
94
|
+
_context.prev = 44;
|
|
95
|
+
_context.t2 = _context["catch"](4);
|
|
96
|
+
if (!(_context.t2 instanceof DOMException && _context.t2.name === 'AbortError')) {
|
|
97
|
+
_context.next = 50;
|
|
93
98
|
break;
|
|
94
99
|
}
|
|
95
100
|
doneStreaming = true;
|
|
96
101
|
_context.next = 52;
|
|
97
102
|
break;
|
|
98
|
-
case
|
|
99
|
-
|
|
103
|
+
case 50:
|
|
104
|
+
reader.cancel();
|
|
105
|
+
throw _context.t2;
|
|
100
106
|
case 52:
|
|
101
107
|
if (!doneStreaming) {
|
|
102
|
-
_context.next =
|
|
108
|
+
_context.next = 4;
|
|
103
109
|
break;
|
|
104
110
|
}
|
|
105
111
|
case 53:
|
|
@@ -107,13 +113,13 @@ function _readStream() {
|
|
|
107
113
|
_context.next = 56;
|
|
108
114
|
break;
|
|
109
115
|
}
|
|
110
|
-
|
|
111
|
-
throw
|
|
116
|
+
error = new Error("Not all the data was processed: ".concat(chunkBuffer));
|
|
117
|
+
throw error;
|
|
112
118
|
case 56:
|
|
113
119
|
case "end":
|
|
114
120
|
return _context.stop();
|
|
115
121
|
}
|
|
116
|
-
}, _callee, null, [[
|
|
122
|
+
}, _callee, null, [[4, 44], [15, 36, 39, 42], [19, 27]]);
|
|
117
123
|
}));
|
|
118
124
|
return _readStream.apply(this, arguments);
|
|
119
125
|
}
|
|
@@ -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.
|
|
25
|
+
packageVersion: "26.50.11"
|
|
26
26
|
};
|
|
27
27
|
var TrackQuickActionType = exports.TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
|
|
28
28
|
TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
|
|
@@ -86,7 +86,7 @@ var Wrapper = exports.Wrapper = _styled.default.div(function (props) {
|
|
|
86
86
|
}, {
|
|
87
87
|
// We are keeping this margin as a hardcoded variable as it is not a standard token size and needs
|
|
88
88
|
// to be thoroughly checked with a designer so that we do not miss an unintended visual change
|
|
89
|
-
// eslint-disable-next-line @atlaskit/design-system/
|
|
89
|
+
// eslint-disable-next-line @atlaskit/design-system/use-tokens-space
|
|
90
90
|
marginTop: '10px'
|
|
91
91
|
});
|
|
92
92
|
var embedHeaderHeight = exports.embedHeaderHeight = 32;
|
package/dist/cjs/view/FlexibleCard/components/blocks/ai-summary-block/ai-event-error-viewed/index.js
CHANGED
|
@@ -6,12 +6,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
var _react = require("react");
|
|
8
8
|
var _useAnalyticsEvents2 = require("../../../../../../common/analytics/generated/use-analytics-events");
|
|
9
|
-
var AIEventErrorViewed = function AIEventErrorViewed() {
|
|
9
|
+
var AIEventErrorViewed = function AIEventErrorViewed(_ref) {
|
|
10
|
+
var reason = _ref.reason;
|
|
10
11
|
var _useAnalyticsEvents = (0, _useAnalyticsEvents2.useAnalyticsEvents)(),
|
|
11
12
|
fireEvent = _useAnalyticsEvents.fireEvent;
|
|
12
13
|
(0, _react.useEffect)(function () {
|
|
13
|
-
fireEvent('ui.error.viewed.aiSummary', {
|
|
14
|
-
|
|
14
|
+
fireEvent('ui.error.viewed.aiSummary', {
|
|
15
|
+
reason: reason
|
|
16
|
+
});
|
|
17
|
+
}, [fireEvent, reason]);
|
|
15
18
|
return null;
|
|
16
19
|
};
|
|
17
20
|
var _default = exports.default = AIEventErrorViewed;
|
|
@@ -21,9 +21,40 @@ var contentStyles = (0, _primitives.xcss)({
|
|
|
21
21
|
fontWeight: '400',
|
|
22
22
|
lineHeight: '14px'
|
|
23
23
|
});
|
|
24
|
-
var
|
|
25
|
-
var
|
|
26
|
-
|
|
24
|
+
var MessageWithAnchor = function MessageWithAnchor(_ref) {
|
|
25
|
+
var message = _ref.message,
|
|
26
|
+
url = _ref.url;
|
|
27
|
+
return /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, (0, _extends2.default)({}, message, {
|
|
28
|
+
values: {
|
|
29
|
+
a: function a(chunks) {
|
|
30
|
+
return /*#__PURE__*/_react.default.createElement(_aiLearnMoreAnchor.default, {
|
|
31
|
+
href: url
|
|
32
|
+
}, chunks);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}));
|
|
36
|
+
};
|
|
37
|
+
var getErrorMesssageProps = function getErrorMesssageProps(error) {
|
|
38
|
+
switch (error) {
|
|
39
|
+
case 'ACCEPTABLE_USE_VIOLATIONS':
|
|
40
|
+
return {
|
|
41
|
+
message: _messages.messages.ai_summary_error_acceptable_use_violation,
|
|
42
|
+
url: _constants.CONTENT_URL_ACCEPTABLE_USE_POLICY
|
|
43
|
+
};
|
|
44
|
+
default:
|
|
45
|
+
return {
|
|
46
|
+
message: _messages.messages.ai_summary_error_generic,
|
|
47
|
+
url: _constants.CONTENT_URL_AI_TROUBLESHOOTING
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
var AIStateError = function AIStateError(_ref2) {
|
|
52
|
+
var appearance = _ref2.appearance,
|
|
53
|
+
testId = _ref2.testId,
|
|
54
|
+
error = _ref2.error;
|
|
55
|
+
var _getErrorMesssageProp = getErrorMesssageProps(error),
|
|
56
|
+
message = _getErrorMesssageProp.message,
|
|
57
|
+
url = _getErrorMesssageProp.url;
|
|
27
58
|
switch (appearance) {
|
|
28
59
|
case 'icon-only':
|
|
29
60
|
return null;
|
|
@@ -38,15 +69,10 @@ var AIStateError = function AIStateError(_ref) {
|
|
|
38
69
|
content: /*#__PURE__*/_react.default.createElement(_primitives.Box, {
|
|
39
70
|
testId: "".concat(testId, "-error-message"),
|
|
40
71
|
xcss: contentStyles
|
|
41
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
href: _constants.CONTENT_URL_AI_TROUBLESHOOTING
|
|
46
|
-
}, chunks);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}))),
|
|
72
|
+
}, /*#__PURE__*/_react.default.createElement(MessageWithAnchor, {
|
|
73
|
+
message: message,
|
|
74
|
+
url: url
|
|
75
|
+
})),
|
|
50
76
|
testId: "".concat(testId, "-error")
|
|
51
77
|
});
|
|
52
78
|
}
|
package/dist/cjs/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/index.js
CHANGED
|
@@ -17,12 +17,14 @@ var AIStateIndicator = function AIStateIndicator(_ref) {
|
|
|
17
17
|
_ref$appearance = _ref.appearance,
|
|
18
18
|
appearance = _ref$appearance === void 0 ? 'default' : _ref$appearance,
|
|
19
19
|
_ref$testId = _ref.testId,
|
|
20
|
-
testId = _ref$testId === void 0 ? 'ai-state-indicator' : _ref$testId
|
|
20
|
+
testId = _ref$testId === void 0 ? 'ai-state-indicator' : _ref$testId,
|
|
21
|
+
error = _ref.error;
|
|
21
22
|
switch (state) {
|
|
22
23
|
case 'error':
|
|
23
24
|
return (0, _react.jsx)(_aiStateError.default, {
|
|
24
25
|
appearance: appearance,
|
|
25
|
-
testId: testId
|
|
26
|
+
testId: testId,
|
|
27
|
+
error: error
|
|
26
28
|
});
|
|
27
29
|
case 'loading':
|
|
28
30
|
return (0, _react.jsx)(_aiStateLoading.default, {
|
|
@@ -48,7 +48,8 @@ var AISummaryBlockResolvedView = function AISummaryBlockResolvedView(props) {
|
|
|
48
48
|
summariseUrl = _useAISummary.summariseUrl,
|
|
49
49
|
_useAISummary$state = _useAISummary.state,
|
|
50
50
|
content = _useAISummary$state.content,
|
|
51
|
-
status = _useAISummary$state.status
|
|
51
|
+
status = _useAISummary$state.status,
|
|
52
|
+
error = _useAISummary$state.error;
|
|
52
53
|
var showAISummary = status === 'done' ||
|
|
53
54
|
// We want to display the AI Summary component only when there is content available during the loading process.
|
|
54
55
|
status === 'loading' && !!content;
|
|
@@ -119,7 +120,10 @@ var AISummaryBlockResolvedView = function AISummaryBlockResolvedView(props) {
|
|
|
119
120
|
size: size
|
|
120
121
|
}))), showAISummaryErrorMessage && /*#__PURE__*/_react.default.createElement(_primitives.Inline, {
|
|
121
122
|
grow: "fill"
|
|
122
|
-
}, /*#__PURE__*/_react.default.createElement(_aiEventErrorViewed.default,
|
|
123
|
+
}, /*#__PURE__*/_react.default.createElement(_aiEventErrorViewed.default, {
|
|
124
|
+
reason: error
|
|
125
|
+
}), /*#__PURE__*/_react.default.createElement(_aiStateIndicator.default, {
|
|
126
|
+
error: error,
|
|
123
127
|
state: status,
|
|
124
128
|
testId: testId
|
|
125
129
|
})));
|
|
@@ -18,7 +18,7 @@ var dropdownItemGroupStyles = exports.dropdownItemGroupStyles = (0, _react.css)(
|
|
|
18
18
|
});
|
|
19
19
|
var sharedBlockStyles = (0, _react.css)({
|
|
20
20
|
display: 'flex',
|
|
21
|
-
gap:
|
|
21
|
+
gap: "var(--ds-space-100, 0.5rem)",
|
|
22
22
|
lineHeight: '1rem',
|
|
23
23
|
minWidth: 0,
|
|
24
24
|
overflow: 'hidden',
|
|
@@ -43,7 +43,7 @@ var ConnectedAIPrismContainer = function ConnectedAIPrismContainer(_ref) {
|
|
|
43
43
|
}, [status]);
|
|
44
44
|
var container = (0, _react.jsx)("div", (0, _extends2.default)({
|
|
45
45
|
className: _HoverCardContent.hoverCardClassName,
|
|
46
|
-
css: [_styled.HoverCardContainer, isAIEnabled
|
|
46
|
+
css: [_styled.HoverCardContainer, !isAIEnabled ? _styled.popupContainerStyles : undefined],
|
|
47
47
|
"data-testid": testId
|
|
48
48
|
}, props), children);
|
|
49
49
|
return isAIEnabled ? (0, _react.jsx)(_aiPrism.default, {
|
|
@@ -11,7 +11,7 @@ var _index = require("../../index");
|
|
|
11
11
|
var _constants = require("../../constants");
|
|
12
12
|
var _constants2 = require("@atlaskit/theme/constants");
|
|
13
13
|
var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
|
|
14
|
-
var _templateObject, _templateObject2
|
|
14
|
+
var _templateObject, _templateObject2;
|
|
15
15
|
// Temporary fix for Confluence inline comment on editor mod has z-index of 500, Jira issue view has z-index of 510
|
|
16
16
|
var HOVER_CARD_Z_INDEX = exports.HOVER_CARD_Z_INDEX = _constants2.layers.modal();
|
|
17
17
|
var flexibleUiOptions = exports.flexibleUiOptions = {
|
|
@@ -22,18 +22,33 @@ var flexibleUiOptions = exports.flexibleUiOptions = {
|
|
|
22
22
|
zIndex: HOVER_CARD_Z_INDEX + 1
|
|
23
23
|
};
|
|
24
24
|
var CARD_WIDTH_REM = exports.CARD_WIDTH_REM = 24;
|
|
25
|
-
var NEW_CARD_WIDTH_REM = exports.NEW_CARD_WIDTH_REM =
|
|
25
|
+
var NEW_CARD_WIDTH_REM = exports.NEW_CARD_WIDTH_REM = 25;
|
|
26
26
|
// gap between mouse cursor and hover card
|
|
27
27
|
var CARD_GAP_PX = exports.CARD_GAP_PX = 10;
|
|
28
28
|
var blockGap = '0.5rem';
|
|
29
29
|
var elementGap = '0.5rem';
|
|
30
|
-
var separatorCss = exports.separatorCss = (0, _react.css)(
|
|
31
|
-
|
|
32
|
-
|
|
30
|
+
var separatorCss = exports.separatorCss = (0, _react.css)({
|
|
31
|
+
'[data-separator] + [data-separator]:before': {
|
|
32
|
+
marginRight: elementGap
|
|
33
|
+
}
|
|
34
|
+
});
|
|
35
|
+
var HoverCardContainer = exports.HoverCardContainer = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n background: none;\n border-width: 0;\n box-sizing: border-box;\n width: ", "rem;\n\n .", " {\n display: none;\n }\n"])), (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.hover-card-ai-summaries') ? NEW_CARD_WIDTH_REM : CARD_WIDTH_REM, _index.loadingPlaceholderClassName);
|
|
36
|
+
var titleBlockCss = exports.titleBlockCss = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n gap: ", ";\n\n ", "\n\n // title and subtitle element group\n [data-smart-element-group] {\n // gap between title and subtitle\n gap: 0.06rem;\n display: flex;\n /* subtitle element group */\n > [data-smart-element-group] {\n > span {\n margin-right: ", ";\n }\n }\n }\n\n [data-smart-element='Title'] {\n font-weight: 600;\n }\n"])), blockGap, separatorCss, elementGap);
|
|
33
37
|
var getTransitionStyles = exports.getTransitionStyles = function getTransitionStyles(snippetHeight) {
|
|
34
|
-
return (0, _react.css)(
|
|
38
|
+
return (0, _react.css)({
|
|
39
|
+
transition: 'height 300ms ease-in-out',
|
|
40
|
+
height: "".concat(snippetHeight, "px")
|
|
41
|
+
});
|
|
35
42
|
};
|
|
36
|
-
var popupContainerStyles = exports.popupContainerStyles = (0, _react.css)(
|
|
43
|
+
var popupContainerStyles = exports.popupContainerStyles = (0, _react.css)({
|
|
44
|
+
borderRadius: "var(--ds-border-radius-200, 8px)",
|
|
45
|
+
backgroundColor: "var(--ds-surface-raised, white)",
|
|
46
|
+
boxShadow: "var(--ds-shadow-overlay, 0px 8px 12px rgba(9, 30, 66, 0.15),0px 0px 1px rgba(9, 30, 66, 0.31))"
|
|
47
|
+
});
|
|
37
48
|
var getPreviewBlockStyles = exports.getPreviewBlockStyles = function getPreviewBlockStyles(previewHeight) {
|
|
38
|
-
return (0, _react.css)(
|
|
49
|
+
return (0, _react.css)(previewHeight ? "height: ".concat(previewHeight, "px;") : '', {
|
|
50
|
+
borderTopLeftRadius: "var(--ds-border-radius-200, 8px)",
|
|
51
|
+
borderTopRightRadius: "var(--ds-border-radius-200, 8px)",
|
|
52
|
+
marginBottom: blockGap
|
|
53
|
+
});
|
|
39
54
|
};
|
|
@@ -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.
|
|
20
|
+
packageVersion: "26.50.11",
|
|
21
21
|
componentName: 'linkUrl'
|
|
22
22
|
};
|
|
23
23
|
var Link = (0, _click.withLinkClickedEvent)('a');
|
|
@@ -9,11 +9,17 @@ var _react = require("@emotion/react");
|
|
|
9
9
|
var _tokens = require("@atlaskit/tokens");
|
|
10
10
|
var _constants = require("./constants");
|
|
11
11
|
var _aiGlowingBorder = _interopRequireDefault(require("./ai-glowing-border"));
|
|
12
|
+
var _styled = require("../../HoverCard/styled");
|
|
12
13
|
/** @jsx jsx */
|
|
13
14
|
|
|
14
15
|
var contentStyles = (0, _react.css)({
|
|
15
|
-
|
|
16
|
-
|
|
16
|
+
transition: 'box-shadow 0.5s ease'
|
|
17
|
+
});
|
|
18
|
+
var contentStylesPrismVisible = (0, _react.css)({
|
|
19
|
+
// intentionally set opacity to 0 to remove the shadow with fade out animation
|
|
20
|
+
boxShadow:
|
|
21
|
+
// eslint-disable-next-line @atlaskit/design-system/ensure-design-token-usage
|
|
22
|
+
'0px 8px 12px rgba(9, 30, 66, 0),0px 0px 1px rgba(9, 30, 66, 0)'
|
|
17
23
|
});
|
|
18
24
|
var AIPrism = function AIPrism(_ref) {
|
|
19
25
|
var _AI_BORDER_PALETTE$co;
|
|
@@ -30,7 +36,8 @@ var AIPrism = function AIPrism(_ref) {
|
|
|
30
36
|
return (0, _react.jsx)(_aiGlowingBorder.default, {
|
|
31
37
|
additionalCss: {
|
|
32
38
|
animatedSvgContainer: (0, _react.css)({
|
|
33
|
-
opacity: isVisible ? 1 : 0
|
|
39
|
+
opacity: isVisible ? 1 : 0,
|
|
40
|
+
transition: 'opacity 0.5s ease'
|
|
34
41
|
})
|
|
35
42
|
},
|
|
36
43
|
palette: (_AI_BORDER_PALETTE$co = _constants.AI_BORDER_PALETTE[colorMode]) !== null && _AI_BORDER_PALETTE$co !== void 0 ? _AI_BORDER_PALETTE$co : _constants.AI_BORDER_PALETTE.light,
|
|
@@ -38,7 +45,7 @@ var AIPrism = function AIPrism(_ref) {
|
|
|
38
45
|
isMoving: isMoving,
|
|
39
46
|
testId: testId
|
|
40
47
|
}, (0, _react.jsx)("div", {
|
|
41
|
-
css: contentStyles
|
|
48
|
+
css: [_styled.popupContainerStyles, contentStyles, isVisible ? contentStylesPrismVisible : undefined]
|
|
42
49
|
}, children));
|
|
43
50
|
};
|
|
44
51
|
var _default = exports.default = AIPrism;
|
package/dist/es2019/constants.js
CHANGED
|
@@ -2,6 +2,7 @@ export const CONTENT_URL_SECURITY_AND_PERMISSIONS = 'https://support.atlassian.c
|
|
|
2
2
|
export const CONTENT_URL_3P_ACCOUNT_AUTH = 'https://support.atlassian.com/confluence-cloud/docs/what-data-is-sent-and-received-when-pasting-a-smart-link/';
|
|
3
3
|
export const CONTENT_URL_AI = 'https://www.atlassian.com/trust/atlassian-intelligence';
|
|
4
4
|
export const CONTENT_URL_AI_TROUBLESHOOTING = 'https://support.atlassian.com/organization-administration/docs/troubleshooting-for-atlassian-intelligence/';
|
|
5
|
+
export const CONTENT_URL_ACCEPTABLE_USE_POLICY = 'https://www.atlassian.com/legal/acceptable-use-policy';
|
|
5
6
|
|
|
6
7
|
/**
|
|
7
8
|
* The alignment of Flexible UI component.
|
package/dist/es2019/messages.js
CHANGED
|
@@ -40,6 +40,11 @@ export const messages = defineMessages({
|
|
|
40
40
|
defaultMessage: "Atlassian Intelligence can't provide a response right now. Read more <a>in our support documentation</a>.",
|
|
41
41
|
description: 'Shown when AI summary is summarising the link resource content.'
|
|
42
42
|
},
|
|
43
|
+
ai_summary_error_acceptable_use_violation: {
|
|
44
|
+
id: 'fabric.linking.ai_summary_error_acceptable_use_violation',
|
|
45
|
+
defaultMessage: "We cannot show the results of this summary as it goes against <a>Atlassian's Acceptable Use Policy</a>.",
|
|
46
|
+
description: 'Shown when AI summary is summarising the link resource content and the content violates atlassians acceptable use policy.'
|
|
47
|
+
},
|
|
43
48
|
assigned_to: {
|
|
44
49
|
id: 'fabric.linking.assigned_to',
|
|
45
50
|
defaultMessage: 'Assigned to {context}',
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
2
|
import uuid from 'uuid';
|
|
3
|
+
import { errorMessages } from './types';
|
|
3
4
|
import { readStream, addPath } from './utils';
|
|
4
5
|
export class AISummaryService {
|
|
5
6
|
constructor(props) {
|
|
@@ -91,16 +92,21 @@ export class AISummaryService {
|
|
|
91
92
|
};
|
|
92
93
|
} catch (err) {
|
|
93
94
|
var _this$onError;
|
|
94
|
-
|
|
95
|
+
let message = err instanceof Error && this.isExpectedError(err.message) ? err.message : 'UNEXPECTED';
|
|
96
|
+
(_this$onError = this.onError) === null || _this$onError === void 0 ? void 0 : _this$onError.call(this, id, message);
|
|
95
97
|
this.state = {
|
|
96
98
|
status: 'error',
|
|
97
|
-
content: ''
|
|
99
|
+
content: '',
|
|
100
|
+
error: message
|
|
98
101
|
};
|
|
99
102
|
}
|
|
100
103
|
for (const subscriber of this.subscribedStateSetters) {
|
|
101
104
|
subscriber(this.state);
|
|
102
105
|
}
|
|
103
106
|
}
|
|
107
|
+
isExpectedError(value) {
|
|
108
|
+
return typeof value === 'string' && errorMessages.some(a => a === value);
|
|
109
|
+
}
|
|
104
110
|
subscribe(stateSetter) {
|
|
105
111
|
this.subscribedStateSetters.add(stateSetter);
|
|
106
112
|
return () => {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const errorMessages = ['NETWORK_ERROR', 'NO_ANSWER', 'RATE_LIMIT', 'NO_AGENT', 'PLUGIN_ERRORED', 'OPENAI_RATE_LIMIT_USER_ABUSE', 'ACCEPTABLE_USE_VIOLATIONS', 'AI_DISABLED', 'UNEXPECTED'];
|