@atlaskit/smart-card 43.26.4 → 43.26.6

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 (86) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/analytics.spec.yaml +9 -0
  3. package/dist/cjs/__tests__/vr-tests/__snapshots__/block-card/block-card-bitbucket--default.png +2 -2
  4. package/dist/cjs/__tests__/vr-tests/__snapshots__/block-card/block-card-confluence--default--navx-1895-new-logo-design-false.png +2 -2
  5. package/dist/cjs/__tests__/vr-tests/__snapshots__/block-card/block-card-confluence--default--navx-1895-new-logo-design-true.png +2 -2
  6. package/dist/cjs/__tests__/vr-tests/__snapshots__/block-card/block-card-with-lazy-load-icons-slice-1--default.png +2 -2
  7. package/dist/cjs/__tests__/vr-tests/__snapshots__/block-card/block-card-with-lazy-load-icons-slice-2--default--navx-1895-new-logo-design-false.png +2 -2
  8. package/dist/cjs/__tests__/vr-tests/__snapshots__/block-card/block-card-with-lazy-load-icons-slice-2--default--navx-1895-new-logo-design-true.png +2 -2
  9. package/dist/cjs/__tests__/vr-tests/__snapshots__/block-card/block-card-with-lazy-load-icons-slice-3--default--navx-1895-new-logo-design-false.png +2 -2
  10. package/dist/cjs/__tests__/vr-tests/__snapshots__/block-card/block-card-with-lazy-load-icons-slice-3--default--navx-1895-new-logo-design-true.png +2 -2
  11. package/dist/cjs/__tests__/vr-tests/__snapshots__/block-card/block-card-with-lazy-load-icons-slice-4--default--navx-1895-new-logo-design-false.png +2 -2
  12. package/dist/cjs/__tests__/vr-tests/__snapshots__/block-card/block-card-with-lazy-load-icons-slice-4--default--navx-1895-new-logo-design-true.png +2 -2
  13. package/dist/cjs/__tests__/vr-tests/__snapshots__/embed-modal/renders-embed-modal-with-flexible-ui-icon--default.png +2 -2
  14. package/dist/cjs/__tests__/vr-tests/__snapshots__/flexible-card/flexible-ui-accessibility--hidden-action-button-focused--default.png +2 -2
  15. package/dist/cjs/__tests__/vr-tests/__snapshots__/flexible-card/flexible-ui-accessibility--title-focused--default.png +2 -2
  16. package/dist/cjs/__tests__/vr-tests/__snapshots__/flexible-card/flexible-ui-composition--default--navx-1895-new-logo-design-false.png +2 -2
  17. package/dist/cjs/__tests__/vr-tests/__snapshots__/flexible-card/flexible-ui-composition--default--navx-1895-new-logo-design-true.png +2 -2
  18. package/dist/cjs/__tests__/vr-tests/__snapshots__/flexible-card/flexible-ui-element-badge--default--navx-1895-new-logo-design-false.png +2 -2
  19. package/dist/cjs/__tests__/vr-tests/__snapshots__/related-links-modal/resolved--light-mode.png +2 -2
  20. package/dist/cjs/__tests__/vr-tests/__snapshots__/related-links-modal/resolved-empty--light-mode.png +2 -2
  21. package/dist/cjs/extractors/flexible/actions/extract-rovo-chat-action.js +17 -1
  22. package/dist/cjs/extractors/flexible/actions/index.js +8 -1
  23. package/dist/cjs/state/hooks/use-invoke-client-action/index.js +4 -3
  24. package/dist/cjs/utils/analytics/analytics.js +1 -1
  25. package/dist/cjs/view/FlexibleCard/components/actions/rovo-chat-action/index.js +31 -8
  26. package/dist/cjs/view/HoverCard/components/views/resolved/index.js +5 -1
  27. package/dist/cjs/view/LinkUrl/index.js +1 -1
  28. package/dist/es2019/__tests__/vr-tests/__snapshots__/block-card/block-card-bitbucket--default.png +2 -2
  29. package/dist/es2019/__tests__/vr-tests/__snapshots__/block-card/block-card-confluence--default--navx-1895-new-logo-design-false.png +2 -2
  30. package/dist/es2019/__tests__/vr-tests/__snapshots__/block-card/block-card-confluence--default--navx-1895-new-logo-design-true.png +2 -2
  31. package/dist/es2019/__tests__/vr-tests/__snapshots__/block-card/block-card-with-lazy-load-icons-slice-1--default.png +2 -2
  32. package/dist/es2019/__tests__/vr-tests/__snapshots__/block-card/block-card-with-lazy-load-icons-slice-2--default--navx-1895-new-logo-design-false.png +2 -2
  33. package/dist/es2019/__tests__/vr-tests/__snapshots__/block-card/block-card-with-lazy-load-icons-slice-2--default--navx-1895-new-logo-design-true.png +2 -2
  34. package/dist/es2019/__tests__/vr-tests/__snapshots__/block-card/block-card-with-lazy-load-icons-slice-3--default--navx-1895-new-logo-design-false.png +2 -2
  35. package/dist/es2019/__tests__/vr-tests/__snapshots__/block-card/block-card-with-lazy-load-icons-slice-3--default--navx-1895-new-logo-design-true.png +2 -2
  36. package/dist/es2019/__tests__/vr-tests/__snapshots__/block-card/block-card-with-lazy-load-icons-slice-4--default--navx-1895-new-logo-design-false.png +2 -2
  37. package/dist/es2019/__tests__/vr-tests/__snapshots__/block-card/block-card-with-lazy-load-icons-slice-4--default--navx-1895-new-logo-design-true.png +2 -2
  38. package/dist/es2019/__tests__/vr-tests/__snapshots__/embed-modal/renders-embed-modal-with-flexible-ui-icon--default.png +2 -2
  39. package/dist/es2019/__tests__/vr-tests/__snapshots__/flexible-card/flexible-ui-accessibility--hidden-action-button-focused--default.png +2 -2
  40. package/dist/es2019/__tests__/vr-tests/__snapshots__/flexible-card/flexible-ui-accessibility--title-focused--default.png +2 -2
  41. package/dist/es2019/__tests__/vr-tests/__snapshots__/flexible-card/flexible-ui-composition--default--navx-1895-new-logo-design-false.png +2 -2
  42. package/dist/es2019/__tests__/vr-tests/__snapshots__/flexible-card/flexible-ui-composition--default--navx-1895-new-logo-design-true.png +2 -2
  43. package/dist/es2019/__tests__/vr-tests/__snapshots__/flexible-card/flexible-ui-element-badge--default--navx-1895-new-logo-design-false.png +2 -2
  44. package/dist/es2019/__tests__/vr-tests/__snapshots__/related-links-modal/resolved--light-mode.png +2 -2
  45. package/dist/es2019/__tests__/vr-tests/__snapshots__/related-links-modal/resolved-empty--light-mode.png +2 -2
  46. package/dist/es2019/extractors/flexible/actions/extract-rovo-chat-action.js +19 -2
  47. package/dist/es2019/extractors/flexible/actions/index.js +8 -1
  48. package/dist/es2019/state/hooks/use-invoke-client-action/index.js +3 -1
  49. package/dist/es2019/utils/analytics/analytics.js +1 -1
  50. package/dist/es2019/view/FlexibleCard/components/actions/rovo-chat-action/index.js +11 -8
  51. package/dist/es2019/view/HoverCard/components/views/resolved/index.js +5 -1
  52. package/dist/es2019/view/LinkUrl/index.js +1 -1
  53. package/dist/esm/__tests__/vr-tests/__snapshots__/block-card/block-card-bitbucket--default.png +2 -2
  54. package/dist/esm/__tests__/vr-tests/__snapshots__/block-card/block-card-confluence--default--navx-1895-new-logo-design-false.png +2 -2
  55. package/dist/esm/__tests__/vr-tests/__snapshots__/block-card/block-card-confluence--default--navx-1895-new-logo-design-true.png +2 -2
  56. package/dist/esm/__tests__/vr-tests/__snapshots__/block-card/block-card-with-lazy-load-icons-slice-1--default.png +2 -2
  57. package/dist/esm/__tests__/vr-tests/__snapshots__/block-card/block-card-with-lazy-load-icons-slice-2--default--navx-1895-new-logo-design-false.png +2 -2
  58. package/dist/esm/__tests__/vr-tests/__snapshots__/block-card/block-card-with-lazy-load-icons-slice-2--default--navx-1895-new-logo-design-true.png +2 -2
  59. package/dist/esm/__tests__/vr-tests/__snapshots__/block-card/block-card-with-lazy-load-icons-slice-3--default--navx-1895-new-logo-design-false.png +2 -2
  60. package/dist/esm/__tests__/vr-tests/__snapshots__/block-card/block-card-with-lazy-load-icons-slice-3--default--navx-1895-new-logo-design-true.png +2 -2
  61. package/dist/esm/__tests__/vr-tests/__snapshots__/block-card/block-card-with-lazy-load-icons-slice-4--default--navx-1895-new-logo-design-false.png +2 -2
  62. package/dist/esm/__tests__/vr-tests/__snapshots__/block-card/block-card-with-lazy-load-icons-slice-4--default--navx-1895-new-logo-design-true.png +2 -2
  63. package/dist/esm/__tests__/vr-tests/__snapshots__/embed-modal/renders-embed-modal-with-flexible-ui-icon--default.png +2 -2
  64. package/dist/esm/__tests__/vr-tests/__snapshots__/flexible-card/flexible-ui-accessibility--hidden-action-button-focused--default.png +2 -2
  65. package/dist/esm/__tests__/vr-tests/__snapshots__/flexible-card/flexible-ui-accessibility--title-focused--default.png +2 -2
  66. package/dist/esm/__tests__/vr-tests/__snapshots__/flexible-card/flexible-ui-composition--default--navx-1895-new-logo-design-false.png +2 -2
  67. package/dist/esm/__tests__/vr-tests/__snapshots__/flexible-card/flexible-ui-composition--default--navx-1895-new-logo-design-true.png +2 -2
  68. package/dist/esm/__tests__/vr-tests/__snapshots__/flexible-card/flexible-ui-element-badge--default--navx-1895-new-logo-design-false.png +2 -2
  69. package/dist/esm/__tests__/vr-tests/__snapshots__/related-links-modal/resolved--light-mode.png +2 -2
  70. package/dist/esm/__tests__/vr-tests/__snapshots__/related-links-modal/resolved-empty--light-mode.png +2 -2
  71. package/dist/esm/extractors/flexible/actions/extract-rovo-chat-action.js +18 -2
  72. package/dist/esm/extractors/flexible/actions/index.js +8 -1
  73. package/dist/esm/state/hooks/use-invoke-client-action/index.js +4 -3
  74. package/dist/esm/utils/analytics/analytics.js +1 -1
  75. package/dist/esm/view/FlexibleCard/components/actions/rovo-chat-action/index.js +31 -8
  76. package/dist/esm/view/HoverCard/components/views/resolved/index.js +5 -1
  77. package/dist/esm/view/LinkUrl/index.js +1 -1
  78. package/dist/types/common/analytics/generated/analytics.types.d.ts +12 -1
  79. package/dist/types/extractors/flexible/actions/extract-rovo-chat-action.d.ts +10 -1
  80. package/dist/types/state/flexible-ui-context/types.d.ts +1 -0
  81. package/dist/types/state/hooks/use-invoke-client-action/types.d.ts +6 -2
  82. package/dist/types-ts4.5/common/analytics/generated/analytics.types.d.ts +12 -1
  83. package/dist/types-ts4.5/extractors/flexible/actions/extract-rovo-chat-action.d.ts +10 -1
  84. package/dist/types-ts4.5/state/flexible-ui-context/types.d.ts +1 -0
  85. package/dist/types-ts4.5/state/hooks/use-invoke-client-action/types.d.ts +6 -2
  86. package/package.json +7 -7
@@ -4,6 +4,7 @@ import { useIntl } from 'react-intl-next';
4
4
  import { InternalActionName } from '../../../../../constants';
5
5
  import { messages } from '../../../../../messages';
6
6
  import { useFlexibleUiContext } from '../../../../../state/flexible-ui-context';
7
+ import useInvokeClientAction from '../../../../../state/hooks/use-invoke-client-action';
7
8
  import useRovoChat from '../../../../../state/hooks/use-rovo-chat';
8
9
  import AiChapterIcon from '../../../assets/ai-chapter-icon';
9
10
  import AIEditIcon from '../../../assets/ai-edit-icon';
@@ -116,15 +117,17 @@ const RovoChatAction = ({
116
117
  } = useRovoChat();
117
118
  const context = useFlexibleUiContext();
118
119
  const data = context === null || context === void 0 ? void 0 : (_context$actions = context.actions) === null || _context$actions === void 0 ? void 0 : _context$actions[InternalActionName.RovoChatAction];
119
- const onClick = useCallback(promptData => {
120
- if (promptData) {
121
- sendPromptMessage(promptData);
122
-
123
- // NAVX-3599: Add analytics event, possibly as useInvokeClientAction()
124
-
120
+ const invoke = useInvokeClientAction({});
121
+ const onClick = useCallback((promptData, promptKey) => {
122
+ if (promptData && data !== null && data !== void 0 && data.invokeAction) {
123
+ invoke({
124
+ ...(data === null || data === void 0 ? void 0 : data.invokeAction),
125
+ actionFn: async () => sendPromptMessage(promptData),
126
+ prompt: promptKey
127
+ });
125
128
  onClickCallback === null || onClickCallback === void 0 ? void 0 : onClickCallback();
126
129
  }
127
- }, [onClickCallback, sendPromptMessage]);
130
+ }, [data === null || data === void 0 ? void 0 : data.invokeAction, invoke, onClickCallback, sendPromptMessage]);
128
131
  const promptActions = useMemo(() => {
129
132
  return prompts.map((promptKey, idx) => {
130
133
  const {
@@ -137,7 +140,7 @@ const RovoChatAction = ({
137
140
  content: content,
138
141
  icon: icon,
139
142
  key: promptKey,
140
- onClick: () => onClick(promptData),
143
+ onClick: () => onClick(promptData, promptKey),
141
144
  testId: `${testId}-${idx + 1}`,
142
145
  tooltipMessage: tooltipMessage
143
146
  }, props)) : null;
@@ -40,7 +40,11 @@ const HoverCardResolvedView = ({
40
40
  useRovoConfig() : undefined;
41
41
  const isRovoSummaryEnabled = fg('platform_sl_3p_auth_rovo_action_kill_switch') ?
42
42
  // eslint-disable-next-line react-hooks/rules-of-hooks
43
- useMemo(() => (cardState === null || cardState === void 0 ? void 0 : cardState.details) && extractRovoChatAction(cardState.details, rovoConfig, actionOptions) !== undefined, [actionOptions, cardState === null || cardState === void 0 ? void 0 : cardState.details, rovoConfig]) : false;
43
+ useMemo(() => (cardState === null || cardState === void 0 ? void 0 : cardState.details) && extractRovoChatAction({
44
+ response: cardState.details,
45
+ rovoConfig,
46
+ actionOptions
47
+ }) !== undefined, [actionOptions, cardState === null || cardState === void 0 ? void 0 : cardState.details, rovoConfig]) : false;
44
48
  useEffect(() => {
45
49
  // Since this hover view is only rendered on resolved status,
46
50
  // there is no need to check for statuses.
@@ -12,7 +12,7 @@ import LinkWarningModal from './LinkWarningModal';
12
12
  import { useLinkWarningModal } from './LinkWarningModal/hooks/use-link-warning-modal';
13
13
  const PACKAGE_DATA = {
14
14
  packageName: "@atlaskit/smart-card",
15
- packageVersion: "43.26.3",
15
+ packageVersion: "43.26.5",
16
16
  componentName: 'linkUrl'
17
17
  };
18
18
  const Anchor = withLinkClickedEvent('a');
@@ -1,3 +1,3 @@
1
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:33dd2de530471bd814c2b3417a5b83ac221dadb4f2eefd62d4a93993ed270f49
3
- size 117577
2
+ oid sha256:3acc9987c800eeb601e7e34fa01e3df89500dc2c815415da05ddd083df024019
3
+ size 111886
@@ -1,3 +1,3 @@
1
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:860e17988ba03a5c96d3123f4bf26157fb9a2319b2653ac5d97b19d2af98361a
3
- size 37847
2
+ oid sha256:64c5349ccb0b90b0a625ca0d707d2bf5bfa52dda10fcd092a8b6bfbb1cc0e5c3
3
+ size 35296
@@ -1,3 +1,3 @@
1
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:465c4c638afd25d852ec4d56b2e76c994fd01dacf45dbf3f6c0a0dc0edfff35a
3
- size 38006
2
+ oid sha256:5f022890e178f33ea2487b10c9b3b43a665e98d84a510e29f3d22f8804d645be
3
+ size 35428
@@ -1,3 +1,3 @@
1
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:936c5941e1b3fe191d681ed5b354a4998ddf9030a13ef521405690c243b08152
3
- size 93982
2
+ oid sha256:323c0f3a0180a2772a5568d36bb4588dcbaa2eefa499bd2feae92dd9c373aa4a
3
+ size 87113
@@ -1,3 +1,3 @@
1
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:e571e96a6cf0ff5cdeb189a6b8d37382a20b8b6c627d04dba9206aafd53dc5d0
3
- size 98128
2
+ oid sha256:56ecca0bb138aedf05d40629555a08ff01397ee8332f6c523adaa38b3f9c9066
3
+ size 90964
@@ -1,3 +1,3 @@
1
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:fb267d4b75d3600670ed40af0d2381be295dccbd66290eeb4532210370d9cff4
3
- size 98467
2
+ oid sha256:00f7ab007894140c7d50dae261a9c0a6035d10efc32ea9ca9c973501a495e473
3
+ size 91336
@@ -1,3 +1,3 @@
1
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:17b71b126964e713254d9fd0ec0c4d421fdc04c3b956dbb1dbfbc6ed4446e7e7
3
- size 98950
2
+ oid sha256:ff5acd0832e8c24d62c4bbe84823678b851ec68f8a73a9e87dad7baefaca3fdf
3
+ size 91884
@@ -1,3 +1,3 @@
1
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:ef397d53a921ecff14966205bb9c6176f5433a05d7e532602391cfb5f6c2d649
3
- size 99518
2
+ oid sha256:b78a348d581a64dac0e23fb8f4c1d717b3304584739a6b4a871268135b699075
3
+ size 92494
@@ -1,3 +1,3 @@
1
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:0bbea9c2b1d045154c48ca466009723062a29fed1efc3eebad5b2a42f39ed8a3
3
- size 97347
2
+ oid sha256:c319edf3a89336e74444edb31e2650f080185e81934e7a8e441c5c72daac95c2
3
+ size 90399
@@ -1,3 +1,3 @@
1
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:eb0b04a888c0956232b02f743be271b56d48bbe252fd47402dac42d46ed76029
3
- size 97461
2
+ oid sha256:9f20d87ec72d3743bb008945f53364b0319b26f5144133d9bb25931fec52a313
3
+ size 90531
@@ -1,3 +1,3 @@
1
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:66e5b2b94adde1c3a14f59d9c9ff89994d9b1410384b9fafb116b7cea948cc11
3
- size 15268
2
+ oid sha256:6dc97ad04addf386b55440c5d25f372bd83c38f4798c7942b304fe293b591b68
3
+ size 15496
@@ -1,3 +1,3 @@
1
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:bbc1483bd3025d7a628327a486002be927790beff915031a147e983786740ab0
3
- size 9986
2
+ oid sha256:ee1d0319ded18b1c5fedfb51f0f12f9392f14082a759cd67027b5ce2e322756f
3
+ size 9610
@@ -1,3 +1,3 @@
1
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:f6dd69e2d7c833496c82d3035e82ab13f113409087b6209a0b66eb5f6a8684c1
3
- size 4026
2
+ oid sha256:e8c74b5d85319192fe38e738d93f565e072ffd25ba30fc8ba640ba6a2ad28e9c
3
+ size 3828
@@ -1,3 +1,3 @@
1
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:7ecc6eaabdbe2c5635b80d88dd2c10e88e1ad36834211cb760e133b9ded1869a
3
- size 107610
2
+ oid sha256:b439afd8af39f670047bae82c873dc3202633d55d094673aa754b7c8fe4ec66e
3
+ size 103245
@@ -1,3 +1,3 @@
1
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:8cdee0eb62caec6acdf1b632c1c13c79eff15037aed58e10eb7c3088934b0707
3
- size 107893
2
+ oid sha256:fb9bff8bd44a34e02121c5c13ea229260bb1097ad3316c8af045ce548efcc1da
3
+ size 103526
@@ -1,3 +1,3 @@
1
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:fd4ce1e874bb5cef90c294ea4d3c15691e816b1077d7309a1cbebd588cbc838b
3
- size 69991
2
+ oid sha256:cafc69f04bd7799c7108655e37ced2f64c9b43077f8060d2e4503ed404d10831
3
+ size 69534
@@ -1,3 +1,3 @@
1
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:93ebf4281d84e7940906a7662b9da7b840e5b604a0cc7d6893d9b19a551363b6
3
- size 38714
2
+ oid sha256:73bb4793a5e1d49e1ce910e153f8130e5ea114c8e3791579f144760101bfd30f
3
+ size 36525
@@ -1,3 +1,3 @@
1
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:06482aa878a4bf7d962b3c7f40cb4929ba59f8c92e4fa386aa20068d7ecc2793
3
- size 36712
2
+ oid sha256:f35f8dae22c3390219df42b2d41df3c1ec5647b74af0e47cb54621c2a75fc53b
3
+ size 34707
@@ -1,10 +1,17 @@
1
1
  import { extractSmartLinkUrl } from '@atlaskit/link-extractors';
2
- import { getExtensionKey } from '../../../state/helpers';
2
+ import { InternalActionName } from '../../../constants';
3
+ import { getDefinitionId, getExtensionKey, getResourceType } from '../../../state/helpers';
3
4
  import { canShowAction } from '../../../utils/actions/can-show-action';
4
5
  import { getIsRovoChatEnabled } from '../../../utils/rovo';
5
6
  import { CardAction } from '../../../view/Card/types';
6
- var extractRovoChatAction = function extractRovoChatAction(response, rovoConfig, actionOptions, product) {
7
+ var extractRovoChatAction = function extractRovoChatAction(_ref) {
7
8
  var _actionOptions$rovoCh;
9
+ var actionOptions = _ref.actionOptions,
10
+ appearance = _ref.appearance,
11
+ id = _ref.id,
12
+ product = _ref.product,
13
+ response = _ref.response,
14
+ rovoConfig = _ref.rovoConfig;
8
15
  if (!canShowAction(CardAction.RovoChatAction, actionOptions)) {
9
16
  return;
10
17
  }
@@ -19,6 +26,15 @@ var extractRovoChatAction = function extractRovoChatAction(response, rovoConfig,
19
26
  var isOptIn = (actionOptions === null || actionOptions === void 0 || (_actionOptions$rovoCh = actionOptions.rovoChatAction) === null || _actionOptions$rovoCh === void 0 ? void 0 : _actionOptions$rovoCh.optIn) === true;
20
27
  var url = extractSmartLinkUrl(response);
21
28
  return isSupportedFeature && isOptIn ? {
29
+ invokeAction: {
30
+ actionSubjectId: 'rovoChatPrompt',
31
+ actionType: InternalActionName.RovoChatAction,
32
+ definitionId: getDefinitionId(response),
33
+ display: appearance,
34
+ extensionKey: getExtensionKey(response),
35
+ id: id,
36
+ resourceType: getResourceType(response)
37
+ },
22
38
  product: product,
23
39
  url: url
24
40
  } : undefined;
@@ -43,7 +43,14 @@ 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(response, rovoConfig, actionOptions, product)) : undefined), {}, _defineProperty({}, InternalActionName.ViewRelatedLinksAction, extractViewRelatedLinksAction(response)));
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({
47
+ actionOptions: actionOptions,
48
+ appearance: appearance,
49
+ id: id,
50
+ product: product,
51
+ response: response,
52
+ rovoConfig: rovoConfig
53
+ })) : undefined), {}, _defineProperty({}, InternalActionName.ViewRelatedLinksAction, extractViewRelatedLinksAction(response)));
47
54
  return Object.values(action).some(function (value) {
48
55
  return Boolean(value);
49
56
  }) ? action : undefined;
@@ -19,11 +19,11 @@ var useInvokeClientAction = function useInvokeClientAction(_ref) {
19
19
  var fireEvent = fireEventProp !== null && fireEventProp !== void 0 ? fireEventProp : defaultFireEvent;
20
20
  return useCallback( /*#__PURE__*/function () {
21
21
  var _ref3 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref2) {
22
- var actionSubjectId, actionType, actionFn, _ref2$definitionId, definitionId, extensionKey, display, id, _ref2$resourceType, resourceType, experienceId, markName, _measure$getMeasure$d, _measure$getMeasure, result, _measure$getMeasure$d2, _measure$getMeasure2, reason;
22
+ var actionSubjectId, actionType, actionFn, _ref2$definitionId, definitionId, extensionKey, display, id, prompt, _ref2$resourceType, resourceType, experienceId, markName, _measure$getMeasure$d, _measure$getMeasure, result, _measure$getMeasure$d2, _measure$getMeasure2, reason;
23
23
  return _regeneratorRuntime.wrap(function _callee$(_context) {
24
24
  while (1) switch (_context.prev = _context.next) {
25
25
  case 0:
26
- actionSubjectId = _ref2.actionSubjectId, actionType = _ref2.actionType, actionFn = _ref2.actionFn, _ref2$definitionId = _ref2.definitionId, definitionId = _ref2$definitionId === void 0 ? null : _ref2$definitionId, extensionKey = _ref2.extensionKey, display = _ref2.display, id = _ref2.id, _ref2$resourceType = _ref2.resourceType, resourceType = _ref2$resourceType === void 0 ? null : _ref2$resourceType;
26
+ actionSubjectId = _ref2.actionSubjectId, actionType = _ref2.actionType, actionFn = _ref2.actionFn, _ref2$definitionId = _ref2.definitionId, definitionId = _ref2$definitionId === void 0 ? null : _ref2$definitionId, extensionKey = _ref2.extensionKey, display = _ref2.display, id = _ref2.id, prompt = _ref2.prompt, _ref2$resourceType = _ref2.resourceType, resourceType = _ref2$resourceType === void 0 ? null : _ref2$resourceType;
27
27
  // eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
28
28
  experienceId = uuid(); // Begin performance instrumentation.
29
29
  markName = "".concat(experienceId, "-").concat(actionType);
@@ -44,7 +44,8 @@ var useInvokeClientAction = function useInvokeClientAction(_ref) {
44
44
  definitionId: definitionId,
45
45
  display: display !== null && display !== void 0 ? display : null,
46
46
  id: id !== null && id !== void 0 ? id : experienceId,
47
- resourceType: resourceType
47
+ resourceType: resourceType,
48
+ prompt: prompt
48
49
  });
49
50
  }
50
51
  // Invoke action
@@ -4,7 +4,7 @@ export var ANALYTICS_CHANNEL = 'media';
4
4
  export var context = {
5
5
  componentName: 'smart-cards',
6
6
  packageName: "@atlaskit/smart-card",
7
- packageVersion: "43.26.3"
7
+ packageVersion: "43.26.5"
8
8
  };
9
9
  export var TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
10
10
  TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
@@ -1,11 +1,17 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
+ import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
2
4
  import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
3
5
  var _excluded = ["onClick", "prompts", "testId"];
6
+ import _regeneratorRuntime from "@babel/runtime/regenerator";
7
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
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; }
4
9
  import React, { useCallback, useMemo } from 'react';
5
10
  import { useIntl } from 'react-intl-next';
6
11
  import { InternalActionName } from '../../../../../constants';
7
12
  import { messages } from '../../../../../messages';
8
13
  import { useFlexibleUiContext } from '../../../../../state/flexible-ui-context';
14
+ import useInvokeClientAction from '../../../../../state/hooks/use-invoke-client-action';
9
15
  import useRovoChat from '../../../../../state/hooks/use-rovo-chat';
10
16
  import AiChapterIcon from '../../../assets/ai-chapter-icon';
11
17
  import AIEditIcon from '../../../assets/ai-edit-icon';
@@ -119,15 +125,32 @@ var RovoChatAction = function RovoChatAction(_ref2) {
119
125
  sendPromptMessage = _useRovoChat.sendPromptMessage;
120
126
  var context = useFlexibleUiContext();
121
127
  var data = context === null || context === void 0 || (_context$actions = context.actions) === null || _context$actions === void 0 ? void 0 : _context$actions[InternalActionName.RovoChatAction];
122
- var _onClick = useCallback(function (promptData) {
123
- if (promptData) {
124
- sendPromptMessage(promptData);
125
-
126
- // NAVX-3599: Add analytics event, possibly as useInvokeClientAction()
127
-
128
+ var invoke = useInvokeClientAction({});
129
+ var _onClick = useCallback(function (promptData, promptKey) {
130
+ if (promptData && data !== null && data !== void 0 && data.invokeAction) {
131
+ invoke(_objectSpread(_objectSpread({}, data === null || data === void 0 ? void 0 : data.invokeAction), {}, {
132
+ actionFn: function () {
133
+ var _actionFn = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
134
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
135
+ while (1) switch (_context.prev = _context.next) {
136
+ case 0:
137
+ return _context.abrupt("return", sendPromptMessage(promptData));
138
+ case 1:
139
+ case "end":
140
+ return _context.stop();
141
+ }
142
+ }, _callee);
143
+ }));
144
+ function actionFn() {
145
+ return _actionFn.apply(this, arguments);
146
+ }
147
+ return actionFn;
148
+ }(),
149
+ prompt: promptKey
150
+ }));
128
151
  onClickCallback === null || onClickCallback === void 0 || onClickCallback();
129
152
  }
130
- }, [onClickCallback, sendPromptMessage]);
153
+ }, [data === null || data === void 0 ? void 0 : data.invokeAction, invoke, onClickCallback, sendPromptMessage]);
131
154
  var promptActions = useMemo(function () {
132
155
  return prompts.map(function (promptKey, idx) {
133
156
  var _ref3 = getPromptAction(promptKey, intl, data === null || data === void 0 ? void 0 : data.url, data === null || data === void 0 ? void 0 : data.product) || {},
@@ -140,7 +163,7 @@ var RovoChatAction = function RovoChatAction(_ref2) {
140
163
  icon: icon,
141
164
  key: promptKey,
142
165
  onClick: function onClick() {
143
- return _onClick(promptData);
166
+ return _onClick(promptData, promptKey);
144
167
  },
145
168
  testId: "".concat(testId, "-").concat(idx + 1),
146
169
  tooltipMessage: tooltipMessage
@@ -39,7 +39,11 @@ var HoverCardResolvedView = function HoverCardResolvedView(_ref) {
39
39
  var isRovoSummaryEnabled = fg('platform_sl_3p_auth_rovo_action_kill_switch') ?
40
40
  // eslint-disable-next-line react-hooks/rules-of-hooks
41
41
  useMemo(function () {
42
- return (cardState === null || cardState === void 0 ? void 0 : cardState.details) && extractRovoChatAction(cardState.details, rovoConfig, actionOptions) !== undefined;
42
+ return (cardState === null || cardState === void 0 ? void 0 : cardState.details) && extractRovoChatAction({
43
+ response: cardState.details,
44
+ rovoConfig: rovoConfig,
45
+ actionOptions: actionOptions
46
+ }) !== undefined;
43
47
  }, [actionOptions, cardState === null || cardState === void 0 ? void 0 : cardState.details, rovoConfig]) : false;
44
48
  useEffect(function () {
45
49
  // Since this hover view is only rendered on resolved status,
@@ -15,7 +15,7 @@ import LinkWarningModal from './LinkWarningModal';
15
15
  import { useLinkWarningModal } from './LinkWarningModal/hooks/use-link-warning-modal';
16
16
  var PACKAGE_DATA = {
17
17
  packageName: "@atlaskit/smart-card",
18
- packageVersion: "43.26.3",
18
+ packageVersion: "43.26.5",
19
19
  componentName: 'linkUrl'
20
20
  };
21
21
  var Anchor = withLinkClickedEvent('a');
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Generates Typescript types for analytics events from analytics.spec.yaml
5
5
  *
6
- * @codegen <<SignedSource::a9e05f4749fe4c5f7aaded5bdf6a8822>>
6
+ * @codegen <<SignedSource::ba09a8b50ef409ef59594023566396c8>>
7
7
  * @codegenCommand yarn workspace @atlassian/analytics-tooling run analytics:codegen smart-card
8
8
  */
9
9
  export type PackageMetaDataContextType = {
@@ -69,6 +69,14 @@ export type ButtonClickedIssueStatusUpdateAttributesType = {
69
69
  resourceType: string | null;
70
70
  };
71
71
  export type ButtonClickedAiSummaryAttributesType = {};
72
+ export type ButtonClickedRovoChatPromptAttributesType = {
73
+ actionType: string | null;
74
+ id: string | null;
75
+ definitionId: string | null;
76
+ display: 'inline' | 'block' | 'embed' | 'embedPreview' | 'flexible' | 'hoverCardPreview' | 'url' | null;
77
+ resourceType: string | null;
78
+ prompt: string | null;
79
+ };
72
80
  export type ButtonClickedCopySummaryAttributesType = {};
73
81
  export type SummaryViewedAttributesType = {
74
82
  fromCache: boolean | null;
@@ -274,6 +282,9 @@ export type AnalyticsEventAttributes = {
274
282
  /**
275
283
  * fired when an ai summary is clicked */
276
284
  'ui.button.clicked.aiSummary': ButtonClickedAiSummaryAttributesType;
285
+ /**
286
+ * Fired when sending prompt to RovoChat via click */
287
+ 'ui.button.clicked.rovoChatPrompt': ButtonClickedRovoChatPromptAttributesType;
277
288
  /**
278
289
  * fired when the copy ai summary button is clicked */
279
290
  'ui.button.clicked.copySummary': ButtonClickedCopySummaryAttributesType;
@@ -3,5 +3,14 @@ import type { ProductType } from '@atlaskit/linking-common';
3
3
  import type { RovoChatActionData } from '../../../state/flexible-ui-context/types';
4
4
  import type { RovoConfig } from '../../../state/hooks/use-rovo-config';
5
5
  import { type InternalCardActionOptions as CardActionOptions } from '../../../view/Card/types';
6
- declare const extractRovoChatAction: (response: JsonLd.Response, rovoConfig?: RovoConfig, actionOptions?: CardActionOptions, product?: ProductType) => RovoChatActionData | undefined;
6
+ import type { FlexibleCardProps } from '../../../view/FlexibleCard/types';
7
+ type ExtractInvokeRovoChatActionParam = {
8
+ actionOptions?: CardActionOptions;
9
+ appearance?: FlexibleCardProps['appearance'];
10
+ id?: string;
11
+ product?: ProductType;
12
+ response: JsonLd.Response;
13
+ rovoConfig?: RovoConfig;
14
+ };
15
+ declare const extractRovoChatAction: ({ actionOptions, appearance, id, product, response, rovoConfig, }: ExtractInvokeRovoChatActionParam) => RovoChatActionData | undefined;
7
16
  export default extractRovoChatAction;
@@ -322,6 +322,7 @@ export type AutomationActionData = {
322
322
  siteAri: any;
323
323
  };
324
324
  export type RovoChatActionData = {
325
+ invokeAction: Omit<InvokeClientActionProps, 'actionFn' | 'prompt'>;
325
326
  product?: ProductType;
326
327
  url?: string;
327
328
  };
@@ -6,7 +6,10 @@ export type UseInvokeClientActionProps = {
6
6
  */
7
7
  fireEvent?: FireEventFunction;
8
8
  };
9
- export type InvokeClientActionSubjectId = 'copyLink' | 'downloadDocument' | 'invokePreviewScreen' | 'shortcutGoToLink';
9
+ export type InvokeClientActionSubjectId = 'copyLink' | 'downloadDocument' | 'invokePreviewScreen' | 'rovoChatPrompt' | 'shortcutGoToLink';
10
+ type InvokeRovoChatClientActionProps = {
11
+ prompt?: string;
12
+ };
10
13
  export type InvokeClientActionProps = {
11
14
  /**
12
15
  * Invoke action to execute.
@@ -43,5 +46,6 @@ export type InvokeClientActionProps = {
43
46
  * Resource type for analytics purposes.
44
47
  */
45
48
  resourceType?: string;
46
- };
49
+ } & InvokeRovoChatClientActionProps;
47
50
  export type InvokeClientActionHandler = (opts: InvokeClientActionProps) => Promise<void>;
51
+ export {};
@@ -3,7 +3,7 @@
3
3
  *
4
4
  * Generates Typescript types for analytics events from analytics.spec.yaml
5
5
  *
6
- * @codegen <<SignedSource::a9e05f4749fe4c5f7aaded5bdf6a8822>>
6
+ * @codegen <<SignedSource::ba09a8b50ef409ef59594023566396c8>>
7
7
  * @codegenCommand yarn workspace @atlassian/analytics-tooling run analytics:codegen smart-card
8
8
  */
9
9
  export type PackageMetaDataContextType = {
@@ -69,6 +69,14 @@ export type ButtonClickedIssueStatusUpdateAttributesType = {
69
69
  resourceType: string | null;
70
70
  };
71
71
  export type ButtonClickedAiSummaryAttributesType = {};
72
+ export type ButtonClickedRovoChatPromptAttributesType = {
73
+ actionType: string | null;
74
+ id: string | null;
75
+ definitionId: string | null;
76
+ display: 'inline' | 'block' | 'embed' | 'embedPreview' | 'flexible' | 'hoverCardPreview' | 'url' | null;
77
+ resourceType: string | null;
78
+ prompt: string | null;
79
+ };
72
80
  export type ButtonClickedCopySummaryAttributesType = {};
73
81
  export type SummaryViewedAttributesType = {
74
82
  fromCache: boolean | null;
@@ -274,6 +282,9 @@ export type AnalyticsEventAttributes = {
274
282
  /**
275
283
  * fired when an ai summary is clicked */
276
284
  'ui.button.clicked.aiSummary': ButtonClickedAiSummaryAttributesType;
285
+ /**
286
+ * Fired when sending prompt to RovoChat via click */
287
+ 'ui.button.clicked.rovoChatPrompt': ButtonClickedRovoChatPromptAttributesType;
277
288
  /**
278
289
  * fired when the copy ai summary button is clicked */
279
290
  'ui.button.clicked.copySummary': ButtonClickedCopySummaryAttributesType;
@@ -3,5 +3,14 @@ import type { ProductType } from '@atlaskit/linking-common';
3
3
  import type { RovoChatActionData } from '../../../state/flexible-ui-context/types';
4
4
  import type { RovoConfig } from '../../../state/hooks/use-rovo-config';
5
5
  import { type InternalCardActionOptions as CardActionOptions } from '../../../view/Card/types';
6
- declare const extractRovoChatAction: (response: JsonLd.Response, rovoConfig?: RovoConfig, actionOptions?: CardActionOptions, product?: ProductType) => RovoChatActionData | undefined;
6
+ import type { FlexibleCardProps } from '../../../view/FlexibleCard/types';
7
+ type ExtractInvokeRovoChatActionParam = {
8
+ actionOptions?: CardActionOptions;
9
+ appearance?: FlexibleCardProps['appearance'];
10
+ id?: string;
11
+ product?: ProductType;
12
+ response: JsonLd.Response;
13
+ rovoConfig?: RovoConfig;
14
+ };
15
+ declare const extractRovoChatAction: ({ actionOptions, appearance, id, product, response, rovoConfig, }: ExtractInvokeRovoChatActionParam) => RovoChatActionData | undefined;
7
16
  export default extractRovoChatAction;
@@ -322,6 +322,7 @@ export type AutomationActionData = {
322
322
  siteAri: any;
323
323
  };
324
324
  export type RovoChatActionData = {
325
+ invokeAction: Omit<InvokeClientActionProps, 'actionFn' | 'prompt'>;
325
326
  product?: ProductType;
326
327
  url?: string;
327
328
  };
@@ -6,7 +6,10 @@ export type UseInvokeClientActionProps = {
6
6
  */
7
7
  fireEvent?: FireEventFunction;
8
8
  };
9
- export type InvokeClientActionSubjectId = 'copyLink' | 'downloadDocument' | 'invokePreviewScreen' | 'shortcutGoToLink';
9
+ export type InvokeClientActionSubjectId = 'copyLink' | 'downloadDocument' | 'invokePreviewScreen' | 'rovoChatPrompt' | 'shortcutGoToLink';
10
+ type InvokeRovoChatClientActionProps = {
11
+ prompt?: string;
12
+ };
10
13
  export type InvokeClientActionProps = {
11
14
  /**
12
15
  * Invoke action to execute.
@@ -43,5 +46,6 @@ export type InvokeClientActionProps = {
43
46
  * Resource type for analytics purposes.
44
47
  */
45
48
  resourceType?: string;
46
- };
49
+ } & InvokeRovoChatClientActionProps;
47
50
  export type InvokeClientActionHandler = (opts: InvokeClientActionProps) => Promise<void>;
51
+ export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/smart-card",
3
- "version": "43.26.4",
3
+ "version": "43.26.6",
4
4
  "description": "Smart card component",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -31,22 +31,22 @@
31
31
  "@atlaskit/afm-i18n-platform-linking-platform-smart-card": "2.6.0",
32
32
  "@atlaskit/analytics-gas-types": "^5.1.0",
33
33
  "@atlaskit/analytics-next": "^11.1.0",
34
- "@atlaskit/avatar": "^25.8.0",
34
+ "@atlaskit/avatar": "^25.9.0",
35
35
  "@atlaskit/avatar-group": "^12.4.0",
36
36
  "@atlaskit/badge": "^18.4.0",
37
37
  "@atlaskit/browser-apis": "^0.0.1",
38
38
  "@atlaskit/button": "^23.10.0",
39
39
  "@atlaskit/checkbox": "^17.3.0",
40
40
  "@atlaskit/css": "^0.19.0",
41
- "@atlaskit/dropdown-menu": "^16.6.0",
41
+ "@atlaskit/dropdown-menu": "^16.7.0",
42
42
  "@atlaskit/embedded-confluence": "^4.5.0",
43
43
  "@atlaskit/feature-gate-js-client": "^5.5.0",
44
44
  "@atlaskit/form": "^15.4.0",
45
45
  "@atlaskit/frontend-utilities": "^3.2.0",
46
46
  "@atlaskit/heading": "^5.3.0",
47
- "@atlaskit/icon": "^32.0.0",
47
+ "@atlaskit/icon": "^32.1.0",
48
48
  "@atlaskit/icon-file-type": "^7.0.0",
49
- "@atlaskit/icon-object": "^7.4.0",
49
+ "@atlaskit/icon-object": "^7.5.0",
50
50
  "@atlaskit/image": "^3.0.0",
51
51
  "@atlaskit/json-ld-types": "^1.4.0",
52
52
  "@atlaskit/link": "^3.3.0",
@@ -66,7 +66,7 @@
66
66
  "@atlaskit/popup": "^4.13.0",
67
67
  "@atlaskit/primitives": "^18.0.0",
68
68
  "@atlaskit/react-ufo": "^5.4.0",
69
- "@atlaskit/rovo-triggers": "^5.24.0",
69
+ "@atlaskit/rovo-triggers": "^5.25.0",
70
70
  "@atlaskit/section-message": "^8.12.0",
71
71
  "@atlaskit/select": "^21.8.0",
72
72
  "@atlaskit/spinner": "^19.0.0",
@@ -74,7 +74,7 @@
74
74
  "@atlaskit/textfield": "^8.2.0",
75
75
  "@atlaskit/theme": "^22.0.0",
76
76
  "@atlaskit/tile": "^1.0.0",
77
- "@atlaskit/tmp-editor-statsig": "^38.0.0",
77
+ "@atlaskit/tmp-editor-statsig": "^40.0.0",
78
78
  "@atlaskit/tokens": "^11.1.0",
79
79
  "@atlaskit/tooltip": "^20.14.0",
80
80
  "@atlaskit/ufo": "^0.4.0",