@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.
Files changed (81) hide show
  1. package/CHANGELOG.md +72 -60
  2. package/dist/cjs/containers/button-group.js +1 -0
  3. package/dist/cjs/entry-points/new.js +8 -1
  4. package/dist/cjs/entry-points/unsafe.js +40 -1
  5. package/dist/cjs/new-button/containers/split-button/index.js +50 -0
  6. package/dist/cjs/new-button/containers/split-button/split-button-context.js +37 -0
  7. package/dist/cjs/new-button/containers/split-button/split-button.js +137 -0
  8. package/dist/cjs/new-button/containers/split-button/types.js +5 -0
  9. package/dist/cjs/new-button/containers/split-button/utils.js +23 -0
  10. package/dist/cjs/new-button/variants/default/button.js +1 -2
  11. package/dist/cjs/new-button/variants/default/link.js +1 -2
  12. package/dist/cjs/new-button/variants/default/use-default-button.js +11 -16
  13. package/dist/cjs/new-button/variants/icon/button.js +1 -2
  14. package/dist/cjs/new-button/variants/icon/link.js +1 -2
  15. package/dist/cjs/new-button/variants/icon/use-icon-button.js +6 -10
  16. package/dist/cjs/new-button/variants/shared/colors.js +1 -2
  17. package/dist/cjs/new-button/variants/shared/content.js +51 -0
  18. package/dist/cjs/new-button/variants/shared/use-button-base.js +32 -9
  19. package/dist/cjs/new-button/variants/shared/xcss.js +53 -53
  20. package/dist/cjs/old-button/button.js +1 -2
  21. package/dist/cjs/old-button/custom-theme-button/custom-theme-button.js +1 -2
  22. package/dist/cjs/old-button/custom-theme-button/theme.js +1 -2
  23. package/dist/cjs/old-button/loading-button.js +1 -2
  24. package/dist/cjs/old-button/shared/button-base.js +9 -9
  25. package/dist/cjs/old-button/shared/colors.js +1 -2
  26. package/dist/cjs/old-button/shared/css.js +2 -3
  27. package/dist/cjs/old-button/shared/get-if-visually-hidden-children.js +2 -3
  28. package/dist/cjs/utils/appearances.js +1 -2
  29. package/dist/cjs/utils/spacing.js +1 -2
  30. package/dist/cjs/utils/variants.js +2 -4
  31. package/dist/es2019/containers/button-group.js +1 -0
  32. package/dist/es2019/entry-points/new.js +2 -1
  33. package/dist/es2019/entry-points/unsafe.js +4 -1
  34. package/dist/es2019/new-button/containers/split-button/index.js +3 -0
  35. package/dist/es2019/new-button/containers/split-button/split-button-context.js +31 -0
  36. package/dist/es2019/new-button/containers/split-button/split-button.js +129 -0
  37. package/dist/es2019/new-button/containers/split-button/types.js +1 -0
  38. package/dist/es2019/new-button/containers/split-button/utils.js +12 -0
  39. package/dist/es2019/new-button/variants/default/use-default-button.js +10 -14
  40. package/dist/es2019/new-button/variants/icon/use-icon-button.js +5 -8
  41. package/dist/es2019/new-button/variants/shared/content.js +43 -0
  42. package/dist/es2019/new-button/variants/shared/use-button-base.js +32 -8
  43. package/dist/es2019/new-button/variants/shared/xcss.js +55 -48
  44. package/dist/es2019/old-button/shared/button-base.js +7 -6
  45. package/dist/esm/containers/button-group.js +1 -0
  46. package/dist/esm/entry-points/new.js +2 -1
  47. package/dist/esm/entry-points/unsafe.js +4 -1
  48. package/dist/esm/new-button/containers/split-button/index.js +3 -0
  49. package/dist/esm/new-button/containers/split-button/split-button-context.js +31 -0
  50. package/dist/esm/new-button/containers/split-button/split-button.js +131 -0
  51. package/dist/esm/new-button/containers/split-button/types.js +1 -0
  52. package/dist/esm/new-button/containers/split-button/utils.js +16 -0
  53. package/dist/esm/new-button/variants/default/use-default-button.js +10 -14
  54. package/dist/esm/new-button/variants/icon/use-icon-button.js +5 -8
  55. package/dist/esm/new-button/variants/shared/content.js +44 -0
  56. package/dist/esm/new-button/variants/shared/use-button-base.js +32 -8
  57. package/dist/esm/new-button/variants/shared/xcss.js +52 -47
  58. package/dist/esm/old-button/shared/button-base.js +7 -6
  59. package/dist/types/entry-points/new.d.ts +1 -0
  60. package/dist/types/entry-points/unsafe.d.ts +3 -0
  61. package/dist/types/new-button/containers/split-button/index.d.ts +3 -0
  62. package/dist/types/new-button/containers/split-button/split-button-context.d.ts +47 -0
  63. package/dist/types/new-button/containers/split-button/split-button.d.ts +47 -0
  64. package/dist/types/new-button/containers/split-button/types.d.ts +4 -0
  65. package/dist/types/new-button/containers/split-button/utils.d.ts +5 -0
  66. package/dist/types/new-button/variants/shared/content.d.ts +13 -0
  67. package/dist/types/new-button/variants/shared/use-button-base.d.ts +1 -1
  68. package/dist/types/new-button/variants/shared/xcss.d.ts +14 -7
  69. package/dist/types/old-button/types.d.ts +2 -2
  70. package/dist/types-ts4.5/entry-points/new.d.ts +1 -0
  71. package/dist/types-ts4.5/entry-points/unsafe.d.ts +3 -0
  72. package/dist/types-ts4.5/new-button/containers/split-button/index.d.ts +3 -0
  73. package/dist/types-ts4.5/new-button/containers/split-button/split-button-context.d.ts +47 -0
  74. package/dist/types-ts4.5/new-button/containers/split-button/split-button.d.ts +47 -0
  75. package/dist/types-ts4.5/new-button/containers/split-button/types.d.ts +4 -0
  76. package/dist/types-ts4.5/new-button/containers/split-button/utils.d.ts +5 -0
  77. package/dist/types-ts4.5/new-button/variants/shared/content.d.ts +13 -0
  78. package/dist/types-ts4.5/new-button/variants/shared/use-button-base.d.ts +1 -1
  79. package/dist/types-ts4.5/new-button/variants/shared/xcss.d.ts +14 -7
  80. package/dist/types-ts4.5/old-button/types.d.ts +2 -2
  81. 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,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -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
+ };
@@ -96,5 +96,4 @@ var Button = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.default.forwa
96
96
  }), baseProps.children);
97
97
  }));
98
98
  Button.displayName = 'Button';
99
- var _default = Button;
100
- exports.default = _default;
99
+ var _default = exports.default = Button;
@@ -102,5 +102,4 @@ var LinkButton = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.default.f
102
102
  );
103
103
  }));
104
104
  LinkButton.displayName = 'LinkButton';
105
- var _default = LinkButton;
106
- exports.default = _default;
105
+ var _default = exports.default = LinkButton;
@@ -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 _primitives = require("@atlaskit/primitives");
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 fadeStyles = (0, _xcss.getFadingStyles)({
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(_primitives.Box, {
58
- as: "span",
59
- xcss: [fadeStyles, _xcss.iconStyles]
60
- }, iconBefore), children && /*#__PURE__*/_react.default.createElement(_primitives.Box, {
61
- as: "span",
62
- xcss: [fadeStyles, _xcss.contentStyles]
63
- }, children), iconAfter && /*#__PURE__*/_react.default.createElement(_primitives.Box, {
64
- as: "span",
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;
@@ -98,5 +98,4 @@ var LinkIconButton = /*#__PURE__*/_react.default.memo( /*#__PURE__*/_react.defau
98
98
  );
99
99
  }));
100
100
  LinkIconButton.displayName = 'LinkIconButton';
101
- var _default = LinkIconButton;
102
- exports.default = _default;
101
+ var _default = exports.default = LinkIconButton;
@@ -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 _primitives = require("@atlaskit/primitives");
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 fadeStyles = (0, _xcss.getFadingStyles)({
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(_primitives.Box, {
57
- as: "span",
58
- xcss: [fadeStyles, _xcss.iconStyles]
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;
@@ -126,5 +126,4 @@ var values = {
126
126
  }
127
127
  }
128
128
  };
129
- var _default = values;
130
- exports.default = _default;
129
+ var _default = exports.default = values;
@@ -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
- appearance = _ref$appearance === void 0 ? 'default' : _ref$appearance,
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
- isDisabled = _ref$isDisabled === void 0 ? false : _ref$isDisabled,
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
- spacing = _ref$spacing === void 0 ? 'default' : _ref$spacing;
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.10.1",
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: _xcss.overlayStyles
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.overlayStyles = exports.iconStyles = void 0;
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 paddingInlineStart = paddingInline[spacing][hasIconBefore ? 'withIcon' : 'default'];
101
- var paddingInlineEnd = paddingInline[spacing][hasIconAfter ? 'withIcon' : 'default'];
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: isIconButton ? 'space.0' : paddingInlineStart,
121
- paddingInlineEnd: isIconButton ? 'space.0' : 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;
@@ -98,5 +98,4 @@ var Theme = (0, _components.createTheme)(function (themeProps) {
98
98
  });
99
99
 
100
100
  // eslint-disable-next-line @repo/internal/react/require-jsdoc
101
- var _default = Theme;
102
- exports.default = _default;
101
+ var _default = exports.default = Theme;