@atlaskit/smart-card 34.6.2 → 34.6.3

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 (98) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/cjs/utils/analytics/analytics.js +1 -1
  3. package/dist/cjs/view/BlockCard/views/ResolvedView.compiled.css +1 -0
  4. package/dist/cjs/view/BlockCard/views/ResolvedView.js +2 -2
  5. package/dist/cjs/view/FlexibleCard/components/blocks/action-block/ActionBlockOld.js +116 -0
  6. package/dist/cjs/view/FlexibleCard/components/blocks/action-block/index.compiled.css +7 -0
  7. package/dist/cjs/view/FlexibleCard/components/blocks/action-block/index.js +21 -26
  8. package/dist/cjs/view/FlexibleCard/components/blocks/action-group/ActionGroupOld.js +147 -0
  9. package/dist/cjs/view/FlexibleCard/components/blocks/action-group/action-group-item/index.js +2 -8
  10. package/dist/cjs/view/FlexibleCard/components/blocks/action-group/index.compiled.css +4 -0
  11. package/dist/cjs/view/FlexibleCard/components/blocks/action-group/index.js +28 -32
  12. package/dist/cjs/view/FlexibleCard/components/blocks/ai-summary-block/feature-discovery/FeatureDiscoveryOld.js +71 -0
  13. package/dist/cjs/view/FlexibleCard/components/blocks/ai-summary-block/feature-discovery/index.compiled.css +4 -0
  14. package/dist/cjs/view/FlexibleCard/components/blocks/ai-summary-block/feature-discovery/index.js +30 -18
  15. package/dist/cjs/view/FlexibleCard/components/blocks/ai-summary-block/feature-discovery/styled.js +3 -0
  16. package/dist/cjs/view/FlexibleCard/components/blocks/ai-summary-block/resolved/AISummaryBlockResolvedViewOld.js +65 -0
  17. package/dist/cjs/view/FlexibleCard/components/blocks/ai-summary-block/resolved/index.compiled.css +2 -0
  18. package/dist/cjs/view/FlexibleCard/components/blocks/ai-summary-block/resolved/index.js +22 -15
  19. package/dist/cjs/view/FlexibleCard/components/blocks/element-group/index.compiled.css +4 -1
  20. package/dist/cjs/view/FlexibleCard/components/blocks/element-group/index.js +7 -6
  21. package/dist/cjs/view/FlexibleCard/components/blocks/footer-block/resolved/index.js +2 -1
  22. package/dist/cjs/view/FlexibleCard/components/blocks/metadata-block/index.compiled.css +2 -1
  23. package/dist/cjs/view/FlexibleCard/components/blocks/metadata-block/index.js +7 -4
  24. package/dist/cjs/view/FlexibleCard/components/blocks/title-block/index.js +3 -1
  25. package/dist/cjs/view/LinkUrl/index.js +1 -1
  26. package/dist/cjs/view/RelatedLinksModal/components/related-link-item/index.compiled.css +4 -0
  27. package/dist/cjs/view/RelatedLinksModal/components/related-link-item/index.js +20 -12
  28. package/dist/es2019/utils/analytics/analytics.js +1 -1
  29. package/dist/es2019/view/BlockCard/views/ResolvedView.compiled.css +1 -0
  30. package/dist/es2019/view/BlockCard/views/ResolvedView.js +2 -2
  31. package/dist/es2019/view/FlexibleCard/components/blocks/action-block/ActionBlockOld.js +96 -0
  32. package/dist/es2019/view/FlexibleCard/components/blocks/action-block/index.compiled.css +7 -0
  33. package/dist/es2019/view/FlexibleCard/components/blocks/action-block/index.js +20 -24
  34. package/dist/es2019/view/FlexibleCard/components/blocks/action-group/ActionGroupOld.js +121 -0
  35. package/dist/es2019/view/FlexibleCard/components/blocks/action-group/action-group-item/index.js +2 -9
  36. package/dist/es2019/view/FlexibleCard/components/blocks/action-group/index.compiled.css +4 -0
  37. package/dist/es2019/view/FlexibleCard/components/blocks/action-group/index.js +24 -32
  38. package/dist/es2019/view/FlexibleCard/components/blocks/ai-summary-block/feature-discovery/FeatureDiscoveryOld.js +63 -0
  39. package/dist/es2019/view/FlexibleCard/components/blocks/ai-summary-block/feature-discovery/index.compiled.css +5 -0
  40. package/dist/es2019/view/FlexibleCard/components/blocks/ai-summary-block/feature-discovery/index.js +21 -16
  41. package/dist/es2019/view/FlexibleCard/components/blocks/ai-summary-block/feature-discovery/styled.js +3 -0
  42. package/dist/es2019/view/FlexibleCard/components/blocks/ai-summary-block/resolved/AISummaryBlockResolvedViewOld.js +58 -0
  43. package/dist/es2019/view/FlexibleCard/components/blocks/ai-summary-block/resolved/index.compiled.css +2 -0
  44. package/dist/es2019/view/FlexibleCard/components/blocks/ai-summary-block/resolved/index.js +18 -11
  45. package/dist/es2019/view/FlexibleCard/components/blocks/element-group/index.compiled.css +4 -1
  46. package/dist/es2019/view/FlexibleCard/components/blocks/element-group/index.js +7 -6
  47. package/dist/es2019/view/FlexibleCard/components/blocks/footer-block/resolved/index.js +2 -1
  48. package/dist/es2019/view/FlexibleCard/components/blocks/metadata-block/index.compiled.css +2 -1
  49. package/dist/es2019/view/FlexibleCard/components/blocks/metadata-block/index.js +8 -4
  50. package/dist/es2019/view/FlexibleCard/components/blocks/title-block/index.js +3 -1
  51. package/dist/es2019/view/LinkUrl/index.js +1 -1
  52. package/dist/es2019/view/RelatedLinksModal/components/related-link-item/index.compiled.css +4 -0
  53. package/dist/es2019/view/RelatedLinksModal/components/related-link-item/index.js +12 -7
  54. package/dist/esm/utils/analytics/analytics.js +1 -1
  55. package/dist/esm/view/BlockCard/views/ResolvedView.compiled.css +1 -0
  56. package/dist/esm/view/BlockCard/views/ResolvedView.js +2 -2
  57. package/dist/esm/view/FlexibleCard/components/blocks/action-block/ActionBlockOld.js +105 -0
  58. package/dist/esm/view/FlexibleCard/components/blocks/action-block/index.compiled.css +7 -0
  59. package/dist/esm/view/FlexibleCard/components/blocks/action-block/index.js +20 -24
  60. package/dist/esm/view/FlexibleCard/components/blocks/action-group/ActionGroupOld.js +141 -0
  61. package/dist/esm/view/FlexibleCard/components/blocks/action-group/action-group-item/index.js +2 -9
  62. package/dist/esm/view/FlexibleCard/components/blocks/action-group/index.compiled.css +4 -0
  63. package/dist/esm/view/FlexibleCard/components/blocks/action-group/index.js +24 -32
  64. package/dist/esm/view/FlexibleCard/components/blocks/ai-summary-block/feature-discovery/FeatureDiscoveryOld.js +64 -0
  65. package/dist/esm/view/FlexibleCard/components/blocks/ai-summary-block/feature-discovery/index.compiled.css +4 -0
  66. package/dist/esm/view/FlexibleCard/components/blocks/ai-summary-block/feature-discovery/index.js +25 -16
  67. package/dist/esm/view/FlexibleCard/components/blocks/ai-summary-block/feature-discovery/styled.js +3 -0
  68. package/dist/esm/view/FlexibleCard/components/blocks/ai-summary-block/resolved/AISummaryBlockResolvedViewOld.js +55 -0
  69. package/dist/esm/view/FlexibleCard/components/blocks/ai-summary-block/resolved/index.compiled.css +2 -0
  70. package/dist/esm/view/FlexibleCard/components/blocks/ai-summary-block/resolved/index.js +18 -11
  71. package/dist/esm/view/FlexibleCard/components/blocks/element-group/index.compiled.css +4 -1
  72. package/dist/esm/view/FlexibleCard/components/blocks/element-group/index.js +7 -6
  73. package/dist/esm/view/FlexibleCard/components/blocks/footer-block/resolved/index.js +2 -1
  74. package/dist/esm/view/FlexibleCard/components/blocks/metadata-block/index.compiled.css +2 -1
  75. package/dist/esm/view/FlexibleCard/components/blocks/metadata-block/index.js +8 -4
  76. package/dist/esm/view/FlexibleCard/components/blocks/title-block/index.js +3 -1
  77. package/dist/esm/view/LinkUrl/index.js +1 -1
  78. package/dist/esm/view/RelatedLinksModal/components/related-link-item/index.compiled.css +4 -0
  79. package/dist/esm/view/RelatedLinksModal/components/related-link-item/index.js +12 -7
  80. package/dist/types/view/FlexibleCard/components/blocks/action-block/ActionBlockOld.d.ts +4 -0
  81. package/dist/types/view/FlexibleCard/components/blocks/action-block/index.d.ts +2 -2
  82. package/dist/types/view/FlexibleCard/components/blocks/action-group/ActionGroupOld.d.ts +11 -0
  83. package/dist/types/view/FlexibleCard/components/blocks/action-group/action-group-item/index.d.ts +2 -2
  84. package/dist/types/view/FlexibleCard/components/blocks/action-group/index.d.ts +2 -9
  85. package/dist/types/view/FlexibleCard/components/blocks/ai-summary-block/feature-discovery/FeatureDiscoveryOld.d.ts +12 -0
  86. package/dist/types/view/FlexibleCard/components/blocks/ai-summary-block/feature-discovery/index.d.ts +1 -6
  87. package/dist/types/view/FlexibleCard/components/blocks/ai-summary-block/feature-discovery/styled.d.ts +3 -0
  88. package/dist/types/view/FlexibleCard/components/blocks/ai-summary-block/resolved/AISummaryBlockResolvedViewOld.d.ts +10 -0
  89. package/dist/types-ts4.5/view/FlexibleCard/components/blocks/action-block/ActionBlockOld.d.ts +4 -0
  90. package/dist/types-ts4.5/view/FlexibleCard/components/blocks/action-block/index.d.ts +2 -2
  91. package/dist/types-ts4.5/view/FlexibleCard/components/blocks/action-group/ActionGroupOld.d.ts +11 -0
  92. package/dist/types-ts4.5/view/FlexibleCard/components/blocks/action-group/action-group-item/index.d.ts +2 -2
  93. package/dist/types-ts4.5/view/FlexibleCard/components/blocks/action-group/index.d.ts +2 -9
  94. package/dist/types-ts4.5/view/FlexibleCard/components/blocks/ai-summary-block/feature-discovery/FeatureDiscoveryOld.d.ts +12 -0
  95. package/dist/types-ts4.5/view/FlexibleCard/components/blocks/ai-summary-block/feature-discovery/index.d.ts +1 -6
  96. package/dist/types-ts4.5/view/FlexibleCard/components/blocks/ai-summary-block/feature-discovery/styled.d.ts +3 -0
  97. package/dist/types-ts4.5/view/FlexibleCard/components/blocks/ai-summary-block/resolved/AISummaryBlockResolvedViewOld.d.ts +10 -0
  98. package/package.json +1 -1
@@ -1,29 +1,18 @@
1
- /**
2
- * @jsxRuntime classic
3
- * @jsx jsx
4
- */
1
+ /* index.tsx generated by @compiled/babel-plugin v0.35.0 */
2
+ import "./index.compiled.css";
3
+ import * as React from 'react';
4
+ import { ax, ix } from "@compiled/react/runtime";
5
5
  import { useCallback, useMemo, useState } from 'react';
6
-
7
- // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
8
- import { css, jsx } from '@emotion/react';
9
6
  import { di } from 'react-magnetic-di';
7
+ import { fg } from '@atlaskit/platform-feature-flags';
10
8
  import { xcss } from '@atlaskit/primitives';
11
9
  import { SmartLinkSize } from '../../../../../constants';
12
10
  import { useFlexibleUiContext, useFlexibleUiOptionContext } from '../../../../../state/flexible-ui-context';
13
11
  import * as Actions from '../../actions';
14
12
  import { getPrimitivesPaddingSpaceBySize } from '../../utils';
15
13
  import { ActionFooter } from './action-footer';
16
- const ignoreContainerPaddingStyles = css({
17
- display: 'flex',
18
- flexDirection: 'column',
19
- boxSizing: 'border-box',
20
- flexGrow: 1,
21
- width: '100%',
22
- // We have to find a better way to ignore container padding
23
- // This has become more and more of a common use case.
24
- marginLeft: 'calc(var(--container-gap-left) * -1)',
25
- marginRight: 'calc(var(--container-gap-right) * -1)'
26
- });
14
+ import ActionBlockOld from './ActionBlockOld';
15
+ const ignoreContainerPaddingStyles = null;
27
16
  const DEFAULT_SORT_ORDER = ['PreviewAction', 'CopyLinkAction', 'AISummaryAction'];
28
17
  const sort = (a, b) => {
29
18
  let idxA = DEFAULT_SORT_ORDER.indexOf(a);
@@ -36,7 +25,7 @@ const sort = (a, b) => {
36
25
  }
37
26
  return idxA - idxB;
38
27
  };
39
- const ActionBlock = ({
28
+ const ActionBlockNew = ({
40
29
  blockRef,
41
30
  onClick: onClickCallback,
42
31
  size,
@@ -66,7 +55,7 @@ const ActionBlock = ({
66
55
  arr.sort(sort);
67
56
  return arr.map(name => {
68
57
  const Action = name in Actions ? Actions[name] : undefined;
69
- return Action ? jsx(Action, {
58
+ return Action ? /*#__PURE__*/React.createElement(Action, {
70
59
  as: "stack-item",
71
60
  spaceInline: spaceInline,
72
61
  key: name,
@@ -83,14 +72,21 @@ const ActionBlock = ({
83
72
  }) : null;
84
73
  });
85
74
  }, [context === null || context === void 0 ? void 0 : context.actions, onClick, onError, padding, size, spaceInline, isLoading, onLoadingChange]);
86
- return actions ? jsx("div", {
87
- css: ignoreContainerPaddingStyles,
75
+ return actions ? /*#__PURE__*/React.createElement("div", {
88
76
  ref: blockRef,
89
- "data-testid": testId
90
- }, actions, jsx(ActionFooter, {
77
+ "data-testid": testId,
78
+ className: ax(["_1e0c1txw _2lx21bp4 _vchhusvi _16jlkb7n _1bsb1osq _18u01ivi _2hwxc10g"])
79
+ }, actions, /*#__PURE__*/React.createElement(ActionFooter, {
91
80
  message: message,
92
81
  paddingInline: padding,
93
82
  testId: testId
94
83
  })) : null;
95
84
  };
85
+ const ActionBlock = props => {
86
+ if (fg('bandicoots-compiled-migration-smartcard')) {
87
+ return /*#__PURE__*/React.createElement(ActionBlockNew, props);
88
+ } else {
89
+ return /*#__PURE__*/React.createElement(ActionBlockOld, props);
90
+ }
91
+ };
96
92
  export default ActionBlock;
@@ -0,0 +1,121 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ /**
3
+ * @jsxRuntime classic
4
+ * @jsx jsx
5
+ */
6
+ import { useCallback, useMemo, useState } from 'react';
7
+
8
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
9
+ import { css, jsx } from '@emotion/react';
10
+ import { FormattedMessage } from 'react-intl-next';
11
+ import { di } from 'react-magnetic-di';
12
+ import ButtonGroup from '@atlaskit/button/button-group';
13
+ import Button from '@atlaskit/button/standard-button';
14
+ import DropdownMenu from '@atlaskit/dropdown-menu';
15
+ import MoreIcon from '@atlaskit/icon/core/migration/show-more-horizontal--more';
16
+ import Tooltip from '@atlaskit/tooltip';
17
+ import { SmartLinkSize } from '../../../../../constants';
18
+ import { messages } from '../../../../../messages';
19
+ import { useFlexibleUiContext, useFlexibleUiOptionContext } from '../../../../../state/flexible-ui-context';
20
+ import { sizeToButtonSpacing } from '../../utils';
21
+ import { filterActionItems } from '../utils';
22
+ import ActionGroupItem from './action-group-item';
23
+ const styles = css({
24
+ display: 'inline-flex',
25
+ // eslint-disable-next-line @atlaskit/design-system/use-tokens-typography
26
+ lineHeight: '1rem',
27
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
28
+ '> div': {
29
+ alignItems: 'center',
30
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
31
+ 'button:focus-visible': {
32
+ outlineOffset: "var(--ds-space-negative-025, -2px)"
33
+ }
34
+ }
35
+ });
36
+ const renderActionItems = (items = [], size = SmartLinkSize.Medium, appearance, asDropDownItems, onActionItemClick) => items.map((item, idx) => jsx(ActionGroupItem, {
37
+ item: item,
38
+ key: idx,
39
+ size: size,
40
+ appearance: appearance,
41
+ asDropDownItems: asDropDownItems,
42
+ onActionItemClick: onActionItemClick
43
+ }));
44
+
45
+ /**
46
+ * Creates a group of Action components. Accepts an array of Actions, in addition to some styling
47
+ * preferences.
48
+ * @internal
49
+ * @param {ActionGroupProps} ActionGroupProps
50
+ * @see Action
51
+ */
52
+ const ActionGroupOld = ({
53
+ items = [],
54
+ size = SmartLinkSize.Medium,
55
+ appearance,
56
+ visibleButtonsNum = 2,
57
+ onDropdownOpenChange
58
+ }) => {
59
+ const context = useFlexibleUiContext();
60
+ const ui = useFlexibleUiOptionContext();
61
+ const [isOpen, setIsOpen] = useState(false);
62
+ const renderableActionItems = useMemo(() => filterActionItems(items, context), [context, items]);
63
+ const isMoreThenTwoItems = renderableActionItems.length > visibleButtonsNum;
64
+ const onOpenChange = useCallback(attrs => {
65
+ setIsOpen(attrs.isOpen);
66
+ if (onDropdownOpenChange) {
67
+ onDropdownOpenChange(attrs.isOpen);
68
+ }
69
+ }, [onDropdownOpenChange]);
70
+ const onActionItemClick = useCallback(() => {
71
+ if (isOpen) {
72
+ onOpenChange({
73
+ isOpen: false
74
+ });
75
+ }
76
+ }, [isOpen, onOpenChange]);
77
+ const actionButtons = useMemo(() => {
78
+ const actionItems = isMoreThenTwoItems ? renderableActionItems.slice(0, visibleButtonsNum - 1) : renderableActionItems;
79
+ return renderActionItems(actionItems, size, appearance, false, onActionItemClick);
80
+ }, [appearance, isMoreThenTwoItems, onActionItemClick, renderableActionItems, size, visibleButtonsNum]);
81
+ const moreActionDropdown = useMemo(() => {
82
+ const actionItems = isMoreThenTwoItems ? renderableActionItems.slice(visibleButtonsNum - 1) : [];
83
+ if (actionItems.length > 0) {
84
+ const spacing = sizeToButtonSpacing[size];
85
+ const moreIcon = jsx(MoreIcon, {
86
+ label: "more",
87
+ color: "currentColor"
88
+ });
89
+ const formatMessage = jsx(FormattedMessage, messages.more_actions);
90
+ return jsx(DropdownMenu, {
91
+ isOpen: isOpen,
92
+ onOpenChange: onOpenChange,
93
+ trigger: ({
94
+ triggerRef,
95
+ ...props
96
+ }) => jsx(Tooltip, {
97
+ content: formatMessage,
98
+ hideTooltipOnClick: true,
99
+ testId: "action-group-more-button-tooltip",
100
+ tag: "span"
101
+ }, jsx(Button, _extends({}, props, {
102
+ spacing: spacing,
103
+ testId: "action-group-more-button",
104
+ iconBefore: moreIcon,
105
+ ref: triggerRef
106
+ }))),
107
+ testId: "action-group-dropdown",
108
+ zIndex: ui === null || ui === void 0 ? void 0 : ui.zIndex
109
+ }, renderActionItems(actionItems, size, appearance, true, onActionItemClick));
110
+ }
111
+ return null;
112
+ }, [appearance, isMoreThenTwoItems, isOpen, onActionItemClick, onOpenChange, renderableActionItems, size, ui === null || ui === void 0 ? void 0 : ui.zIndex, visibleButtonsNum]);
113
+ return renderableActionItems.length > 0 ? jsx("div", {
114
+ css: styles
115
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
116
+ ,
117
+ className: "actions-button-group",
118
+ "data-action-open": isOpen
119
+ }, jsx(ButtonGroup, null, actionButtons, moreActionDropdown)) : null;
120
+ };
121
+ export default ActionGroupOld;
@@ -1,12 +1,5 @@
1
1
  import _extends from "@babel/runtime/helpers/extends";
2
- /**
3
- * @jsxRuntime classic
4
- * @jsx jsx
5
- */
6
- import { useCallback } from 'react';
7
-
8
- // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
9
- import { jsx } from '@emotion/react';
2
+ import React, { useCallback } from 'react';
10
3
  import * as Actions from '../../../actions';
11
4
  const ActionGroupItem = ({
12
5
  item,
@@ -47,7 +40,7 @@ const ActionGroupItem = ({
47
40
  if (item !== null && item !== void 0 && item.entryPointWrapper) {
48
41
  actionProps.wrapper = item.entryPointWrapper;
49
42
  }
50
- return jsx(Action, _extends({
43
+ return /*#__PURE__*/React.createElement(Action, _extends({
51
44
  asDropDownItem: asDropDownItems,
52
45
  size: size,
53
46
  appearance: appearance,
@@ -0,0 +1,4 @@
1
+ ._1e0c116y{display:inline-flex}
2
+ ._dzc21h6o >div{align-items:center}
3
+ ._vwz41j6v{line-height:1rem}
4
+ ._1ilq1i6y >div button:focus-visible{outline-offset:var(--ds-space-negative-025,-2px)}
@@ -1,18 +1,16 @@
1
+ /* index.tsx generated by @compiled/babel-plugin v0.35.0 */
1
2
  import _extends from "@babel/runtime/helpers/extends";
2
- /**
3
- * @jsxRuntime classic
4
- * @jsx jsx
5
- */
3
+ import "./index.compiled.css";
4
+ import * as React from 'react';
5
+ import { ax, ix } from "@compiled/react/runtime";
6
6
  import { useCallback, useMemo, useState } from 'react';
7
-
8
- // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
9
- import { css, jsx } from '@emotion/react';
10
7
  import { FormattedMessage } from 'react-intl-next';
11
8
  import { di } from 'react-magnetic-di';
12
9
  import ButtonGroup from '@atlaskit/button/button-group';
13
10
  import Button from '@atlaskit/button/standard-button';
14
11
  import DropdownMenu from '@atlaskit/dropdown-menu';
15
12
  import MoreIcon from '@atlaskit/icon/core/migration/show-more-horizontal--more';
13
+ import { fg } from '@atlaskit/platform-feature-flags';
16
14
  import Tooltip from '@atlaskit/tooltip';
17
15
  import { SmartLinkSize } from '../../../../../constants';
18
16
  import { messages } from '../../../../../messages';
@@ -20,20 +18,9 @@ import { useFlexibleUiContext, useFlexibleUiOptionContext } from '../../../../..
20
18
  import { sizeToButtonSpacing } from '../../utils';
21
19
  import { filterActionItems } from '../utils';
22
20
  import ActionGroupItem from './action-group-item';
23
- const styles = css({
24
- display: 'inline-flex',
25
- // eslint-disable-next-line @atlaskit/design-system/use-tokens-typography
26
- lineHeight: '1rem',
27
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
28
- '> div': {
29
- alignItems: 'center',
30
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
31
- 'button:focus-visible': {
32
- outlineOffset: "var(--ds-space-negative-025, -2px)"
33
- }
34
- }
35
- });
36
- const renderActionItems = (items = [], size = SmartLinkSize.Medium, appearance, asDropDownItems, onActionItemClick) => items.map((item, idx) => jsx(ActionGroupItem, {
21
+ import ActionGroupOld from './ActionGroupOld';
22
+ const styles = null;
23
+ const renderActionItems = (items = [], size = SmartLinkSize.Medium, appearance, asDropDownItems, onActionItemClick) => items.map((item, idx) => /*#__PURE__*/React.createElement(ActionGroupItem, {
37
24
  item: item,
38
25
  key: idx,
39
26
  size: size,
@@ -49,7 +36,7 @@ const renderActionItems = (items = [], size = SmartLinkSize.Medium, appearance,
49
36
  * @param {ActionGroupProps} ActionGroupProps
50
37
  * @see Action
51
38
  */
52
- const ActionGroup = ({
39
+ const ActionGroupNew = ({
53
40
  items = [],
54
41
  size = SmartLinkSize.Medium,
55
42
  appearance,
@@ -82,23 +69,23 @@ const ActionGroup = ({
82
69
  const actionItems = isMoreThenTwoItems ? renderableActionItems.slice(visibleButtonsNum - 1) : [];
83
70
  if (actionItems.length > 0) {
84
71
  const spacing = sizeToButtonSpacing[size];
85
- const moreIcon = jsx(MoreIcon, {
72
+ const moreIcon = /*#__PURE__*/React.createElement(MoreIcon, {
86
73
  label: "more",
87
74
  color: "currentColor"
88
75
  });
89
- const formatMessage = jsx(FormattedMessage, messages.more_actions);
90
- return jsx(DropdownMenu, {
76
+ const formatMessage = /*#__PURE__*/React.createElement(FormattedMessage, messages.more_actions);
77
+ return /*#__PURE__*/React.createElement(DropdownMenu, {
91
78
  isOpen: isOpen,
92
79
  onOpenChange: onOpenChange,
93
80
  trigger: ({
94
81
  triggerRef,
95
82
  ...props
96
- }) => jsx(Tooltip, {
83
+ }) => /*#__PURE__*/React.createElement(Tooltip, {
97
84
  content: formatMessage,
98
85
  hideTooltipOnClick: true,
99
86
  testId: "action-group-more-button-tooltip",
100
87
  tag: "span"
101
- }, jsx(Button, _extends({}, props, {
88
+ }, /*#__PURE__*/React.createElement(Button, _extends({}, props, {
102
89
  spacing: spacing,
103
90
  testId: "action-group-more-button",
104
91
  iconBefore: moreIcon,
@@ -110,12 +97,17 @@ const ActionGroup = ({
110
97
  }
111
98
  return null;
112
99
  }, [appearance, isMoreThenTwoItems, isOpen, onActionItemClick, onOpenChange, renderableActionItems, size, ui === null || ui === void 0 ? void 0 : ui.zIndex, visibleButtonsNum]);
113
- return renderableActionItems.length > 0 ? jsx("div", {
114
- css: styles
100
+ return renderableActionItems.length > 0 ? /*#__PURE__*/React.createElement("div", {
115
101
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
116
- ,
117
- className: "actions-button-group",
102
+ className: ax(["_1e0c116y _vwz41j6v _dzc21h6o _1ilq1i6y", "actions-button-group"]),
118
103
  "data-action-open": isOpen
119
- }, jsx(ButtonGroup, null, actionButtons, moreActionDropdown)) : null;
104
+ }, /*#__PURE__*/React.createElement(ButtonGroup, null, actionButtons, moreActionDropdown)) : null;
105
+ };
106
+ const ActionGroup = props => {
107
+ if (fg('bandicoots-compiled-migration-smartcard')) {
108
+ return /*#__PURE__*/React.createElement(ActionGroupNew, props);
109
+ } else {
110
+ return /*#__PURE__*/React.createElement(ActionGroupOld, props);
111
+ }
120
112
  };
121
113
  export default ActionGroup;
@@ -0,0 +1,63 @@
1
+ /**
2
+ * @jsxRuntime classic
3
+ * @jsx jsx
4
+ */
5
+ import { useEffect, useMemo, useRef } from 'react';
6
+
7
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
8
+ import { jsx } from '@emotion/react';
9
+ import { StorageClient } from '@atlaskit/frontend-utilities/storage-client';
10
+ import { getPulseStyles } from './styled';
11
+ const LOCAL_STORAGE_CLIENT_KEY = '@atlaskit/smart-card';
12
+ const LOCAL_STORAGE_DISCOVERY_KEY = 'action-discovery-ai-summarise';
13
+ const LOCAL_STORAGE_DISCOVERY_VALUE = 'discovered';
14
+ const LOCAL_STORAGE_DISCOVERY_EXPIRY_IN_MS = 15552000000; // 180 days
15
+ const LOCAL_STORAGE_DISCOVERY_REQUIRED_TIME = 2000;
16
+ /**
17
+ * This is a hacky solution to help with the feature discovery.
18
+ * This implementation must be removed once the experiment is completed.
19
+ * Cleanup on https://product-fabric.atlassian.net/browse/EDM-9649
20
+ */
21
+ const FeatureDiscoveryOld = ({
22
+ children,
23
+ testId
24
+ }) => {
25
+ const renderedTime = useRef();
26
+ const storageClient = useMemo(() => new StorageClient(LOCAL_STORAGE_CLIENT_KEY), []);
27
+ const discovered = useMemo(() => {
28
+ try {
29
+ return storageClient.getItem(LOCAL_STORAGE_DISCOVERY_KEY) === LOCAL_STORAGE_DISCOVERY_VALUE;
30
+ } catch {
31
+ // If localStorage is not available, don't show feature discovery component. Treat it as 'discovered'.
32
+ return true;
33
+ }
34
+ }, [storageClient]);
35
+ useEffect(() => {
36
+ renderedTime.current = Date.now();
37
+ return () => {
38
+ if (!discovered && renderedTime.current) {
39
+ const duration = Date.now() - renderedTime.current;
40
+ if (duration > LOCAL_STORAGE_DISCOVERY_REQUIRED_TIME) {
41
+ try {
42
+ storageClient.setItemWithExpiry(LOCAL_STORAGE_DISCOVERY_KEY, LOCAL_STORAGE_DISCOVERY_VALUE, LOCAL_STORAGE_DISCOVERY_EXPIRY_IN_MS);
43
+ } catch {
44
+ // silent error
45
+ }
46
+ }
47
+ }
48
+ };
49
+ }, [storageClient, discovered]);
50
+ const component = useMemo(() => {
51
+ if (!discovered) {
52
+ return (
53
+ // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
54
+ jsx("span", {
55
+ css: getPulseStyles(),
56
+ "data-testid": `${testId}-discovery`
57
+ }, children)
58
+ );
59
+ }
60
+ }, [children, discovered, testId]);
61
+ return component !== null && component !== void 0 ? component : children;
62
+ };
63
+ export default FeatureDiscoveryOld;
@@ -0,0 +1,5 @@
1
+
2
+ ._2rko1l7b{border-radius:3px}
3
+ ._y44v1k6k{animation:k1kh5krz 2s cubic-bezier(.5,0,0,1) .25s 2 both}._16qslqk2{box-shadow:0 0 0 0 var(--ds-border-discovery,#8270db)}
4
+ ._1e0c116y{display:inline-flex}
5
+ @keyframes k1kh5krz{to{box-shadow:0 0 0 7px transparent}}
@@ -1,24 +1,25 @@
1
- /**
2
- * @jsxRuntime classic
3
- * @jsx jsx
4
- */
1
+ /* index.tsx generated by @compiled/babel-plugin v0.35.0 */
2
+ import "./index.compiled.css";
3
+ import * as React from 'react';
4
+ import { ax, ix } from "@compiled/react/runtime";
5
5
  import { useEffect, useMemo, useRef } from 'react';
6
-
7
- // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
8
- import { jsx } from '@emotion/react';
9
6
  import { StorageClient } from '@atlaskit/frontend-utilities/storage-client';
10
- import { getPulseStyles } from './styled';
7
+ import { fg } from '@atlaskit/platform-feature-flags';
8
+ import FeatureDiscoveryOld from './FeatureDiscoveryOld';
11
9
  const LOCAL_STORAGE_CLIENT_KEY = '@atlaskit/smart-card';
12
10
  const LOCAL_STORAGE_DISCOVERY_KEY = 'action-discovery-ai-summarise';
13
11
  const LOCAL_STORAGE_DISCOVERY_VALUE = 'discovered';
14
12
  const LOCAL_STORAGE_DISCOVERY_EXPIRY_IN_MS = 15552000000; // 180 days
15
13
  const LOCAL_STORAGE_DISCOVERY_REQUIRED_TIME = 2000;
14
+ const pulseKeyframes = null;
15
+ const pulseStyles = null;
16
+
16
17
  /**
17
18
  * This is a hacky solution to help with the feature discovery.
18
19
  * This implementation must be removed once the experiment is completed.
19
20
  * Cleanup on https://product-fabric.atlassian.net/browse/EDM-9649
20
21
  */
21
- const FeatureDiscovery = ({
22
+ const FeatureDiscoveryNew = ({
22
23
  children,
23
24
  testId
24
25
  }) => {
@@ -49,15 +50,19 @@ const FeatureDiscovery = ({
49
50
  }, [storageClient, discovered]);
50
51
  const component = useMemo(() => {
51
52
  if (!discovered) {
52
- return (
53
- // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage, @atlaskit/ui-styling-standard/no-imported-style-values -- Ignored via go/DSP-18766
54
- jsx("span", {
55
- css: getPulseStyles(),
56
- "data-testid": `${testId}-discovery`
57
- }, children)
58
- );
53
+ return /*#__PURE__*/React.createElement("span", {
54
+ "data-testid": `${testId}-discovery`,
55
+ className: ax(["_2rko1l7b _y44v1k6k _1e0c116y _16qslqk2"])
56
+ }, children);
59
57
  }
60
58
  }, [children, discovered, testId]);
61
59
  return component !== null && component !== void 0 ? component : children;
62
60
  };
61
+ const FeatureDiscovery = props => {
62
+ if (fg('bandicoots-compiled-migration-smartcard')) {
63
+ return /*#__PURE__*/React.createElement(FeatureDiscoveryNew, props);
64
+ } else {
65
+ return /*#__PURE__*/React.createElement(FeatureDiscoveryOld, props);
66
+ }
67
+ };
63
68
  export default FeatureDiscovery;
@@ -1,5 +1,8 @@
1
1
  // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
2
2
  import { css, keyframes } from '@emotion/react';
3
+ /**
4
+ * @deprecated remove on FF cleanup of bandicoots-compiled-migration-smartcard
5
+ */
3
6
  export const getPulseStyles = () => {
4
7
  const color = "var(--ds-border-discovery, #8270DB)";
5
8
  const pulseKeyframes = keyframes({
@@ -0,0 +1,58 @@
1
+ import _extends from "@babel/runtime/helpers/extends";
2
+ import React, { useRef } from 'react';
3
+
4
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
5
+ import { css } from '@emotion/react';
6
+ import { di } from 'react-magnetic-di';
7
+ import { SmartLinkDirection } from '../../../../../../constants';
8
+ import useAISummaryAction from '../../../../../../state/hooks/use-ai-summary-action';
9
+ import AISummary from '../../../../../common/ai-summary';
10
+ import MotionWrapper from '../../../common/motion-wrapper';
11
+ import Block from '../../block';
12
+ import AIEventSummaryViewed from '../ai-event-summary-viewed';
13
+ const AISummaryBlockResolvedViewOld = props => {
14
+ const {
15
+ testId,
16
+ aiSummaryMinHeight = 0,
17
+ placeholder,
18
+ url
19
+ } = props;
20
+ const {
21
+ state: {
22
+ content,
23
+ status
24
+ }
25
+ } = useAISummaryAction(url);
26
+ const showAISummary = status === 'done' ||
27
+ // We want to display the AI Summary component only when there is content available during the loading process.
28
+ status === 'loading' && !!content;
29
+ const isSummarisedOnMountRef = useRef(status === 'done');
30
+ const minHeight = isSummarisedOnMountRef.current ? 0 : aiSummaryMinHeight;
31
+ if (!showAISummary) {
32
+ return /*#__PURE__*/React.createElement(React.Fragment, null, placeholder);
33
+ }
34
+ return /*#__PURE__*/React.createElement(Block, _extends({}, props, {
35
+ direction: SmartLinkDirection.Vertical,
36
+ testId: `${testId}-resolved-view`
37
+ /**
38
+ * Enabled for feature discovery to allow box shadow to overflow
39
+ * Cleanup: https://product-fabric.atlassian.net/browse/EDM-8681
40
+ */,
41
+ overrideCss: css({
42
+ overflow: 'visible'
43
+ },
44
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
45
+ props.overrideCss)
46
+ }), status === 'done' && /*#__PURE__*/React.createElement(AIEventSummaryViewed, {
47
+ fromCache: isSummarisedOnMountRef.current
48
+ }), /*#__PURE__*/React.createElement(MotionWrapper, {
49
+ minHeight: minHeight,
50
+ show: showAISummary,
51
+ showTransition: !isSummarisedOnMountRef.current
52
+ }, /*#__PURE__*/React.createElement(AISummary, {
53
+ testId: `${testId}-ai-summary`,
54
+ minHeight: minHeight,
55
+ content: content
56
+ })));
57
+ };
58
+ export default AISummaryBlockResolvedViewOld;
@@ -0,0 +1,2 @@
1
+ ._18m9ewfl{overflow-y:visible}
2
+ ._1reoewfl{overflow-x:visible}
@@ -1,16 +1,20 @@
1
+ /* index.tsx generated by @compiled/babel-plugin v0.35.0 */
1
2
  import _extends from "@babel/runtime/helpers/extends";
2
- import React, { useRef } from 'react';
3
-
4
- // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
5
- import { css } from '@emotion/react';
3
+ import "./index.compiled.css";
4
+ import * as React from 'react';
5
+ import { ax, ix } from "@compiled/react/runtime";
6
+ import { Fragment, useRef } from 'react';
6
7
  import { di } from 'react-magnetic-di';
8
+ import { fg } from '@atlaskit/platform-feature-flags';
7
9
  import { SmartLinkDirection } from '../../../../../../constants';
8
10
  import useAISummaryAction from '../../../../../../state/hooks/use-ai-summary-action';
9
11
  import AISummary from '../../../../../common/ai-summary';
10
12
  import MotionWrapper from '../../../common/motion-wrapper';
11
13
  import Block from '../../block';
12
14
  import AIEventSummaryViewed from '../ai-event-summary-viewed';
13
- const AISummaryBlockResolvedView = props => {
15
+ import AISummaryBlockResolvedViewOld from './AISummaryBlockResolvedViewOld';
16
+ const styles = null;
17
+ const AISummaryBlockResolvedViewNew = props => {
14
18
  const {
15
19
  testId,
16
20
  aiSummaryMinHeight = 0,
@@ -29,7 +33,7 @@ const AISummaryBlockResolvedView = props => {
29
33
  const isSummarisedOnMountRef = useRef(status === 'done');
30
34
  const minHeight = isSummarisedOnMountRef.current ? 0 : aiSummaryMinHeight;
31
35
  if (!showAISummary) {
32
- return /*#__PURE__*/React.createElement(React.Fragment, null, placeholder);
36
+ return /*#__PURE__*/React.createElement(Fragment, null, placeholder);
33
37
  }
34
38
  return /*#__PURE__*/React.createElement(Block, _extends({}, props, {
35
39
  direction: SmartLinkDirection.Vertical,
@@ -38,11 +42,7 @@ const AISummaryBlockResolvedView = props => {
38
42
  * Enabled for feature discovery to allow box shadow to overflow
39
43
  * Cleanup: https://product-fabric.atlassian.net/browse/EDM-8681
40
44
  */,
41
- overrideCss: css({
42
- overflow: 'visible'
43
- },
44
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
45
- props.overrideCss)
45
+ className: ax(["_1reoewfl _18m9ewfl"])
46
46
  }), status === 'done' && /*#__PURE__*/React.createElement(AIEventSummaryViewed, {
47
47
  fromCache: isSummarisedOnMountRef.current
48
48
  }), /*#__PURE__*/React.createElement(MotionWrapper, {
@@ -55,4 +55,11 @@ const AISummaryBlockResolvedView = props => {
55
55
  content: content
56
56
  })));
57
57
  };
58
+ const AISummaryBlockResolvedView = props => {
59
+ if (fg('bandicoots-compiled-migration-smartcard')) {
60
+ return /*#__PURE__*/React.createElement(AISummaryBlockResolvedViewNew, props);
61
+ } else {
62
+ return /*#__PURE__*/React.createElement(AISummaryBlockResolvedViewOld, props);
63
+ }
64
+ };
58
65
  export default AISummaryBlockResolvedView;
@@ -12,6 +12,7 @@
12
12
  ._1dthv2br{-webkit-box-align:start}
13
13
  ._1e0c1txw{display:flex}
14
14
  ._1e0c1ule{display:block}
15
+ ._1e0ccj1k{display:-webkit-box}
15
16
  ._1iu61nu9 >div[data-smart-element-date-time], ._166k1nu9 >div[data-smart-element-text], ._1div1nu9 >span[data-smart-element-date-time], ._bmfb1nu9 >span[data-smart-element-text]{display:inline}
16
17
  ._1nmz1hna{word-break:break-word}
17
18
  ._1o9z11wp{flex-shrink:3}
@@ -42,5 +43,7 @@
42
43
  ._r291v2br{-ms-flex-align:start}
43
44
  ._s7n4nkob{vertical-align:middle}
44
45
  ._sudp1e54{-webkit-box-orient:vertical}
46
+ ._vwz41j6v{line-height:1rem}
45
47
  ._y3gn1e5h{text-align:left}
46
- ._y3gnusic{text-align:right}
48
+ ._y3gnusic{text-align:right}
49
+ @supports not (-webkit-line-clamp:1){._102k1k8s{max-height:1.5rem}._102k1m1q{max-height:1.75rem}}