@atlaskit/button 16.10.1 → 16.11.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.
- package/CHANGELOG.md +72 -60
- package/dist/cjs/containers/button-group.js +1 -0
- package/dist/cjs/entry-points/new.js +8 -1
- package/dist/cjs/entry-points/unsafe.js +40 -1
- package/dist/cjs/new-button/containers/split-button/index.js +50 -0
- package/dist/cjs/new-button/containers/split-button/split-button-context.js +37 -0
- package/dist/cjs/new-button/containers/split-button/split-button.js +137 -0
- package/dist/cjs/new-button/containers/split-button/types.js +5 -0
- package/dist/cjs/new-button/containers/split-button/utils.js +23 -0
- package/dist/cjs/new-button/variants/default/button.js +1 -2
- package/dist/cjs/new-button/variants/default/link.js +1 -2
- package/dist/cjs/new-button/variants/default/use-default-button.js +11 -16
- package/dist/cjs/new-button/variants/icon/button.js +1 -2
- package/dist/cjs/new-button/variants/icon/link.js +1 -2
- package/dist/cjs/new-button/variants/icon/use-icon-button.js +6 -10
- package/dist/cjs/new-button/variants/shared/colors.js +1 -2
- package/dist/cjs/new-button/variants/shared/content.js +51 -0
- package/dist/cjs/new-button/variants/shared/use-button-base.js +32 -9
- package/dist/cjs/new-button/variants/shared/xcss.js +53 -53
- package/dist/cjs/old-button/button.js +1 -2
- package/dist/cjs/old-button/custom-theme-button/custom-theme-button.js +1 -2
- package/dist/cjs/old-button/custom-theme-button/theme.js +1 -2
- package/dist/cjs/old-button/loading-button.js +1 -2
- package/dist/cjs/old-button/shared/button-base.js +9 -9
- package/dist/cjs/old-button/shared/colors.js +1 -2
- package/dist/cjs/old-button/shared/css.js +2 -3
- package/dist/cjs/old-button/shared/get-if-visually-hidden-children.js +2 -3
- package/dist/cjs/utils/appearances.js +1 -2
- package/dist/cjs/utils/spacing.js +1 -2
- package/dist/cjs/utils/variants.js +2 -4
- package/dist/es2019/containers/button-group.js +1 -0
- package/dist/es2019/entry-points/new.js +2 -1
- package/dist/es2019/entry-points/unsafe.js +4 -1
- package/dist/es2019/new-button/containers/split-button/index.js +3 -0
- package/dist/es2019/new-button/containers/split-button/split-button-context.js +31 -0
- package/dist/es2019/new-button/containers/split-button/split-button.js +129 -0
- package/dist/es2019/new-button/containers/split-button/types.js +1 -0
- package/dist/es2019/new-button/containers/split-button/utils.js +12 -0
- package/dist/es2019/new-button/variants/default/use-default-button.js +10 -14
- package/dist/es2019/new-button/variants/icon/use-icon-button.js +5 -8
- package/dist/es2019/new-button/variants/shared/content.js +43 -0
- package/dist/es2019/new-button/variants/shared/use-button-base.js +32 -8
- package/dist/es2019/new-button/variants/shared/xcss.js +55 -48
- package/dist/es2019/old-button/shared/button-base.js +7 -6
- package/dist/esm/containers/button-group.js +1 -0
- package/dist/esm/entry-points/new.js +2 -1
- package/dist/esm/entry-points/unsafe.js +4 -1
- package/dist/esm/new-button/containers/split-button/index.js +3 -0
- package/dist/esm/new-button/containers/split-button/split-button-context.js +31 -0
- package/dist/esm/new-button/containers/split-button/split-button.js +131 -0
- package/dist/esm/new-button/containers/split-button/types.js +1 -0
- package/dist/esm/new-button/containers/split-button/utils.js +16 -0
- package/dist/esm/new-button/variants/default/use-default-button.js +10 -14
- package/dist/esm/new-button/variants/icon/use-icon-button.js +5 -8
- package/dist/esm/new-button/variants/shared/content.js +44 -0
- package/dist/esm/new-button/variants/shared/use-button-base.js +32 -8
- package/dist/esm/new-button/variants/shared/xcss.js +52 -47
- package/dist/esm/old-button/shared/button-base.js +7 -6
- package/dist/types/entry-points/new.d.ts +1 -0
- package/dist/types/entry-points/unsafe.d.ts +3 -0
- package/dist/types/new-button/containers/split-button/index.d.ts +3 -0
- package/dist/types/new-button/containers/split-button/split-button-context.d.ts +47 -0
- package/dist/types/new-button/containers/split-button/split-button.d.ts +47 -0
- package/dist/types/new-button/containers/split-button/types.d.ts +4 -0
- package/dist/types/new-button/containers/split-button/utils.d.ts +5 -0
- package/dist/types/new-button/variants/shared/content.d.ts +13 -0
- package/dist/types/new-button/variants/shared/use-button-base.d.ts +1 -1
- package/dist/types/new-button/variants/shared/xcss.d.ts +14 -7
- package/dist/types/old-button/types.d.ts +2 -2
- package/dist/types-ts4.5/entry-points/new.d.ts +1 -0
- package/dist/types-ts4.5/entry-points/unsafe.d.ts +3 -0
- package/dist/types-ts4.5/new-button/containers/split-button/index.d.ts +3 -0
- package/dist/types-ts4.5/new-button/containers/split-button/split-button-context.d.ts +47 -0
- package/dist/types-ts4.5/new-button/containers/split-button/split-button.d.ts +47 -0
- package/dist/types-ts4.5/new-button/containers/split-button/types.d.ts +4 -0
- package/dist/types-ts4.5/new-button/containers/split-button/utils.d.ts +5 -0
- package/dist/types-ts4.5/new-button/variants/shared/content.d.ts +13 -0
- package/dist/types-ts4.5/new-button/variants/shared/use-button-base.d.ts +1 -1
- package/dist/types-ts4.5/new-button/variants/shared/xcss.d.ts +14 -7
- package/dist/types-ts4.5/old-button/types.d.ts +2 -2
- package/package.json +6 -6
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.SplitButtonWithSlots = exports.SplitButtonContainer = exports.SplitButton = exports.Divider = void 0;
|
|
7
|
+
var _react = require("@emotion/react");
|
|
8
|
+
var _constants = require("@atlaskit/theme/constants");
|
|
9
|
+
var _splitButtonContext = require("./split-button-context");
|
|
10
|
+
var _utils = require("./utils");
|
|
11
|
+
/** @jsx jsx */
|
|
12
|
+
|
|
13
|
+
var fontSize = (0, _constants.fontSize)();
|
|
14
|
+
var defaultDividerHeight = 20 / fontSize + 'em';
|
|
15
|
+
var defaultDividerStyles = (0, _react.css)({
|
|
16
|
+
height: defaultDividerHeight,
|
|
17
|
+
margin: "var(--ds-space-075, 6px)".concat(" -0.5px")
|
|
18
|
+
});
|
|
19
|
+
var compactDividerHeight = 16 / fontSize + 'em';
|
|
20
|
+
var compactDividerStyles = (0, _react.css)({
|
|
21
|
+
height: compactDividerHeight,
|
|
22
|
+
margin: "var(--ds-space-050, 4px)".concat(" -0.5px")
|
|
23
|
+
});
|
|
24
|
+
var baseDividerStyles = (0, _react.css)({
|
|
25
|
+
display: 'inline-flex',
|
|
26
|
+
width: '1px',
|
|
27
|
+
position: 'relative',
|
|
28
|
+
zIndex: 2
|
|
29
|
+
});
|
|
30
|
+
var disabledStyles = (0, _react.css)({
|
|
31
|
+
backgroundColor: "var(--ds-border, #091E4224)",
|
|
32
|
+
cursor: 'not-allowed'
|
|
33
|
+
});
|
|
34
|
+
var navigationDividerStyles = (0, _react.css)({
|
|
35
|
+
height: compactDividerHeight,
|
|
36
|
+
margin: "var(--ds-space-100, 8px)".concat(" -0.5px"),
|
|
37
|
+
backgroundColor: "var(--ds-border, #0052cc)"
|
|
38
|
+
});
|
|
39
|
+
var dividerAppearance = {
|
|
40
|
+
default: (0, _react.css)({
|
|
41
|
+
backgroundColor: "var(--ds-text, #172B4D)"
|
|
42
|
+
}),
|
|
43
|
+
primary: (0, _react.css)({
|
|
44
|
+
backgroundColor: "var(--ds-text-inverse, #FFF)"
|
|
45
|
+
}),
|
|
46
|
+
danger: (0, _react.css)({
|
|
47
|
+
backgroundColor: "var(--ds-text-inverse, #FFF)"
|
|
48
|
+
}),
|
|
49
|
+
warning: (0, _react.css)({
|
|
50
|
+
backgroundColor: "var(--ds-text-warning-inverse, #172B4D)"
|
|
51
|
+
}),
|
|
52
|
+
navigation: navigationDividerStyles
|
|
53
|
+
};
|
|
54
|
+
var dividerHeight = {
|
|
55
|
+
default: defaultDividerStyles,
|
|
56
|
+
compact: compactDividerStyles
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* TODO: Add JSDoc
|
|
60
|
+
*/
|
|
61
|
+
var Divider = exports.Divider = function Divider(_ref) {
|
|
62
|
+
var appearance = _ref.appearance,
|
|
63
|
+
spacing = _ref.spacing,
|
|
64
|
+
_ref$isDisabled = _ref.isDisabled,
|
|
65
|
+
isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled;
|
|
66
|
+
return (
|
|
67
|
+
// I find it funny to provide a div for Divider
|
|
68
|
+
(0, _react.jsx)("div", {
|
|
69
|
+
css: [baseDividerStyles, dividerAppearance[appearance], dividerHeight[spacing], isDisabled ? disabledStyles : undefined]
|
|
70
|
+
})
|
|
71
|
+
);
|
|
72
|
+
};
|
|
73
|
+
var splitButtonStyles = (0, _react.css)({
|
|
74
|
+
display: 'inline-flex',
|
|
75
|
+
position: 'relative',
|
|
76
|
+
whiteSpace: 'nowrap'
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* TODO: Add JSdoc
|
|
81
|
+
*/
|
|
82
|
+
var SplitButtonContainer = exports.SplitButtonContainer = function SplitButtonContainer(_ref2) {
|
|
83
|
+
var children = _ref2.children;
|
|
84
|
+
return (0, _react.jsx)("div", {
|
|
85
|
+
css: splitButtonStyles
|
|
86
|
+
}, children);
|
|
87
|
+
};
|
|
88
|
+
/**
|
|
89
|
+
* TODO: Add description when adding docs
|
|
90
|
+
*/
|
|
91
|
+
var SplitButton = exports.SplitButton = function SplitButton(_ref3) {
|
|
92
|
+
var children = _ref3.children,
|
|
93
|
+
_ref3$appearance = _ref3.appearance,
|
|
94
|
+
appearance = _ref3$appearance === void 0 ? 'default' : _ref3$appearance,
|
|
95
|
+
_ref3$spacing = _ref3.spacing,
|
|
96
|
+
spacing = _ref3$spacing === void 0 ? 'default' : _ref3$spacing,
|
|
97
|
+
_ref3$isDisabled = _ref3.isDisabled,
|
|
98
|
+
isDisabled = _ref3$isDisabled === void 0 ? false : _ref3$isDisabled;
|
|
99
|
+
var _getActions = (0, _utils.getActions)(children),
|
|
100
|
+
PrimaryAction = _getActions.PrimaryAction,
|
|
101
|
+
SecondaryAction = _getActions.SecondaryAction;
|
|
102
|
+
return (0, _react.jsx)(SplitButtonContainer, null, (0, _react.jsx)(_splitButtonContext.SplitButtonContext.Provider, {
|
|
103
|
+
value: {
|
|
104
|
+
appearance: appearance,
|
|
105
|
+
spacing: spacing,
|
|
106
|
+
isDisabled: isDisabled
|
|
107
|
+
}
|
|
108
|
+
}, PrimaryAction, (0, _react.jsx)(Divider, {
|
|
109
|
+
appearance: appearance,
|
|
110
|
+
spacing: spacing,
|
|
111
|
+
isDisabled: isDisabled
|
|
112
|
+
}), SecondaryAction));
|
|
113
|
+
};
|
|
114
|
+
/**
|
|
115
|
+
* TODO: Decide on API
|
|
116
|
+
*/
|
|
117
|
+
var SplitButtonWithSlots = exports.SplitButtonWithSlots = function SplitButtonWithSlots(_ref4) {
|
|
118
|
+
var primaryAction = _ref4.primaryAction,
|
|
119
|
+
secondaryAction = _ref4.secondaryAction,
|
|
120
|
+
_ref4$appearance = _ref4.appearance,
|
|
121
|
+
appearance = _ref4$appearance === void 0 ? 'default' : _ref4$appearance,
|
|
122
|
+
_ref4$spacing = _ref4.spacing,
|
|
123
|
+
spacing = _ref4$spacing === void 0 ? 'default' : _ref4$spacing,
|
|
124
|
+
_ref4$isDisabled = _ref4.isDisabled,
|
|
125
|
+
isDisabled = _ref4$isDisabled === void 0 ? false : _ref4$isDisabled;
|
|
126
|
+
return (0, _react.jsx)(SplitButtonContainer, null, (0, _react.jsx)(_splitButtonContext.SplitButtonContext.Provider, {
|
|
127
|
+
value: {
|
|
128
|
+
appearance: appearance,
|
|
129
|
+
spacing: spacing,
|
|
130
|
+
isDisabled: isDisabled
|
|
131
|
+
}
|
|
132
|
+
}, primaryAction, (0, _react.jsx)(Divider, {
|
|
133
|
+
appearance: appearance,
|
|
134
|
+
spacing: spacing,
|
|
135
|
+
isDisabled: isDisabled
|
|
136
|
+
}), secondaryAction));
|
|
137
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.getActions = void 0;
|
|
8
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
|
+
var _react = require("react");
|
|
10
|
+
var getActions = exports.getActions = function getActions(children) {
|
|
11
|
+
var _Children$toArray = _react.Children.toArray(children),
|
|
12
|
+
_Children$toArray2 = (0, _slicedToArray2.default)(_Children$toArray, 2),
|
|
13
|
+
PrimaryAction = _Children$toArray2[0],
|
|
14
|
+
SecondaryAction = _Children$toArray2[1];
|
|
15
|
+
if (typeof process !== 'undefined' && process.env.NODE_ENV === 'development' && (!PrimaryAction || !SecondaryAction)) {
|
|
16
|
+
// TODO: i18n?
|
|
17
|
+
throw new SyntaxError('SplitButton requires two children to be provided');
|
|
18
|
+
}
|
|
19
|
+
return {
|
|
20
|
+
PrimaryAction: PrimaryAction,
|
|
21
|
+
SecondaryAction: SecondaryAction
|
|
22
|
+
};
|
|
23
|
+
};
|
|
@@ -7,9 +7,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.default = void 0;
|
|
9
9
|
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
-
var
|
|
10
|
+
var _content = _interopRequireDefault(require("../shared/content"));
|
|
11
11
|
var _useButtonBase = _interopRequireDefault(require("../shared/use-button-base"));
|
|
12
|
-
var _xcss = require("../shared/xcss");
|
|
13
12
|
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); }
|
|
14
13
|
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; }
|
|
15
14
|
/**
|
|
@@ -46,23 +45,20 @@ var useDefaultButton = function useDefaultButton(_ref) {
|
|
|
46
45
|
ref = _ref.ref,
|
|
47
46
|
shouldFitContainer = _ref.shouldFitContainer,
|
|
48
47
|
spacing = _ref.spacing;
|
|
49
|
-
var
|
|
50
|
-
hasOverlay: Boolean(overlay)
|
|
51
|
-
});
|
|
48
|
+
var hasOverlay = Boolean(overlay);
|
|
52
49
|
var baseProps = (0, _useButtonBase.default)({
|
|
53
50
|
analyticsContext: analyticsContext,
|
|
54
51
|
appearance: appearance,
|
|
55
52
|
autoFocus: autoFocus,
|
|
56
53
|
buttonType: buttonType,
|
|
57
|
-
children: /*#__PURE__*/_react.default.createElement(_react.Fragment, null, iconBefore && /*#__PURE__*/_react.default.createElement(
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
}, iconBefore), children && /*#__PURE__*/_react.default.createElement(
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
xcss: [fadeStyles, _xcss.iconStyles]
|
|
54
|
+
children: /*#__PURE__*/_react.default.createElement(_react.Fragment, null, iconBefore && /*#__PURE__*/_react.default.createElement(_content.default, {
|
|
55
|
+
type: "icon",
|
|
56
|
+
hasOverlay: hasOverlay
|
|
57
|
+
}, iconBefore), children && /*#__PURE__*/_react.default.createElement(_content.default, {
|
|
58
|
+
hasOverlay: hasOverlay
|
|
59
|
+
}, children), iconAfter && /*#__PURE__*/_react.default.createElement(_content.default, {
|
|
60
|
+
type: "icon",
|
|
61
|
+
hasOverlay: hasOverlay
|
|
66
62
|
}, iconAfter)),
|
|
67
63
|
interactionName: interactionName,
|
|
68
64
|
isDisabled: isDisabled,
|
|
@@ -86,5 +82,4 @@ var useDefaultButton = function useDefaultButton(_ref) {
|
|
|
86
82
|
});
|
|
87
83
|
return baseProps;
|
|
88
84
|
};
|
|
89
|
-
var _default = useDefaultButton;
|
|
90
|
-
exports.default = _default;
|
|
85
|
+
var _default = exports.default = useDefaultButton;
|
|
@@ -92,5 +92,4 @@ var IconButton = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.default.f
|
|
|
92
92
|
}), baseProps.children);
|
|
93
93
|
}));
|
|
94
94
|
IconButton.displayName = 'IconButton';
|
|
95
|
-
var _default = IconButton;
|
|
96
|
-
exports.default = _default;
|
|
95
|
+
var _default = exports.default = IconButton;
|
|
@@ -6,9 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
|
-
var
|
|
9
|
+
var _content = _interopRequireDefault(require("../shared/content"));
|
|
10
10
|
var _useButtonBase = _interopRequireDefault(require("../shared/use-button-base"));
|
|
11
|
-
var _xcss = require("../shared/xcss");
|
|
12
11
|
/**
|
|
13
12
|
* __Use icon button__
|
|
14
13
|
*
|
|
@@ -41,9 +40,7 @@ var useIconButton = function useIconButton(_ref) {
|
|
|
41
40
|
ref = _ref.ref,
|
|
42
41
|
shouldFitContainer = _ref.shouldFitContainer,
|
|
43
42
|
spacing = _ref.spacing;
|
|
44
|
-
var
|
|
45
|
-
hasOverlay: Boolean(overlay)
|
|
46
|
-
});
|
|
43
|
+
var hasOverlay = Boolean(overlay);
|
|
47
44
|
var baseProps = (0, _useButtonBase.default)({
|
|
48
45
|
analyticsContext: analyticsContext,
|
|
49
46
|
appearance: appearance,
|
|
@@ -53,9 +50,9 @@ var useIconButton = function useIconButton(_ref) {
|
|
|
53
50
|
* TODO: Have not finished IconButton yet. It also needs a required accessible
|
|
54
51
|
* label - likely implemented using VisuallyHidden
|
|
55
52
|
*/
|
|
56
|
-
children: /*#__PURE__*/_react.default.createElement(
|
|
57
|
-
|
|
58
|
-
|
|
53
|
+
children: /*#__PURE__*/_react.default.createElement(_content.default, {
|
|
54
|
+
type: "icon",
|
|
55
|
+
hasOverlay: hasOverlay
|
|
59
56
|
}, icon),
|
|
60
57
|
interactionName: interactionName,
|
|
61
58
|
isDisabled: isDisabled,
|
|
@@ -78,5 +75,4 @@ var useIconButton = function useIconButton(_ref) {
|
|
|
78
75
|
});
|
|
79
76
|
return baseProps;
|
|
80
77
|
};
|
|
81
|
-
var _default = useIconButton;
|
|
82
|
-
exports.default = _default;
|
|
78
|
+
var _default = exports.default = useIconButton;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.default = void 0;
|
|
8
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
|
+
var _react = _interopRequireDefault(require("react"));
|
|
10
|
+
var _primitives = require("@atlaskit/primitives");
|
|
11
|
+
var textStyles = (0, _primitives.xcss)({
|
|
12
|
+
// content can grow and shrink
|
|
13
|
+
flexGrow: 1,
|
|
14
|
+
flexShrink: 1,
|
|
15
|
+
// ellipsis for overflow text
|
|
16
|
+
overflow: 'hidden',
|
|
17
|
+
textOverflow: 'ellipsis',
|
|
18
|
+
whiteSpace: 'nowrap'
|
|
19
|
+
});
|
|
20
|
+
var iconStyles = (0, _primitives.xcss)({
|
|
21
|
+
display: 'flex',
|
|
22
|
+
// icon size cannot grow and shrink
|
|
23
|
+
flexGrow: 0,
|
|
24
|
+
flexShrink: 0,
|
|
25
|
+
alignSelf: 'center',
|
|
26
|
+
fontSize: 0,
|
|
27
|
+
lineHeight: 0,
|
|
28
|
+
userSelect: 'none'
|
|
29
|
+
});
|
|
30
|
+
var commonStyles = (0, _primitives.xcss)({
|
|
31
|
+
transition: 'opacity 0.3s'
|
|
32
|
+
});
|
|
33
|
+
var fadeStyles = (0, _primitives.xcss)({
|
|
34
|
+
opacity: 0
|
|
35
|
+
});
|
|
36
|
+
/**
|
|
37
|
+
* __Content__
|
|
38
|
+
*
|
|
39
|
+
* Used for slots within a Button, including icons and text content.
|
|
40
|
+
*/
|
|
41
|
+
var Content = function Content(_ref) {
|
|
42
|
+
var children = _ref.children,
|
|
43
|
+
_ref$type = _ref.type,
|
|
44
|
+
type = _ref$type === void 0 ? 'text' : _ref$type,
|
|
45
|
+
hasOverlay = _ref.hasOverlay;
|
|
46
|
+
return /*#__PURE__*/_react.default.createElement(_primitives.Box, {
|
|
47
|
+
as: "span",
|
|
48
|
+
xcss: [commonStyles].concat((0, _toConsumableArray2.default)(type === 'text' ? [textStyles] : [iconStyles]), (0, _toConsumableArray2.default)(hasOverlay ? [fadeStyles] : []))
|
|
49
|
+
}, children);
|
|
50
|
+
};
|
|
51
|
+
var _default = exports.default = Content;
|
|
@@ -13,6 +13,7 @@ var _noop = _interopRequireDefault(require("@atlaskit/ds-lib/noop"));
|
|
|
13
13
|
var _useAutoFocus = _interopRequireDefault(require("@atlaskit/ds-lib/use-auto-focus"));
|
|
14
14
|
var _interactionContext = _interopRequireDefault(require("@atlaskit/interaction-context"));
|
|
15
15
|
var _primitives = require("@atlaskit/primitives");
|
|
16
|
+
var _splitButtonContext = require("../../containers/split-button/split-button-context");
|
|
16
17
|
var _blockEvents = _interopRequireDefault(require("./block-events"));
|
|
17
18
|
var _xcss = require("./xcss");
|
|
18
19
|
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); }
|
|
@@ -21,6 +22,17 @@ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbol
|
|
|
21
22
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } // eslint-disable-next-line no-duplicate-imports
|
|
22
23
|
// Include modified onClick with analytics
|
|
23
24
|
|
|
25
|
+
var overlayStyles = (0, _primitives.xcss)({
|
|
26
|
+
position: 'absolute',
|
|
27
|
+
insetInlineStart: 'space.0',
|
|
28
|
+
insetBlockStart: 'space.0',
|
|
29
|
+
insetInlineEnd: 'space.0',
|
|
30
|
+
insetBlockEnd: 'space.0',
|
|
31
|
+
display: 'flex',
|
|
32
|
+
alignItems: 'center',
|
|
33
|
+
justifyContent: 'center'
|
|
34
|
+
});
|
|
35
|
+
|
|
24
36
|
/**
|
|
25
37
|
* __Use button base__
|
|
26
38
|
*
|
|
@@ -37,13 +49,13 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
37
49
|
var useButtonBase = function useButtonBase(_ref) {
|
|
38
50
|
var analyticsContext = _ref.analyticsContext,
|
|
39
51
|
_ref$appearance = _ref.appearance,
|
|
40
|
-
|
|
52
|
+
propAppearance = _ref$appearance === void 0 ? 'default' : _ref$appearance,
|
|
41
53
|
_ref$autoFocus = _ref.autoFocus,
|
|
42
54
|
autoFocus = _ref$autoFocus === void 0 ? false : _ref$autoFocus,
|
|
43
55
|
buttonType = _ref.buttonType,
|
|
44
56
|
interactionName = _ref.interactionName,
|
|
45
57
|
_ref$isDisabled = _ref.isDisabled,
|
|
46
|
-
|
|
58
|
+
propIsDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
|
|
47
59
|
_ref$isSelected = _ref.isSelected,
|
|
48
60
|
isSelected = _ref$isSelected === void 0 ? false : _ref$isSelected,
|
|
49
61
|
_ref$isIconButton = _ref.isIconButton,
|
|
@@ -69,8 +81,16 @@ var useButtonBase = function useButtonBase(_ref) {
|
|
|
69
81
|
_ref$shouldFitContain = _ref.shouldFitContainer,
|
|
70
82
|
shouldFitContainer = _ref$shouldFitContain === void 0 ? false : _ref$shouldFitContain,
|
|
71
83
|
_ref$spacing = _ref.spacing,
|
|
72
|
-
|
|
84
|
+
propSpacing = _ref$spacing === void 0 ? 'default' : _ref$spacing;
|
|
73
85
|
var ourRef = (0, _react.useRef)();
|
|
86
|
+
var splitButtonContext = (0, _splitButtonContext.useSplitButtonContext)();
|
|
87
|
+
var isSplitButton = Boolean(splitButtonContext);
|
|
88
|
+
var isNavigationSplitButton = (splitButtonContext === null || splitButtonContext === void 0 ? void 0 : splitButtonContext.isNavigationSplitButton) || false;
|
|
89
|
+
var appearance = (splitButtonContext === null || splitButtonContext === void 0 ? void 0 : splitButtonContext.appearance) || propAppearance;
|
|
90
|
+
var spacing = (splitButtonContext === null || splitButtonContext === void 0 ? void 0 : splitButtonContext.spacing) || propSpacing;
|
|
91
|
+
var isDisabled = (splitButtonContext === null || splitButtonContext === void 0 ? void 0 : splitButtonContext.isDisabled) || propIsDisabled;
|
|
92
|
+
var isHighlighted = (splitButtonContext === null || splitButtonContext === void 0 ? void 0 : splitButtonContext.isHighlighted) || false;
|
|
93
|
+
var isActiveOverSelected = (splitButtonContext === null || splitButtonContext === void 0 ? void 0 : splitButtonContext.isActiveOverSelected) || false;
|
|
74
94
|
var setRef = (0, _react.useCallback)(function (node) {
|
|
75
95
|
ourRef.current = node;
|
|
76
96
|
if (ref === null) {
|
|
@@ -95,7 +115,7 @@ var useButtonBase = function useButtonBase(_ref) {
|
|
|
95
115
|
action: 'clicked',
|
|
96
116
|
componentName: 'button',
|
|
97
117
|
packageName: "@atlaskit/button",
|
|
98
|
-
packageVersion: "16.
|
|
118
|
+
packageVersion: "16.11.0",
|
|
99
119
|
analyticsData: analyticsContext,
|
|
100
120
|
actionSubject: buttonType
|
|
101
121
|
});
|
|
@@ -105,14 +125,18 @@ var useButtonBase = function useButtonBase(_ref) {
|
|
|
105
125
|
spacing: spacing,
|
|
106
126
|
isDisabled: isDisabled,
|
|
107
127
|
isSelected: isSelected,
|
|
128
|
+
isHighlighted: isHighlighted,
|
|
129
|
+
isActiveOverSelected: isActiveOverSelected,
|
|
108
130
|
shouldFitContainer: shouldFitContainer,
|
|
109
131
|
isIconButton: isIconButton,
|
|
110
132
|
hasOverlay: Boolean(overlay),
|
|
111
133
|
isLink: buttonType === 'link',
|
|
112
134
|
hasIconBefore: hasIconBefore,
|
|
113
|
-
hasIconAfter: hasIconAfter
|
|
135
|
+
hasIconAfter: hasIconAfter,
|
|
136
|
+
isSplit: isSplitButton,
|
|
137
|
+
isNavigationSplit: isNavigationSplitButton
|
|
114
138
|
});
|
|
115
|
-
}, [appearance, buttonType, spacing, isDisabled, isSelected, isIconButton, shouldFitContainer, overlay, hasIconBefore, hasIconAfter]);
|
|
139
|
+
}, [appearance, buttonType, spacing, isDisabled, isSelected, isHighlighted, isActiveOverSelected, isIconButton, shouldFitContainer, overlay, hasIconBefore, hasIconAfter, isSplitButton, isNavigationSplitButton]);
|
|
116
140
|
var isEffectivelyDisabled = isDisabled || Boolean(overlay);
|
|
117
141
|
return _objectSpread({
|
|
118
142
|
ref: setRef,
|
|
@@ -121,7 +145,7 @@ var useButtonBase = function useButtonBase(_ref) {
|
|
|
121
145
|
isDisabled: isEffectivelyDisabled,
|
|
122
146
|
children: /*#__PURE__*/_react.default.createElement(_react.Fragment, null, children, overlay ? /*#__PURE__*/_react.default.createElement(_primitives.Box, {
|
|
123
147
|
as: "span",
|
|
124
|
-
xcss:
|
|
148
|
+
xcss: overlayStyles
|
|
125
149
|
}, overlay) : null)
|
|
126
150
|
}, (0, _blockEvents.default)(isEffectivelyDisabled, {
|
|
127
151
|
onClick: onClick,
|
|
@@ -136,5 +160,4 @@ var useButtonBase = function useButtonBase(_ref) {
|
|
|
136
160
|
onClickCapture: onClickCapture
|
|
137
161
|
}));
|
|
138
162
|
};
|
|
139
|
-
var _default = useButtonBase;
|
|
140
|
-
exports.default = _default;
|
|
163
|
+
var _default = exports.default = useButtonBase;
|
|
@@ -4,10 +4,8 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
4
4
|
Object.defineProperty(exports, "__esModule", {
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
|
-
exports.contentStyles = void 0;
|
|
8
|
-
exports.getFadingStyles = getFadingStyles;
|
|
9
7
|
exports.getXCSS = getXCSS;
|
|
10
|
-
exports.
|
|
8
|
+
exports.heights = void 0;
|
|
11
9
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
12
10
|
var _primitives = require("@atlaskit/primitives");
|
|
13
11
|
var _constants = require("@atlaskit/theme/constants");
|
|
@@ -15,7 +13,7 @@ var _colors = _interopRequireDefault(require("./colors"));
|
|
|
15
13
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
16
14
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
17
15
|
var fontSize = (0, _constants.fontSize)();
|
|
18
|
-
var heights = {
|
|
16
|
+
var heights = exports.heights = {
|
|
19
17
|
default: "".concat(32 / fontSize, "em"),
|
|
20
18
|
compact: "".concat(24 / fontSize, "em"),
|
|
21
19
|
none: 'auto'
|
|
@@ -44,6 +42,19 @@ var verticalAlign = {
|
|
|
44
42
|
compact: 'middle',
|
|
45
43
|
none: 'baseline'
|
|
46
44
|
};
|
|
45
|
+
var splitBorderStyles = {
|
|
46
|
+
':first-of-type': {
|
|
47
|
+
borderTopRightRadius: 0,
|
|
48
|
+
borderBottomRightRadius: 0
|
|
49
|
+
},
|
|
50
|
+
':last-of-type': {
|
|
51
|
+
borderTopLeftRadius: 0,
|
|
52
|
+
borderBottomLeftRadius: 0
|
|
53
|
+
},
|
|
54
|
+
':focus-visible': {
|
|
55
|
+
zIndex: 1
|
|
56
|
+
}
|
|
57
|
+
};
|
|
47
58
|
function getColor(_ref) {
|
|
48
59
|
var group = _ref.group,
|
|
49
60
|
key = _ref.key;
|
|
@@ -55,11 +66,13 @@ function getColors(_ref2) {
|
|
|
55
66
|
interactionState = _ref2$interactionStat === void 0 ? 'default' : _ref2$interactionStat,
|
|
56
67
|
isDisabled = _ref2.isDisabled,
|
|
57
68
|
isSelected = _ref2.isSelected,
|
|
69
|
+
isHighlighted = _ref2.isHighlighted,
|
|
70
|
+
isActiveOverSelected = _ref2.isActiveOverSelected,
|
|
58
71
|
hasOverlay = _ref2.hasOverlay;
|
|
59
72
|
var key = interactionState;
|
|
60
73
|
// Overlay does not change color on interaction, revert to 'default' or resting state
|
|
61
74
|
key = hasOverlay ? 'default' : key;
|
|
62
|
-
key = isSelected ? 'selected' : key;
|
|
75
|
+
key = isSelected || isHighlighted ? isActiveOverSelected ? 'active' : 'selected' : key;
|
|
63
76
|
// Disabled colors overrule everything else
|
|
64
77
|
key = isDisabled ? 'disabled' : key;
|
|
65
78
|
return {
|
|
@@ -78,27 +91,51 @@ function getXCSS(_ref3) {
|
|
|
78
91
|
spacing = _ref3.spacing,
|
|
79
92
|
isDisabled = _ref3.isDisabled,
|
|
80
93
|
isSelected = _ref3.isSelected,
|
|
94
|
+
isHighlighted = _ref3.isHighlighted,
|
|
95
|
+
isActiveOverSelected = _ref3.isActiveOverSelected,
|
|
81
96
|
isIconButton = _ref3.isIconButton,
|
|
82
97
|
shouldFitContainer = _ref3.shouldFitContainer,
|
|
83
98
|
isLink = _ref3.isLink,
|
|
99
|
+
isSplit = _ref3.isSplit,
|
|
100
|
+
isNavigationSplit = _ref3.isNavigationSplit,
|
|
84
101
|
hasOverlay = _ref3.hasOverlay,
|
|
85
102
|
hasIconBefore = _ref3.hasIconBefore,
|
|
86
103
|
hasIconAfter = _ref3.hasIconAfter;
|
|
87
104
|
var baseColors = getColors({
|
|
88
105
|
appearance: appearance,
|
|
89
106
|
isSelected: isSelected,
|
|
107
|
+
isHighlighted: isHighlighted,
|
|
108
|
+
isActiveOverSelected: isActiveOverSelected,
|
|
90
109
|
isDisabled: isDisabled
|
|
91
110
|
});
|
|
92
111
|
var combinedBaseColorStyles = isLink ? _objectSpread(_objectSpread({}, baseColors), {}, {
|
|
93
112
|
textDecoration: 'none',
|
|
94
113
|
// Disabling visited styles (by re-declaring the base colors)
|
|
95
114
|
':visited': baseColors
|
|
115
|
+
}) : isNavigationSplit && !isSelected ? _objectSpread(_objectSpread({}, baseColors), {}, {
|
|
116
|
+
backgroundColor: 'color.background.neutral.subtle'
|
|
96
117
|
}) : baseColors;
|
|
97
118
|
var height = heights[spacing];
|
|
98
119
|
var width = shouldFitContainer ? '100%' : 'auto';
|
|
99
|
-
width = isIconButton ? height : width;
|
|
100
|
-
var
|
|
101
|
-
var
|
|
120
|
+
width = isIconButton ? isNavigationSplit ? '24px' : height : width;
|
|
121
|
+
var defaultPaddingInlineStart = paddingInline[spacing][hasIconBefore ? 'withIcon' : 'default'];
|
|
122
|
+
var defaultPaddingInlineEnd = paddingInline[spacing][hasIconAfter ? 'withIcon' : 'default'];
|
|
123
|
+
var splitButtonStyles = isSplit ? splitBorderStyles : {};
|
|
124
|
+
var getNavigationSplitButtonPaddings = function getNavigationSplitButtonPaddings() {
|
|
125
|
+
if (isNavigationSplit) {
|
|
126
|
+
return {
|
|
127
|
+
paddingInlineStart: 'space.075',
|
|
128
|
+
paddingInlineEnd: 'space.075'
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
return {
|
|
132
|
+
paddingInlineStart: isIconButton ? 'space.0' : defaultPaddingInlineStart,
|
|
133
|
+
paddingInlineEnd: isIconButton ? 'space.0' : defaultPaddingInlineEnd
|
|
134
|
+
};
|
|
135
|
+
};
|
|
136
|
+
var _getNavigationSplitBu = getNavigationSplitButtonPaddings(),
|
|
137
|
+
paddingInlineStart = _getNavigationSplitBu.paddingInlineStart,
|
|
138
|
+
paddingInlineEnd = _getNavigationSplitBu.paddingInlineEnd;
|
|
102
139
|
return (0, _primitives.xcss)(_objectSpread(_objectSpread(_objectSpread({
|
|
103
140
|
alignItems: 'center',
|
|
104
141
|
borderWidth: 'border.width.0',
|
|
@@ -117,8 +154,8 @@ function getXCSS(_ref3) {
|
|
|
117
154
|
whiteSpace: 'nowrap',
|
|
118
155
|
height: height,
|
|
119
156
|
paddingBlock: 'space.0',
|
|
120
|
-
paddingInlineStart:
|
|
121
|
-
paddingInlineEnd:
|
|
157
|
+
paddingInlineStart: paddingInlineStart,
|
|
158
|
+
paddingInlineEnd: paddingInlineEnd,
|
|
122
159
|
columnGap: gap[spacing],
|
|
123
160
|
verticalAlign: verticalAlign[spacing],
|
|
124
161
|
width: width,
|
|
@@ -129,7 +166,8 @@ function getXCSS(_ref3) {
|
|
|
129
166
|
} : {}), {}, {
|
|
130
167
|
':hover': _objectSpread(_objectSpread({}, getColors({
|
|
131
168
|
appearance: appearance,
|
|
132
|
-
isSelected: isSelected,
|
|
169
|
+
isSelected: isNavigationSplit && !isSelected ? false : isSelected,
|
|
170
|
+
isActiveOverSelected: isActiveOverSelected,
|
|
133
171
|
isDisabled: isDisabled,
|
|
134
172
|
interactionState: 'hover',
|
|
135
173
|
hasOverlay: hasOverlay
|
|
@@ -140,7 +178,8 @@ function getXCSS(_ref3) {
|
|
|
140
178
|
}),
|
|
141
179
|
':active': _objectSpread(_objectSpread({}, getColors({
|
|
142
180
|
appearance: appearance,
|
|
143
|
-
isSelected: isSelected,
|
|
181
|
+
isSelected: isNavigationSplit && !isSelected ? false : isSelected,
|
|
182
|
+
isActiveOverSelected: isActiveOverSelected,
|
|
144
183
|
isDisabled: isDisabled,
|
|
145
184
|
interactionState: 'active',
|
|
146
185
|
hasOverlay: hasOverlay
|
|
@@ -148,44 +187,5 @@ function getXCSS(_ref3) {
|
|
|
148
187
|
// background, box-shadow
|
|
149
188
|
transitionDuration: '0s, 0s'
|
|
150
189
|
})
|
|
151
|
-
}));
|
|
152
|
-
}
|
|
153
|
-
var iconStyles = (0, _primitives.xcss)({
|
|
154
|
-
display: 'flex',
|
|
155
|
-
// icon size cannot grow and shrink
|
|
156
|
-
flexGrow: 0,
|
|
157
|
-
flexShrink: 0,
|
|
158
|
-
alignSelf: 'center',
|
|
159
|
-
fontSize: 0,
|
|
160
|
-
lineHeight: 0,
|
|
161
|
-
userSelect: 'none'
|
|
162
|
-
});
|
|
163
|
-
exports.iconStyles = iconStyles;
|
|
164
|
-
var contentStyles = (0, _primitives.xcss)({
|
|
165
|
-
// content can grow and shrink
|
|
166
|
-
flexGrow: 1,
|
|
167
|
-
flexShrink: 1,
|
|
168
|
-
// ellipsis for overflow text
|
|
169
|
-
overflow: 'hidden',
|
|
170
|
-
textOverflow: 'ellipsis',
|
|
171
|
-
whiteSpace: 'nowrap'
|
|
172
|
-
});
|
|
173
|
-
exports.contentStyles = contentStyles;
|
|
174
|
-
function getFadingStyles(_ref4) {
|
|
175
|
-
var hasOverlay = _ref4.hasOverlay;
|
|
176
|
-
return (0, _primitives.xcss)({
|
|
177
|
-
opacity: hasOverlay ? 0 : 1,
|
|
178
|
-
transition: 'opacity 0.3s'
|
|
179
|
-
});
|
|
180
|
-
}
|
|
181
|
-
var overlayStyles = (0, _primitives.xcss)({
|
|
182
|
-
position: 'absolute',
|
|
183
|
-
left: 'space.0',
|
|
184
|
-
top: 'space.0',
|
|
185
|
-
right: 'space.0',
|
|
186
|
-
bottom: 'space.0',
|
|
187
|
-
display: 'flex',
|
|
188
|
-
alignItems: 'center',
|
|
189
|
-
justifyContent: 'center'
|
|
190
|
-
});
|
|
191
|
-
exports.overlayStyles = overlayStyles;
|
|
190
|
+
}, splitButtonStyles));
|
|
191
|
+
}
|
|
@@ -101,5 +101,4 @@ var Button = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.default.forwa
|
|
|
101
101
|
|
|
102
102
|
// Tools including enzyme rely on components having a display name
|
|
103
103
|
Button.displayName = 'Button';
|
|
104
|
-
var _default = Button;
|
|
105
|
-
exports.default = _default;
|
|
104
|
+
var _default = exports.default = Button;
|
|
@@ -200,5 +200,4 @@ var CustomThemeButton = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.de
|
|
|
200
200
|
|
|
201
201
|
// Tools including enzyme rely on components having a display name
|
|
202
202
|
CustomThemeButton.displayName = 'CustomThemeButton';
|
|
203
|
-
var _default = CustomThemeButton;
|
|
204
|
-
exports.default = _default;
|
|
203
|
+
var _default = exports.default = CustomThemeButton;
|