@atlaskit/smart-card 45.2.4 → 45.3.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 +22 -0
  2. package/dist/cjs/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummarydone--default.png +3 -0
  3. package/dist/cjs/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummarydoneonmount--default.png +3 -0
  4. package/dist/cjs/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummaryerror--default.png +3 -0
  5. package/dist/cjs/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummaryloading--default.png +3 -0
  6. package/dist/cjs/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummaryready--default.png +3 -0
  7. package/dist/cjs/__tests__/vr-tests/__snapshots__/hover-card/hover-card-actions--light-mode.png +2 -2
  8. package/dist/cjs/__tests__/vr-tests/__snapshots__/hover-card/hover-card-actions-with-related-urls--default.png +2 -2
  9. package/dist/cjs/constants.js +1 -2
  10. package/dist/cjs/messages.js +0 -10
  11. package/dist/cjs/ssr.js +1 -45
  12. package/dist/cjs/utils/ai-summary.js +1 -2
  13. package/dist/cjs/utils/analytics/analytics.js +1 -1
  14. package/dist/cjs/view/CardWithUrl/component-lazy/LazyIntersectionObserverCard.js +4 -61
  15. package/dist/cjs/view/FlexibleCard/components/actions/ai-summary-action/ai-summarise-action.js +3 -5
  16. package/dist/cjs/view/FlexibleCard/components/blocks/ai-footer-block/resolved/ai-footer-metadata.js +1 -4
  17. package/dist/cjs/view/FlexibleCard/components/common/ai-summary/ai-learn-more-anchor.js +1 -2
  18. package/dist/cjs/view/LinkUrl/index.js +1 -1
  19. package/dist/cjs/view/common/ai-summary/ai-footer/index.js +1 -2
  20. package/dist/es2019/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummarydone--default.png +3 -0
  21. package/dist/es2019/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummarydoneonmount--default.png +3 -0
  22. package/dist/es2019/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummaryerror--default.png +3 -0
  23. package/dist/es2019/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummaryloading--default.png +3 -0
  24. package/dist/es2019/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummaryready--default.png +3 -0
  25. package/dist/es2019/__tests__/vr-tests/__snapshots__/hover-card/hover-card-actions--light-mode.png +2 -2
  26. package/dist/es2019/__tests__/vr-tests/__snapshots__/hover-card/hover-card-actions-with-related-urls--default.png +2 -2
  27. package/dist/es2019/constants.js +0 -1
  28. package/dist/es2019/messages.js +0 -10
  29. package/dist/es2019/ssr.js +3 -45
  30. package/dist/es2019/utils/ai-summary.js +1 -2
  31. package/dist/es2019/utils/analytics/analytics.js +1 -1
  32. package/dist/es2019/view/CardWithUrl/component-lazy/LazyIntersectionObserverCard.js +3 -54
  33. package/dist/es2019/view/FlexibleCard/components/actions/ai-summary-action/ai-summarise-action.js +3 -5
  34. package/dist/es2019/view/FlexibleCard/components/blocks/ai-footer-block/resolved/ai-footer-metadata.js +1 -4
  35. package/dist/es2019/view/FlexibleCard/components/common/ai-summary/ai-learn-more-anchor.js +2 -3
  36. package/dist/es2019/view/LinkUrl/index.js +1 -1
  37. package/dist/es2019/view/common/ai-summary/ai-footer/index.js +1 -2
  38. package/dist/esm/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummarydone--default.png +3 -0
  39. package/dist/esm/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummarydoneonmount--default.png +3 -0
  40. package/dist/esm/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummaryerror--default.png +3 -0
  41. package/dist/esm/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummaryloading--default.png +3 -0
  42. package/dist/esm/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummaryready--default.png +3 -0
  43. package/dist/esm/__tests__/vr-tests/__snapshots__/hover-card/hover-card-actions--light-mode.png +2 -2
  44. package/dist/esm/__tests__/vr-tests/__snapshots__/hover-card/hover-card-actions-with-related-urls--default.png +2 -2
  45. package/dist/esm/constants.js +0 -1
  46. package/dist/esm/messages.js +0 -10
  47. package/dist/esm/ssr.js +3 -46
  48. package/dist/esm/utils/ai-summary.js +1 -2
  49. package/dist/esm/utils/analytics/analytics.js +1 -1
  50. package/dist/esm/view/CardWithUrl/component-lazy/LazyIntersectionObserverCard.js +5 -63
  51. package/dist/esm/view/FlexibleCard/components/actions/ai-summary-action/ai-summarise-action.js +3 -5
  52. package/dist/esm/view/FlexibleCard/components/blocks/ai-footer-block/resolved/ai-footer-metadata.js +1 -4
  53. package/dist/esm/view/FlexibleCard/components/common/ai-summary/ai-learn-more-anchor.js +2 -3
  54. package/dist/esm/view/LinkUrl/index.js +1 -1
  55. package/dist/esm/view/common/ai-summary/ai-footer/index.js +1 -2
  56. package/dist/types/constants.d.ts +0 -1
  57. package/dist/types/messages.d.ts +1 -1
  58. package/dist/types/ssr.d.ts +1 -1
  59. package/package.json +5 -14
  60. package/dist/cjs/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummarydone--default--platform-sl-ai-summary-rebrand-false.png +0 -3
  61. package/dist/cjs/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummarydone--default--platform-sl-ai-summary-rebrand-true.png +0 -3
  62. package/dist/cjs/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummarydoneonmount--default--platform-sl-ai-summary-rebrand-false.png +0 -3
  63. package/dist/cjs/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummarydoneonmount--default--platform-sl-ai-summary-rebrand-true.png +0 -3
  64. package/dist/cjs/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummaryerror--default--platform-sl-ai-summary-rebrand-false.png +0 -3
  65. package/dist/cjs/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummaryerror--default--platform-sl-ai-summary-rebrand-true.png +0 -3
  66. package/dist/cjs/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummaryloading--default--platform-sl-ai-summary-rebrand-false.png +0 -3
  67. package/dist/cjs/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummaryloading--default--platform-sl-ai-summary-rebrand-true.png +0 -3
  68. package/dist/cjs/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummaryready--default--platform-sl-ai-summary-rebrand-false.png +0 -3
  69. package/dist/cjs/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummaryready--default--platform-sl-ai-summary-rebrand-true.png +0 -3
  70. package/dist/es2019/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummarydone--default--platform-sl-ai-summary-rebrand-false.png +0 -3
  71. package/dist/es2019/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummarydone--default--platform-sl-ai-summary-rebrand-true.png +0 -3
  72. package/dist/es2019/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummarydoneonmount--default--platform-sl-ai-summary-rebrand-false.png +0 -3
  73. package/dist/es2019/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummarydoneonmount--default--platform-sl-ai-summary-rebrand-true.png +0 -3
  74. package/dist/es2019/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummaryerror--default--platform-sl-ai-summary-rebrand-false.png +0 -3
  75. package/dist/es2019/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummaryerror--default--platform-sl-ai-summary-rebrand-true.png +0 -3
  76. package/dist/es2019/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummaryloading--default--platform-sl-ai-summary-rebrand-false.png +0 -3
  77. package/dist/es2019/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummaryloading--default--platform-sl-ai-summary-rebrand-true.png +0 -3
  78. package/dist/es2019/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummaryready--default--platform-sl-ai-summary-rebrand-false.png +0 -3
  79. package/dist/es2019/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummaryready--default--platform-sl-ai-summary-rebrand-true.png +0 -3
  80. package/dist/esm/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummarydone--default--platform-sl-ai-summary-rebrand-false.png +0 -3
  81. package/dist/esm/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummarydone--default--platform-sl-ai-summary-rebrand-true.png +0 -3
  82. package/dist/esm/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummarydoneonmount--default--platform-sl-ai-summary-rebrand-false.png +0 -3
  83. package/dist/esm/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummarydoneonmount--default--platform-sl-ai-summary-rebrand-true.png +0 -3
  84. package/dist/esm/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummaryerror--default--platform-sl-ai-summary-rebrand-false.png +0 -3
  85. package/dist/esm/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummaryerror--default--platform-sl-ai-summary-rebrand-true.png +0 -3
  86. package/dist/esm/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummaryloading--default--platform-sl-ai-summary-rebrand-false.png +0 -3
  87. package/dist/esm/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummaryloading--default--platform-sl-ai-summary-rebrand-true.png +0 -3
  88. package/dist/esm/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummaryready--default--platform-sl-ai-summary-rebrand-false.png +0 -3
  89. package/dist/esm/__tests__/vr-tests/__snapshots__/flex-ui-block-ai-summary/flexuiblockaisummaryready--default--platform-sl-ai-summary-rebrand-true.png +0 -3
@@ -1,6 +1,5 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
- import React, { useCallback, useEffect, useRef, useState } from 'react';
3
- import { componentWithFG } from '@atlaskit/platform-feature-flags-react';
2
+ import React, { useCallback, useState } from 'react';
4
3
  import { usePrefetch } from '../../../state';
5
4
  import { startUfoExperience } from '../../../state/analytics/ufoExperiences';
6
5
  import useIntersectionObserver from '../../../state/hooks/use-intersection-observer';
@@ -9,56 +8,7 @@ import { shouldSample } from '../../../utils/shouldSample';
9
8
  import CardLoaderWrapper from '../card-loader-wrapper';
10
9
  import { CardWithUrlContent } from '../component';
11
10
  import { LoadingCardLink } from './LoadingCardLink';
12
-
13
- // This property enables the intersection observer to be run once the
14
- // HTML element being observed is within `X` px of the target container it is
15
- // being compared to. Since the default container is the `document`, we set this
16
- // up to check once a Smart Link is within `X` px from the bottom of the viewport.
17
- const ROOT_MARGIN_VERTICAL = '360px';
18
- function LazyIntersectionObserverCardOld(props) {
19
- const ref = useRef(null);
20
- const [isIntersecting, setIsIntersecting] = useState(false);
21
- const [shouldSendRenderedUFOEvent] = useState(shouldSample());
22
- const {
23
- appearance,
24
- url,
25
- id
26
- } = props;
27
- const prefetch = usePrefetch(url, appearance);
28
- const Component = appearance === 'inline' ? 'span' : 'div';
29
- const ComponentObserver = Component;
30
- const onIntersection = useCallback((entries, observer) => {
31
- const isVisible = entries.some(entry => entry.isIntersecting);
32
- if (isVisible) {
33
- if (shouldSendRenderedUFOEvent) {
34
- startUfoExperience('smart-link-rendered', id);
35
- }
36
- setIsIntersecting(true);
37
- observer.disconnect();
38
- } else {
39
- prefetch();
40
- }
41
- }, [id, prefetch, shouldSendRenderedUFOEvent]);
42
- useEffect(() => {
43
- if (!ref.current) {
44
- return;
45
- }
46
- const intersectionObserver = new IntersectionObserver(onIntersection, {
47
- rootMargin: `${ROOT_MARGIN_VERTICAL} 0px ${ROOT_MARGIN_VERTICAL} 0px`
48
- });
49
- intersectionObserver.observe(ref.current);
50
- return () => intersectionObserver.disconnect();
51
- }, [ref, onIntersection]);
52
- const content = isIntersecting ? /*#__PURE__*/React.createElement(CardWithUrlContent, props) : /*#__PURE__*/React.createElement(ComponentObserver, {
53
- ref: ref
54
- }, /*#__PURE__*/React.createElement(LoadingCardLink, props));
55
-
56
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
57
- return /*#__PURE__*/React.createElement(Component, {
58
- className: "loader-wrapper"
59
- }, content);
60
- }
61
- const LazyIntersectionObserverCardNew = props => {
11
+ export const LazyIntersectionObserverCard = props => {
62
12
  const [isIntersected, setIsIntersected] = useState(false);
63
13
  const [shouldSendRenderedUFOEvent] = useState(shouldSample());
64
14
  const {
@@ -109,5 +59,4 @@ const LazyIntersectionObserverCardNew = props => {
109
59
  return /*#__PURE__*/React.createElement(CardLoaderWrapper, {
110
60
  appearance: appearance
111
61
  }, content);
112
- };
113
- export const LazyIntersectionObserverCard = componentWithFG('platform_sl_event_ui_seen', LazyIntersectionObserverCardNew, LazyIntersectionObserverCardOld);
62
+ };
@@ -2,7 +2,6 @@ import _extends from "@babel/runtime/helpers/extends";
2
2
  import React, { useCallback } from 'react';
3
3
  import { FormattedMessage } from 'react-intl';
4
4
  import RovoIcon from '@atlaskit/icon-lab/core/rovo';
5
- import AiIcon from '@atlaskit/icon/core/atlassian-intelligence';
6
5
  import { fg } from '@atlaskit/platform-feature-flags';
7
6
  import { useAnalyticsEvents } from '../../../../../common/analytics/generated/use-analytics-events';
8
7
  import { messages } from '../../../../../messages';
@@ -37,10 +36,9 @@ export function AISummariseAction({
37
36
  (_summariseUrl = summariseUrl()) === null || _summariseUrl === void 0 ? void 0 : _summariseUrl.then(onCompleted, onCompleted);
38
37
  onClickCallback === null || onClickCallback === void 0 ? void 0 : onClickCallback();
39
38
  }, [fireEvent, onClickCallback, onCompleted, summariseUrl]);
40
- const Icon = fg('platform_sl_ai_summary_rebrand') ? RovoIcon : AiIcon;
41
39
  return /*#__PURE__*/React.createElement(Action, _extends({
42
- content: /*#__PURE__*/React.createElement(FormattedMessage, fg('platform_sl_ai_summary_rebrand') ? messages.ai_summary_action_rebrand : messages.ai_summary_action),
43
- icon: /*#__PURE__*/React.createElement(Icon, _extends({
40
+ content: /*#__PURE__*/React.createElement(FormattedMessage, messages.ai_summary_action_rebrand),
41
+ icon: /*#__PURE__*/React.createElement(RovoIcon, _extends({
44
42
  spacing: "spacious",
45
43
  color: "currentColor",
46
44
  label: "Summarise with AI"
@@ -50,6 +48,6 @@ export function AISummariseAction({
50
48
  onClick: handleActionClick,
51
49
  testId: `${testId}-summarise-action`,
52
50
  isLoading: status === 'loading',
53
- tooltipMessage: /*#__PURE__*/React.createElement(FormattedMessage, fg('platform_sl_ai_summary_rebrand') ? messages.ai_summary_action_description_rebrand : messages.ai_summary_action_description)
51
+ tooltipMessage: /*#__PURE__*/React.createElement(FormattedMessage, messages.ai_summary_action_description_rebrand)
54
52
  }, props));
55
53
  }
@@ -2,8 +2,6 @@ import React from 'react';
2
2
  import { FormattedMessage } from 'react-intl';
3
3
  import { di } from 'react-magnetic-di';
4
4
  import RovoIcon from '@atlaskit/icon-lab/core/rovo';
5
- import AIIcon from '@atlaskit/icon/core/atlassian-intelligence';
6
- import { fg } from '@atlaskit/platform-feature-flags';
7
5
  import { Box, Inline } from '@atlaskit/primitives/compiled';
8
6
  import Tooltip from '@atlaskit/tooltip';
9
7
  import { messages } from '../../../../../../messages';
@@ -21,7 +19,6 @@ export const AIFooterMetadata = ({
21
19
  if (status !== 'done') {
22
20
  return null;
23
21
  }
24
- const Icon = fg('platform_sl_ai_summary_rebrand') ? RovoIcon : AIIcon;
25
22
  return /*#__PURE__*/React.createElement(Inline, {
26
23
  space: "space.100",
27
24
  testId: testId,
@@ -33,7 +30,7 @@ export const AIFooterMetadata = ({
33
30
  }, tooltipProps => /*#__PURE__*/React.createElement(Box, tooltipProps, /*#__PURE__*/React.createElement(InfoIcon, {
34
31
  label: "Information",
35
32
  color: "var(--ds-icon-subtle, #505258)"
36
- }))), /*#__PURE__*/React.createElement(Icon, {
33
+ }))), /*#__PURE__*/React.createElement(RovoIcon, {
37
34
  label: "AI",
38
35
  color: "var(--ds-icon-subtle, #505258)"
39
36
  }));
@@ -1,13 +1,12 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import React from 'react';
3
3
  import Link from '@atlaskit/link';
4
- import { fg } from '@atlaskit/platform-feature-flags';
5
- import { CONTENT_URL_AI, CONTENT_URL_ROVO } from '../../../../../constants';
4
+ import { CONTENT_URL_ROVO } from '../../../../../constants';
6
5
  const AILearnMoreAnchor = ({
7
6
  children,
8
7
  ...props
9
8
  }) => /*#__PURE__*/React.createElement(Link, _extends({
10
- href: fg('platform_sl_ai_summary_rebrand') ? CONTENT_URL_ROVO : CONTENT_URL_AI,
9
+ href: CONTENT_URL_ROVO,
11
10
  target: "_blank",
12
11
  rel: "noopener noreferrer"
13
12
  }, props), children);
@@ -9,7 +9,7 @@ import LinkWarningModal from './LinkWarningModal';
9
9
  import { useLinkWarningModal } from './LinkWarningModal/hooks/use-link-warning-modal';
10
10
  const PACKAGE_DATA = {
11
11
  packageName: "@atlaskit/smart-card",
12
- packageVersion: "45.2.3",
12
+ packageVersion: "45.2.5",
13
13
  componentName: 'linkUrl'
14
14
  };
15
15
  const LinkUrl = ({
@@ -5,7 +5,6 @@ import { ax, ix } from "@compiled/react/runtime";
5
5
  import { FormattedMessage } from 'react-intl';
6
6
  import InformationCircleIcon from '@atlaskit/icon/core/information-circle';
7
7
  import Link from '@atlaskit/link';
8
- import { fg } from '@atlaskit/platform-feature-flags';
9
8
  import { Inline, Text } from '@atlaskit/primitives/compiled';
10
9
  import { CONTENT_URL_ROVO } from '../../../../constants';
11
10
  import { messages } from '../../../../messages';
@@ -23,7 +22,7 @@ const AIFooter = () => /*#__PURE__*/React.createElement(Inline, {
23
22
  }), /*#__PURE__*/React.createElement(Text, {
24
23
  size: "small"
25
24
  }, /*#__PURE__*/React.createElement(Link, {
26
- href: fg('platform_sl_ai_summary_rebrand') ? CONTENT_URL_ROVO : 'https://www.atlassian.com/trust/atlassian-intelligence',
25
+ href: CONTENT_URL_ROVO,
27
26
  appearance: "subtle",
28
27
  target: "_blank"
29
28
  }, /*#__PURE__*/React.createElement(FormattedMessage, messages.ai_disclaimer))));
@@ -0,0 +1,3 @@
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3702733a3566d0271db41954296f1b3c5cdd993a977dbc8b662e7e76d6d7347f
3
+ size 33804
@@ -0,0 +1,3 @@
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3702733a3566d0271db41954296f1b3c5cdd993a977dbc8b662e7e76d6d7347f
3
+ size 33804
@@ -0,0 +1,3 @@
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:536dd9baa73ab511b7be0da444fead1e9a5b0217fe899292fd43f11f6920c282
3
+ size 44349
@@ -0,0 +1,3 @@
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f57d097cbd31daa50ba4391b75f6ee33c27454ff4be054e9e2ceff8e23278ac9
3
+ size 41509
@@ -0,0 +1,3 @@
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f9b30b2546d815ae6fcf6edff3f60ff3b41abb4fbec56cd6bda6a328c49f498e
3
+ size 39502
@@ -1,3 +1,3 @@
1
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:7764d3b131a578dc9beae4d6ca7639bff44bce78102d02bb0966a0fc29a33b71
3
- size 35755
2
+ oid sha256:b92a8933c53ddbdc5d5782b5cb71c93635fa8a965388db4dc0c1285792798e7f
3
+ size 36295
@@ -1,3 +1,3 @@
1
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:7764d3b131a578dc9beae4d6ca7639bff44bce78102d02bb0966a0fc29a33b71
3
- size 35755
2
+ oid sha256:b92a8933c53ddbdc5d5782b5cb71c93635fa8a965388db4dc0c1285792798e7f
3
+ size 36295
@@ -1,6 +1,5 @@
1
1
  export var CONTENT_URL_SECURITY_AND_PERMISSIONS = 'https://support.atlassian.com/confluence-cloud/docs/insert-links-and-anchors/#Smart-links';
2
2
  export var CONTENT_URL_3P_ACCOUNT_AUTH = 'https://support.atlassian.com/confluence-cloud/docs/what-data-is-sent-and-received-when-pasting-a-smart-link/';
3
- export var CONTENT_URL_AI = 'https://www.atlassian.com/trust/atlassian-intelligence';
4
3
  export var CONTENT_URL_ROVO = 'https://www.atlassian.com/trust/ai';
5
4
  export var CONTENT_URL_AI_TROUBLESHOOTING = 'https://status.atlassian.com/';
6
5
  export var CONTENT_URL_ACCEPTABLE_USE_POLICY = 'https://www.atlassian.com/legal/acceptable-use-policy';
@@ -30,11 +30,6 @@ export var messages = defineMessages({
30
30
  defaultMessage: 'Content quality may vary',
31
31
  description: 'Additional info about the content summarised by AI.'
32
32
  },
33
- ai_summary_error_generic: {
34
- id: 'fabric.linking.ai_summary_error_generic',
35
- defaultMessage: 'Atlassian Intelligence (AI) isn’t responding. Try again later or <a>check the status of AI</a>.',
36
- description: 'Shown when AI Summary encountered an unexpected error while summarizing the linked resource content.'
37
- },
38
33
  ai_summary_error_generic_rebrand: {
39
34
  id: 'fabric.linking.ai_summary_error_generic_rebrand',
40
35
  defaultMessage: 'Rovo isn’t responding. Try again later or <a>check the status of AI</a>.',
@@ -275,11 +270,6 @@ export var messages = defineMessages({
275
270
  defaultMessage: 'Download file',
276
271
  description: 'Label for the download file action in a smart link or card action menu, allowing the user to save the linked file locally.'
277
272
  },
278
- ai_summary_action: {
279
- id: 'fabric.linking.ai_summary_action',
280
- defaultMessage: 'Summarize with AI',
281
- description: 'Label for the AI summarize action in a smart link or hover card action menu, allowing the user to generate an AI summary of the linked content.'
282
- },
283
273
  ai_summary_action_rebrand: {
284
274
  id: 'fabric.linking.ai_summary_action_rebrand',
285
275
  defaultMessage: 'Summarize with Rovo',
package/dist/esm/ssr.js CHANGED
@@ -3,7 +3,7 @@ import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
3
  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; }
4
4
  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; }
5
5
  import React, { useState } from 'react';
6
- import { ErrorBoundary } from 'react-error-boundary';
6
+
7
7
  // eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
8
8
  import uuid from 'uuid';
9
9
  import { AnalyticsContext } from '@atlaskit/analytics-next';
@@ -11,12 +11,11 @@ import { fg } from '@atlaskit/platform-feature-flags';
11
11
  import { context } from './utils/analytics/analytics';
12
12
  import { isFlexibleUiCard } from './utils/flexible';
13
13
  import CardErrorBoundary from './view/CardWithUrl/card-error-boundary';
14
- import { CardWithUrl, CardWithUrlContent } from './view/CardWithUrl/component';
15
- import { LoadingCardLink } from './view/CardWithUrl/component-lazy/LoadingCardLink';
14
+ import { CardWithUrl } from './view/CardWithUrl/component';
16
15
  // SSR friendly version of smart-card
17
16
  // simplifies the logic around rendering and loading placeholders and
18
17
  // only contains whats necessary to render the card on SSR mode
19
- var CardSSROld = function CardSSROld(props) {
18
+ export var CardSSR = function CardSSR(props) {
20
19
  // eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
21
20
  var _useState = useState(function () {
22
21
  var _props$id;
@@ -28,42 +27,6 @@ var CardSSROld = function CardSSROld(props) {
28
27
  // because they render custom blocks (TitleBlock etc.) requiring a complete response.
29
28
  // Override appearance to 'block' for FlexibleCards when FG is enabled.
30
29
  var effectiveAppearance = isFlexibleUiCard(props.children, props.ui) && fg('platform_smartlink_inline_resolve_optimization') ? 'block' : props.appearance;
31
- var cardProps = _objectSpread(_objectSpread({}, props), {}, {
32
- id: id,
33
- appearance: effectiveAppearance
34
- });
35
- var ErrorFallbackComponent = cardProps.fallbackComponent;
36
- var errorBoundaryFallbackComponent = function errorBoundaryFallbackComponent() {
37
- if (ErrorFallbackComponent) {
38
- return /*#__PURE__*/React.createElement(ErrorFallbackComponent, null);
39
- }
40
- return /*#__PURE__*/React.createElement(LoadingCardLink, cardProps);
41
- };
42
- var Component = effectiveAppearance === 'inline' ? 'span' : 'div';
43
- return /*#__PURE__*/React.createElement(AnalyticsContext, {
44
- data: context
45
- }, /*#__PURE__*/React.createElement(ErrorBoundary, {
46
- FallbackComponent: errorBoundaryFallbackComponent
47
- }, /*#__PURE__*/React.createElement(Component, {
48
- className: "loader-wrapper"
49
- }, /*#__PURE__*/React.createElement(CardWithUrlContent, cardProps))));
50
- };
51
-
52
- // SSR friendly version of smart-card
53
- // simplifies the logic around rendering and loading placeholders and
54
- // only contains whats necessary to render the card on SSR mode
55
- var CardSSRNew = function CardSSRNew(props) {
56
- // eslint-disable-next-line @atlaskit/platform/prefer-crypto-random-uuid -- Use crypto.randomUUID instead
57
- var _useState3 = useState(function () {
58
- var _props$id2;
59
- return (_props$id2 = props.id) !== null && _props$id2 !== void 0 ? _props$id2 : uuid();
60
- }),
61
- _useState4 = _slicedToArray(_useState3, 1),
62
- id = _useState4[0];
63
- // FlexibleCards always need full ORS data regardless of appearance prop,
64
- // because they render custom blocks (TitleBlock etc.) requiring a complete response.
65
- // Override appearance to 'block' for FlexibleCards when FG is enabled.
66
- var effectiveAppearance = isFlexibleUiCard(props.children, props.ui) && fg('platform_smartlink_inline_resolve_optimization') ? 'block' : props.appearance;
67
30
  var propsWithId = _objectSpread(_objectSpread({}, props), {}, {
68
31
  id: id,
69
32
  appearance: effectiveAppearance
@@ -71,10 +34,4 @@ var CardSSRNew = function CardSSRNew(props) {
71
34
  return /*#__PURE__*/React.createElement(AnalyticsContext, {
72
35
  data: context
73
36
  }, /*#__PURE__*/React.createElement(CardErrorBoundary, propsWithId, /*#__PURE__*/React.createElement(CardWithUrl, propsWithId)));
74
- };
75
- export var CardSSR = function CardSSR(props) {
76
- if (fg('platform_sl_event_ui_seen')) {
77
- return /*#__PURE__*/React.createElement(CardSSRNew, props);
78
- }
79
- return /*#__PURE__*/React.createElement(CardSSROld, props);
80
37
  };
@@ -1,4 +1,3 @@
1
- import { fg } from '@atlaskit/platform-feature-flags';
2
1
  import { CONTENT_URL_ACCEPTABLE_USE_POLICY, CONTENT_URL_AI_TROUBLESHOOTING } from '../constants';
3
2
  import { messages } from '../messages';
4
3
  export var getIsAISummaryEnabled = function getIsAISummaryEnabled() {
@@ -24,7 +23,7 @@ export var getAISummaryErrorMessage = function getAISummaryErrorMessage(error) {
24
23
  };
25
24
  default:
26
25
  return {
27
- message: fg('platform_sl_ai_summary_rebrand') ? messages.ai_summary_error_generic_rebrand : messages.ai_summary_error_generic,
26
+ message: messages.ai_summary_error_generic_rebrand,
28
27
  url: CONTENT_URL_AI_TROUBLESHOOTING
29
28
  };
30
29
  }
@@ -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: "45.2.3" || ''
7
+ packageVersion: "45.2.5" || ''
8
8
  };
9
9
  export var TrackQuickActionType = /*#__PURE__*/function (TrackQuickActionType) {
10
10
  TrackQuickActionType["StatusUpdate"] = "StatusUpdate";
@@ -1,7 +1,6 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
3
- import React, { useCallback, useEffect, useRef, useState } from 'react';
4
- import { componentWithFG } from '@atlaskit/platform-feature-flags-react';
3
+ import React, { useCallback, useState } from 'react';
5
4
  import { usePrefetch } from '../../../state';
6
5
  import { startUfoExperience } from '../../../state/analytics/ufoExperiences';
7
6
  import useIntersectionObserver from '../../../state/hooks/use-intersection-observer';
@@ -10,70 +9,14 @@ import { shouldSample } from '../../../utils/shouldSample';
10
9
  import CardLoaderWrapper from '../card-loader-wrapper';
11
10
  import { CardWithUrlContent } from '../component';
12
11
  import { LoadingCardLink } from './LoadingCardLink';
13
-
14
- // This property enables the intersection observer to be run once the
15
- // HTML element being observed is within `X` px of the target container it is
16
- // being compared to. Since the default container is the `document`, we set this
17
- // up to check once a Smart Link is within `X` px from the bottom of the viewport.
18
- var ROOT_MARGIN_VERTICAL = '360px';
19
- function LazyIntersectionObserverCardOld(props) {
20
- var ref = useRef(null);
12
+ export var LazyIntersectionObserverCard = function LazyIntersectionObserverCard(props) {
21
13
  var _useState = useState(false),
22
14
  _useState2 = _slicedToArray(_useState, 2),
23
- isIntersecting = _useState2[0],
24
- setIsIntersecting = _useState2[1];
15
+ isIntersected = _useState2[0],
16
+ setIsIntersected = _useState2[1];
25
17
  var _useState3 = useState(shouldSample()),
26
18
  _useState4 = _slicedToArray(_useState3, 1),
27
19
  shouldSendRenderedUFOEvent = _useState4[0];
28
- var appearance = props.appearance,
29
- url = props.url,
30
- id = props.id;
31
- var prefetch = usePrefetch(url, appearance);
32
- var Component = appearance === 'inline' ? 'span' : 'div';
33
- var ComponentObserver = Component;
34
- var onIntersection = useCallback(function (entries, observer) {
35
- var isVisible = entries.some(function (entry) {
36
- return entry.isIntersecting;
37
- });
38
- if (isVisible) {
39
- if (shouldSendRenderedUFOEvent) {
40
- startUfoExperience('smart-link-rendered', id);
41
- }
42
- setIsIntersecting(true);
43
- observer.disconnect();
44
- } else {
45
- prefetch();
46
- }
47
- }, [id, prefetch, shouldSendRenderedUFOEvent]);
48
- useEffect(function () {
49
- if (!ref.current) {
50
- return;
51
- }
52
- var intersectionObserver = new IntersectionObserver(onIntersection, {
53
- rootMargin: "".concat(ROOT_MARGIN_VERTICAL, " 0px ").concat(ROOT_MARGIN_VERTICAL, " 0px")
54
- });
55
- intersectionObserver.observe(ref.current);
56
- return function () {
57
- return intersectionObserver.disconnect();
58
- };
59
- }, [ref, onIntersection]);
60
- var content = isIntersecting ? /*#__PURE__*/React.createElement(CardWithUrlContent, props) : /*#__PURE__*/React.createElement(ComponentObserver, {
61
- ref: ref
62
- }, /*#__PURE__*/React.createElement(LoadingCardLink, props));
63
-
64
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
65
- return /*#__PURE__*/React.createElement(Component, {
66
- className: "loader-wrapper"
67
- }, content);
68
- }
69
- var LazyIntersectionObserverCardNew = function LazyIntersectionObserverCardNew(props) {
70
- var _useState5 = useState(false),
71
- _useState6 = _slicedToArray(_useState5, 2),
72
- isIntersected = _useState6[0],
73
- setIsIntersected = _useState6[1];
74
- var _useState7 = useState(shouldSample()),
75
- _useState8 = _slicedToArray(_useState7, 1),
76
- shouldSendRenderedUFOEvent = _useState8[0];
77
20
  var appearance = props.appearance,
78
21
  children = props.children,
79
22
  id = props.id,
@@ -119,5 +62,4 @@ var LazyIntersectionObserverCardNew = function LazyIntersectionObserverCardNew(p
119
62
  return /*#__PURE__*/React.createElement(CardLoaderWrapper, {
120
63
  appearance: appearance
121
64
  }, content);
122
- };
123
- export var LazyIntersectionObserverCard = componentWithFG('platform_sl_event_ui_seen', LazyIntersectionObserverCardNew, LazyIntersectionObserverCardOld);
65
+ };
@@ -4,7 +4,6 @@ var _excluded = ["onClick", "onError", "testId", "status", "summariseUrl"];
4
4
  import React, { useCallback } from 'react';
5
5
  import { FormattedMessage } from 'react-intl';
6
6
  import RovoIcon from '@atlaskit/icon-lab/core/rovo';
7
- import AiIcon from '@atlaskit/icon/core/atlassian-intelligence';
8
7
  import { fg } from '@atlaskit/platform-feature-flags';
9
8
  import { useAnalyticsEvents } from '../../../../../common/analytics/generated/use-analytics-events';
10
9
  import { messages } from '../../../../../messages';
@@ -37,10 +36,9 @@ export function AISummariseAction(_ref) {
37
36
  (_summariseUrl = summariseUrl()) === null || _summariseUrl === void 0 || _summariseUrl.then(onCompleted, onCompleted);
38
37
  onClickCallback === null || onClickCallback === void 0 || onClickCallback();
39
38
  }, [fireEvent, onClickCallback, onCompleted, summariseUrl]);
40
- var Icon = fg('platform_sl_ai_summary_rebrand') ? RovoIcon : AiIcon;
41
39
  return /*#__PURE__*/React.createElement(Action, _extends({
42
- content: /*#__PURE__*/React.createElement(FormattedMessage, fg('platform_sl_ai_summary_rebrand') ? messages.ai_summary_action_rebrand : messages.ai_summary_action),
43
- icon: /*#__PURE__*/React.createElement(Icon, _extends({
40
+ content: /*#__PURE__*/React.createElement(FormattedMessage, messages.ai_summary_action_rebrand),
41
+ icon: /*#__PURE__*/React.createElement(RovoIcon, _extends({
44
42
  spacing: "spacious",
45
43
  color: "currentColor",
46
44
  label: "Summarise with AI"
@@ -50,6 +48,6 @@ export function AISummariseAction(_ref) {
50
48
  onClick: handleActionClick,
51
49
  testId: "".concat(testId, "-summarise-action"),
52
50
  isLoading: status === 'loading',
53
- tooltipMessage: /*#__PURE__*/React.createElement(FormattedMessage, fg('platform_sl_ai_summary_rebrand') ? messages.ai_summary_action_description_rebrand : messages.ai_summary_action_description)
51
+ tooltipMessage: /*#__PURE__*/React.createElement(FormattedMessage, messages.ai_summary_action_description_rebrand)
54
52
  }, props));
55
53
  }
@@ -2,8 +2,6 @@ import React from 'react';
2
2
  import { FormattedMessage } from 'react-intl';
3
3
  import { di } from 'react-magnetic-di';
4
4
  import RovoIcon from '@atlaskit/icon-lab/core/rovo';
5
- import AIIcon from '@atlaskit/icon/core/atlassian-intelligence';
6
- import { fg } from '@atlaskit/platform-feature-flags';
7
5
  import { Box, Inline } from '@atlaskit/primitives/compiled';
8
6
  import Tooltip from '@atlaskit/tooltip';
9
7
  import { messages } from '../../../../../../messages';
@@ -17,7 +15,6 @@ export var AIFooterMetadata = function AIFooterMetadata(_ref) {
17
15
  if (status !== 'done') {
18
16
  return null;
19
17
  }
20
- var Icon = fg('platform_sl_ai_summary_rebrand') ? RovoIcon : AIIcon;
21
18
  return /*#__PURE__*/React.createElement(Inline, {
22
19
  space: "space.100",
23
20
  testId: testId,
@@ -31,7 +28,7 @@ export var AIFooterMetadata = function AIFooterMetadata(_ref) {
31
28
  label: "Information",
32
29
  color: "var(--ds-icon-subtle, #505258)"
33
30
  }));
34
- }), /*#__PURE__*/React.createElement(Icon, {
31
+ }), /*#__PURE__*/React.createElement(RovoIcon, {
35
32
  label: "AI",
36
33
  color: "var(--ds-icon-subtle, #505258)"
37
34
  }));
@@ -3,13 +3,12 @@ import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProper
3
3
  var _excluded = ["children"];
4
4
  import React from 'react';
5
5
  import Link from '@atlaskit/link';
6
- import { fg } from '@atlaskit/platform-feature-flags';
7
- import { CONTENT_URL_AI, CONTENT_URL_ROVO } from '../../../../../constants';
6
+ import { CONTENT_URL_ROVO } from '../../../../../constants';
8
7
  var AILearnMoreAnchor = function AILearnMoreAnchor(_ref) {
9
8
  var children = _ref.children,
10
9
  props = _objectWithoutProperties(_ref, _excluded);
11
10
  return /*#__PURE__*/React.createElement(Link, _extends({
12
- href: fg('platform_sl_ai_summary_rebrand') ? CONTENT_URL_ROVO : CONTENT_URL_AI,
11
+ href: CONTENT_URL_ROVO,
13
12
  target: "_blank",
14
13
  rel: "noopener noreferrer"
15
14
  }, props), children);
@@ -12,7 +12,7 @@ import LinkWarningModal from './LinkWarningModal';
12
12
  import { useLinkWarningModal } from './LinkWarningModal/hooks/use-link-warning-modal';
13
13
  var PACKAGE_DATA = {
14
14
  packageName: "@atlaskit/smart-card",
15
- packageVersion: "45.2.3",
15
+ packageVersion: "45.2.5",
16
16
  componentName: 'linkUrl'
17
17
  };
18
18
  var LinkUrl = function LinkUrl(_ref) {
@@ -5,7 +5,6 @@ import { ax, ix } from "@compiled/react/runtime";
5
5
  import { FormattedMessage } from 'react-intl';
6
6
  import InformationCircleIcon from '@atlaskit/icon/core/information-circle';
7
7
  import Link from '@atlaskit/link';
8
- import { fg } from '@atlaskit/platform-feature-flags';
9
8
  import { Inline, Text } from '@atlaskit/primitives/compiled';
10
9
  import { CONTENT_URL_ROVO } from '../../../../constants';
11
10
  import { messages } from '../../../../messages';
@@ -24,7 +23,7 @@ var AIFooter = function AIFooter() {
24
23
  }), /*#__PURE__*/React.createElement(Text, {
25
24
  size: "small"
26
25
  }, /*#__PURE__*/React.createElement(Link, {
27
- href: fg('platform_sl_ai_summary_rebrand') ? CONTENT_URL_ROVO : 'https://www.atlassian.com/trust/atlassian-intelligence',
26
+ href: CONTENT_URL_ROVO,
28
27
  appearance: "subtle",
29
28
  target: "_blank"
30
29
  }, /*#__PURE__*/React.createElement(FormattedMessage, messages.ai_disclaimer))));
@@ -1,6 +1,5 @@
1
1
  export declare const CONTENT_URL_SECURITY_AND_PERMISSIONS = "https://support.atlassian.com/confluence-cloud/docs/insert-links-and-anchors/#Smart-links";
2
2
  export declare const CONTENT_URL_3P_ACCOUNT_AUTH = "https://support.atlassian.com/confluence-cloud/docs/what-data-is-sent-and-received-when-pasting-a-smart-link/";
3
- export declare const CONTENT_URL_AI = "https://www.atlassian.com/trust/atlassian-intelligence";
4
3
  export declare const CONTENT_URL_ROVO = "https://www.atlassian.com/trust/ai";
5
4
  export declare const CONTENT_URL_AI_TROUBLESHOOTING = "https://status.atlassian.com/";
6
5
  export declare const CONTENT_URL_ACCEPTABLE_USE_POLICY = "https://www.atlassian.com/legal/acceptable-use-policy";
@@ -1,7 +1,7 @@
1
1
  import { type MessageDescriptor } from 'react-intl';
2
2
  export type RequestAccessMessageKey = 'click_to_join' | 'click_to_join_description' | 'forbidden_description' | 'request_access' | 'request_access_description' | 'request_access_pending' | 'request_access_pending_title' | 'request_access_pending_description' | 'request_denied_description' | 'default_no_access_title' | 'direct_access_title' | 'direct_access_description' | 'direct_access' | 'access_exists_description' | 'not_found_description' | 'not_found_title';
3
3
  export type RovoChatActionMessageKey = 'rovo_prompt_context_generic' | 'rovo_prompt_context_generic_plural' | 'rovo_prompt_context_confluence_page' | 'rovo_prompt_context_confluence_page_short' | 'rovo_prompt_context_jira_work_item' | 'rovo_prompt_context_jira_work_item_short' | 'rovo_prompt_button_recommend_other_sources' | 'rovo_prompt_message_recommend_other_sources' | 'rovo_prompt_button_show_other_mentions' | 'rovo_prompt_message_show_other_mentions' | 'rovo_prompt_button_suggest_improvement' | 'rovo_prompt_message_suggest_improvement' | 'rovo_prompt_message_summarize' | 'rovo_prompt_button_ask_rovo_anything' | 'rovo_prompt_message_ask_rovo_anything' | 'rovo_prompt_button_highlight_relevant_content' | 'rovo_prompt_message_highlight_relevant_content' | 'rovo_prompt_button_identify_key_trends' | 'rovo_prompt_message_identify_key_trends' | 'rovo_prompt_button_identify_key_points' | 'rovo_prompt_message_identify_key_points' | 'rovo_prompt_button_find_open_questions' | 'rovo_prompt_message_find_open_questions' | 'rovo_prompt_button_key_highlights' | 'rovo_prompt_message_key_highlights' | 'rovo_prompt_message_summarize_document' | 'rovo_prompt_message_summarize_presentation' | 'rovo_prompt_button_explain_code' | 'rovo_prompt_message_explain_code' | 'rovo_prompt_button_catch_up' | 'rovo_prompt_message_catch_up' | 'rovo_prompt_button_salesforce_prep' | 'rovo_prompt_message_salesforce_prep';
4
- export type MessageKey = 'assigned_to' | 'ai_summarize' | 'change_status' | 'ai_summarized_abbreviation' | 'ai_summarized_info' | 'ai_summarized_info_short' | 'ai_summary_error_generic' | 'ai_summary_error_generic_rebrand' | 'ai_summary_error_acceptable_use_violation' | 'ai_summary_error_hipaa_content_detected' | 'ai_summary_error_exceeding_context_length_error' | 'ai_summary_action' | 'ai_summary_action_rebrand' | 'ai_summary_action_description' | 'ai_summary_action_description_rebrand' | 'automation_action_title' | 'automation_action_tooltip' | 'automation_action_icon_label' | 'automation_action_confluence_page_modal_title' | 'automation_action_confluence_page_modal_description' | 'copy_summary_action' | 'copy_summary_action_description' | 'copied_summary_action_description' | 'beta' | 'cannot_find_link' | 'compass_applied_components_count' | 'connect_link_account_card' | 'connect_link_account_card_name' | 'connect_link_account_card_description' | 'connect_link_account_success_flag_description' | 'connect_link_account_success_flag_title' | 'connect_link_account_success_flag_title_default' | 'connect_unauthorised_account_action' | 'connect_inline_social_proof' | 'social_proof_inline_cta_tag_high_with_context' | 'social_proof_inline_cta_tag_high_no_context' | 'social_proof_inline_cta_tag_low_with_context' | 'social_proof_inline_cta_tag_low_no_context' | 'connect_unauthorised_account_description' | 'connect_unauthorised_account_description_no_provider' | 'continue' | 'copy_url_to_clipboard' | 'copied_url_to_clipboard' | 'could_not_load_link' | 'download' | 'download_description' | 'download_file' | 'follow' | 'follow_project_description' | 'follow_project_descriptionGalaxia' | 'follow_project' | 'follow_goal' | 'follow_goal_description' | 'follow_project_error' | 'follow_project_errorGalaxia' | 'follow_goal_error' | 'go_back' | 'invalid_permissions' | 'invalid_permissions_description' | 'join_to_view' | 'connect_link_account' | 'created_by' | 'created_on_relative' | 'created_on_absolute' | 'check_this_link' | 'delete' | 'edit' | 'learn_more_about_smart_links' | 'learn_more_about_connecting_account' | 'loading' | 'link_safety_warning_message' | 'modified_by' | 'modified_on_relative' | 'modified_on_absolute' | 'more_actions' | 'not_found_title' | 'not_found_description' | 'open_issue_in_jira' | 'open_link_in_a_new_tab' | 'owned_by' | 'owned_by_override' | 'preview_description' | 'preview_improved' | 'preview_modal' | 'preview_panel' | 'preview_close' | 'preview_max_size' | 'preview_min_size' | 'priority_blocker' | 'priority_critical' | 'priority_high' | 'priority_highest' | 'priority_low' | 'priority_lowest' | 'priority_major' | 'priority_medium' | 'priority_minor' | 'priority_trivial' | 'priority_undefined' | 'forbidden_access' | 'pending_request' | 'read_time' | 'restricted_link' | 'request_access_to_view' | 'request_denied' | 'sent_on_relative' | 'sent_on_absolute' | 'status_change_load_error' | 'status_change_permission_error' | 'status_change_update_error' | 'try_again' | 'try_another_account' | 'unauthorised_account_description' | 'unauthorised_account_description_no_provider' | 'unauthorised_account_name' | 'unauthorised_account_name_no_provider' | 'rovo_actions_explore' | 'unassigned' | 'unfollow' | 'unfollow_project_description' | 'unfollow_project_descriptionGalaxia' | 'unfollow_project' | 'unfollow_project_error' | 'unfollow_project_errorGalaxia' | 'unfollow_goal' | 'unfollow_goal_description' | 'unfollow_goal_error' | 'user_attributes' | 'view' | 'viewIn' | 'viewInProvider' | 'viewOriginal' | 'actions' | 'add_account' | 'cancel' | 'close' | 'connect_to' | 'connect_account_description' | 'retry' | 'save' | 'unlink_account' | RequestAccessMessageKey | 'related' | 'generic_error_message' | 'related_links_modal_error_title' | 'related_links_modal_error_description' | 'related_links_modal_unavailable_title' | 'related_links_modal_unavailable_description' | 'related_links_modal_title' | 'related_links_view_related_urls' | 'related_links_view_related_links' | 'related_links_found_in' | 'related_links_includes_links_to' | 'related_links_not_found' | 'join_to_viewIssueTermRefresh' | 'open_issue_in_jiraIssueTermRefresh' | 'request_access_to_viewIssueTermRefresh' | 'team_members_count' | 'status_change_permission_errorIssueTermRefresh' | 'connect_unauthorised_account_description_appify' | 'connect_unauthorised_account_description_no_provider_appify' | 'learn_more_about_connecting_account_experiment_shorter' | 'learn_more_about_connecting_account_appify' | 'rovo_summary_loading' | 'ai_disclaimer' | 'rovo_unauthorised_title' | 'rovo_unauthorised_title_no_provider' | 'rovo_unauthorised_feature_clear_link_names' | 'rovo_unauthorised_feature_understand_linked_docs' | 'rovo_unauthorised_feature_go_deeper_smart_suggestions' | 'rovo_unauthorised_connect_account' | 'rovo_unauthorised_not_now' | 'rovo_chat_action_section_header' | 'rovo_prompt_button_summarize_this' | 'rovo_prompt_button_ask_a_specific_question' | 'rovo_prompt_button_show_me_whats_relevant' | RovoChatActionMessageKey | 'pre_auth_block_social_proof_not_low' | 'pre_auth_block_social_proof_low';
4
+ export type MessageKey = 'assigned_to' | 'ai_summarize' | 'change_status' | 'ai_summarized_abbreviation' | 'ai_summarized_info' | 'ai_summarized_info_short' | 'ai_summary_error_generic_rebrand' | 'ai_summary_error_acceptable_use_violation' | 'ai_summary_error_hipaa_content_detected' | 'ai_summary_error_exceeding_context_length_error' | 'ai_summary_action_rebrand' | 'ai_summary_action_description' | 'ai_summary_action_description_rebrand' | 'automation_action_title' | 'automation_action_tooltip' | 'automation_action_icon_label' | 'automation_action_confluence_page_modal_title' | 'automation_action_confluence_page_modal_description' | 'copy_summary_action' | 'copy_summary_action_description' | 'copied_summary_action_description' | 'beta' | 'cannot_find_link' | 'compass_applied_components_count' | 'connect_link_account_card' | 'connect_link_account_card_name' | 'connect_link_account_card_description' | 'connect_link_account_success_flag_description' | 'connect_link_account_success_flag_title' | 'connect_link_account_success_flag_title_default' | 'connect_unauthorised_account_action' | 'connect_inline_social_proof' | 'social_proof_inline_cta_tag_high_with_context' | 'social_proof_inline_cta_tag_high_no_context' | 'social_proof_inline_cta_tag_low_with_context' | 'social_proof_inline_cta_tag_low_no_context' | 'connect_unauthorised_account_description' | 'connect_unauthorised_account_description_no_provider' | 'continue' | 'copy_url_to_clipboard' | 'copied_url_to_clipboard' | 'could_not_load_link' | 'download' | 'download_description' | 'download_file' | 'follow' | 'follow_project_description' | 'follow_project_descriptionGalaxia' | 'follow_project' | 'follow_goal' | 'follow_goal_description' | 'follow_project_error' | 'follow_project_errorGalaxia' | 'follow_goal_error' | 'go_back' | 'invalid_permissions' | 'invalid_permissions_description' | 'join_to_view' | 'connect_link_account' | 'created_by' | 'created_on_relative' | 'created_on_absolute' | 'check_this_link' | 'delete' | 'edit' | 'learn_more_about_smart_links' | 'learn_more_about_connecting_account' | 'loading' | 'link_safety_warning_message' | 'modified_by' | 'modified_on_relative' | 'modified_on_absolute' | 'more_actions' | 'not_found_title' | 'not_found_description' | 'open_issue_in_jira' | 'open_link_in_a_new_tab' | 'owned_by' | 'owned_by_override' | 'preview_description' | 'preview_improved' | 'preview_modal' | 'preview_panel' | 'preview_close' | 'preview_max_size' | 'preview_min_size' | 'priority_blocker' | 'priority_critical' | 'priority_high' | 'priority_highest' | 'priority_low' | 'priority_lowest' | 'priority_major' | 'priority_medium' | 'priority_minor' | 'priority_trivial' | 'priority_undefined' | 'forbidden_access' | 'pending_request' | 'read_time' | 'restricted_link' | 'request_access_to_view' | 'request_denied' | 'sent_on_relative' | 'sent_on_absolute' | 'status_change_load_error' | 'status_change_permission_error' | 'status_change_update_error' | 'try_again' | 'try_another_account' | 'unauthorised_account_description' | 'unauthorised_account_description_no_provider' | 'unauthorised_account_name' | 'unauthorised_account_name_no_provider' | 'rovo_actions_explore' | 'unassigned' | 'unfollow' | 'unfollow_project_description' | 'unfollow_project_descriptionGalaxia' | 'unfollow_project' | 'unfollow_project_error' | 'unfollow_project_errorGalaxia' | 'unfollow_goal' | 'unfollow_goal_description' | 'unfollow_goal_error' | 'user_attributes' | 'view' | 'viewIn' | 'viewInProvider' | 'viewOriginal' | 'actions' | 'add_account' | 'cancel' | 'close' | 'connect_to' | 'connect_account_description' | 'retry' | 'save' | 'unlink_account' | RequestAccessMessageKey | 'related' | 'generic_error_message' | 'related_links_modal_error_title' | 'related_links_modal_error_description' | 'related_links_modal_unavailable_title' | 'related_links_modal_unavailable_description' | 'related_links_modal_title' | 'related_links_view_related_urls' | 'related_links_view_related_links' | 'related_links_found_in' | 'related_links_includes_links_to' | 'related_links_not_found' | 'join_to_viewIssueTermRefresh' | 'open_issue_in_jiraIssueTermRefresh' | 'request_access_to_viewIssueTermRefresh' | 'team_members_count' | 'status_change_permission_errorIssueTermRefresh' | 'connect_unauthorised_account_description_appify' | 'connect_unauthorised_account_description_no_provider_appify' | 'learn_more_about_connecting_account_experiment_shorter' | 'learn_more_about_connecting_account_appify' | 'rovo_summary_loading' | 'ai_disclaimer' | 'rovo_unauthorised_title' | 'rovo_unauthorised_title_no_provider' | 'rovo_unauthorised_feature_clear_link_names' | 'rovo_unauthorised_feature_understand_linked_docs' | 'rovo_unauthorised_feature_go_deeper_smart_suggestions' | 'rovo_unauthorised_connect_account' | 'rovo_unauthorised_not_now' | 'rovo_chat_action_section_header' | 'rovo_prompt_button_summarize_this' | 'rovo_prompt_button_ask_a_specific_question' | 'rovo_prompt_button_show_me_whats_relevant' | RovoChatActionMessageKey | 'pre_auth_block_social_proof_not_low' | 'pre_auth_block_social_proof_low';
5
5
  type Messages = {
6
6
  [K in MessageKey]: MessageDescriptor;
7
7
  };
@@ -4,12 +4,12 @@ import type { CardProps } from './types';
4
4
  export type CardSSRProps = CardProps & {
5
5
  hideIconLoadingSkeleton?: boolean;
6
6
  placeholderData?: SmartLinkResponse;
7
- url: string;
8
7
  /**
9
8
  * Server-rendered title fallback passed through to FlexibleCard layered links.
10
9
  * On SSR we cannot reliably derive TitleBlock text from children, so this keeps
11
10
  * server/client link text aligned and avoids hydration mismatches.
12
11
  */
13
12
  title?: string;
13
+ url: string;
14
14
  };
15
15
  export declare const CardSSR: (props: CardSSRProps) => React.JSX.Element;