@atlaskit/smart-card 26.71.0 → 26.73.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (90) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/cjs/constants.js +1 -0
  3. package/dist/cjs/extractors/flexible/actions/extract-view-related-links-action.js +20 -0
  4. package/dist/cjs/extractors/flexible/actions/index.js +6 -2
  5. package/dist/cjs/messages.js +5 -0
  6. package/dist/cjs/state/flexible-ui-context/types.js +3 -1
  7. package/dist/cjs/utils/analytics/analytics.js +1 -1
  8. package/dist/cjs/utils/index.js +14 -0
  9. package/dist/cjs/view/FlexibleCard/components/actions/index.js +8 -1
  10. package/dist/cjs/view/FlexibleCard/components/actions/view-related-links-action/index.js +28 -0
  11. package/dist/cjs/view/FlexibleCard/components/actions/view-related-links-action/related-links-action-icon/index.js +27 -0
  12. package/dist/cjs/view/FlexibleCard/components/actions/view-related-links-action/types.js +5 -0
  13. package/dist/cjs/view/FlexibleCard/components/blocks/title-block/errored/index.js +3 -1
  14. package/dist/cjs/view/FlexibleCard/components/blocks/title-block/index.js +4 -2
  15. package/dist/cjs/view/FlexibleCard/components/blocks/title-block/resolved/index.js +3 -1
  16. package/dist/cjs/view/FlexibleCard/components/elements/icon/index.js +3 -2
  17. package/dist/cjs/view/LinkUrl/index.js +1 -1
  18. package/dist/es2019/constants.js +1 -0
  19. package/dist/es2019/extractors/flexible/actions/extract-view-related-links-action.js +14 -0
  20. package/dist/es2019/extractors/flexible/actions/index.js +6 -1
  21. package/dist/es2019/messages.js +5 -0
  22. package/dist/es2019/state/flexible-ui-context/types.js +1 -8
  23. package/dist/es2019/utils/analytics/analytics.js +1 -1
  24. package/dist/es2019/utils/index.js +14 -0
  25. package/dist/es2019/view/FlexibleCard/components/actions/index.js +2 -1
  26. package/dist/es2019/view/FlexibleCard/components/actions/view-related-links-action/index.js +20 -0
  27. package/dist/es2019/view/FlexibleCard/components/actions/view-related-links-action/related-links-action-icon/index.js +17 -0
  28. package/dist/es2019/view/FlexibleCard/components/actions/view-related-links-action/types.js +1 -0
  29. package/dist/es2019/view/FlexibleCard/components/blocks/title-block/errored/index.js +2 -0
  30. package/dist/es2019/view/FlexibleCard/components/blocks/title-block/index.js +3 -1
  31. package/dist/es2019/view/FlexibleCard/components/blocks/title-block/resolved/index.js +2 -0
  32. package/dist/es2019/view/FlexibleCard/components/elements/icon/index.js +3 -2
  33. package/dist/es2019/view/LinkUrl/index.js +1 -1
  34. package/dist/esm/constants.js +1 -0
  35. package/dist/esm/extractors/flexible/actions/extract-view-related-links-action.js +14 -0
  36. package/dist/esm/extractors/flexible/actions/index.js +6 -2
  37. package/dist/esm/messages.js +5 -0
  38. package/dist/esm/state/flexible-ui-context/types.js +1 -8
  39. package/dist/esm/utils/analytics/analytics.js +1 -1
  40. package/dist/esm/utils/index.js +14 -0
  41. package/dist/esm/view/FlexibleCard/components/actions/index.js +2 -1
  42. package/dist/esm/view/FlexibleCard/components/actions/view-related-links-action/index.js +20 -0
  43. package/dist/esm/view/FlexibleCard/components/actions/view-related-links-action/related-links-action-icon/index.js +19 -0
  44. package/dist/esm/view/FlexibleCard/components/actions/view-related-links-action/types.js +1 -0
  45. package/dist/esm/view/FlexibleCard/components/blocks/title-block/errored/index.js +3 -1
  46. package/dist/esm/view/FlexibleCard/components/blocks/title-block/index.js +4 -2
  47. package/dist/esm/view/FlexibleCard/components/blocks/title-block/resolved/index.js +3 -1
  48. package/dist/esm/view/FlexibleCard/components/elements/icon/index.js +3 -2
  49. package/dist/esm/view/LinkUrl/index.js +1 -1
  50. package/dist/types/constants.d.ts +2 -1
  51. package/dist/types/extractors/flexible/actions/extract-view-related-links-action.d.ts +3 -0
  52. package/dist/types/messages.d.ts +1 -1
  53. package/dist/types/state/flexible-ui-context/types.d.ts +9 -5
  54. package/dist/types/utils/index.d.ts +2 -2
  55. package/dist/types/view/BlockCard/index.d.ts +2 -2
  56. package/dist/types/view/BlockCard/views/flexible/unresolved-view/index.d.ts +1 -1
  57. package/dist/types/view/Card/types.d.ts +7 -7
  58. package/dist/types/view/FlexibleCard/components/actions/index.d.ts +1 -0
  59. package/dist/types/view/FlexibleCard/components/actions/view-related-links-action/index.d.ts +5 -0
  60. package/dist/types/view/FlexibleCard/components/actions/view-related-links-action/related-links-action-icon/index.d.ts +7 -0
  61. package/dist/types/view/FlexibleCard/components/actions/view-related-links-action/types.d.ts +2 -0
  62. package/dist/types/view/FlexibleCard/components/blocks/title-block/errored/index.d.ts +1 -1
  63. package/dist/types/view/FlexibleCard/components/blocks/title-block/index.d.ts +1 -1
  64. package/dist/types/view/FlexibleCard/components/blocks/title-block/resolved/index.d.ts +1 -1
  65. package/dist/types/view/FlexibleCard/components/blocks/title-block/types.d.ts +10 -5
  66. package/dist/types/view/FlexibleCard/components/elements/icon/index.d.ts +1 -1
  67. package/dist/types/view/FlexibleCard/components/elements/icon/types.d.ts +7 -2
  68. package/dist/types/view/FlexibleCard/components/elements/link/index.d.ts +1 -1
  69. package/dist/types/view/FlexibleCard/components/elements/link/types.d.ts +3 -3
  70. package/dist/types-ts4.5/constants.d.ts +2 -1
  71. package/dist/types-ts4.5/extractors/flexible/actions/extract-view-related-links-action.d.ts +3 -0
  72. package/dist/types-ts4.5/messages.d.ts +1 -1
  73. package/dist/types-ts4.5/state/flexible-ui-context/types.d.ts +9 -5
  74. package/dist/types-ts4.5/utils/index.d.ts +2 -2
  75. package/dist/types-ts4.5/view/BlockCard/index.d.ts +2 -2
  76. package/dist/types-ts4.5/view/BlockCard/views/flexible/unresolved-view/index.d.ts +1 -1
  77. package/dist/types-ts4.5/view/Card/types.d.ts +7 -7
  78. package/dist/types-ts4.5/view/FlexibleCard/components/actions/index.d.ts +1 -0
  79. package/dist/types-ts4.5/view/FlexibleCard/components/actions/view-related-links-action/index.d.ts +5 -0
  80. package/dist/types-ts4.5/view/FlexibleCard/components/actions/view-related-links-action/related-links-action-icon/index.d.ts +7 -0
  81. package/dist/types-ts4.5/view/FlexibleCard/components/actions/view-related-links-action/types.d.ts +2 -0
  82. package/dist/types-ts4.5/view/FlexibleCard/components/blocks/title-block/errored/index.d.ts +1 -1
  83. package/dist/types-ts4.5/view/FlexibleCard/components/blocks/title-block/index.d.ts +1 -1
  84. package/dist/types-ts4.5/view/FlexibleCard/components/blocks/title-block/resolved/index.d.ts +1 -1
  85. package/dist/types-ts4.5/view/FlexibleCard/components/blocks/title-block/types.d.ts +10 -5
  86. package/dist/types-ts4.5/view/FlexibleCard/components/elements/icon/index.d.ts +1 -1
  87. package/dist/types-ts4.5/view/FlexibleCard/components/elements/icon/types.d.ts +7 -2
  88. package/dist/types-ts4.5/view/FlexibleCard/components/elements/link/index.d.ts +1 -1
  89. package/dist/types-ts4.5/view/FlexibleCard/components/elements/link/types.d.ts +3 -3
  90. package/package.json +8 -2
@@ -704,5 +704,10 @@ export var messages = defineMessages({
704
704
  id: 'fabric.linking.related_links_modal_title.nonfinal',
705
705
  defaultMessage: 'Recent Links',
706
706
  description: 'Shown as the title for the related links modal'
707
+ },
708
+ related_links_view_related_urls: {
709
+ id: 'fabric.linking.related_links_view_related_urls.nonfinal',
710
+ defaultMessage: 'View recent links...',
711
+ description: 'Action to view related links to the given resource'
707
712
  }
708
713
  });
@@ -1,8 +1 @@
1
- import { ActionName, InternalActionName } from '../../constants';
2
-
3
- /**
4
- * This provides the data that will be used by Smart Links Flexible UI to populate it's
5
- * underlying elements.
6
- */
7
-
8
- // TODO: types more specific once modal is implemented
1
+ export {};
@@ -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.71.0"
18
+ packageVersion: "26.73.0"
19
19
  };
20
20
  export var TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
21
21
  TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
@@ -364,6 +364,20 @@ export var combineFrameStyle = function combineFrameStyle(frameStyle, isFrameVis
364
364
  * @param themeState
365
365
  */
366
366
  export var getPreviewUrlWithTheme = function getPreviewUrlWithTheme(previewUrl, themeState) {
367
+ if (getBooleanFF('platform.linking-platform.smart-card.fix-embed-preview-url-query-params')) {
368
+ try {
369
+ var url = new URL(previewUrl);
370
+ if (getBooleanFF('platform.linking-platform.smart-card.enable-theme-state-url')) {
371
+ url.searchParams.append('themeState', themeObjectToString(themeState));
372
+ } else {
373
+ var _themeState$colorMode;
374
+ url.searchParams.append('themeMode', (_themeState$colorMode = themeState.colorMode) !== null && _themeState$colorMode !== void 0 ? _themeState$colorMode : '');
375
+ }
376
+ return url.href;
377
+ } catch (_unused) {
378
+ return previewUrl;
379
+ }
380
+ }
367
381
  if (getBooleanFF('platform.linking-platform.smart-card.enable-theme-state-url')) {
368
382
  var themeStateQueryString = encodeURIComponent(themeObjectToString(themeState));
369
383
  return "".concat(previewUrl).concat(previewUrl.includes('?') ? '&' : '?', "themeState=").concat(themeStateQueryString);
@@ -6,4 +6,5 @@ export { default as FollowAction } from './follow-action';
6
6
  export { default as PreviewAction } from './preview-action';
7
7
  export { default as CopyLinkAction } from './copy-link-action';
8
8
  export { default as AISummaryAction } from './ai-summary-action';
9
- export { default as AutomationAction } from './automation-action';
9
+ export { default as AutomationAction } from './automation-action';
10
+ export { default as ViewRelatedLinksAction } from './view-related-links-action';
@@ -0,0 +1,20 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ /** @jsx jsx */
3
+ import { jsx } from '@emotion/react';
4
+ import Action from '../action';
5
+ import { FormattedMessage } from 'react-intl-next';
6
+ import { messages } from '../../../../../messages';
7
+ import { useFlexibleUiContext } from '../../../../../state/flexible-ui-context';
8
+ import RelatedLinksActionIcon from './related-links-action-icon';
9
+ var ViewRelatedLinksAction = function ViewRelatedLinksAction(props) {
10
+ var _context$actions;
11
+ var context = useFlexibleUiContext();
12
+ var actionData = context === null || context === void 0 || (_context$actions = context.actions) === null || _context$actions === void 0 ? void 0 : _context$actions.ViewRelatedLinksAction;
13
+ return actionData ? jsx(Action, _extends({
14
+ content: jsx(FormattedMessage, messages.related_links_view_related_urls),
15
+ icon: jsx(RelatedLinksActionIcon, null),
16
+ testId: "smart-action-view-related-links-action",
17
+ ariaLabel: "View most recent pages or content types coming from or found on this link"
18
+ }, props)) : null;
19
+ };
20
+ export default ViewRelatedLinksAction;
@@ -0,0 +1,19 @@
1
+ /** @jsx jsx */
2
+ import { css, jsx } from '@emotion/react';
3
+ import ChildIssuesIcon from '@atlaskit/icon/glyph/child-issues';
4
+ var rotateSvg = css({
5
+ transform: 'rotate(180deg)',
6
+ display: 'inline-block'
7
+ });
8
+
9
+ /**
10
+ * ChildIssuesIcon but 180 degrees rotated
11
+ */
12
+ var RelatedLinksActionIcon = function RelatedLinksActionIcon() {
13
+ return jsx("span", {
14
+ css: rotateSvg
15
+ }, jsx(ChildIssuesIcon, {
16
+ label: "View recent links..."
17
+ }));
18
+ };
19
+ export default RelatedLinksActionIcon;
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- var _excluded = ["actionGroup", "retry", "position", "testId", "title", "hideIcon"];
3
+ var _excluded = ["actionGroup", "retry", "position", "testId", "title", "icon", "hideIcon"];
4
4
  /** @jsx jsx */
5
5
  import React from 'react';
6
6
  import { FormattedMessage } from 'react-intl-next';
@@ -43,6 +43,7 @@ var TitleBlockErroredView = function TitleBlockErroredView(_ref) {
43
43
  position = _ref.position,
44
44
  testId = _ref.testId,
45
45
  title = _ref.title,
46
+ icon = _ref.icon,
46
47
  hideIcon = _ref.hideIcon,
47
48
  blockProps = _objectWithoutProperties(_ref, _excluded);
48
49
  var _ref2 = retry || {},
@@ -55,6 +56,7 @@ var TitleBlockErroredView = function TitleBlockErroredView(_ref) {
55
56
  return jsx(Block, _extends({}, blockProps, {
56
57
  testId: "".concat(testId, "-errored-view")
57
58
  }), !hideIcon && jsx(LinkIcon, {
59
+ overrideIcon: icon,
58
60
  position: position
59
61
  }), title, descriptor && jsx(ElementGroup, {
60
62
  direction: SmartLinkDirection.Horizontal,
@@ -1,7 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
3
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
4
- var _excluded = ["actions", "anchorTarget", "hideTitleTooltip", "maxLines", "onActionMenuOpenChange", "onClick", "overrideCss", "status", "showActionOnHover", "testId", "text", "theme", "hideRetry", "metadataPosition", "hideIcon"];
4
+ var _excluded = ["actions", "anchorTarget", "hideTitleTooltip", "maxLines", "onActionMenuOpenChange", "onClick", "overrideCss", "status", "showActionOnHover", "testId", "text", "icon", "theme", "hideRetry", "metadataPosition", "hideIcon"];
5
5
  import React, { useCallback, useState } from 'react';
6
6
  import { css } from '@emotion/react';
7
7
  import { useMouseDownEvent } from '../../../../../state/analytics/useLinkClicked';
@@ -67,6 +67,7 @@ var TitleBlock = function TitleBlock(_ref) {
67
67
  _ref$testId = _ref.testId,
68
68
  testId = _ref$testId === void 0 ? 'smart-block-title' : _ref$testId,
69
69
  text = _ref.text,
70
+ icon = _ref.icon,
70
71
  theme = _ref.theme,
71
72
  hideRetry = _ref.hideRetry,
72
73
  metadataPosition = _ref.metadataPosition,
@@ -114,7 +115,8 @@ var TitleBlock = function TitleBlock(_ref) {
114
115
  testId: testId,
115
116
  title: title,
116
117
  metadataPosition: metadataPosition,
117
- hideIcon: hideIcon
118
+ hideIcon: hideIcon,
119
+ icon: icon
118
120
  }));
119
121
  };
120
122
  export default TitleBlock;
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
- var _excluded = ["actionGroup", "metadata", "position", "subtitle", "testId", "text", "title", "metadataPosition", "hideIcon"];
3
+ var _excluded = ["actionGroup", "metadata", "position", "subtitle", "testId", "text", "icon", "title", "metadataPosition", "hideIcon"];
4
4
  import React from 'react';
5
5
  import { css } from '@emotion/react';
6
6
  import { LinkIcon } from '../../../elements';
@@ -23,6 +23,7 @@ var TitleBlockResolvedView = function TitleBlockResolvedView(_ref) {
23
23
  subtitle = _ref$subtitle === void 0 ? [] : _ref$subtitle,
24
24
  testId = _ref.testId,
25
25
  text = _ref.text,
26
+ icon = _ref.icon,
26
27
  title = _ref.title,
27
28
  metadataPosition = _ref.metadataPosition,
28
29
  hideIcon = _ref.hideIcon,
@@ -32,6 +33,7 @@ var TitleBlockResolvedView = function TitleBlockResolvedView(_ref) {
32
33
  return /*#__PURE__*/React.createElement(Block, _extends({}, blockProps, {
33
34
  testId: "".concat(testId, "-resolved-view")
34
35
  }), !hideIcon && /*#__PURE__*/React.createElement(LinkIcon, {
36
+ overrideIcon: icon,
35
37
  position: position
36
38
  }), /*#__PURE__*/React.createElement(ElementGroup, {
37
39
  direction: SmartLinkDirection.Vertical,
@@ -70,6 +70,7 @@ var renderImageIcon = function renderImageIcon(defaultIcon, url, testId) {
70
70
  */
71
71
  var Icon = function Icon(_ref) {
72
72
  var icon = _ref.icon,
73
+ overrideIcon = _ref.overrideIcon,
73
74
  _ref$label = _ref.label,
74
75
  label = _ref$label === void 0 ? 'Link' : _ref$label,
75
76
  name = _ref.name,
@@ -84,8 +85,8 @@ var Icon = function Icon(_ref) {
84
85
  url = _ref.url;
85
86
  var element = useMemo(function () {
86
87
  var defaultIcon = renderDefaultIcon(label, testId);
87
- return (render === null || render === void 0 ? void 0 : render()) || renderImageIcon(defaultIcon, url, testId) || renderAtlaskitIcon(icon, label, testId) || defaultIcon;
88
- }, [icon, label, render, testId, url]);
88
+ return overrideIcon || (render === null || render === void 0 ? void 0 : render()) || renderImageIcon(defaultIcon, url, testId) || renderAtlaskitIcon(icon, label, testId) || defaultIcon;
89
+ }, [overrideIcon, icon, label, render, testId, url]);
89
90
  var width = getIconWidth(size);
90
91
  var styles = getIconStyles(position, width);
91
92
  var renderStyles = render ? getCustomRenderStyles(width) : undefined;
@@ -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.71.0",
13
+ packageVersion: "26.73.0",
14
14
  componentName: 'linkUrl'
15
15
  };
16
16
  var Link = withLinkClickedEvent('a');
@@ -141,7 +141,8 @@ export declare enum ActionName {
141
141
  CustomAction = "CustomAction"
142
142
  }
143
143
  export declare enum InternalActionName {
144
- AISummaryAction = "AISummaryAction"
144
+ AISummaryAction = "AISummaryAction",
145
+ ViewRelatedLinksAction = "ViewRelatedLinksAction"
145
146
  }
146
147
  export type FlexibleUiActionName = keyof typeof ActionName | keyof typeof InternalActionName;
147
148
  /**
@@ -0,0 +1,3 @@
1
+ import { type JsonLd } from 'json-ld-types';
2
+ import { type ViewRelatedLinksActionData } from '../../../state/flexible-ui-context/types';
3
+ export declare const extractViewRelatedLinksAction: (response: JsonLd.Response) => ViewRelatedLinksActionData | undefined;
@@ -1,6 +1,6 @@
1
1
  import { type 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_abbreviation' | 'ai_summarized_info' | 'ai_summarized_info_short' | 'ai_summarizing' | 'ai_summary_error_generic' | 'ai_summary_error_acceptable_use_violation' | 'ai_summary_error_hipaa_content_detected' | 'ai_summary_error_exceeding_context_length_error' | 'ai_summary_action' | 'ai_summary_action_description' | 'automation_action_title' | 'automation_action_tooltip' | 'automation_action_icon_label' | 'automation_action_confluence_page_modal_title' | 'automation_action_confluence_page_modal_description' | 'copy_summary_action' | 'copy_summary_action_description' | 'copied_summary_action_description' | 'beta' | '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' | 'copied_url_to_clipboard' | 'could_not_load_link' | 'download' | 'download_description' | 'download_file' | 'follow' | 'follow_project_description' | 'follow_project' | 'follow_goal' | 'follow_goal_description' | 'follow_project_error' | 'follow_goal_error' | '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_description' | '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' | 'unfollow_project_description' | 'unfollow_project' | 'unfollow_project_error' | 'unfollow_goal' | 'unfollow_goal_description' | 'unfollow_goal_error' | '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' | 'related_links_modal_title_nonfinal';
3
+ export type MessageKey = 'assigned_to' | 'ai_summarize' | 'ai_summarized' | 'ai_summarized_abbreviation' | 'ai_summarized_info' | 'ai_summarized_info_short' | 'ai_summarizing' | 'ai_summary_error_generic' | 'ai_summary_error_acceptable_use_violation' | 'ai_summary_error_hipaa_content_detected' | 'ai_summary_error_exceeding_context_length_error' | 'ai_summary_action' | 'ai_summary_action_description' | 'automation_action_title' | 'automation_action_tooltip' | 'automation_action_icon_label' | 'automation_action_confluence_page_modal_title' | 'automation_action_confluence_page_modal_description' | 'copy_summary_action' | 'copy_summary_action_description' | 'copied_summary_action_description' | 'beta' | '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' | 'copied_url_to_clipboard' | 'could_not_load_link' | 'download' | 'download_description' | 'download_file' | 'follow' | 'follow_project_description' | 'follow_project' | 'follow_goal' | 'follow_goal_description' | 'follow_project_error' | 'follow_goal_error' | '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_description' | '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' | 'unfollow_project_description' | 'unfollow_project' | 'unfollow_project_error' | 'unfollow_goal' | 'unfollow_goal_description' | 'unfollow_goal_error' | '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' | 'related_links_modal_title_nonfinal' | 'related_links_view_related_urls';
4
4
  type Messages = {
5
5
  [K in MessageKey]: MessageDescriptor;
6
6
  };
@@ -1,11 +1,11 @@
1
- import { LinkLozenge } from '../../extractors/common/lozenge/types';
2
- import { LinkPerson } from '@atlaskit/link-extractors';
3
- import { ActionName, IconType, InternalActionName, MediaType } from '../../constants';
4
- import { InvokeRequestWithCardDetails } from '../hooks/use-invoke/types';
1
+ import { type LinkLozenge } from '../../extractors/common/lozenge/types';
2
+ import { type LinkPerson } from '@atlaskit/link-extractors';
3
+ import { type ActionName, type IconType, type InternalActionName, type MediaType } from '../../constants';
4
+ import { type InvokeRequestWithCardDetails } from '../hooks/use-invoke/types';
5
5
  import type { CardInnerAppearance } from '../../view/Card/types';
6
6
  import type { AnalyticsFacade } from '../analytics';
7
7
  import type { ProductType } from '@atlaskit/linking-common';
8
- import { MessageDescriptor } from 'react-intl-next';
8
+ import { type MessageDescriptor } from 'react-intl-next';
9
9
  /**
10
10
  * This provides the data that will be used by Smart Links Flexible UI to populate it's
11
11
  * underlying elements.
@@ -249,6 +249,7 @@ export type FlexibleUiActions = {
249
249
  [ActionName.CopyLinkAction]?: CopyLinkActionData;
250
250
  [InternalActionName.AISummaryAction]?: AISummaryActionData;
251
251
  [ActionName.AutomationAction]?: AutomationActionData;
252
+ [InternalActionName.ViewRelatedLinksAction]?: ViewRelatedLinksActionData;
252
253
  };
253
254
  export type PreviewActionData = {
254
255
  downloadUrl?: string;
@@ -283,6 +284,9 @@ export type AutomationActionData = {
283
284
  modalTitle: MessageDescriptor;
284
285
  modalDescription: MessageDescriptor;
285
286
  };
287
+ export type ViewRelatedLinksActionData = {
288
+ url: string;
289
+ };
286
290
  export type FlexibleAnalyticsContextType = AnalyticsFacade & {
287
291
  display?: CardInnerAppearance;
288
292
  extensionKey?: string;
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import type { CardProps } from '../view/Card';
3
- import { FrameStyle } from '../view/EmbedCard/types';
4
- import { ActiveThemeState } from '@atlaskit/tokens/src/theme-config';
3
+ import { type FrameStyle } from '../view/EmbedCard/types';
4
+ import { type ActiveThemeState } from '@atlaskit/tokens/src/theme-config';
5
5
  export declare const isCardWithData: (props: CardProps) => boolean;
6
6
  export declare const isSpecialEvent: (evt: React.MouseEvent | React.KeyboardEvent) => boolean;
7
7
  export declare const isIframe: () => boolean;
@@ -1,6 +1,6 @@
1
1
  /** @jsx jsx */
2
- import { FC } from 'react';
3
- import { BlockCardProps } from './types';
2
+ import { type FC } from 'react';
3
+ import { type BlockCardProps } from './types';
4
4
  import { AuthorizeAction } from './actions/AuthorizeAction';
5
5
  import { ForbiddenAction } from './actions/ForbiddenAction';
6
6
  import { ResolvedView as BlockCardResolvedView } from './views/ResolvedView';
@@ -1,4 +1,4 @@
1
1
  /// <reference types="react" />
2
- import { UnresolvedViewProps } from './types';
2
+ import { type UnresolvedViewProps } from './types';
3
3
  declare const UnresolvedView: ({ actions, cardState, children, onAuthorize, onClick, onError, showPreview, testId, title, url, }: UnresolvedViewProps) => JSX.Element;
4
4
  export default UnresolvedView;
@@ -1,11 +1,11 @@
1
1
  /// <reference types="react" />
2
- import { WithAnalyticsEventsProps } from '@atlaskit/analytics-next';
3
- import { CardAppearance } from '@atlaskit/linking-common';
4
- import { CardPlatform } from '@atlaskit/link-extractors';
5
- import { AnalyticsFacade } from '../../state/analytics';
6
- import { FlexibleUiOptions } from '../FlexibleCard/types';
7
- import { InlinePreloaderStyle, OnErrorCallback } from '../types';
8
- import { FrameStyle } from '../EmbedCard/types';
2
+ import { type WithAnalyticsEventsProps } from '@atlaskit/analytics-next';
3
+ import { type CardAppearance } from '@atlaskit/linking-common';
4
+ import { type CardPlatform } from '@atlaskit/link-extractors';
5
+ import { type AnalyticsFacade } from '../../state/analytics';
6
+ import { type FlexibleUiOptions } from '../FlexibleCard/types';
7
+ import { type InlinePreloaderStyle, type OnErrorCallback } from '../types';
8
+ import { type FrameStyle } from '../EmbedCard/types';
9
9
  export type { CardAppearance, CardPlatform };
10
10
  export type CardInnerAppearance = CardAppearance | 'embedPreview' | 'flexible' | 'hoverCardPreview';
11
11
  export type EmbedIframeUrlType = 'href' | 'interactiveHref';
@@ -7,3 +7,4 @@ export { default as PreviewAction } from './preview-action';
7
7
  export { default as CopyLinkAction } from './copy-link-action';
8
8
  export { default as AISummaryAction } from './ai-summary-action';
9
9
  export { default as AutomationAction } from './automation-action';
10
+ export { default as ViewRelatedLinksAction } from './view-related-links-action';
@@ -0,0 +1,5 @@
1
+ /** @jsx jsx */
2
+ import { jsx } from '@emotion/react';
3
+ import { type ViewRelatedLinksActionProps } from './types';
4
+ declare const ViewRelatedLinksAction: (props: ViewRelatedLinksActionProps) => jsx.JSX.Element | null;
5
+ export default ViewRelatedLinksAction;
@@ -0,0 +1,7 @@
1
+ /** @jsx jsx */
2
+ import { jsx } from '@emotion/react';
3
+ /**
4
+ * ChildIssuesIcon but 180 degrees rotated
5
+ */
6
+ declare const RelatedLinksActionIcon: () => jsx.JSX.Element;
7
+ export default RelatedLinksActionIcon;
@@ -0,0 +1,2 @@
1
+ import type { ActionProps } from '../action/types';
2
+ export type ViewRelatedLinksActionProps = ActionProps;
@@ -1,6 +1,6 @@
1
1
  /** @jsx jsx */
2
2
  import React from 'react';
3
- import { TitleBlockViewProps } from '../types';
3
+ import { type TitleBlockViewProps } from '../types';
4
4
  /**
5
5
  * Represents an Errored TitleBlock view.
6
6
  * This will render when a Smart Link did not successfully resolve.
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { TitleBlockProps } from './types';
2
+ import { type TitleBlockProps } from './types';
3
3
  /**
4
4
  * Represents a TitleBlock, which is the foundation of Flexible UI.
5
5
  * This contains an icon, the link, and any associated metadata and actions in one block.
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { TitleBlockViewProps } from '../types';
2
+ import { type TitleBlockViewProps } from '../types';
3
3
  /**
4
4
  * This renders a fully resolved TitleBlock.
5
5
  * This should render when a Smart Link returns a valid response.
@@ -1,8 +1,8 @@
1
- import React from 'react';
2
- import { ActionItem, BlockProps, ElementItem, OnActionMenuOpenChangeOptions } from '../types';
3
- import { SmartLinkPosition, SmartLinkTheme } from '../../../../../constants';
4
- import { RetryOptions } from '../../../types';
5
- import { AnchorTarget } from '../../types';
1
+ import type React from 'react';
2
+ import { type ActionItem, type BlockProps, type ElementItem, type OnActionMenuOpenChangeOptions } from '../types';
3
+ import { type SmartLinkPosition, type SmartLinkTheme } from '../../../../../constants';
4
+ import { type RetryOptions } from '../../../types';
5
+ import { type AnchorTarget } from '../../types';
6
6
  export type TitleBlockProps = {
7
7
  /**
8
8
  * An array of action items to be displayed after the title
@@ -80,6 +80,11 @@ export type TitleBlockProps = {
80
80
  * the Smart Link.
81
81
  */
82
82
  text?: string;
83
+ /**
84
+ * The icon to display in the title block. Overrides any icon that is retrieved from
85
+ * the Smart Link.
86
+ */
87
+ icon?: React.ReactNode;
83
88
  /**
84
89
  * The theme of the link text. Can be Black or Link (default URL blue)
85
90
  * @internal
@@ -1,6 +1,6 @@
1
1
  /** @jsx jsx */
2
2
  import React from 'react';
3
- import { IconProps } from './types';
3
+ import { type IconProps } from './types';
4
4
  /**
5
5
  * A base element that displays an Icon or favicon.
6
6
  * @internal
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
- import { ElementProps } from '../types';
3
- import { IconType, SmartLinkPosition } from '../../../../../constants';
2
+ import { type ElementProps } from '../types';
3
+ import { type IconType, type SmartLinkPosition } from '../../../../../constants';
4
4
  export type IconProps = ElementProps & {
5
5
  /**
6
6
  * If provided, Icon element will use this render function instead.
@@ -11,6 +11,11 @@ export type IconProps = ElementProps & {
11
11
  * will be used.
12
12
  */
13
13
  icon?: IconType;
14
+ /**
15
+ * If provided, overrideIcon will be rendered in the place of the provided icon or one that is
16
+ * supplied by the URL.
17
+ */
18
+ overrideIcon?: React.ReactNode;
14
19
  /**
15
20
  * The label provided to the Atlaskit Icon.
16
21
  */
@@ -1,6 +1,6 @@
1
1
  /** @jsx jsx */
2
2
  import React from 'react';
3
- import { LinkProps } from './types';
3
+ import { type LinkProps } from './types';
4
4
  /**
5
5
  * A base element that represent an anchor.
6
6
  * @internal
@@ -1,7 +1,7 @@
1
1
  /// <reference types="react" />
2
- import { ElementProps } from '../types';
3
- import { SmartLinkTheme } from '../../../../../constants';
4
- import { AnchorTarget } from '../../types';
2
+ import { type ElementProps } from '../types';
3
+ import { type SmartLinkTheme } from '../../../../../constants';
4
+ import { type AnchorTarget } from '../../types';
5
5
  export type LinkProps = ElementProps & {
6
6
  /**
7
7
  * Determines whether the link should display tooltip on hover.
@@ -141,7 +141,8 @@ export declare enum ActionName {
141
141
  CustomAction = "CustomAction"
142
142
  }
143
143
  export declare enum InternalActionName {
144
- AISummaryAction = "AISummaryAction"
144
+ AISummaryAction = "AISummaryAction",
145
+ ViewRelatedLinksAction = "ViewRelatedLinksAction"
145
146
  }
146
147
  export type FlexibleUiActionName = keyof typeof ActionName | keyof typeof InternalActionName;
147
148
  /**
@@ -0,0 +1,3 @@
1
+ import { type JsonLd } from 'json-ld-types';
2
+ import { type ViewRelatedLinksActionData } from '../../../state/flexible-ui-context/types';
3
+ export declare const extractViewRelatedLinksAction: (response: JsonLd.Response) => ViewRelatedLinksActionData | undefined;
@@ -1,6 +1,6 @@
1
1
  import { type 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_abbreviation' | 'ai_summarized_info' | 'ai_summarized_info_short' | 'ai_summarizing' | 'ai_summary_error_generic' | 'ai_summary_error_acceptable_use_violation' | 'ai_summary_error_hipaa_content_detected' | 'ai_summary_error_exceeding_context_length_error' | 'ai_summary_action' | 'ai_summary_action_description' | 'automation_action_title' | 'automation_action_tooltip' | 'automation_action_icon_label' | 'automation_action_confluence_page_modal_title' | 'automation_action_confluence_page_modal_description' | 'copy_summary_action' | 'copy_summary_action_description' | 'copied_summary_action_description' | 'beta' | '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' | 'copied_url_to_clipboard' | 'could_not_load_link' | 'download' | 'download_description' | 'download_file' | 'follow' | 'follow_project_description' | 'follow_project' | 'follow_goal' | 'follow_goal_description' | 'follow_project_error' | 'follow_goal_error' | '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_description' | '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' | 'unfollow_project_description' | 'unfollow_project' | 'unfollow_project_error' | 'unfollow_goal' | 'unfollow_goal_description' | 'unfollow_goal_error' | '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' | 'related_links_modal_title_nonfinal';
3
+ export type MessageKey = 'assigned_to' | 'ai_summarize' | 'ai_summarized' | 'ai_summarized_abbreviation' | 'ai_summarized_info' | 'ai_summarized_info_short' | 'ai_summarizing' | 'ai_summary_error_generic' | 'ai_summary_error_acceptable_use_violation' | 'ai_summary_error_hipaa_content_detected' | 'ai_summary_error_exceeding_context_length_error' | 'ai_summary_action' | 'ai_summary_action_description' | 'automation_action_title' | 'automation_action_tooltip' | 'automation_action_icon_label' | 'automation_action_confluence_page_modal_title' | 'automation_action_confluence_page_modal_description' | 'copy_summary_action' | 'copy_summary_action_description' | 'copied_summary_action_description' | 'beta' | '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' | 'copied_url_to_clipboard' | 'could_not_load_link' | 'download' | 'download_description' | 'download_file' | 'follow' | 'follow_project_description' | 'follow_project' | 'follow_goal' | 'follow_goal_description' | 'follow_project_error' | 'follow_goal_error' | '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_description' | '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' | 'unfollow_project_description' | 'unfollow_project' | 'unfollow_project_error' | 'unfollow_goal' | 'unfollow_goal_description' | 'unfollow_goal_error' | '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' | 'related_links_modal_title_nonfinal' | 'related_links_view_related_urls';
4
4
  type Messages = {
5
5
  [K in MessageKey]: MessageDescriptor;
6
6
  };
@@ -1,11 +1,11 @@
1
- import { LinkLozenge } from '../../extractors/common/lozenge/types';
2
- import { LinkPerson } from '@atlaskit/link-extractors';
3
- import { ActionName, IconType, InternalActionName, MediaType } from '../../constants';
4
- import { InvokeRequestWithCardDetails } from '../hooks/use-invoke/types';
1
+ import { type LinkLozenge } from '../../extractors/common/lozenge/types';
2
+ import { type LinkPerson } from '@atlaskit/link-extractors';
3
+ import { type ActionName, type IconType, type InternalActionName, type MediaType } from '../../constants';
4
+ import { type InvokeRequestWithCardDetails } from '../hooks/use-invoke/types';
5
5
  import type { CardInnerAppearance } from '../../view/Card/types';
6
6
  import type { AnalyticsFacade } from '../analytics';
7
7
  import type { ProductType } from '@atlaskit/linking-common';
8
- import { MessageDescriptor } from 'react-intl-next';
8
+ import { type MessageDescriptor } from 'react-intl-next';
9
9
  /**
10
10
  * This provides the data that will be used by Smart Links Flexible UI to populate it's
11
11
  * underlying elements.
@@ -249,6 +249,7 @@ export type FlexibleUiActions = {
249
249
  [ActionName.CopyLinkAction]?: CopyLinkActionData;
250
250
  [InternalActionName.AISummaryAction]?: AISummaryActionData;
251
251
  [ActionName.AutomationAction]?: AutomationActionData;
252
+ [InternalActionName.ViewRelatedLinksAction]?: ViewRelatedLinksActionData;
252
253
  };
253
254
  export type PreviewActionData = {
254
255
  downloadUrl?: string;
@@ -283,6 +284,9 @@ export type AutomationActionData = {
283
284
  modalTitle: MessageDescriptor;
284
285
  modalDescription: MessageDescriptor;
285
286
  };
287
+ export type ViewRelatedLinksActionData = {
288
+ url: string;
289
+ };
286
290
  export type FlexibleAnalyticsContextType = AnalyticsFacade & {
287
291
  display?: CardInnerAppearance;
288
292
  extensionKey?: string;
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import type { CardProps } from '../view/Card';
3
- import { FrameStyle } from '../view/EmbedCard/types';
4
- import { ActiveThemeState } from '@atlaskit/tokens/src/theme-config';
3
+ import { type FrameStyle } from '../view/EmbedCard/types';
4
+ import { type ActiveThemeState } from '@atlaskit/tokens/src/theme-config';
5
5
  export declare const isCardWithData: (props: CardProps) => boolean;
6
6
  export declare const isSpecialEvent: (evt: React.MouseEvent | React.KeyboardEvent) => boolean;
7
7
  export declare const isIframe: () => boolean;
@@ -1,6 +1,6 @@
1
1
  /** @jsx jsx */
2
- import { FC } from 'react';
3
- import { BlockCardProps } from './types';
2
+ import { type FC } from 'react';
3
+ import { type BlockCardProps } from './types';
4
4
  import { AuthorizeAction } from './actions/AuthorizeAction';
5
5
  import { ForbiddenAction } from './actions/ForbiddenAction';
6
6
  import { ResolvedView as BlockCardResolvedView } from './views/ResolvedView';
@@ -1,4 +1,4 @@
1
1
  /// <reference types="react" />
2
- import { UnresolvedViewProps } from './types';
2
+ import { type UnresolvedViewProps } from './types';
3
3
  declare const UnresolvedView: ({ actions, cardState, children, onAuthorize, onClick, onError, showPreview, testId, title, url, }: UnresolvedViewProps) => JSX.Element;
4
4
  export default UnresolvedView;
@@ -1,11 +1,11 @@
1
1
  /// <reference types="react" />
2
- import { WithAnalyticsEventsProps } from '@atlaskit/analytics-next';
3
- import { CardAppearance } from '@atlaskit/linking-common';
4
- import { CardPlatform } from '@atlaskit/link-extractors';
5
- import { AnalyticsFacade } from '../../state/analytics';
6
- import { FlexibleUiOptions } from '../FlexibleCard/types';
7
- import { InlinePreloaderStyle, OnErrorCallback } from '../types';
8
- import { FrameStyle } from '../EmbedCard/types';
2
+ import { type WithAnalyticsEventsProps } from '@atlaskit/analytics-next';
3
+ import { type CardAppearance } from '@atlaskit/linking-common';
4
+ import { type CardPlatform } from '@atlaskit/link-extractors';
5
+ import { type AnalyticsFacade } from '../../state/analytics';
6
+ import { type FlexibleUiOptions } from '../FlexibleCard/types';
7
+ import { type InlinePreloaderStyle, type OnErrorCallback } from '../types';
8
+ import { type FrameStyle } from '../EmbedCard/types';
9
9
  export type { CardAppearance, CardPlatform };
10
10
  export type CardInnerAppearance = CardAppearance | 'embedPreview' | 'flexible' | 'hoverCardPreview';
11
11
  export type EmbedIframeUrlType = 'href' | 'interactiveHref';
@@ -7,3 +7,4 @@ export { default as PreviewAction } from './preview-action';
7
7
  export { default as CopyLinkAction } from './copy-link-action';
8
8
  export { default as AISummaryAction } from './ai-summary-action';
9
9
  export { default as AutomationAction } from './automation-action';
10
+ export { default as ViewRelatedLinksAction } from './view-related-links-action';