@dxc-technology/halstack-react 0.0.0-6c89958 → 0.0.0-6c8ea9f

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 (223) hide show
  1. package/BackgroundColorContext.js +0 -1
  2. package/HalstackContext.d.ts +12 -0
  3. package/HalstackContext.js +298 -0
  4. package/accordion/Accordion.d.ts +1 -1
  5. package/accordion/Accordion.js +13 -45
  6. package/accordion/Accordion.stories.tsx +307 -0
  7. package/accordion/Accordion.test.js +72 -0
  8. package/accordion/types.d.ts +8 -8
  9. package/accordion-group/AccordionGroup.d.ts +1 -1
  10. package/accordion-group/AccordionGroup.js +13 -15
  11. package/accordion-group/AccordionGroup.stories.tsx +1 -1
  12. package/accordion-group/AccordionGroup.test.js +151 -0
  13. package/accordion-group/types.d.ts +8 -8
  14. package/alert/Alert.js +4 -1
  15. package/alert/Alert.test.js +92 -0
  16. package/badge/Badge.d.ts +4 -0
  17. package/badge/types.d.ts +4 -0
  18. package/badge/types.js +5 -0
  19. package/bleed/Bleed.d.ts +3 -0
  20. package/bleed/Bleed.js +84 -0
  21. package/bleed/Bleed.stories.tsx +342 -0
  22. package/bleed/types.d.ts +37 -0
  23. package/bleed/types.js +5 -0
  24. package/box/Box.test.js +18 -0
  25. package/button/Button.d.ts +1 -1
  26. package/button/Button.js +19 -24
  27. package/button/Button.stories.tsx +6 -8
  28. package/button/Button.test.js +35 -0
  29. package/button/types.d.ts +3 -7
  30. package/card/Card.js +27 -28
  31. package/card/Card.stories.tsx +1 -1
  32. package/card/Card.test.js +50 -0
  33. package/checkbox/Checkbox.d.ts +1 -1
  34. package/checkbox/Checkbox.js +43 -39
  35. package/checkbox/Checkbox.stories.tsx +124 -128
  36. package/checkbox/Checkbox.test.js +78 -0
  37. package/checkbox/types.d.ts +8 -4
  38. package/chip/Chip.d.ts +1 -1
  39. package/chip/Chip.js +16 -54
  40. package/chip/Chip.stories.tsx +6 -8
  41. package/chip/Chip.test.js +56 -0
  42. package/chip/types.d.ts +7 -15
  43. package/common/variables.js +233 -325
  44. package/date-input/DateInput.js +59 -45
  45. package/date-input/DateInput.stories.tsx +7 -7
  46. package/date-input/DateInput.test.js +479 -0
  47. package/date-input/types.d.ts +16 -9
  48. package/dialog/Dialog.js +6 -33
  49. package/dialog/Dialog.test.js +40 -0
  50. package/dropdown/Dropdown.d.ts +1 -1
  51. package/dropdown/Dropdown.js +21 -47
  52. package/dropdown/Dropdown.stories.tsx +249 -0
  53. package/dropdown/Dropdown.test.js +189 -0
  54. package/dropdown/types.d.ts +5 -14
  55. package/file-input/FileInput.js +111 -39
  56. package/file-input/FileInput.stories.tsx +507 -0
  57. package/file-input/FileInput.test.js +457 -0
  58. package/file-input/FileItem.js +7 -5
  59. package/footer/Footer.js +28 -109
  60. package/footer/Footer.stories.tsx +1 -22
  61. package/footer/Footer.test.js +109 -0
  62. package/footer/Icons.d.ts +2 -0
  63. package/footer/Icons.js +3 -3
  64. package/footer/types.d.ts +1 -1
  65. package/header/Header.js +27 -48
  66. package/header/Header.stories.tsx +46 -36
  67. package/header/Header.test.js +79 -0
  68. package/header/Icons.d.ts +2 -0
  69. package/heading/Heading.stories.tsx +3 -2
  70. package/heading/Heading.test.js +186 -0
  71. package/inset/Inset.d.ts +3 -0
  72. package/inset/Inset.js +84 -0
  73. package/inset/Inset.stories.tsx +229 -0
  74. package/inset/types.d.ts +37 -0
  75. package/inset/types.js +5 -0
  76. package/layout/ApplicationLayout.js +7 -14
  77. package/link/Link.d.ts +3 -2
  78. package/link/Link.js +70 -69
  79. package/link/Link.stories.tsx +91 -51
  80. package/link/Link.test.js +83 -0
  81. package/link/types.d.ts +10 -29
  82. package/list/List.d.ts +3 -6
  83. package/list/List.js +17 -7
  84. package/list/List.stories.tsx +25 -0
  85. package/list/types.d.ts +7 -0
  86. package/list/types.js +5 -0
  87. package/main.d.ts +6 -7
  88. package/main.js +35 -37
  89. package/number-input/NumberInput.js +11 -18
  90. package/number-input/NumberInput.stories.tsx +5 -5
  91. package/number-input/NumberInput.test.js +506 -0
  92. package/number-input/types.d.ts +17 -10
  93. package/package.json +9 -6
  94. package/paginator/Paginator.js +17 -38
  95. package/paginator/Paginator.test.js +266 -0
  96. package/password-input/PasswordInput.js +7 -4
  97. package/password-input/PasswordInput.stories.tsx +3 -3
  98. package/password-input/PasswordInput.test.js +180 -0
  99. package/password-input/types.d.ts +14 -11
  100. package/progress-bar/ProgressBar.js +2 -2
  101. package/progress-bar/ProgressBar.test.js +65 -0
  102. package/quick-nav/QuickNav.d.ts +4 -0
  103. package/quick-nav/QuickNav.js +110 -0
  104. package/quick-nav/QuickNav.stories.tsx +237 -0
  105. package/quick-nav/types.d.ts +21 -0
  106. package/quick-nav/types.js +5 -0
  107. package/radio/Radio.js +10 -11
  108. package/radio/Radio.test.js +71 -0
  109. package/radio-group/Radio.d.ts +4 -0
  110. package/radio-group/Radio.js +141 -0
  111. package/radio-group/RadioGroup.d.ts +4 -0
  112. package/radio-group/RadioGroup.js +282 -0
  113. package/radio-group/RadioGroup.stories.tsx +100 -0
  114. package/radio-group/RadioGroup.test.js +695 -0
  115. package/radio-group/types.d.ts +114 -0
  116. package/radio-group/types.js +5 -0
  117. package/resultsetTable/ResultsetTable.js +5 -2
  118. package/resultsetTable/ResultsetTable.stories.tsx +275 -0
  119. package/resultsetTable/ResultsetTable.test.js +306 -0
  120. package/resultsetTable/types.d.ts +1 -1
  121. package/row/Row.d.ts +3 -11
  122. package/row/Row.js +12 -9
  123. package/row/Row.stories.tsx +20 -6
  124. package/row/types.d.ts +28 -0
  125. package/row/types.js +5 -0
  126. package/select/Icons.d.ts +10 -0
  127. package/select/Icons.js +93 -0
  128. package/select/Listbox.d.ts +4 -0
  129. package/select/Listbox.js +152 -0
  130. package/select/Option.d.ts +4 -0
  131. package/select/Option.js +110 -0
  132. package/select/Select.d.ts +4 -0
  133. package/select/Select.js +98 -307
  134. package/select/Select.stories.tsx +103 -81
  135. package/select/Select.test.js +2057 -0
  136. package/select/types.d.ts +213 -0
  137. package/select/types.js +5 -0
  138. package/sidenav/Sidenav.stories.tsx +18 -1
  139. package/sidenav/Sidenav.test.js +56 -0
  140. package/slider/Slider.d.ts +1 -1
  141. package/slider/Slider.js +2 -1
  142. package/slider/Slider.stories.tsx +8 -8
  143. package/slider/Slider.test.js +150 -0
  144. package/slider/types.d.ts +4 -0
  145. package/spinner/Spinner.js +1 -1
  146. package/spinner/Spinner.stories.jsx +1 -0
  147. package/spinner/Spinner.test.js +64 -0
  148. package/stack/Stack.d.ts +3 -10
  149. package/stack/Stack.js +12 -9
  150. package/stack/Stack.stories.tsx +20 -6
  151. package/stack/types.d.ts +24 -0
  152. package/stack/types.js +5 -0
  153. package/switch/Switch.d.ts +1 -1
  154. package/switch/Switch.js +35 -19
  155. package/switch/Switch.stories.tsx +15 -15
  156. package/switch/Switch.test.js +98 -0
  157. package/switch/types.d.ts +6 -2
  158. package/table/Table.stories.jsx +2 -1
  159. package/table/Table.test.js +26 -0
  160. package/tabs/Tabs.d.ts +1 -1
  161. package/tabs/Tabs.js +16 -18
  162. package/tabs/Tabs.stories.tsx +7 -16
  163. package/tabs/Tabs.test.js +140 -0
  164. package/tabs/types.d.ts +27 -15
  165. package/tag/Tag.d.ts +1 -1
  166. package/tag/Tag.js +17 -27
  167. package/tag/Tag.stories.tsx +26 -29
  168. package/tag/Tag.test.js +60 -0
  169. package/tag/types.d.ts +23 -14
  170. package/text/Text.js +1 -1
  171. package/text-input/Suggestion.d.ts +4 -0
  172. package/text-input/Suggestion.js +55 -0
  173. package/text-input/TextInput.js +68 -84
  174. package/text-input/TextInput.stories.tsx +34 -16
  175. package/text-input/TextInput.test.js +1712 -0
  176. package/text-input/types.d.ts +32 -13
  177. package/textarea/Textarea.d.ts +4 -0
  178. package/textarea/Textarea.js +19 -56
  179. package/textarea/Textarea.stories.jsx +37 -15
  180. package/textarea/Textarea.test.js +437 -0
  181. package/textarea/types.d.ts +137 -0
  182. package/textarea/types.js +5 -0
  183. package/toggle-group/ToggleGroup.d.ts +1 -1
  184. package/toggle-group/ToggleGroup.js +12 -14
  185. package/toggle-group/ToggleGroup.stories.tsx +27 -32
  186. package/toggle-group/ToggleGroup.test.js +156 -0
  187. package/toggle-group/types.d.ts +46 -25
  188. package/useTheme.js +2 -2
  189. package/useTranslatedLabels.d.ts +2 -0
  190. package/useTranslatedLabels.js +20 -0
  191. package/wizard/Wizard.d.ts +1 -1
  192. package/wizard/Wizard.js +106 -45
  193. package/wizard/{Wizard.stories.jsx → Wizard.stories.tsx} +13 -23
  194. package/wizard/Wizard.test.js +141 -0
  195. package/wizard/types.d.ts +8 -8
  196. package/ThemeContext.d.ts +0 -15
  197. package/ThemeContext.js +0 -243
  198. package/V3Select/V3Select.js +0 -455
  199. package/V3Select/index.d.ts +0 -27
  200. package/V3Textarea/V3Textarea.js +0 -260
  201. package/V3Textarea/index.d.ts +0 -27
  202. package/date/Date.js +0 -373
  203. package/date/index.d.ts +0 -27
  204. package/input-text/Icons.js +0 -22
  205. package/input-text/InputText.js +0 -611
  206. package/input-text/index.d.ts +0 -36
  207. package/select/index.d.ts +0 -131
  208. package/textarea/index.d.ts +0 -127
  209. package/toggle/Toggle.js +0 -186
  210. package/toggle/index.d.ts +0 -21
  211. package/upload/Upload.js +0 -201
  212. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  213. package/upload/buttons-upload/Icons.js +0 -40
  214. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  215. package/upload/dragAndDropArea/Icons.js +0 -39
  216. package/upload/file-upload/FileToUpload.js +0 -115
  217. package/upload/file-upload/Icons.js +0 -66
  218. package/upload/files-upload/FilesToUpload.js +0 -109
  219. package/upload/index.d.ts +0 -15
  220. package/upload/transaction/Icons.js +0 -160
  221. package/upload/transaction/Transaction.js +0 -104
  222. package/upload/transactions/Transactions.js +0 -94
  223. package/wizard/Icons.js +0 -65
package/button/Button.js CHANGED
@@ -9,10 +9,10 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports["default"] = void 0;
11
11
 
12
- var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
-
14
12
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
15
13
 
14
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
+
16
16
  var _react = _interopRequireWildcard(require("react"));
17
17
 
18
18
  var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
@@ -45,16 +45,22 @@ var DxcButton = function DxcButton(_ref) {
45
45
  _ref$type = _ref.type,
46
46
  type = _ref$type === void 0 ? "button" : _ref$type,
47
47
  icon = _ref.icon,
48
- _ref$iconSrc = _ref.iconSrc,
49
- iconSrc = _ref$iconSrc === void 0 ? "" : _ref$iconSrc,
50
- _onClick = _ref.onClick,
48
+ _ref$onClick = _ref.onClick,
49
+ _onClick = _ref$onClick === void 0 ? function () {} : _ref$onClick,
51
50
  margin = _ref.margin,
52
51
  _ref$size = _ref.size,
53
52
  size = _ref$size === void 0 ? "fitContent" : _ref$size,
54
53
  _ref$tabIndex = _ref.tabIndex,
55
54
  tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
55
+
56
56
  var colorsTheme = (0, _useTheme["default"])();
57
57
  var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
58
+
59
+ var labelComponent = /*#__PURE__*/_react["default"].createElement(LabelContainer, {
60
+ icon: icon,
61
+ iconPosition: iconPosition
62
+ }, label);
63
+
58
64
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
59
65
  theme: colorsTheme.button
60
66
  }, /*#__PURE__*/_react["default"].createElement(DxCButton, {
@@ -75,17 +81,12 @@ var DxcButton = function DxcButton(_ref) {
75
81
  onClick: function onClick() {
76
82
  _onClick();
77
83
  }
78
- }, label && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
79
- icon: icon,
80
- iconPosition: iconPosition
81
- }, label), icon ? /*#__PURE__*/_react["default"].createElement(IconContainer, {
84
+ }, label && iconPosition === "after" && labelComponent, icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
82
85
  label: label,
83
86
  iconPosition: iconPosition
84
- }, (0, _typeof2["default"])(icon) === "object" ? icon : /*#__PURE__*/_react["default"].createElement(icon)) : iconSrc && /*#__PURE__*/_react["default"].createElement(ButtonIcon, {
85
- label: label,
86
- iconPosition: iconPosition,
87
- src: iconSrc
88
- }))));
87
+ }, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(ButtonIcon, {
88
+ src: icon
89
+ }) : icon), label && iconPosition === "before" && labelComponent)));
89
90
  };
90
91
 
91
92
  var sizes = {
@@ -120,13 +121,9 @@ var IconContainer = _styledComponents["default"].div(_templateObject2 || (_templ
120
121
  return !props.label ? "0px" : props.iconPosition === "before" && props.label !== "" && "8px" || "8px";
121
122
  });
122
123
 
123
- var ButtonIcon = _styledComponents["default"].img(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: 24px;\n max-width: 24px;\n margin-left: ", ";\n margin-right: ", ";\n"])), function (props) {
124
- return props.iconPosition === "after" && props.label !== "" && "10px" || "0px";
125
- }, function (props) {
126
- return props.iconPosition === "before" && props.label !== "" && "10px" || "0px";
127
- });
124
+ var ButtonIcon = _styledComponents["default"].img(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])([""])));
128
125
 
129
- var DxCButton = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n\n display: inline-block;\n width: ", ";\n cursor: ", ";\n\n .MuiButtonBase-root {\n padding-left: ", ";\n padding-right: ", ";\n padding-top: ", ";\n padding-bottom: ", ";\n\n .MuiButton-label {\n display: flex;\n flex-direction: ", ";\n align-items: center;\n }\n\n box-shadow: 0 0 0 2px transparent;\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n min-width: ", ";\n width: 100%;\n height: 40px;\n transition: none !important;\n\n &:focus {\n border-color: transparent;\n box-shadow: 0 0 0 2px\n ", ";\n }\n\n ", "\n }\n"])), function (props) {
126
+ var DxCButton = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n\n display: inline-block;\n width: ", ";\n cursor: ", ";\n\n .MuiButtonBase-root {\n padding-left: ", ";\n padding-right: ", ";\n padding-top: ", ";\n padding-bottom: ", ";\n\n .MuiButton-label {\n display: flex;\n align-items: center;\n }\n\n box-shadow: 0 0 0 2px transparent;\n font-family: ", ";\n font-size: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n min-width: ", ";\n width: 100%;\n height: 40px;\n transition: none !important;\n\n &:focus {\n border-color: transparent;\n box-shadow: 0 0 0 2px\n ", ";\n }\n\n ", "\n }\n"])), function (props) {
130
127
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
131
128
  }, function (props) {
132
129
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
@@ -148,8 +145,6 @@ var DxCButton = _styledComponents["default"].div(_templateObject4 || (_templateO
148
145
  return props.theme.paddingTop;
149
146
  }, function (props) {
150
147
  return props.theme.paddingBottom;
151
- }, function (props) {
152
- return props.iconPosition === "after" && "row" || "row-reverse";
153
148
  }, function (props) {
154
149
  return props.theme.fontFamily;
155
150
  }, function (props) {
@@ -167,9 +162,9 @@ var DxCButton = _styledComponents["default"].div(_templateObject4 || (_templateO
167
162
  backgroundType = props.backgroundType;
168
163
 
169
164
  if (mode === "primary") {
170
- return "\n border-radius: ".concat(props.theme.primaryBorderRadius, ";\n border-width: ").concat(props.theme.primaryBorderThickness, ";\n border-style: ").concat(props.theme.primaryBorderStyle, ";\n font-family: ").concat(props.theme.primaryFontFamily, ";\n font-size: ").concat(props.theme.primaryFontSize, ";\n font-weight: ").concat(props.theme.primaryFontWeight, ";\n background-color: ").concat(backgroundType === "dark" ? props.theme.primaryBackgroundColorOnDark : props.theme.primaryBackgroundColor, ";\n color: ").concat(backgroundType && backgroundType === "dark" ? props.theme.primaryFontColorOnDark : props.theme.primaryFontColor, " !important;\n\n &:hover {\n background-color: ").concat(backgroundType === "dark" ? props.theme.primaryHoverBackgroundColorOnDark : props.theme.primaryHoverBackgroundColor, ";\n }\n &:active {\n background-color: ").concat(backgroundType === "dark" ? props.theme.primaryActiveBackgroundColorOnDark : props.theme.primaryActiveBackgroundColor, " !important;\n border-color: transparent;\n box-shadow: 0 0 0 2px ").concat(backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor, ";\n }\n &:disabled { \n cursor: not-allowed;\n background-color: ").concat(backgroundType === "dark" ? props.theme.primaryDisabledBackgroundColorOnDark : props.theme.primaryDisabledBackgroundColor, ";\n color: ").concat(backgroundType === "dark" ? props.theme.primaryDisabledFontColorOnDark : props.theme.primaryDisabledFontColor, "!important; \n }\n .MuiButton-label {\n z-index: 5;\n }\n ");
165
+ return "\n border-radius: ".concat(props.theme.primaryBorderRadius, ";\n border-width: ").concat(props.theme.primaryBorderThickness, ";\n border-style: ").concat(props.theme.primaryBorderStyle, ";\n font-family: ").concat(props.theme.primaryFontFamily, ";\n font-size: ").concat(props.theme.primaryFontSize, ";\n font-weight: ").concat(props.theme.primaryFontWeight, ";\n background-color: ").concat(backgroundType === "dark" ? props.theme.primaryBackgroundColorOnDark : props.theme.primaryBackgroundColor, ";\n color: ").concat(backgroundType && backgroundType === "dark" ? props.theme.primaryFontColorOnDark : props.theme.primaryFontColor, " !important;\n\n &:hover {\n background-color: ").concat(backgroundType === "dark" ? props.theme.primaryHoverBackgroundColorOnDark : props.theme.primaryHoverBackgroundColor, ";\n }\n &:active {\n background-color: ").concat(backgroundType === "dark" ? props.theme.primaryActiveBackgroundColorOnDark : props.theme.primaryActiveBackgroundColor, " !important;\n border-color: transparent;\n box-shadow: 0 0 0 2px ").concat(backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor, ";\n }\n &:disabled { \n cursor: not-allowed;\n background-color: ").concat(backgroundType === "dark" ? props.theme.primaryDisabledBackgroundColorOnDark : props.theme.primaryDisabledBackgroundColor, ";\n color: ").concat(backgroundType === "dark" ? props.theme.primaryDisabledFontColorOnDark : props.theme.primaryDisabledFontColor, " !important; \n }\n ");
171
166
  } else if (mode === "secondary") {
172
- return "\n border-radius: ".concat(props.theme.secondaryBorderRadius, ";\n border-width: ").concat(props.theme.secondaryBorderThickness, ";\n border-style: ").concat(props.theme.secondaryBorderStyle, ";\n font-family: ").concat(props.theme.secondaryFontFamily, ";\n font-size: ").concat(props.theme.secondaryFontSize, ";\n font-weight: ").concat(props.theme.secondaryFontWeight, ";\n background-color: ").concat(backgroundType === "dark" ? props.theme.secondaryBackgroundColorOnDark : props.theme.secondaryBackgroundColor, ";\n color: ").concat(backgroundType === "dark" ? props.theme.secondaryFontColorOnDark : props.theme.secondaryFontColor, " !important;\n border-color: ").concat(backgroundType === "dark" ? props.theme.secondaryBorderColorOnDark : props.theme.secondaryBorderColor, ";\n\n &:hover {\n background-color: ").concat(backgroundType === "dark" ? props.theme.secondaryHoverBackgroundColorOnDark : props.theme.secondaryHoverBackgroundColor, ";\n color: ").concat(backgroundType === "dark" ? props.theme.secondaryHoverFontColorOnDark : props.theme.secondaryHoverFontColor, " !important;\n }\n &:active {\n background-color: ").concat(backgroundType === "dark" ? props.theme.secondaryActiveBackgroundColorOnDark : props.theme.secondaryActiveBackgroundColor, " !important;\n color: ").concat(backgroundType === "dark" ? props.theme.secondaryHoverFontColorOnDark : props.theme.secondaryHoverFontColor, " !important;\n border-color: transparent;\n box-shadow: 0 0 0 2px ").concat(backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor, ";\n }\n &:disabled {\n cursor: not-allowed;\n background-color: ").concat(backgroundType === "dark" ? props.theme.secondaryDisabledBackgroundColorOnDark : props.theme.secondaryDisabledBackgroundColor, " !important;\n color: ").concat(backgroundType === "dark" ? props.theme.secondaryDisabledFontColorOnDark : props.theme.secondaryDisabledFontColor, " !important;\n border-color: ").concat(backgroundType === "dark" ? props.theme.secondaryDisabledBorderColorOnDark : props.theme.secondaryDisabledBorderColor, ";\n }\n .MuiButton-label {\n z-index: 5;\n }\n ");
167
+ return "\n border-radius: ".concat(props.theme.secondaryBorderRadius, ";\n border-width: ").concat(props.theme.secondaryBorderThickness, ";\n border-style: ").concat(props.theme.secondaryBorderStyle, ";\n font-family: ").concat(props.theme.secondaryFontFamily, ";\n font-size: ").concat(props.theme.secondaryFontSize, ";\n font-weight: ").concat(props.theme.secondaryFontWeight, ";\n background-color: ").concat(backgroundType === "dark" ? props.theme.secondaryBackgroundColorOnDark : props.theme.secondaryBackgroundColor, ";\n color: ").concat(backgroundType === "dark" ? props.theme.secondaryFontColorOnDark : props.theme.secondaryFontColor, " !important;\n border-color: ").concat(backgroundType === "dark" ? props.theme.secondaryBorderColorOnDark : props.theme.secondaryBorderColor, ";\n\n &:hover {\n background-color: ").concat(backgroundType === "dark" ? props.theme.secondaryHoverBackgroundColorOnDark : props.theme.secondaryHoverBackgroundColor, ";\n color: ").concat(backgroundType === "dark" ? props.theme.secondaryHoverFontColorOnDark : props.theme.secondaryHoverFontColor, " !important;\n }\n &:active {\n background-color: ").concat(backgroundType === "dark" ? props.theme.secondaryActiveBackgroundColorOnDark : props.theme.secondaryActiveBackgroundColor, " !important;\n color: ").concat(backgroundType === "dark" ? props.theme.secondaryHoverFontColorOnDark : props.theme.secondaryHoverFontColor, " !important;\n border-color: transparent;\n box-shadow: 0 0 0 2px ").concat(backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor, ";\n }\n &:disabled {\n cursor: not-allowed;\n background-color: ").concat(backgroundType === "dark" ? props.theme.secondaryDisabledBackgroundColorOnDark : props.theme.secondaryDisabledBackgroundColor, " !important;\n color: ").concat(backgroundType === "dark" ? props.theme.secondaryDisabledFontColorOnDark : props.theme.secondaryDisabledFontColor, " !important;\n border-color: ").concat(backgroundType === "dark" ? props.theme.secondaryDisabledBorderColorOnDark : props.theme.secondaryDisabledBorderColor, ";\n }\n ");
173
168
  } else if (mode === "text") {
174
169
  return "\n border-radius: ".concat(props.theme.textBorderRadius, ";\n border-width: ").concat(props.theme.textBorderThickness, ";\n border-style: ").concat(props.theme.textBorderStyle, ";\n font-family: ").concat(props.theme.textFontFamily, ";\n font-size: ").concat(props.theme.textFontSize, ";\n font-weight: ").concat(props.theme.textFontWeight, ";\n background-color: ").concat(backgroundType === "dark" ? props.theme.textBackgroundColorOnDark : props.theme.textBackgroundColor, ";\n color: ").concat(backgroundType === "dark" ? props.theme.textFontColorOnDark : props.theme.textFontColor, " !important;\n\n &:hover {\n background-color: ").concat(backgroundType === "dark" ? props.theme.textHoverBackgroundColorOnDark : props.theme.textHoverBackgroundColor, ";\n }\n &:active {\n background-color: ").concat(backgroundType === "dark" ? props.theme.textActiveBackgroundColorOnDark : props.theme.textActiveBackgroundColor, " !important;\n border-color: transparent;\n box-shadow: 0 0 0 2px ").concat(backgroundType === "dark" ? props.theme.focusBorderColorOnDark : props.theme.focusBorderColor, ";\n }\n &:disabled {\n cursor:not-allowed;\n color: ").concat(backgroundType === "dark" ? props.theme.textDisabledFontColorOnDark : props.theme.textDisabledFontColor, " !important;\n background-color: ").concat(backgroundType === "dark" ? props.theme.textDisabledBackgroundColorOnDark : props.theme.textDisabledBackgroundColor, ";\n }\n ");
175
170
  }
@@ -10,14 +10,12 @@ export default {
10
10
  component: DxcButton,
11
11
  };
12
12
 
13
- const iconSVG = () => {
14
- return (
15
- <svg viewBox="0 0 24 24" fill="currentColor">
16
- <path d="M0 0h24v24H0z" fill="none" />
17
- <path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z" />
18
- </svg>
19
- );
20
- };
13
+ const iconSVG = (
14
+ <svg viewBox="0 0 24 24" fill="currentColor">
15
+ <path d="M0 0h24v24H0z" fill="none" />
16
+ <path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z" />
17
+ </svg>
18
+ );
21
19
  export const Chromatic = () => (
22
20
  <>
23
21
  <Title title="Primary" theme="light" level={2} />
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _react = _interopRequireDefault(require("react"));
6
+
7
+ var _react2 = require("@testing-library/react");
8
+
9
+ var _Button = _interopRequireDefault(require("./Button"));
10
+
11
+ describe("Button component tests", function () {
12
+ test("Button renders with correct text", function () {
13
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Button["default"], {
14
+ label: "Button"
15
+ })),
16
+ getByText = _render.getByText;
17
+
18
+ expect(getByText("Button")).toBeTruthy();
19
+ });
20
+ test("Calls correct function on click", function () {
21
+ var onClick = jest.fn();
22
+
23
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Button["default"], {
24
+ label: "Button",
25
+ onClick: onClick
26
+ })),
27
+ getByText = _render2.getByText;
28
+
29
+ var button = getByText("Button");
30
+
31
+ _react2.fireEvent.click(button);
32
+
33
+ expect(onClick).toHaveBeenCalled();
34
+ });
35
+ });
package/button/types.d.ts CHANGED
@@ -6,7 +6,7 @@ declare type Margin = {
6
6
  left?: Space;
7
7
  right?: Space;
8
8
  };
9
- declare type SVG = React.SVGProps<SVGSVGElement> | React.FunctionComponent<React.SVGProps<SVGSVGElement>>;
9
+ declare type SVG = React.SVGProps<SVGSVGElement>;
10
10
  declare type Props = {
11
11
  /**
12
12
  * Text to be placed next to the button.
@@ -29,13 +29,9 @@ declare type Props = {
29
29
  */
30
30
  type?: "button" | "reset" | "submit";
31
31
  /**
32
- * Element used as the icon that will be placed next to the button label.
32
+ * Element or path used as the icon that will be placed next to the button label.
33
33
  */
34
- icon?: SVG;
35
- /**
36
- * @deprecated URL of the icon that will be placed next to the button label.
37
- */
38
- iconSrc?: string;
34
+ icon?: string | SVG;
39
35
  /**
40
36
  * This function will be called when the user clicks the button.
41
37
  */
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
 
@@ -174,7 +174,7 @@ const actionCard = () => (
174
174
  <Title title="Focused default with action" theme="light" level={4} />
175
175
  <DxcCard onClick={() => {}}>Focused default with action</DxcCard>
176
176
  </ExampleContainer>
177
- <ExampleContainer>
177
+ <ExampleContainer expanded>
178
178
  <Title title="Hovered default with action" theme="light" level={4} />
179
179
  <DxcCard onClick={() => {}}>Hovered default with action</DxcCard>
180
180
  </ExampleContainer>
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _react = _interopRequireDefault(require("react"));
6
+
7
+ var _react2 = require("@testing-library/react");
8
+
9
+ var _Card = _interopRequireDefault(require("./Card"));
10
+
11
+ describe("Card component tests", function () {
12
+ test("Card renders with correct content", function () {
13
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Card["default"], null, "test-card")),
14
+ getByText = _render.getByText;
15
+
16
+ expect(getByText("test-card")).toBeTruthy();
17
+ });
18
+ test("Card renders with correct href", function () {
19
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Card["default"], {
20
+ linkHref: "/testPage"
21
+ }, "test-card")),
22
+ getByRole = _render2.getByRole;
23
+
24
+ var card = getByRole("link");
25
+ expect(card.getAttribute("href")).toEqual("/testPage");
26
+ });
27
+ test("Card renders with correct image", function () {
28
+ var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Card["default"], {
29
+ imageSrc: "/testImage"
30
+ }, "test-card")),
31
+ getByRole = _render3.getByRole;
32
+
33
+ var card = getByRole("img");
34
+ expect(card.getAttribute("src")).toEqual("/testImage");
35
+ });
36
+ test("OnClick function is called", function () {
37
+ var onClick = jest.fn();
38
+
39
+ var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Card["default"], {
40
+ onClick: onClick
41
+ }, "test-card")),
42
+ getByText = _render4.getByText;
43
+
44
+ var card = getByText("test-card");
45
+
46
+ _react2.fireEvent.click(card);
47
+
48
+ expect(onClick).toHaveBeenCalled();
49
+ });
50
+ });
@@ -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,14 +21,16 @@ 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
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
33
+
32
34
  var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
33
35
 
34
36
  var _templateObject, _templateObject2, _templateObject3;
@@ -39,6 +41,8 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
39
41
 
40
42
  var DxcCheckbox = function DxcCheckbox(_ref) {
41
43
  var checked = _ref.checked,
44
+ _ref$defaultChecked = _ref.defaultChecked,
45
+ defaultChecked = _ref$defaultChecked === void 0 ? false : _ref$defaultChecked,
42
46
  value = _ref.value,
43
47
  _ref$label = _ref.label,
44
48
  label = _ref$label === void 0 ? "" : _ref$label,
@@ -48,27 +52,34 @@ var DxcCheckbox = function DxcCheckbox(_ref) {
48
52
  name = _ref$name === void 0 ? "" : _ref$name,
49
53
  _ref$disabled = _ref.disabled,
50
54
  disabled = _ref$disabled === void 0 ? false : _ref$disabled,
55
+ _ref$optional = _ref.optional,
56
+ optional = _ref$optional === void 0 ? false : _ref$optional,
51
57
  onChange = _ref.onChange,
52
- _ref$required = _ref.required,
53
- required = _ref$required === void 0 ? false : _ref$required,
54
58
  margin = _ref.margin,
55
59
  _ref$size = _ref.size,
56
60
  size = _ref$size === void 0 ? "fitContent" : _ref$size,
57
61
  _ref$tabIndex = _ref.tabIndex,
58
62
  tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
59
63
 
60
- var _useState = (0, _react.useState)(false),
61
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
62
- innerChecked = _useState2[0],
63
- setInnerChecked = _useState2[1];
64
+ var _useState = (0, _react.useState)("checkbox-".concat((0, _uuid.v4)())),
65
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 1),
66
+ switchId = _useState2[0];
64
67
 
65
- var _useState3 = (0, _react.useState)(false),
68
+ var labelId = "label-".concat(switchId);
69
+
70
+ var _useState3 = (0, _react.useState)(defaultChecked),
66
71
  _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
67
- isLabelHovered = _useState4[0],
68
- setIsLabelHovered = _useState4[1];
72
+ innerChecked = _useState4[0],
73
+ setInnerChecked = _useState4[1];
74
+
75
+ var _useState5 = (0, _react.useState)(false),
76
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
77
+ isLabelHovered = _useState6[0],
78
+ setIsLabelHovered = _useState6[1];
69
79
 
70
80
  var colorsTheme = (0, _useTheme["default"])();
71
81
  var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
82
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
72
83
 
73
84
  var handlerCheckboxChange = function handlerCheckboxChange(checkboxValue) {
74
85
  if (checked === undefined) {
@@ -89,6 +100,17 @@ var DxcCheckbox = function DxcCheckbox(_ref) {
89
100
  setIsLabelHovered(!isLabelHovered);
90
101
  };
91
102
 
103
+ var labelComponent = /*#__PURE__*/_react["default"].createElement(LabelContainer, {
104
+ id: labelId,
105
+ labelPosition: labelPosition,
106
+ onClick: disabled === true ? function () {} : handlerCheckboxChange,
107
+ disabled: disabled,
108
+ className: "labelContainer",
109
+ backgroundType: backgroundType,
110
+ onMouseOver: handleLabelHover,
111
+ onMouseOut: handleLabelHover
112
+ }, labelPosition === "before" ? /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, label, " ", optional && /*#__PURE__*/_react["default"].createElement("span", null, translatedLabels.formFields.optionalLabel)) : /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, optional && /*#__PURE__*/_react["default"].createElement("span", null, "(Optional)"), " ", label));
113
+
92
114
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
93
115
  theme: colorsTheme.checkbox
94
116
  }, /*#__PURE__*/_react["default"].createElement(CheckboxContainer, {
@@ -101,13 +123,13 @@ var DxcCheckbox = function DxcCheckbox(_ref) {
101
123
  size: size,
102
124
  backgroundType: backgroundType,
103
125
  isLabelHovered: isLabelHovered
104
- }, /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
105
- checked: checked != undefined ? checked : innerChecked,
126
+ }, label && labelPosition === "before" && labelComponent, /*#__PURE__*/_react["default"].createElement(_Checkbox["default"], {
127
+ checked: checked !== null && checked !== void 0 ? checked : innerChecked,
106
128
  inputProps: {
107
129
  name: name,
108
- "aria-label": label,
130
+ "aria-labelledby": labelId,
109
131
  role: "checkbox",
110
- "aria-checked": checked != undefined ? checked : innerChecked
132
+ "aria-checked": checked !== null && checked !== void 0 ? checked : innerChecked
111
133
  },
112
134
  onChange: handlerCheckboxChange,
113
135
  value: value,
@@ -118,17 +140,9 @@ var DxcCheckbox = function DxcCheckbox(_ref) {
118
140
  }), /*#__PURE__*/_react["default"].createElement(CheckboxBlackBack, {
119
141
  labelPosition: labelPosition,
120
142
  disabled: disabled,
121
- checked: checked != undefined ? checked : innerChecked,
143
+ checked: checked !== null && checked !== void 0 ? checked : innerChecked,
122
144
  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)));
145
+ }), label && labelPosition === "after" && labelComponent));
132
146
  };
133
147
 
134
148
  var sizes = {
@@ -151,19 +165,15 @@ var getDisabledColor = function getDisabledColor(props, element) {
151
165
  switch (element) {
152
166
  case "check":
153
167
  return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledCheckColorOnDark : props.theme.disabledCheckColor;
154
- break;
155
168
 
156
169
  case "background":
157
170
  return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledBackgroundColorCheckedOnDark : props.theme.disabledBackgroundColorChecked;
158
- break;
159
171
 
160
172
  case "border":
161
173
  return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledBorderColorOnDark : props.theme.disabledBorderColor;
162
- break;
163
174
 
164
175
  case "label":
165
176
  return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledFontColorOnDark : props.theme.disabledFontColor;
166
- break;
167
177
  }
168
178
  };
169
179
 
@@ -171,35 +181,31 @@ var getNotDisabledColor = function getNotDisabledColor(props, element) {
171
181
  switch (element) {
172
182
  case "check":
173
183
  return props.backgroundType && props.backgroundType === "dark" ? props.theme.checkColorOnDark : props.theme.checkColor;
174
- break;
175
184
 
176
185
  case "background":
177
186
  return props.backgroundType && props.backgroundType === "dark" ? props.theme.backgroundColorCheckedOnDark : props.theme.backgroundColorChecked;
178
- break;
179
187
 
180
188
  case "border":
181
189
  return props.backgroundType && props.backgroundType === "dark" ? props.theme.borderColorOnDark : props.theme.borderColor;
182
- break;
183
190
 
184
191
  case "label":
185
192
  return props.backgroundType && props.backgroundType === "dark" ? props.theme.fontColorOnDark : props.theme.fontColor;
186
- break;
187
193
  }
188
194
  };
189
195
 
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) {
196
+ 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
197
  return props.disabled ? getDisabledColor(props, "label") : getNotDisabledColor(props, "label");
192
- }, function (props) {
193
- return props.disabled ? "not-allowed" : "pointer";
194
198
  }, function (props) {
195
199
  return props.theme.fontFamily;
196
200
  }, function (props) {
197
201
  return props.theme.fontSize;
198
202
  }, function (props) {
199
203
  return props.theme.fontWeight;
204
+ }, function (props) {
205
+ return props.disabled ? "not-allowed" : "pointer";
200
206
  });
201
207
 
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) {
208
+ 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
209
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
204
210
  }, function (props) {
205
211
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
@@ -213,8 +219,6 @@ var CheckboxContainer = _styledComponents["default"].span(_templateObject2 || (_
213
219
  return calculateWidth(props.margin, props.size);
214
220
  }, function (props) {
215
221
  return props.disabled ? "not-allowed" : "pointer";
216
- }, function (props) {
217
- return props.labelPosition === "before" ? "row-reverse" : "row";
218
222
  }, function (props) {
219
223
  return props.isLabelHovered ? props.backgroundType === "dark" ? props.theme.hoverBorderColorOnDark : props.theme.hoverBorderColor : getNotDisabledColor(props, "border");
220
224
  }, function (props) {