@atlaskit/smart-card 44.0.6 → 44.1.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 (61) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dist/cjs/__tests__/vr-tests/__snapshots__/hover-card/hover-card-with-generic-3p-rovo-chat-action--default.png +0 -0
  3. package/dist/cjs/extractors/flexible/actions/extract-rovo-chat-action.js +7 -5
  4. package/dist/cjs/extractors/flexible/actions/index.js +1 -1
  5. package/dist/cjs/extractors/flexible/index.js +1 -1
  6. package/dist/cjs/messages.js +25 -0
  7. package/dist/cjs/state/hooks/use-inline-action-nudge-experiment/index.js +2 -2
  8. package/dist/cjs/view/FlexibleCard/components/actions/action/action-stack-item/action-button.js +6 -1
  9. package/dist/cjs/view/FlexibleCard/components/actions/rovo-chat-action/index.js +80 -6
  10. package/dist/cjs/view/FlexibleCard/components/blocks/action-block/index.js +3 -3
  11. package/dist/cjs/view/FlexibleCard/components/blocks/ai-summary-block/index.js +3 -3
  12. package/dist/cjs/view/FlexibleCard/index.js +2 -2
  13. package/dist/cjs/view/HoverCard/components/HoverCardContent.js +5 -4
  14. package/dist/cjs/view/HoverCard/components/views/resolved/index.js +8 -3
  15. package/dist/cjs/view/common/ai-summary/index.js +6 -1
  16. package/dist/es2019/__tests__/vr-tests/__snapshots__/hover-card/hover-card-with-generic-3p-rovo-chat-action--default.png +0 -0
  17. package/dist/es2019/extractors/flexible/actions/extract-rovo-chat-action.js +7 -5
  18. package/dist/es2019/extractors/flexible/actions/index.js +1 -1
  19. package/dist/es2019/extractors/flexible/index.js +1 -1
  20. package/dist/es2019/messages.js +25 -0
  21. package/dist/es2019/state/hooks/use-inline-action-nudge-experiment/index.js +2 -2
  22. package/dist/es2019/view/FlexibleCard/components/actions/action/action-stack-item/action-button.js +6 -1
  23. package/dist/es2019/view/FlexibleCard/components/actions/rovo-chat-action/index.js +80 -5
  24. package/dist/es2019/view/FlexibleCard/components/blocks/action-block/index.js +3 -3
  25. package/dist/es2019/view/FlexibleCard/components/blocks/ai-summary-block/index.js +2 -2
  26. package/dist/es2019/view/FlexibleCard/index.js +2 -2
  27. package/dist/es2019/view/HoverCard/components/HoverCardContent.js +5 -4
  28. package/dist/es2019/view/HoverCard/components/views/resolved/index.js +9 -3
  29. package/dist/es2019/view/common/ai-summary/index.js +6 -1
  30. package/dist/esm/__tests__/vr-tests/__snapshots__/hover-card/hover-card-with-generic-3p-rovo-chat-action--default.png +0 -0
  31. package/dist/esm/extractors/flexible/actions/extract-rovo-chat-action.js +7 -5
  32. package/dist/esm/extractors/flexible/actions/index.js +1 -1
  33. package/dist/esm/extractors/flexible/index.js +1 -1
  34. package/dist/esm/messages.js +25 -0
  35. package/dist/esm/state/hooks/use-inline-action-nudge-experiment/index.js +2 -2
  36. package/dist/esm/view/FlexibleCard/components/actions/action/action-stack-item/action-button.js +6 -1
  37. package/dist/esm/view/FlexibleCard/components/actions/rovo-chat-action/index.js +80 -6
  38. package/dist/esm/view/FlexibleCard/components/blocks/action-block/index.js +3 -3
  39. package/dist/esm/view/FlexibleCard/components/blocks/ai-summary-block/index.js +3 -3
  40. package/dist/esm/view/FlexibleCard/index.js +2 -2
  41. package/dist/esm/view/HoverCard/components/HoverCardContent.js +5 -4
  42. package/dist/esm/view/HoverCard/components/views/resolved/index.js +8 -3
  43. package/dist/esm/view/common/ai-summary/index.js +6 -1
  44. package/dist/types/messages.d.ts +1 -1
  45. package/dist/types/state/hooks/use-inline-action-nudge-experiment/index.d.ts +1 -1
  46. package/dist/types/view/FlexibleCard/components/actions/rovo-chat-action/index.d.ts +4 -1
  47. package/dist/types/view/FlexibleCard/components/blocks/action-block/index.d.ts +1 -1
  48. package/dist/types/view/FlexibleCard/components/blocks/action-block/types.d.ts +2 -2
  49. package/dist/types/view/FlexibleCard/components/blocks/ai-summary-block/index.d.ts +1 -1
  50. package/dist/types/view/FlexibleCard/components/blocks/ai-summary-block/types.d.ts +2 -2
  51. package/dist/types-ts4.5/messages.d.ts +1 -1
  52. package/dist/types-ts4.5/state/hooks/use-inline-action-nudge-experiment/index.d.ts +1 -1
  53. package/dist/types-ts4.5/view/FlexibleCard/components/actions/rovo-chat-action/index.d.ts +4 -1
  54. package/dist/types-ts4.5/view/FlexibleCard/components/blocks/action-block/index.d.ts +1 -1
  55. package/dist/types-ts4.5/view/FlexibleCard/components/blocks/action-block/types.d.ts +2 -2
  56. package/dist/types-ts4.5/view/FlexibleCard/components/blocks/ai-summary-block/index.d.ts +1 -1
  57. package/dist/types-ts4.5/view/FlexibleCard/components/blocks/ai-summary-block/types.d.ts +2 -2
  58. package/package.json +9 -9
  59. /package/dist/cjs/__tests__/vr-tests/__snapshots__/hover-card/{hover-card-rovo-chat-action--default.png → hover-card-with-google-rovo-chat-action--default.png} +0 -0
  60. /package/dist/es2019/__tests__/vr-tests/__snapshots__/hover-card/{hover-card-rovo-chat-action--default.png → hover-card-with-google-rovo-chat-action--default.png} +0 -0
  61. /package/dist/esm/__tests__/vr-tests/__snapshots__/hover-card/{hover-card-rovo-chat-action--default.png → hover-card-with-google-rovo-chat-action--default.png} +0 -0
@@ -1,6 +1,7 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import React, { useCallback, useMemo } from 'react';
3
3
  import { useIntl } from 'react-intl';
4
+ import { expValEqualsNoExposure } from '@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure';
4
5
  import { InternalActionName } from '../../../../../constants';
5
6
  import { messages } from '../../../../../messages';
6
7
  import { useFlexibleUiContext } from '../../../../../state/flexible-ui-context';
@@ -15,9 +16,16 @@ export let RovoChatPromptKey = /*#__PURE__*/function (RovoChatPromptKey) {
15
16
  RovoChatPromptKey["RECOMMEND_OTHER_SOURCES"] = "recommend-other-sources";
16
17
  RovoChatPromptKey["SHOW_OTHER_MENTIONS"] = "show-other-mentions";
17
18
  RovoChatPromptKey["SUGGEST_IMPROVEMENT"] = "suggest-improvement";
19
+ RovoChatPromptKey["SUMMARIZE_LINK"] = "summarize-link";
20
+ RovoChatPromptKey["KEY_HIGHLIGHTS"] = "key-highlights";
21
+ RovoChatPromptKey["ASK_ROVO_ANYTHING"] = "ask-rovo-anything";
18
22
  return RovoChatPromptKey;
19
23
  }({});
20
- const DEFAULT_PROMPTS = [RovoChatPromptKey.RECOMMEND_OTHER_SOURCES, RovoChatPromptKey.SHOW_OTHER_MENTIONS, RovoChatPromptKey.SUGGEST_IMPROVEMENT];
24
+ const GOOGLE_PROMPTS = [RovoChatPromptKey.RECOMMEND_OTHER_SOURCES, RovoChatPromptKey.SHOW_OTHER_MENTIONS, RovoChatPromptKey.SUGGEST_IMPROVEMENT];
25
+ const GENERIC_3P_PROMPTS = [
26
+ // For rovogrowth-640-inline-action-nudge-exp only. Applies to all RovoActions eligible providers, except Google
27
+ RovoChatPromptKey.SUMMARIZE_LINK, RovoChatPromptKey.KEY_HIGHLIGHTS, RovoChatPromptKey.ASK_ROVO_ANYTHING];
28
+ const DEFAULT_PROMPTS = GOOGLE_PROMPTS;
21
29
  const getContext = (intl, product) => {
22
30
  switch (product) {
23
31
  case 'CONFLUENCE':
@@ -101,15 +109,72 @@ const getPromptAction = (promptKey, intl, url = '', product) => {
101
109
  prompt: htmlToAdf(html_improvement)
102
110
  }
103
111
  };
112
+ case RovoChatPromptKey.SUMMARIZE_LINK:
113
+ const label_summarize = intl.formatMessage(messages.ai_summarize);
114
+ const html_summarize = intl.formatMessage(messages.rovo_prompt_message_summarize, {
115
+ url
116
+ }, {
117
+ ignoreTag: true
118
+ });
119
+ return {
120
+ icon: /*#__PURE__*/React.createElement(AIEditIcon, null),
121
+ content: label_summarize,
122
+ tooltipMessage: label_summarize,
123
+ data: {
124
+ name: label_summarize,
125
+ dialogues: [],
126
+ prompt: htmlToAdf(html_summarize),
127
+ mode: {
128
+ fastModeEnabled: true
129
+ }
130
+ }
131
+ };
132
+ case RovoChatPromptKey.KEY_HIGHLIGHTS:
133
+ const label_key_highlights = intl.formatMessage(messages.rovo_prompt_button_key_highlights);
134
+ const html_key_highlights = intl.formatMessage(messages.rovo_prompt_message_key_highlights, {
135
+ url
136
+ }, {
137
+ ignoreTag: true
138
+ });
139
+ return {
140
+ icon: /*#__PURE__*/React.createElement(AiChapterIcon, null),
141
+ content: label_key_highlights,
142
+ tooltipMessage: label_key_highlights,
143
+ data: {
144
+ name: label_key_highlights,
145
+ dialogues: [],
146
+ prompt: htmlToAdf(html_key_highlights),
147
+ mode: {
148
+ fastModeEnabled: true
149
+ }
150
+ }
151
+ };
152
+ case RovoChatPromptKey.ASK_ROVO_ANYTHING:
153
+ const label_ask_rovo_anything = intl.formatMessage(messages.rovo_prompt_button_ask_rovo_anything);
154
+ const prompt_ask_rovo_anything = intl.formatMessage(messages.rovo_prompt_message_ask_rovo_anything, {
155
+ url
156
+ });
157
+ return {
158
+ icon: /*#__PURE__*/React.createElement(AISearchIcon, null),
159
+ content: label_ask_rovo_anything,
160
+ tooltipMessage: label_ask_rovo_anything,
161
+ data: {
162
+ name: label_ask_rovo_anything,
163
+ dialogues: [],
164
+ prompt: prompt_ask_rovo_anything,
165
+ isPromptPlaceholder: true,
166
+ placeholderType: 'generic'
167
+ }
168
+ };
104
169
  }
105
170
  };
106
171
  const RovoChatAction = ({
107
172
  onClick: onClickCallback,
108
- prompts = DEFAULT_PROMPTS,
173
+ prompts,
109
174
  testId = 'smart-action-rovo-chat-action',
110
175
  ...props
111
176
  }) => {
112
- var _context$actions;
177
+ var _context$actions, _data$invokeAction2;
113
178
  const intl = useIntl();
114
179
  const {
115
180
  isRovoChatEnabled,
@@ -117,6 +182,16 @@ const RovoChatAction = ({
117
182
  } = useRovoChat();
118
183
  const context = useFlexibleUiContext();
119
184
  const data = context === null || context === void 0 ? void 0 : (_context$actions = context.actions) === null || _context$actions === void 0 ? void 0 : _context$actions[InternalActionName.RovoChatAction];
185
+ const resolvedPrompts = useMemo(() => {
186
+ var _data$invokeAction;
187
+ if (prompts) {
188
+ return prompts;
189
+ }
190
+ if (expValEqualsNoExposure('rovogrowth-640-inline-action-nudge-exp', 'isEnabled', true) && (data === null || data === void 0 ? void 0 : (_data$invokeAction = data.invokeAction) === null || _data$invokeAction === void 0 ? void 0 : _data$invokeAction.extensionKey) !== 'google-object-provider') {
191
+ return GENERIC_3P_PROMPTS;
192
+ }
193
+ return DEFAULT_PROMPTS;
194
+ }, [prompts, data === null || data === void 0 ? void 0 : (_data$invokeAction2 = data.invokeAction) === null || _data$invokeAction2 === void 0 ? void 0 : _data$invokeAction2.extensionKey]);
120
195
  const invoke = useInvokeClientAction({});
121
196
  const onClick = useCallback((promptData, promptKey) => {
122
197
  if (promptData && data !== null && data !== void 0 && data.invokeAction) {
@@ -129,7 +204,7 @@ const RovoChatAction = ({
129
204
  }
130
205
  }, [data === null || data === void 0 ? void 0 : data.invokeAction, invoke, onClickCallback, sendPromptMessage]);
131
206
  const promptActions = useMemo(() => {
132
- return prompts.map((promptKey, idx) => {
207
+ return resolvedPrompts.map((promptKey, idx) => {
133
208
  const {
134
209
  icon,
135
210
  content,
@@ -145,7 +220,7 @@ const RovoChatAction = ({
145
220
  tooltipMessage: tooltipMessage
146
221
  }, props)) : null;
147
222
  });
148
- }, [data, intl, onClick, prompts, props, testId]);
223
+ }, [data, intl, onClick, resolvedPrompts, props, testId]);
149
224
  return isRovoChatEnabled && data && (promptActions === null || promptActions === void 0 ? void 0 : promptActions.length) > 0 ? /*#__PURE__*/React.createElement(React.Fragment, null, promptActions) : null;
150
225
  };
151
226
  export default RovoChatAction;
@@ -47,12 +47,12 @@ const ActionBlock = ({
47
47
  spaceInline,
48
48
  className,
49
49
  testId = 'smart-block-action',
50
- is3PAuthRovoActionsExperimentOn
50
+ isAny3pRovoActionsExperimentOn
51
51
  }) => {
52
52
  var _context$actions;
53
53
  const context = useFlexibleUiContext();
54
54
  const ui = useFlexibleUiOptionContext();
55
- const isRovoChatActionAvailable = is3PAuthRovoActionsExperimentOn && fg('platform_sl_3p_auth_rovo_action_kill_switch') ? (context === null || context === void 0 ? void 0 : (_context$actions = context.actions) === null || _context$actions === void 0 ? void 0 : _context$actions[InternalActionName.RovoChatAction]) !== undefined : undefined;
55
+ const isRovoChatActionAvailable = (fg('platform_sl_3p_auth_rovo_action_kill_switch') || fg('rovogrowth-640-inline-action-nudge-fg')) && isAny3pRovoActionsExperimentOn ? (context === null || context === void 0 ? void 0 : (_context$actions = context.actions) === null || _context$actions === void 0 ? void 0 : _context$actions[InternalActionName.RovoChatAction]) !== undefined : undefined;
56
56
  const [message, setMessage] = useState();
57
57
  const [isLoading, setIsLoading] = useState(false);
58
58
  const onLoadingChange = useCallback(isLoading => {
@@ -70,7 +70,7 @@ const ActionBlock = ({
70
70
  if (!(context !== null && context !== void 0 && context.actions)) {
71
71
  return;
72
72
  }
73
- const arr = fg('platform_sl_3p_auth_rovo_action_kill_switch') ? isRovoChatActionAvailable ? [InternalActionName.RovoChatAction] : Object.keys(context.actions).filter(name => name !== InternalActionName.RovoChatAction) : Object.keys(context.actions);
73
+ const arr = fg('platform_sl_3p_auth_rovo_action_kill_switch') || fg('rovogrowth-640-inline-action-nudge-fg') ? isRovoChatActionAvailable ? [InternalActionName.RovoChatAction] : Object.keys(context.actions).filter(name => name !== InternalActionName.RovoChatAction) : Object.keys(context.actions);
74
74
  arr.sort(sort);
75
75
  const renderAction = name => {
76
76
  const Action = name in Actions ? Actions[name] : undefined;
@@ -11,7 +11,7 @@ import AISummaryBlockResolvedView, { RovoSummaryBlockResolvedView } from './reso
11
11
  * @see Block
12
12
  */
13
13
  const AISummaryBlock = ({
14
- is3PAuthRovoActionsExperimentOn,
14
+ isAny3pRovoActionsExperimentOn,
15
15
  testId = 'smart-ai-summary-block',
16
16
  ...props
17
17
  }) => {
@@ -25,7 +25,7 @@ const AISummaryBlock = ({
25
25
  if (!(actionData !== null && actionData !== void 0 && actionData.url)) {
26
26
  return null;
27
27
  }
28
- if (is3PAuthRovoActionsExperimentOn) {
28
+ if (isAny3pRovoActionsExperimentOn) {
29
29
  var _props$size, _cardContext$ui;
30
30
  return /*#__PURE__*/React.createElement(RovoSummaryBlockResolvedView, _extends({}, props, {
31
31
  size: (_props$size = props.size) !== null && _props$size !== void 0 ? _props$size : cardContext === null || cardContext === void 0 ? void 0 : (_cardContext$ui = cardContext.ui) === null || _cardContext$ui === void 0 ? void 0 : _cardContext$ui.size,
@@ -47,7 +47,7 @@ const FlexibleCard = ({
47
47
  openPreviewPanel,
48
48
  product
49
49
  } = useSmartLinkContext();
50
- const rovoConfig = fg('platform_sl_3p_auth_rovo_action_kill_switch') ?
50
+ const rovoConfig = fg('platform_sl_3p_auth_rovo_action_kill_switch') || fg('rovogrowth-640-inline-action-nudge-fg') ?
51
51
  // eslint-disable-next-line react-hooks/rules-of-hooks
52
52
  useRovoConfig() : undefined;
53
53
  const {
@@ -74,7 +74,7 @@ const FlexibleCard = ({
74
74
  origin,
75
75
  renderers,
76
76
  resolve,
77
- ...(fg('platform_sl_3p_auth_rovo_action_kill_switch') ? {
77
+ ...(fg('platform_sl_3p_auth_rovo_action_kill_switch') || fg('rovogrowth-640-inline-action-nudge-fg') ? {
78
78
  product,
79
79
  rovoConfig
80
80
  } : undefined),
@@ -222,7 +222,7 @@ const HoverCardContent = ({
222
222
  });
223
223
  }
224
224
  if (isResolved) {
225
- return /*#__PURE__*/React.createElement(HoverCardResolvedView, _extends({}, fg('platform_sl_3p_auth_rovo_action_kill_switch') ? {
225
+ return /*#__PURE__*/React.createElement(HoverCardResolvedView, _extends({}, fg('platform_sl_3p_auth_rovo_action_kill_switch') || fg('rovogrowth-640-inline-action-nudge-fg') ? {
226
226
  actionOptions,
227
227
  showRovoResolvedView
228
228
  } : undefined, {
@@ -274,7 +274,7 @@ const HoverCardContent = ({
274
274
  });
275
275
  }
276
276
  if (cardState.status === 'resolved') {
277
- return /*#__PURE__*/React.createElement(HoverCardResolvedView, _extends({}, fg('platform_sl_3p_auth_rovo_action_kill_switch') ? {
277
+ return /*#__PURE__*/React.createElement(HoverCardResolvedView, _extends({}, fg('platform_sl_3p_auth_rovo_action_kill_switch') || fg('rovogrowth-640-inline-action-nudge-fg') ? {
278
278
  actionOptions,
279
279
  showRovoResolvedView
280
280
  } : undefined, {
@@ -313,7 +313,7 @@ const HoverCardContentWithViewVariant = props => {
313
313
  }) !== undefined, [actionOptions, cardState.details, rovoConfig, isResolved]);
314
314
  const data = useMemo(() => {
315
315
  let viewVariant = 'default';
316
- if (showRovoResolvedView && expValEqualsNoExposure('platform_sl_3p_auth_rovo_action', 'isEnabled', true)) {
316
+ if (showRovoResolvedView && (expValEqualsNoExposure('platform_sl_3p_auth_rovo_action', 'isEnabled', true) || expValEqualsNoExposure('rovogrowth-640-inline-action-nudge-exp', 'isEnabled', true))) {
317
317
  viewVariant = 'rovo-resolved-view';
318
318
  } else if (showPreauthBetterHovercard) {
319
319
  viewVariant = 'rovo-unauthorised-view';
@@ -334,5 +334,6 @@ export default componentWithCondition(() => {
334
334
  // We need to read both of them to sutisfy some of the tests that expect both to be checked.
335
335
  const flagA = fg('platform_sl_3p_preauth_better_hovercard_killswitch');
336
336
  const flagB = fg('platform_sl_3p_auth_rovo_action_kill_switch');
337
- return flagA || flagB;
337
+ const flagC = fg('rovogrowth-640-inline-action-nudge-fg');
338
+ return flagA || flagB || flagC;
338
339
  }, HoverCardContentWithViewVariant, HoverCardContent);
@@ -9,6 +9,7 @@ import { useAnalyticsEvents } from '../../../../../common/analytics/generated/us
9
9
  import { CardDisplay, SmartLinkPosition, SmartLinkSize } from '../../../../../constants';
10
10
  import { succeedUfoExperience } from '../../../../../state/analytics';
11
11
  import useAISummaryAction from '../../../../../state/hooks/use-ai-summary-action';
12
+ import useInlineActionNudgeExperiment from '../../../../../state/hooks/use-inline-action-nudge-experiment';
12
13
  import FlexibleCard from '../../../../FlexibleCard';
13
14
  import { ActionBlock, AIFooterBlock, AISummaryBlock, ResolvedHoverCardFooterBlock, MetadataBlock, SnippetBlock, TitleBlock } from '../../../../FlexibleCard/components/blocks';
14
15
  import { getMetadata } from '../../../utils';
@@ -31,10 +32,15 @@ const HoverCardResolvedView = ({
31
32
  const {
32
33
  fireEvent
33
34
  } = useAnalyticsEvents();
35
+ const {
36
+ isEnabled: InlineActionNudgeExperimentValue
37
+ } = useInlineActionNudgeExperiment();
34
38
 
35
39
  // We want to fire exposure event only for those cases when user otherwise can see the experiment which would be controlled
36
40
  // by all the other condition defined above as a result of what was defined in actionOptions as well as in CardContext.
37
41
  const is3PAuthRovoActionsExperimentOn = showRovoResolvedView && expValEquals('platform_sl_3p_auth_rovo_action', 'isEnabled', true);
42
+ const is3PInlinePostAuthActionsExperimentOn = showRovoResolvedView && InlineActionNudgeExperimentValue;
43
+ const isAny3pRovoActionsExperimentOn = is3PAuthRovoActionsExperimentOn || is3PInlinePostAuthActionsExperimentOn;
38
44
  useEffect(() => {
39
45
  // Since this hover view is only rendered on resolved status,
40
46
  // there is no need to check for statuses.
@@ -83,7 +89,7 @@ const HoverCardResolvedView = ({
83
89
  }), isAISummaryEnabled ? /*#__PURE__*/React.createElement(AISummaryBlock, {
84
90
  aiSummaryMinHeight: aiSummaryMinHeight,
85
91
  placeholder: snippet,
86
- is3PAuthRovoActionsExperimentOn: is3PAuthRovoActionsExperimentOn
92
+ isAny3pRovoActionsExperimentOn: isAny3pRovoActionsExperimentOn
87
93
  }) : snippet, /*#__PURE__*/React.createElement(SnippetBlock, {
88
94
  testId: "hidden-snippet",
89
95
  onRender: onSnippetRender,
@@ -93,9 +99,9 @@ const HoverCardResolvedView = ({
93
99
  }), /*#__PURE__*/React.createElement(ActionBlock, {
94
100
  onClick: onActionClick,
95
101
  spaceInline: "space.100",
96
- is3PAuthRovoActionsExperimentOn: is3PAuthRovoActionsExperimentOn,
102
+ isAny3pRovoActionsExperimentOn: isAny3pRovoActionsExperimentOn,
97
103
  className: ax(["_n3td1b66"])
98
- }), is3PAuthRovoActionsExperimentOn ? /*#__PURE__*/React.createElement(ResolvedHoverCardFooterBlock, {
104
+ }), isAny3pRovoActionsExperimentOn ? /*#__PURE__*/React.createElement(ResolvedHoverCardFooterBlock, {
99
105
  onActionClick: onActionClick
100
106
  }) : /*#__PURE__*/React.createElement(AIFooterBlock, null));
101
107
  };
@@ -24,11 +24,16 @@ const AISummary = ({
24
24
  if (!content && minHeight === 0) {
25
25
  return null;
26
26
  }
27
+ const is3pExperimentEnabled =
28
+ // eslint-disable-next-line @atlaskit/platform/no-preconditioning
29
+ fg('platform_sl_3p_auth_rovo_action_kill_switch') && expValEqualsNoExposure('platform_sl_3p_auth_rovo_action', 'isEnabled', true) ||
30
+ // eslint-disable-next-line @atlaskit/platform/no-preconditioning
31
+ fg('rovogrowth-640-inline-action-nudge-fg') && expValEqualsNoExposure('rovogrowth-640-inline-action-nudge-exp', 'isEnabled', true);
27
32
  return /*#__PURE__*/React.createElement(Markdown, {
28
33
  "data-testid": testId
29
34
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop
30
35
  ,
31
- className: ax(["_11c8wadc _slp31hna _1nmz1hna _o5724jg8 _181u1kdv _1rkw1kdv _te171kdv _uizt1kdv", expValEqualsNoExposure('platform_sl_3p_auth_rovo_action', 'isEnabled', true) && fg('platform_sl_3p_auth_rovo_action_kill_switch') ? "_syazi7uo" : "_syazazsu", className]),
36
+ className: ax(["_11c8wadc _slp31hna _1nmz1hna _o5724jg8 _181u1kdv _1rkw1kdv _te171kdv _uizt1kdv", is3pExperimentEnabled ? "_syazi7uo" : "_syazazsu", className]),
32
37
  children: content,
33
38
  options: {
34
39
  forceWrapper: true,
@@ -1,11 +1,12 @@
1
1
  import { extractSmartLinkUrl } from '@atlaskit/link-extractors';
2
+ import { fg } from '@atlaskit/platform-feature-flags';
2
3
  import { InternalActionName } from '../../../constants';
3
4
  import { getDefinitionId, getExtensionKey, getResourceType } from '../../../state/helpers';
4
5
  import { canShowAction } from '../../../utils/actions/can-show-action';
5
6
  import { getIsRovoChatEnabled } from '../../../utils/rovo';
6
7
  import { CardAction } from '../../../view/Card/types';
7
8
  var extractRovoChatAction = function extractRovoChatAction(_ref) {
8
- var _actionOptions$rovoCh;
9
+ var _response$meta, _actionOptions$rovoCh;
9
10
  var actionOptions = _ref.actionOptions,
10
11
  appearance = _ref.appearance,
11
12
  id = _ref.id,
@@ -19,10 +20,11 @@ var extractRovoChatAction = function extractRovoChatAction(_ref) {
19
20
  if (!isRovoChatEnabled) {
20
21
  return;
21
22
  }
22
-
23
- // Experiment cleanup note: platform_sl_3p_auth_rovo_action
24
- // If feature isn't support all 3P, this value should come from meta.supportedFeature
25
- var isSupportedFeature = getExtensionKey(response) === 'google-object-provider';
23
+ var supportsRovoActions = response === null || response === void 0 || (_response$meta = response.meta) === null || _response$meta === void 0 || (_response$meta = _response$meta.supportedFeature) === null || _response$meta === void 0 ? void 0 : _response$meta.includes('RovoActions');
24
+ var isGoogleProvider = getExtensionKey(response) === 'google-object-provider';
25
+ var is3PAuthRovoActionEnabled = isGoogleProvider && fg('platform_sl_3p_auth_rovo_action_kill_switch');
26
+ var is3PInlinePostAuthActionsEnabled = !isGoogleProvider && fg('rovogrowth-640-inline-action-nudge-fg');
27
+ var isSupportedFeature = supportsRovoActions && is3PInlinePostAuthActionsEnabled || is3PAuthRovoActionEnabled;
26
28
  var isOptIn = (actionOptions === null || actionOptions === void 0 || (_actionOptions$rovoCh = actionOptions.rovoChatAction) === null || _actionOptions$rovoCh === void 0 ? void 0 : _actionOptions$rovoCh.optIn) === true;
27
29
  var url = extractSmartLinkUrl(response);
28
30
  return isSupportedFeature && isOptIn ? {
@@ -43,7 +43,7 @@ export var extractFlexibleCardActions = function extractFlexibleCardActions(_ref
43
43
  response: response,
44
44
  isPreviewPanelAvailable: isPreviewPanelAvailable,
45
45
  openPreviewPanel: openPreviewPanel
46
- })), ActionName.AutomationAction, extractAutomationAction(response)), InternalActionName.AISummaryAction, extractAISummaryAction(response, url, actionOptions, aiSummaryConfig)), fg('platform_sl_3p_auth_rovo_action_kill_switch') ? _defineProperty({}, InternalActionName.RovoChatAction, extractRovoChatAction({
46
+ })), ActionName.AutomationAction, extractAutomationAction(response)), InternalActionName.AISummaryAction, extractAISummaryAction(response, url, actionOptions, aiSummaryConfig)), fg('platform_sl_3p_auth_rovo_action_kill_switch') || fg('rovogrowth-640-inline-action-nudge-fg') ? _defineProperty({}, InternalActionName.RovoChatAction, extractRovoChatAction({
47
47
  actionOptions: actionOptions,
48
48
  appearance: appearance,
49
49
  id: id,
@@ -48,7 +48,7 @@ var extractFlexibleUiContext = function extractFlexibleUiContext() {
48
48
  fireEvent: fireEvent,
49
49
  id: id,
50
50
  origin: origin
51
- }, fg('platform_sl_3p_auth_rovo_action_kill_switch') ? {
51
+ }, fg('platform_sl_3p_auth_rovo_action_kill_switch') || fg('rovogrowth-640-inline-action-nudge-fg') ? {
52
52
  product: product,
53
53
  rovoConfig: rovoConfig
54
54
  } : undefined), {}, {
@@ -945,5 +945,30 @@ export var messages = defineMessages({
945
945
  id: 'fabric.linking.rovo_prompt_message_suggest_improvement.non-final',
946
946
  defaultMessage: '<p>Using the {context} I’m viewing now, plus all files and links referenced in it (including <a>{url}</a>):</p><ul><li><p>Identify unclear reasoning, missing context, or contradictions between the item and its linked files.</p></li><li><p>Call out any places where assumptions are not backed up by data or prior docs.</p></li><li><p>Stay concise: summarize your findings in <b>no more than three short paragraphs of content listed as bullets</b> of no more than a couple of sentences long focused only on the two points above.</p></li><li><p>After presenting that summary, <b>ask me explicitly</b> if I want you to go deeper. Only if I say yes, then:</p><ul><li><p>Suggest concrete rewrites (bullets or short paragraphs) to make the argument clearer, more concise, and better aligned with the supporting files.</p></li><li><p>Propose 3–5 follow‑up edits or additions that would make this item and its linked docs “share‑ready” for stakeholders.</p></li></ul></li></ul>',
947
947
  description: 'The prompt message to send to Rovo Chat. {context} refers to the content the user triggered from, e.g. Confluence page or Jira work item. {url} refers to Smart Link that the user triggers this action from. (Please make sure all html tags remain the same.)'
948
+ },
949
+ rovo_prompt_message_summarize: {
950
+ id: 'fabric.linking.rovo_prompt_message_summarize.non-final',
951
+ defaultMessage: '<p>Summarize the main ideas and key points of <a>{url}</a> in 3-5 clear, complete sentences.</p><p>Preserve any important details such as names, dates, and key decisions.</p>',
952
+ description: 'The prompt message to send to Rovo Chat. {url} refers to Smart Link that the user triggers this action from. (Please make sure all html tags remain the same.)'
953
+ },
954
+ rovo_prompt_button_key_highlights: {
955
+ id: 'fabric.linking.rovo_prompt_button_key_highlights.non-final',
956
+ defaultMessage: 'Key highlights',
957
+ description: 'The name of the action to send a key highlights prompt message to Rovo Chat in relation to current Smart Link'
958
+ },
959
+ rovo_prompt_message_key_highlights: {
960
+ id: 'fabric.linking.rovo_prompt_message_key_highlights.non-final',
961
+ defaultMessage: '<p>Based on <a>{url}</a> and the page or ticket I\'m currently viewing, highlight the parts of the linked content that are most relevant to this work. Explain briefly why each part is relevant.</p>',
962
+ description: 'The prompt message to send to Rovo Chat. {url} refers to Smart Link that the user triggers this action from. (Please make sure all html tags remain the same.)'
963
+ },
964
+ rovo_prompt_button_ask_rovo_anything: {
965
+ id: 'fabric.linking.rovo_prompt_button_ask_rovo.non-final',
966
+ defaultMessage: 'Ask Rovo',
967
+ description: 'The name of the action to open Rovo Chat and ask a question in relation to current Smart Link'
968
+ },
969
+ rovo_prompt_message_ask_rovo_anything: {
970
+ id: 'fabric.linking.rovo_prompt_message_ask_rovo_anything.non-final',
971
+ defaultMessage: '`I have a question about this linked item` {url}',
972
+ description: 'The placeholder prompt message pre-filled in Rovo Chat input. {url} refers to the Smart Link URL. This is not auto-submitted — the user types their question.'
948
973
  }
949
974
  });
@@ -10,7 +10,7 @@ var NOT_ENABLED_RESULT = {
10
10
  };
11
11
 
12
12
  /**
13
- * Returns whether the rovogrowth_640_inline_action_nudge experiment
13
+ * Returns whether the rovogrowth-640-inline-action-nudge-exp experiment
14
14
  * is enabled for the current user and link context.
15
15
  *
16
16
  * All eligibility criteria are consolidated here:
@@ -33,7 +33,7 @@ var useInlineActionNudgeExperiment = function useInlineActionNudgeExperiment(url
33
33
  if (extensionKey && EXCLUDED_EXTENSION_KEYS.has(extensionKey)) {
34
34
  return NOT_ENABLED_RESULT;
35
35
  }
36
- var isEnabled = expValEquals('rovogrowth_640_inline_action_nudge', 'isEnabled', true);
36
+ var isEnabled = expValEquals('rovogrowth-640-inline-action-nudge-exp', 'isEnabled', true);
37
37
  return {
38
38
  isEnabled: isEnabled
39
39
  };
@@ -34,8 +34,13 @@ var ActionButton = function ActionButton(_ref) {
34
34
  onClickCallback();
35
35
  }
36
36
  }, [isDisabled, isLoading, onClickCallback]);
37
+ var is3pExperimentEnabled =
38
+ // eslint-disable-next-line @atlaskit/platform/no-preconditioning
39
+ fg('platform_sl_3p_auth_rovo_action_kill_switch') && expValEqualsNoExposure('platform_sl_3p_auth_rovo_action', 'isEnabled', true) ||
40
+ // eslint-disable-next-line @atlaskit/platform/no-preconditioning
41
+ fg('rovogrowth-640-inline-action-nudge-fg') && expValEqualsNoExposure('rovogrowth-640-inline-action-nudge-exp', 'isEnabled', true);
37
42
  var icon = iconOption && isLoading ? /*#__PURE__*/React.createElement(ActionIcon, {
38
- icon: expValEqualsNoExposure('platform_sl_3p_auth_rovo_action', 'isEnabled', true) && fg('platform_sl_3p_auth_rovo_action_kill_switch') ? /*#__PURE__*/React.createElement(Box, {
43
+ icon: is3pExperimentEnabled ? /*#__PURE__*/React.createElement(Box, {
39
44
  xcss: styles.spinner
40
45
  }, /*#__PURE__*/React.createElement(Spinner, {
41
46
  size: 16,
@@ -8,6 +8,7 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
8
8
  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) { _defineProperty(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; }
9
9
  import React, { useCallback, useMemo } from 'react';
10
10
  import { useIntl } from 'react-intl';
11
+ import { expValEqualsNoExposure } from '@atlaskit/tmp-editor-statsig/exp-val-equals-no-exposure';
11
12
  import { InternalActionName } from '../../../../../constants';
12
13
  import { messages } from '../../../../../messages';
13
14
  import { useFlexibleUiContext } from '../../../../../state/flexible-ui-context';
@@ -22,9 +23,16 @@ export var RovoChatPromptKey = /*#__PURE__*/function (RovoChatPromptKey) {
22
23
  RovoChatPromptKey["RECOMMEND_OTHER_SOURCES"] = "recommend-other-sources";
23
24
  RovoChatPromptKey["SHOW_OTHER_MENTIONS"] = "show-other-mentions";
24
25
  RovoChatPromptKey["SUGGEST_IMPROVEMENT"] = "suggest-improvement";
26
+ RovoChatPromptKey["SUMMARIZE_LINK"] = "summarize-link";
27
+ RovoChatPromptKey["KEY_HIGHLIGHTS"] = "key-highlights";
28
+ RovoChatPromptKey["ASK_ROVO_ANYTHING"] = "ask-rovo-anything";
25
29
  return RovoChatPromptKey;
26
30
  }({});
27
- var DEFAULT_PROMPTS = [RovoChatPromptKey.RECOMMEND_OTHER_SOURCES, RovoChatPromptKey.SHOW_OTHER_MENTIONS, RovoChatPromptKey.SUGGEST_IMPROVEMENT];
31
+ var GOOGLE_PROMPTS = [RovoChatPromptKey.RECOMMEND_OTHER_SOURCES, RovoChatPromptKey.SHOW_OTHER_MENTIONS, RovoChatPromptKey.SUGGEST_IMPROVEMENT];
32
+ var GENERIC_3P_PROMPTS = [
33
+ // For rovogrowth-640-inline-action-nudge-exp only. Applies to all RovoActions eligible providers, except Google
34
+ RovoChatPromptKey.SUMMARIZE_LINK, RovoChatPromptKey.KEY_HIGHLIGHTS, RovoChatPromptKey.ASK_ROVO_ANYTHING];
35
+ var DEFAULT_PROMPTS = GOOGLE_PROMPTS;
28
36
  var getContext = function getContext(intl, product) {
29
37
  switch (product) {
30
38
  case 'CONFLUENCE':
@@ -109,13 +117,69 @@ var getPromptAction = function getPromptAction(promptKey, intl) {
109
117
  prompt: htmlToAdf(html_improvement)
110
118
  }
111
119
  };
120
+ case RovoChatPromptKey.SUMMARIZE_LINK:
121
+ var label_summarize = intl.formatMessage(messages.ai_summarize);
122
+ var html_summarize = intl.formatMessage(messages.rovo_prompt_message_summarize, {
123
+ url: url
124
+ }, {
125
+ ignoreTag: true
126
+ });
127
+ return {
128
+ icon: /*#__PURE__*/React.createElement(AIEditIcon, null),
129
+ content: label_summarize,
130
+ tooltipMessage: label_summarize,
131
+ data: {
132
+ name: label_summarize,
133
+ dialogues: [],
134
+ prompt: htmlToAdf(html_summarize),
135
+ mode: {
136
+ fastModeEnabled: true
137
+ }
138
+ }
139
+ };
140
+ case RovoChatPromptKey.KEY_HIGHLIGHTS:
141
+ var label_key_highlights = intl.formatMessage(messages.rovo_prompt_button_key_highlights);
142
+ var html_key_highlights = intl.formatMessage(messages.rovo_prompt_message_key_highlights, {
143
+ url: url
144
+ }, {
145
+ ignoreTag: true
146
+ });
147
+ return {
148
+ icon: /*#__PURE__*/React.createElement(AiChapterIcon, null),
149
+ content: label_key_highlights,
150
+ tooltipMessage: label_key_highlights,
151
+ data: {
152
+ name: label_key_highlights,
153
+ dialogues: [],
154
+ prompt: htmlToAdf(html_key_highlights),
155
+ mode: {
156
+ fastModeEnabled: true
157
+ }
158
+ }
159
+ };
160
+ case RovoChatPromptKey.ASK_ROVO_ANYTHING:
161
+ var label_ask_rovo_anything = intl.formatMessage(messages.rovo_prompt_button_ask_rovo_anything);
162
+ var prompt_ask_rovo_anything = intl.formatMessage(messages.rovo_prompt_message_ask_rovo_anything, {
163
+ url: url
164
+ });
165
+ return {
166
+ icon: /*#__PURE__*/React.createElement(AISearchIcon, null),
167
+ content: label_ask_rovo_anything,
168
+ tooltipMessage: label_ask_rovo_anything,
169
+ data: {
170
+ name: label_ask_rovo_anything,
171
+ dialogues: [],
172
+ prompt: prompt_ask_rovo_anything,
173
+ isPromptPlaceholder: true,
174
+ placeholderType: 'generic'
175
+ }
176
+ };
112
177
  }
113
178
  };
114
179
  var RovoChatAction = function RovoChatAction(_ref2) {
115
- var _context$actions;
180
+ var _context$actions, _data$invokeAction2;
116
181
  var onClickCallback = _ref2.onClick,
117
- _ref2$prompts = _ref2.prompts,
118
- prompts = _ref2$prompts === void 0 ? DEFAULT_PROMPTS : _ref2$prompts,
182
+ prompts = _ref2.prompts,
119
183
  _ref2$testId = _ref2.testId,
120
184
  testId = _ref2$testId === void 0 ? 'smart-action-rovo-chat-action' : _ref2$testId,
121
185
  props = _objectWithoutProperties(_ref2, _excluded);
@@ -125,6 +189,16 @@ var RovoChatAction = function RovoChatAction(_ref2) {
125
189
  sendPromptMessage = _useRovoChat.sendPromptMessage;
126
190
  var context = useFlexibleUiContext();
127
191
  var data = context === null || context === void 0 || (_context$actions = context.actions) === null || _context$actions === void 0 ? void 0 : _context$actions[InternalActionName.RovoChatAction];
192
+ var resolvedPrompts = useMemo(function () {
193
+ var _data$invokeAction;
194
+ if (prompts) {
195
+ return prompts;
196
+ }
197
+ if (expValEqualsNoExposure('rovogrowth-640-inline-action-nudge-exp', 'isEnabled', true) && (data === null || data === void 0 || (_data$invokeAction = data.invokeAction) === null || _data$invokeAction === void 0 ? void 0 : _data$invokeAction.extensionKey) !== 'google-object-provider') {
198
+ return GENERIC_3P_PROMPTS;
199
+ }
200
+ return DEFAULT_PROMPTS;
201
+ }, [prompts, data === null || data === void 0 || (_data$invokeAction2 = data.invokeAction) === null || _data$invokeAction2 === void 0 ? void 0 : _data$invokeAction2.extensionKey]);
128
202
  var invoke = useInvokeClientAction({});
129
203
  var _onClick = useCallback(function (promptData, promptKey) {
130
204
  if (promptData && data !== null && data !== void 0 && data.invokeAction) {
@@ -152,7 +226,7 @@ var RovoChatAction = function RovoChatAction(_ref2) {
152
226
  }
153
227
  }, [data === null || data === void 0 ? void 0 : data.invokeAction, invoke, onClickCallback, sendPromptMessage]);
154
228
  var promptActions = useMemo(function () {
155
- return prompts.map(function (promptKey, idx) {
229
+ return resolvedPrompts.map(function (promptKey, idx) {
156
230
  var _ref3 = getPromptAction(promptKey, intl, data === null || data === void 0 ? void 0 : data.url, data === null || data === void 0 ? void 0 : data.product) || {},
157
231
  icon = _ref3.icon,
158
232
  content = _ref3.content,
@@ -169,7 +243,7 @@ var RovoChatAction = function RovoChatAction(_ref2) {
169
243
  tooltipMessage: tooltipMessage
170
244
  }, props)) : null;
171
245
  });
172
- }, [data, intl, _onClick, prompts, props, testId]);
246
+ }, [data, intl, _onClick, resolvedPrompts, props, testId]);
173
247
  return isRovoChatEnabled && data && (promptActions === null || promptActions === void 0 ? void 0 : promptActions.length) > 0 ? /*#__PURE__*/React.createElement(React.Fragment, null, promptActions) : null;
174
248
  };
175
249
  export default RovoChatAction;
@@ -50,10 +50,10 @@ var ActionBlock = function ActionBlock(_ref) {
50
50
  className = _ref.className,
51
51
  _ref$testId = _ref.testId,
52
52
  testId = _ref$testId === void 0 ? 'smart-block-action' : _ref$testId,
53
- is3PAuthRovoActionsExperimentOn = _ref.is3PAuthRovoActionsExperimentOn;
53
+ isAny3pRovoActionsExperimentOn = _ref.isAny3pRovoActionsExperimentOn;
54
54
  var context = useFlexibleUiContext();
55
55
  var ui = useFlexibleUiOptionContext();
56
- var isRovoChatActionAvailable = is3PAuthRovoActionsExperimentOn && fg('platform_sl_3p_auth_rovo_action_kill_switch') ? (context === null || context === void 0 || (_context$actions = context.actions) === null || _context$actions === void 0 ? void 0 : _context$actions[InternalActionName.RovoChatAction]) !== undefined : undefined;
56
+ var isRovoChatActionAvailable = (fg('platform_sl_3p_auth_rovo_action_kill_switch') || fg('rovogrowth-640-inline-action-nudge-fg')) && isAny3pRovoActionsExperimentOn ? (context === null || context === void 0 || (_context$actions = context.actions) === null || _context$actions === void 0 ? void 0 : _context$actions[InternalActionName.RovoChatAction]) !== undefined : undefined;
57
57
  var _useState = useState(),
58
58
  _useState2 = _slicedToArray(_useState, 2),
59
59
  message = _useState2[0],
@@ -77,7 +77,7 @@ var ActionBlock = function ActionBlock(_ref) {
77
77
  if (!(context !== null && context !== void 0 && context.actions)) {
78
78
  return;
79
79
  }
80
- var arr = fg('platform_sl_3p_auth_rovo_action_kill_switch') ? isRovoChatActionAvailable ? [InternalActionName.RovoChatAction] : Object.keys(context.actions).filter(function (name) {
80
+ var arr = fg('platform_sl_3p_auth_rovo_action_kill_switch') || fg('rovogrowth-640-inline-action-nudge-fg') ? isRovoChatActionAvailable ? [InternalActionName.RovoChatAction] : Object.keys(context.actions).filter(function (name) {
81
81
  return name !== InternalActionName.RovoChatAction;
82
82
  }) : Object.keys(context.actions);
83
83
  arr.sort(sort);
@@ -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 = ["is3PAuthRovoActionsExperimentOn", "testId"];
3
+ var _excluded = ["isAny3pRovoActionsExperimentOn", "testId"];
4
4
  import React from 'react';
5
5
  import { InternalActionName, SmartLinkStatus } from '../../../../../constants';
6
6
  import { useFlexibleCardContext, useFlexibleUiContext } from '../../../../../state/flexible-ui-context';
@@ -14,7 +14,7 @@ import AISummaryBlockResolvedView, { RovoSummaryBlockResolvedView } from './reso
14
14
  */
15
15
  var AISummaryBlock = function AISummaryBlock(_ref) {
16
16
  var _context$actions, _props$size2, _cardContext$ui2;
17
- var is3PAuthRovoActionsExperimentOn = _ref.is3PAuthRovoActionsExperimentOn,
17
+ var isAny3pRovoActionsExperimentOn = _ref.isAny3pRovoActionsExperimentOn,
18
18
  _ref$testId = _ref.testId,
19
19
  testId = _ref$testId === void 0 ? 'smart-ai-summary-block' : _ref$testId,
20
20
  props = _objectWithoutProperties(_ref, _excluded);
@@ -27,7 +27,7 @@ var AISummaryBlock = function AISummaryBlock(_ref) {
27
27
  if (!(actionData !== null && actionData !== void 0 && actionData.url)) {
28
28
  return null;
29
29
  }
30
- if (is3PAuthRovoActionsExperimentOn) {
30
+ if (isAny3pRovoActionsExperimentOn) {
31
31
  var _props$size, _cardContext$ui;
32
32
  return /*#__PURE__*/React.createElement(RovoSummaryBlockResolvedView, _extends({}, props, {
33
33
  size: (_props$size = props.size) !== null && _props$size !== void 0 ? _props$size : cardContext === null || cardContext === void 0 || (_cardContext$ui = cardContext.ui) === null || _cardContext$ui === void 0 ? void 0 : _cardContext$ui.size,
@@ -49,7 +49,7 @@ var FlexibleCard = function FlexibleCard(_ref) {
49
49
  isPreviewPanelAvailable = _useSmartLinkContext.isPreviewPanelAvailable,
50
50
  openPreviewPanel = _useSmartLinkContext.openPreviewPanel,
51
51
  product = _useSmartLinkContext.product;
52
- var rovoConfig = fg('platform_sl_3p_auth_rovo_action_kill_switch') ?
52
+ var rovoConfig = fg('platform_sl_3p_auth_rovo_action_kill_switch') || fg('rovogrowth-640-inline-action-nudge-fg') ?
53
53
  // eslint-disable-next-line react-hooks/rules-of-hooks
54
54
  useRovoConfig() : undefined;
55
55
  var _useAnalyticsEvents = useAnalyticsEvents(),
@@ -76,7 +76,7 @@ var FlexibleCard = function FlexibleCard(_ref) {
76
76
  origin: origin,
77
77
  renderers: renderers,
78
78
  resolve: resolve
79
- }, fg('platform_sl_3p_auth_rovo_action_kill_switch') ? {
79
+ }, fg('platform_sl_3p_auth_rovo_action_kill_switch') || fg('rovogrowth-640-inline-action-nudge-fg') ? {
80
80
  product: product,
81
81
  rovoConfig: rovoConfig
82
82
  } : undefined), {}, {