@atlaskit/dropdown-menu 11.9.2 → 11.9.4
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 +12 -0
- package/dist/cjs/checkbox/dropdown-item-checkbox.js +4 -16
- package/dist/cjs/internal/components/checkbox-icon.js +42 -0
- package/dist/cjs/internal/components/radio-icon.js +42 -0
- package/dist/cjs/radio/dropdown-item-radio.js +3 -14
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/checkbox/dropdown-item-checkbox.js +4 -13
- package/dist/es2019/internal/components/checkbox-icon.js +35 -0
- package/dist/es2019/internal/components/radio-icon.js +35 -0
- package/dist/es2019/radio/dropdown-item-radio.js +3 -11
- package/dist/es2019/version.json +1 -1
- package/dist/esm/checkbox/dropdown-item-checkbox.js +4 -16
- package/dist/esm/internal/components/checkbox-icon.js +34 -0
- package/dist/esm/internal/components/radio-icon.js +34 -0
- package/dist/esm/radio/dropdown-item-radio.js +3 -14
- package/dist/esm/version.json +1 -1
- package/dist/types/internal/components/checkbox-icon.d.ts +12 -0
- package/dist/types/internal/components/radio-icon.d.ts +12 -0
- package/dist/types-ts4.5/internal/components/checkbox-icon.d.ts +12 -0
- package/dist/types-ts4.5/internal/components/radio-icon.d.ts +12 -0
- package/package.json +2 -2
- package/dist/cjs/internal/utils/get-icon-colors.js +0 -21
- package/dist/es2019/internal/utils/get-icon-colors.js +0 -14
- package/dist/esm/internal/utils/get-icon-colors.js +0 -14
- package/dist/types/internal/utils/get-icon-colors.d.ts +0 -8
- package/dist/types-ts4.5/internal/utils/get-icon-colors.d.ts +0 -8
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @atlaskit/dropdown-menu
|
|
2
2
|
|
|
3
|
+
## 11.9.4
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`296683f5adc`](https://bitbucket.org/atlassian/atlassian-frontend/commits/296683f5adc) - Update DropdownItemCheckbox and DropdownItemRadio icon color and add a border to these icons to be consistent within our design system.
|
|
8
|
+
|
|
9
|
+
## 11.9.3
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- [`f42d723da8c`](https://bitbucket.org/atlassian/atlassian-frontend/commits/f42d723da8c) - always render role="menuitemcheckbox"
|
|
14
|
+
|
|
3
15
|
## 11.9.2
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
|
@@ -11,12 +11,10 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
|
|
|
11
11
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
12
12
|
var _react = _interopRequireWildcard(require("react"));
|
|
13
13
|
var _noop = _interopRequireDefault(require("@atlaskit/ds-lib/noop"));
|
|
14
|
-
var _checkbox = _interopRequireDefault(require("@atlaskit/icon/glyph/checkbox"));
|
|
15
14
|
var _buttonItem = _interopRequireDefault(require("@atlaskit/menu/button-item"));
|
|
15
|
+
var _checkboxIcon = _interopRequireDefault(require("../internal/components/checkbox-icon"));
|
|
16
16
|
var _useCheckboxState3 = _interopRequireDefault(require("../internal/hooks/use-checkbox-state"));
|
|
17
17
|
var _useRegisterItemWithFocusManager = _interopRequireDefault(require("../internal/hooks/use-register-item-with-focus-manager"));
|
|
18
|
-
var _getIconColors = _interopRequireDefault(require("../internal/utils/get-icon-colors"));
|
|
19
|
-
var _isVoiceOverSupported = _interopRequireDefault(require("../internal/utils/is-voice-over-supported"));
|
|
20
18
|
var _excluded = ["id", "isSelected", "defaultSelected", "onClick", "shouldTitleWrap", "shouldDescriptionWrap"];
|
|
21
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); }
|
|
22
20
|
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; }
|
|
@@ -52,32 +50,22 @@ var DropdownItemCheckbox = function DropdownItemCheckbox(props) {
|
|
|
52
50
|
_useCheckboxState2 = (0, _slicedToArray2.default)(_useCheckboxState, 2),
|
|
53
51
|
selected = _useCheckboxState2[0],
|
|
54
52
|
setSelected = _useCheckboxState2[1];
|
|
55
|
-
var _useState = (0, _react.useState)((0, _getIconColors.default)(defaultSelected)),
|
|
56
|
-
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
57
|
-
iconColors = _useState2[0],
|
|
58
|
-
setIconColors = _useState2[1];
|
|
59
53
|
var onClickHandler = (0, _react.useCallback)(function (event) {
|
|
60
54
|
setSelected(function (selected) {
|
|
61
55
|
return !selected;
|
|
62
56
|
});
|
|
63
57
|
providedOnClick(event);
|
|
64
58
|
}, [providedOnClick, setSelected]);
|
|
65
|
-
(0, _react.useEffect)(function () {
|
|
66
|
-
setIconColors((0, _getIconColors.default)(selected));
|
|
67
|
-
}, [selected]);
|
|
68
59
|
var itemRef = (0, _useRegisterItemWithFocusManager.default)();
|
|
69
60
|
return /*#__PURE__*/_react.default.createElement(_buttonItem.default, (0, _extends2.default)({
|
|
70
61
|
id: id,
|
|
71
62
|
onClick: onClickHandler,
|
|
72
|
-
role:
|
|
63
|
+
role: "menuitemcheckbox",
|
|
73
64
|
"aria-checked": selected,
|
|
74
65
|
shouldTitleWrap: shouldTitleWrap,
|
|
75
66
|
shouldDescriptionWrap: shouldDescriptionWrap,
|
|
76
|
-
iconBefore: /*#__PURE__*/_react.default.createElement(
|
|
77
|
-
|
|
78
|
-
size: "medium",
|
|
79
|
-
primaryColor: iconColors.primary,
|
|
80
|
-
secondaryColor: iconColors.secondary
|
|
67
|
+
iconBefore: /*#__PURE__*/_react.default.createElement(_checkboxIcon.default, {
|
|
68
|
+
checked: selected
|
|
81
69
|
}),
|
|
82
70
|
ref: itemRef
|
|
83
71
|
// eslint-disable-next-line @repo/internal/react/no-unsafe-spread-props
|
|
@@ -0,0 +1,42 @@
|
|
|
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 _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _svg = _interopRequireDefault(require("@atlaskit/icon/svg"));
|
|
10
|
+
var _colors = require("@atlaskit/theme/colors");
|
|
11
|
+
/**
|
|
12
|
+
* __Checkbox icon__
|
|
13
|
+
*
|
|
14
|
+
* Used to visually represent the selected state in DropdownItemCheckbox
|
|
15
|
+
*
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
18
|
+
var CheckboxIcon = function CheckboxIcon(_ref) {
|
|
19
|
+
var checked = _ref.checked;
|
|
20
|
+
return /*#__PURE__*/_react.default.createElement(_svg.default, {
|
|
21
|
+
label: "",
|
|
22
|
+
size: "medium",
|
|
23
|
+
primaryColor: checked ? "var(--ds-background-selected-bold, ".concat(_colors.B400, ")") : "var(--ds-background-input, ".concat(_colors.N10, ")"),
|
|
24
|
+
secondaryColor: checked ? "var(--ds-icon-inverse, ".concat(_colors.N10, ")") : 'transparent'
|
|
25
|
+
}, /*#__PURE__*/_react.default.createElement("g", {
|
|
26
|
+
fillRule: "evenodd"
|
|
27
|
+
}, /*#__PURE__*/_react.default.createElement("rect", {
|
|
28
|
+
fill: "currentColor",
|
|
29
|
+
x: "6",
|
|
30
|
+
y: "6",
|
|
31
|
+
width: "12",
|
|
32
|
+
height: "12",
|
|
33
|
+
rx: "2",
|
|
34
|
+
stroke: checked ? "var(--ds-border-selected, ".concat(_colors.B400, ")") : "var(--ds-border-input, ".concat(_colors.N40, ")"),
|
|
35
|
+
strokeWidth: 2
|
|
36
|
+
}), /*#__PURE__*/_react.default.createElement("path", {
|
|
37
|
+
d: "M9.707 11.293a1 1 0 10-1.414 1.414l2 2a1 1 0 001.414 0l4-4a1 1 0 10-1.414-1.414L11 12.586l-1.293-1.293z",
|
|
38
|
+
fill: "inherit"
|
|
39
|
+
})));
|
|
40
|
+
};
|
|
41
|
+
var _default = CheckboxIcon;
|
|
42
|
+
exports.default = _default;
|
|
@@ -0,0 +1,42 @@
|
|
|
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 _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _svg = _interopRequireDefault(require("@atlaskit/icon/svg"));
|
|
10
|
+
var _colors = require("@atlaskit/theme/colors");
|
|
11
|
+
/**
|
|
12
|
+
* __Radio icon__
|
|
13
|
+
*
|
|
14
|
+
* Used to visually represent the selected state in DropdownItemRadio
|
|
15
|
+
*
|
|
16
|
+
* @internal
|
|
17
|
+
*/
|
|
18
|
+
var RadioIcon = function RadioIcon(_ref) {
|
|
19
|
+
var checked = _ref.checked;
|
|
20
|
+
return /*#__PURE__*/_react.default.createElement(_svg.default, {
|
|
21
|
+
label: "",
|
|
22
|
+
size: "medium",
|
|
23
|
+
primaryColor: checked ? "var(--ds-background-selected-bold, ".concat(_colors.B400, ")") : "var(--ds-background-input, ".concat(_colors.N10, ")"),
|
|
24
|
+
secondaryColor: checked ? "var(--ds-icon-inverse, ".concat(_colors.N10, ")") : 'transparent'
|
|
25
|
+
}, /*#__PURE__*/_react.default.createElement("g", {
|
|
26
|
+
fillRule: "evenodd"
|
|
27
|
+
}, /*#__PURE__*/_react.default.createElement("circle", {
|
|
28
|
+
fill: "currentColor",
|
|
29
|
+
cx: "12",
|
|
30
|
+
cy: "12",
|
|
31
|
+
r: "6",
|
|
32
|
+
stroke: checked ? "var(--ds-border-selected, ".concat(_colors.B400, ")") : "var(--ds-border-input, ".concat(_colors.N40, ")"),
|
|
33
|
+
strokeWidth: 2
|
|
34
|
+
}), /*#__PURE__*/_react.default.createElement("circle", {
|
|
35
|
+
fill: "inherit",
|
|
36
|
+
cx: "12",
|
|
37
|
+
cy: "12",
|
|
38
|
+
r: "2"
|
|
39
|
+
})));
|
|
40
|
+
};
|
|
41
|
+
var _default = RadioIcon;
|
|
42
|
+
exports.default = _default;
|
|
@@ -11,11 +11,10 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
|
|
|
11
11
|
var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
|
|
12
12
|
var _react = _interopRequireWildcard(require("react"));
|
|
13
13
|
var _noop = _interopRequireDefault(require("@atlaskit/ds-lib/noop"));
|
|
14
|
-
var _radio = _interopRequireDefault(require("@atlaskit/icon/glyph/radio"));
|
|
15
14
|
var _buttonItem = _interopRequireDefault(require("@atlaskit/menu/button-item"));
|
|
15
|
+
var _radioIcon = _interopRequireDefault(require("../internal/components/radio-icon"));
|
|
16
16
|
var _useRadioState3 = _interopRequireDefault(require("../internal/hooks/use-radio-state"));
|
|
17
17
|
var _useRegisterItemWithFocusManager = _interopRequireDefault(require("../internal/hooks/use-register-item-with-focus-manager"));
|
|
18
|
-
var _getIconColors = _interopRequireDefault(require("../internal/utils/get-icon-colors"));
|
|
19
18
|
var _isVoiceOverSupported = _interopRequireDefault(require("../internal/utils/is-voice-over-supported"));
|
|
20
19
|
var _excluded = ["id", "isSelected", "defaultSelected", "onClick", "shouldTitleWrap", "shouldDescriptionWrap"];
|
|
21
20
|
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); }
|
|
@@ -52,19 +51,12 @@ var DropdownItemRadio = function DropdownItemRadio(props) {
|
|
|
52
51
|
_useRadioState2 = (0, _slicedToArray2.default)(_useRadioState, 2),
|
|
53
52
|
selected = _useRadioState2[0],
|
|
54
53
|
setSelected = _useRadioState2[1];
|
|
55
|
-
var _useState = (0, _react.useState)((0, _getIconColors.default)(defaultSelected)),
|
|
56
|
-
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
57
|
-
iconColors = _useState2[0],
|
|
58
|
-
setIconColors = _useState2[1];
|
|
59
54
|
var onClickHandler = (0, _react.useCallback)(function (event) {
|
|
60
55
|
setSelected(function (selected) {
|
|
61
56
|
return !selected;
|
|
62
57
|
});
|
|
63
58
|
providedOnClick(event);
|
|
64
59
|
}, [providedOnClick, setSelected]);
|
|
65
|
-
(0, _react.useEffect)(function () {
|
|
66
|
-
setIconColors((0, _getIconColors.default)(selected));
|
|
67
|
-
}, [selected]);
|
|
68
60
|
var itemRef = (0, _useRegisterItemWithFocusManager.default)();
|
|
69
61
|
return /*#__PURE__*/_react.default.createElement(_buttonItem.default, (0, _extends2.default)({
|
|
70
62
|
id: id,
|
|
@@ -73,11 +65,8 @@ var DropdownItemRadio = function DropdownItemRadio(props) {
|
|
|
73
65
|
"aria-checked": selected,
|
|
74
66
|
shouldTitleWrap: shouldTitleWrap,
|
|
75
67
|
shouldDescriptionWrap: shouldDescriptionWrap,
|
|
76
|
-
iconBefore: /*#__PURE__*/_react.default.createElement(
|
|
77
|
-
|
|
78
|
-
size: "medium",
|
|
79
|
-
primaryColor: iconColors.primary,
|
|
80
|
-
secondaryColor: iconColors.secondary
|
|
68
|
+
iconBefore: /*#__PURE__*/_react.default.createElement(_radioIcon.default, {
|
|
69
|
+
checked: selected
|
|
81
70
|
}),
|
|
82
71
|
ref: itemRef
|
|
83
72
|
// eslint-disable-next-line @repo/internal/react/no-unsafe-spread-props
|
package/dist/cjs/version.json
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
-
import React, { useCallback
|
|
2
|
+
import React, { useCallback } from 'react';
|
|
3
3
|
import noop from '@atlaskit/ds-lib/noop';
|
|
4
|
-
import CheckboxIcon from '@atlaskit/icon/glyph/checkbox';
|
|
5
4
|
import ButtonItem from '@atlaskit/menu/button-item';
|
|
5
|
+
import CheckboxIcon from '../internal/components/checkbox-icon';
|
|
6
6
|
import useCheckboxState from '../internal/hooks/use-checkbox-state';
|
|
7
7
|
import useRegisterItemWithFocusManager from '../internal/hooks/use-register-item-with-focus-manager';
|
|
8
|
-
import getIconColors from '../internal/utils/get-icon-colors';
|
|
9
|
-
import isVoiceOverSupported from '../internal/utils/is-voice-over-supported';
|
|
10
8
|
/**
|
|
11
9
|
* __Dropdown item checkbox__
|
|
12
10
|
*
|
|
@@ -35,27 +33,20 @@ const DropdownItemCheckbox = props => {
|
|
|
35
33
|
isSelected,
|
|
36
34
|
defaultSelected
|
|
37
35
|
});
|
|
38
|
-
const [iconColors, setIconColors] = useState(getIconColors(defaultSelected));
|
|
39
36
|
const onClickHandler = useCallback(event => {
|
|
40
37
|
setSelected(selected => !selected);
|
|
41
38
|
providedOnClick(event);
|
|
42
39
|
}, [providedOnClick, setSelected]);
|
|
43
|
-
useEffect(() => {
|
|
44
|
-
setIconColors(getIconColors(selected));
|
|
45
|
-
}, [selected]);
|
|
46
40
|
const itemRef = useRegisterItemWithFocusManager();
|
|
47
41
|
return /*#__PURE__*/React.createElement(ButtonItem, _extends({
|
|
48
42
|
id: id,
|
|
49
43
|
onClick: onClickHandler,
|
|
50
|
-
role:
|
|
44
|
+
role: "menuitemcheckbox",
|
|
51
45
|
"aria-checked": selected,
|
|
52
46
|
shouldTitleWrap: shouldTitleWrap,
|
|
53
47
|
shouldDescriptionWrap: shouldDescriptionWrap,
|
|
54
48
|
iconBefore: /*#__PURE__*/React.createElement(CheckboxIcon, {
|
|
55
|
-
|
|
56
|
-
size: "medium",
|
|
57
|
-
primaryColor: iconColors.primary,
|
|
58
|
-
secondaryColor: iconColors.secondary
|
|
49
|
+
checked: selected
|
|
59
50
|
}),
|
|
60
51
|
ref: itemRef
|
|
61
52
|
// eslint-disable-next-line @repo/internal/react/no-unsafe-spread-props
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import SVGIcon from '@atlaskit/icon/svg';
|
|
3
|
+
import { B400, N10, N40 } from '@atlaskit/theme/colors';
|
|
4
|
+
/**
|
|
5
|
+
* __Checkbox icon__
|
|
6
|
+
*
|
|
7
|
+
* Used to visually represent the selected state in DropdownItemCheckbox
|
|
8
|
+
*
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
const CheckboxIcon = ({
|
|
12
|
+
checked
|
|
13
|
+
}) => {
|
|
14
|
+
return /*#__PURE__*/React.createElement(SVGIcon, {
|
|
15
|
+
label: "",
|
|
16
|
+
size: "medium",
|
|
17
|
+
primaryColor: checked ? `var(--ds-background-selected-bold, ${B400})` : `var(--ds-background-input, ${N10})`,
|
|
18
|
+
secondaryColor: checked ? `var(--ds-icon-inverse, ${N10})` : 'transparent'
|
|
19
|
+
}, /*#__PURE__*/React.createElement("g", {
|
|
20
|
+
fillRule: "evenodd"
|
|
21
|
+
}, /*#__PURE__*/React.createElement("rect", {
|
|
22
|
+
fill: "currentColor",
|
|
23
|
+
x: "6",
|
|
24
|
+
y: "6",
|
|
25
|
+
width: "12",
|
|
26
|
+
height: "12",
|
|
27
|
+
rx: "2",
|
|
28
|
+
stroke: checked ? `var(--ds-border-selected, ${B400})` : `var(--ds-border-input, ${N40})`,
|
|
29
|
+
strokeWidth: 2
|
|
30
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
31
|
+
d: "M9.707 11.293a1 1 0 10-1.414 1.414l2 2a1 1 0 001.414 0l4-4a1 1 0 10-1.414-1.414L11 12.586l-1.293-1.293z",
|
|
32
|
+
fill: "inherit"
|
|
33
|
+
})));
|
|
34
|
+
};
|
|
35
|
+
export default CheckboxIcon;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import SVGIcon from '@atlaskit/icon/svg';
|
|
3
|
+
import { B400, N10, N40 } from '@atlaskit/theme/colors';
|
|
4
|
+
/**
|
|
5
|
+
* __Radio icon__
|
|
6
|
+
*
|
|
7
|
+
* Used to visually represent the selected state in DropdownItemRadio
|
|
8
|
+
*
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
const RadioIcon = ({
|
|
12
|
+
checked
|
|
13
|
+
}) => {
|
|
14
|
+
return /*#__PURE__*/React.createElement(SVGIcon, {
|
|
15
|
+
label: "",
|
|
16
|
+
size: "medium",
|
|
17
|
+
primaryColor: checked ? `var(--ds-background-selected-bold, ${B400})` : `var(--ds-background-input, ${N10})`,
|
|
18
|
+
secondaryColor: checked ? `var(--ds-icon-inverse, ${N10})` : 'transparent'
|
|
19
|
+
}, /*#__PURE__*/React.createElement("g", {
|
|
20
|
+
fillRule: "evenodd"
|
|
21
|
+
}, /*#__PURE__*/React.createElement("circle", {
|
|
22
|
+
fill: "currentColor",
|
|
23
|
+
cx: "12",
|
|
24
|
+
cy: "12",
|
|
25
|
+
r: "6",
|
|
26
|
+
stroke: checked ? `var(--ds-border-selected, ${B400})` : `var(--ds-border-input, ${N40})`,
|
|
27
|
+
strokeWidth: 2
|
|
28
|
+
}), /*#__PURE__*/React.createElement("circle", {
|
|
29
|
+
fill: "inherit",
|
|
30
|
+
cx: "12",
|
|
31
|
+
cy: "12",
|
|
32
|
+
r: "2"
|
|
33
|
+
})));
|
|
34
|
+
};
|
|
35
|
+
export default RadioIcon;
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import _extends from "@babel/runtime/helpers/extends";
|
|
2
|
-
import React, { useCallback
|
|
2
|
+
import React, { useCallback } from 'react';
|
|
3
3
|
import noop from '@atlaskit/ds-lib/noop';
|
|
4
|
-
import RadioIcon from '@atlaskit/icon/glyph/radio';
|
|
5
4
|
import ButtonItem from '@atlaskit/menu/button-item';
|
|
5
|
+
import RadioIcon from '../internal/components/radio-icon';
|
|
6
6
|
import useRadioState from '../internal/hooks/use-radio-state';
|
|
7
7
|
import useRegisterItemWithFocusManager from '../internal/hooks/use-register-item-with-focus-manager';
|
|
8
|
-
import getIconColors from '../internal/utils/get-icon-colors';
|
|
9
8
|
import isVoiceOverSupported from '../internal/utils/is-voice-over-supported';
|
|
10
9
|
/**
|
|
11
10
|
* __Dropdown item radio__
|
|
@@ -35,14 +34,10 @@ const DropdownItemRadio = props => {
|
|
|
35
34
|
isSelected,
|
|
36
35
|
defaultSelected
|
|
37
36
|
});
|
|
38
|
-
const [iconColors, setIconColors] = useState(getIconColors(defaultSelected));
|
|
39
37
|
const onClickHandler = useCallback(event => {
|
|
40
38
|
setSelected(selected => !selected);
|
|
41
39
|
providedOnClick(event);
|
|
42
40
|
}, [providedOnClick, setSelected]);
|
|
43
|
-
useEffect(() => {
|
|
44
|
-
setIconColors(getIconColors(selected));
|
|
45
|
-
}, [selected]);
|
|
46
41
|
const itemRef = useRegisterItemWithFocusManager();
|
|
47
42
|
return /*#__PURE__*/React.createElement(ButtonItem, _extends({
|
|
48
43
|
id: id,
|
|
@@ -52,10 +47,7 @@ const DropdownItemRadio = props => {
|
|
|
52
47
|
shouldTitleWrap: shouldTitleWrap,
|
|
53
48
|
shouldDescriptionWrap: shouldDescriptionWrap,
|
|
54
49
|
iconBefore: /*#__PURE__*/React.createElement(RadioIcon, {
|
|
55
|
-
|
|
56
|
-
size: "medium",
|
|
57
|
-
primaryColor: iconColors.primary,
|
|
58
|
-
secondaryColor: iconColors.secondary
|
|
50
|
+
checked: selected
|
|
59
51
|
}),
|
|
60
52
|
ref: itemRef
|
|
61
53
|
// eslint-disable-next-line @repo/internal/react/no-unsafe-spread-props
|
package/dist/es2019/version.json
CHANGED
|
@@ -2,14 +2,12 @@ import _extends from "@babel/runtime/helpers/extends";
|
|
|
2
2
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
3
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
4
4
|
var _excluded = ["id", "isSelected", "defaultSelected", "onClick", "shouldTitleWrap", "shouldDescriptionWrap"];
|
|
5
|
-
import React, { useCallback
|
|
5
|
+
import React, { useCallback } from 'react';
|
|
6
6
|
import noop from '@atlaskit/ds-lib/noop';
|
|
7
|
-
import CheckboxIcon from '@atlaskit/icon/glyph/checkbox';
|
|
8
7
|
import ButtonItem from '@atlaskit/menu/button-item';
|
|
8
|
+
import CheckboxIcon from '../internal/components/checkbox-icon';
|
|
9
9
|
import useCheckboxState from '../internal/hooks/use-checkbox-state';
|
|
10
10
|
import useRegisterItemWithFocusManager from '../internal/hooks/use-register-item-with-focus-manager';
|
|
11
|
-
import getIconColors from '../internal/utils/get-icon-colors';
|
|
12
|
-
import isVoiceOverSupported from '../internal/utils/is-voice-over-supported';
|
|
13
11
|
/**
|
|
14
12
|
* __Dropdown item checkbox__
|
|
15
13
|
*
|
|
@@ -42,32 +40,22 @@ var DropdownItemCheckbox = function DropdownItemCheckbox(props) {
|
|
|
42
40
|
_useCheckboxState2 = _slicedToArray(_useCheckboxState, 2),
|
|
43
41
|
selected = _useCheckboxState2[0],
|
|
44
42
|
setSelected = _useCheckboxState2[1];
|
|
45
|
-
var _useState = useState(getIconColors(defaultSelected)),
|
|
46
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
47
|
-
iconColors = _useState2[0],
|
|
48
|
-
setIconColors = _useState2[1];
|
|
49
43
|
var onClickHandler = useCallback(function (event) {
|
|
50
44
|
setSelected(function (selected) {
|
|
51
45
|
return !selected;
|
|
52
46
|
});
|
|
53
47
|
providedOnClick(event);
|
|
54
48
|
}, [providedOnClick, setSelected]);
|
|
55
|
-
useEffect(function () {
|
|
56
|
-
setIconColors(getIconColors(selected));
|
|
57
|
-
}, [selected]);
|
|
58
49
|
var itemRef = useRegisterItemWithFocusManager();
|
|
59
50
|
return /*#__PURE__*/React.createElement(ButtonItem, _extends({
|
|
60
51
|
id: id,
|
|
61
52
|
onClick: onClickHandler,
|
|
62
|
-
role:
|
|
53
|
+
role: "menuitemcheckbox",
|
|
63
54
|
"aria-checked": selected,
|
|
64
55
|
shouldTitleWrap: shouldTitleWrap,
|
|
65
56
|
shouldDescriptionWrap: shouldDescriptionWrap,
|
|
66
57
|
iconBefore: /*#__PURE__*/React.createElement(CheckboxIcon, {
|
|
67
|
-
|
|
68
|
-
size: "medium",
|
|
69
|
-
primaryColor: iconColors.primary,
|
|
70
|
-
secondaryColor: iconColors.secondary
|
|
58
|
+
checked: selected
|
|
71
59
|
}),
|
|
72
60
|
ref: itemRef
|
|
73
61
|
// eslint-disable-next-line @repo/internal/react/no-unsafe-spread-props
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import SVGIcon from '@atlaskit/icon/svg';
|
|
3
|
+
import { B400, N10, N40 } from '@atlaskit/theme/colors';
|
|
4
|
+
/**
|
|
5
|
+
* __Checkbox icon__
|
|
6
|
+
*
|
|
7
|
+
* Used to visually represent the selected state in DropdownItemCheckbox
|
|
8
|
+
*
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
var CheckboxIcon = function CheckboxIcon(_ref) {
|
|
12
|
+
var checked = _ref.checked;
|
|
13
|
+
return /*#__PURE__*/React.createElement(SVGIcon, {
|
|
14
|
+
label: "",
|
|
15
|
+
size: "medium",
|
|
16
|
+
primaryColor: checked ? "var(--ds-background-selected-bold, ".concat(B400, ")") : "var(--ds-background-input, ".concat(N10, ")"),
|
|
17
|
+
secondaryColor: checked ? "var(--ds-icon-inverse, ".concat(N10, ")") : 'transparent'
|
|
18
|
+
}, /*#__PURE__*/React.createElement("g", {
|
|
19
|
+
fillRule: "evenodd"
|
|
20
|
+
}, /*#__PURE__*/React.createElement("rect", {
|
|
21
|
+
fill: "currentColor",
|
|
22
|
+
x: "6",
|
|
23
|
+
y: "6",
|
|
24
|
+
width: "12",
|
|
25
|
+
height: "12",
|
|
26
|
+
rx: "2",
|
|
27
|
+
stroke: checked ? "var(--ds-border-selected, ".concat(B400, ")") : "var(--ds-border-input, ".concat(N40, ")"),
|
|
28
|
+
strokeWidth: 2
|
|
29
|
+
}), /*#__PURE__*/React.createElement("path", {
|
|
30
|
+
d: "M9.707 11.293a1 1 0 10-1.414 1.414l2 2a1 1 0 001.414 0l4-4a1 1 0 10-1.414-1.414L11 12.586l-1.293-1.293z",
|
|
31
|
+
fill: "inherit"
|
|
32
|
+
})));
|
|
33
|
+
};
|
|
34
|
+
export default CheckboxIcon;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import SVGIcon from '@atlaskit/icon/svg';
|
|
3
|
+
import { B400, N10, N40 } from '@atlaskit/theme/colors';
|
|
4
|
+
/**
|
|
5
|
+
* __Radio icon__
|
|
6
|
+
*
|
|
7
|
+
* Used to visually represent the selected state in DropdownItemRadio
|
|
8
|
+
*
|
|
9
|
+
* @internal
|
|
10
|
+
*/
|
|
11
|
+
var RadioIcon = function RadioIcon(_ref) {
|
|
12
|
+
var checked = _ref.checked;
|
|
13
|
+
return /*#__PURE__*/React.createElement(SVGIcon, {
|
|
14
|
+
label: "",
|
|
15
|
+
size: "medium",
|
|
16
|
+
primaryColor: checked ? "var(--ds-background-selected-bold, ".concat(B400, ")") : "var(--ds-background-input, ".concat(N10, ")"),
|
|
17
|
+
secondaryColor: checked ? "var(--ds-icon-inverse, ".concat(N10, ")") : 'transparent'
|
|
18
|
+
}, /*#__PURE__*/React.createElement("g", {
|
|
19
|
+
fillRule: "evenodd"
|
|
20
|
+
}, /*#__PURE__*/React.createElement("circle", {
|
|
21
|
+
fill: "currentColor",
|
|
22
|
+
cx: "12",
|
|
23
|
+
cy: "12",
|
|
24
|
+
r: "6",
|
|
25
|
+
stroke: checked ? "var(--ds-border-selected, ".concat(B400, ")") : "var(--ds-border-input, ".concat(N40, ")"),
|
|
26
|
+
strokeWidth: 2
|
|
27
|
+
}), /*#__PURE__*/React.createElement("circle", {
|
|
28
|
+
fill: "inherit",
|
|
29
|
+
cx: "12",
|
|
30
|
+
cy: "12",
|
|
31
|
+
r: "2"
|
|
32
|
+
})));
|
|
33
|
+
};
|
|
34
|
+
export default RadioIcon;
|
|
@@ -2,13 +2,12 @@ import _extends from "@babel/runtime/helpers/extends";
|
|
|
2
2
|
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
|
|
3
3
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
4
4
|
var _excluded = ["id", "isSelected", "defaultSelected", "onClick", "shouldTitleWrap", "shouldDescriptionWrap"];
|
|
5
|
-
import React, { useCallback
|
|
5
|
+
import React, { useCallback } from 'react';
|
|
6
6
|
import noop from '@atlaskit/ds-lib/noop';
|
|
7
|
-
import RadioIcon from '@atlaskit/icon/glyph/radio';
|
|
8
7
|
import ButtonItem from '@atlaskit/menu/button-item';
|
|
8
|
+
import RadioIcon from '../internal/components/radio-icon';
|
|
9
9
|
import useRadioState from '../internal/hooks/use-radio-state';
|
|
10
10
|
import useRegisterItemWithFocusManager from '../internal/hooks/use-register-item-with-focus-manager';
|
|
11
|
-
import getIconColors from '../internal/utils/get-icon-colors';
|
|
12
11
|
import isVoiceOverSupported from '../internal/utils/is-voice-over-supported';
|
|
13
12
|
/**
|
|
14
13
|
* __Dropdown item radio__
|
|
@@ -42,19 +41,12 @@ var DropdownItemRadio = function DropdownItemRadio(props) {
|
|
|
42
41
|
_useRadioState2 = _slicedToArray(_useRadioState, 2),
|
|
43
42
|
selected = _useRadioState2[0],
|
|
44
43
|
setSelected = _useRadioState2[1];
|
|
45
|
-
var _useState = useState(getIconColors(defaultSelected)),
|
|
46
|
-
_useState2 = _slicedToArray(_useState, 2),
|
|
47
|
-
iconColors = _useState2[0],
|
|
48
|
-
setIconColors = _useState2[1];
|
|
49
44
|
var onClickHandler = useCallback(function (event) {
|
|
50
45
|
setSelected(function (selected) {
|
|
51
46
|
return !selected;
|
|
52
47
|
});
|
|
53
48
|
providedOnClick(event);
|
|
54
49
|
}, [providedOnClick, setSelected]);
|
|
55
|
-
useEffect(function () {
|
|
56
|
-
setIconColors(getIconColors(selected));
|
|
57
|
-
}, [selected]);
|
|
58
50
|
var itemRef = useRegisterItemWithFocusManager();
|
|
59
51
|
return /*#__PURE__*/React.createElement(ButtonItem, _extends({
|
|
60
52
|
id: id,
|
|
@@ -64,10 +56,7 @@ var DropdownItemRadio = function DropdownItemRadio(props) {
|
|
|
64
56
|
shouldTitleWrap: shouldTitleWrap,
|
|
65
57
|
shouldDescriptionWrap: shouldDescriptionWrap,
|
|
66
58
|
iconBefore: /*#__PURE__*/React.createElement(RadioIcon, {
|
|
67
|
-
|
|
68
|
-
size: "medium",
|
|
69
|
-
primaryColor: iconColors.primary,
|
|
70
|
-
secondaryColor: iconColors.secondary
|
|
59
|
+
checked: selected
|
|
71
60
|
}),
|
|
72
61
|
ref: itemRef
|
|
73
62
|
// eslint-disable-next-line @repo/internal/react/no-unsafe-spread-props
|
package/dist/esm/version.json
CHANGED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
/**
|
|
3
|
+
* __Checkbox icon__
|
|
4
|
+
*
|
|
5
|
+
* Used to visually represent the selected state in DropdownItemCheckbox
|
|
6
|
+
*
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
declare const CheckboxIcon: ({ checked }: {
|
|
10
|
+
checked: boolean;
|
|
11
|
+
}) => JSX.Element;
|
|
12
|
+
export default CheckboxIcon;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
/**
|
|
3
|
+
* __Radio icon__
|
|
4
|
+
*
|
|
5
|
+
* Used to visually represent the selected state in DropdownItemRadio
|
|
6
|
+
*
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
declare const RadioIcon: ({ checked }: {
|
|
10
|
+
checked: boolean;
|
|
11
|
+
}) => JSX.Element;
|
|
12
|
+
export default RadioIcon;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
/**
|
|
3
|
+
* __Checkbox icon__
|
|
4
|
+
*
|
|
5
|
+
* Used to visually represent the selected state in DropdownItemCheckbox
|
|
6
|
+
*
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
declare const CheckboxIcon: ({ checked }: {
|
|
10
|
+
checked: boolean;
|
|
11
|
+
}) => JSX.Element;
|
|
12
|
+
export default CheckboxIcon;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
/**
|
|
3
|
+
* __Radio icon__
|
|
4
|
+
*
|
|
5
|
+
* Used to visually represent the selected state in DropdownItemRadio
|
|
6
|
+
*
|
|
7
|
+
* @internal
|
|
8
|
+
*/
|
|
9
|
+
declare const RadioIcon: ({ checked }: {
|
|
10
|
+
checked: boolean;
|
|
11
|
+
}) => JSX.Element;
|
|
12
|
+
export default RadioIcon;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@atlaskit/dropdown-menu",
|
|
3
|
-
"version": "11.9.
|
|
3
|
+
"version": "11.9.4",
|
|
4
4
|
"description": "A dropdown menu displays a list of actions or options to a user.",
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"registry": "https://registry.npmjs.org/"
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"@atlaskit/ds-explorations": "^2.2.0",
|
|
56
56
|
"@atlaskit/heading": "^1.3.0",
|
|
57
57
|
"@atlaskit/lozenge": "11.4.2",
|
|
58
|
-
"@atlaskit/modal-dialog": "^12.
|
|
58
|
+
"@atlaskit/modal-dialog": "^12.6.0",
|
|
59
59
|
"@atlaskit/primitives": "^0.9.0",
|
|
60
60
|
"@atlaskit/section-message": "^6.4.0",
|
|
61
61
|
"@atlaskit/ssr": "*",
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _colors = require("@atlaskit/theme/colors");
|
|
8
|
-
var getIconColors = function getIconColors(isSelected) {
|
|
9
|
-
if (isSelected) {
|
|
10
|
-
return {
|
|
11
|
-
primary: "var(--ds-background-brand-bold, ".concat(_colors.B400, ")"),
|
|
12
|
-
secondary: "var(--ds-icon-inverse, ".concat(_colors.N40, ")")
|
|
13
|
-
};
|
|
14
|
-
}
|
|
15
|
-
return {
|
|
16
|
-
primary: "var(--ds-background-neutral, ".concat(_colors.N40, ")"),
|
|
17
|
-
secondary: "var(--ds-UNSAFE-transparent, ".concat(_colors.N40, ")")
|
|
18
|
-
};
|
|
19
|
-
};
|
|
20
|
-
var _default = getIconColors;
|
|
21
|
-
exports.default = _default;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { B400, N40 } from '@atlaskit/theme/colors';
|
|
2
|
-
const getIconColors = isSelected => {
|
|
3
|
-
if (isSelected) {
|
|
4
|
-
return {
|
|
5
|
-
primary: `var(--ds-background-brand-bold, ${B400})`,
|
|
6
|
-
secondary: `var(--ds-icon-inverse, ${N40})`
|
|
7
|
-
};
|
|
8
|
-
}
|
|
9
|
-
return {
|
|
10
|
-
primary: `var(--ds-background-neutral, ${N40})`,
|
|
11
|
-
secondary: `var(--ds-UNSAFE-transparent, ${N40})`
|
|
12
|
-
};
|
|
13
|
-
};
|
|
14
|
-
export default getIconColors;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { B400, N40 } from '@atlaskit/theme/colors';
|
|
2
|
-
var getIconColors = function getIconColors(isSelected) {
|
|
3
|
-
if (isSelected) {
|
|
4
|
-
return {
|
|
5
|
-
primary: "var(--ds-background-brand-bold, ".concat(B400, ")"),
|
|
6
|
-
secondary: "var(--ds-icon-inverse, ".concat(N40, ")")
|
|
7
|
-
};
|
|
8
|
-
}
|
|
9
|
-
return {
|
|
10
|
-
primary: "var(--ds-background-neutral, ".concat(N40, ")"),
|
|
11
|
-
secondary: "var(--ds-UNSAFE-transparent, ".concat(N40, ")")
|
|
12
|
-
};
|
|
13
|
-
};
|
|
14
|
-
export default getIconColors;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
declare const getIconColors: (isSelected: boolean | undefined) => {
|
|
2
|
-
primary: "var(--ds-background-brand-bold)";
|
|
3
|
-
secondary: "var(--ds-icon-inverse)";
|
|
4
|
-
} | {
|
|
5
|
-
primary: "var(--ds-background-neutral)";
|
|
6
|
-
secondary: "var(--ds-UNSAFE-transparent)";
|
|
7
|
-
};
|
|
8
|
-
export default getIconColors;
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
declare const getIconColors: (isSelected: boolean | undefined) => {
|
|
2
|
-
primary: "var(--ds-background-brand-bold)";
|
|
3
|
-
secondary: "var(--ds-icon-inverse)";
|
|
4
|
-
} | {
|
|
5
|
-
primary: "var(--ds-background-neutral)";
|
|
6
|
-
secondary: "var(--ds-UNSAFE-transparent)";
|
|
7
|
-
};
|
|
8
|
-
export default getIconColors;
|