@atlaskit/smart-card 17.4.1 → 17.5.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 (66) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/dist/cjs/constants.js +61 -13
  3. package/dist/cjs/index.js +6 -0
  4. package/dist/cjs/utils/token.js +14 -23
  5. package/dist/cjs/version.json +1 -1
  6. package/dist/cjs/view/FlexibleCard/components/actions/action/index.js +18 -7
  7. package/dist/cjs/view/FlexibleCard/components/actions/utils.js +8 -1
  8. package/dist/cjs/view/FlexibleCard/components/blocks/action-group/index.js +3 -2
  9. package/dist/cjs/view/FlexibleCard/components/blocks/footer-block/index.js +50 -0
  10. package/dist/cjs/view/FlexibleCard/components/blocks/footer-block/types.js +5 -0
  11. package/dist/cjs/view/FlexibleCard/components/blocks/index.js +18 -2
  12. package/dist/cjs/view/FlexibleCard/components/blocks/snippet-block/index.js +51 -0
  13. package/dist/cjs/view/FlexibleCard/components/blocks/snippet-block/types.js +5 -0
  14. package/dist/cjs/view/FlexibleCard/components/blocks/utils.js +23 -3
  15. package/dist/cjs/view/FlexibleCard/components/common/atlaskit-icon/index.js +1 -1
  16. package/dist/cjs/view/FlexibleCard/components/elements/text/index.js +6 -4
  17. package/dist/cjs/view/FlexibleCard/components/elements/utils.js +5 -1
  18. package/dist/cjs/view/FlexibleCard/components/utils.js +15 -1
  19. package/dist/es2019/constants.js +52 -13
  20. package/dist/es2019/index.js +1 -1
  21. package/dist/es2019/utils/token.js +14 -21
  22. package/dist/es2019/version.json +1 -1
  23. package/dist/es2019/view/FlexibleCard/components/actions/action/index.js +34 -6
  24. package/dist/es2019/view/FlexibleCard/components/actions/utils.js +5 -1
  25. package/dist/es2019/view/FlexibleCard/components/blocks/action-group/index.js +3 -2
  26. package/dist/es2019/view/FlexibleCard/components/blocks/footer-block/index.js +35 -0
  27. package/dist/es2019/view/FlexibleCard/components/blocks/footer-block/types.js +1 -0
  28. package/dist/es2019/view/FlexibleCard/components/blocks/index.js +4 -2
  29. package/dist/es2019/view/FlexibleCard/components/blocks/snippet-block/index.js +29 -0
  30. package/dist/es2019/view/FlexibleCard/components/blocks/snippet-block/types.js +1 -0
  31. package/dist/es2019/view/FlexibleCard/components/blocks/utils.js +19 -5
  32. package/dist/es2019/view/FlexibleCard/components/common/atlaskit-icon/index.js +1 -1
  33. package/dist/es2019/view/FlexibleCard/components/elements/text/index.js +4 -3
  34. package/dist/es2019/view/FlexibleCard/components/elements/utils.js +4 -1
  35. package/dist/es2019/view/FlexibleCard/components/utils.js +11 -0
  36. package/dist/esm/constants.js +52 -13
  37. package/dist/esm/index.js +1 -1
  38. package/dist/esm/utils/token.js +14 -21
  39. package/dist/esm/version.json +1 -1
  40. package/dist/esm/view/FlexibleCard/components/actions/action/index.js +17 -7
  41. package/dist/esm/view/FlexibleCard/components/actions/utils.js +9 -1
  42. package/dist/esm/view/FlexibleCard/components/blocks/action-group/index.js +3 -2
  43. package/dist/esm/view/FlexibleCard/components/blocks/footer-block/index.js +34 -0
  44. package/dist/esm/view/FlexibleCard/components/blocks/footer-block/types.js +1 -0
  45. package/dist/esm/view/FlexibleCard/components/blocks/index.js +4 -2
  46. package/dist/esm/view/FlexibleCard/components/blocks/snippet-block/index.js +34 -0
  47. package/dist/esm/view/FlexibleCard/components/blocks/snippet-block/types.js +1 -0
  48. package/dist/esm/view/FlexibleCard/components/blocks/utils.js +24 -5
  49. package/dist/esm/view/FlexibleCard/components/common/atlaskit-icon/index.js +1 -1
  50. package/dist/esm/view/FlexibleCard/components/elements/text/index.js +6 -4
  51. package/dist/esm/view/FlexibleCard/components/elements/utils.js +4 -1
  52. package/dist/esm/view/FlexibleCard/components/utils.js +11 -0
  53. package/dist/types/constants.d.ts +51 -0
  54. package/dist/types/index.d.ts +1 -1
  55. package/dist/types/utils/token.d.ts +13 -13
  56. package/dist/types/view/FlexibleCard/components/blocks/action-group/types.d.ts +2 -0
  57. package/dist/types/view/FlexibleCard/components/blocks/footer-block/index.d.ts +4 -0
  58. package/dist/types/view/FlexibleCard/components/blocks/footer-block/types.d.ts +4 -0
  59. package/dist/types/view/FlexibleCard/components/blocks/index.d.ts +3 -1
  60. package/dist/types/view/FlexibleCard/components/blocks/snippet-block/index.d.ts +4 -0
  61. package/dist/types/view/FlexibleCard/components/blocks/snippet-block/types.d.ts +4 -0
  62. package/dist/types/view/FlexibleCard/components/blocks/types.d.ts +2 -0
  63. package/dist/types/view/FlexibleCard/components/blocks/utils.d.ts +1 -1
  64. package/dist/types/view/FlexibleCard/components/elements/text/types.d.ts +1 -0
  65. package/dist/types/view/FlexibleCard/components/utils.d.ts +1 -0
  66. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,23 @@
1
1
  # @atlaskit/smart-card
2
2
 
3
+ ## 17.5.0
4
+
5
+ ### Minor Changes
6
+
7
+ - [`be8dc55e85d`](https://bitbucket.org/atlassian/atlassian-frontend/commits/be8dc55e85d) - [ux] Add Footer block
8
+
9
+ ## 17.4.3
10
+
11
+ ### Patch Changes
12
+
13
+ - [`5a50882a528`](https://bitbucket.org/atlassian/atlassian-frontend/commits/5a50882a528) - Flexible UI: Remove safeToken function
14
+
15
+ ## 17.4.2
16
+
17
+ ### Patch Changes
18
+
19
+ - [`c8285bdcde4`](https://bitbucket.org/atlassian/atlassian-frontend/commits/c8285bdcde4) - Flexible UI: Add SnippetBlock
20
+
3
21
  ## 17.4.1
4
22
 
5
23
  ### Patch Changes
@@ -4,7 +4,17 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.SmartLinkWidth = exports.SmartLinkTheme = exports.SmartLinkStatus = exports.SmartLinkSize = exports.SmartLinkPosition = exports.SmartLinkDirection = exports.SmartLinkAlignment = exports.IconType = exports.ElementName = exports.ActionName = void 0;
7
+
8
+ /**
9
+ * The alignment of Flexible UI component.
10
+ */
7
11
  var SmartLinkAlignment;
12
+ /**
13
+ * The direction of Flexible UI components. It establish the main-axis
14
+ * or how the child components laid out inside the parent component.
15
+ * Similar to flex's flex-direction concept.
16
+ */
17
+
8
18
  exports.SmartLinkAlignment = SmartLinkAlignment;
9
19
 
10
20
  (function (SmartLinkAlignment) {
@@ -13,6 +23,11 @@ exports.SmartLinkAlignment = SmartLinkAlignment;
13
23
  })(SmartLinkAlignment || (exports.SmartLinkAlignment = SmartLinkAlignment = {}));
14
24
 
15
25
  var SmartLinkDirection;
26
+ /**
27
+ * The positioning of the component within the parent component.
28
+ * Similar to flex's align-items or align-self concept.
29
+ */
30
+
16
31
  exports.SmartLinkDirection = SmartLinkDirection;
17
32
 
18
33
  (function (SmartLinkDirection) {
@@ -21,6 +36,12 @@ exports.SmartLinkDirection = SmartLinkDirection;
21
36
  })(SmartLinkDirection || (exports.SmartLinkDirection = SmartLinkDirection = {}));
22
37
 
23
38
  var SmartLinkPosition;
39
+ /**
40
+ * The sizing options of the Flexible UI component. Every component
41
+ * has or inherits the sizing props. Implementation varies
42
+ * as per component.
43
+ */
44
+
24
45
  exports.SmartLinkPosition = SmartLinkPosition;
25
46
 
26
47
  (function (SmartLinkPosition) {
@@ -29,6 +50,10 @@ exports.SmartLinkPosition = SmartLinkPosition;
29
50
  })(SmartLinkPosition || (exports.SmartLinkPosition = SmartLinkPosition = {}));
30
51
 
31
52
  var SmartLinkSize;
53
+ /**
54
+ * Smart Links link request status
55
+ */
56
+
32
57
  exports.SmartLinkSize = SmartLinkSize;
33
58
 
34
59
  (function (SmartLinkSize) {
@@ -39,6 +64,11 @@ exports.SmartLinkSize = SmartLinkSize;
39
64
  })(SmartLinkSize || (exports.SmartLinkSize = SmartLinkSize = {}));
40
65
 
41
66
  var SmartLinkStatus;
67
+ /**
68
+ * Flexible UI theme available on the Card level.
69
+ * This determine the styling of the link.
70
+ */
71
+
42
72
  exports.SmartLinkStatus = SmartLinkStatus;
43
73
 
44
74
  (function (SmartLinkStatus) {
@@ -53,6 +83,12 @@ exports.SmartLinkStatus = SmartLinkStatus;
53
83
  })(SmartLinkStatus || (exports.SmartLinkStatus = SmartLinkStatus = {}));
54
84
 
55
85
  var SmartLinkTheme;
86
+ /**
87
+ * Determines whether the container size will fit to the content
88
+ * or expand to the available width or the parent component.
89
+ * Similar to flex's flex-grow concept.
90
+ */
91
+
56
92
  exports.SmartLinkTheme = SmartLinkTheme;
57
93
 
58
94
  (function (SmartLinkTheme) {
@@ -60,19 +96,23 @@ exports.SmartLinkTheme = SmartLinkTheme;
60
96
  SmartLinkTheme["Link"] = "link";
61
97
  })(SmartLinkTheme || (exports.SmartLinkTheme = SmartLinkTheme = {}));
62
98
 
63
- var SmartLinkWidth; // When adding an element...
64
- // 1) Create base element if it doesn't already existed.
65
- // Base element are inside src/view/FlexibleCard/components/elements.
66
- // E.g. Badge,DateTime, Icon, Lozenge, etc.
67
- // 2) Update FlexibleUiContext with the new prop for data representing
68
- // the element, preferably with the same name as the element itself.
69
- // (src/state/flexible-ui-context/types.ts)
70
- // 3) Update Flexible UI extractor (src/extractors/flexible/index.ts)
71
- // 4) Set base element and data mapping.
72
- // (src/view/FlexibleCard/components/elements/utils.tsx)
73
- // 5) Create element. (src/view/FlexibleCard/components/elements/index.ts)
74
- // 6) Update element ElementDisplaySchema for inline/block display
75
- // (src/view/FlexibleCard/components/blocks/utils.tsx)
99
+ var SmartLinkWidth;
100
+ /**
101
+ * Flexible UI element name - each reflecting the link data its represented.
102
+ * When adding an element...
103
+ * 1) Create base element if it doesn't already existed.
104
+ * Base element are inside src/view/FlexibleCard/components/elements.
105
+ * E.g. Badge,DateTime, Icon, Lozenge, etc.
106
+ * 2) Update FlexibleUiContext with the new prop for data representing
107
+ * the element, preferably with the same name as the element itself.
108
+ * (src/state/flexible-ui-context/types.ts)
109
+ * 3) Update Flexible UI extractor (src/extractors/flexible/index.ts)
110
+ * 4) Set base element and data mapping
111
+ * (src/view/FlexibleCard/components/elements/utils.tsx)
112
+ * 5) Create element. (src/view/FlexibleCard/components/elements/index.ts)
113
+ * 6) Update element ElementDisplaySchema for inline/block display
114
+ * (src/view/FlexibleCard/components/blocks/utils.tsx)
115
+ */
76
116
 
77
117
  exports.SmartLinkWidth = SmartLinkWidth;
78
118
 
@@ -82,6 +122,10 @@ exports.SmartLinkWidth = SmartLinkWidth;
82
122
  })(SmartLinkWidth || (exports.SmartLinkWidth = SmartLinkWidth = {}));
83
123
 
84
124
  var ElementName;
125
+ /**
126
+ * Flexible UI action (button)
127
+ */
128
+
85
129
  exports.ElementName = ElementName;
86
130
 
87
131
  (function (ElementName) {
@@ -103,6 +147,10 @@ exports.ElementName = ElementName;
103
147
  })(ElementName || (exports.ElementName = ElementName = {}));
104
148
 
105
149
  var ActionName;
150
+ /**
151
+ * Flexible UI icons - each mapped to AK icons.
152
+ */
153
+
106
154
  exports.ActionName = ActionName;
107
155
 
108
156
  (function (ActionName) {
package/dist/cjs/index.js CHANGED
@@ -101,6 +101,12 @@ Object.defineProperty(exports, "SmartLinkTheme", {
101
101
  return _constants.SmartLinkTheme;
102
102
  }
103
103
  });
104
+ Object.defineProperty(exports, "SnippetBlock", {
105
+ enumerable: true,
106
+ get: function get() {
107
+ return _blocks.SnippetBlock;
108
+ }
109
+ });
104
110
  Object.defineProperty(exports, "TitleBlock", {
105
111
  enumerable: true,
106
112
  get: function get() {
@@ -3,32 +3,23 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.tokens = exports.safeToken = void 0;
6
+ exports.tokens = void 0;
7
7
 
8
8
  var _tokens = require("@atlaskit/tokens");
9
9
 
10
- // Temporary safeguard while @atlaskit/tokens is being developed
11
- var safeToken = function safeToken(path, fallback) {
12
- try {
13
- return (0, _tokens.token)(path, fallback);
14
- } catch (e) {
15
- return fallback;
16
- }
17
- };
18
-
19
- exports.safeToken = safeToken;
20
10
  var tokens = {
21
- actionIcon: safeToken('color.icon', '#44546F'),
22
- background: safeToken('elevation.surface', '#FFFFFF'),
23
- badgeIcon: safeToken('color.icon.subtle', '#626F86'),
24
- badgeText: safeToken('color.text.subtlest', '#626F86'),
25
- blackLink: safeToken('color.text.subtle', '#44546F'),
26
- blackLinkPressed: safeToken('color.text', '#172B4D'),
27
- blueLink: safeToken('color.link', '#0C66E4'),
28
- blueLinkPressed: safeToken('color.link.pressed', '#0055CC'),
29
- elevation: safeToken('elevation.shadow.raised', '0px 1px 1px #091E4240, 0px 0px 1px #091E424F'),
30
- errorMessage: safeToken('color.text.disabled', '#6B778C'),
31
- errorMessageHover: safeToken('color.text.subtle', '#8993A4'),
32
- text: safeToken('color.text.subtlest', '#626F86')
11
+ actionIcon: (0, _tokens.token)('color.icon', '#44546F'),
12
+ background: (0, _tokens.token)('elevation.surface', '#FFFFFF'),
13
+ badgeIcon: (0, _tokens.token)('color.icon.subtle', '#626F86'),
14
+ badgeText: (0, _tokens.token)('color.text.subtlest', '#626F86'),
15
+ blackLink: (0, _tokens.token)('color.text.subtle', '#44546F'),
16
+ blackLinkPressed: (0, _tokens.token)('color.text', '#172B4D'),
17
+ blueLink: (0, _tokens.token)('color.link', '#0C66E4'),
18
+ blueLinkPressed: (0, _tokens.token)('color.link.pressed', '#0055CC'),
19
+ elevation: (0, _tokens.token)('elevation.shadow.raised', '0px 1px 1px #091E4240, 0px 0px 1px #091E424F'),
20
+ errorMessage: (0, _tokens.token)('color.text.disabled', '#6B778C'),
21
+ errorMessageHover: (0, _tokens.token)('color.text.subtle', '#8993A4'),
22
+ snippet: (0, _tokens.token)('color.text', '#172B4D'),
23
+ text: (0, _tokens.token)('color.text.subtlest', '#626F86')
33
24
  };
34
25
  exports.tokens = tokens;
@@ -1,5 +1,5 @@
1
1
  {
2
2
  "name": "@atlaskit/smart-card",
3
- "version": "17.4.1",
3
+ "version": "17.5.0",
4
4
  "sideEffects": false
5
5
  }
@@ -7,6 +7,8 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
+
10
12
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
13
 
12
14
  var _react = _interopRequireDefault(require("react"));
@@ -25,9 +27,9 @@ var _token = require("../../../../../utils/token");
25
27
 
26
28
  var _utils2 = require("../../../../../utils");
27
29
 
28
- var _templateObject;
30
+ var _templateObject, _templateObject2, _sizeToSpacing;
29
31
 
30
- var getWidth = function getWidth(size) {
32
+ var getIconWidth = function getIconWidth(size) {
31
33
  switch (size) {
32
34
  case _constants.SmartLinkSize.XLarge:
33
35
  case _constants.SmartLinkSize.Large:
@@ -41,7 +43,11 @@ var getWidth = function getWidth(size) {
41
43
  };
42
44
 
43
45
  var getIconStyles = function getIconStyles(size) {
44
- return (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n color: ", ";\n ", ";\n"])), _token.tokens.actionIcon, (0, _utils.getIconSizeStyles)(getWidth(size)));
46
+ return (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n color: ", ";\n ", ";\n"])), _token.tokens.actionIcon, (0, _utils.getIconSizeStyles)(getIconWidth(size)));
47
+ };
48
+
49
+ var getButtonStyle = function getButtonStyle(size, iconOnly) {
50
+ return size === _constants.SmartLinkSize.Small ? (0, _core.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n font-size: 0.75rem;\n font-weight: 500;\n line-height: 1rem;\n button,\n button:hover,\n button:focus,\n button:active {\n line-height: 1rem;\n ", "\n }\n "])), iconOnly ? "\n padding: 0.125rem;\n " : "\n padding-left: 0.25rem;\n padding-right: 0.25rem;\n ") : '';
45
51
  };
46
52
 
47
53
  var ActionIcon = function ActionIcon(_ref) {
@@ -54,6 +60,8 @@ var ActionIcon = function ActionIcon(_ref) {
54
60
  }, icon);
55
61
  };
56
62
 
63
+ var sizeToSpacing = (_sizeToSpacing = {}, (0, _defineProperty2.default)(_sizeToSpacing, _constants.SmartLinkSize.Small, 'none'), (0, _defineProperty2.default)(_sizeToSpacing, _constants.SmartLinkSize.Medium, 'compact'), (0, _defineProperty2.default)(_sizeToSpacing, _constants.SmartLinkSize.Large, 'compact'), (0, _defineProperty2.default)(_sizeToSpacing, _constants.SmartLinkSize.XLarge, 'default'), _sizeToSpacing);
64
+
57
65
  var Action = function Action(_ref2) {
58
66
  var _ref2$appearance = _ref2.appearance,
59
67
  appearance = _ref2$appearance === void 0 ? 'subtle' : _ref2$appearance,
@@ -72,26 +80,29 @@ var Action = function Action(_ref2) {
72
80
  return null;
73
81
  }
74
82
 
75
- var iconBefore = iconPosition === 'before' ? (0, _core.jsx)(ActionIcon, {
83
+ var iconBefore = icon && iconPosition === 'before' ? (0, _core.jsx)(ActionIcon, {
76
84
  size: size,
77
85
  testId: testId,
78
86
  icon: icon
79
87
  }) : undefined;
80
- var iconAfter = iconPosition === 'after' ? (0, _core.jsx)(ActionIcon, {
88
+ var iconAfter = icon && iconPosition === 'after' ? (0, _core.jsx)(ActionIcon, {
81
89
  size: size,
82
90
  testId: testId,
83
91
  icon: icon
84
92
  }) : undefined;
93
+ var iconOnly = !content;
85
94
  return (0, _core.jsx)(_tooltip.default, {
86
95
  content: tooltipMessage
96
+ }, (0, _core.jsx)("div", {
97
+ css: getButtonStyle(size, iconOnly)
87
98
  }, (0, _core.jsx)(_customThemeButton.default, {
88
- spacing: "none",
99
+ spacing: sizeToSpacing[size],
89
100
  appearance: appearance,
90
101
  testId: testId,
91
102
  onClick: (0, _utils2.handleOnClick)(onClick),
92
103
  iconBefore: iconBefore,
93
104
  iconAfter: iconAfter
94
- }, content));
105
+ }, content)));
95
106
  };
96
107
 
97
108
  var _default = Action;
@@ -31,10 +31,15 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
31
31
 
32
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; }
33
33
 
34
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
35
+
36
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
37
+
34
38
  var actionMappings = (0, _defineProperty2.default)({}, _constants.ActionName.DeleteAction, {
35
39
  component: _action.default,
36
40
  props: {
37
41
  testId: 'smart-action-delete-action',
42
+ content: /*#__PURE__*/_react.default.createElement(_reactIntlNext.FormattedMessage, _messages.messages.delete),
38
43
  icon: /*#__PURE__*/_react.default.createElement(_cross.default, {
39
44
  label: "Delete"
40
45
  }),
@@ -91,7 +96,9 @@ var createUIAction = function createUIAction(name) {
91
96
  }
92
97
 
93
98
  return function (overrides) {
94
- return /*#__PURE__*/_react.default.createElement(BaseAction, (0, _extends2.default)({}, props, overrides));
99
+ var combinedProps = _objectSpread(_objectSpread({}, props), overrides);
100
+
101
+ return /*#__PURE__*/_react.default.createElement(BaseAction, combinedProps);
95
102
  };
96
103
  };
97
104
 
@@ -25,12 +25,13 @@ var ActionGroup = function ActionGroup(_ref) {
25
25
  var _ref$items = _ref.items,
26
26
  items = _ref$items === void 0 ? [] : _ref$items,
27
27
  _ref$size = _ref.size,
28
- size = _ref$size === void 0 ? _constants.SmartLinkSize.Medium : _ref$size;
28
+ size = _ref$size === void 0 ? _constants.SmartLinkSize.Medium : _ref$size,
29
+ appearance = _ref.appearance;
29
30
  // Currently we only have delete action available, this prevents others from adding more delete actions
30
31
  var actionsToRender = items.slice(0, 1);
31
32
  return (0, _core.jsx)("div", {
32
33
  css: styles
33
- }, (0, _core.jsx)(_buttonGroup.default, null, (0, _utils.renderActionItems)(actionsToRender, size)));
34
+ }, (0, _core.jsx)(_buttonGroup.default, null, (0, _utils.renderActionItems)(actionsToRender, size, appearance)));
34
35
  };
35
36
 
36
37
  var _default = ActionGroup;
@@ -0,0 +1,50 @@
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 _react = _interopRequireDefault(require("react"));
13
+
14
+ var _constants = require("../../../../../constants");
15
+
16
+ var _block = _interopRequireDefault(require("../block"));
17
+
18
+ var _elementGroup = _interopRequireDefault(require("../element-group"));
19
+
20
+ var _elements = require("../../elements");
21
+
22
+ var _actionGroup = _interopRequireDefault(require("../action-group"));
23
+
24
+ var FooterBlock = function FooterBlock(props) {
25
+ var status = props.status,
26
+ actions = props.actions,
27
+ _props$testId = props.testId,
28
+ testId = _props$testId === void 0 ? 'smart-footer-block' : _props$testId;
29
+
30
+ if (status !== _constants.SmartLinkStatus.Resolved) {
31
+ return null;
32
+ }
33
+
34
+ return /*#__PURE__*/_react.default.createElement(_block.default, (0, _extends2.default)({}, props, {
35
+ testId: "".concat(testId, "-resolved-view")
36
+ }), /*#__PURE__*/_react.default.createElement(_elements.Provider, {
37
+ testId: "".concat(testId, "-provider")
38
+ }), actions && actions.length > 0 ? /*#__PURE__*/_react.default.createElement(_elementGroup.default, {
39
+ testId: "smart-element-group-actions",
40
+ align: _constants.SmartLinkAlignment.Right,
41
+ direction: _constants.SmartLinkDirection.Horizontal,
42
+ width: _constants.SmartLinkWidth.Flexible
43
+ }, /*#__PURE__*/_react.default.createElement(_actionGroup.default, {
44
+ items: actions,
45
+ appearance: "default"
46
+ })) : null);
47
+ };
48
+
49
+ var _default = FooterBlock;
50
+ exports.default = _default;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -5,12 +5,24 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
+ Object.defineProperty(exports, "FooterBlock", {
9
+ enumerable: true,
10
+ get: function get() {
11
+ return _footerBlock.default;
12
+ }
13
+ });
8
14
  Object.defineProperty(exports, "MetadataBlock", {
9
15
  enumerable: true,
10
16
  get: function get() {
11
17
  return _metadataBlock.default;
12
18
  }
13
19
  });
20
+ Object.defineProperty(exports, "SnippetBlock", {
21
+ enumerable: true,
22
+ get: function get() {
23
+ return _snippetBlock.default;
24
+ }
25
+ });
14
26
  Object.defineProperty(exports, "TitleBlock", {
15
27
  enumerable: true,
16
28
  get: function get() {
@@ -18,6 +30,10 @@ Object.defineProperty(exports, "TitleBlock", {
18
30
  }
19
31
  });
20
32
 
21
- var _titleBlock = _interopRequireDefault(require("./title-block"));
33
+ var _footerBlock = _interopRequireDefault(require("./footer-block"));
34
+
35
+ var _metadataBlock = _interopRequireDefault(require("./metadata-block"));
36
+
37
+ var _snippetBlock = _interopRequireDefault(require("./snippet-block"));
22
38
 
23
- var _metadataBlock = _interopRequireDefault(require("./metadata-block"));
39
+ var _titleBlock = _interopRequireDefault(require("./title-block"));
@@ -0,0 +1,51 @@
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 _react = _interopRequireDefault(require("react"));
15
+
16
+ var _block = _interopRequireDefault(require("../block"));
17
+
18
+ var _constants = require("../../../../../constants");
19
+
20
+ var _elements = require("../../elements");
21
+
22
+ var _utils = require("../../utils");
23
+
24
+ var _excluded = ["maxLines", "status", "testId"];
25
+ var DEFAULT_MAX_LINES = 3;
26
+ var MAXIMUM_MAX_LINES = 3;
27
+ var MINIMUM_MAX_LINES = 1;
28
+
29
+ var SnippetBlock = function SnippetBlock(_ref) {
30
+ var _ref$maxLines = _ref.maxLines,
31
+ maxLines = _ref$maxLines === void 0 ? DEFAULT_MAX_LINES : _ref$maxLines,
32
+ _ref$status = _ref.status,
33
+ status = _ref$status === void 0 ? _constants.SmartLinkStatus.Fallback : _ref$status,
34
+ _ref$testId = _ref.testId,
35
+ testId = _ref$testId === void 0 ? 'smart-block-snippet' : _ref$testId,
36
+ blockProps = (0, _objectWithoutProperties2.default)(_ref, _excluded);
37
+
38
+ if (status !== _constants.SmartLinkStatus.Resolved) {
39
+ return null;
40
+ }
41
+
42
+ var snippetMaxLines = (0, _utils.getMaxLines)(maxLines, DEFAULT_MAX_LINES, MAXIMUM_MAX_LINES, MINIMUM_MAX_LINES);
43
+ return /*#__PURE__*/_react.default.createElement(_block.default, (0, _extends2.default)({}, blockProps, {
44
+ testId: "".concat(testId, "-resolved-view")
45
+ }), /*#__PURE__*/_react.default.createElement(_elements.Snippet, {
46
+ maxLines: snippetMaxLines
47
+ }));
48
+ };
49
+
50
+ var _default = SnippetBlock;
51
+ exports.default = _default;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -36,7 +36,7 @@ var _actionGroup = _interopRequireDefault(require("./action-group"));
36
36
  var _elementGroup = _interopRequireDefault(require("./element-group"));
37
37
 
38
38
  var _excluded = ["name"],
39
- _excluded2 = ["name"];
39
+ _excluded2 = ["name", "hideContent", "hideIcon", "onClick"];
40
40
 
41
41
  var _ElementDisplaySchema, _templateObject, _templateObject2, _templateObject3;
42
42
 
@@ -44,6 +44,10 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
44
44
 
45
45
  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; }
46
46
 
47
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
48
+
49
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
50
+
47
51
  var ElementDisplaySchema = (_ElementDisplaySchema = {}, (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.AuthorGroup, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.CollaboratorGroup, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.CommentCount, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.CreatedBy, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.CreatedOn, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.LinkIcon, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.ModifiedBy, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.ModifiedOn, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.Priority, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.ProgrammingLanguage, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.Snippet, ['block']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.State, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.SubscriberCount, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.Title, ['inline']), (0, _defineProperty2.default)(_ElementDisplaySchema, _constants.ElementName.Provider, ['inline']), _ElementDisplaySchema);
48
52
  exports.ElementDisplaySchema = ElementDisplaySchema;
49
53
 
@@ -148,16 +152,32 @@ exports.renderElementItems = renderElementItems;
148
152
  var renderActionItems = function renderActionItems() {
149
153
  var items = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
150
154
  var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _constants.SmartLinkSize.Medium;
155
+ var appearance = arguments.length > 2 ? arguments[2] : undefined;
151
156
  var actions = items.reduce(function (acc, curr, idx) {
152
157
  var name = curr.name,
158
+ hideContent = curr.hideContent,
159
+ hideIcon = curr.hideIcon,
160
+ onClick = curr.onClick,
153
161
  props = (0, _objectWithoutProperties2.default)(curr, _excluded2);
154
162
  var Action = Actions[name];
155
163
 
164
+ var actionProps = _objectSpread({}, props);
165
+
166
+ if (hideContent) {
167
+ actionProps.content = '';
168
+ }
169
+
170
+ if (hideIcon) {
171
+ actionProps.icon = undefined;
172
+ }
173
+
156
174
  if (Action) {
157
175
  return [].concat((0, _toConsumableArray2.default)(acc), [/*#__PURE__*/_react.default.createElement(Action, (0, _extends2.default)({
158
176
  size: size,
159
- key: idx
160
- }, props))]);
177
+ key: idx,
178
+ appearance: appearance,
179
+ onClick: onClick
180
+ }, actionProps))]);
161
181
  }
162
182
 
163
183
  return acc;
@@ -300,7 +300,7 @@ var AtlaskitIcon = function AtlaskitIcon(_ref3) {
300
300
  case _constants.IconType.Jira:
301
301
  // Logo component has a different prop set from other icon components
302
302
  return /*#__PURE__*/_react.default.createElement(ImportedIcon, {
303
- "data-testId": testId // Confluence and Jira imports don't have native testId prop
303
+ "data-testid": testId // Confluence and Jira imports don't have native testId prop
304
304
  ,
305
305
  textColor: _colors.N700,
306
306
  iconColor: _colors.B200,
@@ -19,12 +19,14 @@ var _token = require("../../../../../utils/token");
19
19
 
20
20
  var _templateObject;
21
21
 
22
- var getStyles = function getStyles(maxLines) {
23
- return (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n color: ", ";\n font-size: 0.75rem;\n line-height: 1rem;\n ", "\n"])), _token.tokens.text, (0, _utils.getTruncateStyles)(maxLines));
22
+ var getStyles = function getStyles(maxLines, color) {
23
+ return (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n color: ", ";\n font-size: 0.75rem;\n line-height: 1rem;\n ", "\n"])), color, (0, _utils.getTruncateStyles)(maxLines));
24
24
  };
25
25
 
26
26
  var Text = function Text(_ref) {
27
- var content = _ref.content,
27
+ var _ref$color = _ref.color,
28
+ color = _ref$color === void 0 ? _token.tokens.text : _ref$color,
29
+ content = _ref.content,
28
30
  _ref$maxLines = _ref.maxLines,
29
31
  maxLines = _ref$maxLines === void 0 ? 1 : _ref$maxLines,
30
32
  message = _ref.message,
@@ -36,7 +38,7 @@ var Text = function Text(_ref) {
36
38
  }
37
39
 
38
40
  return (0, _core.jsx)("span", {
39
- css: getStyles(maxLines),
41
+ css: getStyles(maxLines, color),
40
42
  "data-smart-element-text": true,
41
43
  "data-testid": testId
42
44
  }, (0, _utils.getFormattedMessage)(message) || content);
@@ -35,12 +35,15 @@ var _messages = require("../../../../messages");
35
35
 
36
36
  var _dateTime = _interopRequireDefault(require("./date-time"));
37
37
 
38
+ var _token = require("../../../../utils/token");
39
+
38
40
  var _elementMappings;
39
41
 
40
42
  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); }
41
43
 
42
44
  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; }
43
45
 
46
+ var SNIPPET_DEFAULT_MAX_LINES = 3;
44
47
  var elementMappings = (_elementMappings = {}, (0, _defineProperty2.default)(_elementMappings, _constants.ElementName.AuthorGroup, {
45
48
  component: _avatarGroup.default
46
49
  }), (0, _defineProperty2.default)(_elementMappings, _constants.ElementName.CollaboratorGroup, {
@@ -66,7 +69,8 @@ var elementMappings = (_elementMappings = {}, (0, _defineProperty2.default)(_ele
66
69
  }), (0, _defineProperty2.default)(_elementMappings, _constants.ElementName.Snippet, {
67
70
  component: _text.default,
68
71
  props: {
69
- maxLines: 3
72
+ color: _token.tokens.snippet,
73
+ maxLines: SNIPPET_DEFAULT_MAX_LINES
70
74
  }
71
75
  }), (0, _defineProperty2.default)(_elementMappings, _constants.ElementName.State, {
72
76
  component: _lozenge.default