@atlaskit/smart-card 17.1.0 → 17.3.1

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 (68) hide show
  1. package/CHANGELOG.md +28 -0
  2. package/dist/cjs/index.js +6 -0
  3. package/dist/cjs/version.json +1 -1
  4. package/dist/cjs/view/FlexibleCard/components/actions/{delete-action → action}/index.js +40 -25
  5. package/dist/cjs/view/FlexibleCard/components/actions/{types.js → action/types.js} +0 -0
  6. package/dist/cjs/view/FlexibleCard/components/actions/index.js +3 -1
  7. package/dist/cjs/view/FlexibleCard/components/actions/utils.js +34 -6
  8. package/dist/cjs/view/FlexibleCard/components/blocks/action-group/index.js +1 -1
  9. package/dist/cjs/view/FlexibleCard/components/blocks/element-group/index.js +7 -6
  10. package/dist/cjs/view/FlexibleCard/components/blocks/index.js +9 -1
  11. package/dist/cjs/view/FlexibleCard/components/blocks/metadata-block/index.js +116 -0
  12. package/dist/cjs/view/FlexibleCard/components/blocks/metadata-block/types.js +5 -0
  13. package/dist/cjs/view/FlexibleCard/components/blocks/title-block/errored/index.js +1 -1
  14. package/dist/cjs/view/FlexibleCard/components/blocks/utils.js +20 -10
  15. package/dist/cjs/view/FlexibleCard/components/elements/avatar-group/index.js +24 -2
  16. package/dist/cjs/view/FlexibleCard/components/elements/link/index.js +1 -1
  17. package/dist/cjs/view/FlexibleCard/components/elements/utils.js +49 -40
  18. package/dist/cjs/view/FlexibleCard/components/utils.js +1 -1
  19. package/dist/es2019/index.js +1 -1
  20. package/dist/es2019/version.json +1 -1
  21. package/dist/es2019/view/FlexibleCard/components/actions/{delete-action → action}/index.js +31 -15
  22. package/dist/es2019/view/FlexibleCard/components/actions/{types.js → action/types.js} +0 -0
  23. package/dist/es2019/view/FlexibleCard/components/actions/index.js +5 -3
  24. package/dist/es2019/view/FlexibleCard/components/actions/utils.js +27 -4
  25. package/dist/es2019/view/FlexibleCard/components/blocks/action-group/index.js +1 -1
  26. package/dist/es2019/view/FlexibleCard/components/blocks/element-group/index.js +12 -5
  27. package/dist/es2019/view/FlexibleCard/components/blocks/index.js +2 -1
  28. package/dist/es2019/view/FlexibleCard/components/blocks/metadata-block/index.js +97 -0
  29. package/dist/{esm/view/FlexibleCard/components/actions → es2019/view/FlexibleCard/components/blocks/metadata-block}/types.js +0 -0
  30. package/dist/es2019/view/FlexibleCard/components/blocks/title-block/errored/index.js +1 -0
  31. package/dist/es2019/view/FlexibleCard/components/blocks/utils.js +16 -9
  32. package/dist/es2019/view/FlexibleCard/components/elements/avatar-group/index.js +28 -2
  33. package/dist/es2019/view/FlexibleCard/components/elements/link/index.js +1 -0
  34. package/dist/es2019/view/FlexibleCard/components/elements/utils.js +49 -38
  35. package/dist/es2019/view/FlexibleCard/components/utils.js +0 -1
  36. package/dist/esm/index.js +1 -1
  37. package/dist/esm/version.json +1 -1
  38. package/dist/esm/view/FlexibleCard/components/actions/action/index.js +82 -0
  39. package/dist/esm/view/FlexibleCard/components/actions/action/types.js +1 -0
  40. package/dist/esm/view/FlexibleCard/components/actions/index.js +5 -3
  41. package/dist/esm/view/FlexibleCard/components/actions/utils.js +26 -4
  42. package/dist/esm/view/FlexibleCard/components/blocks/action-group/index.js +1 -1
  43. package/dist/esm/view/FlexibleCard/components/blocks/element-group/index.js +7 -6
  44. package/dist/esm/view/FlexibleCard/components/blocks/index.js +2 -1
  45. package/dist/esm/view/FlexibleCard/components/blocks/metadata-block/index.js +97 -0
  46. package/dist/esm/view/FlexibleCard/components/blocks/metadata-block/types.js +1 -0
  47. package/dist/esm/view/FlexibleCard/components/blocks/title-block/errored/index.js +1 -1
  48. package/dist/esm/view/FlexibleCard/components/blocks/utils.js +17 -10
  49. package/dist/esm/view/FlexibleCard/components/elements/avatar-group/index.js +24 -2
  50. package/dist/esm/view/FlexibleCard/components/elements/link/index.js +1 -1
  51. package/dist/esm/view/FlexibleCard/components/elements/utils.js +49 -40
  52. package/dist/esm/view/FlexibleCard/components/utils.js +1 -1
  53. package/dist/types/index.d.ts +1 -1
  54. package/dist/types/view/FlexibleCard/components/actions/action/index.d.ts +5 -0
  55. package/dist/types/view/FlexibleCard/components/actions/action/types.d.ts +18 -0
  56. package/dist/types/view/FlexibleCard/components/actions/index.d.ts +1 -1
  57. package/dist/types/view/FlexibleCard/components/actions/utils.d.ts +2 -1
  58. package/dist/types/view/FlexibleCard/components/blocks/element-group/types.d.ts +2 -0
  59. package/dist/types/view/FlexibleCard/components/blocks/index.d.ts +1 -0
  60. package/dist/types/view/FlexibleCard/components/blocks/metadata-block/index.d.ts +4 -0
  61. package/dist/types/view/FlexibleCard/components/blocks/metadata-block/types.d.ts +6 -0
  62. package/dist/types/view/FlexibleCard/components/blocks/utils.d.ts +1 -0
  63. package/dist/types/view/FlexibleCard/components/elements/avatar-group/index.d.ts +1 -0
  64. package/dist/types/view/FlexibleCard/components/elements/avatar-group/types.d.ts +1 -2
  65. package/package.json +1 -1
  66. package/dist/esm/view/FlexibleCard/components/actions/delete-action/index.js +0 -64
  67. package/dist/types/view/FlexibleCard/components/actions/delete-action/index.d.ts +0 -5
  68. package/dist/types/view/FlexibleCard/components/actions/types.d.ts +0 -10
package/CHANGELOG.md CHANGED
@@ -1,5 +1,33 @@
1
1
  # @atlaskit/smart-card
2
2
 
3
+ ## 17.3.1
4
+
5
+ ### Patch Changes
6
+
7
+ - [`66dc86e0331`](https://bitbucket.org/atlassian/atlassian-frontend/commits/66dc86e0331) - Flexible UI: Check for null element
8
+
9
+ ## 17.3.0
10
+
11
+ ### Minor Changes
12
+
13
+ - [`dab29fc6697`](https://bitbucket.org/atlassian/atlassian-frontend/commits/dab29fc6697) - [ux] Flexible UI: AvatarGroup sizing updated for small and medium size
14
+
15
+ ### Patch Changes
16
+
17
+ - [`25408fac413`](https://bitbucket.org/atlassian/atlassian-frontend/commits/25408fac413) - Flexible UI: Add MetadataBlock example
18
+
19
+ ## 17.2.1
20
+
21
+ ### Patch Changes
22
+
23
+ - [`1d701660954`](https://bitbucket.org/atlassian/atlassian-frontend/commits/1d701660954) - Refactored deleteAction into a re-usable action component
24
+
25
+ ## 17.2.0
26
+
27
+ ### Minor Changes
28
+
29
+ - [`3200ce3abc5`](https://bitbucket.org/atlassian/atlassian-frontend/commits/3200ce3abc5) - Flexible UI: Add MetadataBlock
30
+
3
31
  ## 17.1.0
4
32
 
5
33
  ### Minor Changes
package/dist/cjs/index.js CHANGED
@@ -53,6 +53,12 @@ Object.defineProperty(exports, "EmbedResizeMessageListener", {
53
53
  return _EmbedResizeMessageListener.EmbedResizeMessageListener;
54
54
  }
55
55
  });
56
+ Object.defineProperty(exports, "MetadataBlock", {
57
+ enumerable: true,
58
+ get: function get() {
59
+ return _blocks.MetadataBlock;
60
+ }
61
+ });
56
62
  Object.defineProperty(exports, "Provider", {
57
63
  enumerable: true,
58
64
  get: function get() {
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/smart-card",
3
- "version": "17.1.0",
3
+ "version": "17.3.1",
4
4
  "sideEffects": false
5
5
  }
@@ -11,22 +11,16 @@ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/hel
11
11
 
12
12
  var _react = _interopRequireDefault(require("react"));
13
13
 
14
- var _reactIntlNext = require("react-intl-next");
15
-
16
14
  var _core = require("@emotion/core");
17
15
 
18
16
  var _customThemeButton = _interopRequireDefault(require("@atlaskit/button/custom-theme-button"));
19
17
 
20
- var _cross = _interopRequireDefault(require("@atlaskit/icon/glyph/cross"));
21
-
22
18
  var _constants = require("../../../../../constants");
23
19
 
24
20
  var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
25
21
 
26
22
  var _utils = require("../../utils");
27
23
 
28
- var _messages = require("../../../../../messages");
29
-
30
24
  var _token = require("../../../../../utils/token");
31
25
 
32
26
  var _utils2 = require("../../../../../utils");
@@ -46,38 +40,59 @@ var getWidth = function getWidth(size) {
46
40
  }
47
41
  };
48
42
 
49
- var getStyles = function getStyles(size) {
43
+ var getIconStyles = function getIconStyles(size) {
50
44
  return (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n color: ", ";\n ", ";\n"])), _token.tokens.actionIcon, (0, _utils.getIconSizeStyles)(getWidth(size)));
51
45
  };
52
46
 
53
- var DeleteAction = function DeleteAction(_ref) {
54
- var _ref$appearance = _ref.appearance,
55
- appearance = _ref$appearance === void 0 ? 'subtle' : _ref$appearance,
56
- content = _ref.content,
57
- onClick = _ref.onClick,
58
- _ref$size = _ref.size,
59
- size = _ref$size === void 0 ? _constants.SmartLinkSize.Medium : _ref$size,
60
- _ref$testId = _ref.testId,
61
- testId = _ref$testId === void 0 ? 'smart-action-delete-action' : _ref$testId;
47
+ var ActionIcon = function ActionIcon(_ref) {
48
+ var size = _ref.size,
49
+ testId = _ref.testId,
50
+ icon = _ref.icon;
51
+ return (0, _core.jsx)("span", {
52
+ css: getIconStyles(size),
53
+ "data-testid": "".concat(testId, "-icon")
54
+ }, icon);
55
+ };
56
+
57
+ var Action = function Action(_ref2) {
58
+ var _ref2$appearance = _ref2.appearance,
59
+ appearance = _ref2$appearance === void 0 ? 'subtle' : _ref2$appearance,
60
+ content = _ref2.content,
61
+ onClick = _ref2.onClick,
62
+ _ref2$size = _ref2.size,
63
+ size = _ref2$size === void 0 ? _constants.SmartLinkSize.Medium : _ref2$size,
64
+ _ref2$testId = _ref2.testId,
65
+ testId = _ref2$testId === void 0 ? 'smart-action' : _ref2$testId,
66
+ icon = _ref2.icon,
67
+ _ref2$iconPosition = _ref2.iconPosition,
68
+ iconPosition = _ref2$iconPosition === void 0 ? 'before' : _ref2$iconPosition,
69
+ tooltipMessage = _ref2.tooltipMessage;
62
70
 
63
71
  if (!onClick) {
64
72
  return null;
65
73
  }
66
74
 
75
+ var iconBefore = iconPosition === 'before' ? (0, _core.jsx)(ActionIcon, {
76
+ size: size,
77
+ testId: testId,
78
+ icon: icon
79
+ }) : undefined;
80
+ var iconAfter = iconPosition === 'after' ? (0, _core.jsx)(ActionIcon, {
81
+ size: size,
82
+ testId: testId,
83
+ icon: icon
84
+ }) : undefined;
67
85
  return (0, _core.jsx)(_tooltip.default, {
68
- content: (0, _core.jsx)(_reactIntlNext.FormattedMessage, _messages.messages.delete)
86
+ content: tooltipMessage
69
87
  }, (0, _core.jsx)(_customThemeButton.default, {
70
88
  spacing: "none",
71
89
  appearance: appearance,
72
90
  testId: testId,
73
- onClick: (0, _utils2.handleOnClick)(onClick)
74
- }, content || (0, _core.jsx)("span", {
75
- css: getStyles(size),
76
- "data-testid": "".concat(testId, "-icon")
77
- }, (0, _core.jsx)(_cross.default, {
78
- label: "Delete"
79
- }))));
91
+ onClick: (0, _utils2.handleOnClick)(onClick),
92
+ iconBefore: iconBefore,
93
+ iconAfter: iconAfter
94
+ }, content));
80
95
  };
81
96
 
82
- var _default = DeleteAction;
97
+ var _default = Action;
83
98
  exports.default = _default;
@@ -12,5 +12,7 @@ var _utils = require("./utils");
12
12
  // Attention: Keep the export name and action name the same.
13
13
  // This will help reducing the code for mapping action inside
14
14
  // createAction and renderActionItems
15
- var DeleteAction = (0, _utils.createAction)(_constants.ActionName.DeleteAction);
15
+ // UIActions infer that you do not need to get any data from the context.
16
+ // DataActions infer that the action depends on the data from the context.
17
+ var DeleteAction = (0, _utils.createUIAction)(_constants.ActionName.DeleteAction);
16
18
  exports.DeleteAction = DeleteAction;
@@ -7,7 +7,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
- exports.createAction = void 0;
10
+ exports.createUIAction = exports.createDataAction = void 0;
11
11
 
12
12
  var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
13
 
@@ -19,14 +19,27 @@ var _flexibleUiContext = require("../../../../state/flexible-ui-context");
19
19
 
20
20
  var _react = _interopRequireWildcard(require("react"));
21
21
 
22
- var _deleteAction = _interopRequireDefault(require("./delete-action"));
22
+ var _action = _interopRequireDefault(require("./action"));
23
+
24
+ var _reactIntlNext = require("react-intl-next");
25
+
26
+ var _messages = require("../../../../messages");
27
+
28
+ var _cross = _interopRequireDefault(require("@atlaskit/icon/glyph/cross"));
23
29
 
24
30
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
31
 
26
32
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
33
 
28
34
  var actionMappings = (0, _defineProperty2.default)({}, _constants.ActionName.DeleteAction, {
29
- component: _deleteAction.default
35
+ component: _action.default,
36
+ props: {
37
+ testId: 'smart-action-delete-action',
38
+ icon: /*#__PURE__*/_react.default.createElement(_cross.default, {
39
+ label: "Delete"
40
+ }),
41
+ toolTipMessage: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages.delete)
42
+ }
30
43
  });
31
44
 
32
45
  var getContextKey = function getContextKey(name) {
@@ -43,13 +56,12 @@ var getActionData = function getActionData(actionName, contextKey, context) {
43
56
  var data = context[contextKey];
44
57
 
45
58
  switch (actionName) {
46
- case _constants.ActionName.DeleteAction:
47
59
  default:
48
60
  return data;
49
61
  }
50
62
  };
51
63
 
52
- var createAction = function createAction(name) {
64
+ var createDataAction = function createDataAction(name) {
53
65
  var _ref = actionMappings[name] || {},
54
66
  BaseAction = _ref.component,
55
67
  props = _ref.props;
@@ -67,4 +79,20 @@ var createAction = function createAction(name) {
67
79
  };
68
80
  };
69
81
 
70
- exports.createAction = createAction;
82
+ exports.createDataAction = createDataAction;
83
+
84
+ var createUIAction = function createUIAction(name) {
85
+ var _ref2 = actionMappings[name] || {},
86
+ BaseAction = _ref2.component,
87
+ props = _ref2.props;
88
+
89
+ if (!BaseAction) {
90
+ throw Error("Action ".concat(name, " does not exist."));
91
+ }
92
+
93
+ return function (overrides) {
94
+ return /*#__PURE__*/_react.default.createElement(BaseAction, (0, _extends2.default)({}, props, overrides));
95
+ };
96
+ };
97
+
98
+ exports.createUIAction = createUIAction;
@@ -19,7 +19,7 @@ var _constants = require("../../../../../constants");
19
19
 
20
20
  var _templateObject;
21
21
 
22
- var styles = (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n display: inline-flex;\n line-height: 0;\n"])));
22
+ var styles = (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n display: inline-flex;\n line-height: 1rem;\n"])));
23
23
 
24
24
  var ActionGroup = function ActionGroup(_ref) {
25
25
  var _ref$items = _ref.items,
@@ -17,21 +17,21 @@ var _constants = require("../../../../../constants");
17
17
 
18
18
  var _utils = require("../utils");
19
19
 
20
- var _templateObject;
20
+ var _templateObject, _templateObject2, _templateObject3;
21
21
 
22
- var getFlexJustifyContent = function getFlexJustifyContent(align) {
22
+ var getAlignmentStyles = function getAlignmentStyles(align) {
23
23
  switch (align) {
24
24
  case _constants.SmartLinkAlignment.Right:
25
- return 'flex-end';
25
+ return (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n justify-content: flex-end;\n text-align: right;\n "])));
26
26
 
27
27
  case _constants.SmartLinkAlignment.Left:
28
28
  default:
29
- return 'flex-start';
29
+ return (0, _core.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n justify-content: flex-start;\n text-align: left;\n "])));
30
30
  }
31
31
  };
32
32
 
33
33
  var getElementGroupStyles = function getElementGroupStyles(direction, size, align, width) {
34
- return (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n ", "\n justify-content: ", ";\n min-width: 10%;\n ", "\n"])), (0, _utils.getBaseStyles)(direction, size), getFlexJustifyContent(align), width === _constants.SmartLinkWidth.Flexible ? "flex: 1 3;" : '');
34
+ return (0, _core.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n ", "\n ", "\n min-width: 10%;\n ", "\n"])), (0, _utils.getBaseStyles)(direction, size), getAlignmentStyles(align), width === _constants.SmartLinkWidth.Flexible ? "flex: 1 3;" : '');
35
35
  };
36
36
 
37
37
  exports.getElementGroupStyles = getElementGroupStyles;
@@ -40,6 +40,7 @@ var ElementGroup = function ElementGroup(_ref) {
40
40
  var _ref$align = _ref.align,
41
41
  align = _ref$align === void 0 ? _constants.SmartLinkAlignment.Left : _ref$align,
42
42
  children = _ref.children,
43
+ css = _ref.css,
43
44
  _ref$direction = _ref.direction,
44
45
  direction = _ref$direction === void 0 ? _constants.SmartLinkDirection.Horizontal : _ref$direction,
45
46
  _ref$size = _ref.size,
@@ -49,7 +50,7 @@ var ElementGroup = function ElementGroup(_ref) {
49
50
  _ref$width = _ref.width,
50
51
  width = _ref$width === void 0 ? _constants.SmartLinkWidth.FitToContent : _ref$width;
51
52
  return (0, _core.jsx)("div", {
52
- css: getElementGroupStyles(direction, size, align, width),
53
+ css: [getElementGroupStyles(direction, size, align, width), css],
53
54
  "data-smart-element-group": true,
54
55
  "data-testid": testId
55
56
  }, (0, _utils.renderChildren)(children, size));
@@ -5,6 +5,12 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
+ Object.defineProperty(exports, "MetadataBlock", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _metadataBlock.default;
12
+ }
13
+ });
8
14
  Object.defineProperty(exports, "TitleBlock", {
9
15
  enumerable: true,
10
16
  get: function get() {
@@ -12,4 +18,6 @@ Object.defineProperty(exports, "TitleBlock", {
12
18
  }
13
19
  });
14
20
 
15
- var _titleBlock = _interopRequireDefault(require("./title-block"));
21
+ var _titleBlock = _interopRequireDefault(require("./title-block"));
22
+
23
+ var _metadataBlock = _interopRequireDefault(require("./metadata-block"));
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
11
+
12
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
+
14
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
+
16
+ var _react = _interopRequireDefault(require("react"));
17
+
18
+ var _core = require("@emotion/core");
19
+
20
+ var _constants = require("../../../../../constants");
21
+
22
+ var _utils = require("../utils");
23
+
24
+ var _block = _interopRequireDefault(require("../block"));
25
+
26
+ var _elementGroup = _interopRequireDefault(require("../element-group"));
27
+
28
+ var _excluded = ["maxLines", "status", "testId", "primary", "secondary"];
29
+
30
+ var _templateObject;
31
+
32
+ var DEFAULT_MAX_LINES = 2;
33
+ var MAXIMUM_MAX_LINES = 2;
34
+ var MINIMUM_MAX_LINES = 1;
35
+
36
+ var getElementGroupStyles = function getElementGroupStyles(size, maxLines) {
37
+ // MetadataBlock allows metadata elements to be displayed in
38
+ // multiple lines, with maximum of 2 lines.
39
+ // a) We need the height of the line to be equal on both left and right
40
+ // sides so they line up nicely.
41
+ // b) There is no way to truncate non-text elements nicely. Here
42
+ // it's fix max height of the element group so that anything that is
43
+ // overflown will not be visible.
44
+ var lineHeight = getLineHeight(size);
45
+ var gap = (0, _utils.getGapSize)(size);
46
+ var gapHeight = gap * (maxLines - 1);
47
+ var height = lineHeight * maxLines + gapHeight;
48
+ return (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n flex-wrap: wrap;\n line-height: ", "rem;\n max-height: ", "rem;\n > span,\n > div {\n min-height: ", "rem;\n max-height: ", "rem;\n line-height: ", "rem;\n }\n "])), lineHeight, height, lineHeight, lineHeight, lineHeight);
49
+ };
50
+
51
+ var getLineHeight = function getLineHeight(size) {
52
+ // The maximum height of all elements in specific size.
53
+ // These heights belongs to AvatarGroup.
54
+ switch (size) {
55
+ case _constants.SmartLinkSize.XLarge:
56
+ case _constants.SmartLinkSize.Large:
57
+ return 1.75;
58
+
59
+ case _constants.SmartLinkSize.Medium:
60
+ case _constants.SmartLinkSize.Small:
61
+ default:
62
+ return 1.5;
63
+ }
64
+ };
65
+
66
+ var getMaxLines = function getMaxLines(maxLines) {
67
+ if (maxLines > MAXIMUM_MAX_LINES) {
68
+ return DEFAULT_MAX_LINES;
69
+ }
70
+
71
+ if (maxLines < MINIMUM_MAX_LINES) {
72
+ return MINIMUM_MAX_LINES;
73
+ }
74
+
75
+ return maxLines;
76
+ };
77
+
78
+ var MetadataBlock = function MetadataBlock(_ref) {
79
+ var _ref$maxLines = _ref.maxLines,
80
+ maxLines = _ref$maxLines === void 0 ? DEFAULT_MAX_LINES : _ref$maxLines,
81
+ _ref$status = _ref.status,
82
+ status = _ref$status === void 0 ? _constants.SmartLinkStatus.Fallback : _ref$status,
83
+ _ref$testId = _ref.testId,
84
+ testId = _ref$testId === void 0 ? 'smart-block-metadata' : _ref$testId,
85
+ _ref$primary = _ref.primary,
86
+ primary = _ref$primary === void 0 ? [] : _ref$primary,
87
+ _ref$secondary = _ref.secondary,
88
+ secondary = _ref$secondary === void 0 ? [] : _ref$secondary,
89
+ blockProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
90
+
91
+ if (primary.length === 0 && secondary.length === 0 || status !== _constants.SmartLinkStatus.Resolved) {
92
+ return null;
93
+ }
94
+
95
+ var primaryElements = (0, _utils.renderElementItems)(primary);
96
+ var secondaryElements = (0, _utils.renderElementItems)(secondary);
97
+ var _blockProps$size = blockProps.size,
98
+ size = _blockProps$size === void 0 ? _constants.SmartLinkSize.Medium : _blockProps$size;
99
+ var elementGroupStyles = getElementGroupStyles(size, getMaxLines(maxLines));
100
+ return /*#__PURE__*/_react.default.createElement(_block.default, (0, _extends2.default)({}, blockProps, {
101
+ testId: "".concat(testId, "-resolved-view")
102
+ }), primaryElements && /*#__PURE__*/_react.default.createElement(_elementGroup.default, {
103
+ align: _constants.SmartLinkAlignment.Left,
104
+ css: elementGroupStyles,
105
+ direction: _constants.SmartLinkDirection.Horizontal,
106
+ width: _constants.SmartLinkWidth.Flexible
107
+ }, primaryElements), secondaryElements && /*#__PURE__*/_react.default.createElement(_elementGroup.default, {
108
+ align: _constants.SmartLinkAlignment.Right,
109
+ css: elementGroupStyles,
110
+ direction: _constants.SmartLinkDirection.Horizontal,
111
+ width: _constants.SmartLinkWidth.Flexible
112
+ }, secondaryElements));
113
+ };
114
+
115
+ var _default = MetadataBlock;
116
+ exports.default = _default;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -39,7 +39,7 @@ var actionStyles = (0, _core.css)(_templateObject || (_templateObject = (0, _tag
39
39
 
40
40
  var getMessageStyles = function getMessageStyles(size, hasAction) {
41
41
  var sizeStyles = (0, _utils.getLinkSizeStyles)(size);
42
- return (0, _core.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n justify-content: flex-end;\n ", "\n ", "\n ", "\n color: ", ";\n "])), hasAction ? actionStyles : '', sizeStyles, (0, _utils.getTruncateStyles)(1, (0, _utils.getLinkLineHeight)(size)), _token.tokens.errorMessage);
42
+ return (0, _core.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n flex: 1 1 auto;\n justify-content: flex-end;\n ", "\n ", "\n ", "\n color: ", ";\n "])), hasAction ? actionStyles : '', sizeStyles, (0, _utils.getTruncateStyles)(1, (0, _utils.getLinkLineHeight)(size)), _token.tokens.errorMessage);
43
43
  };
44
44
 
45
45
  var TitleBlockErroredView = function TitleBlockErroredView(_ref) {
@@ -7,12 +7,12 @@ var _typeof = require("@babel/runtime/helpers/typeof");
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
- exports.renderElementItems = exports.renderChildren = exports.renderActionItems = exports.getBaseStyles = void 0;
11
-
12
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
10
+ exports.renderElementItems = exports.renderChildren = exports.renderActionItems = exports.getGapSize = exports.getBaseStyles = void 0;
13
11
 
14
12
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
15
13
 
14
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
15
+
16
16
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
17
17
 
18
18
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
@@ -56,22 +56,24 @@ var getDirectionStyles = function getDirectionStyles(direction) {
56
56
  var getGapSize = function getGapSize(size) {
57
57
  switch (size) {
58
58
  case _constants.SmartLinkSize.XLarge:
59
- return '1.25rem';
59
+ return 1.25;
60
60
 
61
61
  case _constants.SmartLinkSize.Large:
62
- return '1rem';
62
+ return 1;
63
63
 
64
64
  case _constants.SmartLinkSize.Medium:
65
- return '.5rem';
65
+ return 0.5;
66
66
 
67
67
  case _constants.SmartLinkSize.Small:
68
68
  default:
69
- return '.25rem';
69
+ return 0.25;
70
70
  }
71
71
  };
72
72
 
73
+ exports.getGapSize = getGapSize;
74
+
73
75
  var getBaseStyles = function getBaseStyles(direction, size) {
74
- return (0, _core.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n gap: ", ";\n line-height: 1rem;\n min-width: 0;\n overflow: hidden;\n overflow-y: hidden;\n ", ";\n &:empty {\n display: none;\n }\n & > * {\n min-width: 0;\n }\n & > [data-fit-to-content] {\n min-width: fit-content;\n }\n"])), getGapSize(size), getDirectionStyles(direction));
76
+ return (0, _core.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n display: flex;\n gap: ", "rem;\n line-height: 1rem;\n min-width: 0;\n overflow: hidden;\n overflow-y: hidden;\n ", ";\n &:empty {\n display: none;\n }\n & > * {\n min-width: 0;\n }\n & > [data-fit-to-content] {\n min-width: fit-content;\n }\n"])), getGapSize(size), getDirectionStyles(direction));
75
77
  };
76
78
 
77
79
  exports.getBaseStyles = getBaseStyles;
@@ -80,6 +82,10 @@ var isActionGroup = function isActionGroup(node) {
80
82
  return /*#__PURE__*/_react.default.isValidElement(node) && node.type === _actionGroup.default;
81
83
  };
82
84
 
85
+ var isElementNull = function isElementNull(children) {
86
+ return Boolean(children.type() === null);
87
+ };
88
+
83
89
  var isElementOrElementGroup = function isElementOrElementGroup(node) {
84
90
  return /*#__PURE__*/_react.default.isValidElement(node) && ((0, _flexible.isFlexibleUiElement)(node) || node.type === _elementGroup.default);
85
91
  };
@@ -108,9 +114,13 @@ var renderElementItems = function renderElementItems() {
108
114
  var Element = Elements[name];
109
115
 
110
116
  if (Element) {
111
- return [].concat((0, _toConsumableArray2.default)(acc), [/*#__PURE__*/_react.default.createElement(Element, (0, _extends2.default)({
117
+ var element = /*#__PURE__*/_react.default.createElement(Element, (0, _extends2.default)({
112
118
  key: idx
113
- }, props))]);
119
+ }, props));
120
+
121
+ if (!isElementNull(element)) {
122
+ return [].concat((0, _toConsumableArray2.default)(acc), [element]);
123
+ }
114
124
  }
115
125
 
116
126
  return acc;
@@ -7,14 +7,34 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
+
10
12
  var _react = _interopRequireDefault(require("react"));
11
13
 
14
+ var _core = require("@emotion/core");
15
+
12
16
  var _avatarGroup = _interopRequireDefault(require("@atlaskit/avatar-group"));
13
17
 
14
18
  var _constants = require("../../../../../constants");
15
19
 
20
+ var _templateObject;
21
+
16
22
  var MAX_COUNT = 4;
17
23
 
24
+ var getStyles = function getStyles(size) {
25
+ switch (size) {
26
+ case _constants.SmartLinkSize.XLarge:
27
+ case _constants.SmartLinkSize.Large:
28
+ // Default AK small size
29
+ return;
30
+
31
+ case _constants.SmartLinkSize.Medium:
32
+ case _constants.SmartLinkSize.Small:
33
+ default:
34
+ return (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n li {\n span,\n svg {\n max-height: 1.25rem;\n max-width: 1.25rem;\n }\n }\n "])));
35
+ }
36
+ };
37
+
18
38
  var AvatarGroup = function AvatarGroup(_ref) {
19
39
  var _ref$items = _ref.items,
20
40
  items = _ref$items === void 0 ? [] : _ref$items,
@@ -29,13 +49,15 @@ var AvatarGroup = function AvatarGroup(_ref) {
29
49
  return null;
30
50
  }
31
51
 
32
- return /*#__PURE__*/_react.default.createElement(_avatarGroup.default, {
52
+ return (0, _core.jsx)("span", {
53
+ css: getStyles(size)
54
+ }, (0, _core.jsx)(_avatarGroup.default, {
33
55
  maxCount: maxCount,
34
56
  appearance: "stack",
35
57
  size: "small",
36
58
  data: items,
37
59
  testId: testId
38
- });
60
+ }));
39
61
  };
40
62
 
41
63
  var _default = AvatarGroup;
@@ -41,7 +41,7 @@ var getThemeStyles = function getThemeStyles(theme) {
41
41
 
42
42
  var getAnchorStyles = function getAnchorStyles(size, theme, maxLines) {
43
43
  var sizeStyles = (0, _utils.getLinkSizeStyles)(size);
44
- return (0, _core.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n ", "\n ", "\n // Theme should be last to be spread because it contains override values\n ", "\n "])), sizeStyles, (0, _utils.getTruncateStyles)(maxLines, (0, _utils.getLinkLineHeight)(size)), getThemeStyles(theme));
44
+ return (0, _core.css)(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2.default)(["\n flex: 1 1 auto;\n ", "\n ", "\n // Theme should be last to be spread because it contains override values\n ", "\n "])), sizeStyles, (0, _utils.getTruncateStyles)(maxLines, (0, _utils.getLinkLineHeight)(size)), getThemeStyles(theme));
45
45
  };
46
46
 
47
47
  var getMaxLines = function getMaxLines(maxLines) {