@atlaskit/smart-card 26.48.5 → 26.48.7

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 (35) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/cjs/constants.js +3 -1
  3. package/dist/cjs/messages.js +5 -0
  4. package/dist/cjs/utils/analytics/analytics.js +1 -1
  5. package/dist/cjs/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/ai-indicator-container.js +1 -1
  6. package/dist/cjs/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/ai-state-error.js +54 -0
  7. package/dist/cjs/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/ai-state-loading.js +6 -7
  8. package/dist/cjs/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/index.js +6 -0
  9. package/dist/cjs/view/FlexibleCard/components/blocks/ai-summary-block/resolved/index.js +9 -2
  10. package/dist/cjs/view/LinkUrl/index.js +1 -1
  11. package/dist/es2019/constants.js +2 -0
  12. package/dist/es2019/messages.js +5 -0
  13. package/dist/es2019/utils/analytics/analytics.js +1 -1
  14. package/dist/es2019/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/ai-indicator-container.js +1 -1
  15. package/dist/es2019/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/ai-state-error.js +46 -0
  16. package/dist/es2019/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/ai-state-loading.js +6 -7
  17. package/dist/es2019/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/index.js +6 -0
  18. package/dist/es2019/view/FlexibleCard/components/blocks/ai-summary-block/resolved/index.js +8 -2
  19. package/dist/es2019/view/LinkUrl/index.js +1 -1
  20. package/dist/esm/constants.js +2 -0
  21. package/dist/esm/messages.js +5 -0
  22. package/dist/esm/utils/analytics/analytics.js +1 -1
  23. package/dist/esm/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/ai-indicator-container.js +1 -1
  24. package/dist/esm/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/ai-state-error.js +47 -0
  25. package/dist/esm/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/ai-state-loading.js +6 -7
  26. package/dist/esm/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/index.js +6 -0
  27. package/dist/esm/view/FlexibleCard/components/blocks/ai-summary-block/resolved/index.js +9 -2
  28. package/dist/esm/view/LinkUrl/index.js +1 -1
  29. package/dist/types/constants.d.ts +1 -0
  30. package/dist/types/messages.d.ts +1 -1
  31. package/dist/types/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/ai-state-error.d.ts +4 -0
  32. package/dist/types-ts4.5/constants.d.ts +1 -0
  33. package/dist/types-ts4.5/messages.d.ts +1 -1
  34. package/dist/types-ts4.5/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/ai-state-error.d.ts +4 -0
  35. package/package.json +3 -3
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @atlaskit/smart-card
2
2
 
3
+ ## 26.48.7
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies
8
+
9
+ ## 26.48.6
10
+
11
+ ### Patch Changes
12
+
13
+ - [#77644](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/pull-requests/77644) [`781a14e5ab00`](https://stash.atlassian.com/projects/CONFCLOUD/repos/confluence-frontend/commits/781a14e5ab00) - Add generic AI summary error message
14
+
3
15
  ## 26.48.5
4
16
 
5
17
  ### Patch Changes
@@ -3,10 +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 = 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_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
+ var CONTENT_URL_AI_TROUBLESHOOTING = exports.CONTENT_URL_AI_TROUBLESHOOTING = 'https://support.atlassian.com/organization-administration/docs/troubleshooting-for-atlassian-intelligence/';
11
+
10
12
  /**
11
13
  * The alignment of Flexible UI component.
12
14
  */
@@ -36,6 +36,11 @@ var messages = exports.messages = (0, _reactIntlNext.defineMessages)({
36
36
  defaultMessage: 'Atlassian Intelligence is working...',
37
37
  description: 'Shown when AI summary is summarising the link resource content.'
38
38
  },
39
+ ai_summary_error_generic: {
40
+ id: 'fabric.linking.ai_summary_error_generic',
41
+ defaultMessage: "Atlassian Intelligence can't provide a response right now. Read more <a>in our support documentation</a>.",
42
+ description: 'Shown when AI summary is summarising the link resource content.'
43
+ },
39
44
  assigned_to: {
40
45
  id: 'fabric.linking.assigned_to',
41
46
  defaultMessage: 'Assigned to {context}',
@@ -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.48.5"
25
+ packageVersion: "0.0.0-development"
26
26
  };
27
27
  var TrackQuickActionType = exports.TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
28
28
  TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
@@ -18,7 +18,7 @@ var AIIndicatorContainer = function AIIndicatorContainer(_ref) {
18
18
  content = _ref.content,
19
19
  testId = _ref.testId;
20
20
  return /*#__PURE__*/_react.default.createElement(_primitives.Inline, {
21
- alignBlock: "center",
21
+ alignBlock: "start",
22
22
  alignInline: "start",
23
23
  space: "space.050",
24
24
  xcss: contentStyles,
@@ -0,0 +1,54 @@
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 _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _reactIntlNext = require("react-intl-next");
11
+ var _error = _interopRequireDefault(require("@atlaskit/icon/glyph/error"));
12
+ var _primitives = require("@atlaskit/primitives");
13
+ var _messages = require("../../../../../../messages");
14
+ var _aiIndicatorContainer = _interopRequireDefault(require("./ai-indicator-container"));
15
+ var _aiLearnMoreAnchor = _interopRequireDefault(require("./ai-learn-more-anchor"));
16
+ var _constants = require("../../../../../../constants");
17
+ var contentStyles = (0, _primitives.xcss)({
18
+ color: 'color.text.subtle',
19
+ fontSize: '11px',
20
+ fontStyle: 'normal',
21
+ fontWeight: '400',
22
+ lineHeight: '14px'
23
+ });
24
+ var AIStateError = function AIStateError(_ref) {
25
+ var appearance = _ref.appearance,
26
+ testId = _ref.testId;
27
+ switch (appearance) {
28
+ case 'icon-only':
29
+ return null;
30
+ default:
31
+ return /*#__PURE__*/_react.default.createElement(_aiIndicatorContainer.default, {
32
+ icon: /*#__PURE__*/_react.default.createElement(_error.default, {
33
+ primaryColor: "var(--ds-icon-danger, #C9372C)",
34
+ label: "AI",
35
+ size: "small",
36
+ testId: "".concat(testId, "-error-icon")
37
+ }),
38
+ content: /*#__PURE__*/_react.default.createElement(_primitives.Box, {
39
+ testId: "".concat(testId, "-error-message"),
40
+ xcss: contentStyles
41
+ }, /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, (0, _extends2.default)({}, _messages.messages.ai_summary_error_generic, {
42
+ values: {
43
+ a: function a(chunks) {
44
+ return /*#__PURE__*/_react.default.createElement(_aiLearnMoreAnchor.default, {
45
+ href: _constants.CONTENT_URL_AI_TROUBLESHOOTING
46
+ }, chunks);
47
+ }
48
+ }
49
+ }))),
50
+ testId: "".concat(testId, "-error")
51
+ });
52
+ }
53
+ };
54
+ var _default = exports.default = AIStateError;
@@ -14,17 +14,16 @@ var _aiIndicatorContainer = _interopRequireDefault(require("./ai-indicator-conta
14
14
  var AIStateLoading = function AIStateLoading(_ref) {
15
15
  var appearance = _ref.appearance,
16
16
  testId = _ref.testId;
17
- var icon = /*#__PURE__*/_react.default.createElement(_aiIconLoading.default, {
18
- label: "AI",
19
- size: "small",
20
- testId: "".concat(testId, "-loading-icon")
21
- });
22
17
  switch (appearance) {
23
18
  case 'icon-only':
24
- return icon;
19
+ return null;
25
20
  default:
26
21
  return /*#__PURE__*/_react.default.createElement(_aiIndicatorContainer.default, {
27
- icon: icon,
22
+ icon: /*#__PURE__*/_react.default.createElement(_aiIconLoading.default, {
23
+ label: "AI",
24
+ size: "small",
25
+ testId: "".concat(testId, "-loading-icon")
26
+ }),
28
27
  content: /*#__PURE__*/_react.default.createElement(_primitives.Box, {
29
28
  testId: "".concat(testId, "-loading-message")
30
29
  }, /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages.ai_summarizing)),
@@ -9,6 +9,7 @@ var _react = require("@emotion/react");
9
9
  var _react2 = _interopRequireDefault(require("react"));
10
10
  var _aiStateLoading = _interopRequireDefault(require("./ai-state-loading"));
11
11
  var _aiStateDone = _interopRequireDefault(require("./ai-state-done"));
12
+ var _aiStateError = _interopRequireDefault(require("./ai-state-error"));
12
13
  /** @jsx jsx */
13
14
 
14
15
  var AIStateIndicator = function AIStateIndicator(_ref) {
@@ -18,6 +19,11 @@ var AIStateIndicator = function AIStateIndicator(_ref) {
18
19
  _ref$testId = _ref.testId,
19
20
  testId = _ref$testId === void 0 ? 'ai-state-indicator' : _ref$testId;
20
21
  switch (state) {
22
+ case 'error':
23
+ return (0, _react.jsx)(_aiStateError.default, {
24
+ appearance: appearance,
25
+ testId: testId
26
+ });
21
27
  case 'loading':
22
28
  return (0, _react.jsx)(_aiStateLoading.default, {
23
29
  appearance: appearance,
@@ -44,7 +44,9 @@ var AISummaryBlockResolvedView = function AISummaryBlockResolvedView(props) {
44
44
  var aiSummary = (0, _useAiSummary.useAISummary)({
45
45
  url: url
46
46
  });
47
- var content = aiSummary.state.content,
47
+ var _aiSummary$state = aiSummary.state,
48
+ content = _aiSummary$state.content,
49
+ status = _aiSummary$state.status,
48
50
  isSummarisedOnMount = aiSummary.isSummarisedOnMount;
49
51
  var onAIActionClick = (0, _react.useCallback)(function () {
50
52
  setAIState('loading');
@@ -96,6 +98,11 @@ var AISummaryBlockResolvedView = function AISummaryBlockResolvedView(props) {
96
98
  items: combinedActions,
97
99
  appearance: "default",
98
100
  size: size
99
- }))));
101
+ }))), status === 'error' && /*#__PURE__*/_react.default.createElement(_primitives.Inline, {
102
+ grow: "fill"
103
+ }, /*#__PURE__*/_react.default.createElement(_aiStateIndicator.default, {
104
+ state: status,
105
+ testId: testId
106
+ })));
100
107
  };
101
108
  var _default = exports.default = AISummaryBlockResolvedView;
@@ -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.48.5",
20
+ packageVersion: "0.0.0-development",
21
21
  componentName: 'linkUrl'
22
22
  };
23
23
  var Link = (0, _click.withLinkClickedEvent)('a');
@@ -1,6 +1,8 @@
1
1
  export const CONTENT_URL_SECURITY_AND_PERMISSIONS = 'https://support.atlassian.com/confluence-cloud/docs/insert-links-and-anchors/#Smart-links';
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
+ export const CONTENT_URL_AI_TROUBLESHOOTING = 'https://support.atlassian.com/organization-administration/docs/troubleshooting-for-atlassian-intelligence/';
5
+
4
6
  /**
5
7
  * The alignment of Flexible UI component.
6
8
  */
@@ -30,6 +30,11 @@ export const messages = defineMessages({
30
30
  defaultMessage: 'Atlassian Intelligence is working...',
31
31
  description: 'Shown when AI summary is summarising the link resource content.'
32
32
  },
33
+ ai_summary_error_generic: {
34
+ id: 'fabric.linking.ai_summary_error_generic',
35
+ defaultMessage: "Atlassian Intelligence can't provide a response right now. Read more <a>in our support documentation</a>.",
36
+ description: 'Shown when AI summary is summarising the link resource content.'
37
+ },
33
38
  assigned_to: {
34
39
  id: 'fabric.linking.assigned_to',
35
40
  defaultMessage: 'Assigned to {context}',
@@ -4,7 +4,7 @@ export const ANALYTICS_CHANNEL = 'media';
4
4
  export const context = {
5
5
  componentName: 'smart-cards',
6
6
  packageName: "@atlaskit/smart-card",
7
- packageVersion: "26.48.5"
7
+ packageVersion: "0.0.0-development"
8
8
  };
9
9
  export let TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
10
10
  TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
@@ -12,7 +12,7 @@ const AIIndicatorContainer = ({
12
12
  testId
13
13
  }) => {
14
14
  return /*#__PURE__*/React.createElement(Inline, {
15
- alignBlock: "center",
15
+ alignBlock: "start",
16
16
  alignInline: "start",
17
17
  space: "space.050",
18
18
  xcss: contentStyles,
@@ -0,0 +1,46 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import React from 'react';
3
+ import { FormattedMessage } from 'react-intl-next';
4
+ import ErrorIcon from '@atlaskit/icon/glyph/error';
5
+ import { Box, xcss } from '@atlaskit/primitives';
6
+ import { messages } from '../../../../../../messages';
7
+ import AIIndicatorContainer from './ai-indicator-container';
8
+ import AILearnMoreAnchor from './ai-learn-more-anchor';
9
+ import { CONTENT_URL_AI_TROUBLESHOOTING } from '../../../../../../constants';
10
+ const contentStyles = xcss({
11
+ color: 'color.text.subtle',
12
+ fontSize: '11px',
13
+ fontStyle: 'normal',
14
+ fontWeight: '400',
15
+ lineHeight: '14px'
16
+ });
17
+ const AIStateError = ({
18
+ appearance,
19
+ testId
20
+ }) => {
21
+ switch (appearance) {
22
+ case 'icon-only':
23
+ return null;
24
+ default:
25
+ return /*#__PURE__*/React.createElement(AIIndicatorContainer, {
26
+ icon: /*#__PURE__*/React.createElement(ErrorIcon, {
27
+ primaryColor: "var(--ds-icon-danger, #C9372C)",
28
+ label: "AI",
29
+ size: "small",
30
+ testId: `${testId}-error-icon`
31
+ }),
32
+ content: /*#__PURE__*/React.createElement(Box, {
33
+ testId: `${testId}-error-message`,
34
+ xcss: contentStyles
35
+ }, /*#__PURE__*/React.createElement(FormattedMessage, _extends({}, messages.ai_summary_error_generic, {
36
+ values: {
37
+ a: chunks => /*#__PURE__*/React.createElement(AILearnMoreAnchor, {
38
+ href: CONTENT_URL_AI_TROUBLESHOOTING
39
+ }, chunks)
40
+ }
41
+ }))),
42
+ testId: `${testId}-error`
43
+ });
44
+ }
45
+ };
46
+ export default AIStateError;
@@ -8,17 +8,16 @@ const AIStateLoading = ({
8
8
  appearance,
9
9
  testId
10
10
  }) => {
11
- const icon = /*#__PURE__*/React.createElement(AIIconLoading, {
12
- label: "AI",
13
- size: "small",
14
- testId: `${testId}-loading-icon`
15
- });
16
11
  switch (appearance) {
17
12
  case 'icon-only':
18
- return icon;
13
+ return null;
19
14
  default:
20
15
  return /*#__PURE__*/React.createElement(AIIndicatorContainer, {
21
- icon: icon,
16
+ icon: /*#__PURE__*/React.createElement(AIIconLoading, {
17
+ label: "AI",
18
+ size: "small",
19
+ testId: `${testId}-loading-icon`
20
+ }),
22
21
  content: /*#__PURE__*/React.createElement(Box, {
23
22
  testId: `${testId}-loading-message`
24
23
  }, /*#__PURE__*/React.createElement(FormattedMessage, messages.ai_summarizing)),
@@ -3,12 +3,18 @@ import { jsx } from '@emotion/react';
3
3
  import React from 'react';
4
4
  import AIStateLoading from './ai-state-loading';
5
5
  import AIStateDone from './ai-state-done';
6
+ import AIStateError from './ai-state-error';
6
7
  const AIStateIndicator = ({
7
8
  state,
8
9
  appearance = 'default',
9
10
  testId = 'ai-state-indicator'
10
11
  }) => {
11
12
  switch (state) {
13
+ case 'error':
14
+ return jsx(AIStateError, {
15
+ appearance: appearance,
16
+ testId: testId
17
+ });
12
18
  case 'loading':
13
19
  return jsx(AIStateLoading, {
14
20
  appearance: appearance,
@@ -31,7 +31,8 @@ const AISummaryBlockResolvedView = props => {
31
31
  });
32
32
  const {
33
33
  state: {
34
- content
34
+ content,
35
+ status
35
36
  },
36
37
  isSummarisedOnMount
37
38
  } = aiSummary;
@@ -85,6 +86,11 @@ const AISummaryBlockResolvedView = props => {
85
86
  items: combinedActions,
86
87
  appearance: "default",
87
88
  size: size
88
- }))));
89
+ }))), status === 'error' && /*#__PURE__*/React.createElement(Inline, {
90
+ grow: "fill"
91
+ }, /*#__PURE__*/React.createElement(AIStateIndicator, {
92
+ state: status,
93
+ testId: testId
94
+ })));
89
95
  };
90
96
  export default AISummaryBlockResolvedView;
@@ -7,7 +7,7 @@ import { useLinkWarningModal } from './LinkWarningModal/hooks/use-link-warning-m
7
7
  import LinkWarningModal from './LinkWarningModal';
8
8
  const PACKAGE_DATA = {
9
9
  packageName: "@atlaskit/smart-card",
10
- packageVersion: "26.48.5",
10
+ packageVersion: "0.0.0-development",
11
11
  componentName: 'linkUrl'
12
12
  };
13
13
  const Link = withLinkClickedEvent('a');
@@ -1,6 +1,8 @@
1
1
  export var CONTENT_URL_SECURITY_AND_PERMISSIONS = 'https://support.atlassian.com/confluence-cloud/docs/insert-links-and-anchors/#Smart-links';
2
2
  export var 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 var CONTENT_URL_AI = 'https://www.atlassian.com/trust/atlassian-intelligence';
4
+ export var CONTENT_URL_AI_TROUBLESHOOTING = 'https://support.atlassian.com/organization-administration/docs/troubleshooting-for-atlassian-intelligence/';
5
+
4
6
  /**
5
7
  * The alignment of Flexible UI component.
6
8
  */
@@ -30,6 +30,11 @@ export var messages = defineMessages({
30
30
  defaultMessage: 'Atlassian Intelligence is working...',
31
31
  description: 'Shown when AI summary is summarising the link resource content.'
32
32
  },
33
+ ai_summary_error_generic: {
34
+ id: 'fabric.linking.ai_summary_error_generic',
35
+ defaultMessage: "Atlassian Intelligence can't provide a response right now. Read more <a>in our support documentation</a>.",
36
+ description: 'Shown when AI summary is summarising the link resource content.'
37
+ },
33
38
  assigned_to: {
34
39
  id: 'fabric.linking.assigned_to',
35
40
  defaultMessage: 'Assigned to {context}',
@@ -15,7 +15,7 @@ export var ANALYTICS_CHANNEL = 'media';
15
15
  export var context = {
16
16
  componentName: 'smart-cards',
17
17
  packageName: "@atlaskit/smart-card",
18
- packageVersion: "26.48.5"
18
+ packageVersion: "0.0.0-development"
19
19
  };
20
20
  export var TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
21
21
  TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
@@ -11,7 +11,7 @@ var AIIndicatorContainer = function AIIndicatorContainer(_ref) {
11
11
  content = _ref.content,
12
12
  testId = _ref.testId;
13
13
  return /*#__PURE__*/React.createElement(Inline, {
14
- alignBlock: "center",
14
+ alignBlock: "start",
15
15
  alignInline: "start",
16
16
  space: "space.050",
17
17
  xcss: contentStyles,
@@ -0,0 +1,47 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import React from 'react';
3
+ import { FormattedMessage } from 'react-intl-next';
4
+ import ErrorIcon from '@atlaskit/icon/glyph/error';
5
+ import { Box, xcss } from '@atlaskit/primitives';
6
+ import { messages } from '../../../../../../messages';
7
+ import AIIndicatorContainer from './ai-indicator-container';
8
+ import AILearnMoreAnchor from './ai-learn-more-anchor';
9
+ import { CONTENT_URL_AI_TROUBLESHOOTING } from '../../../../../../constants';
10
+ var contentStyles = xcss({
11
+ color: 'color.text.subtle',
12
+ fontSize: '11px',
13
+ fontStyle: 'normal',
14
+ fontWeight: '400',
15
+ lineHeight: '14px'
16
+ });
17
+ var AIStateError = function AIStateError(_ref) {
18
+ var appearance = _ref.appearance,
19
+ testId = _ref.testId;
20
+ switch (appearance) {
21
+ case 'icon-only':
22
+ return null;
23
+ default:
24
+ return /*#__PURE__*/React.createElement(AIIndicatorContainer, {
25
+ icon: /*#__PURE__*/React.createElement(ErrorIcon, {
26
+ primaryColor: "var(--ds-icon-danger, #C9372C)",
27
+ label: "AI",
28
+ size: "small",
29
+ testId: "".concat(testId, "-error-icon")
30
+ }),
31
+ content: /*#__PURE__*/React.createElement(Box, {
32
+ testId: "".concat(testId, "-error-message"),
33
+ xcss: contentStyles
34
+ }, /*#__PURE__*/React.createElement(FormattedMessage, _extends({}, messages.ai_summary_error_generic, {
35
+ values: {
36
+ a: function a(chunks) {
37
+ return /*#__PURE__*/React.createElement(AILearnMoreAnchor, {
38
+ href: CONTENT_URL_AI_TROUBLESHOOTING
39
+ }, chunks);
40
+ }
41
+ }
42
+ }))),
43
+ testId: "".concat(testId, "-error")
44
+ });
45
+ }
46
+ };
47
+ export default AIStateError;
@@ -7,17 +7,16 @@ import AIIndicatorContainer from './ai-indicator-container';
7
7
  var AIStateLoading = function AIStateLoading(_ref) {
8
8
  var appearance = _ref.appearance,
9
9
  testId = _ref.testId;
10
- var icon = /*#__PURE__*/React.createElement(AIIconLoading, {
11
- label: "AI",
12
- size: "small",
13
- testId: "".concat(testId, "-loading-icon")
14
- });
15
10
  switch (appearance) {
16
11
  case 'icon-only':
17
- return icon;
12
+ return null;
18
13
  default:
19
14
  return /*#__PURE__*/React.createElement(AIIndicatorContainer, {
20
- icon: icon,
15
+ icon: /*#__PURE__*/React.createElement(AIIconLoading, {
16
+ label: "AI",
17
+ size: "small",
18
+ testId: "".concat(testId, "-loading-icon")
19
+ }),
21
20
  content: /*#__PURE__*/React.createElement(Box, {
22
21
  testId: "".concat(testId, "-loading-message")
23
22
  }, /*#__PURE__*/React.createElement(FormattedMessage, messages.ai_summarizing)),
@@ -3,6 +3,7 @@ import { jsx } from '@emotion/react';
3
3
  import React from 'react';
4
4
  import AIStateLoading from './ai-state-loading';
5
5
  import AIStateDone from './ai-state-done';
6
+ import AIStateError from './ai-state-error';
6
7
  var AIStateIndicator = function AIStateIndicator(_ref) {
7
8
  var state = _ref.state,
8
9
  _ref$appearance = _ref.appearance,
@@ -10,6 +11,11 @@ var AIStateIndicator = function AIStateIndicator(_ref) {
10
11
  _ref$testId = _ref.testId,
11
12
  testId = _ref$testId === void 0 ? 'ai-state-indicator' : _ref$testId;
12
13
  switch (state) {
14
+ case 'error':
15
+ return jsx(AIStateError, {
16
+ appearance: appearance,
17
+ testId: testId
18
+ });
13
19
  case 'loading':
14
20
  return jsx(AIStateLoading, {
15
21
  appearance: appearance,
@@ -34,7 +34,9 @@ var AISummaryBlockResolvedView = function AISummaryBlockResolvedView(props) {
34
34
  var aiSummary = useAISummary({
35
35
  url: url
36
36
  });
37
- var content = aiSummary.state.content,
37
+ var _aiSummary$state = aiSummary.state,
38
+ content = _aiSummary$state.content,
39
+ status = _aiSummary$state.status,
38
40
  isSummarisedOnMount = aiSummary.isSummarisedOnMount;
39
41
  var onAIActionClick = useCallback(function () {
40
42
  setAIState('loading');
@@ -86,6 +88,11 @@ var AISummaryBlockResolvedView = function AISummaryBlockResolvedView(props) {
86
88
  items: combinedActions,
87
89
  appearance: "default",
88
90
  size: size
89
- }))));
91
+ }))), status === 'error' && /*#__PURE__*/React.createElement(Inline, {
92
+ grow: "fill"
93
+ }, /*#__PURE__*/React.createElement(AIStateIndicator, {
94
+ state: status,
95
+ testId: testId
96
+ })));
90
97
  };
91
98
  export default AISummaryBlockResolvedView;
@@ -10,7 +10,7 @@ import { useLinkWarningModal } from './LinkWarningModal/hooks/use-link-warning-m
10
10
  import LinkWarningModal from './LinkWarningModal';
11
11
  var PACKAGE_DATA = {
12
12
  packageName: "@atlaskit/smart-card",
13
- packageVersion: "26.48.5",
13
+ packageVersion: "0.0.0-development",
14
14
  componentName: 'linkUrl'
15
15
  };
16
16
  var Link = withLinkClickedEvent('a');
@@ -1,6 +1,7 @@
1
1
  export declare const CONTENT_URL_SECURITY_AND_PERMISSIONS = "https://support.atlassian.com/confluence-cloud/docs/insert-links-and-anchors/#Smart-links";
2
2
  export declare 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 declare const CONTENT_URL_AI = "https://www.atlassian.com/trust/atlassian-intelligence";
4
+ export declare const CONTENT_URL_AI_TROUBLESHOOTING = "https://support.atlassian.com/organization-administration/docs/troubleshooting-for-atlassian-intelligence/";
4
5
  /**
5
6
  * The alignment of Flexible UI component.
6
7
  */
@@ -1,6 +1,6 @@
1
1
  import { MessageDescriptor } from 'react-intl-next';
2
2
  export type RequestAccessMessageKey = 'click_to_join' | 'click_to_join_description' | 'forbidden_description' | 'request_access' | 'request_access_description' | 'request_access_pending' | 'request_access_pending_title' | 'request_access_pending_description' | 'request_denied_description' | 'default_no_access_title' | 'direct_access_title' | 'direct_access_description' | 'direct_access' | 'access_exists_description' | 'not_found_description' | 'not_found_title';
3
- export type MessageKey = 'assigned_to' | 'ai_summarize' | 'ai_summarized' | 'ai_summarized_info' | 'ai_summarizing' | 'cannot_find_link' | 'connect_link_account_card' | 'connect_link_account_card_name' | 'connect_link_account_card_description' | 'connect_unauthorised_account_action' | 'connect_unauthorised_account_description' | 'connect_unauthorised_account_description_no_provider' | 'continue' | 'copy_url_to_clipboard' | 'could_not_load_link' | 'download' | 'follow' | 'go_back' | 'invalid_permissions' | 'invalid_permissions_description' | 'join_to_view' | 'connect_link_account' | 'created_by' | 'created_on_relative' | 'created_on_absolute' | 'check_this_link' | 'delete' | 'edit' | 'learn_more_about_smart_links' | 'learn_more_about_connecting_account' | 'loading' | 'link_safety_warning_message' | 'modified_by' | 'modified_on_relative' | 'modified_on_absolute' | 'more_actions' | 'not_found_title' | 'not_found_description' | 'open_issue_in_jira' | 'open_link_in_a_new_tab' | 'owned_by' | 'preview_improved' | 'preview_close' | 'preview_max_size' | 'preview_min_size' | 'priority_blocker' | 'priority_critical' | 'priority_high' | 'priority_highest' | 'priority_low' | 'priority_lowest' | 'priority_major' | 'priority_medium' | 'priority_minor' | 'priority_trivial' | 'priority_undefined' | 'forbidden_access' | 'pending_request' | 'read_time' | 'restricted_link' | 'request_access_to_view' | 'request_denied' | 'sent_on_relative' | 'sent_on_absolute' | 'status_change_load_error' | 'status_change_permission_error' | 'status_change_update_error' | 'try_again' | 'try_another_account' | 'unauthorised_account_description' | 'unauthorised_account_description_no_provider' | 'unauthorised_account_name' | 'unauthorised_account_name_no_provider' | 'unassigned' | 'unfollow' | 'view' | 'viewIn' | 'viewOriginal' | 'actions' | 'add_account' | 'cancel' | 'close' | 'connect_to' | 'connect_account_description' | 'retry' | 'save' | 'unlink_account' | RequestAccessMessageKey | 'related_work_items_not_found' | 'last_mentioned_in' | 'related' | 'generic_error_message';
3
+ export type MessageKey = 'assigned_to' | 'ai_summarize' | 'ai_summarized' | 'ai_summarized_info' | 'ai_summarizing' | 'ai_summary_error_generic' | 'cannot_find_link' | 'connect_link_account_card' | 'connect_link_account_card_name' | 'connect_link_account_card_description' | 'connect_unauthorised_account_action' | 'connect_unauthorised_account_description' | 'connect_unauthorised_account_description_no_provider' | 'continue' | 'copy_url_to_clipboard' | 'could_not_load_link' | 'download' | 'follow' | 'go_back' | 'invalid_permissions' | 'invalid_permissions_description' | 'join_to_view' | 'connect_link_account' | 'created_by' | 'created_on_relative' | 'created_on_absolute' | 'check_this_link' | 'delete' | 'edit' | 'learn_more_about_smart_links' | 'learn_more_about_connecting_account' | 'loading' | 'link_safety_warning_message' | 'modified_by' | 'modified_on_relative' | 'modified_on_absolute' | 'more_actions' | 'not_found_title' | 'not_found_description' | 'open_issue_in_jira' | 'open_link_in_a_new_tab' | 'owned_by' | 'preview_improved' | 'preview_close' | 'preview_max_size' | 'preview_min_size' | 'priority_blocker' | 'priority_critical' | 'priority_high' | 'priority_highest' | 'priority_low' | 'priority_lowest' | 'priority_major' | 'priority_medium' | 'priority_minor' | 'priority_trivial' | 'priority_undefined' | 'forbidden_access' | 'pending_request' | 'read_time' | 'restricted_link' | 'request_access_to_view' | 'request_denied' | 'sent_on_relative' | 'sent_on_absolute' | 'status_change_load_error' | 'status_change_permission_error' | 'status_change_update_error' | 'try_again' | 'try_another_account' | 'unauthorised_account_description' | 'unauthorised_account_description_no_provider' | 'unauthorised_account_name' | 'unauthorised_account_name_no_provider' | 'unassigned' | 'unfollow' | 'view' | 'viewIn' | 'viewOriginal' | 'actions' | 'add_account' | 'cancel' | 'close' | 'connect_to' | 'connect_account_description' | 'retry' | 'save' | 'unlink_account' | RequestAccessMessageKey | 'related_work_items_not_found' | 'last_mentioned_in' | 'related' | 'generic_error_message';
4
4
  type Messages = {
5
5
  [K in MessageKey]: MessageDescriptor;
6
6
  };
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { AIStateIndicatorProps } from './types';
3
+ declare const AIStateError: React.FC<Partial<AIStateIndicatorProps>>;
4
+ export default AIStateError;
@@ -1,6 +1,7 @@
1
1
  export declare const CONTENT_URL_SECURITY_AND_PERMISSIONS = "https://support.atlassian.com/confluence-cloud/docs/insert-links-and-anchors/#Smart-links";
2
2
  export declare 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 declare const CONTENT_URL_AI = "https://www.atlassian.com/trust/atlassian-intelligence";
4
+ export declare const CONTENT_URL_AI_TROUBLESHOOTING = "https://support.atlassian.com/organization-administration/docs/troubleshooting-for-atlassian-intelligence/";
4
5
  /**
5
6
  * The alignment of Flexible UI component.
6
7
  */
@@ -1,6 +1,6 @@
1
1
  import { MessageDescriptor } from 'react-intl-next';
2
2
  export type RequestAccessMessageKey = 'click_to_join' | 'click_to_join_description' | 'forbidden_description' | 'request_access' | 'request_access_description' | 'request_access_pending' | 'request_access_pending_title' | 'request_access_pending_description' | 'request_denied_description' | 'default_no_access_title' | 'direct_access_title' | 'direct_access_description' | 'direct_access' | 'access_exists_description' | 'not_found_description' | 'not_found_title';
3
- export type MessageKey = 'assigned_to' | 'ai_summarize' | 'ai_summarized' | 'ai_summarized_info' | 'ai_summarizing' | 'cannot_find_link' | 'connect_link_account_card' | 'connect_link_account_card_name' | 'connect_link_account_card_description' | 'connect_unauthorised_account_action' | 'connect_unauthorised_account_description' | 'connect_unauthorised_account_description_no_provider' | 'continue' | 'copy_url_to_clipboard' | 'could_not_load_link' | 'download' | 'follow' | 'go_back' | 'invalid_permissions' | 'invalid_permissions_description' | 'join_to_view' | 'connect_link_account' | 'created_by' | 'created_on_relative' | 'created_on_absolute' | 'check_this_link' | 'delete' | 'edit' | 'learn_more_about_smart_links' | 'learn_more_about_connecting_account' | 'loading' | 'link_safety_warning_message' | 'modified_by' | 'modified_on_relative' | 'modified_on_absolute' | 'more_actions' | 'not_found_title' | 'not_found_description' | 'open_issue_in_jira' | 'open_link_in_a_new_tab' | 'owned_by' | 'preview_improved' | 'preview_close' | 'preview_max_size' | 'preview_min_size' | 'priority_blocker' | 'priority_critical' | 'priority_high' | 'priority_highest' | 'priority_low' | 'priority_lowest' | 'priority_major' | 'priority_medium' | 'priority_minor' | 'priority_trivial' | 'priority_undefined' | 'forbidden_access' | 'pending_request' | 'read_time' | 'restricted_link' | 'request_access_to_view' | 'request_denied' | 'sent_on_relative' | 'sent_on_absolute' | 'status_change_load_error' | 'status_change_permission_error' | 'status_change_update_error' | 'try_again' | 'try_another_account' | 'unauthorised_account_description' | 'unauthorised_account_description_no_provider' | 'unauthorised_account_name' | 'unauthorised_account_name_no_provider' | 'unassigned' | 'unfollow' | 'view' | 'viewIn' | 'viewOriginal' | 'actions' | 'add_account' | 'cancel' | 'close' | 'connect_to' | 'connect_account_description' | 'retry' | 'save' | 'unlink_account' | RequestAccessMessageKey | 'related_work_items_not_found' | 'last_mentioned_in' | 'related' | 'generic_error_message';
3
+ export type MessageKey = 'assigned_to' | 'ai_summarize' | 'ai_summarized' | 'ai_summarized_info' | 'ai_summarizing' | 'ai_summary_error_generic' | 'cannot_find_link' | 'connect_link_account_card' | 'connect_link_account_card_name' | 'connect_link_account_card_description' | 'connect_unauthorised_account_action' | 'connect_unauthorised_account_description' | 'connect_unauthorised_account_description_no_provider' | 'continue' | 'copy_url_to_clipboard' | 'could_not_load_link' | 'download' | 'follow' | 'go_back' | 'invalid_permissions' | 'invalid_permissions_description' | 'join_to_view' | 'connect_link_account' | 'created_by' | 'created_on_relative' | 'created_on_absolute' | 'check_this_link' | 'delete' | 'edit' | 'learn_more_about_smart_links' | 'learn_more_about_connecting_account' | 'loading' | 'link_safety_warning_message' | 'modified_by' | 'modified_on_relative' | 'modified_on_absolute' | 'more_actions' | 'not_found_title' | 'not_found_description' | 'open_issue_in_jira' | 'open_link_in_a_new_tab' | 'owned_by' | 'preview_improved' | 'preview_close' | 'preview_max_size' | 'preview_min_size' | 'priority_blocker' | 'priority_critical' | 'priority_high' | 'priority_highest' | 'priority_low' | 'priority_lowest' | 'priority_major' | 'priority_medium' | 'priority_minor' | 'priority_trivial' | 'priority_undefined' | 'forbidden_access' | 'pending_request' | 'read_time' | 'restricted_link' | 'request_access_to_view' | 'request_denied' | 'sent_on_relative' | 'sent_on_absolute' | 'status_change_load_error' | 'status_change_permission_error' | 'status_change_update_error' | 'try_again' | 'try_another_account' | 'unauthorised_account_description' | 'unauthorised_account_description_no_provider' | 'unauthorised_account_name' | 'unauthorised_account_name_no_provider' | 'unassigned' | 'unfollow' | 'view' | 'viewIn' | 'viewOriginal' | 'actions' | 'add_account' | 'cancel' | 'close' | 'connect_to' | 'connect_account_description' | 'retry' | 'save' | 'unlink_account' | RequestAccessMessageKey | 'related_work_items_not_found' | 'last_mentioned_in' | 'related' | 'generic_error_message';
4
4
  type Messages = {
5
5
  [K in MessageKey]: MessageDescriptor;
6
6
  };
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { AIStateIndicatorProps } from './types';
3
+ declare const AIStateError: React.FC<Partial<AIStateIndicatorProps>>;
4
+ export default AIStateError;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/smart-card",
3
- "version": "26.48.5",
3
+ "version": "26.48.7",
4
4
  "description": "Smart card component",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -48,10 +48,10 @@
48
48
  "@atlaskit/outbound-auth-flow-client": "^3.4.0",
49
49
  "@atlaskit/platform-feature-flags": "^0.2.1",
50
50
  "@atlaskit/popup": "^1.13.0",
51
- "@atlaskit/primitives": "^3.1.0",
51
+ "@atlaskit/primitives": "^4.0.0",
52
52
  "@atlaskit/spinner": "^16.0.0",
53
53
  "@atlaskit/theme": "^12.6.0",
54
- "@atlaskit/tokens": "^1.38.0",
54
+ "@atlaskit/tokens": "^1.39.0",
55
55
  "@atlaskit/tooltip": "^18.1.0",
56
56
  "@atlaskit/ufo": "^0.2.0",
57
57
  "@babel/runtime": "^7.0.0",