@atlaskit/smart-card 26.34.0 → 26.34.2

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 (62) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/cjs/utils/analytics/analytics.js +1 -1
  3. package/dist/cjs/utils/mocks.js +6 -1
  4. package/dist/cjs/view/BlockCard/actions/flexible/ForbiddenAction.js +4 -5
  5. package/dist/cjs/view/BlockCard/index.js +5 -2
  6. package/dist/cjs/view/BlockCard/views/flexible/FlexibleForbiddenView.js +43 -17
  7. package/dist/cjs/view/BlockCard/views/flexible/FlexibleForbiddenViewOld.js +103 -0
  8. package/dist/cjs/view/BlockCard/views/flexible/styled.js +4 -3
  9. package/dist/cjs/view/EmbedCard/index.js +15 -1
  10. package/dist/cjs/view/EmbedCard/views/UnauthorisedView.js +4 -0
  11. package/dist/cjs/view/EmbedCard/views/forbidden-view/index.js +4 -4
  12. package/dist/cjs/view/EmbedCard/views/unauthorized-view/index.js +100 -0
  13. package/dist/cjs/view/EmbedCard/views/unauthorized-view/types.js +5 -0
  14. package/dist/cjs/view/HoverCard/components/views/forbidden/index.js +2 -1
  15. package/dist/cjs/view/LinkUrl/index.js +1 -1
  16. package/dist/es2019/utils/analytics/analytics.js +1 -1
  17. package/dist/es2019/utils/mocks.js +5 -0
  18. package/dist/es2019/view/BlockCard/actions/flexible/ForbiddenAction.js +4 -5
  19. package/dist/es2019/view/BlockCard/index.js +5 -2
  20. package/dist/es2019/view/BlockCard/views/flexible/FlexibleForbiddenView.js +44 -17
  21. package/dist/es2019/view/BlockCard/views/flexible/FlexibleForbiddenViewOld.js +95 -0
  22. package/dist/es2019/view/BlockCard/views/flexible/styled.js +4 -1
  23. package/dist/es2019/view/EmbedCard/index.js +15 -1
  24. package/dist/es2019/view/EmbedCard/views/UnauthorisedView.js +4 -0
  25. package/dist/es2019/view/EmbedCard/views/forbidden-view/index.js +3 -3
  26. package/dist/es2019/view/EmbedCard/views/unauthorized-view/index.js +88 -0
  27. package/dist/es2019/view/EmbedCard/views/unauthorized-view/types.js +1 -0
  28. package/dist/es2019/view/HoverCard/components/views/forbidden/index.js +2 -1
  29. package/dist/es2019/view/LinkUrl/index.js +1 -1
  30. package/dist/esm/utils/analytics/analytics.js +1 -1
  31. package/dist/esm/utils/mocks.js +5 -0
  32. package/dist/esm/view/BlockCard/actions/flexible/ForbiddenAction.js +4 -5
  33. package/dist/esm/view/BlockCard/index.js +5 -2
  34. package/dist/esm/view/BlockCard/views/flexible/FlexibleForbiddenView.js +43 -17
  35. package/dist/esm/view/BlockCard/views/flexible/FlexibleForbiddenViewOld.js +94 -0
  36. package/dist/esm/view/BlockCard/views/flexible/styled.js +3 -2
  37. package/dist/esm/view/EmbedCard/index.js +15 -1
  38. package/dist/esm/view/EmbedCard/views/UnauthorisedView.js +4 -0
  39. package/dist/esm/view/EmbedCard/views/forbidden-view/index.js +4 -4
  40. package/dist/esm/view/EmbedCard/views/unauthorized-view/index.js +90 -0
  41. package/dist/esm/view/EmbedCard/views/unauthorized-view/types.js +1 -0
  42. package/dist/esm/view/HoverCard/components/views/forbidden/index.js +2 -1
  43. package/dist/esm/view/LinkUrl/index.js +1 -1
  44. package/dist/types/utils/mocks.d.ts +5 -0
  45. package/dist/types/view/BlockCard/actions/flexible/ForbiddenAction.d.ts +2 -1
  46. package/dist/types/view/BlockCard/views/flexible/FlexibleForbiddenViewOld.d.ts +8 -0
  47. package/dist/types/view/BlockCard/views/flexible/styled.d.ts +1 -0
  48. package/dist/types/view/EmbedCard/views/UnauthorisedView.d.ts +4 -0
  49. package/dist/types/view/EmbedCard/views/forbidden-view/types.d.ts +1 -1
  50. package/dist/types/view/EmbedCard/views/unauthorized-view/index.d.ts +4 -0
  51. package/dist/types/view/EmbedCard/views/unauthorized-view/types.d.ts +9 -0
  52. package/dist/types/view/FlexibleCard/components/types.d.ts +2 -1
  53. package/dist/types-ts4.5/utils/mocks.d.ts +5 -0
  54. package/dist/types-ts4.5/view/BlockCard/actions/flexible/ForbiddenAction.d.ts +2 -1
  55. package/dist/types-ts4.5/view/BlockCard/views/flexible/FlexibleForbiddenViewOld.d.ts +8 -0
  56. package/dist/types-ts4.5/view/BlockCard/views/flexible/styled.d.ts +1 -0
  57. package/dist/types-ts4.5/view/EmbedCard/views/UnauthorisedView.d.ts +4 -0
  58. package/dist/types-ts4.5/view/EmbedCard/views/forbidden-view/types.d.ts +1 -1
  59. package/dist/types-ts4.5/view/EmbedCard/views/unauthorized-view/index.d.ts +4 -0
  60. package/dist/types-ts4.5/view/EmbedCard/views/unauthorized-view/types.d.ts +9 -0
  61. package/dist/types-ts4.5/view/FlexibleCard/components/types.d.ts +2 -1
  62. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @atlaskit/smart-card
2
2
 
3
+ ## 26.34.2
4
+
5
+ ### Patch Changes
6
+
7
+ - [#41147](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/41147) [`38e8635bbf9`](https://bitbucket.org/atlassian/atlassian-frontend/commits/38e8635bbf9) - [ux] Update block card view styling behind cross-join feature flag
8
+
9
+ ## 26.34.1
10
+
11
+ ### Patch Changes
12
+
13
+ - [#41295](https://bitbucket.org/atlassian/atlassian-frontend/pull-requests/41295) [`d18dc7aba6d`](https://bitbucket.org/atlassian/atlassian-frontend/commits/d18dc7aba6d) - [ux] Update embed unauth view styling (behind feature flag)
14
+
3
15
  ## 26.34.0
4
16
 
5
17
  ### Minor Changes
@@ -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.34.0"
25
+ packageVersion: "26.34.2"
26
26
  };
27
27
  var TrackQuickActionType = exports.TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
28
28
  TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
@@ -4,7 +4,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.waitFor = exports.mocks = exports.mockContext = exports.mockByUrl = exports.mockAnalytics = exports.fakeResponse = exports.fakeFactory = void 0;
7
+ exports.waitFor = exports.mocks = exports.mockGenerator = exports.mockContext = exports.mockByUrl = exports.mockAnalytics = exports.fakeResponse = exports.fakeFactory = void 0;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
9
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
10
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
@@ -23,6 +23,11 @@ var mockContext = exports.mockContext = {
23
23
  atlassian: 'https://schema.atlassian.com/ns/vocabulary#',
24
24
  schema: 'http://schema.org/'
25
25
  };
26
+ var mockGenerator = exports.mockGenerator = {
27
+ '@type': 'Application',
28
+ '@id': 'https://www.atlassian.com/#Jira',
29
+ name: 'Jira'
30
+ };
26
31
  var mockByUrl = exports.mockByUrl = function mockByUrl(url) {
27
32
  return {
28
33
  meta: {
@@ -18,15 +18,14 @@ var _messages = require("../../../../messages");
18
18
  * @param content is a message key for a message to be displayed in the action
19
19
  * @param context is a variable for a message in case a message contains a placeholder
20
20
  */
21
- var ForbiddenAction = exports.ForbiddenAction = function ForbiddenAction(onClick, content, context) {
21
+ var ForbiddenAction = exports.ForbiddenAction = function ForbiddenAction(onClick, content, context, isDisabled) {
22
22
  return {
23
23
  name: _constants.ActionName.CustomAction,
24
24
  content: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, (0, _extends2.default)({}, _messages.messages[content], {
25
- values: {
26
- context: context
27
- }
25
+ values: context
28
26
  })),
29
27
  onClick: onClick,
30
- testId: 'smart-action-connect-other-account'
28
+ testId: 'smart-action-connect-other-account',
29
+ isDisabled: isDisabled
31
30
  };
32
31
  };
@@ -77,8 +77,9 @@ var _ErroredView = require("./views/ErroredView");
77
77
  var _FlexibleResolvedView = _interopRequireDefault(require("./views/flexible/FlexibleResolvedView"));
78
78
  var _FlexibleUnauthorisedView = _interopRequireDefault(require("./views/flexible/FlexibleUnauthorisedView"));
79
79
  var _FlexibleNotFoundView = _interopRequireDefault(require("./views/flexible/FlexibleNotFoundView"));
80
- var _FlexibleErroredView = _interopRequireDefault(require("./views/flexible/FlexibleErroredView"));
81
80
  var _FlexibleForbiddenView = _interopRequireDefault(require("./views/flexible/FlexibleForbiddenView"));
81
+ var _FlexibleForbiddenViewOld = _interopRequireDefault(require("./views/flexible/FlexibleForbiddenViewOld"));
82
+ var _FlexibleErroredView = _interopRequireDefault(require("./views/flexible/FlexibleErroredView"));
82
83
  var _react = require("@emotion/react");
83
84
  var _handlers = require("./utils/handlers");
84
85
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
@@ -156,7 +157,9 @@ var BlockCard = exports.BlockCard = function BlockCard(_ref) {
156
157
  onAuthorize: handleAuthorize
157
158
  }));
158
159
  case 'forbidden':
159
- return (0, _react.jsx)(_FlexibleForbiddenView.default, (0, _extends2.default)({}, flexibleBlockCardProps, {
160
+ return (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.cross-join') ? (0, _react.jsx)(_FlexibleForbiddenView.default, (0, _extends2.default)({}, flexibleBlockCardProps, {
161
+ onAuthorize: handleAuthorize
162
+ })) : (0, _react.jsx)(_FlexibleForbiddenViewOld.default, (0, _extends2.default)({}, flexibleBlockCardProps, {
160
163
  onAuthorize: handleAuthorize
161
164
  }));
162
165
  case 'not_found':
@@ -10,18 +10,21 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
10
10
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
11
  var _react = _interopRequireWildcard(require("react"));
12
12
  var _FlexibleCard = _interopRequireDefault(require("../../../FlexibleCard"));
13
- var _titleBlock = _interopRequireDefault(require("../../../FlexibleCard/components/blocks/title-block"));
14
13
  var _blocks = require("../../../FlexibleCard/components/blocks");
15
14
  var _colors = require("@atlaskit/theme/colors");
16
15
  var _messages = require("../../../../messages");
17
- var _lockFilled = _interopRequireDefault(require("@atlaskit/icon/glyph/lock-filled"));
16
+ var _lock = _interopRequireDefault(require("@atlaskit/icon/glyph/lock"));
18
17
  var _footer = _interopRequireDefault(require("../../components/flexible/footer"));
19
18
  var _ForbiddenAction = require("../../actions/flexible/ForbiddenAction");
20
19
  var _text = _interopRequireDefault(require("../../../FlexibleCard/components/elements/text"));
20
+ var _constants = require("../../../../constants");
21
21
  var _jsonld = require("../../../../utils/jsonld");
22
22
  var _linkExtractors = require("@atlaskit/link-extractors");
23
- var _context = require("../../../../extractors/common/context");
24
23
  var _withFlexibleUIBlockCardStyle = require("./utils/withFlexibleUIBlockCardStyle");
24
+ var _extractAccessContext = require("../../../../extractors/common/context/extractAccessContext");
25
+ var _reactIntlNext = require("react-intl-next");
26
+ var _styled = require("./styled");
27
+ var _extractHostname = _interopRequireDefault(require("../../../../extractors/common/hostname/extractHostname"));
25
28
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
26
29
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
30
  /**
@@ -47,22 +50,34 @@ var FlexibleForbiddenView = function FlexibleForbiddenView(_ref) {
47
50
  var cardMetadata = (_details$meta = details === null || details === void 0 ? void 0 : details.meta) !== null && _details$meta !== void 0 ? _details$meta : (0, _jsonld.getForbiddenJsonLd)().meta;
48
51
  var provider = (0, _linkExtractors.extractProvider)(details === null || details === void 0 ? void 0 : details.data);
49
52
  var providerName = (provider === null || provider === void 0 ? void 0 : provider.text) || '';
50
- var requestAccessContext = (0, _context.extractRequestAccessContext)({
51
- jsonLd: cardMetadata,
52
- url: url,
53
- context: providerName
54
- });
53
+ var messageContext = (0, _react.useMemo)(function () {
54
+ var hostname = /*#__PURE__*/_react.default.createElement("b", null, (0, _extractHostname.default)(url));
55
+ return {
56
+ product: providerName,
57
+ hostname: hostname
58
+ };
59
+ }, [providerName, url]);
60
+ var requestAccessContext = (0, _react.useMemo)(function () {
61
+ return (0, _extractAccessContext.extractRequestAccessContextImproved)({
62
+ jsonLd: cardMetadata,
63
+ url: url,
64
+ product: providerName
65
+ });
66
+ }, [cardMetadata, providerName, url]);
55
67
  var descriptiveMessageKey = requestAccessContext && requestAccessContext.descriptiveMessageKey ? requestAccessContext.descriptiveMessageKey : 'invalid_permissions_description';
68
+ var _ref2 = requestAccessContext !== null && requestAccessContext !== void 0 ? requestAccessContext : {},
69
+ titleMessageKey = _ref2.titleMessageKey,
70
+ buttonDisabled = _ref2.buttonDisabled;
56
71
  var actions = (0, _react.useMemo)(function () {
57
72
  var actionFromAccessContext = [];
58
73
  var tryAnotherAccountAction = onAuthorize ? [(0, _ForbiddenAction.ForbiddenAction)(onAuthorize, 'try_another_account')] : [];
59
74
  if (requestAccessContext) {
60
75
  var action = requestAccessContext.action,
61
76
  callToActionMessageKey = requestAccessContext.callToActionMessageKey;
62
- actionFromAccessContext = action && callToActionMessageKey ? [(0, _ForbiddenAction.ForbiddenAction)(action.promise, callToActionMessageKey, providerName)] : [];
77
+ actionFromAccessContext = action && callToActionMessageKey ? [(0, _ForbiddenAction.ForbiddenAction)(action.promise, callToActionMessageKey, messageContext, buttonDisabled)] : [];
63
78
  }
64
79
  return [].concat(tryAnotherAccountAction, (0, _toConsumableArray2.default)(actionFromAccessContext));
65
- }, [onAuthorize, requestAccessContext, providerName]);
80
+ }, [onAuthorize, requestAccessContext, messageContext, buttonDisabled]);
66
81
  return /*#__PURE__*/_react.default.createElement(_FlexibleCard.default, {
67
82
  appearance: "block",
68
83
  cardState: cardState,
@@ -71,25 +86,36 @@ var FlexibleForbiddenView = function FlexibleForbiddenView(_ref) {
71
86
  onError: onError,
72
87
  testId: testId,
73
88
  ui: {
74
- hideElevation: true
89
+ hideElevation: true,
90
+ size: _constants.SmartLinkSize.Medium
75
91
  },
76
92
  url: url
77
- }, /*#__PURE__*/_react.default.createElement(_titleBlock.default, (0, _extends2.default)({
93
+ }, titleMessageKey ? /*#__PURE__*/_react.default.createElement(_blocks.CustomBlock, {
94
+ overrideCss: _styled.forbiddenViewTitleStyle,
95
+ testId: "".concat(testId, "-title")
96
+ }, /*#__PURE__*/_react.default.createElement("a", {
97
+ target: anchorTarget,
98
+ href: url
99
+ }, /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, (0, _extends2.default)({}, _messages.messages[titleMessageKey], {
100
+ values: messageContext
101
+ })))) : /*#__PURE__*/_react.default.createElement(_blocks.TitleBlock, (0, _extends2.default)({
78
102
  hideRetry: true,
79
103
  anchorTarget: anchorTarget
80
- }, titleBlockProps)), /*#__PURE__*/_react.default.createElement(_blocks.CustomBlock, null, /*#__PURE__*/_react.default.createElement(_lockFilled.default, {
104
+ }, titleBlockProps)), /*#__PURE__*/_react.default.createElement(_blocks.CustomBlock, null, /*#__PURE__*/_react.default.createElement(_lock.default, {
81
105
  label: "forbidden-lock-icon",
82
106
  size: "small",
83
107
  primaryColor: "var(--ds-icon-danger, ".concat(_colors.R300, ")"),
84
108
  testId: "".concat(testId, "-lock-icon")
85
109
  }), /*#__PURE__*/_react.default.createElement(_text.default, {
110
+ maxLines: 2,
86
111
  message: {
87
112
  descriptor: _messages.messages[descriptiveMessageKey],
88
- values: {
89
- context: providerName
90
- }
113
+ values: messageContext
91
114
  }
92
- })), /*#__PURE__*/_react.default.createElement(_blocks.CustomBlock, null, /*#__PURE__*/_react.default.createElement(_footer.default, {
115
+ })), /*#__PURE__*/_react.default.createElement(_blocks.PreviewBlock, {
116
+ placement: _constants.MediaPlacement.Right,
117
+ ignoreContainerPadding: true
118
+ }), /*#__PURE__*/_react.default.createElement(_blocks.CustomBlock, null, /*#__PURE__*/_react.default.createElement(_footer.default, {
93
119
  actions: actions,
94
120
  status: status
95
121
  })));
@@ -0,0 +1,103 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
+ var _react = _interopRequireWildcard(require("react"));
12
+ var _FlexibleCard = _interopRequireDefault(require("../../../FlexibleCard"));
13
+ var _titleBlock = _interopRequireDefault(require("../../../FlexibleCard/components/blocks/title-block"));
14
+ var _blocks = require("../../../FlexibleCard/components/blocks");
15
+ var _colors = require("@atlaskit/theme/colors");
16
+ var _messages = require("../../../../messages");
17
+ var _lockFilled = _interopRequireDefault(require("@atlaskit/icon/glyph/lock-filled"));
18
+ var _footer = _interopRequireDefault(require("../../components/flexible/footer"));
19
+ var _ForbiddenAction = require("../../actions/flexible/ForbiddenAction");
20
+ var _text = _interopRequireDefault(require("../../../FlexibleCard/components/elements/text"));
21
+ var _jsonld = require("../../../../utils/jsonld");
22
+ var _linkExtractors = require("@atlaskit/link-extractors");
23
+ var _context = require("../../../../extractors/common/context");
24
+ var _withFlexibleUIBlockCardStyle = require("./utils/withFlexibleUIBlockCardStyle");
25
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
26
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
+ /**
28
+ * @private
29
+ * @deprecated {@link https://product-fabric.atlassian.net/browse/EDM-7977 Internal documentation for deprecation (no external access)}
30
+ * @deprecated Replaced by FlexibleForbiddenView
31
+ */
32
+ var FlexibleForbiddenView = function FlexibleForbiddenView(_ref) {
33
+ var _details$meta;
34
+ var anchorTarget = _ref.anchorTarget,
35
+ cardState = _ref.cardState,
36
+ onAuthorize = _ref.onAuthorize,
37
+ onClick = _ref.onClick,
38
+ onError = _ref.onError,
39
+ _ref$testId = _ref.testId,
40
+ testId = _ref$testId === void 0 ? 'smart-block-forbidden-view' : _ref$testId,
41
+ url = _ref.url,
42
+ titleBlockProps = _ref.titleBlockProps;
43
+ var status = cardState.status;
44
+ var details = cardState === null || cardState === void 0 ? void 0 : cardState.details;
45
+ var cardMetadata = (_details$meta = details === null || details === void 0 ? void 0 : details.meta) !== null && _details$meta !== void 0 ? _details$meta : (0, _jsonld.getForbiddenJsonLd)().meta;
46
+ var provider = (0, _linkExtractors.extractProvider)(details === null || details === void 0 ? void 0 : details.data);
47
+ var providerName = (provider === null || provider === void 0 ? void 0 : provider.text) || '';
48
+ var requestAccessContext = (0, _context.extractRequestAccessContext)({
49
+ jsonLd: cardMetadata,
50
+ url: url,
51
+ context: providerName
52
+ });
53
+ var descriptiveMessageKey = requestAccessContext && requestAccessContext.descriptiveMessageKey ? requestAccessContext.descriptiveMessageKey : 'invalid_permissions_description';
54
+ var actions = (0, _react.useMemo)(function () {
55
+ var actionFromAccessContext = [];
56
+ var tryAnotherAccountAction = onAuthorize ? [(0, _ForbiddenAction.ForbiddenAction)(onAuthorize, 'try_another_account')] : [];
57
+ if (requestAccessContext) {
58
+ var action = requestAccessContext.action,
59
+ callToActionMessageKey = requestAccessContext.callToActionMessageKey;
60
+ actionFromAccessContext = action && callToActionMessageKey ? [(0, _ForbiddenAction.ForbiddenAction)(action.promise, callToActionMessageKey, {
61
+ context: providerName
62
+ })] : [];
63
+ }
64
+ return [].concat(tryAnotherAccountAction, (0, _toConsumableArray2.default)(actionFromAccessContext));
65
+ }, [onAuthorize, requestAccessContext, providerName]);
66
+ return /*#__PURE__*/_react.default.createElement(_FlexibleCard.default, {
67
+ appearance: "block",
68
+ cardState: cardState,
69
+ onAuthorize: onAuthorize,
70
+ onClick: onClick,
71
+ onError: onError,
72
+ testId: testId,
73
+ ui: {
74
+ hideElevation: true
75
+ },
76
+ url: url
77
+ }, /*#__PURE__*/_react.default.createElement(_titleBlock.default, (0, _extends2.default)({
78
+ hideRetry: true,
79
+ anchorTarget: anchorTarget
80
+ }, titleBlockProps)), /*#__PURE__*/_react.default.createElement(_blocks.CustomBlock, null, /*#__PURE__*/_react.default.createElement(_lockFilled.default, {
81
+ label: "forbidden-lock-icon",
82
+ size: "small",
83
+ primaryColor: "var(--ds-icon-danger, ".concat(_colors.R300, ")"),
84
+ testId: "".concat(testId, "-lock-icon")
85
+ }), /*#__PURE__*/_react.default.createElement(_text.default, {
86
+ message: {
87
+ descriptor: _messages.messages[descriptiveMessageKey],
88
+ values: {
89
+ context: providerName
90
+ }
91
+ }
92
+ })), /*#__PURE__*/_react.default.createElement(_blocks.CustomBlock, null, /*#__PURE__*/_react.default.createElement(_footer.default, {
93
+ actions: actions,
94
+ status: status
95
+ })));
96
+ };
97
+
98
+ /**
99
+ * @private
100
+ * @deprecated {@link https://product-fabric.atlassian.net/browse/EDM-7977 Internal documentation for deprecation (no external access)}
101
+ * @deprecated Replaced by FlexibleForbiddenView
102
+ */
103
+ var _default = exports.default = (0, _withFlexibleUIBlockCardStyle.withFlexibleUIBlockCardStyle)(FlexibleForbiddenView);
@@ -4,17 +4,18 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.titleBlockCss = exports.metadataBlockCss = exports.footerBlockCss = exports.flexibleBlockCardStyle = void 0;
7
+ exports.titleBlockCss = exports.metadataBlockCss = exports.forbiddenViewTitleStyle = exports.footerBlockCss = exports.flexibleBlockCardStyle = void 0;
8
8
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
9
9
  var _token = require("../../../../utils/token");
10
10
  var _react = require("@emotion/react");
11
11
  var _colors = require("@atlaskit/theme/colors");
12
12
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
13
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
13
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
14
14
  // in editor prosemirror adds padding-left so we need to overwrite it
15
15
  var metadataBlockCss = exports.metadataBlockCss = (0, _react.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n /* primary element group */\n span[data-smart-element-avatar-group] {\n > ul {\n padding-left: 0px;\n }\n }\n [data-smart-element-group] {\n line-height: 1rem;\n }\n"])));
16
16
  var titleBlockCss = exports.titleBlockCss = (0, _react.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n ", "\n ", "\n"])), (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.enable-better-metadata_iojwg') ? "gap: 0.5em;" : "", (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.show-smart-links-refreshed-design') ? "[data-smart-element=\"Title\"] {\n font-weight: 600;\n }" : "");
17
17
  var footerBlockCss = exports.footerBlockCss = (0, _react.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n height: 1.5rem;\n\n .actions-button-group {\n button,\n button:hover,\n button:focus,\n button:active {\n font-size: 0.875rem;\n }\n }\n"])));
18
18
  var flexibleBlockCardElevationStyle = (0, _react.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n border-radius: 1.5px;\n box-shadow: ", ";\n margin: ", ";\n"])), _token.tokens.elevation, "var(--ds-space-025, 2px)");
19
19
  var refreshedFlexibleBlockCardStyle = (0, _react.css)(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2.default)(["\n & > div {\n border-radius: ", ";\n border: 1px solid ", ";\n }\n"])), "var(--ds-border-radius-200, 8px)", "var(--ds-border, ".concat(_colors.N40, ")"));
20
- var flexibleBlockCardStyle = exports.flexibleBlockCardStyle = (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.show-smart-links-refreshed-design') ? refreshedFlexibleBlockCardStyle : flexibleBlockCardElevationStyle;
20
+ var flexibleBlockCardStyle = exports.flexibleBlockCardStyle = (0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.show-smart-links-refreshed-design') ? refreshedFlexibleBlockCardStyle : flexibleBlockCardElevationStyle;
21
+ var forbiddenViewTitleStyle = exports.forbiddenViewTitleStyle = (0, _react.css)(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2.default)(["\n font-weight: 600;\n"])));
@@ -24,6 +24,7 @@ var _UnauthorisedView = require("./views/UnauthorisedView");
24
24
  var _ErroredView = require("./views/ErroredView");
25
25
  var _forbiddenView = _interopRequireDefault(require("./views/forbidden-view"));
26
26
  var _notFoundView = _interopRequireDefault(require("./views/not-found-view"));
27
+ var _unauthorizedView = _interopRequireDefault(require("./views/unauthorized-view"));
27
28
  var EmbedCard = exports.EmbedCard = /*#__PURE__*/_react.default.forwardRef(function (_ref, iframeRef) {
28
29
  var _details$meta, _forbiddenViewProps$c3;
29
30
  var url = _ref.url,
@@ -110,6 +111,19 @@ var EmbedCard = exports.EmbedCard = /*#__PURE__*/_react.default.forwardRef(funct
110
111
  });
111
112
  }
112
113
  var unauthorisedViewProps = (0, _embed.extractEmbedProps)(data, meta, platform);
114
+ if ((0, _platformFeatureFlags.getBooleanFF)('platform.linking-platform.smart-card.cross-join')) {
115
+ return /*#__PURE__*/_react.default.createElement(_unauthorizedView.default, {
116
+ analytics: analytics,
117
+ context: unauthorisedViewProps.context,
118
+ extensionKey: extensionKey,
119
+ inheritDimensions: inheritDimensions,
120
+ isSelected: isSelected,
121
+ onAuthorize: handleAuthorize,
122
+ onClick: handleFrameClick,
123
+ testId: testId,
124
+ url: unauthorisedViewProps.link
125
+ });
126
+ }
113
127
  return /*#__PURE__*/_react.default.createElement(_UnauthorisedView.EmbedCardUnauthorisedView, (0, _extends2.default)({}, unauthorisedViewProps, {
114
128
  isSelected: isSelected,
115
129
  onAuthorise: handleAuthorize,
@@ -149,7 +163,7 @@ var EmbedCard = exports.EmbedCard = /*#__PURE__*/_react.default.forwardRef(funct
149
163
  context: forbiddenViewProps.context,
150
164
  inheritDimensions: inheritDimensions,
151
165
  isSelected: isSelected,
152
- onAuthorise: handleAuthorize,
166
+ onAuthorize: handleAuthorize,
153
167
  onClick: handleFrameClick,
154
168
  accessContext: accessContext,
155
169
  url: forbiddenViewProps.link
@@ -15,6 +15,10 @@ var _UnauthorisedViewContent = _interopRequireDefault(require("../../common/Unau
15
15
  var _utils = require("../utils");
16
16
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
17
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
18
+ /**
19
+ * @deprecated {@link https://product-fabric.atlassian.net/browse/EDM-7977 Internal documentation for deprecation (no external access)}\
20
+ * @deprecated Replaced by unauthorized-view
21
+ */
18
22
  var EmbedCardUnauthorisedView = exports.EmbedCardUnauthorisedView = function EmbedCardUnauthorisedView(_ref) {
19
23
  var analytics = _ref.analytics,
20
24
  link = _ref.link,
@@ -16,12 +16,12 @@ var _messages = require("../../../../messages");
16
16
  var _intlUtils = require("../../../../utils/intl-utils");
17
17
  var _unresolvedView = _interopRequireDefault(require("../unresolved-view"));
18
18
  var _utils = require("../../utils");
19
- var _excluded = ["context", "onAuthorise", "accessContext", "testId"];
19
+ var _excluded = ["context", "onAuthorize", "accessContext", "testId"];
20
20
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
21
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
22
22
  var ForbiddenView = function ForbiddenView(_ref) {
23
23
  var context = _ref.context,
24
- onAuthorise = _ref.onAuthorise,
24
+ onAuthorize = _ref.onAuthorize,
25
25
  accessContext = _ref.accessContext,
26
26
  _ref$testId = _ref.testId,
27
27
  testId = _ref$testId === void 0 ? 'embed-card-forbidden-view' : _ref$testId,
@@ -55,7 +55,7 @@ var ForbiddenView = function ForbiddenView(_ref) {
55
55
  */
56
56
  var button = (0, _react.useMemo)(function () {
57
57
  var _action$promise;
58
- var onEmbedCardClick = (_action$promise = action === null || action === void 0 ? void 0 : action.promise) !== null && _action$promise !== void 0 ? _action$promise : onAuthorise;
58
+ var onEmbedCardClick = (_action$promise = action === null || action === void 0 ? void 0 : action.promise) !== null && _action$promise !== void 0 ? _action$promise : onAuthorize;
59
59
  if (!onEmbedCardClick) {
60
60
  return null;
61
61
  }
@@ -67,7 +67,7 @@ var ForbiddenView = function ForbiddenView(_ref) {
67
67
  }, /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, (0, _extends2.default)({}, (0, _intlUtils.toMessage)(_messages.messages.try_another_account, callToActionMessageKey), {
68
68
  values: values
69
69
  })));
70
- }, [accessType, action === null || action === void 0 ? void 0 : action.id, action === null || action === void 0 ? void 0 : action.promise, callToActionMessageKey, onAuthorise, values]);
70
+ }, [accessType, action === null || action === void 0 ? void 0 : action.id, action === null || action === void 0 ? void 0 : action.promise, callToActionMessageKey, onAuthorize, values]);
71
71
  return /*#__PURE__*/_react.default.createElement(_unresolvedView.default, (0, _extends2.default)({}, unresolvedViewProps, {
72
72
  icon: icon,
73
73
  image: image !== null && image !== void 0 ? image : (0, _utils.getUnresolvedEmbedCardImage)('forbidden'),
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
11
+ var _button = _interopRequireDefault(require("@atlaskit/button"));
12
+ var _react = _interopRequireWildcard(require("react"));
13
+ var _reactIntlNext = require("react-intl-next");
14
+ var _reactMagneticDi = require("react-magnetic-di");
15
+ var _messages = require("../../../../messages");
16
+ var _UnauthorisedViewContent = _interopRequireDefault(require("../../../common/UnauthorisedViewContent"));
17
+ var _utils = require("../../utils");
18
+ var _unresolvedView = _interopRequireDefault(require("../unresolved-view"));
19
+ var _excluded = ["analytics", "context", "extensionKey", "onAuthorize", "testId"];
20
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
22
+ var UnauthorizedView = function UnauthorizedView(_ref) {
23
+ var _context$image;
24
+ var analytics = _ref.analytics,
25
+ context = _ref.context,
26
+ extensionKey = _ref.extensionKey,
27
+ onAuthorize = _ref.onAuthorize,
28
+ _ref$testId = _ref.testId,
29
+ testId = _ref$testId === void 0 ? 'embed-card-unauthorized-view' : _ref$testId,
30
+ unresolvedViewProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
31
+ var handleOnAuthorizeClick = (0, _react.useCallback)(function () {
32
+ if (onAuthorize) {
33
+ analytics.track.appAccountAuthStarted({
34
+ extensionKey: extensionKey
35
+ });
36
+ onAuthorize();
37
+ }
38
+ }, [onAuthorize, analytics.track, extensionKey]);
39
+ var content = (0, _react.useMemo)(function () {
40
+ if (onAuthorize) {
41
+ var _context$text;
42
+ // Our title and button messages always expect the product name to be present
43
+ // while the description support when product name is not present.
44
+ // To be looked at https://product-fabric.atlassian.net/browse/EDM-8173
45
+ var _values = {
46
+ context: (_context$text = context === null || context === void 0 ? void 0 : context.text) !== null && _context$text !== void 0 ? _context$text : ''
47
+ };
48
+ if (_values) {
49
+ // title: Connect your {context} account
50
+ // button: Connect to {context}
51
+ return {
52
+ title: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, (0, _extends2.default)({}, _messages.messages.connect_link_account_card_name, {
53
+ values: _values
54
+ })),
55
+ description: /*#__PURE__*/_react.default.createElement(_UnauthorisedViewContent.default, {
56
+ analytics: analytics,
57
+ providerName: context === null || context === void 0 ? void 0 : context.text,
58
+ testId: testId
59
+ }),
60
+ button: /*#__PURE__*/_react.default.createElement(_button.default, {
61
+ testId: "connect-account",
62
+ appearance: "primary",
63
+ onClick: handleOnAuthorizeClick
64
+ }, /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, (0, _extends2.default)({}, _messages.messages.connect_unauthorised_account_action, {
65
+ values: _values
66
+ })))
67
+ };
68
+ }
69
+ }
70
+ var values = context !== null && context !== void 0 && context.text ? {
71
+ context: context === null || context === void 0 ? void 0 : context.text
72
+ } : undefined;
73
+ if (values) {
74
+ // title: We can't display private pages from {context}
75
+ // description: You're trying to preview a link to a private {context} page. We recommend you review the URL or contact the page owner.
76
+ return {
77
+ title: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, (0, _extends2.default)({}, _messages.messages.unauthorised_account_name, {
78
+ values: values
79
+ })),
80
+ description: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, (0, _extends2.default)({}, _messages.messages.unauthorised_account_description, {
81
+ values: values
82
+ }))
83
+ };
84
+ }
85
+
86
+ // title: We can't display private pages
87
+ // description: You're trying to preview a link to a private page. We recommend you review the URL or contact the page owner.
88
+ return {
89
+ title: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages.unauthorised_account_name_no_provider),
90
+ description: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages.unauthorised_account_description_no_provider)
91
+ };
92
+ }, [analytics, context === null || context === void 0 ? void 0 : context.text, handleOnAuthorizeClick, onAuthorize, testId]);
93
+ return /*#__PURE__*/_react.default.createElement(_unresolvedView.default, (0, _extends2.default)({}, unresolvedViewProps, content, {
94
+ icon: context === null || context === void 0 ? void 0 : context.icon,
95
+ image: (_context$image = context === null || context === void 0 ? void 0 : context.image) !== null && _context$image !== void 0 ? _context$image : (0, _utils.getUnresolvedEmbedCardImage)('unauthorized'),
96
+ testId: testId,
97
+ text: context === null || context === void 0 ? void 0 : context.text
98
+ }));
99
+ };
100
+ var _default = exports.default = UnauthorizedView;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -16,6 +16,7 @@ var _linkExtractors = require("@atlaskit/link-extractors");
16
16
  var _styled = require("./styled");
17
17
  var _styled2 = require("../../../styled");
18
18
  var _extractAccessContext = require("../../../../../extractors/common/context/extractAccessContext");
19
+ var _extractHostname = _interopRequireDefault(require("../../../../../extractors/common/hostname/extractHostname"));
19
20
  var HoverCardForbiddenView = function HoverCardForbiddenView(_ref) {
20
21
  var _cardState$details, _cardState$details2, _extractProvider$text, _extractProvider, _extractRequestAccess;
21
22
  var flexibleCardProps = _ref.flexibleCardProps,
@@ -26,7 +27,7 @@ var HoverCardForbiddenView = function HoverCardForbiddenView(_ref) {
26
27
  var data = (_cardState$details = cardState.details) === null || _cardState$details === void 0 ? void 0 : _cardState$details.data;
27
28
  var meta = (_cardState$details2 = cardState.details) === null || _cardState$details2 === void 0 ? void 0 : _cardState$details2.meta;
28
29
  var product = (_extractProvider$text = (_extractProvider = (0, _linkExtractors.extractProvider)(data)) === null || _extractProvider === void 0 ? void 0 : _extractProvider.text) !== null && _extractProvider$text !== void 0 ? _extractProvider$text : '';
29
- var hostname = /*#__PURE__*/_react.default.createElement("b", null, new URL(url).hostname);
30
+ var hostname = /*#__PURE__*/_react.default.createElement("b", null, (0, _extractHostname.default)(url));
30
31
  var _ref2 = (_extractRequestAccess = (0, _extractAccessContext.extractRequestAccessContextImproved)({
31
32
  jsonLd: meta,
32
33
  url: url,
@@ -18,7 +18,7 @@ var _excluded = ["href", "children", "checkSafety", "onClick", "testId"],
18
18
  _excluded2 = ["isLinkSafe", "showSafetyWarningModal"];
19
19
  var PACKAGE_DATA = {
20
20
  packageName: "@atlaskit/smart-card",
21
- packageVersion: "26.34.0",
21
+ packageVersion: "26.34.2",
22
22
  componentName: 'linkUrl'
23
23
  };
24
24
  var Link = (0, _click.withLinkClickedEvent)('a');
@@ -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.34.0"
7
+ packageVersion: "26.34.2"
8
8
  };
9
9
  export let TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
10
10
  TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
@@ -4,6 +4,11 @@ export const mockContext = {
4
4
  atlassian: 'https://schema.atlassian.com/ns/vocabulary#',
5
5
  schema: 'http://schema.org/'
6
6
  };
7
+ export const mockGenerator = {
8
+ '@type': 'Application',
9
+ '@id': 'https://www.atlassian.com/#Jira',
10
+ name: 'Jira'
11
+ };
7
12
  export const mockByUrl = url => {
8
13
  return {
9
14
  meta: {
@@ -12,13 +12,12 @@ import { messages } from '../../../../messages';
12
12
  * @param content is a message key for a message to be displayed in the action
13
13
  * @param context is a variable for a message in case a message contains a placeholder
14
14
  */
15
- export const ForbiddenAction = (onClick, content, context) => ({
15
+ export const ForbiddenAction = (onClick, content, context, isDisabled) => ({
16
16
  name: ActionName.CustomAction,
17
17
  content: /*#__PURE__*/React.createElement(FormattedMessage, _extends({}, messages[content], {
18
- values: {
19
- context
20
- }
18
+ values: context
21
19
  })),
22
20
  onClick,
23
- testId: 'smart-action-connect-other-account'
21
+ testId: 'smart-action-connect-other-account',
22
+ isDisabled
24
23
  });
@@ -17,8 +17,9 @@ import { ErroredView as BlockCardErroredView } from './views/ErroredView';
17
17
  import FlexibleResolvedView from './views/flexible/FlexibleResolvedView';
18
18
  import FlexibleUnauthorisedView from './views/flexible/FlexibleUnauthorisedView';
19
19
  import FlexibleNotFoundView from './views/flexible/FlexibleNotFoundView';
20
- import FlexibleErroredView from './views/flexible/FlexibleErroredView';
21
20
  import FlexibleForbiddenView from './views/flexible/FlexibleForbiddenView';
21
+ import FlexibleForbiddenViewOld from './views/flexible/FlexibleForbiddenViewOld';
22
+ import FlexibleErroredView from './views/flexible/FlexibleErroredView';
22
23
  import { jsx } from '@emotion/react';
23
24
  import { handleClickCommon } from './utils/handlers';
24
25
  import { getBooleanFF } from '@atlaskit/platform-feature-flags';
@@ -98,7 +99,9 @@ export const BlockCard = ({
98
99
  onAuthorize: handleAuthorize
99
100
  }));
100
101
  case 'forbidden':
101
- return jsx(FlexibleForbiddenView, _extends({}, flexibleBlockCardProps, {
102
+ return getBooleanFF('platform.linking-platform.smart-card.cross-join') ? jsx(FlexibleForbiddenView, _extends({}, flexibleBlockCardProps, {
103
+ onAuthorize: handleAuthorize
104
+ })) : jsx(FlexibleForbiddenViewOld, _extends({}, flexibleBlockCardProps, {
102
105
  onAuthorize: handleAuthorize
103
106
  }));
104
107
  case 'not_found':