@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.
Files changed (97) hide show
  1. package/HalstackContext.d.ts +10 -0
  2. package/{ThemeContext.js → HalstackContext.js} +6 -6
  3. package/accordion/Accordion.d.ts +1 -1
  4. package/accordion/Accordion.js +7 -28
  5. package/accordion/Accordion.stories.tsx +11 -11
  6. package/accordion/Accordion.test.js +19 -4
  7. package/accordion/types.d.ts +4 -0
  8. package/accordion-group/AccordionGroup.d.ts +1 -1
  9. package/accordion-group/AccordionGroup.js +13 -15
  10. package/accordion-group/AccordionGroup.stories.tsx +1 -1
  11. package/accordion-group/AccordionGroup.test.js +24 -6
  12. package/accordion-group/types.d.ts +4 -0
  13. package/bleed/types.d.ts +24 -0
  14. package/button/Button.js +14 -11
  15. package/card/Card.js +27 -28
  16. package/checkbox/Checkbox.d.ts +1 -1
  17. package/checkbox/Checkbox.js +40 -39
  18. package/checkbox/Checkbox.stories.tsx +124 -128
  19. package/checkbox/Checkbox.test.js +13 -0
  20. package/checkbox/types.d.ts +7 -3
  21. package/common/variables.js +6 -7
  22. package/date-input/DateInput.js +50 -39
  23. package/date-input/DateInput.stories.tsx +7 -7
  24. package/date-input/DateInput.test.js +69 -59
  25. package/date-input/types.d.ts +16 -9
  26. package/dialog/Dialog.js +4 -32
  27. package/dropdown/Dropdown.js +13 -17
  28. package/footer/Footer.js +10 -85
  29. package/header/Header.js +20 -44
  30. package/header/Header.stories.tsx +46 -36
  31. package/header/Header.test.js +18 -2
  32. package/inset/types.d.ts +24 -0
  33. package/layout/ApplicationLayout.js +5 -18
  34. package/link/Link.d.ts +3 -2
  35. package/link/Link.js +65 -56
  36. package/link/Link.stories.tsx +87 -52
  37. package/link/Link.test.js +7 -15
  38. package/link/types.d.ts +8 -23
  39. package/main.d.ts +3 -2
  40. package/main.js +13 -5
  41. package/number-input/NumberInput.js +11 -18
  42. package/number-input/NumberInput.stories.tsx +5 -5
  43. package/number-input/NumberInput.test.js +2 -4
  44. package/number-input/types.d.ts +16 -9
  45. package/package.json +6 -5
  46. package/password-input/PasswordInput.test.js +2 -4
  47. package/password-input/types.d.ts +13 -10
  48. package/quick-nav/QuickNav.d.ts +4 -0
  49. package/quick-nav/QuickNav.js +64 -0
  50. package/quick-nav/QuickNav.stories.tsx +237 -0
  51. package/quick-nav/types.d.ts +21 -0
  52. package/quick-nav/types.js +5 -0
  53. package/radio/Radio.js +10 -11
  54. package/row/types.d.ts +18 -0
  55. package/select/Listbox.d.ts +4 -0
  56. package/select/Listbox.js +148 -0
  57. package/select/Option.js +1 -1
  58. package/select/Select.js +71 -156
  59. package/select/Select.stories.tsx +19 -19
  60. package/select/Select.test.js +405 -248
  61. package/select/types.d.ts +42 -12
  62. package/slider/Slider.d.ts +1 -1
  63. package/slider/Slider.js +2 -1
  64. package/slider/Slider.stories.tsx +8 -8
  65. package/slider/Slider.test.js +31 -10
  66. package/slider/types.d.ts +4 -0
  67. package/stack/types.d.ts +15 -0
  68. package/switch/Switch.d.ts +1 -1
  69. package/switch/Switch.js +32 -19
  70. package/switch/Switch.stories.tsx +14 -14
  71. package/switch/Switch.test.js +25 -0
  72. package/switch/types.d.ts +6 -2
  73. package/tabs/Tabs.d.ts +1 -1
  74. package/tabs/Tabs.js +9 -11
  75. package/tabs/Tabs.stories.tsx +0 -8
  76. package/tabs/Tabs.test.js +26 -9
  77. package/tabs/types.d.ts +4 -0
  78. package/tag/Tag.js +14 -19
  79. package/tag/Tag.stories.tsx +12 -8
  80. package/text-input/TextInput.js +2 -4
  81. package/text-input/TextInput.test.js +21 -34
  82. package/text-input/types.d.ts +13 -10
  83. package/textarea/Textarea.js +2 -4
  84. package/textarea/Textarea.test.js +10 -20
  85. package/textarea/types.d.ts +13 -10
  86. package/toggle-group/ToggleGroup.d.ts +1 -1
  87. package/toggle-group/ToggleGroup.js +5 -4
  88. package/toggle-group/ToggleGroup.stories.tsx +4 -4
  89. package/toggle-group/ToggleGroup.test.js +35 -4
  90. package/toggle-group/types.d.ts +8 -0
  91. package/useTheme.js +2 -2
  92. package/wizard/Wizard.d.ts +1 -1
  93. package/wizard/Wizard.js +28 -19
  94. package/wizard/Wizard.stories.tsx +13 -23
  95. package/wizard/Wizard.test.js +36 -23
  96. package/wizard/types.d.ts +6 -2
  97. 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(ImageContainer, {
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 flex-direction: ", ";\n height: ", ";\n width: ", ";\n &:hover {\n border-color: ", ";\n }\n"])), function (_ref9) {
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 (_ref10) {
124
- var hasAction = _ref10.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 (_ref11) {
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 imagePadding = _ref12.imagePadding;
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 (_ref14) {
142
- var imageBgColor = _ref14.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 (_ref15) {
147
- var contentPadding = _ref15.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.top ? _variables.spaces[contentPadding.top] : "";
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.right ? _variables.spaces[contentPadding.right] : "";
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
 
@@ -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, onChange, required, margin, size, tabIndex, }: CheckboxPropsType) => JSX.Element;
3
+ declare const DxcCheckbox: ({ checked, defaultChecked, value, label, labelPosition, name, disabled, optional, onChange, margin, size, tabIndex, }: CheckboxPropsType) => JSX.Element;
4
4
  export default DxcCheckbox;
@@ -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)(false),
61
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
62
- innerChecked = _useState2[0],
63
- setInnerChecked = _useState2[1];
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)(false),
68
+ var _useState3 = (0, _react.useState)(defaultChecked),
66
69
  _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
67
- isLabelHovered = _useState4[0],
68
- setIsLabelHovered = _useState4[1];
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 != undefined ? checked : innerChecked,
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-label": label,
127
+ "aria-labelledby": labelId,
109
128
  role: "checkbox",
110
- "aria-checked": checked != undefined ? checked : innerChecked
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 != undefined ? checked : innerChecked,
140
+ checked: checked !== null && checked !== void 0 ? checked : innerChecked,
122
141
  backgroundType: backgroundType
123
- }), required && /*#__PURE__*/_react["default"].createElement(_RequiredComponent["default"], null), label && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
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 cursor: ", ";\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n"])), function (props) {
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 flex-direction: ", ";\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 box-shadow: 0 0 0 2px\n ", ";\n }\n }\n z-index: 1;\n margin-left: ", ";\n margin-right: ", ";\n padding: 0px;\n left: ", ";\n right: ", ";\n }\n"])), function (props) {
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, within } from "@storybook/testing-library";
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
- <ExampleContainer>
18
- <Title title="Default" theme="light" level={4} />
19
- <DxcCheckbox label="Checkbox" />
20
- </ExampleContainer>
21
- <ExampleContainer>
22
- <Title title="Focused" theme="light" level={4} />
23
- <DxcCheckbox label="Focused" />
24
- </ExampleContainer>
25
- <ExampleContainer>
26
- <Title title="Checked" theme="light" level={4} />
27
- <DxcCheckbox label="Checkbox" checked />
28
- </ExampleContainer>
29
- <ExampleContainer>
30
- <Title title="Required" theme="light" level={4} />
31
- <DxcCheckbox label="Checkbox" required />
32
- </ExampleContainer>
33
- <ExampleContainer>
34
- <Title title="Disabled and checked" theme="light" level={4} />
35
- <DxcCheckbox label="Checkbox" disabled checked />
36
- </ExampleContainer>
37
- <ExampleContainer>
38
- <Title title="Disabled and required" theme="light" level={4} />
39
- <DxcCheckbox label="Checkbox" disabled required />
40
- </ExampleContainer>
41
- <ExampleContainer>
42
- <Title title="Disabled, required and checked" theme="light" level={4} />
43
- <DxcCheckbox label="Checkbox" disabled required checked />
44
- </ExampleContainer>
45
- <ExampleContainer>
46
- <Title title="Label after" theme="light" level={4} />
47
- <DxcCheckbox label="Checkbox" labelPosition="after" />
48
- </ExampleContainer>
49
- <ExampleContainer>
50
- <Title title="Checked with label after" theme="light" level={4} />
51
- <DxcCheckbox label="Checkbox" checked labelPosition="after" />
52
- </ExampleContainer>
53
- <ExampleContainer>
54
- <Title title="Required with label after" theme="light" level={4} />
55
- <DxcCheckbox label="Checkbox" required labelPosition="after" />
56
- </ExampleContainer>
57
- <ExampleContainer>
58
- <Title title="Disabled and checked with label after" theme="light" level={4} />
59
- <DxcCheckbox label="Checkbox" disabled checked labelPosition="after" />
60
- </ExampleContainer>
61
- <ExampleContainer>
62
- <Title title="Disabled and required with label after" theme="light" level={4} />
63
- <DxcCheckbox label="Checkbox" disabled required labelPosition="after" />
64
- </ExampleContainer>
65
- <ExampleContainer>
66
- <Title title="Disabled, required and checked with label after" theme="light" level={4} />
67
- <DxcCheckbox label="Checkbox" disabled required checked labelPosition="after" />
68
- </ExampleContainer>
69
- <ExampleContainer pseudoState="pseudo-hover">
70
- <Title title="Hovered" theme="light" level={4} />
71
- <DxcCheckbox label="Hovered" />
72
- </ExampleContainer>
73
- <ExampleContainer pseudoState="pseudo-hover">
74
- <Title title="Hovered and checked" theme="light" level={4} />
75
- <DxcCheckbox label="Hovered" checked />
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
- <ExampleContainer>
82
- <Title title="Default" theme="dark" level={4} />
83
- <DxcCheckbox label="Checkbox" />
84
- </ExampleContainer>
85
- <ExampleContainer>
86
- <Title title="Checked" theme="dark" level={4} />
87
- <DxcCheckbox label="Checkbox" checked />
88
- </ExampleContainer>
89
- <ExampleContainer>
90
- <Title title="Required" theme="dark" level={4} />
91
- <DxcCheckbox label="Checkbox" required />
92
- </ExampleContainer>
93
- <ExampleContainer>
94
- <Title title="Disabled and checked" theme="dark" level={4} />
95
- <DxcCheckbox label="Checkbox" disabled checked />
96
- </ExampleContainer>
97
- <ExampleContainer>
98
- <Title title="Disabled and required" theme="dark" level={4} />
99
- <DxcCheckbox label="Checkbox" disabled required />
100
- </ExampleContainer>
101
- <ExampleContainer>
102
- <Title title="Disabled, required and checked" theme="dark" level={4} />
103
- <DxcCheckbox label="Checkbox" disabled required checked />
104
- </ExampleContainer>
105
- <ExampleContainer>
106
- <Title title="Label after" theme="dark" level={4} />
107
- <DxcCheckbox label="Checkbox" labelPosition="after" />
108
- </ExampleContainer>
109
- <ExampleContainer>
110
- <Title title="Checked with label after" theme="dark" level={4} />
111
- <DxcCheckbox label="Checkbox" checked labelPosition="after" />
112
- </ExampleContainer>
113
- <ExampleContainer>
114
- <Title title="Required with label after" theme="dark" level={4} />
115
- <DxcCheckbox label="Checkbox" required labelPosition="after" />
116
- </ExampleContainer>
117
- <ExampleContainer>
118
- <Title title="Disabled and checked with label after" theme="dark" level={4} />
119
- <DxcCheckbox label="Checkbox" disabled checked labelPosition="after" />
120
- </ExampleContainer>
121
- <ExampleContainer>
122
- <Title title="Disabled and required with label after" theme="dark" level={4} />
123
- <DxcCheckbox label="Checkbox" disabled required labelPosition="after" />
124
- </ExampleContainer>
125
- <ExampleContainer>
126
- <Title title="Disabled, required and checked with label after" theme="dark" level={4} />
127
- <DxcCheckbox label="Checkbox" disabled required checked labelPosition="after" />
128
- </ExampleContainer>
129
- <ExampleContainer pseudoState="pseudo-hover">
130
- <Title title="Hovered" theme="dark" level={4} />
131
- <DxcCheckbox label="Hovered" />
132
- </ExampleContainer>
133
- <ExampleContainer pseudoState="pseudo-hover">
134
- <Title title="Hovered and checked" theme="dark" level={4} />
135
- <DxcCheckbox label="Hovered" checked />
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={"xxsmall"} />
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={"xsmall"} />
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={"small"} />
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={"medium"} />
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={"large"} />
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={"xlarge"} />
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={"xxlarge"} />
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
  });