@atlaskit/smart-card 27.19.0 → 27.20.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 (89) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/cjs/utils/analytics/analytics.js +1 -1
  3. package/dist/cjs/view/FlexibleCard/components/actions/follow-action/index.js +2 -4
  4. package/dist/cjs/view/FlexibleCard/components/actions/preview-action/index.js +4 -5
  5. package/dist/cjs/view/FlexibleCard/components/blocks/action-group/action-group-item/index.js +3 -0
  6. package/dist/cjs/view/FlexibleCard/components/blocks/ai-summary-block/resolved/index.js +6 -125
  7. package/dist/cjs/view/HoverCard/components/HoverCardComponent.js +2 -16
  8. package/dist/cjs/view/HoverCard/components/HoverCardContent.js +5 -67
  9. package/dist/cjs/view/HoverCard/utils.js +2 -8
  10. package/dist/cjs/view/LinkUrl/index.js +1 -1
  11. package/dist/cjs/view/common/ai-icon/index.js +9 -69
  12. package/dist/cjs/view/common/ai-summary/index.js +1 -13
  13. package/dist/es2019/utils/analytics/analytics.js +1 -1
  14. package/dist/es2019/view/FlexibleCard/components/actions/follow-action/index.js +3 -5
  15. package/dist/es2019/view/FlexibleCard/components/actions/preview-action/index.js +4 -5
  16. package/dist/es2019/view/FlexibleCard/components/blocks/action-group/action-group-item/index.js +3 -0
  17. package/dist/es2019/view/FlexibleCard/components/blocks/ai-summary-block/resolved/index.js +6 -123
  18. package/dist/es2019/view/HoverCard/components/HoverCardComponent.js +3 -15
  19. package/dist/es2019/view/HoverCard/components/HoverCardContent.js +5 -40
  20. package/dist/es2019/view/HoverCard/utils.js +2 -8
  21. package/dist/es2019/view/LinkUrl/index.js +1 -1
  22. package/dist/es2019/view/common/ai-icon/index.js +9 -69
  23. package/dist/es2019/view/common/ai-summary/index.js +1 -10
  24. package/dist/esm/utils/analytics/analytics.js +1 -1
  25. package/dist/esm/view/FlexibleCard/components/actions/follow-action/index.js +3 -5
  26. package/dist/esm/view/FlexibleCard/components/actions/preview-action/index.js +4 -5
  27. package/dist/esm/view/FlexibleCard/components/blocks/action-group/action-group-item/index.js +3 -0
  28. package/dist/esm/view/FlexibleCard/components/blocks/ai-summary-block/resolved/index.js +7 -126
  29. package/dist/esm/view/HoverCard/components/HoverCardComponent.js +3 -17
  30. package/dist/esm/view/HoverCard/components/HoverCardContent.js +5 -66
  31. package/dist/esm/view/HoverCard/utils.js +2 -8
  32. package/dist/esm/view/LinkUrl/index.js +1 -1
  33. package/dist/esm/view/common/ai-icon/index.js +9 -69
  34. package/dist/esm/view/common/ai-summary/index.js +1 -13
  35. package/dist/types/view/FlexibleCard/components/blocks/ai-summary-block/resolved/index.d.ts +0 -10
  36. package/dist/types/view/FlexibleCard/components/blocks/ai-summary-block/types.d.ts +1 -17
  37. package/dist/types/view/FlexibleCard/components/blocks/types.d.ts +5 -1
  38. package/dist/types/view/HoverCard/components/HoverCardContent.d.ts +5 -3
  39. package/dist/types/view/HoverCard/types.d.ts +0 -2
  40. package/dist/types/view/HoverCard/utils.d.ts +0 -1
  41. package/dist/types/view/common/ai-summary/index.d.ts +1 -8
  42. package/dist/types-ts4.5/view/FlexibleCard/components/blocks/ai-summary-block/resolved/index.d.ts +0 -10
  43. package/dist/types-ts4.5/view/FlexibleCard/components/blocks/ai-summary-block/types.d.ts +1 -17
  44. package/dist/types-ts4.5/view/FlexibleCard/components/blocks/types.d.ts +5 -1
  45. package/dist/types-ts4.5/view/HoverCard/components/HoverCardContent.d.ts +5 -3
  46. package/dist/types-ts4.5/view/HoverCard/types.d.ts +0 -2
  47. package/dist/types-ts4.5/view/HoverCard/utils.d.ts +0 -1
  48. package/dist/types-ts4.5/view/common/ai-summary/index.d.ts +1 -8
  49. package/package.json +4 -17
  50. package/dist/cjs/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/ai-indicator-container.js +0 -28
  51. package/dist/cjs/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/ai-indicator-tooltip.js +0 -52
  52. package/dist/cjs/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/ai-state-done.js +0 -137
  53. package/dist/cjs/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/ai-state-error.js +0 -71
  54. package/dist/cjs/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/ai-state-loading.js +0 -34
  55. package/dist/cjs/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/index.js +0 -46
  56. package/dist/cjs/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/types.js +0 -5
  57. package/dist/cjs/view/HoverCard/components/views/resolved/index.js +0 -181
  58. package/dist/es2019/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/ai-indicator-container.js +0 -22
  59. package/dist/es2019/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/ai-indicator-tooltip.js +0 -39
  60. package/dist/es2019/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/ai-state-done.js +0 -125
  61. package/dist/es2019/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/ai-state-error.js +0 -63
  62. package/dist/es2019/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/ai-state-loading.js +0 -28
  63. package/dist/es2019/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/index.js +0 -37
  64. package/dist/es2019/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/types.js +0 -1
  65. package/dist/es2019/view/HoverCard/components/views/resolved/index.js +0 -173
  66. package/dist/esm/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/ai-indicator-container.js +0 -21
  67. package/dist/esm/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/ai-indicator-tooltip.js +0 -41
  68. package/dist/esm/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/ai-state-done.js +0 -128
  69. package/dist/esm/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/ai-state-error.js +0 -64
  70. package/dist/esm/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/ai-state-loading.js +0 -27
  71. package/dist/esm/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/index.js +0 -38
  72. package/dist/esm/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/types.js +0 -1
  73. package/dist/esm/view/HoverCard/components/views/resolved/index.js +0 -172
  74. package/dist/types/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/ai-indicator-container.d.ts +0 -4
  75. package/dist/types/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/ai-indicator-tooltip.d.ts +0 -4
  76. package/dist/types/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/ai-state-done.d.ts +0 -4
  77. package/dist/types/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/ai-state-error.d.ts +0 -4
  78. package/dist/types/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/ai-state-loading.d.ts +0 -4
  79. package/dist/types/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/index.d.ts +0 -8
  80. package/dist/types/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/types.d.ts +0 -21
  81. package/dist/types/view/HoverCard/components/views/resolved/index.d.ts +0 -7
  82. package/dist/types-ts4.5/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/ai-indicator-container.d.ts +0 -4
  83. package/dist/types-ts4.5/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/ai-indicator-tooltip.d.ts +0 -4
  84. package/dist/types-ts4.5/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/ai-state-done.d.ts +0 -4
  85. package/dist/types-ts4.5/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/ai-state-error.d.ts +0 -4
  86. package/dist/types-ts4.5/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/ai-state-loading.d.ts +0 -4
  87. package/dist/types-ts4.5/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/index.d.ts +0 -8
  88. package/dist/types-ts4.5/view/FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator/types.d.ts +0 -21
  89. package/dist/types-ts4.5/view/HoverCard/components/views/resolved/index.d.ts +0 -7
@@ -1,6 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import InviteTeamIcon from '@atlaskit/icon/glyph/invite-team';
3
- import { getBooleanFF } from '@atlaskit/platform-feature-flags';
3
+ import { fg } from '@atlaskit/platform-feature-flags';
4
4
  import React from 'react';
5
5
  import { FormattedMessage } from 'react-intl-next';
6
6
  import { ActionName } from '../../../../../constants';
@@ -30,10 +30,8 @@ const getIcon = stackIconType => {
30
30
  return importIcon(importFn);
31
31
  };
32
32
  const getIconFF = (iconFFEnabled, defaultIcon) => {
33
- if (getBooleanFF('platform.linking-platform.smart-card.hover-card-action-redesign')) {
34
- if (getBooleanFF('platform.linking-platform.smart-card.action-icon-redesign')) {
35
- return iconFFEnabled;
36
- }
33
+ if (fg('platform.linking-platform.smart-card.action-icon-redesign')) {
34
+ return iconFFEnabled;
37
35
  }
38
36
  return defaultIcon;
39
37
  };
@@ -11,12 +11,11 @@ import useInvokeClientAction from '../../../../../state/hooks/use-invoke-client-
11
11
  import { openEmbedModalWithFlexibleUiIcon } from '../../utils';
12
12
  import Action from '../action';
13
13
  const getIconFF = () => {
14
- if (fg('platform.linking-platform.smart-card.hover-card-action-redesign')) {
15
- if (fg('platform.linking-platform.smart-card.action-icon-redesign')) {
16
- // eslint-disable-next-line @atlaskit/design-system/no-legacy-icons -- TODO - https://product-fabric.atlassian.net/browse/DSP-20003
17
- return MediaServicesActualSizeIcon;
18
- }
14
+ if (fg('platform.linking-platform.smart-card.action-icon-redesign')) {
15
+ // eslint-disable-next-line @atlaskit/design-system/no-legacy-icons -- TODO - https://product-fabric.atlassian.net/browse/DSP-20003
16
+ return MediaServicesActualSizeIcon;
19
17
  }
18
+
20
19
  // eslint-disable-next-line @atlaskit/design-system/no-legacy-icons -- TODO - https://product-fabric.atlassian.net/browse/DSP-20003
21
20
  return VidFullScreenOnIcon;
22
21
  };
@@ -43,6 +43,9 @@ const ActionGroupItem = ({
43
43
  if (hideIcon) {
44
44
  actionProps.icon = undefined;
45
45
  }
46
+ if (item !== null && item !== void 0 && item.entryPointWrapper) {
47
+ actionProps.wrapper = item.entryPointWrapper;
48
+ }
46
49
  return jsx(Action, _extends({
47
50
  asDropDownItem: asDropDownItems,
48
51
  size: size,
@@ -1,128 +1,33 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
- import React, { useCallback, useMemo, useRef, useEffect } from 'react';
3
- import { FormattedMessage } from 'react-intl-next';
4
- import { Box, Inline } from '@atlaskit/primitives';
5
- import { ActionName, SmartLinkDirection, SmartLinkSize, SmartLinkWidth } from '../../../../../../constants';
6
- import ActionGroup from '../../action-group';
2
+ import React, { useRef } from 'react';
3
+ import { SmartLinkDirection } from '../../../../../../constants';
7
4
  import Block from '../../block';
8
- import ElementGroup from '../../element-group';
9
5
  import MotionWrapper from '../../../common/motion-wrapper';
10
- import AIStateIndicator from '../ai-state-indicator';
11
- import { renderElementItems } from '../../utils';
12
- import { messages } from '../../../../../../messages';
13
6
  import useAISummaryAction from '../../../../../../state/hooks/use-ai-summary-action';
14
- import AIIcon from '../../../../../common/ai-icon';
15
7
  import AISummary from '../../../../../common/ai-summary';
16
- import { useAnalyticsEvents } from '../../../../../../common/analytics/generated/use-analytics-events';
17
8
  import AIEventSummaryViewed from '../ai-event-summary-viewed';
18
- import AIEventErrorViewed from '../../../common/ai-summary/ai-event-error-viewed';
19
9
  import { di } from 'react-magnetic-di';
20
10
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
21
11
  import { css } from '@emotion/react';
22
- import FeatureDiscovery from '../feature-discovery';
23
- import { getBooleanFF } from '@atlaskit/platform-feature-flags';
24
- export const AISummaryBlockErrorIndicator = ({
25
- showErrorIndicator,
26
- error,
27
- showTransition,
28
- testId
29
- }) => /*#__PURE__*/React.createElement(MotionWrapper, {
30
- isFadeIn: true,
31
- show: showErrorIndicator,
32
- showTransition: showTransition
33
- }, /*#__PURE__*/React.createElement(AIEventErrorViewed, {
34
- reason: error
35
- }), /*#__PURE__*/React.createElement(AIStateIndicator, {
36
- error: error,
37
- state: "error",
38
- testId: testId
39
- }));
40
- export const AISummaryBlockStatusIndicator = ({
41
- showStatusIndicator,
42
- metadata,
43
- status,
44
- testId
45
- }) => {
46
- const metadataElements = renderElementItems(metadata);
47
- return showStatusIndicator ? /*#__PURE__*/React.createElement(AIStateIndicator, {
48
- state: status,
49
- testId: `${testId}-state-indicator`
50
- }) : /*#__PURE__*/React.createElement(ElementGroup, {
51
- width: SmartLinkWidth.FitToContent,
52
- testId: `${testId}-metadata-group`
53
- }, metadataElements);
54
- };
55
12
  const AISummaryBlockResolvedView = props => {
56
13
  const {
57
- actions = [],
58
- onActionMenuOpenChange,
59
- size = SmartLinkSize.Medium,
60
14
  testId,
61
15
  aiSummaryMinHeight = 0,
62
- metadata,
63
16
  placeholder,
64
17
  url
65
18
  } = props;
66
19
  const {
67
- fireEvent
68
- } = useAnalyticsEvents();
69
- const {
70
- summariseUrl,
71
20
  state: {
72
21
  content,
73
- status,
74
- error
22
+ status
75
23
  }
76
24
  } = useAISummaryAction(url);
77
25
  const showAISummary = status === 'done' ||
78
26
  // We want to display the AI Summary component only when there is content available during the loading process.
79
27
  status === 'loading' && !!content;
80
28
  const isSummarisedOnMountRef = useRef(status === 'done');
81
- const isErroredOnMountRef = useRef(status === 'error');
82
- const minHeight = getBooleanFF('platform.linking-platform.smart-card.hover-card-action-redesign') && isSummarisedOnMountRef.current ? 0 : aiSummaryMinHeight;
83
- useEffect(() => {
84
- // if the error was apparent on mount and the status is changed to loading we can
85
- // clear the initial error on mount state
86
- if (isErroredOnMountRef.current && status === 'loading') {
87
- isErroredOnMountRef.current = false;
88
- }
89
- }, [status]);
90
- const combinedActions = useMemo(() => {
91
- if (status === 'ready' || status === 'error') {
92
- const aiAction = {
93
- content: /*#__PURE__*/React.createElement(FormattedMessage, messages.ai_summarize),
94
- name: ActionName.CustomAction,
95
- onClick: () => {
96
- fireEvent('ui.button.clicked.aiSummary', {});
97
- fireEvent('track.aiInteraction.initiated', {
98
- aiFeatureName: 'Smart Links Summary',
99
- proactiveAIGenerated: 0,
100
- userGeneratedAI: 1
101
- });
102
- summariseUrl();
103
- },
104
- testId: `${testId}-ai-summary-action`,
105
- icon: /*#__PURE__*/React.createElement(AIIcon, {
106
- label: "AIIcon"
107
- }),
108
- /**
109
- * Enabling feature discovery pulse
110
- * Cleanup: https://product-fabric.atlassian.net/browse/EDM-9693
111
- */
112
- wrapper: FeatureDiscovery
113
- };
114
- return [aiAction, ...actions];
115
- }
116
- return actions;
117
- }, [actions, status, testId, summariseUrl, fireEvent]);
118
- const onDropdownOpenChange = useCallback(isOpen => {
119
- if (onActionMenuOpenChange) {
120
- onActionMenuOpenChange({
121
- isOpen
122
- });
123
- }
124
- }, [onActionMenuOpenChange]);
125
- if (!showAISummary && getBooleanFF('platform.linking-platform.smart-card.hover-card-action-redesign')) {
29
+ const minHeight = isSummarisedOnMountRef.current ? 0 : aiSummaryMinHeight;
30
+ if (!showAISummary) {
126
31
  return /*#__PURE__*/React.createElement(React.Fragment, null, placeholder);
127
32
  }
128
33
  return /*#__PURE__*/React.createElement(Block, _extends({}, props, {
@@ -146,29 +51,7 @@ const AISummaryBlockResolvedView = props => {
146
51
  }, /*#__PURE__*/React.createElement(AISummary, {
147
52
  testId: `${testId}-ai-summary`,
148
53
  minHeight: minHeight,
149
- content: content,
150
- showIcon: !getBooleanFF('platform.linking-platform.smart-card.hover-card-action-redesign') && isSummarisedOnMountRef.current
151
- })), !getBooleanFF('platform.linking-platform.smart-card.hover-card-action-redesign') && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Inline, {
152
- alignBlock: "center",
153
- alignInline: "end",
154
- grow: "fill",
155
- spread: "space-between",
156
- testId: `${testId}-footer-metadata`
157
- }, /*#__PURE__*/React.createElement(Box, null, /*#__PURE__*/React.createElement(AISummaryBlockStatusIndicator, {
158
- metadata: metadata,
159
- showStatusIndicator: !isSummarisedOnMountRef.current && (status === 'loading' || status === 'done'),
160
- status: status,
161
- testId: testId
162
- })), /*#__PURE__*/React.createElement(Box, null, /*#__PURE__*/React.createElement(ActionGroup, {
163
- onDropdownOpenChange: onDropdownOpenChange,
164
- items: combinedActions,
165
- appearance: "default",
166
- size: size
167
- }))), /*#__PURE__*/React.createElement(AISummaryBlockErrorIndicator, {
168
- showErrorIndicator: !isErroredOnMountRef.current && status === 'error',
169
- showTransition: !isErroredOnMountRef.current,
170
- error: error,
171
- testId: `${testId}-error-indicator`
54
+ content: content
172
55
  })));
173
56
  };
174
57
  export default AISummaryBlockResolvedView;
@@ -6,8 +6,7 @@ import _extends from "@babel/runtime/helpers/extends";
6
6
  import Popup from '@atlaskit/popup';
7
7
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
8
8
  import { jsx } from '@emotion/react';
9
- import React, { useCallback, useMemo, useRef, useEffect } from 'react';
10
- import { useSmartLinkActions } from '../../../state/hooks-external/useSmartLinkActions';
9
+ import React, { useCallback, useRef, useEffect } from 'react';
11
10
  import { useSmartLinkRenderers } from '../../../state/renderers';
12
11
  import { useSmartCardState as useLinkState } from '../../../state/store';
13
12
  import HoverCardContent from '../components/HoverCardContent';
@@ -149,18 +148,8 @@ export const HoverCardComponent = ({
149
148
  }
150
149
  }
151
150
  }, [initResolve, isOpen, setMousePosition, noFadeDelay, fadeInDelay]);
152
- const linkActions = useSmartLinkActions({
153
- url,
154
- appearance: CardDisplay.HoverCardPreview,
155
- analyticsHandler,
156
- origin: HOVER_CARD_SOURCE,
157
- actionOptions
158
- });
159
- const filteredActions = useMemo(() => {
160
- return hidePreviewButton ? linkActions.filter(action => action.id !== 'preview-content') : linkActions;
161
- }, [hidePreviewButton, linkActions]);
162
151
  const onActionClick = useCallback(actionId => {
163
- if (actionId === 'preview-content' || actionId === ActionName.PreviewAction || actionId === ActionName.AutomationAction) {
152
+ if (actionId === ActionName.PreviewAction || actionId === ActionName.AutomationAction) {
164
153
  hideCard();
165
154
  }
166
155
  }, [hideCard]);
@@ -182,7 +171,6 @@ export const HoverCardComponent = ({
182
171
  const hoverCardContentProps = {
183
172
  onMouseEnter: initShowCard,
184
173
  onMouseLeave: initHideCard,
185
- cardActions: filteredActions,
186
174
  cardState: linkState,
187
175
  onActionClick,
188
176
  onResolve: update,
@@ -197,7 +185,7 @@ export const HoverCardComponent = ({
197
185
  id: id,
198
186
  source: HOVER_CARD_SOURCE
199
187
  }, jsx(HoverCardContent, hoverCardContentProps));
200
- }, [initShowCard, initHideCard, filteredActions, linkState, onActionClick, renderers, actionOptions, url, id]);
188
+ }, [initShowCard, initHideCard, linkState, onActionClick, renderers, actionOptions, url, id]);
201
189
  const trigger = useCallback(triggerProps => jsx("span", {
202
190
  ref: parentSpan
203
191
  }, jsx("span", _extends({}, triggerProps, {
@@ -2,14 +2,12 @@
2
2
  * @jsxRuntime classic
3
3
  * @jsx jsx
4
4
  */
5
- import { getBooleanFF } from '@atlaskit/platform-feature-flags';
6
5
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
7
6
  import { jsx } from '@emotion/react';
8
7
  import { useAnalyticsEvents } from '@atlaskit/analytics-next';
9
- import CopyIcon from '@atlaskit/icon/core/migration/copy';
10
8
  import React, { useCallback, useEffect, useMemo, useRef } from 'react';
11
9
  import { useSmartLinkContext } from '@atlaskit/link-provider';
12
- import { ActionName, CardDisplay, SmartLinkPosition, SmartLinkSize } from '../../../constants';
10
+ import { CardDisplay, SmartLinkPosition, SmartLinkSize } from '../../../constants';
13
11
  import { useSmartLinkAnalytics } from '../../../state/analytics';
14
12
  import { getExtensionKey, getServices } from '../../../state/helpers';
15
13
  import { isSpecialEvent } from '../../../utils';
@@ -17,33 +15,16 @@ import { flexibleUiOptions, titleBlockCss } from '../styled';
17
15
  import { getMetadata } from '../utils';
18
16
  import HoverCardLoadingView from './views/resolving';
19
17
  import HoverCardUnauthorisedView from './views/unauthorised';
20
- import HoverCardResolvedView from './views/resolved';
21
18
  import HoverCardRedesignedResolvedView from './views/resolved/redesign';
22
- import { FormattedMessage } from 'react-intl-next';
23
- import { messages } from '../../../messages';
24
19
  import { fireLinkClickedEvent } from '../../../utils/analytics/click';
25
20
  import { useSmartCardState } from '../../../state/store';
26
21
  import HoverCardForbiddenView from './views/forbidden';
27
22
  import ContentContainer from './ContentContainer';
28
23
  import { getIsAISummaryEnabled } from '../../../utils/ai-summary';
29
24
  export const hoverCardClassName = 'smart-links-hover-preview';
30
- export const getCopyAction = url => ({
31
- name: ActionName.CustomAction,
32
- icon: jsx(CopyIcon, {
33
- label: "copy url",
34
- LEGACY_size: "medium",
35
- spacing: "spacious",
36
- color: "var(--ds-icon, #44546F)"
37
- }),
38
- iconPosition: 'before',
39
- onClick: async () => await navigator.clipboard.writeText(url),
40
- tooltipMessage: jsx(FormattedMessage, messages.copy_url_to_clipboard),
41
- testId: 'hover-card-copy-button'
42
- });
43
25
  const HoverCardContent = ({
44
26
  id = '',
45
27
  analytics: _analytics,
46
- cardActions = [],
47
28
  cardState,
48
29
  onActionClick,
49
30
  onResolve,
@@ -111,14 +92,12 @@ const HoverCardContent = ({
111
92
  });
112
93
  fireLinkClickedEvent(createAnalyticsEvent)(event);
113
94
  }, [createAnalyticsEvent, cardState.status, analytics.ui, id]);
114
- const titleActions = useMemo(() => [getCopyAction(url)], [url]);
115
95
  const data = (_cardState$details = cardState.details) === null || _cardState$details === void 0 ? void 0 : _cardState$details.data;
116
96
  const {
117
97
  subtitle
118
98
  } = getMetadata(extensionKey, data);
119
99
  const titleMaxLines = subtitle && subtitle.length > 0 ? 1 : 2;
120
100
  const titleBlockProps = {
121
- actions: getBooleanFF('platform.linking-platform.smart-card.hover-card-action-redesign') ? undefined : titleActions,
122
101
  maxLines: titleMaxLines,
123
102
  overrideCss: titleBlockCss,
124
103
  size: SmartLinkSize.Large,
@@ -160,29 +139,15 @@ const HoverCardContent = ({
160
139
  });
161
140
  }
162
141
  if (cardState.status === 'resolved') {
163
- if (getBooleanFF('platform.linking-platform.smart-card.hover-card-action-redesign')) {
164
- return jsx(HoverCardRedesignedResolvedView, {
165
- analytics: analytics,
166
- cardState: cardState,
167
- extensionKey: extensionKey,
168
- flexibleCardProps: flexibleCardProps,
169
- isAISummaryEnabled: isAISummaryEnabled,
170
- onActionClick: onActionClick,
171
- titleBlockProps: titleBlockProps,
172
- url: url
173
- });
174
- }
175
- return jsx(HoverCardResolvedView, {
176
- id: id,
177
- url: url,
178
- extensionKey: extensionKey,
142
+ return jsx(HoverCardRedesignedResolvedView, {
179
143
  analytics: analytics,
180
- cardActions: cardActions,
181
144
  cardState: cardState,
145
+ extensionKey: extensionKey,
182
146
  flexibleCardProps: flexibleCardProps,
183
147
  isAISummaryEnabled: isAISummaryEnabled,
184
148
  onActionClick: onActionClick,
185
- titleBlockProps: titleBlockProps
149
+ titleBlockProps: titleBlockProps,
150
+ url: url
186
151
  });
187
152
  }
188
153
  return null;
@@ -1,7 +1,6 @@
1
1
  import { ElementName } from '../../constants';
2
2
  import { extractType } from '@atlaskit/link-extractors';
3
3
  import { extractOwnedBy } from '../../extractors/flexible/utils';
4
- import { fg } from '@atlaskit/platform-feature-flags';
5
4
  const getSimulatedBetterMetadata = (extensionKey, data) => {
6
5
  var _data$Type$includes, _data$Type;
7
6
  const types = data ? extractType(data) : undefined;
@@ -86,15 +85,10 @@ const toElementItems = elementNames => {
86
85
  };
87
86
  export const getMetadata = (extensionKey, data) => {
88
87
  const metadata = getSimulatedBetterMetadata(extensionKey, data);
89
- const primary = fg('platform.linking-platform.smart-card.hover-card-action-redesign') ? [].concat(metadata.primary, metadata.tertiary) : metadata.primary;
90
-
91
- // `tertiary` should be removed completely during cleanup:
92
- // https://product-fabric.atlassian.net/browse/EDM-9556
93
- const tertiary = fg('platform.linking-platform.smart-card.hover-card-action-redesign') ? undefined : metadata.tertiary;
88
+ const primary = [].concat(metadata.primary, metadata.tertiary);
94
89
  return {
95
90
  subtitle: toElementItems(metadata.subtitle),
96
91
  primary: toElementItems(primary),
97
- secondary: toElementItems(metadata.secondary),
98
- tertiary: toElementItems(tertiary)
92
+ secondary: toElementItems(metadata.secondary)
99
93
  };
100
94
  };
@@ -7,7 +7,7 @@ import { useLinkWarningModal } from './LinkWarningModal/hooks/use-link-warning-m
7
7
  import LinkWarningModal from './LinkWarningModal';
8
8
  const PACKAGE_DATA = {
9
9
  packageName: "@atlaskit/smart-card",
10
- packageVersion: "27.19.0",
10
+ packageVersion: "27.20.0",
11
11
  componentName: 'linkUrl'
12
12
  };
13
13
  const Link = withLinkClickedEvent('a');
@@ -1,109 +1,49 @@
1
1
  import React from 'react';
2
2
  import SVG from '@atlaskit/icon/svg';
3
- import { fg } from '@atlaskit/platform-feature-flags';
4
- import { B200, B400 } from '@atlaskit/theme/colors';
5
3
  /**
6
4
  * The bulk of this file is originally from
7
5
  * https://bitbucket.org/atlassian/barrel/src/master/ui/platform/ui-kit/ai
8
6
  * with modifications
9
7
  */
10
- const AiIcon = props => /*#__PURE__*/React.createElement(SVG, props, /*#__PURE__*/React.createElement("defs", null, /*#__PURE__*/React.createElement("linearGradient", {
11
- id: "ai_icon_lg0",
12
- x1: "21",
13
- y1: "12",
14
- x2: "17.5",
15
- y2: "12",
16
- gradientUnits: "userSpaceOnUse"
17
- }, /*#__PURE__*/React.createElement("stop", {
18
- offset: "0.270833",
19
- stopColor: `var(--ds-icon-accent-blue, ${B200})`,
20
- color: `var(--ds-icon-accent-blue, ${B200})`
21
- }), /*#__PURE__*/React.createElement("stop", {
22
- offset: "1",
23
- stopColor: `var(--ds-text-accent-blue, ${B400})`,
24
- color: `var(--ds-text-accent-blue, ${B400})`
25
- })), /*#__PURE__*/React.createElement("linearGradient", {
26
- id: "ai_icon_lg1",
27
- x1: "12.5",
28
- y1: "3",
29
- x2: "12.5",
30
- y2: "6.5",
31
- gradientUnits: "userSpaceOnUse"
32
- }, /*#__PURE__*/React.createElement("stop", {
33
- offset: "0.1875",
34
- stopColor: `var(--ds-icon-accent-blue, ${B200})`,
35
- color: `var(--ds-icon-accent-blue, ${B200})`
36
- }), /*#__PURE__*/React.createElement("stop", {
37
- offset: "1",
38
- stopColor: `var(--ds-text-accent-blue, ${B400})`,
39
- color: `var(--ds-text-accent-blue, ${B400})`
40
- })), /*#__PURE__*/React.createElement("linearGradient", {
41
- id: "ai_icon_lg2",
42
- x1: "6.82996",
43
- y1: "12",
44
- x2: "3.32996",
45
- y2: "12",
46
- gradientUnits: "userSpaceOnUse"
47
- }, /*#__PURE__*/React.createElement("stop", {
48
- stopColor: `var(--ds-text-accent-blue, ${B400})`,
49
- color: `var(--ds-text-accent-blue, ${B400})`
50
- }), /*#__PURE__*/React.createElement("stop", {
51
- offset: "0.791667",
52
- stopColor: `var(--ds-icon-accent-blue, ${B200})`,
53
- color: `var(--ds-icon-accent-blue, ${B200})`
54
- })), /*#__PURE__*/React.createElement("linearGradient", {
55
- id: "ai_icon_lg3",
56
- x1: "12.5",
57
- y1: "17",
58
- x2: "12.5",
59
- y2: "21",
60
- gradientUnits: "userSpaceOnUse"
61
- }, /*#__PURE__*/React.createElement("stop", {
62
- stopColor: `var(--ds-text-accent-blue, ${B400})`,
63
- color: `var(--ds-text-accent-blue, ${B400})`
64
- }), /*#__PURE__*/React.createElement("stop", {
65
- offset: "0.802083",
66
- stopColor: `var(--ds-icon-accent-blue, ${B200})`,
67
- color: `var(--ds-icon-accent-blue, ${B200})`
68
- }))), /*#__PURE__*/React.createElement("g", null, /*#__PURE__*/React.createElement("path", {
8
+ const AiIcon = props => /*#__PURE__*/React.createElement(SVG, props, /*#__PURE__*/React.createElement("g", null, /*#__PURE__*/React.createElement("path", {
69
9
  fillRule: "evenodd",
70
10
  clipRule: "evenodd",
71
11
  d: "M17.17 12C17.17 11.4477 17.6177 11 18.17 11H20C20.5523 11 21 11.4477 21 12C21 12.5523 20.5523 13 20 13H18.17C17.6177 13 17.17 12.5523 17.17 12Z",
72
- fill: fg('platform.linking-platform.smart-card.hover-card-action-redesign') ? "var(--ds-icon, #44546F)" : 'url(#ai_icon_lg0)'
12
+ fill: "var(--ds-icon, #44546F)"
73
13
  }), /*#__PURE__*/React.createElement("path", {
74
14
  fillRule: "evenodd",
75
15
  clipRule: "evenodd",
76
16
  d: "M12 3C12.5523 3 13 3.44772 13 4V5.83C13 6.38228 12.5523 6.83 12 6.83C11.4477 6.83 11 6.38228 11 5.83V4C11 3.44772 11.4477 3 12 3Z",
77
- fill: fg('platform.linking-platform.smart-card.hover-card-action-redesign') ? "var(--ds-icon, #44546F)" : 'url(#ai_icon_lg1)'
17
+ fill: "var(--ds-icon, #44546F)"
78
18
  }), /*#__PURE__*/React.createElement("path", {
79
19
  fillRule: "evenodd",
80
20
  clipRule: "evenodd",
81
21
  d: "M3 12C3 11.4477 3.44772 11 4 11H5.83C6.38228 11 6.83 11.4477 6.83 12C6.83 12.5523 6.38228 13 5.83 13H4C3.44772 13 3 12.5523 3 12Z",
82
- fill: fg('platform.linking-platform.smart-card.hover-card-action-redesign') ? "var(--ds-icon, #44546F)" : 'url(#ai_icon_lg2)'
22
+ fill: "var(--ds-icon, #44546F)"
83
23
  }), /*#__PURE__*/React.createElement("path", {
84
24
  fillRule: "evenodd",
85
25
  clipRule: "evenodd",
86
26
  d: "M12 17.17C12.5523 17.17 13 17.6177 13 18.17V20C13 20.5523 12.5523 21 12 21C11.4477 21 11 20.5523 11 20V18.17C11 17.6177 11.4477 17.17 12 17.17Z",
87
- fill: fg('platform.linking-platform.smart-card.hover-card-action-redesign') ? "var(--ds-icon, #44546F)" : 'url(#ai_icon_lg3)'
27
+ fill: "var(--ds-icon, #44546F)"
88
28
  }), /*#__PURE__*/React.createElement("path", {
89
29
  fillRule: "evenodd",
90
30
  clipRule: "evenodd",
91
31
  d: "M14.2929 14.2929C14.6835 13.9024 15.3166 13.9024 15.7071 14.2929L19.7071 18.2929C20.0977 18.6834 20.0977 19.3166 19.7071 19.7071C19.3166 20.0976 18.6835 20.0976 18.2929 19.7071L14.2929 15.7071C13.9024 15.3166 13.9024 14.6834 14.2929 14.2929Z",
92
- fill: fg('platform.linking-platform.smart-card.hover-card-action-redesign') ? "var(--ds-icon, #44546F)" : `var(--ds-icon-accent-blue, ${B200})`
32
+ fill: "var(--ds-icon, #44546F)"
93
33
  }), /*#__PURE__*/React.createElement("path", {
94
34
  fillRule: "evenodd",
95
35
  clipRule: "evenodd",
96
36
  d: "M19.7071 4.29289C20.0977 4.68342 20.0977 5.31658 19.7071 5.70711L15.7071 9.70711C15.3166 10.0976 14.6835 10.0976 14.2929 9.70711C13.9024 9.31658 13.9024 8.68342 14.2929 8.29289L18.2929 4.29289C18.6835 3.90237 19.3166 3.90237 19.7071 4.29289Z",
97
- fill: fg('platform.linking-platform.smart-card.hover-card-action-redesign') ? "var(--ds-icon, #44546F)" : `var(--ds-icon-accent-blue, ${B200})`
37
+ fill: "var(--ds-icon, #44546F)"
98
38
  }), /*#__PURE__*/React.createElement("path", {
99
39
  fillRule: "evenodd",
100
40
  clipRule: "evenodd",
101
41
  d: "M4.29289 4.29289C4.68342 3.90237 5.31658 3.90237 5.70711 4.29289L9.70711 8.29289C10.0976 8.68342 10.0976 9.31658 9.70711 9.70711C9.31658 10.0976 8.68342 10.0976 8.29289 9.70711L4.29289 5.70711C3.90237 5.31658 3.90237 4.68342 4.29289 4.29289Z",
102
- fill: fg('platform.linking-platform.smart-card.hover-card-action-redesign') ? "var(--ds-icon, #44546F)" : `var(--ds-icon-accent-blue, ${B200})`
42
+ fill: "var(--ds-icon, #44546F)"
103
43
  }), /*#__PURE__*/React.createElement("path", {
104
44
  fillRule: "evenodd",
105
45
  clipRule: "evenodd",
106
46
  d: "M9.70711 14.2929C10.0976 14.6834 10.0976 15.3166 9.70711 15.7071L5.70711 19.7071C5.31658 20.0976 4.68342 20.0976 4.29289 19.7071C3.90237 19.3166 3.90237 18.6834 4.29289 18.2929L8.29289 14.2929C8.68342 13.9024 9.31658 13.9024 9.70711 14.2929Z",
107
- fill: fg('platform.linking-platform.smart-card.hover-card-action-redesign') ? "var(--ds-icon, #44546F)" : `var(--ds-icon-accent-blue, ${B200})`
47
+ fill: "var(--ds-icon, #44546F)"
108
48
  })));
109
49
  export default AiIcon;
@@ -5,13 +5,7 @@
5
5
  import Markdown from 'markdown-to-jsx';
6
6
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
7
7
  import { css, jsx } from '@emotion/react';
8
- import AIStateIndicator from '../../FlexibleCard/components/blocks/ai-summary-block/ai-state-indicator';
9
8
  import UList from './ulist';
10
- const AITooltipIcon = () => jsx(AIStateIndicator, {
11
- appearance: "icon-only",
12
- state: "done",
13
- testId: "ai-tooltip"
14
- });
15
9
  const AISummaryCSSStyles = css({
16
10
  fontSize: '0.75rem',
17
11
  lineHeight: '1rem',
@@ -31,8 +25,6 @@ const AISummaryCSSStyles = css({
31
25
 
32
26
  const AISummary = ({
33
27
  content = '',
34
- showIcon = false,
35
- iconComponent,
36
28
  overrideCss,
37
29
  testId = 'ai-summary',
38
30
  minHeight = 0
@@ -43,11 +35,10 @@ const AISummary = ({
43
35
  return jsx(Markdown, {
44
36
  "data-testid": testId,
45
37
  css: [AISummaryCSSStyles, overrideCss],
46
- children: showIcon ? `${content}&nbsp;<Icon />` : content,
38
+ children: content,
47
39
  options: {
48
40
  forceWrapper: true,
49
41
  overrides: {
50
- Icon: iconComponent !== null && iconComponent !== void 0 ? iconComponent : AITooltipIcon,
51
42
  ul: UList
52
43
  }
53
44
  },
@@ -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: "27.19.0"
18
+ packageVersion: "27.20.0"
19
19
  };
20
20
  export var TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
21
21
  TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
@@ -2,7 +2,7 @@ import _extends from "@babel/runtime/helpers/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
3
  var _excluded = ["value", "isProject"];
4
4
  import InviteTeamIcon from '@atlaskit/icon/glyph/invite-team';
5
- import { getBooleanFF } from '@atlaskit/platform-feature-flags';
5
+ import { fg } from '@atlaskit/platform-feature-flags';
6
6
  import React from 'react';
7
7
  import { FormattedMessage } from 'react-intl-next';
8
8
  import { ActionName } from '../../../../../constants';
@@ -38,10 +38,8 @@ var getIcon = function getIcon(stackIconType) {
38
38
  return importIcon(importFn);
39
39
  };
40
40
  var getIconFF = function getIconFF(iconFFEnabled, defaultIcon) {
41
- if (getBooleanFF('platform.linking-platform.smart-card.hover-card-action-redesign')) {
42
- if (getBooleanFF('platform.linking-platform.smart-card.action-icon-redesign')) {
43
- return iconFFEnabled;
44
- }
41
+ if (fg('platform.linking-platform.smart-card.action-icon-redesign')) {
42
+ return iconFFEnabled;
45
43
  }
46
44
  return defaultIcon;
47
45
  };
@@ -18,12 +18,11 @@ import useInvokeClientAction from '../../../../../state/hooks/use-invoke-client-
18
18
  import { openEmbedModalWithFlexibleUiIcon } from '../../utils';
19
19
  import Action from '../action';
20
20
  var getIconFF = function getIconFF() {
21
- if (fg('platform.linking-platform.smart-card.hover-card-action-redesign')) {
22
- if (fg('platform.linking-platform.smart-card.action-icon-redesign')) {
23
- // eslint-disable-next-line @atlaskit/design-system/no-legacy-icons -- TODO - https://product-fabric.atlassian.net/browse/DSP-20003
24
- return MediaServicesActualSizeIcon;
25
- }
21
+ if (fg('platform.linking-platform.smart-card.action-icon-redesign')) {
22
+ // eslint-disable-next-line @atlaskit/design-system/no-legacy-icons -- TODO - https://product-fabric.atlassian.net/browse/DSP-20003
23
+ return MediaServicesActualSizeIcon;
26
24
  }
25
+
27
26
  // eslint-disable-next-line @atlaskit/design-system/no-legacy-icons -- TODO - https://product-fabric.atlassian.net/browse/DSP-20003
28
27
  return VidFullScreenOnIcon;
29
28
  };
@@ -43,6 +43,9 @@ var ActionGroupItem = function ActionGroupItem(_ref) {
43
43
  if (hideIcon) {
44
44
  actionProps.icon = undefined;
45
45
  }
46
+ if (item !== null && item !== void 0 && item.entryPointWrapper) {
47
+ actionProps.wrapper = item.entryPointWrapper;
48
+ }
46
49
  return jsx(Action, _extends({
47
50
  asDropDownItem: asDropDownItems,
48
51
  size: size,