@dxc-technology/halstack-react 0.0.0-301f60b → 0.0.0-335f028
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/HalstackContext.d.ts +10 -0
- package/{ThemeContext.js → HalstackContext.js} +6 -6
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +7 -28
- package/accordion/Accordion.stories.tsx +11 -11
- package/accordion/Accordion.test.js +19 -4
- package/accordion/types.d.ts +4 -0
- package/accordion-group/AccordionGroup.d.ts +1 -1
- package/accordion-group/AccordionGroup.js +13 -15
- package/accordion-group/AccordionGroup.stories.tsx +1 -1
- package/accordion-group/AccordionGroup.test.js +24 -6
- package/accordion-group/types.d.ts +4 -0
- package/bleed/types.d.ts +24 -0
- package/button/Button.js +14 -11
- package/card/Card.js +27 -28
- package/checkbox/Checkbox.d.ts +1 -1
- package/checkbox/Checkbox.js +40 -39
- package/checkbox/Checkbox.stories.tsx +124 -128
- package/checkbox/Checkbox.test.js +13 -0
- package/checkbox/types.d.ts +7 -3
- package/common/variables.js +6 -7
- package/date-input/DateInput.js +50 -39
- package/date-input/DateInput.stories.tsx +7 -7
- package/date-input/DateInput.test.js +69 -59
- package/date-input/types.d.ts +16 -9
- package/dialog/Dialog.js +4 -32
- package/dropdown/Dropdown.js +13 -17
- package/footer/Footer.js +10 -85
- package/header/Header.js +20 -44
- package/header/Header.stories.tsx +46 -36
- package/header/Header.test.js +18 -2
- package/inset/types.d.ts +24 -0
- package/layout/ApplicationLayout.js +5 -18
- package/link/Link.d.ts +3 -2
- package/link/Link.js +65 -56
- package/link/Link.stories.tsx +87 -52
- package/link/Link.test.js +7 -15
- package/link/types.d.ts +8 -23
- package/main.d.ts +3 -2
- package/main.js +13 -5
- package/number-input/NumberInput.js +11 -18
- package/number-input/NumberInput.stories.tsx +5 -5
- package/number-input/NumberInput.test.js +2 -4
- package/number-input/types.d.ts +16 -9
- package/package.json +6 -5
- package/password-input/PasswordInput.test.js +2 -4
- package/password-input/types.d.ts +13 -10
- package/quick-nav/QuickNav.d.ts +4 -0
- package/quick-nav/QuickNav.js +64 -0
- package/quick-nav/QuickNav.stories.tsx +237 -0
- package/quick-nav/types.d.ts +21 -0
- package/quick-nav/types.js +5 -0
- package/radio/Radio.js +10 -11
- package/row/types.d.ts +18 -0
- package/select/Listbox.d.ts +4 -0
- package/select/Listbox.js +148 -0
- package/select/Option.js +1 -1
- package/select/Select.js +71 -156
- package/select/Select.stories.tsx +19 -19
- package/select/Select.test.js +405 -248
- package/select/types.d.ts +42 -12
- package/slider/Slider.d.ts +1 -1
- package/slider/Slider.js +2 -1
- package/slider/Slider.stories.tsx +8 -8
- package/slider/Slider.test.js +31 -10
- package/slider/types.d.ts +4 -0
- package/stack/types.d.ts +15 -0
- package/switch/Switch.d.ts +1 -1
- package/switch/Switch.js +32 -19
- package/switch/Switch.stories.tsx +14 -14
- package/switch/Switch.test.js +25 -0
- package/switch/types.d.ts +6 -2
- package/tabs/Tabs.d.ts +1 -1
- package/tabs/Tabs.js +9 -11
- package/tabs/Tabs.stories.tsx +0 -8
- package/tabs/Tabs.test.js +26 -9
- package/tabs/types.d.ts +4 -0
- package/tag/Tag.js +14 -19
- package/tag/Tag.stories.tsx +12 -8
- package/text-input/TextInput.js +2 -4
- package/text-input/TextInput.test.js +21 -34
- package/text-input/types.d.ts +13 -10
- package/textarea/Textarea.js +2 -4
- package/textarea/Textarea.test.js +10 -20
- package/textarea/types.d.ts +13 -10
- package/toggle-group/ToggleGroup.d.ts +1 -1
- package/toggle-group/ToggleGroup.js +5 -4
- package/toggle-group/ToggleGroup.stories.tsx +4 -4
- package/toggle-group/ToggleGroup.test.js +35 -4
- package/toggle-group/types.d.ts +8 -0
- package/useTheme.js +2 -2
- package/wizard/Wizard.d.ts +1 -1
- package/wizard/Wizard.js +28 -19
- package/wizard/Wizard.stories.tsx +13 -23
- package/wizard/Wizard.test.js +36 -23
- package/wizard/types.d.ts +6 -2
- package/ThemeContext.d.ts +0 -10
package/card/Card.js
CHANGED
|
@@ -56,6 +56,14 @@ var DxcCard = function DxcCard(_ref) {
|
|
|
56
56
|
isHovered = _useState2[0],
|
|
57
57
|
changeIsHovered = _useState2[1];
|
|
58
58
|
|
|
59
|
+
var imageComponent = /*#__PURE__*/_react["default"].createElement(ImageContainer, {
|
|
60
|
+
imageBgColor: imageBgColor
|
|
61
|
+
}, /*#__PURE__*/_react["default"].createElement(TagImage, {
|
|
62
|
+
imagePadding: imagePadding,
|
|
63
|
+
cover: imageCover,
|
|
64
|
+
src: imageSrc
|
|
65
|
+
}));
|
|
66
|
+
|
|
59
67
|
var tagContent = /*#__PURE__*/_react["default"].createElement(_Box["default"], {
|
|
60
68
|
shadowDepth: !outlined ? 0 : isHovered && (onClick || linkHref) ? 2 : 1
|
|
61
69
|
}, /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
@@ -63,15 +71,9 @@ var DxcCard = function DxcCard(_ref) {
|
|
|
63
71
|
}, /*#__PURE__*/_react["default"].createElement(CardContainer, {
|
|
64
72
|
hasAction: onClick || linkHref,
|
|
65
73
|
imagePosition: imagePosition
|
|
66
|
-
}, imageSrc && /*#__PURE__*/_react["default"].createElement(
|
|
67
|
-
imageBgColor: imageBgColor
|
|
68
|
-
}, /*#__PURE__*/_react["default"].createElement(TagImage, {
|
|
69
|
-
imagePadding: imagePadding,
|
|
70
|
-
cover: imageCover,
|
|
71
|
-
src: imageSrc
|
|
72
|
-
})), /*#__PURE__*/_react["default"].createElement(CardContent, {
|
|
74
|
+
}, imageSrc && imagePosition === "before" && imageComponent, /*#__PURE__*/_react["default"].createElement(CardContent, {
|
|
73
75
|
contentPadding: contentPadding
|
|
74
|
-
}, children))));
|
|
76
|
+
}, children), imageSrc && imagePosition === "after" && imageComponent)));
|
|
75
77
|
|
|
76
78
|
return /*#__PURE__*/_react["default"].createElement(StyledDxcCard, {
|
|
77
79
|
margin: margin,
|
|
@@ -113,50 +115,47 @@ var StyledDxcCard = _styledComponents["default"].div(_templateObject || (_templa
|
|
|
113
115
|
return margin && margin.left ? _variables.spaces[margin.left] : "";
|
|
114
116
|
});
|
|
115
117
|
|
|
116
|
-
var CardContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n
|
|
117
|
-
var imagePosition = _ref9.imagePosition;
|
|
118
|
-
return imagePosition === "before" && "row" || "row-reverse";
|
|
119
|
-
}, function (props) {
|
|
118
|
+
var CardContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n height: ", ";\n width: ", ";\n &:hover {\n border-color: ", ";\n }\n"])), function (props) {
|
|
120
119
|
return props.theme.height;
|
|
121
120
|
}, function (props) {
|
|
122
121
|
return props.theme.width;
|
|
123
|
-
}, function (
|
|
124
|
-
var hasAction =
|
|
122
|
+
}, function (_ref9) {
|
|
123
|
+
var hasAction = _ref9.hasAction;
|
|
125
124
|
return hasAction ? "" : "unset";
|
|
126
125
|
});
|
|
127
126
|
|
|
128
127
|
var StyledLink = _styledComponents["default"].a(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n cursor: pointer;\n text-decoration: none;\n\n :focus {\n outline-color: #0095ff;\n }\n"])));
|
|
129
128
|
|
|
130
|
-
var TagImage = _styledComponents["default"].img(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n height: ", ";\n width: ", ";\n object-fit: ", ";\n"])), function (
|
|
129
|
+
var TagImage = _styledComponents["default"].img(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n height: ", ";\n width: ", ";\n object-fit: ", ";\n"])), function (_ref10) {
|
|
130
|
+
var imagePadding = _ref10.imagePadding;
|
|
131
|
+
return !imagePadding ? "100%" : "calc(100% - ".concat(_variables.spaces[imagePadding], " - ").concat(_variables.spaces[imagePadding], ")");
|
|
132
|
+
}, function (_ref11) {
|
|
131
133
|
var imagePadding = _ref11.imagePadding;
|
|
132
134
|
return !imagePadding ? "100%" : "calc(100% - ".concat(_variables.spaces[imagePadding], " - ").concat(_variables.spaces[imagePadding], ")");
|
|
133
135
|
}, function (_ref12) {
|
|
134
|
-
var
|
|
135
|
-
return !imagePadding ? "100%" : "calc(100% - ".concat(_variables.spaces[imagePadding], " - ").concat(_variables.spaces[imagePadding], ")");
|
|
136
|
-
}, function (_ref13) {
|
|
137
|
-
var cover = _ref13.cover;
|
|
136
|
+
var cover = _ref12.cover;
|
|
138
137
|
return cover ? "cover" : "contain";
|
|
139
138
|
});
|
|
140
139
|
|
|
141
|
-
var ImageContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n width: 35%;\n height: 100%;\n flex-shrink: 0;\n background: ", ";\n justify-content: center;\n align-items: center;\n display: inline-flex;\n"])), function (
|
|
142
|
-
var imageBgColor =
|
|
140
|
+
var ImageContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n width: 35%;\n height: 100%;\n flex-shrink: 0;\n background: ", ";\n justify-content: center;\n align-items: center;\n display: inline-flex;\n"])), function (_ref13) {
|
|
141
|
+
var imageBgColor = _ref13.imageBgColor;
|
|
143
142
|
return imageBgColor;
|
|
144
143
|
});
|
|
145
144
|
|
|
146
|
-
var CardContent = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n flex-grow: 1;\n padding: ", ";\n padding-top: ", ";\n padding-right: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n overflow: hidden;\n"])), function (
|
|
147
|
-
var contentPadding =
|
|
145
|
+
var CardContent = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n flex-grow: 1;\n padding: ", ";\n padding-top: ", ";\n padding-right: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n overflow: hidden;\n"])), function (_ref14) {
|
|
146
|
+
var contentPadding = _ref14.contentPadding;
|
|
148
147
|
return contentPadding && (0, _typeof2["default"])(contentPadding) !== "object" ? _variables.spaces[contentPadding] : "0px";
|
|
148
|
+
}, function (_ref15) {
|
|
149
|
+
var contentPadding = _ref15.contentPadding;
|
|
150
|
+
return contentPadding && (0, _typeof2["default"])(contentPadding) === "object" && contentPadding.top ? _variables.spaces[contentPadding.top] : "";
|
|
149
151
|
}, function (_ref16) {
|
|
150
152
|
var contentPadding = _ref16.contentPadding;
|
|
151
|
-
return contentPadding && (0, _typeof2["default"])(contentPadding) === "object" && contentPadding.
|
|
153
|
+
return contentPadding && (0, _typeof2["default"])(contentPadding) === "object" && contentPadding.right ? _variables.spaces[contentPadding.right] : "";
|
|
152
154
|
}, function (_ref17) {
|
|
153
155
|
var contentPadding = _ref17.contentPadding;
|
|
154
|
-
return contentPadding && (0, _typeof2["default"])(contentPadding) === "object" && contentPadding.
|
|
156
|
+
return contentPadding && (0, _typeof2["default"])(contentPadding) === "object" && contentPadding.bottom ? _variables.spaces[contentPadding.bottom] : "";
|
|
155
157
|
}, function (_ref18) {
|
|
156
158
|
var contentPadding = _ref18.contentPadding;
|
|
157
|
-
return contentPadding && (0, _typeof2["default"])(contentPadding) === "object" && contentPadding.bottom ? _variables.spaces[contentPadding.bottom] : "";
|
|
158
|
-
}, function (_ref19) {
|
|
159
|
-
var contentPadding = _ref19.contentPadding;
|
|
160
159
|
return contentPadding && (0, _typeof2["default"])(contentPadding) === "object" && contentPadding.left ? _variables.spaces[contentPadding.left] : "";
|
|
161
160
|
});
|
|
162
161
|
|
package/checkbox/Checkbox.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import CheckboxPropsType from "./types";
|
|
3
|
-
declare const DxcCheckbox: ({ checked, value, label, labelPosition, name, disabled,
|
|
3
|
+
declare const DxcCheckbox: ({ checked, defaultChecked, value, label, labelPosition, name, disabled, optional, onChange, margin, size, tabIndex, }: CheckboxPropsType) => JSX.Element;
|
|
4
4
|
export default DxcCheckbox;
|
package/checkbox/Checkbox.js
CHANGED
|
@@ -21,12 +21,12 @@ var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
|
21
21
|
|
|
22
22
|
var _Checkbox = _interopRequireDefault(require("@material-ui/core/Checkbox"));
|
|
23
23
|
|
|
24
|
-
var _RequiredComponent = _interopRequireDefault(require("../common/RequiredComponent"));
|
|
25
|
-
|
|
26
24
|
var _variables = require("../common/variables.js");
|
|
27
25
|
|
|
28
26
|
var _utils = require("../common/utils.js");
|
|
29
27
|
|
|
28
|
+
var _uuid = require("uuid");
|
|
29
|
+
|
|
30
30
|
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
31
31
|
|
|
32
32
|
var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
|
|
@@ -39,6 +39,8 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
39
39
|
|
|
40
40
|
var DxcCheckbox = function DxcCheckbox(_ref) {
|
|
41
41
|
var checked = _ref.checked,
|
|
42
|
+
_ref$defaultChecked = _ref.defaultChecked,
|
|
43
|
+
defaultChecked = _ref$defaultChecked === void 0 ? false : _ref$defaultChecked,
|
|
42
44
|
value = _ref.value,
|
|
43
45
|
_ref$label = _ref.label,
|
|
44
46
|
label = _ref$label === void 0 ? "" : _ref$label,
|
|
@@ -48,24 +50,30 @@ var DxcCheckbox = function DxcCheckbox(_ref) {
|
|
|
48
50
|
name = _ref$name === void 0 ? "" : _ref$name,
|
|
49
51
|
_ref$disabled = _ref.disabled,
|
|
50
52
|
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
53
|
+
_ref$optional = _ref.optional,
|
|
54
|
+
optional = _ref$optional === void 0 ? false : _ref$optional,
|
|
51
55
|
onChange = _ref.onChange,
|
|
52
|
-
_ref$required = _ref.required,
|
|
53
|
-
required = _ref$required === void 0 ? false : _ref$required,
|
|
54
56
|
margin = _ref.margin,
|
|
55
57
|
_ref$size = _ref.size,
|
|
56
58
|
size = _ref$size === void 0 ? "fitContent" : _ref$size,
|
|
57
59
|
_ref$tabIndex = _ref.tabIndex,
|
|
58
60
|
tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
|
|
59
61
|
|
|
60
|
-
var _useState = (0, _react.useState)(
|
|
61
|
-
_useState2 = (0, _slicedToArray2["default"])(_useState,
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
var _useState = (0, _react.useState)("checkbox-".concat((0, _uuid.v4)())),
|
|
63
|
+
_useState2 = (0, _slicedToArray2["default"])(_useState, 1),
|
|
64
|
+
switchId = _useState2[0];
|
|
65
|
+
|
|
66
|
+
var labelId = "label-".concat(switchId);
|
|
64
67
|
|
|
65
|
-
var _useState3 = (0, _react.useState)(
|
|
68
|
+
var _useState3 = (0, _react.useState)(defaultChecked),
|
|
66
69
|
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
67
|
-
|
|
68
|
-
|
|
70
|
+
innerChecked = _useState4[0],
|
|
71
|
+
setInnerChecked = _useState4[1];
|
|
72
|
+
|
|
73
|
+
var _useState5 = (0, _react.useState)(false),
|
|
74
|
+
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
75
|
+
isLabelHovered = _useState6[0],
|
|
76
|
+
setIsLabelHovered = _useState6[1];
|
|
69
77
|
|
|
70
78
|
var colorsTheme = (0, _useTheme["default"])();
|
|
71
79
|
var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
|
|
@@ -89,6 +97,17 @@ var DxcCheckbox = function DxcCheckbox(_ref) {
|
|
|
89
97
|
setIsLabelHovered(!isLabelHovered);
|
|
90
98
|
};
|
|
91
99
|
|
|
100
|
+
var labelComponent = /*#__PURE__*/_react["default"].createElement(LabelContainer, {
|
|
101
|
+
id: labelId,
|
|
102
|
+
labelPosition: labelPosition,
|
|
103
|
+
onClick: disabled === true ? function () {} : handlerCheckboxChange,
|
|
104
|
+
disabled: disabled,
|
|
105
|
+
className: "labelContainer",
|
|
106
|
+
backgroundType: backgroundType,
|
|
107
|
+
onMouseOver: handleLabelHover,
|
|
108
|
+
onMouseOut: handleLabelHover
|
|
109
|
+
}, labelPosition === "before" ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, label, " ", optional && /*#__PURE__*/_react["default"].createElement("span", null, "(Optional)")) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, optional && /*#__PURE__*/_react["default"].createElement("span", null, "(Optional)"), " ", label));
|
|
110
|
+
|
|
92
111
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
93
112
|
theme: colorsTheme.checkbox
|
|
94
113
|
}, /*#__PURE__*/_react["default"].createElement(CheckboxContainer, {
|
|
@@ -101,13 +120,13 @@ var DxcCheckbox = function DxcCheckbox(_ref) {
|
|
|
101
120
|
size: size,
|
|
102
121
|
backgroundType: backgroundType,
|
|
103
122
|
isLabelHovered: isLabelHovered
|
|
104
|
-
}, /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
|
|
105
|
-
checked: checked
|
|
123
|
+
}, label && labelPosition === "before" && labelComponent, /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
|
|
124
|
+
checked: checked !== null && checked !== void 0 ? checked : innerChecked,
|
|
106
125
|
inputProps: {
|
|
107
126
|
name: name,
|
|
108
|
-
"aria-
|
|
127
|
+
"aria-labelledby": labelId,
|
|
109
128
|
role: "checkbox",
|
|
110
|
-
"aria-checked": checked
|
|
129
|
+
"aria-checked": checked !== null && checked !== void 0 ? checked : innerChecked
|
|
111
130
|
},
|
|
112
131
|
onChange: handlerCheckboxChange,
|
|
113
132
|
value: value,
|
|
@@ -118,17 +137,9 @@ var DxcCheckbox = function DxcCheckbox(_ref) {
|
|
|
118
137
|
}), /*#__PURE__*/_react["default"].createElement(CheckboxBlackBack, {
|
|
119
138
|
labelPosition: labelPosition,
|
|
120
139
|
disabled: disabled,
|
|
121
|
-
checked: checked
|
|
140
|
+
checked: checked !== null && checked !== void 0 ? checked : innerChecked,
|
|
122
141
|
backgroundType: backgroundType
|
|
123
|
-
}),
|
|
124
|
-
labelPosition: labelPosition,
|
|
125
|
-
onClick: disabled === true ? function (e) {} : handlerCheckboxChange,
|
|
126
|
-
disabled: disabled,
|
|
127
|
-
className: "labelContainer",
|
|
128
|
-
backgroundType: backgroundType,
|
|
129
|
-
onMouseOver: handleLabelHover,
|
|
130
|
-
onMouseOut: handleLabelHover
|
|
131
|
-
}, label)));
|
|
142
|
+
}), label && labelPosition === "after" && labelComponent));
|
|
132
143
|
};
|
|
133
144
|
|
|
134
145
|
var sizes = {
|
|
@@ -151,19 +162,15 @@ var getDisabledColor = function getDisabledColor(props, element) {
|
|
|
151
162
|
switch (element) {
|
|
152
163
|
case "check":
|
|
153
164
|
return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledCheckColorOnDark : props.theme.disabledCheckColor;
|
|
154
|
-
break;
|
|
155
165
|
|
|
156
166
|
case "background":
|
|
157
167
|
return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledBackgroundColorCheckedOnDark : props.theme.disabledBackgroundColorChecked;
|
|
158
|
-
break;
|
|
159
168
|
|
|
160
169
|
case "border":
|
|
161
170
|
return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledBorderColorOnDark : props.theme.disabledBorderColor;
|
|
162
|
-
break;
|
|
163
171
|
|
|
164
172
|
case "label":
|
|
165
173
|
return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledFontColorOnDark : props.theme.disabledFontColor;
|
|
166
|
-
break;
|
|
167
174
|
}
|
|
168
175
|
};
|
|
169
176
|
|
|
@@ -171,35 +178,31 @@ var getNotDisabledColor = function getNotDisabledColor(props, element) {
|
|
|
171
178
|
switch (element) {
|
|
172
179
|
case "check":
|
|
173
180
|
return props.backgroundType && props.backgroundType === "dark" ? props.theme.checkColorOnDark : props.theme.checkColor;
|
|
174
|
-
break;
|
|
175
181
|
|
|
176
182
|
case "background":
|
|
177
183
|
return props.backgroundType && props.backgroundType === "dark" ? props.theme.backgroundColorCheckedOnDark : props.theme.backgroundColorChecked;
|
|
178
|
-
break;
|
|
179
184
|
|
|
180
185
|
case "border":
|
|
181
186
|
return props.backgroundType && props.backgroundType === "dark" ? props.theme.borderColorOnDark : props.theme.borderColor;
|
|
182
|
-
break;
|
|
183
187
|
|
|
184
188
|
case "label":
|
|
185
189
|
return props.backgroundType && props.backgroundType === "dark" ? props.theme.fontColorOnDark : props.theme.fontColor;
|
|
186
|
-
break;
|
|
187
190
|
}
|
|
188
191
|
};
|
|
189
192
|
|
|
190
|
-
var LabelContainer = _styledComponents["default"].span(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n
|
|
193
|
+
var LabelContainer = _styledComponents["default"].span(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n cursor: ", ";\n"])), function (props) {
|
|
191
194
|
return props.disabled ? getDisabledColor(props, "label") : getNotDisabledColor(props, "label");
|
|
192
|
-
}, function (props) {
|
|
193
|
-
return props.disabled ? "not-allowed" : "pointer";
|
|
194
195
|
}, function (props) {
|
|
195
196
|
return props.theme.fontFamily;
|
|
196
197
|
}, function (props) {
|
|
197
198
|
return props.theme.fontSize;
|
|
198
199
|
}, function (props) {
|
|
199
200
|
return props.theme.fontWeight;
|
|
201
|
+
}, function (props) {
|
|
202
|
+
return props.disabled ? "not-allowed" : "pointer";
|
|
200
203
|
});
|
|
201
204
|
|
|
202
|
-
var CheckboxContainer = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n width: ", ";\n display: inline-flex;\n align-items: center;\n cursor: ", ";\n position: relative;\n
|
|
205
|
+
var CheckboxContainer = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n width: ", ";\n display: inline-flex;\n align-items: center;\n cursor: ", ";\n position: relative;\n .MuiCheckbox-colorSecondary {\n .MuiIconButton-label {\n & > .MuiSvgIcon-root {\n color: ", ";\n }\n }\n &.Mui-disabled {\n .MuiIconButton-label {\n & > .MuiSvgIcon-root {\n color: ", ";\n opacity: 0.34;\n }\n }\n }\n &.Mui-checked {\n .MuiIconButton-label {\n & > .MuiSvgIcon-root {\n color: ", ";\n }\n }\n\n &:hover {\n background-color: transparent;\n .MuiIconButton-label {\n & > .MuiSvgIcon-root {\n background-color: transparent;\n color: ", ";\n }\n }\n }\n }\n .MuiIconButton-label {\n & > .MuiSvgIcon-root {\n width: 24px;\n height: 24px;\n }\n }\n }\n\n .MuiIconButton-colorSecondary {\n &:hover {\n background-color: transparent;\n }\n }\n .MuiButtonBase-root {\n &:hover {\n .MuiIconButton-label {\n & > .MuiSvgIcon-root {\n color: ", ";\n }\n }\n }\n\n &.Mui-focusVisible {\n .MuiIconButton-label {\n border-radius: 2px;\n outline: 2px solid\n ", ";\n outline-offset: -1px;\n }\n }\n z-index: 1;\n margin-left: ", ";\n margin-right: ", ";\n padding: 0px;\n left: ", ";\n right: ", ";\n }\n"])), function (props) {
|
|
203
206
|
return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
|
|
204
207
|
}, function (props) {
|
|
205
208
|
return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
|
|
@@ -213,8 +216,6 @@ var CheckboxContainer = _styledComponents["default"].span(_templateObject2 || (_
|
|
|
213
216
|
return calculateWidth(props.margin, props.size);
|
|
214
217
|
}, function (props) {
|
|
215
218
|
return props.disabled ? "not-allowed" : "pointer";
|
|
216
|
-
}, function (props) {
|
|
217
|
-
return props.labelPosition === "before" ? "row-reverse" : "row";
|
|
218
219
|
}, function (props) {
|
|
219
220
|
return props.isLabelHovered ? props.backgroundType === "dark" ? props.theme.hoverBorderColorOnDark : props.theme.hoverBorderColor : getNotDisabledColor(props, "border");
|
|
220
221
|
}, function (props) {
|
|
@@ -4,7 +4,7 @@ import { BackgroundColorProvider } from "../BackgroundColorContext";
|
|
|
4
4
|
import Title from "../../.storybook/components/Title";
|
|
5
5
|
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
6
6
|
import DarkContainer from "../../.storybook/components/DarkSection";
|
|
7
|
-
import { userEvent
|
|
7
|
+
import { userEvent } from "@storybook/testing-library";
|
|
8
8
|
|
|
9
9
|
export default {
|
|
10
10
|
title: "Checkbox",
|
|
@@ -13,128 +13,124 @@ export default {
|
|
|
13
13
|
|
|
14
14
|
const Checkbox = () => (
|
|
15
15
|
<>
|
|
16
|
-
|
|
17
|
-
<
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
<
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
<
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
<
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
<
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
<
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
<
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
<
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
<
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
<
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
<
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
<
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
<
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
<
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
<
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
</ExampleContainer>
|
|
77
|
-
</>
|
|
16
|
+
<ExampleContainer>
|
|
17
|
+
<Title title="Default" theme="light" level={4} />
|
|
18
|
+
<DxcCheckbox label="Checkbox" />
|
|
19
|
+
</ExampleContainer>
|
|
20
|
+
<ExampleContainer>
|
|
21
|
+
<Title title="Focused" theme="light" level={4} />
|
|
22
|
+
<DxcCheckbox label="Focused" />
|
|
23
|
+
</ExampleContainer>
|
|
24
|
+
<ExampleContainer>
|
|
25
|
+
<Title title="Checked" theme="light" level={4} />
|
|
26
|
+
<DxcCheckbox label="Checkbox" defaultChecked />
|
|
27
|
+
</ExampleContainer>
|
|
28
|
+
<ExampleContainer>
|
|
29
|
+
<Title title="Optional" theme="light" level={4} />
|
|
30
|
+
<DxcCheckbox label="Checkbox" optional />
|
|
31
|
+
</ExampleContainer>
|
|
32
|
+
<ExampleContainer>
|
|
33
|
+
<Title title="Disabled and checked" theme="light" level={4} />
|
|
34
|
+
<DxcCheckbox label="Checkbox" disabled defaultChecked />
|
|
35
|
+
</ExampleContainer>
|
|
36
|
+
<ExampleContainer>
|
|
37
|
+
<Title title="Disabled and optional" theme="light" level={4} />
|
|
38
|
+
<DxcCheckbox label="Checkbox" disabled optional />
|
|
39
|
+
</ExampleContainer>
|
|
40
|
+
<ExampleContainer>
|
|
41
|
+
<Title title="Disabled, optional and checked" theme="light" level={4} />
|
|
42
|
+
<DxcCheckbox label="Checkbox" disabled optional defaultChecked />
|
|
43
|
+
</ExampleContainer>
|
|
44
|
+
<ExampleContainer>
|
|
45
|
+
<Title title="Label after" theme="light" level={4} />
|
|
46
|
+
<DxcCheckbox label="Checkbox" labelPosition="after" />
|
|
47
|
+
</ExampleContainer>
|
|
48
|
+
<ExampleContainer>
|
|
49
|
+
<Title title="Checked with label after" theme="light" level={4} />
|
|
50
|
+
<DxcCheckbox label="Checkbox" defaultChecked labelPosition="after" />
|
|
51
|
+
</ExampleContainer>
|
|
52
|
+
<ExampleContainer>
|
|
53
|
+
<Title title="Optional with label after" theme="light" level={4} />
|
|
54
|
+
<DxcCheckbox label="Checkbox" optional labelPosition="after" />
|
|
55
|
+
</ExampleContainer>
|
|
56
|
+
<ExampleContainer>
|
|
57
|
+
<Title title="Disabled and checked with label after" theme="light" level={4} />
|
|
58
|
+
<DxcCheckbox label="Checkbox" disabled defaultChecked labelPosition="after" />
|
|
59
|
+
</ExampleContainer>
|
|
60
|
+
<ExampleContainer>
|
|
61
|
+
<Title title="Disabled and optional with label after" theme="light" level={4} />
|
|
62
|
+
<DxcCheckbox label="Checkbox" disabled optional labelPosition="after" />
|
|
63
|
+
</ExampleContainer>
|
|
64
|
+
<ExampleContainer>
|
|
65
|
+
<Title title="Disabled, optional and checked with label after" theme="light" level={4} />
|
|
66
|
+
<DxcCheckbox label="Checkbox" disabled optional defaultChecked labelPosition="after" />
|
|
67
|
+
</ExampleContainer>
|
|
68
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
69
|
+
<Title title="Hovered" theme="light" level={4} />
|
|
70
|
+
<DxcCheckbox label="Hovered" />
|
|
71
|
+
</ExampleContainer>
|
|
72
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
73
|
+
<Title title="Hovered and checked" theme="light" level={4} />
|
|
74
|
+
<DxcCheckbox label="Hovered" defaultChecked />
|
|
75
|
+
</ExampleContainer>
|
|
78
76
|
<BackgroundColorProvider color="#333333">
|
|
79
77
|
<DarkContainer>
|
|
80
|
-
|
|
81
|
-
<
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
<
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
<
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
<
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
<
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
<
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
<
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
<
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
<
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
<
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
<
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
<
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
<
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
<
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
</ExampleContainer>
|
|
137
|
-
</>
|
|
78
|
+
<ExampleContainer>
|
|
79
|
+
<Title title="Default" theme="dark" level={4} />
|
|
80
|
+
<DxcCheckbox label="Checkbox" />
|
|
81
|
+
</ExampleContainer>
|
|
82
|
+
<ExampleContainer>
|
|
83
|
+
<Title title="Checked" theme="dark" level={4} />
|
|
84
|
+
<DxcCheckbox label="Checkbox" defaultChecked />
|
|
85
|
+
</ExampleContainer>
|
|
86
|
+
<ExampleContainer>
|
|
87
|
+
<Title title="Optional" theme="dark" level={4} />
|
|
88
|
+
<DxcCheckbox label="Checkbox" optional />
|
|
89
|
+
</ExampleContainer>
|
|
90
|
+
<ExampleContainer>
|
|
91
|
+
<Title title="Disabled and checked" theme="dark" level={4} />
|
|
92
|
+
<DxcCheckbox label="Checkbox" disabled defaultChecked />
|
|
93
|
+
</ExampleContainer>
|
|
94
|
+
<ExampleContainer>
|
|
95
|
+
<Title title="Disabled and optional" theme="dark" level={4} />
|
|
96
|
+
<DxcCheckbox label="Checkbox" disabled optional />
|
|
97
|
+
</ExampleContainer>
|
|
98
|
+
<ExampleContainer>
|
|
99
|
+
<Title title="Disabled, optional and checked" theme="dark" level={4} />
|
|
100
|
+
<DxcCheckbox label="Checkbox" disabled optional defaultChecked />
|
|
101
|
+
</ExampleContainer>
|
|
102
|
+
<ExampleContainer>
|
|
103
|
+
<Title title="Label after" theme="dark" level={4} />
|
|
104
|
+
<DxcCheckbox label="Checkbox" labelPosition="after" />
|
|
105
|
+
</ExampleContainer>
|
|
106
|
+
<ExampleContainer>
|
|
107
|
+
<Title title="Checked with label after" theme="dark" level={4} />
|
|
108
|
+
<DxcCheckbox label="Checkbox" defaultChecked labelPosition="after" />
|
|
109
|
+
</ExampleContainer>
|
|
110
|
+
<ExampleContainer>
|
|
111
|
+
<Title title="Optional with label after" theme="dark" level={4} />
|
|
112
|
+
<DxcCheckbox label="Checkbox" optional labelPosition="after" />
|
|
113
|
+
</ExampleContainer>
|
|
114
|
+
<ExampleContainer>
|
|
115
|
+
<Title title="Disabled and checked with label after" theme="dark" level={4} />
|
|
116
|
+
<DxcCheckbox label="Checkbox" disabled defaultChecked labelPosition="after" />
|
|
117
|
+
</ExampleContainer>
|
|
118
|
+
<ExampleContainer>
|
|
119
|
+
<Title title="Disabled and optional with label after" theme="dark" level={4} />
|
|
120
|
+
<DxcCheckbox label="Checkbox" disabled optional labelPosition="after" />
|
|
121
|
+
</ExampleContainer>
|
|
122
|
+
<ExampleContainer>
|
|
123
|
+
<Title title="Disabled, optional and checked with label after" theme="dark" level={4} />
|
|
124
|
+
<DxcCheckbox label="Checkbox" disabled optional defaultChecked labelPosition="after" />
|
|
125
|
+
</ExampleContainer>
|
|
126
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
127
|
+
<Title title="Hovered" theme="dark" level={4} />
|
|
128
|
+
<DxcCheckbox label="Hovered" />
|
|
129
|
+
</ExampleContainer>
|
|
130
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
131
|
+
<Title title="Hovered and checked" theme="dark" level={4} />
|
|
132
|
+
<DxcCheckbox label="Hovered" defaultChecked />
|
|
133
|
+
</ExampleContainer>
|
|
138
134
|
</DarkContainer>
|
|
139
135
|
</BackgroundColorProvider>
|
|
140
136
|
<Title title="Sizes" theme="light" level={2} />
|
|
@@ -156,31 +152,31 @@ const Checkbox = () => (
|
|
|
156
152
|
<Title title="Margins" theme="light" level={2} />
|
|
157
153
|
<ExampleContainer>
|
|
158
154
|
<Title title="Xxsmall" theme="light" level={4} />
|
|
159
|
-
<DxcCheckbox label="Xxsmall" margin=
|
|
155
|
+
<DxcCheckbox label="Xxsmall" margin="xxsmall" />
|
|
160
156
|
</ExampleContainer>
|
|
161
157
|
<ExampleContainer>
|
|
162
158
|
<Title title="Xsmall" theme="light" level={4} />
|
|
163
|
-
<DxcCheckbox label="Xsmall" margin=
|
|
159
|
+
<DxcCheckbox label="Xsmall" margin="xsmall" />
|
|
164
160
|
</ExampleContainer>
|
|
165
161
|
<ExampleContainer>
|
|
166
162
|
<Title title="Small" theme="light" level={4} />
|
|
167
|
-
<DxcCheckbox label="Small" margin=
|
|
163
|
+
<DxcCheckbox label="Small" margin="small" />
|
|
168
164
|
</ExampleContainer>
|
|
169
165
|
<ExampleContainer>
|
|
170
166
|
<Title title="Medium" theme="light" level={4} />
|
|
171
|
-
<DxcCheckbox label="Medium" margin=
|
|
167
|
+
<DxcCheckbox label="Medium" margin="medium" />
|
|
172
168
|
</ExampleContainer>
|
|
173
169
|
<ExampleContainer>
|
|
174
170
|
<Title title="Large" theme="light" level={4} />
|
|
175
|
-
<DxcCheckbox label="Large" margin=
|
|
171
|
+
<DxcCheckbox label="Large" margin="large" />
|
|
176
172
|
</ExampleContainer>
|
|
177
173
|
<ExampleContainer>
|
|
178
174
|
<Title title="Xlarge" theme="light" level={4} />
|
|
179
|
-
<DxcCheckbox label="Xlarge" margin=
|
|
175
|
+
<DxcCheckbox label="Xlarge" margin="xlarge" />
|
|
180
176
|
</ExampleContainer>
|
|
181
177
|
<ExampleContainer>
|
|
182
178
|
<Title title="Xxlarge" theme="light" level={4} />
|
|
183
|
-
<DxcCheckbox label="Xxlarge" margin=
|
|
179
|
+
<DxcCheckbox label="Xxlarge" margin="xxlarge" />
|
|
184
180
|
</ExampleContainer>
|
|
185
181
|
</>
|
|
186
182
|
);
|
|
@@ -62,4 +62,17 @@ describe("Checkbox component tests", function () {
|
|
|
62
62
|
expect(onChange).toHaveBeenCalledWith(true);
|
|
63
63
|
expect(input.checked).toBe(false);
|
|
64
64
|
});
|
|
65
|
+
test("Renders with correct initial value and initial state when it is uncontrolled", function () {
|
|
66
|
+
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
|
|
67
|
+
label: "Default label",
|
|
68
|
+
defaultChecked: true,
|
|
69
|
+
value: "test-defaultChecked"
|
|
70
|
+
})),
|
|
71
|
+
getByRole = _render3.getByRole;
|
|
72
|
+
|
|
73
|
+
var input = getByRole("checkbox");
|
|
74
|
+
expect(input.checked).toBe(true);
|
|
75
|
+
expect(input.value).toBe("test-defaultChecked");
|
|
76
|
+
expect(input.getAttribute("aria-checked")).toBe("true");
|
|
77
|
+
});
|
|
65
78
|
});
|