@atlaskit/flag 14.4.1 → 14.5.2
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 +47 -0
- package/__perf__/withFlagGroup.tsx +7 -1
- package/dist/cjs/auto-dismiss-flag.js +4 -4
- package/dist/cjs/flag-actions.js +50 -6
- package/dist/cjs/flag-group.js +57 -19
- package/dist/cjs/flag-provider.js +6 -4
- package/dist/cjs/flag.js +85 -107
- package/dist/cjs/index.js +12 -12
- package/dist/cjs/internal/description.js +32 -0
- package/dist/cjs/internal/dismiss-button.js +83 -0
- package/dist/cjs/{expander.js → internal/expander.js} +15 -7
- package/dist/cjs/internal/index.js +39 -0
- package/dist/cjs/internal/title.js +32 -0
- package/dist/cjs/theme.js +84 -60
- package/dist/cjs/version.json +1 -1
- package/dist/es2019/auto-dismiss-flag.js +2 -3
- package/dist/es2019/flag-actions.js +50 -32
- package/dist/es2019/flag-group.js +48 -65
- package/dist/es2019/flag.js +77 -162
- package/dist/es2019/internal/description.js +22 -0
- package/dist/es2019/internal/dismiss-button.js +63 -0
- package/dist/es2019/{expander.js → internal/expander.js} +14 -10
- package/dist/es2019/internal/index.js +4 -0
- package/dist/es2019/internal/title.js +22 -0
- package/dist/es2019/theme.js +78 -53
- package/dist/es2019/version.json +1 -1
- package/dist/esm/auto-dismiss-flag.js +2 -3
- package/dist/esm/flag-actions.js +49 -6
- package/dist/esm/flag-group.js +52 -16
- package/dist/esm/flag-provider.js +4 -3
- package/dist/esm/flag.js +81 -102
- package/dist/esm/internal/description.js +23 -0
- package/dist/esm/internal/dismiss-button.js +63 -0
- package/dist/esm/{expander.js → internal/expander.js} +14 -5
- package/dist/esm/internal/index.js +4 -0
- package/dist/esm/internal/title.js +23 -0
- package/dist/esm/theme.js +80 -53
- package/dist/esm/version.json +1 -1
- package/dist/types/auto-dismiss-flag.d.ts +1 -0
- package/dist/types/flag-actions.d.ts +4 -4
- package/dist/types/flag-group.d.ts +2 -2
- package/dist/types/flag.d.ts +2 -1
- package/dist/types/internal/description.d.ts +7 -0
- package/dist/types/internal/dismiss-button.d.ts +11 -0
- package/dist/types/internal/expander.d.ts +8 -0
- package/dist/types/internal/index.d.ts +4 -0
- package/dist/types/internal/title.d.ts +6 -0
- package/dist/types/theme.d.ts +2 -1
- package/package.json +14 -10
- package/dist/types/expander.d.ts +0 -9
- package/expander/package.json +0 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,52 @@
|
|
|
1
1
|
# @atlaskit/flag
|
|
2
2
|
|
|
3
|
+
## 14.5.2
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- [`19d72473dfb`](https://bitbucket.org/atlassian/atlassian-frontend/commits/19d72473dfb) - Internal changes to support adoption of '@compiled/react'.
|
|
8
|
+
- [`19d72473dfb`](https://bitbucket.org/atlassian/atlassian-frontend/commits/19d72473dfb) - The no-unsafe-design-token-usage eslint rule now respects the new token naming conventions when auto-fixing by correctly formatting token ids.
|
|
9
|
+
- [`19d72473dfb`](https://bitbucket.org/atlassian/atlassian-frontend/commits/19d72473dfb) - The no-unsafe-design-token-usage eslint rule now respects the new token naming conventions when auto-fixing by correctly formatting token ids.
|
|
10
|
+
- [`19d72473dfb`](https://bitbucket.org/atlassian/atlassian-frontend/commits/19d72473dfb) - An a11y fix for the flag dismiss/toggle button such that it retains focus when toggled.
|
|
11
|
+
- Updated dependencies
|
|
12
|
+
|
|
13
|
+
## 14.5.1
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- Updated dependencies
|
|
18
|
+
|
|
19
|
+
## 14.5.0
|
|
20
|
+
|
|
21
|
+
### Minor Changes
|
|
22
|
+
|
|
23
|
+
- [`c04528ade6a`](https://bitbucket.org/atlassian/atlassian-frontend/commits/c04528ade6a) - **Note**: It is a re-release of the wrongly `patched` version `14.4.2` that should have been a `minor` release.
|
|
24
|
+
|
|
25
|
+
[ux] Instrumented flag with the new theming package, `@atlaskit/tokens`.
|
|
26
|
+
|
|
27
|
+
New tokens will be visible only in applications configured to use the new Tokens API (currently in alpha).
|
|
28
|
+
These changes are intended to be interoperable with the legacy theme implementation. Legacy dark mode users should expect no visual or breaking changes.
|
|
29
|
+
|
|
30
|
+
### Patch Changes
|
|
31
|
+
|
|
32
|
+
- Updated dependencies
|
|
33
|
+
|
|
34
|
+
## 14.4.2
|
|
35
|
+
|
|
36
|
+
### Minor Changes
|
|
37
|
+
|
|
38
|
+
_WRONG RELEASE TYPE - DON'T USE_
|
|
39
|
+
|
|
40
|
+
- [`4567d73813c`](https://bitbucket.org/atlassian/atlassian-frontend/commits/4567d73813c) - Instrumented flag with the new theming package, `@atlaskit/tokens`.
|
|
41
|
+
|
|
42
|
+
New tokens will be visible only in applications configured to use the new Tokens API (currently in alpha).
|
|
43
|
+
These changes are intended to be interoperable with the legacy theme implementation. Legacy dark mode users should expect no visual or breaking changes.
|
|
44
|
+
|
|
45
|
+
### Patch Changes
|
|
46
|
+
|
|
47
|
+
- [`f460cc7c411`](https://bitbucket.org/atlassian/atlassian-frontend/commits/f460cc7c411) - Builds for this package now pass through a tokens babel plugin, removing runtime invocations of the tokens() function and improving bundle size.
|
|
48
|
+
- Updated dependencies
|
|
49
|
+
|
|
3
50
|
## 14.4.1
|
|
4
51
|
|
|
5
52
|
### Patch Changes
|
|
@@ -2,6 +2,7 @@ import React from 'react';
|
|
|
2
2
|
|
|
3
3
|
import SuccessIcon from '@atlaskit/icon/glyph/check-circle';
|
|
4
4
|
import { G400 } from '@atlaskit/theme/colors';
|
|
5
|
+
import { token } from '@atlaskit/tokens';
|
|
5
6
|
|
|
6
7
|
import Flag, { FlagGroup } from '../src';
|
|
7
8
|
|
|
@@ -9,7 +10,12 @@ export default () => (
|
|
|
9
10
|
<FlagGroup>
|
|
10
11
|
<Flag
|
|
11
12
|
appearance="success"
|
|
12
|
-
icon={
|
|
13
|
+
icon={
|
|
14
|
+
<SuccessIcon
|
|
15
|
+
label="Success"
|
|
16
|
+
secondaryColor={token('color.icon.success', G400)}
|
|
17
|
+
/>
|
|
18
|
+
}
|
|
13
19
|
id="success"
|
|
14
20
|
key="success"
|
|
15
21
|
title="Connected"
|
|
@@ -15,6 +15,8 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
15
15
|
|
|
16
16
|
var _usePlatformLeafEventHandler = require("@atlaskit/analytics-next/usePlatformLeafEventHandler");
|
|
17
17
|
|
|
18
|
+
var _noop = _interopRequireDefault(require("@atlaskit/ds-lib/noop"));
|
|
19
|
+
|
|
18
20
|
var _flag = _interopRequireDefault(require("./flag"));
|
|
19
21
|
|
|
20
22
|
var _flagGroup = require("./flag-group");
|
|
@@ -24,17 +26,15 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
24
26
|
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; }
|
|
25
27
|
|
|
26
28
|
var packageName = "@atlaskit/flag";
|
|
27
|
-
var packageVersion = "14.
|
|
29
|
+
var packageVersion = "14.5.2";
|
|
28
30
|
var AUTO_DISMISS_SECONDS = 8;
|
|
29
31
|
exports.AUTO_DISMISS_SECONDS = AUTO_DISMISS_SECONDS;
|
|
30
32
|
|
|
31
|
-
function noop() {}
|
|
32
|
-
|
|
33
33
|
var AutoDismissFlag = function AutoDismissFlag(props) {
|
|
34
34
|
var id = props.id,
|
|
35
35
|
analyticsContext = props.analyticsContext,
|
|
36
36
|
_props$onDismissed = props.onDismissed,
|
|
37
|
-
onDismissedProp = _props$onDismissed === void 0 ?
|
|
37
|
+
onDismissedProp = _props$onDismissed === void 0 ? _noop.default : _props$onDismissed;
|
|
38
38
|
var autoDismissTimer = (0, _react.useRef)(null);
|
|
39
39
|
|
|
40
40
|
var _useFlagGroup = (0, _flagGroup.useFlagGroup)(),
|
package/dist/cjs/flag-actions.js
CHANGED
|
@@ -7,8 +7,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
});
|
|
8
8
|
exports.default = void 0;
|
|
9
9
|
|
|
10
|
-
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
|
-
|
|
12
10
|
var _core = require("@emotion/core");
|
|
13
11
|
|
|
14
12
|
var _customThemeButton = _interopRequireDefault(require("@atlaskit/button/custom-theme-button"));
|
|
@@ -19,11 +17,52 @@ var _constants2 = require("./constants");
|
|
|
19
17
|
|
|
20
18
|
var _theme = require("./theme");
|
|
21
19
|
|
|
22
|
-
|
|
20
|
+
/* eslint-disable @repo/internal/styles/no-nested-styles */
|
|
23
21
|
|
|
22
|
+
/** @jsx jsx */
|
|
24
23
|
var gridSize = (0, _constants.gridSize)();
|
|
25
24
|
var separatorWidth = gridSize * 2;
|
|
26
25
|
var defaultAppearanceTranslate = gridSize / 4;
|
|
26
|
+
var separatorStyles = (0, _core.css)({
|
|
27
|
+
display: 'inline-block',
|
|
28
|
+
width: separatorWidth,
|
|
29
|
+
textAlign: 'center'
|
|
30
|
+
});
|
|
31
|
+
var actionContainerStyles = (0, _core.css)({
|
|
32
|
+
display: 'flex',
|
|
33
|
+
paddingTop: gridSize,
|
|
34
|
+
alignItems: 'center',
|
|
35
|
+
flexWrap: 'wrap',
|
|
36
|
+
transform: "translateX(-".concat(defaultAppearanceTranslate, "px)")
|
|
37
|
+
});
|
|
38
|
+
var boldActionContainerStyles = (0, _core.css)({
|
|
39
|
+
transform: 0
|
|
40
|
+
});
|
|
41
|
+
var buttonStyles = (0, _core.css)({
|
|
42
|
+
'&&, a&&': {
|
|
43
|
+
marginLeft: 0,
|
|
44
|
+
padding: "0 ".concat(gridSize, "px !important"),
|
|
45
|
+
background: "var(--bg-color)",
|
|
46
|
+
color: "var(--color) !important",
|
|
47
|
+
fontWeight: 500
|
|
48
|
+
},
|
|
49
|
+
'&&:focus, a&&:focus': {
|
|
50
|
+
boxShadow: "0 0 0 2px var(--focus-color)"
|
|
51
|
+
},
|
|
52
|
+
'&&:hover, &&:active, a&&:hover, a&&:active': {
|
|
53
|
+
textDecoration: 'underline'
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
var appeanceNormalButtonStyles = (0, _core.css)({
|
|
57
|
+
'&&, a&&': {
|
|
58
|
+
padding: '0 !important'
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
var isBoldButtonStyles = (0, _core.css)({
|
|
62
|
+
'&&, a&&': {
|
|
63
|
+
marginLeft: gridSize
|
|
64
|
+
}
|
|
65
|
+
});
|
|
27
66
|
|
|
28
67
|
var FlagActions = function FlagActions(props) {
|
|
29
68
|
var _props$appearance = props.appearance,
|
|
@@ -40,11 +79,11 @@ var FlagActions = function FlagActions(props) {
|
|
|
40
79
|
|
|
41
80
|
var isBold = appearance !== _constants2.DEFAULT_APPEARANCE;
|
|
42
81
|
return (0, _core.jsx)("div", {
|
|
43
|
-
css:
|
|
82
|
+
css: [actionContainerStyles, isBold && boldActionContainerStyles],
|
|
44
83
|
"data-testid": testId && "".concat(testId, "-actions")
|
|
45
84
|
}, actions.map(function (action, index) {
|
|
46
85
|
return [index && !isBold ? (0, _core.jsx)("div", {
|
|
47
|
-
css:
|
|
86
|
+
css: separatorStyles,
|
|
48
87
|
key: index + 0.5
|
|
49
88
|
}, "\xB7") : '', (0, _core.jsx)(_customThemeButton.default, {
|
|
50
89
|
onClick: action.onClick,
|
|
@@ -55,7 +94,12 @@ var FlagActions = function FlagActions(props) {
|
|
|
55
94
|
spacing: "compact",
|
|
56
95
|
testId: action.testId,
|
|
57
96
|
key: index,
|
|
58
|
-
|
|
97
|
+
style: {
|
|
98
|
+
'--color': (0, _theme.getActionColor)(appearance, mode),
|
|
99
|
+
'--bg-color': (0, _theme.getActionBackground)(appearance, mode),
|
|
100
|
+
'--focus-color': (0, _theme.getFlagFocusRingColor)(appearance, mode)
|
|
101
|
+
},
|
|
102
|
+
css: [buttonStyles, isBold && isBoldButtonStyles, appearance === 'normal' && appeanceNormalButtonStyles]
|
|
59
103
|
}, action.content)];
|
|
60
104
|
}));
|
|
61
105
|
};
|
package/dist/cjs/flag-group.js
CHANGED
|
@@ -5,13 +5,11 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
+
exports.flagWidth = exports.flagAnimationTime = exports.default = exports.FlagGroupContext = void 0;
|
|
8
9
|
exports.useFlagGroup = useFlagGroup;
|
|
9
|
-
exports.default = exports.FlagGroupContext = exports.flagAnimationTime = exports.flagWidth = void 0;
|
|
10
10
|
|
|
11
11
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
12
12
|
|
|
13
|
-
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
14
|
-
|
|
15
13
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
16
14
|
|
|
17
15
|
var _react = require("react");
|
|
@@ -20,12 +18,15 @@ var _core = require("@emotion/core");
|
|
|
20
18
|
|
|
21
19
|
var _motion = require("@atlaskit/motion");
|
|
22
20
|
|
|
21
|
+
var _visuallyHidden = _interopRequireDefault(require("@atlaskit/visually-hidden"));
|
|
22
|
+
|
|
23
|
+
var _noop = _interopRequireDefault(require("@atlaskit/ds-lib/noop"));
|
|
24
|
+
|
|
23
25
|
var _portal = _interopRequireDefault(require("@atlaskit/portal"));
|
|
24
26
|
|
|
25
27
|
var _constants = require("@atlaskit/theme/constants");
|
|
26
28
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
+
/** @jsx jsx */
|
|
29
30
|
var gridSize = (0, _constants.gridSize)();
|
|
30
31
|
var flagWidth = gridSize * 50;
|
|
31
32
|
exports.flagWidth = flagWidth;
|
|
@@ -33,9 +34,6 @@ var flagAnimationTime = 400;
|
|
|
33
34
|
exports.flagAnimationTime = flagAnimationTime;
|
|
34
35
|
var flagBottom = gridSize * 6;
|
|
35
36
|
var flagLeft = gridSize * 10;
|
|
36
|
-
|
|
37
|
-
function noop() {}
|
|
38
|
-
|
|
39
37
|
var defaultFlagGroupContext = {
|
|
40
38
|
onDismissed: function onDismissed() {},
|
|
41
39
|
isDismissAllowed: false
|
|
@@ -49,7 +47,51 @@ function useFlagGroup() {
|
|
|
49
47
|
// that causes a broken transition
|
|
50
48
|
|
|
51
49
|
|
|
52
|
-
var baseStyles =
|
|
50
|
+
var baseStyles = (0, _core.css)({
|
|
51
|
+
width: flagWidth,
|
|
52
|
+
position: 'absolute',
|
|
53
|
+
bottom: 0,
|
|
54
|
+
transition: "transform ".concat(flagAnimationTime, "ms ease-in-out"),
|
|
55
|
+
'@media (max-width: 560px)': {
|
|
56
|
+
width: '100vw'
|
|
57
|
+
},
|
|
58
|
+
':first-of-type': {
|
|
59
|
+
transform: "translate(0,0)",
|
|
60
|
+
transition: 'none'
|
|
61
|
+
},
|
|
62
|
+
':nth-of-type(n + 2)': {
|
|
63
|
+
animationDuration: '0ms',
|
|
64
|
+
transform: "translateX(0) translateY(100%) translateY(".concat(2 * gridSize, "px)")
|
|
65
|
+
},
|
|
66
|
+
':nth-of-type(1)': {
|
|
67
|
+
zIndex: 5
|
|
68
|
+
},
|
|
69
|
+
':nth-of-type(2)': {
|
|
70
|
+
zIndex: 4
|
|
71
|
+
},
|
|
72
|
+
'&:nth-of-type(n + 4)': {
|
|
73
|
+
visibility: 'hidden'
|
|
74
|
+
}
|
|
75
|
+
}); // Transform needed to push up while 1st flag is leaving
|
|
76
|
+
// Exiting time should match the exiting time of motion so is halved
|
|
77
|
+
|
|
78
|
+
var dismissAllowedStyles = (0, _core.css)({
|
|
79
|
+
// eslint-disable-next-line @repo/internal/styles/no-nested-styles
|
|
80
|
+
'&& + *': {
|
|
81
|
+
transform: "translate(0, 0)",
|
|
82
|
+
transitionDuration: "".concat(flagAnimationTime / 2, "ms")
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
var flagGroupContainerStyles = (0, _core.css)({
|
|
86
|
+
position: 'fixed',
|
|
87
|
+
zIndex: _constants.layers.flag(),
|
|
88
|
+
bottom: flagBottom,
|
|
89
|
+
left: flagLeft,
|
|
90
|
+
'@media (max-width: 560px)': {
|
|
91
|
+
bottom: 0,
|
|
92
|
+
left: 0
|
|
93
|
+
}
|
|
94
|
+
});
|
|
53
95
|
|
|
54
96
|
var FlagGroup = function FlagGroup(props) {
|
|
55
97
|
var id = props.id,
|
|
@@ -59,7 +101,7 @@ var FlagGroup = function FlagGroup(props) {
|
|
|
59
101
|
LabelTag = _props$labelTag === void 0 ? 'h2' : _props$labelTag,
|
|
60
102
|
children = props.children,
|
|
61
103
|
_props$onDismissed = props.onDismissed,
|
|
62
|
-
onDismissed = _props$onDismissed === void 0 ?
|
|
104
|
+
onDismissed = _props$onDismissed === void 0 ? _noop.default : _props$onDismissed;
|
|
63
105
|
var hasFlags = Array.isArray(children) ? children.length > 0 : Boolean(children);
|
|
64
106
|
var dismissFlagContext = (0, _react.useMemo)(function () {
|
|
65
107
|
return {
|
|
@@ -72,17 +114,15 @@ var FlagGroup = function FlagGroup(props) {
|
|
|
72
114
|
return children && (0, _typeof2.default)(children) === 'object' ? _react.Children.map(children, function (flag, index) {
|
|
73
115
|
var isDismissAllowed = index === 0;
|
|
74
116
|
return (0, _core.jsx)(_motion.SlideIn, {
|
|
75
|
-
enterFrom:
|
|
76
|
-
fade:
|
|
117
|
+
enterFrom: "left",
|
|
118
|
+
fade: "inout",
|
|
77
119
|
duration: flagAnimationTime,
|
|
78
120
|
animationTimingFunction: function animationTimingFunction() {
|
|
79
121
|
return _motion.easeIn;
|
|
80
122
|
}
|
|
81
123
|
}, function (props) {
|
|
82
124
|
return (0, _core.jsx)("div", (0, _extends2.default)({}, props, {
|
|
83
|
-
css:
|
|
84
|
-
// Exiting time should match the exiting time of motion so is halved
|
|
85
|
-
"\n && + * {\n transform: translate(0, 0);\n transition-duration: ".concat(flagAnimationTime / 2, "ms\n }") : '')
|
|
125
|
+
css: [baseStyles, isDismissAllowed && dismissAllowedStyles]
|
|
86
126
|
}), (0, _core.jsx)(FlagGroupContext.Provider, {
|
|
87
127
|
value: // Only the first flag should be able to be dismissed.
|
|
88
128
|
isDismissAllowed ? dismissFlagContext : defaultFlagGroupContext
|
|
@@ -95,10 +135,8 @@ var FlagGroup = function FlagGroup(props) {
|
|
|
95
135
|
zIndex: _constants.layers.flag()
|
|
96
136
|
}, (0, _core.jsx)("div", {
|
|
97
137
|
id: id,
|
|
98
|
-
css:
|
|
99
|
-
}, hasFlags ? (0, _core.jsx)(LabelTag, {
|
|
100
|
-
css: (0, _core.css)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n border: 0;\n clip: rect(1px, 1px, 1px, 1px);\n height: 1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n "])))
|
|
101
|
-
}, label) : null, (0, _core.jsx)(_motion.ExitingPersistence, {
|
|
138
|
+
css: flagGroupContainerStyles
|
|
139
|
+
}, hasFlags ? (0, _core.jsx)(_visuallyHidden.default, null, (0, _core.jsx)(LabelTag, null, label)) : null, (0, _core.jsx)(_motion.ExitingPersistence, {
|
|
102
140
|
appear: false
|
|
103
141
|
}, renderChildren())));
|
|
104
142
|
};
|
|
@@ -7,8 +7,8 @@ var _typeof = require("@babel/runtime/helpers/typeof");
|
|
|
7
7
|
Object.defineProperty(exports, "__esModule", {
|
|
8
8
|
value: true
|
|
9
9
|
});
|
|
10
|
-
exports.useFlags = useFlags;
|
|
11
10
|
exports.FlagsProvider = FlagsProvider;
|
|
11
|
+
exports.useFlags = useFlags;
|
|
12
12
|
exports.withFlagsProvider = void 0;
|
|
13
13
|
|
|
14
14
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
@@ -29,13 +29,15 @@ var _flag = _interopRequireDefault(require("./flag"));
|
|
|
29
29
|
|
|
30
30
|
var _flagGroup = _interopRequireDefault(require("./flag-group"));
|
|
31
31
|
|
|
32
|
+
var _excluded = ["isAutoDismiss"];
|
|
33
|
+
|
|
32
34
|
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); }
|
|
33
35
|
|
|
34
36
|
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; }
|
|
35
37
|
|
|
36
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object);
|
|
38
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
37
39
|
|
|
38
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]
|
|
40
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
39
41
|
|
|
40
42
|
var FlagContext = /*#__PURE__*/_react.default.createContext(null);
|
|
41
43
|
|
|
@@ -104,7 +106,7 @@ function FlagsProvider(_ref) {
|
|
|
104
106
|
onDismissed: removeFlag
|
|
105
107
|
}, flags.map(function (flag) {
|
|
106
108
|
var isAutoDismiss = flag.isAutoDismiss,
|
|
107
|
-
restProps = (0, _objectWithoutProperties2.default)(flag,
|
|
109
|
+
restProps = (0, _objectWithoutProperties2.default)(flag, _excluded);
|
|
108
110
|
var FlagType = isAutoDismiss ? _autoDismissFlag.default : _flag.default;
|
|
109
111
|
return /*#__PURE__*/_react.default.createElement(FlagType, (0, _extends2.default)({}, restProps, {
|
|
110
112
|
key: flag.id
|
package/dist/cjs/flag.js
CHANGED
|
@@ -9,8 +9,6 @@ exports.default = void 0;
|
|
|
9
9
|
|
|
10
10
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
11
11
|
|
|
12
|
-
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
13
|
-
|
|
14
12
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
13
|
|
|
16
14
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
@@ -19,44 +17,55 @@ var _react = require("react");
|
|
|
19
17
|
|
|
20
18
|
var _core = require("@emotion/core");
|
|
21
19
|
|
|
22
|
-
var
|
|
23
|
-
|
|
24
|
-
var _chevronUp = _interopRequireDefault(require("@atlaskit/icon/glyph/chevron-up"));
|
|
25
|
-
|
|
26
|
-
var _cross = _interopRequireDefault(require("@atlaskit/icon/glyph/cross"));
|
|
27
|
-
|
|
28
|
-
var _components = _interopRequireDefault(require("@atlaskit/theme/components"));
|
|
20
|
+
var _components = require("@atlaskit/theme/components");
|
|
29
21
|
|
|
30
22
|
var _constants = require("@atlaskit/theme/constants");
|
|
31
23
|
|
|
32
24
|
var _usePlatformLeafEventHandler = require("@atlaskit/analytics-next/usePlatformLeafEventHandler");
|
|
33
25
|
|
|
26
|
+
var _noop = _interopRequireDefault(require("@atlaskit/ds-lib/noop"));
|
|
27
|
+
|
|
28
|
+
var _focusRing = _interopRequireDefault(require("@atlaskit/focus-ring"));
|
|
29
|
+
|
|
34
30
|
var _constants2 = require("./constants");
|
|
35
31
|
|
|
36
32
|
var _theme = require("./theme");
|
|
37
33
|
|
|
38
|
-
var _expander = _interopRequireDefault(require("./expander"));
|
|
39
|
-
|
|
40
34
|
var _flagActions = _interopRequireDefault(require("./flag-actions"));
|
|
41
35
|
|
|
42
36
|
var _flagGroup = require("./flag-group");
|
|
43
37
|
|
|
44
|
-
var
|
|
45
|
-
|
|
46
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
|
|
38
|
+
var _internal = require("./internal");
|
|
47
39
|
|
|
48
|
-
function
|
|
40
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
49
41
|
|
|
50
|
-
function
|
|
42
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
51
43
|
|
|
52
44
|
var analyticsAttributes = {
|
|
53
45
|
componentName: 'flag',
|
|
54
46
|
packageName: "@atlaskit/flag",
|
|
55
|
-
packageVersion: "14.
|
|
47
|
+
packageVersion: "14.5.2"
|
|
56
48
|
};
|
|
57
49
|
var gridSize = (0, _constants.gridSize)();
|
|
58
50
|
var doubleGridSize = gridSize * 2;
|
|
59
51
|
var headerHeight = gridSize * 4;
|
|
52
|
+
var iconStyles = (0, _core.css)({
|
|
53
|
+
display: 'flex',
|
|
54
|
+
height: headerHeight,
|
|
55
|
+
alignItems: 'center'
|
|
56
|
+
});
|
|
57
|
+
var flagHeaderStyles = (0, _core.css)({
|
|
58
|
+
boxSizing: 'border-box',
|
|
59
|
+
width: '100%',
|
|
60
|
+
padding: doubleGridSize,
|
|
61
|
+
borderRadius: (0, _constants.borderRadius)()
|
|
62
|
+
});
|
|
63
|
+
var flagContainerStyles = (0, _core.css)({
|
|
64
|
+
width: '100%',
|
|
65
|
+
zIndex: _constants.layers.flag(),
|
|
66
|
+
borderRadius: (0, _constants.borderRadius)(),
|
|
67
|
+
transition: 'background-color 200ms'
|
|
68
|
+
});
|
|
60
69
|
|
|
61
70
|
var Flag = function Flag(props) {
|
|
62
71
|
var _props$actions = props.actions,
|
|
@@ -69,12 +78,12 @@ var Flag = function Flag(props) {
|
|
|
69
78
|
linkComponent = props.linkComponent,
|
|
70
79
|
onMouseOver = props.onMouseOver,
|
|
71
80
|
_props$onFocus = props.onFocus,
|
|
72
|
-
onFocus = _props$onFocus === void 0 ?
|
|
81
|
+
onFocus = _props$onFocus === void 0 ? _noop.default : _props$onFocus,
|
|
73
82
|
onMouseOut = props.onMouseOut,
|
|
74
83
|
_props$onBlur = props.onBlur,
|
|
75
|
-
onBlur = _props$onBlur === void 0 ?
|
|
84
|
+
onBlur = _props$onBlur === void 0 ? _noop.default : _props$onBlur,
|
|
76
85
|
_props$onDismissed = props.onDismissed,
|
|
77
|
-
onDismissedProp = _props$onDismissed === void 0 ?
|
|
86
|
+
onDismissedProp = _props$onDismissed === void 0 ? _noop.default : _props$onDismissed,
|
|
78
87
|
testId = props.testId,
|
|
79
88
|
id = props.id,
|
|
80
89
|
analyticsContext = props.analyticsContext;
|
|
@@ -99,60 +108,16 @@ var Flag = function Flag(props) {
|
|
|
99
108
|
analyticsData: analyticsContext
|
|
100
109
|
}, analyticsAttributes));
|
|
101
110
|
var isBold = appearance !== _constants2.DEFAULT_APPEARANCE;
|
|
102
|
-
var
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
if (
|
|
109
|
-
|
|
110
|
-
} // If it is bold then ensure there is a description or actions to render
|
|
111
|
-
// the toggle button
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
if (isBold && !description && !actions.length) {
|
|
115
|
-
return null;
|
|
111
|
+
var toggleExpand = (0, _react.useCallback)(function () {
|
|
112
|
+
setIsExpanded(function (previous) {
|
|
113
|
+
return !previous;
|
|
114
|
+
});
|
|
115
|
+
}, []);
|
|
116
|
+
var buttonActionCallback = (0, _react.useCallback)(function () {
|
|
117
|
+
if (isDismissAllowed) {
|
|
118
|
+
onDismissedAnalytics(id);
|
|
116
119
|
}
|
|
117
|
-
|
|
118
|
-
var ButtonIcon = _cross.default;
|
|
119
|
-
var buttonLabel = 'Dismiss';
|
|
120
|
-
|
|
121
|
-
var buttonAction = function buttonAction() {
|
|
122
|
-
if (isDismissAllowed) {
|
|
123
|
-
onDismissedAnalytics(id);
|
|
124
|
-
}
|
|
125
|
-
};
|
|
126
|
-
|
|
127
|
-
var size = 'small';
|
|
128
|
-
var buttonTestId = testId && "".concat(testId, "-dismiss");
|
|
129
|
-
var a11yProps = {};
|
|
130
|
-
|
|
131
|
-
if (isBold) {
|
|
132
|
-
ButtonIcon = isExpanded ? _chevronUp.default : _chevronDown.default;
|
|
133
|
-
buttonLabel = isExpanded ? 'Collapse' : 'Expand';
|
|
134
|
-
|
|
135
|
-
buttonAction = function buttonAction() {
|
|
136
|
-
return setIsExpanded(!isExpanded);
|
|
137
|
-
};
|
|
138
|
-
|
|
139
|
-
size = 'large';
|
|
140
|
-
buttonTestId = testId && "".concat(testId, "-toggle");
|
|
141
|
-
a11yProps = {
|
|
142
|
-
'aria-expanded': isExpanded
|
|
143
|
-
};
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
return (0, _core.jsx)("button", (0, _extends2.default)({
|
|
147
|
-
css: (0, _core.css)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n appearance: none;\n background: none;\n border: none;\n border-radius: ", "px;\n color: ", ";\n cursor: pointer;\n flex: 0 0 auto;\n line-height: 1;\n margin-left: ", "px;\n padding: 0;\n white-space: nowrap;\n &:focus {\n outline: none;\n box-shadow: 0 0 0 2px ", ";\n }\n "])), (0, _constants.borderRadius)(), (0, _theme.getFlagTextColor)(appearance, mode), gridSize, (0, _theme.getFlagFocusRingColor)(appearance, mode)),
|
|
148
|
-
onClick: buttonAction,
|
|
149
|
-
"data-testid": buttonTestId,
|
|
150
|
-
type: "button"
|
|
151
|
-
}, a11yProps), (0, _core.jsx)(ButtonIcon, {
|
|
152
|
-
label: buttonLabel,
|
|
153
|
-
size: size
|
|
154
|
-
}));
|
|
155
|
-
}, [actions.length, appearance, description, id, isBold, isDismissAllowed, isExpanded, onDismissedAnalytics, testId]);
|
|
120
|
+
}, [onDismissedAnalytics, id, isDismissAllowed]);
|
|
156
121
|
(0, _react.useEffect)(function () {
|
|
157
122
|
// If buttons are removed as a prop, update isExpanded to be false
|
|
158
123
|
if (isBold && isExpanded && !description && !actions.length) {
|
|
@@ -175,44 +140,57 @@ var Flag = function Flag(props) {
|
|
|
175
140
|
onMouseOut: onMouseOut,
|
|
176
141
|
onBlur: onBlurAnalytics
|
|
177
142
|
};
|
|
178
|
-
var
|
|
179
|
-
var boxShadow = "0 20px 32px -8px ".concat(_theme.flagShadowColor);
|
|
143
|
+
var boxShadow = "var(--ds-shadow-overlay, ".concat("0 20px 32px -8px ".concat(_theme.flagShadowColor), ")");
|
|
180
144
|
|
|
181
145
|
if (!isBold) {
|
|
182
|
-
boxShadow = "0 0 1px ".concat(_theme.flagBorderColor, ", ").concat(boxShadow);
|
|
146
|
+
boxShadow = "var(--ds-shadow-overlay, ".concat("0 0 1px ".concat(_theme.flagBorderColor, ", ").concat(boxShadow), ")");
|
|
183
147
|
}
|
|
184
148
|
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
,
|
|
195
|
-
|
|
196
|
-
},
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
149
|
+
var _useGlobalTheme = (0, _components.useGlobalTheme)(),
|
|
150
|
+
mode = _useGlobalTheme.mode;
|
|
151
|
+
|
|
152
|
+
var textColor = (0, _theme.getFlagTextColor)(appearance, mode);
|
|
153
|
+
var iconColor = (0, _theme.getFlagIconColor)(appearance, mode);
|
|
154
|
+
var isDismissable = isBold || isDismissAllowed;
|
|
155
|
+
return (0, _core.jsx)("div", (0, _extends2.default)({
|
|
156
|
+
style: {
|
|
157
|
+
color: textColor,
|
|
158
|
+
backgroundColor: (0, _theme.getFlagBackgroundColor)(appearance, mode),
|
|
159
|
+
boxShadow: boxShadow
|
|
160
|
+
},
|
|
161
|
+
css: flagContainerStyles,
|
|
162
|
+
role: "alert",
|
|
163
|
+
"data-testid": testId
|
|
164
|
+
}, autoDismissProps), (0, _core.jsx)(_focusRing.default, null, (0, _core.jsx)("div", {
|
|
165
|
+
css: flagHeaderStyles // eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex
|
|
166
|
+
,
|
|
167
|
+
tabIndex: 0
|
|
168
|
+
}, (0, _core.jsx)("div", {
|
|
169
|
+
style: {
|
|
170
|
+
color: iconColor
|
|
171
|
+
},
|
|
172
|
+
css: iconStyles
|
|
173
|
+
}, icon, (0, _core.jsx)(_internal.Title, {
|
|
174
|
+
color: textColor
|
|
175
|
+
}, title), isDismissable ? !(isBold && !description && !actions.length) && (0, _core.jsx)(_internal.DismissButton, {
|
|
176
|
+
testId: testId,
|
|
177
|
+
appearance: appearance,
|
|
178
|
+
isBold: isBold,
|
|
179
|
+
isExpanded: isExpanded,
|
|
180
|
+
onClick: isBold ? toggleExpand : buttonActionCallback
|
|
181
|
+
}) : null), (0, _core.jsx)(_internal.Expander, {
|
|
182
|
+
isExpanded: !isBold || isExpanded,
|
|
183
|
+
testId: testId
|
|
184
|
+
}, description && (0, _core.jsx)(_internal.Description, {
|
|
185
|
+
testId: testId && "".concat(testId, "-description"),
|
|
186
|
+
color: textColor
|
|
187
|
+
}, description), (0, _core.jsx)(_flagActions.default, {
|
|
188
|
+
actions: actions,
|
|
189
|
+
appearance: appearance,
|
|
190
|
+
linkComponent: linkComponent,
|
|
191
|
+
testId: testId,
|
|
192
|
+
mode: mode
|
|
193
|
+
})))));
|
|
216
194
|
};
|
|
217
195
|
|
|
218
196
|
var _default = Flag;
|