@atlaskit/smart-card 43.31.9 → 43.32.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 (72) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/dist/cjs/__tests__/vr-tests/__snapshots__/embed-modal/renders-embed-modal-with-confluence-icon--default--navx-1895-new-logo-design-false.png +2 -2
  3. package/dist/cjs/__tests__/vr-tests/__snapshots__/embed-modal/renders-embed-modal-with-confluence-icon--default--navx-1895-new-logo-design-true.png +2 -2
  4. package/dist/cjs/__tests__/vr-tests/__snapshots__/embed-modal/renders-embed-modal-with-flexible-ui-icon--default.png +2 -2
  5. package/dist/cjs/__tests__/vr-tests/__snapshots__/icon-element-variations/icon-element-all-variations-with-experiments--default--platform-sl-3p-preauth-better-hovercard-killswitch-false-platform-sl-3p-preauth-better-hovercard-false.png +3 -0
  6. package/dist/cjs/__tests__/vr-tests/__snapshots__/icon-element-variations/icon-element-all-variations-with-experiments--default--platform-sl-3p-preauth-better-hovercard-killswitch-false-platform-sl-3p-preauth-better-hovercard-true.png +3 -0
  7. package/dist/cjs/__tests__/vr-tests/__snapshots__/icon-element-variations/icon-element-all-variations-with-experiments--default--platform-sl-3p-preauth-better-hovercard-killswitch-true-platform-sl-3p-preauth-better-hovercard-false.png +3 -0
  8. package/dist/cjs/__tests__/vr-tests/__snapshots__/icon-element-variations/icon-element-all-variations-with-experiments--default--platform-sl-3p-preauth-better-hovercard-killswitch-true-platform-sl-3p-preauth-better-hovercard-true.png +3 -0
  9. package/dist/cjs/__tests__/vr-tests/__snapshots__/inline-card/inline-card-resolved-view-with-rovo-actions-button-treatment---default.png +3 -0
  10. package/dist/cjs/state/hooks/use-inline-action-nudge-experiment/index.js +49 -0
  11. package/dist/cjs/utils/analytics/analytics.js +1 -1
  12. package/dist/cjs/utils/index.js +4 -1
  13. package/dist/cjs/view/EmbedModal/components/link-info/index.compiled.css +1 -1
  14. package/dist/cjs/view/EmbedModal/components/link-info/index.js +3 -114
  15. package/dist/cjs/view/FlexibleCard/components/container/hover-card-control/index.js +7 -2
  16. package/dist/cjs/view/FlexibleCard/components/elements/common/base-lozenge-element/lozenge-action/lozenge-action-item/index.js +14 -13
  17. package/dist/cjs/view/HoverCard/components/HoverCardComponent.js +6 -1
  18. package/dist/cjs/view/InlineCard/ResolvedView/InlineCardResolvedViewFunctional.js +61 -3
  19. package/dist/cjs/view/InlineCard/common/rovo-actions-button/index.js +9 -100
  20. package/dist/cjs/view/LinkUrl/index.js +1 -1
  21. package/dist/es2019/__tests__/vr-tests/__snapshots__/embed-modal/renders-embed-modal-with-confluence-icon--default--navx-1895-new-logo-design-false.png +2 -2
  22. package/dist/es2019/__tests__/vr-tests/__snapshots__/embed-modal/renders-embed-modal-with-confluence-icon--default--navx-1895-new-logo-design-true.png +2 -2
  23. package/dist/es2019/__tests__/vr-tests/__snapshots__/embed-modal/renders-embed-modal-with-flexible-ui-icon--default.png +2 -2
  24. package/dist/es2019/__tests__/vr-tests/__snapshots__/icon-element-variations/icon-element-all-variations-with-experiments--default--platform-sl-3p-preauth-better-hovercard-killswitch-false-platform-sl-3p-preauth-better-hovercard-false.png +3 -0
  25. package/dist/es2019/__tests__/vr-tests/__snapshots__/icon-element-variations/icon-element-all-variations-with-experiments--default--platform-sl-3p-preauth-better-hovercard-killswitch-false-platform-sl-3p-preauth-better-hovercard-true.png +3 -0
  26. package/dist/es2019/__tests__/vr-tests/__snapshots__/icon-element-variations/icon-element-all-variations-with-experiments--default--platform-sl-3p-preauth-better-hovercard-killswitch-true-platform-sl-3p-preauth-better-hovercard-false.png +3 -0
  27. package/dist/es2019/__tests__/vr-tests/__snapshots__/icon-element-variations/icon-element-all-variations-with-experiments--default--platform-sl-3p-preauth-better-hovercard-killswitch-true-platform-sl-3p-preauth-better-hovercard-true.png +3 -0
  28. package/dist/es2019/__tests__/vr-tests/__snapshots__/inline-card/inline-card-resolved-view-with-rovo-actions-button-treatment---default.png +3 -0
  29. package/dist/es2019/state/hooks/use-inline-action-nudge-experiment/index.js +42 -0
  30. package/dist/es2019/utils/analytics/analytics.js +1 -1
  31. package/dist/es2019/utils/index.js +2 -1
  32. package/dist/es2019/view/EmbedModal/components/link-info/index.compiled.css +1 -1
  33. package/dist/es2019/view/EmbedModal/components/link-info/index.js +1 -109
  34. package/dist/es2019/view/FlexibleCard/components/container/hover-card-control/index.js +7 -2
  35. package/dist/es2019/view/FlexibleCard/components/elements/common/base-lozenge-element/lozenge-action/lozenge-action-item/index.js +14 -13
  36. package/dist/es2019/view/HoverCard/components/HoverCardComponent.js +6 -1
  37. package/dist/es2019/view/InlineCard/ResolvedView/InlineCardResolvedViewFunctional.js +57 -2
  38. package/dist/es2019/view/InlineCard/common/rovo-actions-button/index.js +9 -74
  39. package/dist/es2019/view/LinkUrl/index.js +1 -1
  40. package/dist/esm/__tests__/vr-tests/__snapshots__/embed-modal/renders-embed-modal-with-confluence-icon--default--navx-1895-new-logo-design-false.png +2 -2
  41. package/dist/esm/__tests__/vr-tests/__snapshots__/embed-modal/renders-embed-modal-with-confluence-icon--default--navx-1895-new-logo-design-true.png +2 -2
  42. package/dist/esm/__tests__/vr-tests/__snapshots__/embed-modal/renders-embed-modal-with-flexible-ui-icon--default.png +2 -2
  43. package/dist/esm/__tests__/vr-tests/__snapshots__/icon-element-variations/icon-element-all-variations-with-experiments--default--platform-sl-3p-preauth-better-hovercard-killswitch-false-platform-sl-3p-preauth-better-hovercard-false.png +3 -0
  44. package/dist/esm/__tests__/vr-tests/__snapshots__/icon-element-variations/icon-element-all-variations-with-experiments--default--platform-sl-3p-preauth-better-hovercard-killswitch-false-platform-sl-3p-preauth-better-hovercard-true.png +3 -0
  45. package/dist/esm/__tests__/vr-tests/__snapshots__/icon-element-variations/icon-element-all-variations-with-experiments--default--platform-sl-3p-preauth-better-hovercard-killswitch-true-platform-sl-3p-preauth-better-hovercard-false.png +3 -0
  46. package/dist/esm/__tests__/vr-tests/__snapshots__/icon-element-variations/icon-element-all-variations-with-experiments--default--platform-sl-3p-preauth-better-hovercard-killswitch-true-platform-sl-3p-preauth-better-hovercard-true.png +3 -0
  47. package/dist/esm/__tests__/vr-tests/__snapshots__/inline-card/inline-card-resolved-view-with-rovo-actions-button-treatment---default.png +3 -0
  48. package/dist/esm/state/hooks/use-inline-action-nudge-experiment/index.js +42 -0
  49. package/dist/esm/utils/analytics/analytics.js +1 -1
  50. package/dist/esm/utils/index.js +3 -0
  51. package/dist/esm/view/EmbedModal/components/link-info/index.compiled.css +1 -1
  52. package/dist/esm/view/EmbedModal/components/link-info/index.js +3 -114
  53. package/dist/esm/view/FlexibleCard/components/container/hover-card-control/index.js +7 -2
  54. package/dist/esm/view/FlexibleCard/components/elements/common/base-lozenge-element/lozenge-action/lozenge-action-item/index.js +14 -13
  55. package/dist/esm/view/HoverCard/components/HoverCardComponent.js +6 -1
  56. package/dist/esm/view/InlineCard/ResolvedView/InlineCardResolvedViewFunctional.js +58 -2
  57. package/dist/esm/view/InlineCard/common/rovo-actions-button/index.js +9 -98
  58. package/dist/esm/view/LinkUrl/index.js +1 -1
  59. package/dist/types/state/hooks/use-inline-action-nudge-experiment/index.d.ts +21 -0
  60. package/dist/types/utils/index.d.ts +1 -0
  61. package/dist/types/view/EmbedModal/components/link-info/index.d.ts +2 -7
  62. package/dist/types/view/InlineCard/ResolvedView/InlineCardResolvedViewFunctional.d.ts +3 -1
  63. package/dist/types/view/InlineCard/common/rovo-actions-button/index.d.ts +1 -8
  64. package/dist/types-ts4.5/state/hooks/use-inline-action-nudge-experiment/index.d.ts +21 -0
  65. package/dist/types-ts4.5/utils/index.d.ts +1 -0
  66. package/dist/types-ts4.5/view/EmbedModal/components/link-info/index.d.ts +2 -7
  67. package/dist/types-ts4.5/view/InlineCard/ResolvedView/InlineCardResolvedViewFunctional.d.ts +3 -1
  68. package/dist/types-ts4.5/view/InlineCard/common/rovo-actions-button/index.d.ts +1 -8
  69. package/package.json +12 -9
  70. package/dist/cjs/view/InlineCard/common/rovo-actions-button/index.compiled.css +0 -15
  71. package/dist/es2019/view/InlineCard/common/rovo-actions-button/index.compiled.css +0 -15
  72. package/dist/esm/view/InlineCard/common/rovo-actions-button/index.compiled.css +0 -15
@@ -9,8 +9,6 @@ import VidFullScreenOnIcon from '@atlaskit/icon/core/fullscreen-enter';
9
9
  import FullscreenExitIcon from '@atlaskit/icon/core/fullscreen-exit';
10
10
  import ShortcutIcon from '@atlaskit/icon/core/link-external';
11
11
  import { CloseButton, useModal } from '@atlaskit/modal-dialog';
12
- import { fg } from '@atlaskit/platform-feature-flags';
13
- import { componentWithFG } from '@atlaskit/platform-feature-flags-react';
14
12
  import Tooltip from '@atlaskit/tooltip';
15
13
  import { messages } from '../../../../messages';
16
14
  import { Icon } from '../../../common/Icon';
@@ -24,7 +22,6 @@ var iconSize = '24px';
24
22
  // Specify flex ui icon selector to increase specificity weight to 0-2-1.
25
23
  var iconCss = null;
26
24
  var titleCss = null;
27
- var actionCss = null;
28
25
  var buttonGroupCss = null;
29
26
  var listItemCSS = null;
30
27
  var resizeButtonCss = null;
@@ -41,113 +38,6 @@ var LinkInfo = function LinkInfo(_ref) {
41
38
  onClose = _useModal.onClose;
42
39
  var _useIntl = useIntl(),
43
40
  formatMessage = _useIntl.formatMessage;
44
- var downloadButton = useMemo(function () {
45
- if (onDownloadButtonClick) {
46
- return /*#__PURE__*/React.createElement(LinkInfoButton, {
47
- content: /*#__PURE__*/React.createElement(FormattedMessage, messages.download),
48
- icon: function icon() {
49
- return /*#__PURE__*/React.createElement(DownloadIcon, {
50
- label: fg('platform_navx_flex_card_status_dropdown_a11y_fix') ? '' : messages.download.defaultMessage,
51
- spacing: "spacious",
52
- color: "currentColor"
53
- });
54
- },
55
- label: messages.download,
56
- onClick: onDownloadButtonClick,
57
- testId: "".concat(testId, "-download")
58
- });
59
- }
60
- }, [onDownloadButtonClick, testId]);
61
- var urlButton = useMemo(function () {
62
- if (onViewButtonClick) {
63
- var content = providerName ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(FormattedMessage, messages.viewIn), " ", providerName) : /*#__PURE__*/React.createElement(FormattedMessage, messages.viewOriginal);
64
- return /*#__PURE__*/React.createElement(LinkInfoButton, {
65
- content: content,
66
- icon: function icon() {
67
- return /*#__PURE__*/React.createElement(ShortcutIcon, {
68
- label: fg('platform_navx_flex_card_status_dropdown_a11y_fix') ? '' : messages.viewOriginal.defaultMessage,
69
- spacing: "spacious",
70
- color: "currentColor"
71
- });
72
- },
73
- label: messages.viewOriginal,
74
- onClick: onViewButtonClick,
75
- testId: "".concat(testId, "-url"),
76
- role: 'link',
77
- "aria-label": messages.viewOriginal
78
- });
79
- }
80
- }, [onViewButtonClick, providerName, testId]);
81
- var sizeButton = useMemo(function () {
82
- var isFullScreen = size === MAX_MODAL_SIZE;
83
- var message = isFullScreen ? messages.preview_min_size : messages.preview_max_size;
84
- var _icon = isFullScreen ? /*#__PURE__*/React.createElement(FullscreenExitIcon, {
85
- label: fg('platform_navx_flex_card_status_dropdown_a11y_fix') ? '' : message.defaultMessage,
86
- spacing: "spacious",
87
- color: "currentColor"
88
- }) : /*#__PURE__*/React.createElement(VidFullScreenOnIcon, {
89
- label: fg('platform_navx_flex_card_status_dropdown_a11y_fix') ? '' : message.defaultMessage,
90
- spacing: "spacious",
91
- color: "currentColor"
92
- });
93
- return (
94
- /*#__PURE__*/
95
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
96
- React.createElement("span", {
97
- className: "smart-link-resize-button"
98
- }, /*#__PURE__*/React.createElement(LinkInfoButton, {
99
- content: /*#__PURE__*/React.createElement(FormattedMessage, message),
100
- icon: function icon() {
101
- return _icon;
102
- },
103
- label: message,
104
- onClick: onResizeButtonClick,
105
- testId: "".concat(testId, "-resize")
106
- }))
107
- );
108
- }, [onResizeButtonClick, size, testId]);
109
- return /*#__PURE__*/React.createElement("div", {
110
- className: ax(["_zulpu2gc _1e0c1txw _19bv1ejb _u5f31ejb _ca0q1ejb _n3tdpxbi _1wpz1fhb _4t3i1tcg"])
111
- }, icon && /*#__PURE__*/React.createElement("div", {
112
- "data-testid": "".concat(testId, "-icon"),
113
- className: ax(["_4t3i1tcg _gire1tcg _yrry1tcg _1bnm1tcg _bna71tcg _1xjx1tcg _17521tcg _1tke1tcg _x9xj1tcg _v5981tcg _z15s1tcg _qci81tcg _15iz1tcg _erub1tcg _c71l1tcg _1q121tcg _2s1x1tcg _1rh41tcg _19l31tcg _1pr21tcg _1u5t1tcg _1bsb1tcg _1xyl1tcg _1h1b1tcg _prfw1tcg _mezj1tcg _e2oo1tcg _w8l51tcg _1ul91tcg _1ekg1tcg _jbhf1tcg _11hh1tcg _1rg21tcg _q7cv1tcg _xwbj1tcg _p12f1tcg _1mj01tcg _1r9c1tcg _1xch1tcg _rtys1tcg _b8nk1tcg _4x201tcg"])
114
- }, /*#__PURE__*/React.createElement(Icon, icon)), /*#__PURE__*/React.createElement("div", {
115
- className: ax(["_16jlkb7n _1o9zidpf _i0dlf1ug _1e0c1txw _2lx21bp4 _1bah1h6o _1wpz1fhb"])
116
- }, /*#__PURE__*/React.createElement(Heading, {
117
- as: "h2",
118
- size: "small",
119
- color: "color.text",
120
- testId: "".concat(testId, "-title")
121
- }, title), /*#__PURE__*/React.createElement("span", {
122
- tabIndex: 0,
123
- role: "button",
124
- "aria-hidden": true
125
- })), /*#__PURE__*/React.createElement("div", {
126
- className: ax(["_16jlidpf _1o9zidpf _i0dl1wug _zulp1b66 _1e0c1txw _3kllglyw"])
127
- }, downloadButton, urlButton, sizeButton, /*#__PURE__*/React.createElement(Tooltip, {
128
- content: /*#__PURE__*/React.createElement(FormattedMessage, messages.preview_close),
129
- hideTooltipOnClick: true,
130
- tag: "span",
131
- testId: "".concat(testId, "-close-tooltip")
132
- }, /*#__PURE__*/React.createElement(CloseButton, {
133
- onClick: onClose,
134
- label: formatMessage(messages.preview_close),
135
- testId: testId
136
- }))));
137
- };
138
- var LinkInfoNew = function LinkInfoNew(_ref2) {
139
- var icon = _ref2.icon,
140
- providerName = _ref2.providerName,
141
- onDownloadButtonClick = _ref2.onDownloadButtonClick,
142
- onResizeButtonClick = _ref2.onResizeButtonClick,
143
- onViewButtonClick = _ref2.onViewButtonClick,
144
- size = _ref2.size,
145
- testId = _ref2.testId,
146
- title = _ref2.title;
147
- var _useModal2 = useModal(),
148
- onClose = _useModal2.onClose;
149
- var _useIntl2 = useIntl(),
150
- formatMessage = _useIntl2.formatMessage;
151
41
  var downloadButton = useMemo(function () {
152
42
  return /*#__PURE__*/React.createElement(LinkInfoButton, {
153
43
  content: /*#__PURE__*/React.createElement(FormattedMessage, messages.download),
@@ -186,7 +76,7 @@ var LinkInfoNew = function LinkInfoNew(_ref2) {
186
76
  var sizeButton = useMemo(function () {
187
77
  var isFullScreen = size === MAX_MODAL_SIZE;
188
78
  var message = isFullScreen ? messages.preview_min_size : messages.preview_max_size;
189
- var _icon2 = isFullScreen ? /*#__PURE__*/React.createElement(FullscreenExitIcon, {
79
+ var _icon = isFullScreen ? /*#__PURE__*/React.createElement(FullscreenExitIcon, {
190
80
  label: "",
191
81
  spacing: "spacious",
192
82
  color: "currentColor"
@@ -198,7 +88,7 @@ var LinkInfoNew = function LinkInfoNew(_ref2) {
198
88
  return /*#__PURE__*/React.createElement(LinkInfoButton, {
199
89
  content: /*#__PURE__*/React.createElement(FormattedMessage, message),
200
90
  icon: function icon() {
201
- return _icon2;
91
+ return _icon;
202
92
  },
203
93
  label: message,
204
94
  onClick: onResizeButtonClick,
@@ -239,5 +129,4 @@ var LinkInfoNew = function LinkInfoNew(_ref2) {
239
129
  testId: testId
240
130
  })))));
241
131
  };
242
- var _default_1 = componentWithFG('platform_navx_sl_a11y_embed_modal', LinkInfoNew, LinkInfo);
243
- export default _default_1;
132
+ export default LinkInfo;
@@ -1,6 +1,9 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
1
2
  import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
2
3
  import React, { useCallback, useEffect, useRef, useState } from 'react';
4
+ import { fg } from '@atlaskit/platform-feature-flags';
3
5
  import { ElementName } from '../../../../../constants';
6
+ import { noop } from '../../../../../utils';
4
7
  import { HoverCard } from '../../../../HoverCard';
5
8
  var FLEXIBLE_HOVER_CARD_CAN_OPEN_DELAY = 100;
6
9
  var HoverCardControl = function HoverCardControl(_ref) {
@@ -60,12 +63,14 @@ var HoverCardControl = function HoverCardControl(_ref) {
60
63
  actionOptions: actionOptions,
61
64
  url: url,
62
65
  hoverPreviewOptions: hoverPreviewOptions
63
- }, /*#__PURE__*/React.createElement("span", {
66
+ }, /*#__PURE__*/React.createElement("span", _extends({}, fg('platform_sl_a11y_enghealth_46829') ? {
67
+ onBlur: noop
68
+ } : undefined, {
64
69
  // eslint-disable-next-line @atlassian/a11y/mouse-events-have-key-events
65
70
  onMouseLeave: onMouseLeave,
66
71
  onMouseMove: onMouseMove,
67
72
  "data-testid": "".concat(testId, "-hover-card-wrapper"),
68
73
  role: 'presentation'
69
- }, children));
74
+ }), children));
70
75
  };
71
76
  export default HoverCardControl;
@@ -1,6 +1,8 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
1
2
  import React, { useCallback } from 'react';
2
3
  import { DropdownItem } from '@atlaskit/dropdown-menu';
3
4
  import Lozenge from '@atlaskit/lozenge';
5
+ import { fg } from '@atlaskit/platform-feature-flags';
4
6
  var LozengeActionItem = function LozengeActionItem(_ref) {
5
7
  var appearance = _ref.appearance,
6
8
  id = _ref.id,
@@ -19,19 +21,18 @@ var LozengeActionItem = function LozengeActionItem(_ref) {
19
21
  var _e$currentTarget;
20
22
  (_e$currentTarget = e.currentTarget) === null || _e$currentTarget === void 0 || (_e$currentTarget = _e$currentTarget.firstElementChild) === null || _e$currentTarget === void 0 || _e$currentTarget.focus();
21
23
  }, []);
22
- return (
23
- /*#__PURE__*/
24
+ return /*#__PURE__*/React.createElement("span", _extends({}, fg('platform_sl_a11y_enghealth_46829') ? {
25
+ onFocus: handleMouseEnter
26
+ } : undefined, {
24
27
  // eslint-disable-next-line @atlassian/a11y/mouse-events-have-key-events
25
- React.createElement("span", {
26
- onMouseEnter: handleMouseEnter,
27
- role: "presentation"
28
- }, /*#__PURE__*/React.createElement(DropdownItem, {
29
- onClick: handleClick,
30
- testId: testId
31
- }, /*#__PURE__*/React.createElement(Lozenge, {
32
- appearance: appearance,
33
- isBold: true
34
- }, text)))
35
- );
28
+ onMouseEnter: handleMouseEnter,
29
+ role: "presentation"
30
+ }), /*#__PURE__*/React.createElement(DropdownItem, {
31
+ onClick: handleClick,
32
+ testId: testId
33
+ }, /*#__PURE__*/React.createElement(Lozenge, {
34
+ appearance: appearance,
35
+ isBold: true
36
+ }, text)));
36
37
  };
37
38
  export default LozengeActionItem;
@@ -10,6 +10,7 @@ import { ActionName, CardDisplay } from '../../../constants';
10
10
  import { useSmartCardActions } from '../../../state/actions';
11
11
  import { useSmartLinkRenderers } from '../../../state/renderers';
12
12
  import { useSmartCardState as useLinkState } from '../../../state/store';
13
+ import { noop } from '../../../utils';
13
14
  import { SmartLinkAnalyticsContext } from '../../../utils/analytics/SmartLinkAnalyticsContext';
14
15
  import { createCustomPopupContainer } from '../components/CustomPopupContainer';
15
16
  import HoverCardContent from '../components/HoverCardContent';
@@ -250,7 +251,11 @@ export var HoverCardComponent = function HoverCardComponent(_ref) {
250
251
  "data-testid": HOVER_CARD_TRIGGER_WRAPPER
251
252
  }, editorExperiment('platform_editor_preview_panel_linking_exp', true) ? {
252
253
  className: HOVER_CARD_TRIGGER_WRAPPER
253
- } : {}), children));
254
+ } : {}, fg('platform_sl_a11y_enghealth_46829') ? {
255
+ onFocus: noop,
256
+ onBlur: noop,
257
+ role: 'none'
258
+ } : undefined), children));
254
259
  }, [children, initHideCard, initShowCard, onChildClick, onContextMenuClick, setMousePosition, handleKeyDown]);
255
260
  var popupComponent = useMemo(
256
261
  // Within the Popup component, if shouldRenderToParent, the zIndex prop is ignored
@@ -1,9 +1,12 @@
1
1
  import React from 'react';
2
+ import { componentWithFG } from '@atlaskit/platform-feature-flags-react';
3
+ import useInlineActionNudgeExperiment from '../../../state/hooks/use-inline-action-nudge-experiment';
2
4
  import { HoverCard } from '../../HoverCard';
5
+ import { RovoActionsButton } from '../common/rovo-actions-button';
3
6
  import { Frame } from '../Frame';
4
7
  import { IconAndTitleLayout } from '../IconAndTitleLayout';
5
8
  import { renderLozenge } from './renderLozenge';
6
- export function InlineCardResolvedViewFunctional(_ref) {
9
+ export function InlineCardResolvedViewBase(_ref) {
7
10
  var id = _ref.id,
8
11
  _ref$title = _ref.title,
9
12
  title = _ref$title === void 0 ? '' : _ref$title,
@@ -48,4 +51,57 @@ export function InlineCardResolvedViewFunctional(_ref) {
48
51
  actionOptions: actionOptions,
49
52
  hoverPreviewOptions: hoverPreviewOptions
50
53
  }, frame);
51
- }
54
+ }
55
+ export function InlineCardResolvedViewFunctionalWithRovoActionsButton(_ref2) {
56
+ var id = _ref2.id,
57
+ _ref2$title = _ref2.title,
58
+ title = _ref2$title === void 0 ? '' : _ref2$title,
59
+ isSelected = _ref2.isSelected,
60
+ isHovered = _ref2.isHovered,
61
+ onClick = _ref2.onClick,
62
+ icon = _ref2.icon,
63
+ link = _ref2.link,
64
+ _ref2$testId = _ref2.testId,
65
+ testId = _ref2$testId === void 0 ? 'inline-card-resolved-view' : _ref2$testId,
66
+ titleTextColor = _ref2.titleTextColor,
67
+ titlePrefix = _ref2.titlePrefix,
68
+ _ref2$showHoverPrevie = _ref2.showHoverPreview,
69
+ showHoverPreview = _ref2$showHoverPrevie === void 0 ? false : _ref2$showHoverPrevie,
70
+ hoverPreviewOptions = _ref2.hoverPreviewOptions,
71
+ actionOptions = _ref2.actionOptions,
72
+ truncateInline = _ref2.truncateInline,
73
+ type = _ref2.type,
74
+ hideIconLoadingSkeleton = _ref2.hideIconLoadingSkeleton,
75
+ lozenge = _ref2.lozenge;
76
+ var _useInlineActionNudge = useInlineActionNudgeExperiment(link),
77
+ isEnabled = _useInlineActionNudge.isEnabled;
78
+
79
+ // TODO https://hello.jira.atlassian.cloud/browse/NAVX-4436: fire analytics with cohort
80
+ var frame = /*#__PURE__*/React.createElement(Frame, {
81
+ testId: testId,
82
+ link: link,
83
+ isSelected: isSelected,
84
+ isHovered: isHovered,
85
+ onClick: onClick,
86
+ truncateInline: truncateInline
87
+ }, /*#__PURE__*/React.createElement(IconAndTitleLayout, {
88
+ emoji: titlePrefix,
89
+ icon: icon,
90
+ title: title,
91
+ titleTextColor: titleTextColor,
92
+ type: type,
93
+ hideIconLoadingSkeleton: hideIconLoadingSkeleton
94
+ }), renderLozenge(lozenge), isEnabled && link && /*#__PURE__*/React.createElement(RovoActionsButton, {
95
+ testId: "".concat(testId, "-rovo-actions-button")
96
+ }));
97
+ if (!showHoverPreview || !link) {
98
+ return frame;
99
+ }
100
+ return /*#__PURE__*/React.createElement(HoverCard, {
101
+ id: id,
102
+ url: link,
103
+ actionOptions: actionOptions,
104
+ hoverPreviewOptions: hoverPreviewOptions
105
+ }, frame);
106
+ }
107
+ export var InlineCardResolvedViewFunctional = componentWithFG('rovogrowth-640-inline-action-nudge-fg', InlineCardResolvedViewFunctionalWithRovoActionsButton, InlineCardResolvedViewBase);
@@ -1,101 +1,12 @@
1
- /* index.tsx generated by @compiled/babel-plugin v0.39.1 */
2
- import _extends from "@babel/runtime/helpers/extends";
3
- import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
4
- import "./index.compiled.css";
5
- import { ax, ix } from "@compiled/react/runtime";
6
- import React, { useState } from 'react';
7
- import { useIntl } from 'react-intl-next';
8
- import { cx } from '@atlaskit/css';
1
+ import React from 'react';
9
2
  import RovoChatIcon from '@atlaskit/icon/core/rovo-chat';
10
- import Popup from '@atlaskit/popup';
11
- import { Box } from '@atlaskit/primitives/compiled';
12
- import { messages } from '../../../../messages';
13
- import AIPrism from '../../../common/ai-prism';
14
- import { ActionButton } from '../action-button';
15
- import { RovoPostAuthActionsModal } from '../rovo-post-auth-actions-modal';
16
- var styles = {
17
- wrapper: "_kqswh2mm _1e0c1o8l",
18
- expanded: "_kqswstnw _154iidpf _1xi2idpf _1e0c1nu9 _o5721q9c _1pbykb7n",
19
- expandedText: "_1reo15vq _18m915vq _v564hlhx _1e0c1o8l _p12fidpf _s7n4jp4b _o5721q9c",
20
- expandedTextVisible: "_p12fuuw1 _u5f31b66"
21
- };
22
3
  export var RovoActionsButton = function RovoActionsButton(_ref) {
23
- var onClick = _ref.onClick,
24
- testId = _ref.testId,
25
- _ref$title = _ref.title,
26
- title = _ref$title === void 0 ? '' : _ref$title,
27
- _ref$url = _ref.url,
28
- url = _ref$url === void 0 ? '' : _ref$url;
29
- var _useState = useState(false),
30
- _useState2 = _slicedToArray(_useState, 2),
31
- isHovered = _useState2[0],
32
- setIsHovered = _useState2[1];
33
- var _useState3 = useState(false),
34
- _useState4 = _slicedToArray(_useState3, 2),
35
- isPopupOpen = _useState4[0],
36
- setIsPopupOpen = _useState4[1];
37
- var _useIntl = useIntl(),
38
- formatMessage = _useIntl.formatMessage;
39
- var handleClick = function handleClick(e) {
40
- e.preventDefault();
41
- e.stopPropagation();
42
- setIsPopupOpen(function (prev) {
43
- return !prev;
44
- });
45
- onClick === null || onClick === void 0 || onClick(e);
46
- };
47
- return /*#__PURE__*/React.createElement(Popup, {
48
- isOpen: isPopupOpen,
49
- onClose: function onClose() {
50
- return setIsPopupOpen(false);
51
- },
52
- placement: "right-start",
53
- content: function content() {
54
- return /*#__PURE__*/React.createElement(AIPrism, {
55
- isVisible: true,
56
- isMoving: true,
57
- isGlowing: true
58
- }, /*#__PURE__*/React.createElement(RovoPostAuthActionsModal, {
59
- title: title,
60
- url: url,
61
- testId: testId && "".concat(testId, "-popup")
62
- }));
63
- },
64
- trigger: function trigger(triggerProps) {
65
- return /*#__PURE__*/React.createElement(Box, {
66
- xcss: styles.wrapper,
67
- onMouseEnter: function onMouseEnter() {
68
- return setIsHovered(true);
69
- },
70
- onMouseLeave: function onMouseLeave() {
71
- return setIsHovered(false);
72
- },
73
- onFocus: function onFocus() {
74
- return setIsHovered(true);
75
- },
76
- onBlur: function onBlur() {
77
- return setIsHovered(false);
78
- }
79
- }, /*#__PURE__*/React.createElement(ActionButton, _extends({
80
- onClick: handleClick,
81
- viewType: "action",
82
- testId: testId
83
- }, triggerProps), /*#__PURE__*/React.createElement(RovoChatIcon, {
84
- label: "Rovo",
85
- color: "var(--ds-icon-inverse, #FFFFFF)",
86
- size: "small"
87
- })), /*#__PURE__*/React.createElement(Box, {
88
- xcss: styles.expanded
89
- }, /*#__PURE__*/React.createElement(ActionButton, _extends({
90
- onClick: handleClick,
91
- viewType: "action"
92
- }, triggerProps), /*#__PURE__*/React.createElement(Box, {
93
- xcss: cx(styles.expandedText, isHovered && styles.expandedTextVisible)
94
- }, formatMessage(messages.rovo_actions_explore)), /*#__PURE__*/React.createElement(RovoChatIcon, {
95
- label: "Rovo",
96
- color: "var(--ds-icon-inverse, #FFFFFF)",
97
- size: "small"
98
- }))));
99
- }
100
- });
4
+ var testId = _ref.testId;
5
+ return /*#__PURE__*/React.createElement("span", {
6
+ "data-testid": testId
7
+ }, /*#__PURE__*/React.createElement(RovoChatIcon, {
8
+ label: "Rovo",
9
+ color: "var(--ds-icon-inverse, #FFFFFF)",
10
+ size: "small"
11
+ }));
101
12
  };
@@ -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.31.8",
18
+ packageVersion: "43.32.0",
19
19
  componentName: 'linkUrl'
20
20
  };
21
21
  var Anchor = withLinkClickedEvent('a');
@@ -0,0 +1,21 @@
1
+ export interface InlineActionNudgeExperiment {
2
+ /**
3
+ * True when the user is in the treatment cohort and should see the
4
+ * inline action nudge UI. All treatment surfaces should gate on this.
5
+ */
6
+ isEnabled: boolean;
7
+ }
8
+ /**
9
+ * Returns whether the rovogrowth_640_inline_action_nudge experiment
10
+ * is enabled for the current user and link context.
11
+ *
12
+ * All eligibility criteria are consolidated here:
13
+ * 1. Rovo chat must be enabled for the tenant.
14
+ * 2. The extension key must not be excluded (Figma and Google links are excluded).
15
+ * 3. The experiment value must be true (via tmp-editor-statsig).
16
+ *
17
+ * The extension key is derived from the card store via the resolved URL,
18
+ * so callers don't need to thread it as a prop.
19
+ */
20
+ declare const useInlineActionNudgeExperiment: (url?: string) => InlineActionNudgeExperiment;
21
+ export default useInlineActionNudgeExperiment;
@@ -36,3 +36,4 @@ export declare const openUrl: (url?: string) => Promise<void>;
36
36
  export declare const getPreviewUrlWithTheme: (previewUrl: string, themeState: Partial<ActiveThemeState>) => string;
37
37
  export declare const isIconSizeLarge: (size?: SmartLinkSize) => boolean | undefined;
38
38
  export declare const isProfileType: (type?: string[]) => boolean;
39
+ export declare const noop: () => undefined;
@@ -1,8 +1,3 @@
1
- /**
2
- * @jsxRuntime classic
3
- * @jsx jsx
4
- */
5
- import React from 'react';
6
1
  import { type LinkInfoProps } from './types';
7
- declare const _default_1: React.FC<LinkInfoProps>;
8
- export default _default_1;
2
+ declare const LinkInfo: ({ icon, providerName, onDownloadButtonClick, onResizeButtonClick, onViewButtonClick, size, testId, title, }: LinkInfoProps) => JSX.Element;
3
+ export default LinkInfo;
@@ -1,3 +1,5 @@
1
1
  import React from 'react';
2
2
  import { type InlineCardResolvedViewFunctionalProps } from './types';
3
- export declare function InlineCardResolvedViewFunctional({ id, title, isSelected, isHovered, onClick, icon, link, testId, titleTextColor, titlePrefix, showHoverPreview, hoverPreviewOptions, actionOptions, truncateInline, type, hideIconLoadingSkeleton, lozenge, }: InlineCardResolvedViewFunctionalProps): React.JSX.Element;
3
+ export declare function InlineCardResolvedViewBase({ id, title, isSelected, isHovered, onClick, icon, link, testId, titleTextColor, titlePrefix, showHoverPreview, hoverPreviewOptions, actionOptions, truncateInline, type, hideIconLoadingSkeleton, lozenge, }: InlineCardResolvedViewFunctionalProps): React.JSX.Element;
4
+ export declare function InlineCardResolvedViewFunctionalWithRovoActionsButton({ id, title, isSelected, isHovered, onClick, icon, link, testId, titleTextColor, titlePrefix, showHoverPreview, hoverPreviewOptions, actionOptions, truncateInline, type, hideIconLoadingSkeleton, lozenge, }: InlineCardResolvedViewFunctionalProps): React.JSX.Element;
5
+ export declare const InlineCardResolvedViewFunctional: React.FC<InlineCardResolvedViewFunctionalProps>;
@@ -1,12 +1,5 @@
1
- /**
2
- * @jsxRuntime classic
3
- * @jsx jsx
4
- */
5
1
  import React from 'react';
6
2
  export interface RovoActionsButtonProps {
7
- onClick?: (e: React.MouseEvent<HTMLElement>) => void;
8
3
  testId?: string;
9
- title?: string;
10
- url?: string;
11
4
  }
12
- export declare const RovoActionsButton: ({ onClick, testId, title, url, }: RovoActionsButtonProps) => JSX.Element;
5
+ export declare const RovoActionsButton: ({ testId }: RovoActionsButtonProps) => React.JSX.Element;
@@ -0,0 +1,21 @@
1
+ export interface InlineActionNudgeExperiment {
2
+ /**
3
+ * True when the user is in the treatment cohort and should see the
4
+ * inline action nudge UI. All treatment surfaces should gate on this.
5
+ */
6
+ isEnabled: boolean;
7
+ }
8
+ /**
9
+ * Returns whether the rovogrowth_640_inline_action_nudge experiment
10
+ * is enabled for the current user and link context.
11
+ *
12
+ * All eligibility criteria are consolidated here:
13
+ * 1. Rovo chat must be enabled for the tenant.
14
+ * 2. The extension key must not be excluded (Figma and Google links are excluded).
15
+ * 3. The experiment value must be true (via tmp-editor-statsig).
16
+ *
17
+ * The extension key is derived from the card store via the resolved URL,
18
+ * so callers don't need to thread it as a prop.
19
+ */
20
+ declare const useInlineActionNudgeExperiment: (url?: string) => InlineActionNudgeExperiment;
21
+ export default useInlineActionNudgeExperiment;
@@ -36,3 +36,4 @@ export declare const openUrl: (url?: string) => Promise<void>;
36
36
  export declare const getPreviewUrlWithTheme: (previewUrl: string, themeState: Partial<ActiveThemeState>) => string;
37
37
  export declare const isIconSizeLarge: (size?: SmartLinkSize) => boolean | undefined;
38
38
  export declare const isProfileType: (type?: string[]) => boolean;
39
+ export declare const noop: () => undefined;
@@ -1,8 +1,3 @@
1
- /**
2
- * @jsxRuntime classic
3
- * @jsx jsx
4
- */
5
- import React from 'react';
6
1
  import { type LinkInfoProps } from './types';
7
- declare const _default_1: React.FC<LinkInfoProps>;
8
- export default _default_1;
2
+ declare const LinkInfo: ({ icon, providerName, onDownloadButtonClick, onResizeButtonClick, onViewButtonClick, size, testId, title, }: LinkInfoProps) => JSX.Element;
3
+ export default LinkInfo;
@@ -1,3 +1,5 @@
1
1
  import React from 'react';
2
2
  import { type InlineCardResolvedViewFunctionalProps } from './types';
3
- export declare function InlineCardResolvedViewFunctional({ id, title, isSelected, isHovered, onClick, icon, link, testId, titleTextColor, titlePrefix, showHoverPreview, hoverPreviewOptions, actionOptions, truncateInline, type, hideIconLoadingSkeleton, lozenge, }: InlineCardResolvedViewFunctionalProps): React.JSX.Element;
3
+ export declare function InlineCardResolvedViewBase({ id, title, isSelected, isHovered, onClick, icon, link, testId, titleTextColor, titlePrefix, showHoverPreview, hoverPreviewOptions, actionOptions, truncateInline, type, hideIconLoadingSkeleton, lozenge, }: InlineCardResolvedViewFunctionalProps): React.JSX.Element;
4
+ export declare function InlineCardResolvedViewFunctionalWithRovoActionsButton({ id, title, isSelected, isHovered, onClick, icon, link, testId, titleTextColor, titlePrefix, showHoverPreview, hoverPreviewOptions, actionOptions, truncateInline, type, hideIconLoadingSkeleton, lozenge, }: InlineCardResolvedViewFunctionalProps): React.JSX.Element;
5
+ export declare const InlineCardResolvedViewFunctional: React.FC<InlineCardResolvedViewFunctionalProps>;
@@ -1,12 +1,5 @@
1
- /**
2
- * @jsxRuntime classic
3
- * @jsx jsx
4
- */
5
1
  import React from 'react';
6
2
  export interface RovoActionsButtonProps {
7
- onClick?: (e: React.MouseEvent<HTMLElement>) => void;
8
3
  testId?: string;
9
- title?: string;
10
- url?: string;
11
4
  }
12
- export declare const RovoActionsButton: ({ onClick, testId, title, url, }: RovoActionsButtonProps) => JSX.Element;
5
+ export declare const RovoActionsButton: ({ testId }: RovoActionsButtonProps) => React.JSX.Element;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atlaskit/smart-card",
3
- "version": "43.31.9",
3
+ "version": "43.32.0",
4
4
  "description": "Smart card component",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org/"
@@ -72,9 +72,9 @@
72
72
  "@atlaskit/platform-feature-flags": "^1.1.0",
73
73
  "@atlaskit/platform-feature-flags-react": "^0.4.0",
74
74
  "@atlaskit/popup": "^4.16.0",
75
- "@atlaskit/primitives": "^18.1.0",
76
- "@atlaskit/react-ufo": "^5.12.0",
77
- "@atlaskit/rovo-triggers": "^5.35.0",
75
+ "@atlaskit/primitives": "^19.0.0",
76
+ "@atlaskit/react-ufo": "^5.13.0",
77
+ "@atlaskit/rovo-triggers": "^5.37.0",
78
78
  "@atlaskit/section-message": "^8.12.0",
79
79
  "@atlaskit/select": "^21.10.0",
80
80
  "@atlaskit/spinner": "^19.1.0",
@@ -83,8 +83,8 @@
83
83
  "@atlaskit/textfield": "^8.3.0",
84
84
  "@atlaskit/theme": "^23.0.0",
85
85
  "@atlaskit/tile": "^1.0.0",
86
- "@atlaskit/tmp-editor-statsig": "^58.0.0",
87
- "@atlaskit/tokens": "^12.0.0",
86
+ "@atlaskit/tmp-editor-statsig": "^59.1.0",
87
+ "@atlaskit/tokens": "^13.0.0",
88
88
  "@atlaskit/tooltip": "^21.1.0",
89
89
  "@atlaskit/ufo": "^0.4.0",
90
90
  "@babel/runtime": "^7.0.0",
@@ -219,9 +219,6 @@
219
219
  "platform_navx_flex_card_status_dropdown_a11y_fix": {
220
220
  "type": "boolean"
221
221
  },
222
- "platform_navx_sl_a11y_embed_modal": {
223
- "type": "boolean"
224
- },
225
222
  "platform_navx_lp_invalid_url_error": {
226
223
  "type": "boolean"
227
224
  },
@@ -237,6 +234,9 @@
237
234
  "fix_hover_card_on_focus_a11y": {
238
235
  "type": "boolean"
239
236
  },
237
+ "platform_sl_a11y_enghealth_46829": {
238
+ "type": "boolean"
239
+ },
240
240
  "platform_sl_3p_preauth_better_hovercard_killswitch": {
241
241
  "type": "boolean"
242
242
  },
@@ -251,6 +251,9 @@
251
251
  },
252
252
  "smart-card-inline-resolved-view-refactor": {
253
253
  "type": "boolean"
254
+ },
255
+ "rovogrowth-640-inline-action-nudge-fg": {
256
+ "type": "boolean"
254
257
  }
255
258
  },
256
259
  "compassUnitTestMetricSourceId": "ari:cloud:compass:a436116f-02ce-4520-8fbb-7301462a1674:metric-source/c5751cc6-3513-4070-9deb-af31e86aed34/f74ef1bc-7240-4aac-9dc8-9dc43b502089"
@@ -1,15 +0,0 @@
1
-
2
- ._v564hlhx{transition:max-width .3s ease-in-out,padding-right .3s ease-in-out}._154iidpf{top:0}
3
- ._18m915vq{overflow-y:hidden}
4
- ._1e0c1nu9{display:inline}
5
- ._1e0c1o8l{display:inline-block}
6
- ._1pbykb7n{z-index:1}
7
- ._1reo15vq{overflow-x:hidden}
8
- ._1xi2idpf{right:0}
9
- ._kqswh2mm{position:relative}
10
- ._kqswstnw{position:absolute}
11
- ._o5721q9c{white-space:nowrap}
12
- ._p12fidpf{max-width:0}
13
- ._p12fuuw1{max-width:200px}
14
- ._s7n4jp4b{vertical-align:top}
15
- ._u5f31b66{padding-right:var(--ds-space-050,4px)}