@atlaskit/smart-card 21.0.2 → 21.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/dist/cjs/version.json +1 -1
- package/dist/cjs/view/FlexibleCard/components/actions/action/action-button/index.js +87 -0
- package/dist/cjs/view/FlexibleCard/components/actions/action/action-button/types.js +5 -0
- package/dist/cjs/view/FlexibleCard/components/actions/action/action-dropdown-item/index.js +31 -0
- package/dist/cjs/view/FlexibleCard/components/actions/action/action-dropdown-item/types.js +5 -0
- package/dist/cjs/view/FlexibleCard/components/actions/action/action-icon/index.js +52 -0
- package/dist/cjs/view/FlexibleCard/components/actions/action/action-icon/types.js +5 -0
- package/dist/cjs/view/FlexibleCard/components/actions/action/index.js +42 -104
- package/dist/cjs/view/FlexibleCard/components/blocks/action-group/index.js +44 -15
- package/dist/cjs/view/FlexibleCard/components/blocks/utils.js +12 -1
- package/dist/cjs/view/FlexibleCard/components/utils.js +7 -2
- package/dist/es2019/version.json +1 -1
- package/dist/es2019/view/FlexibleCard/components/actions/action/action-button/index.js +88 -0
- package/dist/es2019/view/FlexibleCard/components/actions/action/action-button/types.js +1 -0
- package/dist/es2019/view/FlexibleCard/components/actions/action/action-dropdown-item/index.js +18 -0
- package/dist/es2019/view/FlexibleCard/components/actions/action/action-dropdown-item/types.js +1 -0
- package/dist/es2019/view/FlexibleCard/components/actions/action/action-icon/index.js +35 -0
- package/dist/es2019/view/FlexibleCard/components/actions/action/action-icon/types.js +1 -0
- package/dist/es2019/view/FlexibleCard/components/actions/action/index.js +26 -110
- package/dist/es2019/view/FlexibleCard/components/blocks/action-group/index.js +31 -12
- package/dist/es2019/view/FlexibleCard/components/blocks/utils.js +12 -2
- package/dist/es2019/view/FlexibleCard/components/utils.js +6 -0
- package/dist/esm/version.json +1 -1
- package/dist/esm/view/FlexibleCard/components/actions/action/action-button/index.js +67 -0
- package/dist/esm/view/FlexibleCard/components/actions/action/action-button/types.js +1 -0
- package/dist/esm/view/FlexibleCard/components/actions/action/action-dropdown-item/index.js +19 -0
- package/dist/esm/view/FlexibleCard/components/actions/action/action-dropdown-item/types.js +1 -0
- package/dist/esm/view/FlexibleCard/components/actions/action/action-icon/index.js +39 -0
- package/dist/esm/view/FlexibleCard/components/actions/action/action-icon/types.js +1 -0
- package/dist/esm/view/FlexibleCard/components/actions/action/index.js +41 -99
- package/dist/esm/view/FlexibleCard/components/blocks/action-group/index.js +44 -16
- package/dist/esm/view/FlexibleCard/components/blocks/utils.js +12 -1
- package/dist/esm/view/FlexibleCard/components/utils.js +3 -1
- package/dist/types/view/FlexibleCard/components/actions/action/action-button/index.d.ts +5 -0
- package/dist/types/view/FlexibleCard/components/actions/action/action-button/types.d.ts +8 -0
- package/dist/types/view/FlexibleCard/components/actions/action/action-dropdown-item/index.d.ts +4 -0
- package/dist/types/view/FlexibleCard/components/actions/action/action-dropdown-item/types.d.ts +8 -0
- package/dist/types/view/FlexibleCard/components/actions/action/action-icon/index.d.ts +5 -0
- package/dist/types/view/FlexibleCard/components/actions/action/action-icon/types.d.ts +7 -0
- package/dist/types/view/FlexibleCard/components/actions/action/index.d.ts +0 -3
- package/dist/types/view/FlexibleCard/components/actions/action/types.d.ts +0 -16
- package/dist/types/view/FlexibleCard/components/blocks/utils.d.ts +1 -1
- package/dist/types/view/FlexibleCard/components/utils.d.ts +2 -0
- package/package.json +8 -5
- package/report.api.md +32 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
# @atlaskit/smart-card
|
|
2
2
|
|
|
3
|
+
## 21.0.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`a657fbfe5e1`](https://bitbucket.org/atlassian/atlassian-frontend/commits/a657fbfe5e1) - [ux] Flexible UI: Fix action menu and its tooltip not disappear after an action is clicked
|
|
8
|
+
|
|
3
9
|
## 21.0.2
|
|
4
10
|
|
|
5
11
|
### Patch Changes
|
package/dist/cjs/version.json
CHANGED
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "__esModule", {
|
|
8
|
+
value: true
|
|
9
|
+
});
|
|
10
|
+
exports.default = void 0;
|
|
11
|
+
|
|
12
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
13
|
+
|
|
14
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
15
|
+
|
|
16
|
+
var _core = require("@emotion/core");
|
|
17
|
+
|
|
18
|
+
var _customThemeButton = _interopRequireDefault(require("@atlaskit/button/custom-theme-button"));
|
|
19
|
+
|
|
20
|
+
var _tooltip = _interopRequireDefault(require("@atlaskit/tooltip"));
|
|
21
|
+
|
|
22
|
+
var _constants = require("../../../../../../constants");
|
|
23
|
+
|
|
24
|
+
var _utils = require("../../../utils");
|
|
25
|
+
|
|
26
|
+
var _templateObject, _templateObject2;
|
|
27
|
+
|
|
28
|
+
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); }
|
|
29
|
+
|
|
30
|
+
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; }
|
|
31
|
+
|
|
32
|
+
var getButtonStyle = function getButtonStyle(size, iconOnly) {
|
|
33
|
+
switch (size) {
|
|
34
|
+
case _constants.SmartLinkSize.Large:
|
|
35
|
+
return iconOnly ? (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n button,\n button:hover,\n button:focus,\n button:active {\n padding: 0;\n > span {\n margin: 0;\n }\n }\n "]))) : '';
|
|
36
|
+
|
|
37
|
+
case _constants.SmartLinkSize.Small:
|
|
38
|
+
return (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 ");
|
|
39
|
+
|
|
40
|
+
case _constants.SmartLinkSize.XLarge:
|
|
41
|
+
case _constants.SmartLinkSize.Medium:
|
|
42
|
+
default:
|
|
43
|
+
return '';
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
var ActionButton = function ActionButton(_ref) {
|
|
48
|
+
var appearance = _ref.appearance,
|
|
49
|
+
content = _ref.content,
|
|
50
|
+
iconAfter = _ref.iconAfter,
|
|
51
|
+
iconBefore = _ref.iconBefore,
|
|
52
|
+
onClick = _ref.onClick,
|
|
53
|
+
overrideCss = _ref.overrideCss,
|
|
54
|
+
size = _ref.size,
|
|
55
|
+
testId = _ref.testId,
|
|
56
|
+
tooltipMessage = _ref.tooltipMessage;
|
|
57
|
+
var iconOnly = !content;
|
|
58
|
+
var onButtonClick = (0, _react.useCallback)(function (handler) {
|
|
59
|
+
return function (e) {
|
|
60
|
+
e.preventDefault();
|
|
61
|
+
handler();
|
|
62
|
+
};
|
|
63
|
+
}, []);
|
|
64
|
+
var onContainerClick = (0, _react.useCallback)(function (e) {
|
|
65
|
+
// Stop button on click event from propagate into parent container.
|
|
66
|
+
e.stopPropagation();
|
|
67
|
+
}, []);
|
|
68
|
+
return (0, _core.jsx)("div", {
|
|
69
|
+
css: [getButtonStyle(size, iconOnly), overrideCss],
|
|
70
|
+
"data-testid": "".concat(testId, "-button-wrapper"),
|
|
71
|
+
onClick: onContainerClick
|
|
72
|
+
}, (0, _core.jsx)(_tooltip.default, {
|
|
73
|
+
content: tooltipMessage,
|
|
74
|
+
hideTooltipOnClick: true,
|
|
75
|
+
testId: "".concat(testId, "-tooltip")
|
|
76
|
+
}, (0, _core.jsx)(_customThemeButton.default, {
|
|
77
|
+
appearance: appearance,
|
|
78
|
+
iconAfter: iconAfter,
|
|
79
|
+
iconBefore: iconBefore,
|
|
80
|
+
onClick: onButtonClick(onClick),
|
|
81
|
+
spacing: _utils.sizeToButtonSpacing[size],
|
|
82
|
+
testId: testId
|
|
83
|
+
}, content)));
|
|
84
|
+
};
|
|
85
|
+
|
|
86
|
+
var _default = ActionButton;
|
|
87
|
+
exports.default = _default;
|
|
@@ -0,0 +1,31 @@
|
|
|
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 _react = _interopRequireDefault(require("react"));
|
|
11
|
+
|
|
12
|
+
var _dropdownMenu = require("@atlaskit/dropdown-menu");
|
|
13
|
+
|
|
14
|
+
var _utils = require("../../../../../../utils");
|
|
15
|
+
|
|
16
|
+
var ActionDropdownItem = function ActionDropdownItem(_ref) {
|
|
17
|
+
var content = _ref.content,
|
|
18
|
+
iconAfter = _ref.iconAfter,
|
|
19
|
+
iconBefore = _ref.iconBefore,
|
|
20
|
+
onClick = _ref.onClick,
|
|
21
|
+
testId = _ref.testId;
|
|
22
|
+
return /*#__PURE__*/_react.default.createElement(_dropdownMenu.DropdownItem, {
|
|
23
|
+
elemAfter: iconAfter,
|
|
24
|
+
elemBefore: iconBefore,
|
|
25
|
+
onClick: (0, _utils.handleOnClick)(onClick),
|
|
26
|
+
testId: testId
|
|
27
|
+
}, content);
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
var _default = ActionDropdownItem;
|
|
31
|
+
exports.default = _default;
|
|
@@ -0,0 +1,52 @@
|
|
|
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 _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
|
+
|
|
12
|
+
var _react = _interopRequireDefault(require("react"));
|
|
13
|
+
|
|
14
|
+
var _core = require("@emotion/core");
|
|
15
|
+
|
|
16
|
+
var _constants = require("../../../../../../constants");
|
|
17
|
+
|
|
18
|
+
var _token = require("../../../../../../utils/token");
|
|
19
|
+
|
|
20
|
+
var _utils = require("../../../utils");
|
|
21
|
+
|
|
22
|
+
var _templateObject;
|
|
23
|
+
|
|
24
|
+
var getIconWidth = function getIconWidth(size) {
|
|
25
|
+
switch (size) {
|
|
26
|
+
case _constants.SmartLinkSize.XLarge:
|
|
27
|
+
case _constants.SmartLinkSize.Large:
|
|
28
|
+
return '1.5rem';
|
|
29
|
+
|
|
30
|
+
case _constants.SmartLinkSize.Medium:
|
|
31
|
+
case _constants.SmartLinkSize.Small:
|
|
32
|
+
default:
|
|
33
|
+
return '1rem';
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
var getIconStyles = function getIconStyles(size) {
|
|
38
|
+
return (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n color: ", ";\n ", ";\n"])), _token.tokens.actionIcon, (0, _utils.getIconSizeStyles)(getIconWidth(size)));
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
var ActionIcon = function ActionIcon(_ref) {
|
|
42
|
+
var size = _ref.size,
|
|
43
|
+
testId = _ref.testId,
|
|
44
|
+
icon = _ref.icon;
|
|
45
|
+
return (0, _core.jsx)("span", {
|
|
46
|
+
css: getIconStyles(size),
|
|
47
|
+
"data-testid": "".concat(testId, "-icon")
|
|
48
|
+
}, icon);
|
|
49
|
+
};
|
|
50
|
+
|
|
51
|
+
var _default = ActionIcon;
|
|
52
|
+
exports.default = _default;
|
|
@@ -5,75 +5,22 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.
|
|
9
|
-
|
|
10
|
-
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
-
|
|
12
|
-
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
8
|
+
exports.default = void 0;
|
|
13
9
|
|
|
14
10
|
var _react = _interopRequireDefault(require("react"));
|
|
15
11
|
|
|
16
12
|
var _core = require("@emotion/core");
|
|
17
13
|
|
|
18
|
-
var _customThemeButton = _interopRequireDefault(require("@atlaskit/button/custom-theme-button"));
|
|
19
|
-
|
|
20
14
|
var _constants = require("../../../../../constants");
|
|
21
15
|
|
|
22
|
-
var
|
|
23
|
-
|
|
24
|
-
var _dropdownMenu = require("@atlaskit/dropdown-menu");
|
|
25
|
-
|
|
26
|
-
var _utils = require("../../utils");
|
|
27
|
-
|
|
28
|
-
var _token = require("../../../../../utils/token");
|
|
29
|
-
|
|
30
|
-
var _utils2 = require("../../../../../utils");
|
|
16
|
+
var _actionButton = _interopRequireDefault(require("./action-button"));
|
|
31
17
|
|
|
32
|
-
var
|
|
33
|
-
|
|
34
|
-
var getIconWidth = function getIconWidth(size) {
|
|
35
|
-
switch (size) {
|
|
36
|
-
case _constants.SmartLinkSize.XLarge:
|
|
37
|
-
case _constants.SmartLinkSize.Large:
|
|
38
|
-
return '1.5rem';
|
|
39
|
-
|
|
40
|
-
case _constants.SmartLinkSize.Medium:
|
|
41
|
-
case _constants.SmartLinkSize.Small:
|
|
42
|
-
default:
|
|
43
|
-
return '1rem';
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
|
|
47
|
-
var getIconStyles = function getIconStyles(size) {
|
|
48
|
-
return (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n color: ", ";\n ", ";\n"])), _token.tokens.actionIcon, (0, _utils.getIconSizeStyles)(getIconWidth(size)));
|
|
49
|
-
};
|
|
18
|
+
var _actionDropdownItem = _interopRequireDefault(require("./action-dropdown-item"));
|
|
50
19
|
|
|
51
|
-
var
|
|
52
|
-
switch (size) {
|
|
53
|
-
case _constants.SmartLinkSize.Large:
|
|
54
|
-
return iconOnly ? (0, _core.css)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n button,\n button:hover,\n button:focus,\n button:active {\n padding: 0;\n > span {\n margin: 0;\n }\n }\n "]))) : '';
|
|
20
|
+
var _actionIcon = _interopRequireDefault(require("./action-icon"));
|
|
55
21
|
|
|
56
|
-
|
|
57
|
-
return (0, _core.css)(_templateObject3 || (_templateObject3 = (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 ");
|
|
22
|
+
/** @jsx jsx */
|
|
58
23
|
|
|
59
|
-
case _constants.SmartLinkSize.XLarge:
|
|
60
|
-
case _constants.SmartLinkSize.Medium:
|
|
61
|
-
default:
|
|
62
|
-
return '';
|
|
63
|
-
}
|
|
64
|
-
};
|
|
65
|
-
|
|
66
|
-
var ActionIcon = function ActionIcon(_ref) {
|
|
67
|
-
var size = _ref.size,
|
|
68
|
-
testId = _ref.testId,
|
|
69
|
-
icon = _ref.icon;
|
|
70
|
-
return (0, _core.jsx)("span", {
|
|
71
|
-
css: getIconStyles(size),
|
|
72
|
-
"data-testid": "".concat(testId, "-icon")
|
|
73
|
-
}, icon);
|
|
74
|
-
};
|
|
75
|
-
|
|
76
|
-
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);
|
|
77
24
|
/**
|
|
78
25
|
* A base action that can be triggered with an on click.
|
|
79
26
|
* @internal
|
|
@@ -82,63 +29,54 @@ var sizeToSpacing = (_sizeToSpacing = {}, (0, _defineProperty2.default)(_sizeToS
|
|
|
82
29
|
* @see EditAction
|
|
83
30
|
* @see CustomAction
|
|
84
31
|
*/
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
tooltipMessage = _ref2.tooltipMessage,
|
|
101
|
-
asDropDownItem = _ref2.asDropDownItem,
|
|
102
|
-
overrideCss = _ref2.overrideCss;
|
|
32
|
+
var Action = function Action(_ref) {
|
|
33
|
+
var _ref$appearance = _ref.appearance,
|
|
34
|
+
appearance = _ref$appearance === void 0 ? 'subtle' : _ref$appearance,
|
|
35
|
+
content = _ref.content,
|
|
36
|
+
onClick = _ref.onClick,
|
|
37
|
+
_ref$size = _ref.size,
|
|
38
|
+
size = _ref$size === void 0 ? _constants.SmartLinkSize.Medium : _ref$size,
|
|
39
|
+
_ref$testId = _ref.testId,
|
|
40
|
+
testId = _ref$testId === void 0 ? 'smart-action' : _ref$testId,
|
|
41
|
+
icon = _ref.icon,
|
|
42
|
+
_ref$iconPosition = _ref.iconPosition,
|
|
43
|
+
iconPosition = _ref$iconPosition === void 0 ? 'before' : _ref$iconPosition,
|
|
44
|
+
tooltipMessage = _ref.tooltipMessage,
|
|
45
|
+
asDropDownItem = _ref.asDropDownItem,
|
|
46
|
+
overrideCss = _ref.overrideCss;
|
|
103
47
|
|
|
104
48
|
if (!onClick) {
|
|
105
49
|
return null;
|
|
106
50
|
}
|
|
107
51
|
|
|
108
|
-
var
|
|
109
|
-
|
|
110
|
-
testId: testId,
|
|
111
|
-
icon: icon
|
|
112
|
-
}) : undefined;
|
|
113
|
-
var iconAfter = icon && iconPosition === 'after' ? (0, _core.jsx)(ActionIcon, {
|
|
52
|
+
var actionIcon = icon && (0, _core.jsx)(_actionIcon.default, {
|
|
53
|
+
icon: icon,
|
|
114
54
|
size: size,
|
|
115
|
-
testId: testId
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
var
|
|
55
|
+
testId: testId
|
|
56
|
+
});
|
|
57
|
+
var iconBefore = icon && iconPosition === 'before' ? actionIcon : undefined;
|
|
58
|
+
var iconAfter = icon && iconPosition === 'after' ? actionIcon : undefined;
|
|
119
59
|
|
|
120
60
|
if (asDropDownItem) {
|
|
121
|
-
return (0, _core.jsx)(
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
onClick:
|
|
126
|
-
|
|
61
|
+
return (0, _core.jsx)(_actionDropdownItem.default, {
|
|
62
|
+
content: content,
|
|
63
|
+
iconAfter: iconAfter,
|
|
64
|
+
iconBefore: iconBefore,
|
|
65
|
+
onClick: onClick,
|
|
66
|
+
testId: testId
|
|
67
|
+
});
|
|
127
68
|
} else {
|
|
128
|
-
return (0, _core.jsx)(
|
|
129
|
-
content: tooltipMessage,
|
|
130
|
-
testId: "".concat(testId, "-tooltip")
|
|
131
|
-
}, (0, _core.jsx)("div", {
|
|
132
|
-
css: [getButtonStyle(size, iconOnly), overrideCss],
|
|
133
|
-
"data-testid": "".concat(testId, "-button-wrapper")
|
|
134
|
-
}, (0, _core.jsx)(_customThemeButton.default, {
|
|
135
|
-
spacing: sizeToSpacing[size],
|
|
69
|
+
return (0, _core.jsx)(_actionButton.default, {
|
|
136
70
|
appearance: appearance,
|
|
137
|
-
|
|
138
|
-
|
|
71
|
+
content: content,
|
|
72
|
+
iconAfter: iconAfter,
|
|
139
73
|
iconBefore: iconBefore,
|
|
140
|
-
|
|
141
|
-
|
|
74
|
+
onClick: onClick,
|
|
75
|
+
overrideCss: overrideCss,
|
|
76
|
+
size: size,
|
|
77
|
+
testId: testId,
|
|
78
|
+
tooltipMessage: tooltipMessage
|
|
79
|
+
});
|
|
142
80
|
}
|
|
143
81
|
};
|
|
144
82
|
|
|
@@ -11,6 +11,8 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
|
|
|
11
11
|
|
|
12
12
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
13
13
|
|
|
14
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
15
|
+
|
|
14
16
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
15
17
|
|
|
16
18
|
var _react = require("react");
|
|
@@ -33,7 +35,7 @@ var _standardButton = _interopRequireDefault(require("@atlaskit/button/standard-
|
|
|
33
35
|
|
|
34
36
|
var _more = _interopRequireDefault(require("@atlaskit/icon/glyph/more"));
|
|
35
37
|
|
|
36
|
-
var
|
|
38
|
+
var _utils2 = require("../../utils");
|
|
37
39
|
|
|
38
40
|
var _token = require("../../../../../utils/token");
|
|
39
41
|
|
|
@@ -62,39 +64,66 @@ var ActionGroup = function ActionGroup(_ref) {
|
|
|
62
64
|
visibleButtonsNum = _ref$visibleButtonsNu === void 0 ? 2 : _ref$visibleButtonsNu,
|
|
63
65
|
onDropdownOpenChange = _ref.onDropdownOpenChange,
|
|
64
66
|
testId = _ref.testId;
|
|
65
|
-
|
|
66
|
-
var
|
|
67
|
-
|
|
67
|
+
|
|
68
|
+
var _useState = (0, _react.useState)(false),
|
|
69
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
70
|
+
isOpen = _useState2[0],
|
|
71
|
+
setIsOpen = _useState2[1];
|
|
72
|
+
|
|
73
|
+
var _useMemo = (0, _react.useMemo)(function () {
|
|
74
|
+
var isMoreThenTwoItems = items.length > visibleButtonsNum;
|
|
75
|
+
var buttons = isMoreThenTwoItems ? items.slice(0, visibleButtonsNum - 1) : items;
|
|
76
|
+
var dropdownItems = isMoreThenTwoItems ? items.slice(visibleButtonsNum - 1) : [];
|
|
77
|
+
return [buttons, dropdownItems];
|
|
78
|
+
}, [items, visibleButtonsNum]),
|
|
79
|
+
_useMemo2 = (0, _slicedToArray2.default)(_useMemo, 2),
|
|
80
|
+
buttonActions = _useMemo2[0],
|
|
81
|
+
dropdownItemActions = _useMemo2[1]; // Stop AK dropdown menu to propagate event on click.
|
|
82
|
+
|
|
68
83
|
|
|
69
84
|
var onClick = (0, _react.useCallback)(function (e) {
|
|
70
85
|
return e.stopPropagation();
|
|
71
86
|
}, []);
|
|
87
|
+
var onOpenChange = (0, _react.useCallback)(function (attrs) {
|
|
88
|
+
setIsOpen(attrs.isOpen);
|
|
89
|
+
|
|
90
|
+
if (onDropdownOpenChange) {
|
|
91
|
+
onDropdownOpenChange(attrs.isOpen);
|
|
92
|
+
}
|
|
93
|
+
}, [onDropdownOpenChange]);
|
|
94
|
+
var onActionClick = (0, _react.useCallback)(function () {
|
|
95
|
+
if (isOpen) {
|
|
96
|
+
onOpenChange({
|
|
97
|
+
isOpen: false
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
}, [isOpen, onOpenChange]);
|
|
72
101
|
return (0, _core.jsx)("div", {
|
|
73
102
|
css: styles,
|
|
74
103
|
className: "actions-button-group",
|
|
75
104
|
onClick: onClick
|
|
76
|
-
}, (0, _core.jsx)(_buttonGroup.default, null, (0, _utils.renderActionItems)(
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
var triggerRef = _ref3.triggerRef,
|
|
83
|
-
props = (0, _objectWithoutProperties2.default)(_ref3, _excluded);
|
|
105
|
+
}, (0, _core.jsx)(_buttonGroup.default, null, (0, _utils.renderActionItems)(buttonActions, size, appearance, false, onActionClick), dropdownItemActions.length > 0 ? (0, _core.jsx)(_dropdownMenu.default, {
|
|
106
|
+
isOpen: isOpen,
|
|
107
|
+
onOpenChange: onOpenChange,
|
|
108
|
+
trigger: function trigger(_ref2) {
|
|
109
|
+
var triggerRef = _ref2.triggerRef,
|
|
110
|
+
props = (0, _objectWithoutProperties2.default)(_ref2, _excluded);
|
|
84
111
|
return (0, _core.jsx)(_tooltip.default, {
|
|
85
112
|
content: (0, _core.jsx)(_reactIntlNext.FormattedMessage, _messages.messages.more_actions),
|
|
113
|
+
hideTooltipOnClick: true,
|
|
86
114
|
testId: "action-group-more-button-tooltip",
|
|
87
115
|
tag: "span"
|
|
88
116
|
}, (0, _core.jsx)(_standardButton.default, (0, _extends2.default)({}, props, {
|
|
89
|
-
spacing:
|
|
117
|
+
spacing: _utils2.sizeToButtonSpacing[size],
|
|
90
118
|
testId: "action-group-more-button",
|
|
91
119
|
iconBefore: (0, _core.jsx)(_more.default, {
|
|
92
120
|
label: "more"
|
|
93
121
|
}),
|
|
94
122
|
ref: triggerRef
|
|
95
123
|
})));
|
|
96
|
-
}
|
|
97
|
-
|
|
124
|
+
},
|
|
125
|
+
testId: "action-group-dropdown"
|
|
126
|
+
}, (0, _utils.renderActionItems)(dropdownItemActions, size, appearance, true, onActionClick)) : null));
|
|
98
127
|
};
|
|
99
128
|
|
|
100
129
|
var _default = ActionGroup;
|
|
@@ -155,6 +155,7 @@ var renderActionItems = function renderActionItems() {
|
|
|
155
155
|
var size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _constants.SmartLinkSize.Medium;
|
|
156
156
|
var appearance = arguments.length > 2 ? arguments[2] : undefined;
|
|
157
157
|
var asDropDownItems = arguments.length > 3 ? arguments[3] : undefined;
|
|
158
|
+
var onActionItemClick = arguments.length > 4 ? arguments[4] : undefined;
|
|
158
159
|
var actions = items.reduce(function (acc, curr, idx) {
|
|
159
160
|
var name = curr.name,
|
|
160
161
|
hideContent = curr.hideContent,
|
|
@@ -174,12 +175,22 @@ var renderActionItems = function renderActionItems() {
|
|
|
174
175
|
}
|
|
175
176
|
|
|
176
177
|
if (Action) {
|
|
178
|
+
var handleOnClick = function handleOnClick() {
|
|
179
|
+
if (onActionItemClick) {
|
|
180
|
+
onActionItemClick();
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
if (onClick) {
|
|
184
|
+
onClick();
|
|
185
|
+
}
|
|
186
|
+
};
|
|
187
|
+
|
|
177
188
|
return [].concat((0, _toConsumableArray2.default)(acc), [/*#__PURE__*/_react.default.createElement(Action, (0, _extends2.default)({
|
|
178
189
|
asDropDownItem: asDropDownItems,
|
|
179
190
|
size: size,
|
|
180
191
|
key: idx,
|
|
181
192
|
appearance: appearance,
|
|
182
|
-
onClick:
|
|
193
|
+
onClick: handleOnClick
|
|
183
194
|
}, actionProps))]);
|
|
184
195
|
}
|
|
185
196
|
|
|
@@ -5,12 +5,14 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.hasWhiteSpace = exports.getTruncateStyles = exports.getMaxLines = exports.getMaxLineHeight = exports.getLinkSizeStyles = exports.getLinkLineHeight = exports.getIconWidth = exports.getIconSizeStyles = exports.getFormattedMessage = void 0;
|
|
8
|
+
exports.sizeToButtonSpacing = exports.hasWhiteSpace = exports.getTruncateStyles = exports.getMaxLines = exports.getMaxLineHeight = exports.getLinkSizeStyles = exports.getLinkLineHeight = exports.getIconWidth = exports.getIconSizeStyles = exports.getFormattedMessage = void 0;
|
|
9
9
|
|
|
10
10
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
11
|
|
|
12
12
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
13
|
|
|
14
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
+
|
|
14
16
|
var _react = _interopRequireDefault(require("react"));
|
|
15
17
|
|
|
16
18
|
var _core = require("@emotion/core");
|
|
@@ -19,7 +21,10 @@ var _reactIntlNext = require("react-intl-next");
|
|
|
19
21
|
|
|
20
22
|
var _constants = require("../../../constants");
|
|
21
23
|
|
|
22
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
|
|
24
|
+
var _sizeToButtonSpacing, _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
|
|
25
|
+
|
|
26
|
+
var sizeToButtonSpacing = (_sizeToButtonSpacing = {}, (0, _defineProperty2.default)(_sizeToButtonSpacing, _constants.SmartLinkSize.Small, 'none'), (0, _defineProperty2.default)(_sizeToButtonSpacing, _constants.SmartLinkSize.Medium, 'compact'), (0, _defineProperty2.default)(_sizeToButtonSpacing, _constants.SmartLinkSize.Large, 'compact'), (0, _defineProperty2.default)(_sizeToButtonSpacing, _constants.SmartLinkSize.XLarge, 'default'), _sizeToButtonSpacing);
|
|
27
|
+
exports.sizeToButtonSpacing = sizeToButtonSpacing;
|
|
23
28
|
|
|
24
29
|
var getFormattedMessage = function getFormattedMessage(message) {
|
|
25
30
|
if (message) {
|
package/dist/es2019/version.json
CHANGED
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/** @jsx jsx */
|
|
2
|
+
import React, { useCallback } from 'react';
|
|
3
|
+
import { css, jsx } from '@emotion/core';
|
|
4
|
+
import Button from '@atlaskit/button/custom-theme-button';
|
|
5
|
+
import Tooltip from '@atlaskit/tooltip';
|
|
6
|
+
import { SmartLinkSize } from '../../../../../../constants';
|
|
7
|
+
import { sizeToButtonSpacing } from '../../../utils';
|
|
8
|
+
|
|
9
|
+
const getButtonStyle = (size, iconOnly) => {
|
|
10
|
+
switch (size) {
|
|
11
|
+
case SmartLinkSize.Large:
|
|
12
|
+
return iconOnly ? css`
|
|
13
|
+
button,
|
|
14
|
+
button:hover,
|
|
15
|
+
button:focus,
|
|
16
|
+
button:active {
|
|
17
|
+
padding: 0;
|
|
18
|
+
> span {
|
|
19
|
+
margin: 0;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
` : '';
|
|
23
|
+
|
|
24
|
+
case SmartLinkSize.Small:
|
|
25
|
+
return css`
|
|
26
|
+
font-size: 0.75rem;
|
|
27
|
+
font-weight: 500;
|
|
28
|
+
line-height: 1rem;
|
|
29
|
+
button,
|
|
30
|
+
button:hover,
|
|
31
|
+
button:focus,
|
|
32
|
+
button:active {
|
|
33
|
+
line-height: 1rem;
|
|
34
|
+
${iconOnly ? `
|
|
35
|
+
padding: 0.125rem;
|
|
36
|
+
` : `
|
|
37
|
+
padding-left: 0.25rem;
|
|
38
|
+
padding-right: 0.25rem;
|
|
39
|
+
`}
|
|
40
|
+
}
|
|
41
|
+
`;
|
|
42
|
+
|
|
43
|
+
case SmartLinkSize.XLarge:
|
|
44
|
+
case SmartLinkSize.Medium:
|
|
45
|
+
default:
|
|
46
|
+
return '';
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
const ActionButton = ({
|
|
51
|
+
appearance,
|
|
52
|
+
content,
|
|
53
|
+
iconAfter,
|
|
54
|
+
iconBefore,
|
|
55
|
+
onClick,
|
|
56
|
+
overrideCss,
|
|
57
|
+
size,
|
|
58
|
+
testId,
|
|
59
|
+
tooltipMessage
|
|
60
|
+
}) => {
|
|
61
|
+
const iconOnly = !content;
|
|
62
|
+
const onButtonClick = useCallback(handler => e => {
|
|
63
|
+
e.preventDefault();
|
|
64
|
+
handler();
|
|
65
|
+
}, []);
|
|
66
|
+
const onContainerClick = useCallback(e => {
|
|
67
|
+
// Stop button on click event from propagate into parent container.
|
|
68
|
+
e.stopPropagation();
|
|
69
|
+
}, []);
|
|
70
|
+
return jsx("div", {
|
|
71
|
+
css: [getButtonStyle(size, iconOnly), overrideCss],
|
|
72
|
+
"data-testid": `${testId}-button-wrapper`,
|
|
73
|
+
onClick: onContainerClick
|
|
74
|
+
}, jsx(Tooltip, {
|
|
75
|
+
content: tooltipMessage,
|
|
76
|
+
hideTooltipOnClick: true,
|
|
77
|
+
testId: `${testId}-tooltip`
|
|
78
|
+
}, jsx(Button, {
|
|
79
|
+
appearance: appearance,
|
|
80
|
+
iconAfter: iconAfter,
|
|
81
|
+
iconBefore: iconBefore,
|
|
82
|
+
onClick: onButtonClick(onClick),
|
|
83
|
+
spacing: sizeToButtonSpacing[size],
|
|
84
|
+
testId: testId
|
|
85
|
+
}, content)));
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
export default ActionButton;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|