@sproutsocial/racine 11.3.0-beta.1 → 11.3.0-beta.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 +30 -0
- package/__flow__/Badge/constants.js +48 -0
- package/__flow__/Badge/index.js +60 -33
- package/__flow__/Badge/index.stories.js +35 -42
- package/__flow__/Badge/index.test.js +34 -32
- package/__flow__/Badge/styles.js +22 -42
- package/__flow__/Input/index.js +40 -14
- package/__flow__/Input/index.stories.js +33 -1
- package/__flow__/Input/index.test.js +28 -0
- package/__flow__/Link/index.js +2 -1
- package/__flow__/themes/extendedThemes/README.md +6 -0
- package/commonjs/Badge/constants.js +43 -0
- package/commonjs/Badge/index.js +41 -39
- package/commonjs/Badge/styles.js +15 -31
- package/commonjs/Input/index.js +47 -13
- package/lib/Badge/constants.js +38 -0
- package/lib/Badge/index.js +38 -39
- package/lib/Badge/styles.js +12 -27
- package/lib/Input/index.js +47 -13
- package/package.json +1 -1
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
exports.__esModule = true;
|
|
4
|
+
exports.legacyBadgeColors = void 0;
|
|
5
|
+
var defaultPurple = {
|
|
6
|
+
color: "colors.text.body",
|
|
7
|
+
background: "colors.container.background.decorative.purple"
|
|
8
|
+
};
|
|
9
|
+
var suggestion = {
|
|
10
|
+
color: "colors.text.body",
|
|
11
|
+
background: "colors.container.background.decorative.blue"
|
|
12
|
+
};
|
|
13
|
+
var passive = {
|
|
14
|
+
color: "colors.text.body",
|
|
15
|
+
background: "colors.container.background.decorative.neutral"
|
|
16
|
+
};
|
|
17
|
+
var primary = {
|
|
18
|
+
color: "colors.text.body",
|
|
19
|
+
background: "colors.container.background.decorative.blue"
|
|
20
|
+
};
|
|
21
|
+
var secondary = {
|
|
22
|
+
color: "colors.text.body",
|
|
23
|
+
background: "colors.container.background.decorative.yellow"
|
|
24
|
+
};
|
|
25
|
+
var common = {
|
|
26
|
+
color: "colors.text.inverse",
|
|
27
|
+
background: "colors.aqua.600"
|
|
28
|
+
};
|
|
29
|
+
var approval = {
|
|
30
|
+
color: "colors.text.body",
|
|
31
|
+
background: "colors.container.background.decorative.orange"
|
|
32
|
+
}; //Deprecated former "types"
|
|
33
|
+
|
|
34
|
+
var legacyBadgeColors = {
|
|
35
|
+
primary: primary,
|
|
36
|
+
secondary: secondary,
|
|
37
|
+
passive: passive,
|
|
38
|
+
common: common,
|
|
39
|
+
approval: approval,
|
|
40
|
+
default: defaultPurple,
|
|
41
|
+
suggestion: suggestion
|
|
42
|
+
};
|
|
43
|
+
exports.legacyBadgeColors = legacyBadgeColors;
|
package/commonjs/Badge/index.js
CHANGED
|
@@ -5,9 +5,13 @@ exports.default = void 0;
|
|
|
5
5
|
|
|
6
6
|
var React = _interopRequireWildcard(require("react"));
|
|
7
7
|
|
|
8
|
+
var _Icon = _interopRequireDefault(require("../Icon"));
|
|
9
|
+
|
|
8
10
|
var _styles = _interopRequireDefault(require("./styles"));
|
|
9
11
|
|
|
10
|
-
var
|
|
12
|
+
var _Box = _interopRequireDefault(require("../Box"));
|
|
13
|
+
|
|
14
|
+
var _excluded = ["children", "text", "iconName", "type", "tip", "size", "badgeColor"];
|
|
11
15
|
|
|
12
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
17
|
|
|
@@ -19,43 +23,41 @@ function _extends() { _extends = Object.assign || function (target) { for (var i
|
|
|
19
23
|
|
|
20
24
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
21
25
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
26
|
+
var Badge = function Badge(_ref) {
|
|
27
|
+
var children = _ref.children,
|
|
28
|
+
text = _ref.text,
|
|
29
|
+
iconName = _ref.iconName,
|
|
30
|
+
type = _ref.type,
|
|
31
|
+
tip = _ref.tip,
|
|
32
|
+
_ref$size = _ref.size,
|
|
33
|
+
size = _ref$size === void 0 ? "small" : _ref$size,
|
|
34
|
+
_ref$badgeColor = _ref.badgeColor,
|
|
35
|
+
badgeColor = _ref$badgeColor === void 0 ? "blue" : _ref$badgeColor,
|
|
36
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
37
|
+
|
|
38
|
+
if (children && text) {
|
|
39
|
+
throw new Error("can't use both `children` and `text` props. Text is deprecated, consider using children.");
|
|
31
40
|
}
|
|
32
41
|
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}(React.Component);
|
|
56
|
-
|
|
57
|
-
exports.default = Badge;
|
|
58
|
-
Badge.defaultProps = {
|
|
59
|
-
type: "primary",
|
|
60
|
-
size: "default"
|
|
61
|
-
};
|
|
42
|
+
return /*#__PURE__*/React.createElement(_styles.default, _extends({}, rest, {
|
|
43
|
+
// size previously included default, which currently maps to small. Once consumers have updated this can be simplified.
|
|
44
|
+
size: size === "default" ? "large" : size,
|
|
45
|
+
badgeColor: badgeColor,
|
|
46
|
+
"data-tip": tip,
|
|
47
|
+
"data-qa-badge": text || "",
|
|
48
|
+
"data-qa-badge-type": type,
|
|
49
|
+
"data-qa-badge-tip": tip || "",
|
|
50
|
+
type: type && type
|
|
51
|
+
}), /*#__PURE__*/React.createElement(_Box.default, {
|
|
52
|
+
display: "flex",
|
|
53
|
+
alignItems: "center",
|
|
54
|
+
JustifyContent: "center"
|
|
55
|
+
}, iconName ? /*#__PURE__*/React.createElement(_Icon.default, {
|
|
56
|
+
mr: 200,
|
|
57
|
+
name: iconName,
|
|
58
|
+
size: size === "small" ? "mini" : "default"
|
|
59
|
+
}) : null, children || text));
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
var _default = Badge;
|
|
63
|
+
exports.default = _default;
|
package/commonjs/Badge/styles.js
CHANGED
|
@@ -3,46 +3,30 @@
|
|
|
3
3
|
exports.__esModule = true;
|
|
4
4
|
exports.default = void 0;
|
|
5
5
|
|
|
6
|
-
var _styledComponents =
|
|
6
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
7
7
|
|
|
8
8
|
var _systemProps = require("../utils/system-props");
|
|
9
9
|
|
|
10
10
|
var _themeGet = require("@styled-system/theme-get");
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
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
|
-
|
|
16
|
-
var colors = {
|
|
17
|
-
primary: "colors.neutral.0",
|
|
18
|
-
secondary: "colors.neutral.800",
|
|
19
|
-
passive: "colors.neutral.800",
|
|
20
|
-
common: "colors.neutral.0",
|
|
21
|
-
approval: "colors.neutral.800",
|
|
22
|
-
default: "colors.neutral.0",
|
|
23
|
-
suggestion: "colors.neutral.900"
|
|
24
|
-
};
|
|
25
|
-
var backgroundColors = {
|
|
26
|
-
primary: "colors.blue.700",
|
|
27
|
-
secondary: "colors.yellow.500",
|
|
28
|
-
passive: "colors.neutral.200",
|
|
29
|
-
common: "colors.aqua.600",
|
|
30
|
-
approval: "colors.orange.300",
|
|
31
|
-
default: "colors.purple.700",
|
|
32
|
-
suggestion: "colors.blue.300"
|
|
33
|
-
}; // eslint-disable-next-line prettier/prettier
|
|
12
|
+
var _constants = require("./constants");
|
|
34
13
|
|
|
14
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
|
+
|
|
16
|
+
// eslint-disable-next-line prettier/prettier
|
|
35
17
|
var Container = _styledComponents.default.span.withConfig({
|
|
36
18
|
displayName: "styles__Container",
|
|
37
19
|
componentId: "sc-g1g76b-0"
|
|
38
|
-
})(["
|
|
39
|
-
return
|
|
40
|
-
}, function (
|
|
41
|
-
return
|
|
42
|
-
}, function (
|
|
43
|
-
return
|
|
44
|
-
}, function (
|
|
45
|
-
return
|
|
20
|
+
})(["font-family:", ";", ";border-radius:9999px;line-height:16px;display:inline-block;color:", ";background:", ";padding:", ";", ";"], function (p) {
|
|
21
|
+
return p.theme.fontFamily;
|
|
22
|
+
}, function (p) {
|
|
23
|
+
return p.size === "small" ? p.theme.typography[100] : p.theme.typography[200];
|
|
24
|
+
}, function (p) {
|
|
25
|
+
return p.type ? (0, _themeGet.themeGet)(_constants.legacyBadgeColors[p.type].color) : p.theme.colors.text.body;
|
|
26
|
+
}, function (p) {
|
|
27
|
+
return p.type ? (0, _themeGet.themeGet)(_constants.legacyBadgeColors[p.type].background) : p.theme.colors.container.background.decorative[p.badgeColor];
|
|
28
|
+
}, function (p) {
|
|
29
|
+
return p.size === "small" ? p.theme.space[0] + " " + p.theme.space[200] : "" + p.theme.space[300];
|
|
46
30
|
}, _systemProps.COMMON);
|
|
47
31
|
|
|
48
32
|
var _default = Container;
|
package/commonjs/Input/index.js
CHANGED
|
@@ -11,7 +11,7 @@ var _Button = _interopRequireDefault(require("../Button"));
|
|
|
11
11
|
|
|
12
12
|
var _Icon = _interopRequireDefault(require("../Icon"));
|
|
13
13
|
|
|
14
|
-
var _excluded = ["autoComplete", "autoFocus", "disabled", "readOnly", "isInvalid", "hasWarning", "id", "name", "placeholder", "type", "required", "value", "elemBefore", "elemAfter", "maxLength", "ariaLabel", "ariaDescribedby", "clearButtonLabel", "innerRef", "onBlur", "onChange", "onClear", "onFocus", "onKeyDown", "onKeyUp", "onPaste", "inputProps", "qa", "appearance"];
|
|
14
|
+
var _excluded = ["autoComplete", "autoFocus", "disabled", "readOnly", "isInvalid", "hasWarning", "id", "name", "placeholder", "type", "required", "value", "elemBefore", "elemAfter", "maxLength", "ariaLabel", "ariaDescribedby", "clearButtonLabel", "innerRef", "onBlur", "onChange", "onClear", "onFocus", "onKeyDown", "onKeyUp", "onPaste", "inputProps", "qa", "appearance", "size"];
|
|
15
15
|
|
|
16
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
17
17
|
|
|
@@ -32,14 +32,44 @@ var InputContext = /*#__PURE__*/React.createContext({});
|
|
|
32
32
|
var ClearButton = function ClearButton() {
|
|
33
33
|
var _React$useContext = React.useContext(InputContext),
|
|
34
34
|
handleClear = _React$useContext.handleClear,
|
|
35
|
-
clearButtonLabel = _React$useContext.clearButtonLabel
|
|
35
|
+
clearButtonLabel = _React$useContext.clearButtonLabel,
|
|
36
|
+
hasValue = _React$useContext.hasValue,
|
|
37
|
+
size = _React$useContext.size; // Hide the button when there is no text to clear.
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
if (!hasValue) {
|
|
41
|
+
return null;
|
|
42
|
+
} // Cut down the padding for size small Inputs so that the focus ring won't go outside the bounds of the Input.
|
|
43
|
+
// This adjustment is handled automatically for default and large Inputs via Button's size. There is no "small" Button.
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
var py = size === "small" ? 100 : undefined;
|
|
47
|
+
var px = size === "small" ? 200 : undefined;
|
|
48
|
+
var buttonSize = size === "small" ? "default" : size; // Warn if clearButtonLabel is not included, so that the unlocalized fallback will not be mistaken for a proper label.
|
|
49
|
+
|
|
50
|
+
if (!clearButtonLabel) {
|
|
51
|
+
console.warn("Warning: clearButtonLabel prop is required when using Input.ClearButton. Please pass a localized label to Input.");
|
|
52
|
+
}
|
|
36
53
|
|
|
37
54
|
return /*#__PURE__*/React.createElement(_Button.default, {
|
|
38
|
-
onClick: handleClear
|
|
55
|
+
onClick: handleClear,
|
|
56
|
+
size: buttonSize,
|
|
57
|
+
py: py,
|
|
58
|
+
px: px
|
|
39
59
|
}, /*#__PURE__*/React.createElement(_Icon.default, {
|
|
40
60
|
name: "circlex",
|
|
41
61
|
title: clearButtonLabel || "Clear"
|
|
42
62
|
}));
|
|
63
|
+
}; // Used for positioning elementAfter. This logic will detect if the element is a ClearButton,
|
|
64
|
+
// regardless of whether it was manually passed as elemAfter or automatically added to a search Input.
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
var isClearButton = function isClearButton(elem) {
|
|
68
|
+
if (elem != null && elem.type) {
|
|
69
|
+
return elem.type.displayName === "Input.ClearButton";
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
return false;
|
|
43
73
|
};
|
|
44
74
|
|
|
45
75
|
var Input = /*#__PURE__*/function (_React$Component) {
|
|
@@ -59,7 +89,10 @@ var Input = /*#__PURE__*/function (_React$Component) {
|
|
|
59
89
|
};
|
|
60
90
|
|
|
61
91
|
_this.handleClear = function (e) {
|
|
62
|
-
|
|
92
|
+
var _this$props$innerRef, _this$props$innerRef$;
|
|
93
|
+
|
|
94
|
+
_this.props.onClear == null ? void 0 : _this.props.onClear(e);
|
|
95
|
+
(_this$props$innerRef = _this.props.innerRef) == null ? void 0 : (_this$props$innerRef$ = _this$props$innerRef.current) == null ? void 0 : _this$props$innerRef$.focus();
|
|
63
96
|
};
|
|
64
97
|
|
|
65
98
|
_this.handleChange = function (e) {
|
|
@@ -88,8 +121,6 @@ var Input = /*#__PURE__*/function (_React$Component) {
|
|
|
88
121
|
var _proto = Input.prototype;
|
|
89
122
|
|
|
90
123
|
_proto.render = function render() {
|
|
91
|
-
var _elementAfter$type;
|
|
92
|
-
|
|
93
124
|
var _this$props = this.props,
|
|
94
125
|
autoComplete = _this$props.autoComplete,
|
|
95
126
|
autoFocus = _this$props.autoFocus,
|
|
@@ -122,6 +153,7 @@ var Input = /*#__PURE__*/function (_React$Component) {
|
|
|
122
153
|
_this$props$qa = _this$props.qa,
|
|
123
154
|
qa = _this$props$qa === void 0 ? {} : _this$props$qa,
|
|
124
155
|
appearance = _this$props.appearance,
|
|
156
|
+
size = _this$props.size,
|
|
125
157
|
rest = _objectWithoutPropertiesLoose(_this$props, _excluded); // Convert autoComplete from a boolean prop to a string value.
|
|
126
158
|
|
|
127
159
|
|
|
@@ -134,7 +166,8 @@ var Input = /*#__PURE__*/function (_React$Component) {
|
|
|
134
166
|
|
|
135
167
|
var elementBefore = type === "search" && !elemBefore ? /*#__PURE__*/React.createElement(_Icon.default, {
|
|
136
168
|
name: "search",
|
|
137
|
-
ariaHidden: true
|
|
169
|
+
ariaHidden: true,
|
|
170
|
+
color: "icon.base"
|
|
138
171
|
}) : elemBefore; // Do not add a ClearButton if no onClear callback is provided or if an elemAfter prop was passed.
|
|
139
172
|
|
|
140
173
|
var elementAfter = type === "search" && onClear && !elemAfter ? /*#__PURE__*/React.createElement(ClearButton, null) : elemAfter;
|
|
@@ -144,12 +177,15 @@ var Input = /*#__PURE__*/function (_React$Component) {
|
|
|
144
177
|
disabled: disabled,
|
|
145
178
|
invalid: !!isInvalid,
|
|
146
179
|
warning: hasWarning,
|
|
147
|
-
appearance: appearance
|
|
180
|
+
appearance: appearance,
|
|
181
|
+
size: size // $FlowIssue - upgrade v0.112.0
|
|
148
182
|
|
|
149
183
|
}, rest), /*#__PURE__*/React.createElement(InputContext.Provider, {
|
|
150
184
|
value: {
|
|
151
185
|
handleClear: this.handleClear,
|
|
152
|
-
|
|
186
|
+
hasValue: !!value,
|
|
187
|
+
clearButtonLabel: clearButtonLabel,
|
|
188
|
+
size: size
|
|
153
189
|
}
|
|
154
190
|
}, elementBefore && /*#__PURE__*/React.createElement(_styles.Accessory, {
|
|
155
191
|
before: true
|
|
@@ -179,10 +215,8 @@ var Input = /*#__PURE__*/function (_React$Component) {
|
|
|
179
215
|
"data-qa-input-isdisabled": disabled === true,
|
|
180
216
|
"data-qa-input-isrequired": required === true
|
|
181
217
|
}, qa, inputProps)), elementAfter && /*#__PURE__*/React.createElement(_styles.Accessory, {
|
|
182
|
-
after: true
|
|
183
|
-
|
|
184
|
-
,
|
|
185
|
-
isClearButton: (elementAfter == null ? void 0 : (_elementAfter$type = elementAfter.type) == null ? void 0 : _elementAfter$type.prototype) === Input.ClearButton.prototype
|
|
218
|
+
after: true,
|
|
219
|
+
isClearButton: isClearButton(elementAfter)
|
|
186
220
|
}, elementAfter)));
|
|
187
221
|
};
|
|
188
222
|
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
var defaultPurple = {
|
|
2
|
+
color: "colors.text.body",
|
|
3
|
+
background: "colors.container.background.decorative.purple"
|
|
4
|
+
};
|
|
5
|
+
var suggestion = {
|
|
6
|
+
color: "colors.text.body",
|
|
7
|
+
background: "colors.container.background.decorative.blue"
|
|
8
|
+
};
|
|
9
|
+
var passive = {
|
|
10
|
+
color: "colors.text.body",
|
|
11
|
+
background: "colors.container.background.decorative.neutral"
|
|
12
|
+
};
|
|
13
|
+
var primary = {
|
|
14
|
+
color: "colors.text.body",
|
|
15
|
+
background: "colors.container.background.decorative.blue"
|
|
16
|
+
};
|
|
17
|
+
var secondary = {
|
|
18
|
+
color: "colors.text.body",
|
|
19
|
+
background: "colors.container.background.decorative.yellow"
|
|
20
|
+
};
|
|
21
|
+
var common = {
|
|
22
|
+
color: "colors.text.inverse",
|
|
23
|
+
background: "colors.aqua.600"
|
|
24
|
+
};
|
|
25
|
+
var approval = {
|
|
26
|
+
color: "colors.text.body",
|
|
27
|
+
background: "colors.container.background.decorative.orange"
|
|
28
|
+
}; //Deprecated former "types"
|
|
29
|
+
|
|
30
|
+
export var legacyBadgeColors = {
|
|
31
|
+
primary: primary,
|
|
32
|
+
secondary: secondary,
|
|
33
|
+
passive: passive,
|
|
34
|
+
common: common,
|
|
35
|
+
approval: approval,
|
|
36
|
+
default: defaultPurple,
|
|
37
|
+
suggestion: suggestion
|
|
38
|
+
};
|
package/lib/Badge/index.js
CHANGED
|
@@ -1,49 +1,48 @@
|
|
|
1
|
-
var _excluded = ["
|
|
1
|
+
var _excluded = ["children", "text", "iconName", "type", "tip", "size", "badgeColor"];
|
|
2
2
|
|
|
3
3
|
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
4
4
|
|
|
5
5
|
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
6
6
|
|
|
7
|
-
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
|
|
8
|
-
|
|
9
|
-
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
|
|
10
|
-
|
|
11
7
|
import * as React from "react";
|
|
8
|
+
import Icon from "../Icon";
|
|
12
9
|
import Container from "./styles";
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
10
|
+
import Box from "../Box";
|
|
11
|
+
|
|
12
|
+
var Badge = function Badge(_ref) {
|
|
13
|
+
var children = _ref.children,
|
|
14
|
+
text = _ref.text,
|
|
15
|
+
iconName = _ref.iconName,
|
|
16
|
+
type = _ref.type,
|
|
17
|
+
tip = _ref.tip,
|
|
18
|
+
_ref$size = _ref.size,
|
|
19
|
+
size = _ref$size === void 0 ? "small" : _ref$size,
|
|
20
|
+
_ref$badgeColor = _ref.badgeColor,
|
|
21
|
+
badgeColor = _ref$badgeColor === void 0 ? "blue" : _ref$badgeColor,
|
|
22
|
+
rest = _objectWithoutPropertiesLoose(_ref, _excluded);
|
|
23
|
+
|
|
24
|
+
if (children && text) {
|
|
25
|
+
throw new Error("can't use both `children` and `text` props. Text is deprecated, consider using children.");
|
|
19
26
|
}
|
|
20
27
|
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
}, rest), text);
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
return Badge;
|
|
43
|
-
}(React.Component);
|
|
44
|
-
|
|
45
|
-
Badge.defaultProps = {
|
|
46
|
-
type: "primary",
|
|
47
|
-
size: "default"
|
|
28
|
+
return /*#__PURE__*/React.createElement(Container, _extends({}, rest, {
|
|
29
|
+
// size previously included default, which currently maps to small. Once consumers have updated this can be simplified.
|
|
30
|
+
size: size === "default" ? "large" : size,
|
|
31
|
+
badgeColor: badgeColor,
|
|
32
|
+
"data-tip": tip,
|
|
33
|
+
"data-qa-badge": text || "",
|
|
34
|
+
"data-qa-badge-type": type,
|
|
35
|
+
"data-qa-badge-tip": tip || "",
|
|
36
|
+
type: type && type
|
|
37
|
+
}), /*#__PURE__*/React.createElement(Box, {
|
|
38
|
+
display: "flex",
|
|
39
|
+
alignItems: "center",
|
|
40
|
+
JustifyContent: "center"
|
|
41
|
+
}, iconName ? /*#__PURE__*/React.createElement(Icon, {
|
|
42
|
+
mr: 200,
|
|
43
|
+
name: iconName,
|
|
44
|
+
size: size === "small" ? "mini" : "default"
|
|
45
|
+
}) : null, children || text));
|
|
48
46
|
};
|
|
49
|
-
|
|
47
|
+
|
|
48
|
+
export default Badge;
|
package/lib/Badge/styles.js
CHANGED
|
@@ -1,35 +1,20 @@
|
|
|
1
|
-
import styled
|
|
1
|
+
import styled from "styled-components";
|
|
2
2
|
import { COMMON } from "../utils/system-props";
|
|
3
3
|
import { themeGet } from "@styled-system/theme-get";
|
|
4
|
-
|
|
5
|
-
primary: "colors.neutral.0",
|
|
6
|
-
secondary: "colors.neutral.800",
|
|
7
|
-
passive: "colors.neutral.800",
|
|
8
|
-
common: "colors.neutral.0",
|
|
9
|
-
approval: "colors.neutral.800",
|
|
10
|
-
default: "colors.neutral.0",
|
|
11
|
-
suggestion: "colors.neutral.900"
|
|
12
|
-
};
|
|
13
|
-
var backgroundColors = {
|
|
14
|
-
primary: "colors.blue.700",
|
|
15
|
-
secondary: "colors.yellow.500",
|
|
16
|
-
passive: "colors.neutral.200",
|
|
17
|
-
common: "colors.aqua.600",
|
|
18
|
-
approval: "colors.orange.300",
|
|
19
|
-
default: "colors.purple.700",
|
|
20
|
-
suggestion: "colors.blue.300"
|
|
21
|
-
}; // eslint-disable-next-line prettier/prettier
|
|
4
|
+
import { legacyBadgeColors } from "./constants"; // eslint-disable-next-line prettier/prettier
|
|
22
5
|
|
|
23
6
|
var Container = styled.span.withConfig({
|
|
24
7
|
displayName: "styles__Container",
|
|
25
8
|
componentId: "sc-g1g76b-0"
|
|
26
|
-
})(["
|
|
27
|
-
return
|
|
28
|
-
}, function (
|
|
29
|
-
return
|
|
30
|
-
}, function (
|
|
31
|
-
return
|
|
32
|
-
}, function (
|
|
33
|
-
return
|
|
9
|
+
})(["font-family:", ";", ";border-radius:9999px;line-height:16px;display:inline-block;color:", ";background:", ";padding:", ";", ";"], function (p) {
|
|
10
|
+
return p.theme.fontFamily;
|
|
11
|
+
}, function (p) {
|
|
12
|
+
return p.size === "small" ? p.theme.typography[100] : p.theme.typography[200];
|
|
13
|
+
}, function (p) {
|
|
14
|
+
return p.type ? themeGet(legacyBadgeColors[p.type].color) : p.theme.colors.text.body;
|
|
15
|
+
}, function (p) {
|
|
16
|
+
return p.type ? themeGet(legacyBadgeColors[p.type].background) : p.theme.colors.container.background.decorative[p.badgeColor];
|
|
17
|
+
}, function (p) {
|
|
18
|
+
return p.size === "small" ? p.theme.space[0] + " " + p.theme.space[200] : "" + p.theme.space[300];
|
|
34
19
|
}, COMMON);
|
|
35
20
|
export default Container;
|
package/lib/Input/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
var _excluded = ["autoComplete", "autoFocus", "disabled", "readOnly", "isInvalid", "hasWarning", "id", "name", "placeholder", "type", "required", "value", "elemBefore", "elemAfter", "maxLength", "ariaLabel", "ariaDescribedby", "clearButtonLabel", "innerRef", "onBlur", "onChange", "onClear", "onFocus", "onKeyDown", "onKeyUp", "onPaste", "inputProps", "qa", "appearance"];
|
|
1
|
+
var _excluded = ["autoComplete", "autoFocus", "disabled", "readOnly", "isInvalid", "hasWarning", "id", "name", "placeholder", "type", "required", "value", "elemBefore", "elemAfter", "maxLength", "ariaLabel", "ariaDescribedby", "clearButtonLabel", "innerRef", "onBlur", "onChange", "onClear", "onFocus", "onKeyDown", "onKeyUp", "onPaste", "inputProps", "qa", "appearance", "size"];
|
|
2
2
|
|
|
3
3
|
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
4
4
|
|
|
@@ -17,14 +17,44 @@ var InputContext = /*#__PURE__*/React.createContext({});
|
|
|
17
17
|
var ClearButton = function ClearButton() {
|
|
18
18
|
var _React$useContext = React.useContext(InputContext),
|
|
19
19
|
handleClear = _React$useContext.handleClear,
|
|
20
|
-
clearButtonLabel = _React$useContext.clearButtonLabel
|
|
20
|
+
clearButtonLabel = _React$useContext.clearButtonLabel,
|
|
21
|
+
hasValue = _React$useContext.hasValue,
|
|
22
|
+
size = _React$useContext.size; // Hide the button when there is no text to clear.
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
if (!hasValue) {
|
|
26
|
+
return null;
|
|
27
|
+
} // Cut down the padding for size small Inputs so that the focus ring won't go outside the bounds of the Input.
|
|
28
|
+
// This adjustment is handled automatically for default and large Inputs via Button's size. There is no "small" Button.
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
var py = size === "small" ? 100 : undefined;
|
|
32
|
+
var px = size === "small" ? 200 : undefined;
|
|
33
|
+
var buttonSize = size === "small" ? "default" : size; // Warn if clearButtonLabel is not included, so that the unlocalized fallback will not be mistaken for a proper label.
|
|
34
|
+
|
|
35
|
+
if (!clearButtonLabel) {
|
|
36
|
+
console.warn("Warning: clearButtonLabel prop is required when using Input.ClearButton. Please pass a localized label to Input.");
|
|
37
|
+
}
|
|
21
38
|
|
|
22
39
|
return /*#__PURE__*/React.createElement(Button, {
|
|
23
|
-
onClick: handleClear
|
|
40
|
+
onClick: handleClear,
|
|
41
|
+
size: buttonSize,
|
|
42
|
+
py: py,
|
|
43
|
+
px: px
|
|
24
44
|
}, /*#__PURE__*/React.createElement(Icon, {
|
|
25
45
|
name: "circlex",
|
|
26
46
|
title: clearButtonLabel || "Clear"
|
|
27
47
|
}));
|
|
48
|
+
}; // Used for positioning elementAfter. This logic will detect if the element is a ClearButton,
|
|
49
|
+
// regardless of whether it was manually passed as elemAfter or automatically added to a search Input.
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
var isClearButton = function isClearButton(elem) {
|
|
53
|
+
if (elem != null && elem.type) {
|
|
54
|
+
return elem.type.displayName === "Input.ClearButton";
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
return false;
|
|
28
58
|
};
|
|
29
59
|
|
|
30
60
|
var Input = /*#__PURE__*/function (_React$Component) {
|
|
@@ -44,7 +74,10 @@ var Input = /*#__PURE__*/function (_React$Component) {
|
|
|
44
74
|
};
|
|
45
75
|
|
|
46
76
|
_this.handleClear = function (e) {
|
|
47
|
-
|
|
77
|
+
var _this$props$innerRef, _this$props$innerRef$;
|
|
78
|
+
|
|
79
|
+
_this.props.onClear == null ? void 0 : _this.props.onClear(e);
|
|
80
|
+
(_this$props$innerRef = _this.props.innerRef) == null ? void 0 : (_this$props$innerRef$ = _this$props$innerRef.current) == null ? void 0 : _this$props$innerRef$.focus();
|
|
48
81
|
};
|
|
49
82
|
|
|
50
83
|
_this.handleChange = function (e) {
|
|
@@ -73,8 +106,6 @@ var Input = /*#__PURE__*/function (_React$Component) {
|
|
|
73
106
|
var _proto = Input.prototype;
|
|
74
107
|
|
|
75
108
|
_proto.render = function render() {
|
|
76
|
-
var _elementAfter$type;
|
|
77
|
-
|
|
78
109
|
var _this$props = this.props,
|
|
79
110
|
autoComplete = _this$props.autoComplete,
|
|
80
111
|
autoFocus = _this$props.autoFocus,
|
|
@@ -107,6 +138,7 @@ var Input = /*#__PURE__*/function (_React$Component) {
|
|
|
107
138
|
_this$props$qa = _this$props.qa,
|
|
108
139
|
qa = _this$props$qa === void 0 ? {} : _this$props$qa,
|
|
109
140
|
appearance = _this$props.appearance,
|
|
141
|
+
size = _this$props.size,
|
|
110
142
|
rest = _objectWithoutPropertiesLoose(_this$props, _excluded); // Convert autoComplete from a boolean prop to a string value.
|
|
111
143
|
|
|
112
144
|
|
|
@@ -119,7 +151,8 @@ var Input = /*#__PURE__*/function (_React$Component) {
|
|
|
119
151
|
|
|
120
152
|
var elementBefore = type === "search" && !elemBefore ? /*#__PURE__*/React.createElement(Icon, {
|
|
121
153
|
name: "search",
|
|
122
|
-
ariaHidden: true
|
|
154
|
+
ariaHidden: true,
|
|
155
|
+
color: "icon.base"
|
|
123
156
|
}) : elemBefore; // Do not add a ClearButton if no onClear callback is provided or if an elemAfter prop was passed.
|
|
124
157
|
|
|
125
158
|
var elementAfter = type === "search" && onClear && !elemAfter ? /*#__PURE__*/React.createElement(ClearButton, null) : elemAfter;
|
|
@@ -129,12 +162,15 @@ var Input = /*#__PURE__*/function (_React$Component) {
|
|
|
129
162
|
disabled: disabled,
|
|
130
163
|
invalid: !!isInvalid,
|
|
131
164
|
warning: hasWarning,
|
|
132
|
-
appearance: appearance
|
|
165
|
+
appearance: appearance,
|
|
166
|
+
size: size // $FlowIssue - upgrade v0.112.0
|
|
133
167
|
|
|
134
168
|
}, rest), /*#__PURE__*/React.createElement(InputContext.Provider, {
|
|
135
169
|
value: {
|
|
136
170
|
handleClear: this.handleClear,
|
|
137
|
-
|
|
171
|
+
hasValue: !!value,
|
|
172
|
+
clearButtonLabel: clearButtonLabel,
|
|
173
|
+
size: size
|
|
138
174
|
}
|
|
139
175
|
}, elementBefore && /*#__PURE__*/React.createElement(Accessory, {
|
|
140
176
|
before: true
|
|
@@ -164,10 +200,8 @@ var Input = /*#__PURE__*/function (_React$Component) {
|
|
|
164
200
|
"data-qa-input-isdisabled": disabled === true,
|
|
165
201
|
"data-qa-input-isrequired": required === true
|
|
166
202
|
}, qa, inputProps)), elementAfter && /*#__PURE__*/React.createElement(Accessory, {
|
|
167
|
-
after: true
|
|
168
|
-
|
|
169
|
-
,
|
|
170
|
-
isClearButton: (elementAfter == null ? void 0 : (_elementAfter$type = elementAfter.type) == null ? void 0 : _elementAfter$type.prototype) === Input.ClearButton.prototype
|
|
203
|
+
after: true,
|
|
204
|
+
isClearButton: isClearButton(elementAfter)
|
|
171
205
|
}, elementAfter)));
|
|
172
206
|
};
|
|
173
207
|
|