@atlaskit/smart-card 40.18.0 → 40.19.1

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 (79) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/dist/cjs/extractors/action/extract-invoke-preview-action.js +9 -2
  3. package/dist/cjs/state/helpers.js +54 -16
  4. package/dist/cjs/state/hooks-external/useSmartLinkActions.js +8 -1
  5. package/dist/cjs/utils/analytics/analytics.js +1 -1
  6. package/dist/cjs/utils/iframe-utils.js +40 -0
  7. package/dist/cjs/view/EmbedCard/components/ImageIcon.compiled.css +1 -1
  8. package/dist/cjs/view/EmbedCard/components/ImageIcon.js +1 -1
  9. package/dist/cjs/view/EmbedCard/components/styled.compiled.css +1 -1
  10. package/dist/cjs/view/EmbedCard/components/styled.js +2 -2
  11. package/dist/cjs/view/EmbedModal/utils.js +21 -3
  12. package/dist/cjs/view/FlexibleCard/components/actions/automation-action/automation-manual-triggers/manual-triggers-modal/sub-components/header/main.compiled.css +1 -1
  13. package/dist/cjs/view/FlexibleCard/components/actions/automation-action/automation-manual-triggers/manual-triggers-modal/sub-components/header/main.js +1 -1
  14. package/dist/cjs/view/FlexibleCard/components/actions/automation-action/automation-manual-triggers/manual-triggers-modal/sub-components/rule/main.compiled.css +1 -1
  15. package/dist/cjs/view/FlexibleCard/components/actions/automation-action/automation-manual-triggers/manual-triggers-modal/sub-components/rule/main.js +2 -2
  16. package/dist/cjs/view/FlexibleCard/components/blocks/action-block/action-footer/index.compiled.css +1 -1
  17. package/dist/cjs/view/FlexibleCard/components/blocks/action-block/action-footer/index.js +1 -1
  18. package/dist/cjs/view/FlexibleCard/components/common/image-icon/index.compiled.css +1 -1
  19. package/dist/cjs/view/FlexibleCard/components/common/image-icon/index.js +1 -1
  20. package/dist/cjs/view/InlineCard/ForbiddenView/index.compiled.css +1 -1
  21. package/dist/cjs/view/InlineCard/ForbiddenView/index.js +1 -1
  22. package/dist/cjs/view/InlineCard/IconAndTitleLayout/index.compiled.css +1 -2
  23. package/dist/cjs/view/InlineCard/IconAndTitleLayout/index.js +2 -2
  24. package/dist/cjs/view/LinkUrl/index.js +1 -1
  25. package/dist/es2019/extractors/action/extract-invoke-preview-action.js +6 -1
  26. package/dist/es2019/state/helpers.js +54 -16
  27. package/dist/es2019/state/hooks-external/useSmartLinkActions.js +8 -1
  28. package/dist/es2019/utils/analytics/analytics.js +1 -1
  29. package/dist/es2019/utils/iframe-utils.js +34 -0
  30. package/dist/es2019/view/EmbedCard/components/ImageIcon.compiled.css +1 -1
  31. package/dist/es2019/view/EmbedCard/components/ImageIcon.js +1 -1
  32. package/dist/es2019/view/EmbedCard/components/styled.compiled.css +1 -1
  33. package/dist/es2019/view/EmbedCard/components/styled.js +2 -2
  34. package/dist/es2019/view/EmbedModal/utils.js +12 -0
  35. package/dist/es2019/view/FlexibleCard/components/actions/automation-action/automation-manual-triggers/manual-triggers-modal/sub-components/header/main.compiled.css +1 -1
  36. package/dist/es2019/view/FlexibleCard/components/actions/automation-action/automation-manual-triggers/manual-triggers-modal/sub-components/header/main.js +1 -1
  37. package/dist/es2019/view/FlexibleCard/components/actions/automation-action/automation-manual-triggers/manual-triggers-modal/sub-components/rule/main.compiled.css +1 -1
  38. package/dist/es2019/view/FlexibleCard/components/actions/automation-action/automation-manual-triggers/manual-triggers-modal/sub-components/rule/main.js +2 -2
  39. package/dist/es2019/view/FlexibleCard/components/blocks/action-block/action-footer/index.compiled.css +1 -1
  40. package/dist/es2019/view/FlexibleCard/components/blocks/action-block/action-footer/index.js +1 -1
  41. package/dist/es2019/view/FlexibleCard/components/common/image-icon/index.compiled.css +1 -1
  42. package/dist/es2019/view/FlexibleCard/components/common/image-icon/index.js +1 -1
  43. package/dist/es2019/view/InlineCard/ForbiddenView/index.compiled.css +1 -1
  44. package/dist/es2019/view/InlineCard/ForbiddenView/index.js +1 -1
  45. package/dist/es2019/view/InlineCard/IconAndTitleLayout/index.compiled.css +1 -2
  46. package/dist/es2019/view/InlineCard/IconAndTitleLayout/index.js +2 -2
  47. package/dist/es2019/view/LinkUrl/HyperlinkResolver/resolve-hyperlink.js +2 -2
  48. package/dist/es2019/view/LinkUrl/index.js +1 -1
  49. package/dist/esm/extractors/action/extract-invoke-preview-action.js +9 -2
  50. package/dist/esm/state/helpers.js +54 -16
  51. package/dist/esm/state/hooks-external/useSmartLinkActions.js +8 -1
  52. package/dist/esm/utils/analytics/analytics.js +1 -1
  53. package/dist/esm/utils/iframe-utils.js +34 -0
  54. package/dist/esm/view/EmbedCard/components/ImageIcon.compiled.css +1 -1
  55. package/dist/esm/view/EmbedCard/components/ImageIcon.js +1 -1
  56. package/dist/esm/view/EmbedCard/components/styled.compiled.css +1 -1
  57. package/dist/esm/view/EmbedCard/components/styled.js +2 -2
  58. package/dist/esm/view/EmbedModal/utils.js +21 -3
  59. package/dist/esm/view/FlexibleCard/components/actions/automation-action/automation-manual-triggers/manual-triggers-modal/sub-components/header/main.compiled.css +1 -1
  60. package/dist/esm/view/FlexibleCard/components/actions/automation-action/automation-manual-triggers/manual-triggers-modal/sub-components/header/main.js +1 -1
  61. package/dist/esm/view/FlexibleCard/components/actions/automation-action/automation-manual-triggers/manual-triggers-modal/sub-components/rule/main.compiled.css +1 -1
  62. package/dist/esm/view/FlexibleCard/components/actions/automation-action/automation-manual-triggers/manual-triggers-modal/sub-components/rule/main.js +2 -2
  63. package/dist/esm/view/FlexibleCard/components/blocks/action-block/action-footer/index.compiled.css +1 -1
  64. package/dist/esm/view/FlexibleCard/components/blocks/action-block/action-footer/index.js +1 -1
  65. package/dist/esm/view/FlexibleCard/components/common/image-icon/index.compiled.css +1 -1
  66. package/dist/esm/view/FlexibleCard/components/common/image-icon/index.js +1 -1
  67. package/dist/esm/view/InlineCard/ForbiddenView/index.compiled.css +1 -1
  68. package/dist/esm/view/InlineCard/ForbiddenView/index.js +1 -1
  69. package/dist/esm/view/InlineCard/IconAndTitleLayout/index.compiled.css +1 -2
  70. package/dist/esm/view/InlineCard/IconAndTitleLayout/index.js +2 -2
  71. package/dist/esm/view/LinkUrl/HyperlinkResolver/resolve-hyperlink.js +2 -2
  72. package/dist/esm/view/LinkUrl/index.js +1 -1
  73. package/dist/types/state/hooks-external/useSmartLinkActions.d.ts +6 -1
  74. package/dist/types/utils/iframe-utils.d.ts +5 -0
  75. package/dist/types/view/EmbedModal/types.d.ts +1 -0
  76. package/dist/types-ts4.5/state/hooks-external/useSmartLinkActions.d.ts +6 -1
  77. package/dist/types-ts4.5/utils/iframe-utils.d.ts +5 -0
  78. package/dist/types-ts4.5/view/EmbedModal/types.d.ts +1 -0
  79. package/package.json +6 -6
package/CHANGELOG.md CHANGED
@@ -1,5 +1,27 @@
1
1
  # @atlaskit/smart-card
2
2
 
3
+ ## 40.19.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [`4f8a989dc9242`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/4f8a989dc9242) -
8
+ Fix regex and tests
9
+ - Updated dependencies
10
+
11
+ ## 40.19.0
12
+
13
+ ### Minor Changes
14
+
15
+ - [`9163aea4d4aee`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/9163aea4d4aee) -
16
+ Adds preview panel logic to embedded modal component and adds the ability to trigger the modal
17
+ action from within the useSmartLinkActions hook
18
+
19
+ ### Patch Changes
20
+
21
+ - [`beaa6ee463aa8`](https://bitbucket.org/atlassian/atlassian-frontend-monorepo/commits/beaa6ee463aa8) -
22
+ Internal changes to how border radius is applied.
23
+ - Updated dependencies
24
+
3
25
  ## 40.18.0
4
26
 
5
27
  ### Minor Changes
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  });
7
7
  exports.extractInvokePreviewAction = void 0;
8
8
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
9
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
10
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
10
11
  var _linkExtractors = require("@atlaskit/link-extractors");
11
12
  var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
@@ -13,12 +14,15 @@ var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
13
14
  var _index = require("../../index");
14
15
  var _helpers = require("../../state/helpers");
15
16
  var _canShowAction = require("../../utils/actions/can-show-action");
17
+ var _iframeUtils = require("../../utils/iframe-utils");
16
18
  var _utils = require("../../view/EmbedModal/utils");
17
19
  var _extractIsSupportTheming = require("../common/meta/extractIsSupportTheming");
18
20
  var _extractIsTrusted = require("../common/meta/extractIsTrusted");
19
21
  var _icon = require("../flexible/icon");
20
22
  var _extractInvokeDownloadAction = require("./extract-invoke-download-action");
21
23
  var _extractInvokeViewAction = require("./extract-invoke-view-action");
24
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
25
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
22
26
  var extractInvokePreviewAction = exports.extractInvokePreviewAction = function extractInvokePreviewAction(param) {
23
27
  var _extractPreviewData;
24
28
  var actionOptions = param.actionOptions,
@@ -37,6 +41,7 @@ var extractInvokePreviewAction = exports.extractInvokePreviewAction = function e
37
41
  var hasPreviewPanel = hasPreviewPanelParams && isPreviewPanelAvailable({
38
42
  ari: ari
39
43
  });
44
+ var isInPreviewPanel = (0, _expValEquals.expValEquals)('platform_hover_card_preview_panel', 'cohort', 'test') && (0, _iframeUtils.isModalWithinPreviewPanelIFrame)();
40
45
  var data = response.data;
41
46
  var meta = response.meta;
42
47
  if (!(0, _canShowAction.canShowAction)(_index.CardAction.PreviewAction, actionOptions)) {
@@ -67,7 +72,7 @@ var extractInvokePreviewAction = exports.extractInvokePreviewAction = function e
67
72
  break;
68
73
  case 4:
69
74
  _context.next = 6;
70
- return (0, _utils.openEmbedModal)({
75
+ return (0, _utils.openEmbedModal)(_objectSpread({
71
76
  fireEvent: fireEvent,
72
77
  extensionKey: extensionKey,
73
78
  id: id,
@@ -83,7 +88,9 @@ var extractInvokePreviewAction = exports.extractInvokePreviewAction = function e
83
88
  title: (0, _linkExtractors.extractSmartLinkTitle)(response),
84
89
  url: url,
85
90
  size: (0, _platformFeatureFlags.fg)('platform_linking_enable_card_preview_action_size') ? actionOptions === null || actionOptions === void 0 || (_actionOptions$previe = actionOptions.previewAction) === null || _actionOptions$previe === void 0 ? void 0 : _actionOptions$previe.size : undefined
86
- });
91
+ }, (0, _expValEquals.expValEquals)('platform_hover_card_preview_panel', 'cohort', 'test') && {
92
+ isInPreviewPanel: isInPreviewPanel
93
+ }));
87
94
  case 6:
88
95
  case "end":
89
96
  return _context.stop();
@@ -40,6 +40,12 @@ var getThirdPartyARI = exports.getThirdPartyARI = function getThirdPartyARI(deta
40
40
  if (details !== null && details !== void 0 && details.entityData && 'thirdPartyAri' in details.entityData && details.entityData.thirdPartyAri) {
41
41
  return details.entityData.thirdPartyAri;
42
42
  }
43
+ if (details !== null && details !== void 0 && details.data && 'atlassian:ari' in details.data && typeof details.data['atlassian:ari'] === 'string') {
44
+ var ari = details.data['atlassian:ari'];
45
+ if (ari.includes('ari:third-party')) {
46
+ return ari;
47
+ }
48
+ }
43
49
  }
44
50
  return undefined;
45
51
  };
@@ -126,22 +132,24 @@ var hasAuthScopeOverrides = exports.hasAuthScopeOverrides = function hasAuthScop
126
132
  // Helper function to extract page ID from standard Confluence page URLs
127
133
  var extractPageIdFromURL = function extractPageIdFromURL(url) {
128
134
  try {
135
+ var urlObj = new URL(url);
136
+
129
137
  // Following this pattern for confluence URL -> /wiki/spaces/{space}/pages/{pageId}/{title}
130
- var pagesMatch = url.match(/(?!pages)(\d+)/);
131
- if (pagesMatch && pagesMatch[0]) {
132
- return pagesMatch[0];
138
+ var pagesMatch = urlObj.pathname.match(/\/wiki\/spaces\/[^\/]+\/pages\/(\d+)(?:\/|$)/);
139
+ if (pagesMatch && pagesMatch[1]) {
140
+ return pagesMatch[1];
133
141
  }
134
142
 
135
143
  // Following this pattern for confluence URL -> /wiki/pages/viewpage.action?pageId={pageId}
136
- var pageIdParam = url.match(/(?!pageId=)(\d+)/);
137
- if (pageIdParam && pageIdParam[0]) {
138
- return pageIdParam[0];
144
+ var pageIdParam = urlObj.searchParams.get('pageId');
145
+ if (pageIdParam) {
146
+ return pageIdParam;
139
147
  }
140
148
 
141
149
  // Following this pattern for confluence URL -> /wiki/display/{space}/{pageId}
142
- var displayMatch = url.match(/(?!display\/)(\d+)/);
143
- if (displayMatch && displayMatch[0]) {
144
- return displayMatch[0];
150
+ var displayMatch = urlObj.pathname.match(/\/wiki\/display\/[^\/]+\/(\d+)/);
151
+ if (displayMatch && displayMatch[1]) {
152
+ return displayMatch[1];
145
153
  }
146
154
  } catch (_unused) {
147
155
  return undefined;
@@ -150,10 +158,19 @@ var extractPageIdFromURL = function extractPageIdFromURL(url) {
150
158
  };
151
159
  var extractContentIdFromURL = function extractContentIdFromURL(url) {
152
160
  try {
153
- var contentId = url.match(/content\.id=(\d+)/);
154
- if (contentId && contentId[1]) {
155
- // contentId[1] contains just the number
156
- return contentId[1];
161
+ var urlObj = new URL(url);
162
+
163
+ // Pattern: ?content.id={contentId} (for app connector URLs and plugin servlet URLs)
164
+ var contentId = urlObj.searchParams.get('content.id');
165
+ if (contentId) {
166
+ return contentId;
167
+ }
168
+
169
+ // Also support URLs where content.id is in the query string but not parsed by URL (edge case)
170
+ // e.g., /wiki/plugins/servlet/ac/com.atlassian.perspectiveretros/perspective-retros?content.id=5662725850
171
+ var match = url.match(/[?&]content\.id=(\d+)/);
172
+ if (match && match[1]) {
173
+ return match[1];
157
174
  }
158
175
  } catch (_unused2) {
159
176
  return undefined;
@@ -162,9 +179,30 @@ var extractContentIdFromURL = function extractContentIdFromURL(url) {
162
179
  };
163
180
  var extractJiraIssueIdFromURL = function extractJiraIssueIdFromURL(url) {
164
181
  try {
165
- var browseMatch = url.match(/[A-Z0-9]+-\d+/);
166
- if (browseMatch && browseMatch[0]) {
167
- return browseMatch[0];
182
+ var urlObj = new URL(url);
183
+
184
+ // Support any case for Jira keys (e.g., AI3W-864, ai3w-864, Ai3W-864)
185
+ var browseMatch = urlObj.pathname.match(/\/browse\/([A-Za-z0-9]+-\d+)/);
186
+ if (browseMatch && browseMatch[1]) {
187
+ return browseMatch[1];
188
+ }
189
+
190
+ // /jira/browse/{issueKey}
191
+ var jiraBrowseMatch = urlObj.pathname.match(/\/jira\/browse\/([A-Za-z0-9]+-\d+)/);
192
+ if (jiraBrowseMatch && jiraBrowseMatch[1]) {
193
+ return jiraBrowseMatch[1];
194
+ }
195
+
196
+ // Query parameter ?selectedIssue={issueKey}
197
+ var selectedIssue = urlObj.searchParams.get('selectedIssue');
198
+ if (selectedIssue && /^[A-Za-z0-9]+-\d+$/.test(selectedIssue)) {
199
+ return selectedIssue;
200
+ }
201
+
202
+ // Query parameter ?issueKey={issueKey}
203
+ var issueKeyParam = urlObj.searchParams.get('issueKey');
204
+ if (issueKeyParam && /^[A-Za-z0-9]+-\d+$/.test(issueKeyParam)) {
205
+ return issueKeyParam;
168
206
  }
169
207
  } catch (_unused3) {
170
208
  return undefined;
@@ -9,6 +9,7 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
9
9
  var _react = require("react");
10
10
  var _uuid = _interopRequireDefault(require("uuid"));
11
11
  var _linkProvider = require("@atlaskit/link-provider");
12
+ var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
12
13
  var _useAnalyticsEvents2 = require("../../common/analytics/generated/use-analytics-events");
13
14
  var _extractInvokeDownloadAction = require("../../extractors/action/extract-invoke-download-action");
14
15
  var _extractInvokePreviewAction = require("../../extractors/action/extract-invoke-preview-action");
@@ -16,6 +17,7 @@ var _extractInvokeViewAction = require("../../extractors/action/extract-invoke-v
16
17
  var _messages = require("../../messages");
17
18
  var _toAction = require("../../utils/actions/to-action");
18
19
  var _useInvokeClientAction = _interopRequireDefault(require("../hooks/use-invoke-client-action"));
20
+ var _useResolve = _interopRequireDefault(require("../hooks/use-resolve"));
19
21
  var _store = require("../store");
20
22
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
21
23
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
@@ -23,7 +25,8 @@ function useSmartLinkActions(_ref) {
23
25
  var url = _ref.url,
24
26
  appearance = _ref.appearance,
25
27
  origin = _ref.origin,
26
- actionOptions = _ref.actionOptions;
28
+ actionOptions = _ref.actionOptions,
29
+ prefetch = _ref.prefetch;
27
30
  var id = (0, _react.useMemo)(function () {
28
31
  return (0, _uuid.default)();
29
32
  }, []);
@@ -36,6 +39,10 @@ function useSmartLinkActions(_ref) {
36
39
  var invokeClientAction = (0, _useInvokeClientAction.default)({
37
40
  fireEvent: fireEvent
38
41
  });
42
+ var resolve = (0, _useResolve.default)();
43
+ if ((0, _expValEquals.expValEquals)('platform_hover_card_preview_panel', 'cohort', 'test') && prefetch && !linkState.details) {
44
+ resolve(url);
45
+ }
39
46
  if (linkState.details && !(actionOptions !== null && actionOptions !== void 0 && actionOptions.hide)) {
40
47
  var actions = [];
41
48
  var invokeParam = {
@@ -11,7 +11,7 @@ var ANALYTICS_CHANNEL = exports.ANALYTICS_CHANNEL = 'media';
11
11
  var context = exports.context = {
12
12
  componentName: 'smart-cards',
13
13
  packageName: "@atlaskit/smart-card",
14
- packageVersion: "40.17.2"
14
+ packageVersion: "40.19.0"
15
15
  };
16
16
  var TrackQuickActionType = exports.TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
17
17
  TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.openEmbedModalInParent = exports.isWithinPreviewPanel = exports.isModalWithinPreviewPanelIFrame = exports.isInIframe = void 0;
7
+ var isInIframe = exports.isInIframe = function isInIframe() {
8
+ try {
9
+ return window !== window.top;
10
+ } catch (_unused) {
11
+ // If we can't access window.top due to cross-origin restrictions, assume we're in an iframe
12
+ return true;
13
+ }
14
+ };
15
+ var isWithinPreviewPanel = exports.isWithinPreviewPanel = function isWithinPreviewPanel() {
16
+ try {
17
+ var params = new URLSearchParams(window.location.search);
18
+ return params.has('previewPanels') || params.get('embeddedConfluenceSource') === 'confluence-page-preview-panel';
19
+ } catch (_unused2) {
20
+ return false;
21
+ }
22
+ };
23
+ var isModalWithinPreviewPanelIFrame = exports.isModalWithinPreviewPanelIFrame = function isModalWithinPreviewPanelIFrame() {
24
+ return isInIframe() && isWithinPreviewPanel();
25
+ };
26
+
27
+ // Signals parent product to open embed modal via postMessage when in iframe context
28
+ var openEmbedModalInParent = exports.openEmbedModalInParent = function openEmbedModalInParent(modalProps) {
29
+ if (!isInIframe()) {
30
+ return;
31
+ }
32
+ window.parent.postMessage({
33
+ type: 'OPEN_EMBED_MODAL',
34
+ payload: {
35
+ modal: {
36
+ url: (modalProps === null || modalProps === void 0 ? void 0 : modalProps.url) || ''
37
+ }
38
+ }
39
+ }, '*');
40
+ };
@@ -1 +1 @@
1
- ._2rko1twn{border-radius:var(--ds-border-radius-circle,9999px)}
1
+ ._2rko1rr0{border-radius:var(--ds-radius-full,9999px)}
@@ -17,7 +17,7 @@ var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
17
17
  var _styled = require("./styled");
18
18
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
19
19
  var styles = {
20
- roundedImage: "_2rko1twn"
20
+ roundedImage: "_2rko1rr0"
21
21
  };
22
22
  var ImageIcon = exports.ImageIcon = function ImageIcon(_ref) {
23
23
  var _ref$alt = _ref.alt,
@@ -1,5 +1,5 @@
1
1
 
2
- ._2rko1sit{border-radius:var(--ds-border-radius,3px)}._18m915vq{overflow-y:hidden}
2
+ ._2rkofajl{border-radius:var(--ds-radius-small,3px)}._18m915vq{overflow-y:hidden}
3
3
  ._18u0utpp{margin-left:var(--ds-space-150,9pt)}
4
4
  ._19pk1b66{margin-top:var(--ds-space-050,4px)}
5
5
  ._1aaxusic{float:right}
@@ -40,7 +40,7 @@ var Image = exports.Image = (0, _react.forwardRef)(function (_ref, __cmplr) {
40
40
  "--_rcxkve": (0, _runtime.ix)(getSizeWithUnit(__cmplp.size))
41
41
  }),
42
42
  ref: __cmplr,
43
- className: (0, _runtime.ax)(["_2rko1sit _1reo15vq _18m915vq _1bsb17ym _4t3i17ym", __cmplp.className])
43
+ className: (0, _runtime.ax)(["_2rkofajl _1reo15vq _18m915vq _1bsb17ym _4t3i17ym", __cmplp.className])
44
44
  }));
45
45
  });
46
46
 
@@ -58,7 +58,7 @@ var Thumbnail = exports.Thumbnail = (0, _react.forwardRef)(function (_ref2, __cm
58
58
  "--_13orr8u": (0, _runtime.ix)("url(".concat(__cmplp.src, ")"))
59
59
  }),
60
60
  ref: __cmplr,
61
- className: (0, _runtime.ax)(["_2rko1sit _1bsbckbl _4t3ickbl _1aaxusic _19pk1b66 _2hwxidpf _otyrutpp _18u0utpp _bfhkqrzy _1lrw1dfr _1itk2pcs", __cmplp.className])
61
+ className: (0, _runtime.ax)(["_2rkofajl _1bsbckbl _4t3ickbl _1aaxusic _19pk1b66 _2hwxidpf _otyrutpp _18u0utpp _bfhkqrzy _1lrw1dfr _1itk2pcs", __cmplp.className])
62
62
  }));
63
63
  });
64
64
  if (process.env.NODE_ENV !== 'production') {
@@ -8,13 +8,18 @@ Object.defineProperty(exports, "__esModule", {
8
8
  exports.openEmbedModal = openEmbedModal;
9
9
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
10
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
12
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
12
13
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
14
  var _react = _interopRequireDefault(require("react"));
14
15
  var _reactDom = _interopRequireDefault(require("react-dom"));
15
16
  var _reactIntlNext = require("react-intl-next");
17
+ var _expValEquals = require("@atlaskit/tmp-editor-statsig/exp-val-equals");
18
+ var _iframeUtils = require("../../utils/iframe-utils");
16
19
  var _excluded = ["onClose"];
17
20
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
21
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
22
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
18
23
  var IFRAME_NAME = 'twp-editor-preview-iframe';
19
24
  var POPUP_MOUNT_POINT_ID = 'twp-editor-preview-iframe';
20
25
 
@@ -48,6 +53,19 @@ function _openEmbedModal() {
48
53
  case 0:
49
54
  _ref = _args.length > 0 && _args[0] !== undefined ? _args[0] : {};
50
55
  _ref$onClose = _ref.onClose, _onClose = _ref$onClose === void 0 ? function () {} : _ref$onClose, props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
56
+ if (!(0, _expValEquals.expValEquals)('platform_hover_card_preview_panel', 'cohort', 'test')) {
57
+ _context2.next = 6;
58
+ break;
59
+ }
60
+ if (!props.isInPreviewPanel) {
61
+ _context2.next = 6;
62
+ break;
63
+ }
64
+ (0, _iframeUtils.openEmbedModalInParent)(_objectSpread({
65
+ onClose: _onClose
66
+ }, props));
67
+ return _context2.abrupt("return");
68
+ case 6:
51
69
  popupMountPoint = document.getElementById(POPUP_MOUNT_POINT_ID);
52
70
  if (!popupMountPoint) {
53
71
  popupMountPoint = document.createElement('div');
@@ -55,11 +73,11 @@ function _openEmbedModal() {
55
73
  popupMountPoint.setAttribute('data-testid', 'preview-modal');
56
74
  document.body.appendChild(popupMountPoint);
57
75
  }
58
- _context2.next = 6;
76
+ _context2.next = 10;
59
77
  return Promise.resolve().then(function () {
60
78
  return _interopRequireWildcard(require('./index'));
61
79
  });
62
- case 6:
80
+ case 10:
63
81
  Modal = _context2.sent;
64
82
  _reactDom.default.render( /*#__PURE__*/_react.default.createElement(_reactIntlNext.IntlProvider, {
65
83
  locale: "en"
@@ -75,7 +93,7 @@ function _openEmbedModal() {
75
93
  },
76
94
  showModal: true
77
95
  }))), popupMountPoint);
78
- case 8:
96
+ case 12:
79
97
  case "end":
80
98
  return _context2.stop();
81
99
  }
@@ -1,5 +1,5 @@
1
1
 
2
- ._2rkoglpi{border-radius:var(--ds-border-radius,4px)}._18zr1b66{padding-inline:var(--ds-space-050,4px)}
2
+ ._2rko12b0{border-radius:var(--ds-radius-small,4px)}._18zr1b66{padding-inline:var(--ds-space-050,4px)}
3
3
  ._1rjcv77o{padding-block:var(--ds-space-025,2px)}
4
4
  ._19pkutpp{margin-top:var(--ds-space-150,9pt)}
5
5
  ._2hwxutpp{margin-right:var(--ds-space-150,9pt)}
@@ -20,7 +20,7 @@ var _colors = require("@atlaskit/theme/colors");
20
20
  var _menuContext = require("../../menu-context");
21
21
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
22
22
  var styles = {
23
- iconStyle: "_2rkoglpi _18zr1b66 _1rjcv77o _2hwxutpp",
23
+ iconStyle: "_2rko12b0 _18zr1b66 _1rjcv77o _2hwxutpp",
24
24
  modalDescriptionStyle: "_19pkutpp"
25
25
  };
26
26
  var i18n = (0, _reactIntlNext.defineMessages)({
@@ -1,5 +1,5 @@
1
1
 
2
- ._2rkoglpi{border-radius:var(--ds-border-radius,4px)}._189e1bk5{border-width:var(--ds-border-width-outline,2px)}
2
+ ._2rko12b0{border-radius:var(--ds-radius-small,4px)}._189e1bk5{border-width:var(--ds-border-width-outline,2px)}
3
3
  ._189ee4h9{border-width:var(--ds-border-width,1px)}
4
4
  ._1dqonqa1{border-style:solid}
5
5
  ._1h6d15qp{border-color:var(--ds-border-accent-blue,#1d7afc)}
@@ -17,8 +17,8 @@ var _spinner = _interopRequireDefault(require("@atlaskit/spinner"));
17
17
  var _menuContext = require("../../menu-context");
18
18
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
19
19
  var styles = {
20
- ruleButtonStyle: "_2rkoglpi _1h6dmuej _1dqonqa1 _189ee4h9",
21
- selectedRuleButtonStyle: "_2rkoglpi _1h6d15qp _1dqonqa1 _189e1bk5",
20
+ ruleButtonStyle: "_2rko12b0 _1h6dmuej _1dqonqa1 _189ee4h9",
21
+ selectedRuleButtonStyle: "_2rko12b0 _1h6d15qp _1dqonqa1 _189e1bk5",
22
22
  ruleNameStyle: "_4t3i1f4h"
23
23
  };
24
24
  var AutomationModalRule = exports.AutomationModalRule = function AutomationModalRule(_ref) {
@@ -1,6 +1,6 @@
1
1
 
2
2
  ._kkk2n7od{all:unset}._11c8dcr7{font:var(--ds-font-body-UNSAFE_small,normal 400 9pt/1pc ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif)}
3
- ._2rkoglpi{border-radius:var(--ds-border-radius,4px)}
3
+ ._2rko12b0{border-radius:var(--ds-radius-small,4px)}
4
4
  ._18zru2gc{padding-inline:var(--ds-space-100,8px)}
5
5
  ._1rjc12x7{padding-block:var(--ds-space-075,6px)}
6
6
  ._18u0u2gc{margin-left:var(--ds-space-100,8px)}
@@ -15,7 +15,7 @@ var _compiled = require("@atlaskit/primitives/compiled");
15
15
  var _motionWrapper = _interopRequireDefault(require("../../../common/motion-wrapper"));
16
16
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
17
17
  var styles = {
18
- containerStyles: "_kkk2n7od _2rkoglpi _1rjc12x7 _18zru2gc _19pku2gc _2hwxu2gc _otyrze3t _18u0u2gc _1bsb1osq _fiawglyw",
18
+ containerStyles: "_kkk2n7od _2rko12b0 _1rjc12x7 _18zru2gc _19pku2gc _2hwxu2gc _otyrze3t _18u0u2gc _1bsb1osq _fiawglyw",
19
19
  errorContentStyles: "_bozgv77o",
20
20
  titleStyles: "_11c8dcr7 _syaz1gjq"
21
21
  };
@@ -1 +1 @@
1
- ._2rko1twn{border-radius:var(--ds-border-radius-circle,9999px)}
1
+ ._2rko1rr0{border-radius:var(--ds-radius-full,9999px)}
@@ -16,7 +16,7 @@ var _reactRenderImage = _interopRequireDefault(require("react-render-image"));
16
16
  var _loadingSkeleton = require("../loading-skeleton");
17
17
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
18
18
  var styles = {
19
- roundImg: "_2rko1twn"
19
+ roundImg: "_2rko1rr0"
20
20
  };
21
21
  var ImageIcon = function ImageIcon(_ref) {
22
22
  var defaultIcon = _ref.defaultIcon,
@@ -1,5 +1,5 @@
1
1
 
2
- ._2rkogqwt{border-radius:var(--ds-border-radius-050,2px)}._19bvze3t{padding-left:var(--ds-space-0,0)}
2
+ ._2rkolb4i{border-radius:var(--ds-radius-xsmall,2px)}._19bvze3t{padding-left:var(--ds-space-0,0)}
3
3
  ._bfhksm61{background-color:var(--ds-background-neutral-subtle,#00000000)}
4
4
  ._ca0qze3t{padding-top:var(--ds-space-0,0)}
5
5
  ._n3tdze3t{padding-bottom:var(--ds-space-0,0)}
@@ -24,7 +24,7 @@ var _inlineLozenge = _interopRequireDefault(require("../common/inline-lozenge"))
24
24
  var _Frame = require("../Frame");
25
25
  var _IconAndTitleLayout = require("../IconAndTitleLayout");
26
26
  var styles = {
27
- actionButtonLozengeStyle: "_2rkogqwt _bfhksm61 _ca0qze3t _u5f3ze3t _n3tdze3t _19bvze3t _p12f1osq"
27
+ actionButtonLozengeStyle: "_2rkolb4i _bfhksm61 _ca0qze3t _u5f3ze3t _n3tdze3t _19bvze3t _p12f1osq"
28
28
  };
29
29
  var fallbackForbiddenIcon = function fallbackForbiddenIcon() {
30
30
  return /*#__PURE__*/_react.default.createElement(_lockLocked.default, {
@@ -1,6 +1,5 @@
1
1
  ._11c81o8v{font:var(--ds-font-body-small,normal 400 11px/1pc ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Ubuntu,"Helvetica Neue",sans-serif)}
2
- ._2rko1twn{border-radius:var(--ds-border-radius-circle,9999px)}
3
- ._2rkogqwt{border-radius:var(--ds-border-radius-050,2px)}
2
+ ._2rko1rr0{border-radius:var(--ds-radius-full,9999px)}
4
3
  ._2rkolb4i{border-radius:var(--ds-radius-xsmall,2px)}
5
4
  ._154i1ssb{top:50%}
6
5
  ._16d9qvcn{-webkit-box-decoration-break:clone;box-decoration-break:clone}
@@ -29,9 +29,9 @@ var styles = {
29
29
  iconEmptyStyle: "_1bsb7vkz _4t3i1osq _1e0c1o8l _tzy4idpf",
30
30
  iconOuterWrapperStyle: "_1e0c1o8l _2hwx1b66 _kqswh2mm",
31
31
  iconTitleWrapperStyle: "_o5721jtm _1nmz9jpi _16d9qvcn _ca0qv77o _u5f31b66 _n3tdv77o _19bv1b66",
32
- linkStyle: "_2rkogqwt",
32
+ linkStyle: "_2rkolb4i",
33
33
  noLinkAppearanceStyle: "_syaz131l _18u01b66",
34
- roundImageStyle: "_2rko1twn"
34
+ roundImageStyle: "_2rko1rr0"
35
35
  };
36
36
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-styled,@atlaskit/design-system/no-html-anchor -- Ignored via go/DSP-18766
37
37
  var LinkAppearance = (0, _react.forwardRef)(function (_ref, __cmplr) {
@@ -21,7 +21,7 @@ var _excluded = ["href", "children", "checkSafety", "onClick", "testId", "isLink
21
21
  _excluded2 = ["isLinkSafe", "showSafetyWarningModal"];
22
22
  var PACKAGE_DATA = {
23
23
  packageName: "@atlaskit/smart-card",
24
- packageVersion: "40.17.2",
24
+ packageVersion: "40.19.0",
25
25
  componentName: 'linkUrl'
26
26
  };
27
27
  var Anchor = (0, _click.withLinkClickedEvent)('a');
@@ -4,6 +4,7 @@ import { expValEquals } from '@atlaskit/tmp-editor-statsig/exp-val-equals';
4
4
  import { ActionName, CardAction } from '../../index';
5
5
  import { getExtensionKey } from '../../state/helpers';
6
6
  import { canShowAction } from '../../utils/actions/can-show-action';
7
+ import { isModalWithinPreviewPanelIFrame } from '../../utils/iframe-utils';
7
8
  import { openEmbedModal } from '../../view/EmbedModal/utils';
8
9
  import { extractIsSupportTheming } from '../common/meta/extractIsSupportTheming';
9
10
  import { extractIsTrusted } from '../common/meta/extractIsTrusted';
@@ -30,6 +31,7 @@ export const extractInvokePreviewAction = param => {
30
31
  const hasPreviewPanel = hasPreviewPanelParams && isPreviewPanelAvailable({
31
32
  ari: ari
32
33
  });
34
+ const isInPreviewPanel = expValEquals('platform_hover_card_preview_panel', 'cohort', 'test') && isModalWithinPreviewPanelIFrame();
33
35
  const data = response.data;
34
36
  const meta = response.meta;
35
37
  if (!canShowAction(CardAction.PreviewAction, actionOptions)) {
@@ -65,7 +67,10 @@ export const extractInvokePreviewAction = param => {
65
67
  src: (_extractSmartLinkEmbe = extractSmartLinkEmbed(response)) === null || _extractSmartLinkEmbe === void 0 ? void 0 : _extractSmartLinkEmbe.src,
66
68
  title: extractSmartLinkTitle(response),
67
69
  url,
68
- size: fg('platform_linking_enable_card_preview_action_size') ? actionOptions === null || actionOptions === void 0 ? void 0 : (_actionOptions$previe = actionOptions.previewAction) === null || _actionOptions$previe === void 0 ? void 0 : _actionOptions$previe.size : undefined
70
+ size: fg('platform_linking_enable_card_preview_action_size') ? actionOptions === null || actionOptions === void 0 ? void 0 : (_actionOptions$previe = actionOptions.previewAction) === null || _actionOptions$previe === void 0 ? void 0 : _actionOptions$previe.size : undefined,
71
+ ...(expValEquals('platform_hover_card_preview_panel', 'cohort', 'test') && {
72
+ isInPreviewPanel
73
+ })
69
74
  });
70
75
  }
71
76
  },