@atlaskit/smart-card 34.1.1 → 34.2.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 (70) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/cjs/utils/analytics/analytics.js +1 -1
  3. package/dist/cjs/view/EmbedCard/components/IFrame.js +6 -3
  4. package/dist/cjs/view/EmbedModal/components/embed-content/index.compiled.css +2 -0
  5. package/dist/cjs/view/EmbedModal/components/embed-content/index.js +23 -14
  6. package/dist/cjs/view/EmbedModal/components/embed-content/indexOld.js +37 -0
  7. package/dist/cjs/view/EmbedModal/components/link-info/index.compiled.css +35 -0
  8. package/dist/cjs/view/EmbedModal/components/link-info/index.js +58 -49
  9. package/dist/cjs/view/EmbedModal/components/link-info/indexOld.js +131 -0
  10. package/dist/cjs/view/FlexibleCard/components/container/index.compiled.css +38 -0
  11. package/dist/cjs/view/FlexibleCard/components/container/index.js +94 -87
  12. package/dist/cjs/view/FlexibleCard/components/container/indexOld.js +226 -0
  13. package/dist/cjs/view/FlexibleCard/components/container/layered-link/LayeredLinkOld.js +75 -0
  14. package/dist/cjs/view/FlexibleCard/components/container/layered-link/index.compiled.css +11 -0
  15. package/dist/cjs/view/FlexibleCard/components/container/layered-link/index.js +20 -46
  16. package/dist/cjs/view/LinkUrl/index.js +1 -1
  17. package/dist/es2019/utils/analytics/analytics.js +1 -1
  18. package/dist/es2019/view/EmbedCard/components/IFrame.js +5 -2
  19. package/dist/es2019/view/EmbedModal/components/embed-content/index.compiled.css +2 -0
  20. package/dist/es2019/view/EmbedModal/components/embed-content/index.js +19 -13
  21. package/dist/es2019/view/EmbedModal/components/embed-content/indexOld.js +31 -0
  22. package/dist/es2019/view/EmbedModal/components/link-info/index.compiled.css +35 -0
  23. package/dist/es2019/view/EmbedModal/components/link-info/index.js +59 -49
  24. package/dist/es2019/view/EmbedModal/components/link-info/indexOld.js +122 -0
  25. package/dist/es2019/view/FlexibleCard/components/container/index.compiled.css +38 -0
  26. package/dist/es2019/view/FlexibleCard/components/container/index.js +88 -105
  27. package/dist/es2019/view/FlexibleCard/components/container/indexOld.js +229 -0
  28. package/dist/es2019/view/FlexibleCard/components/container/layered-link/LayeredLinkOld.js +69 -0
  29. package/dist/es2019/view/FlexibleCard/components/container/layered-link/index.compiled.css +11 -0
  30. package/dist/es2019/view/FlexibleCard/components/container/layered-link/index.js +16 -45
  31. package/dist/es2019/view/LinkUrl/index.js +1 -1
  32. package/dist/esm/utils/analytics/analytics.js +1 -1
  33. package/dist/esm/view/EmbedCard/components/IFrame.js +6 -3
  34. package/dist/esm/view/EmbedModal/components/embed-content/index.compiled.css +2 -0
  35. package/dist/esm/view/EmbedModal/components/embed-content/index.js +19 -13
  36. package/dist/esm/view/EmbedModal/components/embed-content/indexOld.js +30 -0
  37. package/dist/esm/view/EmbedModal/components/link-info/index.compiled.css +35 -0
  38. package/dist/esm/view/EmbedModal/components/link-info/index.js +59 -49
  39. package/dist/esm/view/EmbedModal/components/link-info/indexOld.js +120 -0
  40. package/dist/esm/view/FlexibleCard/components/container/index.compiled.css +38 -0
  41. package/dist/esm/view/FlexibleCard/components/container/index.js +88 -87
  42. package/dist/esm/view/FlexibleCard/components/container/indexOld.js +217 -0
  43. package/dist/esm/view/FlexibleCard/components/container/layered-link/LayeredLinkOld.js +68 -0
  44. package/dist/esm/view/FlexibleCard/components/container/layered-link/index.compiled.css +11 -0
  45. package/dist/esm/view/FlexibleCard/components/container/layered-link/index.js +16 -45
  46. package/dist/esm/view/LinkUrl/index.js +1 -1
  47. package/dist/types/view/EmbedCard/components/IFrame.d.ts +2 -1
  48. package/dist/types/view/EmbedModal/components/embed-content/index.d.ts +3 -7
  49. package/dist/types/view/EmbedModal/components/embed-content/indexOld.d.ts +8 -0
  50. package/dist/types/view/EmbedModal/components/link-info/index.d.ts +3 -3
  51. package/dist/types/view/EmbedModal/components/link-info/indexOld.d.ts +4 -0
  52. package/dist/types/view/FlexibleCard/components/container/index.d.ts +10 -10
  53. package/dist/types/view/FlexibleCard/components/container/indexOld.d.ts +24 -0
  54. package/dist/types/view/FlexibleCard/components/container/layered-link/LayeredLinkOld.d.ts +13 -0
  55. package/dist/types/view/FlexibleCard/components/container/layered-link/index.d.ts +2 -11
  56. package/dist/types-ts4.5/view/EmbedCard/components/IFrame.d.ts +2 -1
  57. package/dist/types-ts4.5/view/EmbedModal/components/embed-content/index.d.ts +3 -7
  58. package/dist/types-ts4.5/view/EmbedModal/components/embed-content/indexOld.d.ts +8 -0
  59. package/dist/types-ts4.5/view/EmbedModal/components/link-info/index.d.ts +3 -3
  60. package/dist/types-ts4.5/view/EmbedModal/components/link-info/indexOld.d.ts +4 -0
  61. package/dist/types-ts4.5/view/FlexibleCard/components/container/index.d.ts +10 -10
  62. package/dist/types-ts4.5/view/FlexibleCard/components/container/indexOld.d.ts +24 -0
  63. package/dist/types-ts4.5/view/FlexibleCard/components/container/layered-link/LayeredLinkOld.d.ts +13 -0
  64. package/dist/types-ts4.5/view/FlexibleCard/components/container/layered-link/index.d.ts +2 -11
  65. package/package.json +1 -1
  66. /package/dist/cjs/view/EmbedModal/components/link-info/{styled.js → styledOld.js} +0 -0
  67. /package/dist/es2019/view/EmbedModal/components/link-info/{styled.js → styledOld.js} +0 -0
  68. /package/dist/esm/view/EmbedModal/components/link-info/{styled.js → styledOld.js} +0 -0
  69. /package/dist/types/view/EmbedModal/components/link-info/{styled.d.ts → styledOld.d.ts} +0 -0
  70. /package/dist/types-ts4.5/view/EmbedModal/components/link-info/{styled.d.ts → styledOld.d.ts} +0 -0
@@ -1,3 +1,6 @@
1
+ /* index.tsx generated by @compiled/babel-plugin v0.35.0 */
2
+ /* eslint-disable @atlaskit/design-system/consistent-css-prop-usage */
3
+ /* eslint-disable @atlaskit/ui-styling-standard/no-unsafe-values */
1
4
  "use strict";
2
5
 
3
6
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
@@ -5,92 +8,32 @@ var _typeof = require("@babel/runtime/helpers/typeof");
5
8
  Object.defineProperty(exports, "__esModule", {
6
9
  value: true
7
10
  });
8
- exports.getContainerStyles = exports.default = void 0;
9
- var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
+ exports.getChildrenOptions = exports.default = void 0;
12
+ Object.defineProperty(exports, "getContainerStyles", {
13
+ enumerable: true,
14
+ get: function get() {
15
+ return _indexOld.getContainerStyles;
16
+ }
17
+ });
18
+ require("./index.compiled.css");
19
+ var _runtime = require("@compiled/react/runtime");
10
20
  var _react = _interopRequireWildcard(require("react"));
11
- var _react2 = require("@emotion/react");
12
21
  var _reactMagneticDi = require("react-magnetic-di");
22
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
13
23
  var _colors = require("@atlaskit/theme/colors");
14
24
  var _constants = require("../../../../constants");
15
25
  var _flexibleUiContext = require("../../../../state/flexible-ui-context");
16
26
  var _utils = require("../../../../state/flexible-ui-context/utils");
17
27
  var _flexible = require("../../../../utils/flexible");
18
28
  var _hoverCardControl = _interopRequireDefault(require("./hover-card-control"));
29
+ var _indexOld = _interopRequireWildcard(require("./indexOld"));
19
30
  var _layeredLink = _interopRequireDefault(require("./layered-link"));
20
- var _templateObject;
21
- /**
22
- * @jsxRuntime classic
23
- * @jsx jsx
24
- */
25
- // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
26
31
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
27
32
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
28
- var elevationStyles = (0, _react2.css)({
29
- border: "1px solid ".concat("var(--ds-border, ".concat(_colors.N40, ")")),
30
- borderRadius: "var(--ds-border-radius-200, 8px)",
31
- margin: "var(--ds-space-025, 2px)"
32
- });
33
- var getGap = function getGap(size) {
34
- switch (size) {
35
- case _constants.SmartLinkSize.XLarge:
36
- return '1.25rem';
37
- case _constants.SmartLinkSize.Large:
38
- return '1rem';
39
- case _constants.SmartLinkSize.Medium:
40
- return '.5rem';
41
- case _constants.SmartLinkSize.Small:
42
- default:
43
- return '.25rem';
44
- }
45
- };
46
-
47
33
  /**
48
- * Get container padding based on smart link size
49
- * Equivalent version for DS primitives space token is getPrimitivesPaddingSpaceBySize()
50
- * at view/FlexibleCard/components/utils.tsx
34
+ * Eventually these exports should be removed on FF clean up bandicoots-compiled-migration-smartcard
51
35
  */
52
- var getPadding = function getPadding(size) {
53
- switch (size) {
54
- case _constants.SmartLinkSize.XLarge:
55
- return '1.5rem';
56
- case _constants.SmartLinkSize.Large:
57
- return '1.25rem';
58
- case _constants.SmartLinkSize.Medium:
59
- return '1rem';
60
- case _constants.SmartLinkSize.Small:
61
- default:
62
- return '.5rem';
63
- }
64
- };
65
- var clickableContainerStyles = (0, _react2.css)({
66
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
67
- 'a, button, .has-action': {
68
- position: 'relative',
69
- zIndex: 1
70
- }
71
- });
72
- var getContainerPaddingStyles = function getContainerPaddingStyles(size, hidePadding, childrenOptions) {
73
- var padding = hidePadding ? '0rem' : getPadding(size);
74
- var gap = getGap(size);
75
- var previewOnLeft = childrenOptions.previewOnLeft,
76
- previewOnRight = childrenOptions.previewOnRight;
77
- return (0, _react2.css)({
78
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
79
- '--container-padding': padding,
80
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
81
- '--container-gap-left': previewOnLeft ? gap : padding,
82
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
83
- '--container-gap-right': previewOnRight ? gap : padding,
84
- '--preview-block-width': '30%',
85
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
86
- padding: padding
87
- },
88
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
89
- previewOnLeft ? "padding-left: calc(var(--preview-block-width) + ".concat(gap, ");") : '',
90
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
91
- previewOnRight ? "padding-right: calc(var(--preview-block-width) + ".concat(gap, ");") : '');
92
- };
93
- var getChildrenOptions = function getChildrenOptions(children, context) {
36
+ var getChildrenOptions = exports.getChildrenOptions = function getChildrenOptions(children, context) {
94
37
  var options = {};
95
38
  if ((0, _utils.isFlexUiPreviewPresent)(context)) {
96
39
  _react.default.Children.map(children, function (child) {
@@ -109,12 +52,6 @@ var getChildrenOptions = function getChildrenOptions(children, context) {
109
52
  }
110
53
  return options;
111
54
  };
112
- var getContainerStyles = exports.getContainerStyles = function getContainerStyles(size, hideBackground, hideElevation, hidePadding, clickableContainer, childrenOptions) {
113
- var paddingCss = getContainerPaddingStyles(size, hidePadding, childrenOptions);
114
-
115
- // eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression -- needs manual remediation
116
- return (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n\t\tdisplay: flex;\n\t\tgap: ", " 0;\n\t\tflex-direction: column;\n\t\tmin-width: 0;\n\t\toverflow-x: hidden;\n\t\tposition: relative;\n\t\t", "\n\t\t", "\n ", "\n ", "\n &:hover ~ .actions-button-group {\n\t\t\topacity: 1;\n\t\t}\n\t\ta:focus,\n\t\t.has-action:focus {\n\t\t\toutline-offset: -2px;\n\t\t}\n\t"])), getGap(size), hideBackground ? '' : "background-color: ".concat("var(--ds-surface-raised, #FFFFFF)", ";"), paddingCss, hideElevation ? '' : elevationStyles, clickableContainer ? clickableContainerStyles : '');
117
- };
118
55
  var renderChildren = function renderChildren(children, containerSize, containerTheme, status, retry, onClick) {
119
56
  return _react.default.Children.map(children, function (child) {
120
57
  // TODO: EDM-6468: Use useFlexibleUiOptionContext for rendering options inside block/element instead
@@ -155,7 +92,7 @@ var getLayeredLink = function getLayeredLink(testId, context, children, onClick)
155
92
  var _ref2 = getTitleBlockProps(children) || {},
156
93
  target = _ref2.anchorTarget,
157
94
  text = _ref2.text;
158
- return (0, _react2.jsx)(_layeredLink.default, {
95
+ return /*#__PURE__*/_react.default.createElement(_layeredLink.default, {
159
96
  onClick: onClick,
160
97
  target: target,
161
98
  testId: testId,
@@ -163,6 +100,60 @@ var getLayeredLink = function getLayeredLink(testId, context, children, onClick)
163
100
  url: url
164
101
  });
165
102
  };
103
+ var baseStyleCommon = null;
104
+ var backgroundStyle = null;
105
+ var elevationStyles = null;
106
+ var clickableContainerStyles = null;
107
+ var gapStyleMap = {
108
+ xlarge: "_zulp1jvo",
109
+ large: "_zulph3jc",
110
+ medium: "_zulp1qos",
111
+ small: "_zulpfzsm"
112
+ };
113
+
114
+ /**
115
+ * Get container padding based on smart link size
116
+ * Equivalent version for DS primitives space token is getPrimitivesPaddingSpaceBySize()
117
+ * at view/FlexibleCard/components/utils.tsx
118
+ */
119
+ var getPadding = function getPadding(size) {
120
+ switch (size) {
121
+ case _constants.SmartLinkSize.XLarge:
122
+ return '1.5rem';
123
+ case _constants.SmartLinkSize.Large:
124
+ return '1.25rem';
125
+ case _constants.SmartLinkSize.Medium:
126
+ return '1rem';
127
+ case _constants.SmartLinkSize.Small:
128
+ default:
129
+ return '.5rem';
130
+ }
131
+ };
132
+ var getGap = function getGap(size) {
133
+ switch (size) {
134
+ case _constants.SmartLinkSize.XLarge:
135
+ return '1.25rem';
136
+ case _constants.SmartLinkSize.Large:
137
+ return '1rem';
138
+ case _constants.SmartLinkSize.Medium:
139
+ return '.5rem';
140
+ case _constants.SmartLinkSize.Small:
141
+ default:
142
+ return '.25rem';
143
+ }
144
+ };
145
+ var previewOnLeftStyleMap = {
146
+ xlarge: "_19bv15sf _y5vk1k92",
147
+ large: "_19bvf557 _y5vk1j6v",
148
+ medium: "_19bvqox2 _y5vk1kwk",
149
+ small: "_19bv1ltm _y5vk6mu8"
150
+ };
151
+ var previewOnRightStyleMap = {
152
+ xlarge: "_u5f315sf _1yob1k92",
153
+ large: "_u5f3f557 _1yob1j6v",
154
+ medium: "_u5f3qox2 _1yob1kwk",
155
+ small: "_u5f31ltm _1yob6mu8"
156
+ };
166
157
 
167
158
  /**
168
159
  * A container is a hidden component that build the Flexible Smart Link.
@@ -172,7 +163,7 @@ var getLayeredLink = function getLayeredLink(testId, context, children, onClick)
172
163
  * @internal
173
164
  * @see Block
174
165
  */
175
- var Container = function Container(_ref3) {
166
+ var ContainerNew = function ContainerNew(_ref3) {
176
167
  var children = _ref3.children,
177
168
  _ref3$clickableContai = _ref3.clickableContainer,
178
169
  clickableContainer = _ref3$clickableContai === void 0 ? false : _ref3$clickableContai,
@@ -195,20 +186,30 @@ var Container = function Container(_ref3) {
195
186
  testId = _ref3$testId === void 0 ? 'smart-links-container' : _ref3$testId,
196
187
  _ref3$theme = _ref3.theme,
197
188
  theme = _ref3$theme === void 0 ? _constants.SmartLinkTheme.Link : _ref3$theme;
189
+ var padding = hidePadding ? '0rem' : getPadding(size);
190
+ var gap = getGap(size);
198
191
  var context = (0, _react.useContext)(_flexibleUiContext.FlexibleUiContext);
199
- var childrenOptions = getChildrenOptions(children, context);
192
+ var _getChildrenOptions = getChildrenOptions(children, context),
193
+ previewOnLeft = _getChildrenOptions.previewOnLeft,
194
+ previewOnRight = _getChildrenOptions.previewOnRight;
200
195
  var canShowHoverPreview = showHoverPreview && status === 'resolved';
201
196
  // `retry` object contains action that can be performed on
202
197
  // unresolved link (unauthorized, forbidden, not found, etc.)
203
198
  var canShowAuthTooltip = showHoverPreview && status === 'unauthorized' && retry !== undefined;
204
- var container = (0, _react2.jsx)("div", {
205
- // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
206
- css: getContainerStyles(size, hideBackground, hideElevation, hidePadding, clickableContainer, childrenOptions),
199
+ var containerPaddingStyles = null;
200
+ var container = /*#__PURE__*/_react.default.createElement("div", {
207
201
  "data-smart-link-container": true,
208
- "data-testid": testId
202
+ "data-testid": testId,
203
+ className: (0, _runtime.ax)(["_1e0c1txw _2lx21bp4 _1ul9idpf _1reo15vq _kqswh2mm _1pcmkb7n _1v7y1i6y _ufn21i6y", gapStyleMap[size], !hideBackground && "_bfhkhp5a", "_1yt418y6 _jb7v18y6 _y5vk167t _1yob1wow _r37x1r5k", previewOnLeft && previewOnLeftStyleMap[size], previewOnRight && previewOnRightStyleMap[size], !hideElevation && "_19itn8v0 _2rkopd34 _18s8v77o", clickableContainer && "_nqwih2mm _18ywh2mm _1nq3h2mm _1t4ckb7n _1nxdkb7n _xnbykb7n"]),
204
+ style: {
205
+ "--_1xumd0e": (0, _runtime.ix)(padding),
206
+ "--_73mooq": (0, _runtime.ix)(previewOnLeft ? gap : padding),
207
+ "--_12k13bg": (0, _runtime.ix)(previewOnRight ? gap : padding),
208
+ "--_vzvmm2": (0, _runtime.ix)("1px solid ".concat("var(--ds-border, ".concat(_colors.N40, ")")))
209
+ }
209
210
  }, clickableContainer ? getLayeredLink(testId, context, children, onClick) : null, renderChildren(children, size, theme, status, retry, onClick));
210
211
  if (context !== null && context !== void 0 && context.url && (canShowHoverPreview || canShowAuthTooltip)) {
211
- return (0, _react2.jsx)(_hoverCardControl.default, {
212
+ return /*#__PURE__*/_react.default.createElement(_hoverCardControl.default, {
212
213
  isHoverPreview: canShowHoverPreview,
213
214
  isAuthTooltip: canShowAuthTooltip,
214
215
  actionOptions: actionOptions,
@@ -219,4 +220,10 @@ var Container = function Container(_ref3) {
219
220
  }
220
221
  return container;
221
222
  };
223
+ var Container = function Container(props) {
224
+ if ((0, _platformFeatureFlags.fg)('bandicoots-compiled-migration-smartcard')) {
225
+ return /*#__PURE__*/_react.default.createElement(ContainerNew, props);
226
+ }
227
+ return /*#__PURE__*/_react.default.createElement(_indexOld.default, props);
228
+ };
222
229
  var _default = exports.default = Container;
@@ -0,0 +1,226 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.getContainerStyles = exports.getChildrenOptions = exports.default = void 0;
9
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
10
+ var _react = _interopRequireWildcard(require("react"));
11
+ var _react2 = require("@emotion/react");
12
+ var _reactMagneticDi = require("react-magnetic-di");
13
+ var _colors = require("@atlaskit/theme/colors");
14
+ var _constants = require("../../../../constants");
15
+ var _flexibleUiContext = require("../../../../state/flexible-ui-context");
16
+ var _utils = require("../../../../state/flexible-ui-context/utils");
17
+ var _flexible = require("../../../../utils/flexible");
18
+ var _hoverCardControl = _interopRequireDefault(require("./hover-card-control"));
19
+ var _layeredLink = _interopRequireDefault(require("./layered-link"));
20
+ var _templateObject;
21
+ /**
22
+ * @jsxRuntime classic
23
+ * @jsx jsx
24
+ */
25
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
26
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
27
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
28
+ var elevationStyles = (0, _react2.css)({
29
+ border: "1px solid ".concat("var(--ds-border, ".concat(_colors.N40, ")")),
30
+ borderRadius: "var(--ds-border-radius-200, 8px)",
31
+ margin: "var(--ds-space-025, 2px)"
32
+ });
33
+ var clickableContainerStyles = (0, _react2.css)({
34
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
35
+ 'a, button, .has-action': {
36
+ position: 'relative',
37
+ zIndex: 1
38
+ }
39
+ });
40
+ var getGap = function getGap(size) {
41
+ switch (size) {
42
+ case _constants.SmartLinkSize.XLarge:
43
+ return '1.25rem';
44
+ case _constants.SmartLinkSize.Large:
45
+ return '1rem';
46
+ case _constants.SmartLinkSize.Medium:
47
+ return '.5rem';
48
+ case _constants.SmartLinkSize.Small:
49
+ default:
50
+ return '.25rem';
51
+ }
52
+ };
53
+
54
+ /**
55
+ * Get container padding based on smart link size
56
+ * Equivalent version for DS primitives space token is getPrimitivesPaddingSpaceBySize()
57
+ * at view/FlexibleCard/components/utils.tsx
58
+ */
59
+ var getPadding = function getPadding(size) {
60
+ switch (size) {
61
+ case _constants.SmartLinkSize.XLarge:
62
+ return '1.5rem';
63
+ case _constants.SmartLinkSize.Large:
64
+ return '1.25rem';
65
+ case _constants.SmartLinkSize.Medium:
66
+ return '1rem';
67
+ case _constants.SmartLinkSize.Small:
68
+ default:
69
+ return '.5rem';
70
+ }
71
+ };
72
+ var getContainerPaddingStyles = function getContainerPaddingStyles(size, hidePadding, childrenOptions) {
73
+ var padding = hidePadding ? '0rem' : getPadding(size);
74
+ var gap = getGap(size);
75
+ var previewOnLeft = childrenOptions.previewOnLeft,
76
+ previewOnRight = childrenOptions.previewOnRight;
77
+ return (0, _react2.css)({
78
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
79
+ '--container-padding': padding,
80
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
81
+ '--container-gap-left': previewOnLeft ? gap : padding,
82
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
83
+ '--container-gap-right': previewOnRight ? gap : padding,
84
+ '--preview-block-width': '30%',
85
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
86
+ padding: padding
87
+ },
88
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
89
+ previewOnLeft ? "padding-left: calc(var(--preview-block-width) + ".concat(gap, ");") : '',
90
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-unsafe-values -- Ignored via go/DSP-18766
91
+ previewOnRight ? "padding-right: calc(var(--preview-block-width) + ".concat(gap, ");") : '');
92
+ };
93
+
94
+ /**
95
+ * @deprecated consider removing on FF bandicoots-compiled-migration-smartcard
96
+ */
97
+ var getContainerStyles = exports.getContainerStyles = function getContainerStyles(size, hideBackground, hideElevation, hidePadding, clickableContainer, childrenOptions) {
98
+ var paddingCss = getContainerPaddingStyles(size, hidePadding, childrenOptions);
99
+
100
+ // eslint-disable-next-line @atlaskit/design-system/no-css-tagged-template-expression -- needs manual remediation
101
+ return (0, _react2.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n\t\tdisplay: flex;\n\t\tgap: ", " 0;\n\t\tflex-direction: column;\n\t\tmin-width: 0;\n\t\toverflow-x: hidden;\n\t\tposition: relative;\n\t\t", "\n\t\t", "\n ", "\n ", "\n &:hover ~ .actions-button-group {\n\t\t\topacity: 1;\n\t\t}\n\t\ta:focus,\n\t\t.has-action:focus {\n\t\t\toutline-offset: -2px;\n\t\t}\n\t"])), getGap(size), hideBackground ? '' : "background-color: ".concat("var(--ds-surface-raised, #FFFFFF)", ";"), paddingCss, hideElevation ? '' : elevationStyles, clickableContainer ? clickableContainerStyles : '');
102
+ };
103
+ var getLayeredLink = function getLayeredLink(testId, context, children, onClick) {
104
+ var _ref = context || {},
105
+ title = _ref.title,
106
+ _ref$url = _ref.url,
107
+ url = _ref$url === void 0 ? '' : _ref$url;
108
+ var _ref2 = getTitleBlockProps(children) || {},
109
+ target = _ref2.anchorTarget,
110
+ text = _ref2.text;
111
+ return (0, _react2.jsx)(_layeredLink.default, {
112
+ onClick: onClick,
113
+ target: target,
114
+ testId: testId,
115
+ text: text || title,
116
+ url: url
117
+ });
118
+ };
119
+ var getTitleBlockProps = function getTitleBlockProps(children) {
120
+ var block = _react.default.Children.toArray(children).find(function (child) {
121
+ return (0, _flexible.isFlexibleUiTitleBlock)(child);
122
+ });
123
+ if ( /*#__PURE__*/_react.default.isValidElement(block)) {
124
+ return block.props;
125
+ }
126
+ };
127
+ var getChildrenOptions = exports.getChildrenOptions = function getChildrenOptions(children, context) {
128
+ var options = {};
129
+ if ((0, _utils.isFlexUiPreviewPresent)(context)) {
130
+ _react.default.Children.map(children, function (child) {
131
+ if ( /*#__PURE__*/_react.default.isValidElement(child)) {
132
+ if ((0, _flexible.isFlexibleUiPreviewBlock)(child)) {
133
+ var placement = child.props.placement;
134
+ if (placement === _constants.MediaPlacement.Left) {
135
+ options.previewOnLeft = true;
136
+ }
137
+ if (placement === _constants.MediaPlacement.Right) {
138
+ options.previewOnRight = true;
139
+ }
140
+ }
141
+ }
142
+ });
143
+ }
144
+ return options;
145
+ };
146
+ var renderChildren = function renderChildren(children, containerSize, containerTheme, status, retry, onClick) {
147
+ return _react.default.Children.map(children, function (child) {
148
+ // TODO: EDM-6468: Use useFlexibleUiOptionContext for rendering options inside block/element instead
149
+ if ( /*#__PURE__*/_react.default.isValidElement(child) && (0, _flexible.isFlexibleUiBlock)(child)) {
150
+ var blockSize = child.props.size;
151
+ var size = blockSize || containerSize;
152
+ if ((0, _flexible.isFlexibleUiTitleBlock)(child)) {
153
+ return /*#__PURE__*/_react.default.cloneElement(child, {
154
+ // @ts-expect-error
155
+ onClick: onClick,
156
+ retry: retry,
157
+ size: size,
158
+ status: status,
159
+ theme: containerTheme
160
+ });
161
+ }
162
+ // @ts-expect-error
163
+ return /*#__PURE__*/_react.default.cloneElement(child, {
164
+ size: size,
165
+ status: status
166
+ });
167
+ }
168
+ });
169
+ };
170
+
171
+ /**
172
+ * A container is a hidden component that build the Flexible Smart Link.
173
+ * All the Flexible UI components are wrapped inside the container.
174
+ * It inherits the ui props from Card component and applies the custom styling
175
+ * accordingly.
176
+ * @internal
177
+ * @see Block
178
+ */
179
+ var ContainerOld = function ContainerOld(_ref3) {
180
+ var children = _ref3.children,
181
+ _ref3$clickableContai = _ref3.clickableContainer,
182
+ clickableContainer = _ref3$clickableContai === void 0 ? false : _ref3$clickableContai,
183
+ _ref3$hideBackground = _ref3.hideBackground,
184
+ hideBackground = _ref3$hideBackground === void 0 ? false : _ref3$hideBackground,
185
+ _ref3$hideElevation = _ref3.hideElevation,
186
+ hideElevation = _ref3$hideElevation === void 0 ? false : _ref3$hideElevation,
187
+ _ref3$hidePadding = _ref3.hidePadding,
188
+ hidePadding = _ref3$hidePadding === void 0 ? false : _ref3$hidePadding,
189
+ onClick = _ref3.onClick,
190
+ retry = _ref3.retry,
191
+ _ref3$showHoverPrevie = _ref3.showHoverPreview,
192
+ showHoverPreview = _ref3$showHoverPrevie === void 0 ? false : _ref3$showHoverPrevie,
193
+ hoverPreviewOptions = _ref3.hoverPreviewOptions,
194
+ actionOptions = _ref3.actionOptions,
195
+ _ref3$size = _ref3.size,
196
+ size = _ref3$size === void 0 ? _constants.SmartLinkSize.Medium : _ref3$size,
197
+ status = _ref3.status,
198
+ _ref3$testId = _ref3.testId,
199
+ testId = _ref3$testId === void 0 ? 'smart-links-container' : _ref3$testId,
200
+ _ref3$theme = _ref3.theme,
201
+ theme = _ref3$theme === void 0 ? _constants.SmartLinkTheme.Link : _ref3$theme;
202
+ var context = (0, _react.useContext)(_flexibleUiContext.FlexibleUiContext);
203
+ var childrenOptions = getChildrenOptions(children, context);
204
+ var canShowHoverPreview = showHoverPreview && status === 'resolved';
205
+ // `retry` object contains action that can be performed on
206
+ // unresolved link (unauthorized, forbidden, not found, etc.)
207
+ var canShowAuthTooltip = showHoverPreview && status === 'unauthorized' && retry !== undefined;
208
+ var container = (0, _react2.jsx)("div", {
209
+ // eslint-disable-next-line @atlaskit/design-system/consistent-css-prop-usage -- Ignored via go/DSP-18766
210
+ css: getContainerStyles(size, hideBackground, hideElevation, hidePadding, clickableContainer, childrenOptions),
211
+ "data-smart-link-container": true,
212
+ "data-testid": testId
213
+ }, clickableContainer ? getLayeredLink(testId, context, children, onClick) : null, renderChildren(children, size, theme, status, retry, onClick));
214
+ if (context !== null && context !== void 0 && context.url && (canShowHoverPreview || canShowAuthTooltip)) {
215
+ return (0, _react2.jsx)(_hoverCardControl.default, {
216
+ isHoverPreview: canShowHoverPreview,
217
+ isAuthTooltip: canShowAuthTooltip,
218
+ actionOptions: actionOptions,
219
+ testId: testId,
220
+ url: context.url,
221
+ hoverPreviewOptions: hoverPreviewOptions
222
+ }, container);
223
+ }
224
+ return container;
225
+ };
226
+ var _default = exports.default = ContainerOld;
@@ -0,0 +1,75 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = require("@emotion/react");
8
+ var _useLinkClicked = require("../../../../../state/analytics/useLinkClicked");
9
+ /**
10
+ * @jsxRuntime classic
11
+ * @jsx jsx
12
+ */
13
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
14
+
15
+ var styles = (0, _react.css)({
16
+ // Stretch the invisible link over the whole of the post.
17
+ // Hide the link’s text.
18
+ top: 0,
19
+ right: 0,
20
+ bottom: 0,
21
+ left: 0,
22
+ overflow: 'hidden',
23
+ textIndent: '100%',
24
+ whiteSpace: 'nowrap',
25
+ // Needs a heightened specificity to trump other anchor.
26
+ // Stack it under all other links in the post text.
27
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
28
+ 'a&.layered-link': {
29
+ position: 'absolute',
30
+ zIndex: 0
31
+ },
32
+ // When hovering over the layered link, any hidden action buttons inside
33
+ // the Container should become visible.
34
+ // As actions resides inside blocks and layered link is expected to be
35
+ // on the same level of blocks. That makes the blocks, e.g. TitleBlock,
36
+ // its sibling. Using general sibling combinator here to apply styling to
37
+ // all the siblings of layered link.
38
+ // The general sibling combinator (~) separates two selectors and matches all
39
+ // iterations of the second element, that are following the first element
40
+ // (though not necessarily immediately), and are children of the same parent
41
+ // element.
42
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
43
+ '&:hover ~ *': {
44
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
45
+ '.actions-button-group': {
46
+ opacity: 1
47
+ }
48
+ }
49
+ });
50
+
51
+ /**
52
+ * An anchor component to cover the entire container creating a clickable area.
53
+ * @internal
54
+ * @see `clickableContainer`
55
+ */
56
+ var LayeredLinkOld = function LayeredLinkOld(_ref) {
57
+ var onClick = _ref.onClick,
58
+ target = _ref.target,
59
+ testId = _ref.testId,
60
+ text = _ref.text,
61
+ url = _ref.url;
62
+ var onMouseDown = (0, _useLinkClicked.useMouseDownEvent)();
63
+ return (0, _react.jsx)("a", {
64
+ // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
65
+ className: "layered-link",
66
+ css: styles,
67
+ "data-testid": "".concat(testId, "-layered-link"),
68
+ href: url,
69
+ onClick: onClick,
70
+ onMouseDown: onMouseDown,
71
+ target: target,
72
+ tabIndex: -1 // Hide tab index and let the title link be the link.
73
+ }, text);
74
+ };
75
+ var _default = exports.default = LayeredLinkOld;
@@ -0,0 +1,11 @@
1
+ ._154iidpf{top:0}
2
+ ._18m915vq{overflow-y:hidden}
3
+ ._1ltvidpf{left:0}
4
+ ._1reo15vq{overflow-x:hidden}
5
+ ._1xi2idpf{right:0}
6
+ ._94n5idpf{bottom:0}
7
+ ._a52dkb7n:hover~* .actions-button-group{opacity:1}
8
+ ._azhw1osq{text-indent:100%}
9
+ ._o5721q9c{white-space:nowrap}
10
+ a._hboxstnw.layered-link{position:absolute}
11
+ a._obkmidpf.layered-link{z-index:0}
@@ -1,69 +1,37 @@
1
+ /* index.tsx generated by @compiled/babel-plugin v0.35.0 */
1
2
  "use strict";
2
3
 
4
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
3
6
  Object.defineProperty(exports, "__esModule", {
4
7
  value: true
5
8
  });
6
9
  exports.default = void 0;
7
- var _react = require("@emotion/react");
10
+ require("./index.compiled.css");
11
+ var React = _interopRequireWildcard(require("react"));
12
+ var _runtime = require("@compiled/react/runtime");
13
+ var _platformFeatureFlags = require("@atlaskit/platform-feature-flags");
8
14
  var _useLinkClicked = require("../../../../../state/analytics/useLinkClicked");
9
- /**
10
- * @jsxRuntime classic
11
- * @jsx jsx
12
- */
13
- // eslint-disable-next-line @atlaskit/ui-styling-standard/use-compiled -- Ignored via go/DSP-18766
14
-
15
- var styles = (0, _react.css)({
16
- // Stretch the invisible link over the whole of the post.
17
- // Hide the link’s text.
18
- top: 0,
19
- right: 0,
20
- bottom: 0,
21
- left: 0,
22
- overflow: 'hidden',
23
- textIndent: '100%',
24
- whiteSpace: 'nowrap',
25
- // Needs a heightened specificity to trump other anchor.
26
- // Stack it under all other links in the post text.
27
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
28
- 'a&.layered-link': {
29
- position: 'absolute',
30
- zIndex: 0
31
- },
32
- // When hovering over the layered link, any hidden action buttons inside
33
- // the Container should become visible.
34
- // As actions resides inside blocks and layered link is expected to be
35
- // on the same level of blocks. That makes the blocks, e.g. TitleBlock,
36
- // its sibling. Using general sibling combinator here to apply styling to
37
- // all the siblings of layered link.
38
- // The general sibling combinator (~) separates two selectors and matches all
39
- // iterations of the second element, that are following the first element
40
- // (though not necessarily immediately), and are children of the same parent
41
- // element.
42
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
43
- '&:hover ~ *': {
44
- // eslint-disable-next-line @atlaskit/ui-styling-standard/no-nested-selectors -- Ignored via go/DSP-18766
45
- '.actions-button-group': {
46
- opacity: 1
47
- }
48
- }
49
- });
15
+ var _LayeredLinkOld = _interopRequireDefault(require("./LayeredLinkOld"));
16
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
17
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
18
+ var styles = null;
50
19
 
51
20
  /**
52
21
  * An anchor component to cover the entire container creating a clickable area.
53
22
  * @internal
54
23
  * @see `clickableContainer`
55
24
  */
56
- var LayeredLink = function LayeredLink(_ref) {
25
+ var LayeredLinkNew = function LayeredLinkNew(_ref) {
57
26
  var onClick = _ref.onClick,
58
27
  target = _ref.target,
59
28
  testId = _ref.testId,
60
29
  text = _ref.text,
61
30
  url = _ref.url;
62
31
  var onMouseDown = (0, _useLinkClicked.useMouseDownEvent)();
63
- return (0, _react.jsx)("a", {
32
+ return /*#__PURE__*/React.createElement("a", {
64
33
  // eslint-disable-next-line @atlaskit/ui-styling-standard/no-classname-prop -- Ignored via go/DSP-18766
65
- className: "layered-link",
66
- css: styles,
34
+ className: (0, _runtime.ax)(["_1reo15vq _18m915vq _154iidpf _1xi2idpf _94n5idpf _1ltvidpf _azhw1osq _o5721q9c _hboxstnw _obkmidpf _a52dkb7n", "layered-link"]),
67
35
  "data-testid": "".concat(testId, "-layered-link"),
68
36
  href: url,
69
37
  onClick: onClick,
@@ -72,4 +40,10 @@ var LayeredLink = function LayeredLink(_ref) {
72
40
  tabIndex: -1 // Hide tab index and let the title link be the link.
73
41
  }, text);
74
42
  };
43
+ var LayeredLink = function LayeredLink(props) {
44
+ if ((0, _platformFeatureFlags.fg)('bandicoots-compiled-migration-smartcard')) {
45
+ return /*#__PURE__*/React.createElement(LayeredLinkNew, props);
46
+ }
47
+ return /*#__PURE__*/React.createElement(_LayeredLinkOld.default, props);
48
+ };
75
49
  var _default = exports.default = LayeredLink;