@dxc-technology/halstack-react 0.0.0-b061aa1 → 0.0.0-b0ab1e3

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 (229) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +1 -4
  3. package/HalstackContext.d.ts +10 -0
  4. package/{ThemeContext.js → HalstackContext.js} +31 -34
  5. package/accordion/Accordion.d.ts +1 -1
  6. package/accordion/Accordion.js +15 -47
  7. package/accordion/Accordion.stories.tsx +307 -0
  8. package/accordion/Accordion.test.js +72 -0
  9. package/accordion/types.d.ts +8 -8
  10. package/accordion-group/AccordionGroup.d.ts +1 -1
  11. package/accordion-group/AccordionGroup.js +14 -16
  12. package/accordion-group/AccordionGroup.stories.tsx +1 -1
  13. package/accordion-group/AccordionGroup.test.js +151 -0
  14. package/accordion-group/types.d.ts +8 -8
  15. package/alert/Alert.js +2 -2
  16. package/alert/Alert.test.js +92 -0
  17. package/badge/Badge.d.ts +4 -0
  18. package/badge/Badge.js +1 -1
  19. package/badge/types.d.ts +4 -0
  20. package/badge/types.js +5 -0
  21. package/bleed/Bleed.d.ts +3 -0
  22. package/bleed/Bleed.js +84 -0
  23. package/bleed/Bleed.stories.tsx +342 -0
  24. package/bleed/types.d.ts +37 -0
  25. package/bleed/types.js +5 -0
  26. package/box/Box.js +2 -2
  27. package/box/Box.test.js +18 -0
  28. package/button/Button.d.ts +1 -1
  29. package/button/Button.js +18 -25
  30. package/button/Button.stories.tsx +6 -8
  31. package/button/Button.test.js +35 -0
  32. package/button/types.d.ts +3 -7
  33. package/card/Card.js +28 -29
  34. package/card/Card.stories.tsx +1 -1
  35. package/card/Card.test.js +50 -0
  36. package/checkbox/Checkbox.d.ts +1 -1
  37. package/checkbox/Checkbox.js +42 -41
  38. package/checkbox/Checkbox.stories.tsx +124 -128
  39. package/checkbox/Checkbox.test.js +78 -0
  40. package/checkbox/types.d.ts +8 -4
  41. package/chip/Chip.d.ts +1 -1
  42. package/chip/Chip.js +17 -55
  43. package/chip/Chip.stories.tsx +6 -8
  44. package/chip/Chip.test.js +56 -0
  45. package/chip/types.d.ts +7 -15
  46. package/common/variables.js +59 -265
  47. package/date-input/DateInput.js +60 -52
  48. package/date-input/DateInput.stories.tsx +7 -7
  49. package/date-input/DateInput.test.js +479 -0
  50. package/date-input/types.d.ts +16 -9
  51. package/dialog/Dialog.js +8 -35
  52. package/dialog/Dialog.test.js +40 -0
  53. package/dropdown/Dropdown.d.ts +1 -1
  54. package/dropdown/Dropdown.js +22 -48
  55. package/dropdown/Dropdown.stories.tsx +249 -0
  56. package/dropdown/Dropdown.test.js +189 -0
  57. package/dropdown/types.d.ts +5 -14
  58. package/file-input/FileInput.d.ts +1 -1
  59. package/file-input/FileInput.js +148 -69
  60. package/file-input/FileInput.stories.tsx +507 -0
  61. package/file-input/FileInput.test.js +457 -0
  62. package/file-input/FileItem.js +3 -3
  63. package/file-input/types.d.ts +32 -7
  64. package/footer/Footer.d.ts +1 -1
  65. package/footer/Footer.js +28 -111
  66. package/footer/{Footer.stories.jsx → Footer.stories.tsx} +1 -22
  67. package/footer/Footer.test.js +109 -0
  68. package/footer/Icons.d.ts +2 -0
  69. package/footer/Icons.js +3 -3
  70. package/footer/types.d.ts +5 -9
  71. package/header/Header.js +22 -46
  72. package/header/Header.stories.tsx +46 -36
  73. package/header/Header.test.js +79 -0
  74. package/header/Icons.d.ts +2 -0
  75. package/heading/Heading.js +1 -1
  76. package/heading/Heading.stories.tsx +3 -2
  77. package/heading/Heading.test.js +186 -0
  78. package/inset/Inset.d.ts +3 -0
  79. package/inset/Inset.js +84 -0
  80. package/inset/Inset.stories.tsx +229 -0
  81. package/inset/types.d.ts +37 -0
  82. package/inset/types.js +5 -0
  83. package/layout/ApplicationLayout.js +9 -15
  84. package/layout/ApplicationLayout.stories.tsx +171 -0
  85. package/link/Link.js +10 -22
  86. package/link/Link.stories.tsx +6 -1
  87. package/link/Link.test.js +91 -0
  88. package/link/types.d.ts +5 -9
  89. package/list/List.d.ts +4 -0
  90. package/list/List.js +47 -0
  91. package/list/List.stories.tsx +95 -0
  92. package/list/types.d.ts +7 -0
  93. package/list/types.js +5 -0
  94. package/main.d.ts +11 -8
  95. package/main.js +66 -42
  96. package/number-input/NumberInput.js +14 -24
  97. package/number-input/NumberInput.stories.tsx +5 -5
  98. package/number-input/NumberInput.test.js +506 -0
  99. package/number-input/types.d.ts +16 -9
  100. package/package.json +8 -6
  101. package/paginator/Paginator.js +2 -8
  102. package/paginator/Paginator.test.js +266 -0
  103. package/password-input/PasswordInput.js +12 -13
  104. package/password-input/PasswordInput.stories.tsx +3 -3
  105. package/password-input/PasswordInput.test.js +181 -0
  106. package/password-input/types.d.ts +13 -10
  107. package/progress-bar/ProgressBar.js +4 -4
  108. package/progress-bar/ProgressBar.test.js +65 -0
  109. package/quick-nav/QuickNav.d.ts +4 -0
  110. package/quick-nav/QuickNav.js +64 -0
  111. package/quick-nav/QuickNav.stories.tsx +237 -0
  112. package/quick-nav/types.d.ts +21 -0
  113. package/quick-nav/types.js +5 -0
  114. package/radio/Radio.js +12 -13
  115. package/radio/Radio.test.js +71 -0
  116. package/radio-group/Radio.d.ts +4 -0
  117. package/radio-group/Radio.js +141 -0
  118. package/radio-group/RadioGroup.d.ts +4 -0
  119. package/radio-group/RadioGroup.js +280 -0
  120. package/radio-group/RadioGroup.stories.tsx +100 -0
  121. package/radio-group/RadioGroup.test.js +695 -0
  122. package/radio-group/types.d.ts +114 -0
  123. package/radio-group/types.js +5 -0
  124. package/resultsetTable/ResultsetTable.js +6 -3
  125. package/resultsetTable/ResultsetTable.stories.tsx +275 -0
  126. package/resultsetTable/ResultsetTable.test.js +306 -0
  127. package/resultsetTable/types.d.ts +1 -1
  128. package/row/Row.d.ts +3 -0
  129. package/row/Row.js +127 -0
  130. package/row/Row.stories.tsx +237 -0
  131. package/row/types.d.ts +28 -0
  132. package/row/types.js +5 -0
  133. package/select/Icons.d.ts +10 -0
  134. package/select/Icons.js +93 -0
  135. package/select/Listbox.d.ts +4 -0
  136. package/select/Listbox.js +148 -0
  137. package/select/Option.d.ts +4 -0
  138. package/select/Option.js +110 -0
  139. package/select/Select.d.ts +4 -0
  140. package/select/Select.js +107 -317
  141. package/select/Select.stories.tsx +91 -81
  142. package/select/Select.test.js +2057 -0
  143. package/select/types.d.ts +213 -0
  144. package/select/types.js +5 -0
  145. package/sidenav/Sidenav.js +2 -2
  146. package/sidenav/Sidenav.stories.tsx +18 -1
  147. package/sidenav/Sidenav.test.js +56 -0
  148. package/slider/Slider.d.ts +1 -1
  149. package/slider/Slider.js +4 -3
  150. package/slider/Slider.stories.tsx +8 -8
  151. package/slider/Slider.test.js +150 -0
  152. package/slider/types.d.ts +4 -0
  153. package/spinner/Spinner.js +2 -2
  154. package/spinner/Spinner.stories.jsx +1 -0
  155. package/spinner/Spinner.test.js +64 -0
  156. package/stack/Stack.d.ts +3 -0
  157. package/stack/Stack.js +97 -0
  158. package/stack/Stack.stories.tsx +164 -0
  159. package/stack/types.d.ts +24 -0
  160. package/stack/types.js +5 -0
  161. package/switch/Switch.d.ts +1 -1
  162. package/switch/Switch.js +34 -21
  163. package/switch/Switch.stories.tsx +15 -15
  164. package/switch/Switch.test.js +98 -0
  165. package/switch/types.d.ts +6 -2
  166. package/table/Table.js +2 -2
  167. package/table/Table.stories.jsx +2 -1
  168. package/table/Table.test.js +26 -0
  169. package/tabs/Tabs.d.ts +1 -1
  170. package/tabs/Tabs.js +17 -19
  171. package/tabs/Tabs.stories.tsx +8 -11
  172. package/tabs/Tabs.test.js +140 -0
  173. package/tabs/types.d.ts +27 -15
  174. package/tag/Tag.d.ts +1 -1
  175. package/tag/Tag.js +18 -28
  176. package/tag/Tag.stories.tsx +26 -29
  177. package/tag/Tag.test.js +60 -0
  178. package/tag/types.d.ts +23 -14
  179. package/text/Text.d.ts +7 -0
  180. package/text/Text.js +30 -0
  181. package/text/Text.stories.tsx +19 -0
  182. package/text-input/TextInput.js +38 -30
  183. package/text-input/TextInput.stories.tsx +34 -16
  184. package/text-input/TextInput.test.js +1712 -0
  185. package/text-input/types.d.ts +18 -11
  186. package/textarea/Textarea.d.ts +4 -0
  187. package/textarea/Textarea.js +26 -56
  188. package/textarea/Textarea.stories.jsx +37 -15
  189. package/textarea/Textarea.test.js +437 -0
  190. package/textarea/types.d.ts +137 -0
  191. package/textarea/types.js +5 -0
  192. package/toggle-group/ToggleGroup.d.ts +1 -1
  193. package/toggle-group/ToggleGroup.js +15 -17
  194. package/toggle-group/ToggleGroup.stories.tsx +27 -32
  195. package/toggle-group/ToggleGroup.test.js +156 -0
  196. package/toggle-group/types.d.ts +46 -25
  197. package/useTheme.d.ts +2 -0
  198. package/useTheme.js +2 -2
  199. package/wizard/Wizard.d.ts +1 -1
  200. package/wizard/Wizard.js +81 -22
  201. package/wizard/{Wizard.stories.jsx → Wizard.stories.tsx} +13 -23
  202. package/wizard/Wizard.test.js +141 -0
  203. package/wizard/types.d.ts +8 -8
  204. package/V3Select/V3Select.js +0 -455
  205. package/V3Select/index.d.ts +0 -27
  206. package/V3Textarea/V3Textarea.js +0 -260
  207. package/V3Textarea/index.d.ts +0 -27
  208. package/date/Date.js +0 -373
  209. package/date/index.d.ts +0 -27
  210. package/input-text/Icons.js +0 -22
  211. package/input-text/InputText.js +0 -611
  212. package/input-text/index.d.ts +0 -36
  213. package/select/index.d.ts +0 -131
  214. package/textarea/index.d.ts +0 -127
  215. package/toggle/Toggle.js +0 -186
  216. package/toggle/index.d.ts +0 -21
  217. package/upload/Upload.js +0 -201
  218. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  219. package/upload/buttons-upload/Icons.js +0 -40
  220. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  221. package/upload/dragAndDropArea/Icons.js +0 -39
  222. package/upload/file-upload/FileToUpload.js +0 -115
  223. package/upload/file-upload/Icons.js +0 -66
  224. package/upload/files-upload/FilesToUpload.js +0 -109
  225. package/upload/index.d.ts +0 -15
  226. package/upload/transaction/Icons.js +0 -160
  227. package/upload/transaction/Transaction.js +0 -104
  228. package/upload/transactions/Transactions.js +0 -94
  229. package/wizard/Icons.js +0 -65
@@ -1,4 +1,4 @@
1
1
  /// <reference types="react" />
2
2
  import ButtonPropsType from "./types";
3
- declare const DxcButton: ({ label, mode, disabled, iconPosition, type, icon, iconSrc, onClick, margin, size, tabIndex, }: ButtonPropsType) => JSX.Element;
3
+ declare const DxcButton: ({ label, mode, disabled, iconPosition, type, icon, onClick, margin, size, tabIndex, }: ButtonPropsType) => JSX.Element;
4
4
  export default DxcButton;
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"));
@@ -23,9 +23,9 @@ var _variables = require("../common/variables.js");
23
23
 
24
24
  var _utils = require("../common/utils.js");
25
25
 
26
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
26
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
27
27
 
28
- var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext.js"));
28
+ var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
29
29
 
30
30
  var _templateObject, _templateObject2, _templateObject3, _templateObject4;
31
31
 
@@ -45,8 +45,6 @@ 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
48
  _onClick = _ref.onClick,
51
49
  margin = _ref.margin,
52
50
  _ref$size = _ref.size,
@@ -55,6 +53,12 @@ var DxcButton = function DxcButton(_ref) {
55
53
  tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
56
54
  var colorsTheme = (0, _useTheme["default"])();
57
55
  var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
56
+
57
+ var labelComponent = /*#__PURE__*/_react["default"].createElement(LabelContainer, {
58
+ icon: icon,
59
+ iconPosition: iconPosition
60
+ }, label);
61
+
58
62
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
59
63
  theme: colorsTheme.button
60
64
  }, /*#__PURE__*/_react["default"].createElement(DxCButton, {
@@ -75,17 +79,12 @@ var DxcButton = function DxcButton(_ref) {
75
79
  onClick: function onClick() {
76
80
  _onClick();
77
81
  }
78
- }, label && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
79
- icon: icon,
80
- iconPosition: iconPosition
81
- }, label), icon ? /*#__PURE__*/_react["default"].createElement(IconContainer, {
82
+ }, label && iconPosition === "after" && labelComponent, icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
82
83
  label: label,
83
84
  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
- }))));
85
+ }, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(ButtonIcon, {
86
+ src: icon
87
+ }) : icon), label && iconPosition === "before" && labelComponent)));
89
88
  };
90
89
 
91
90
  var sizes = {
@@ -120,13 +119,9 @@ var IconContainer = _styledComponents["default"].div(_templateObject2 || (_templ
120
119
  return !props.label ? "0px" : props.iconPosition === "before" && props.label !== "" && "8px" || "8px";
121
120
  });
122
121
 
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
- });
122
+ var ButtonIcon = _styledComponents["default"].img(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])([""])));
128
123
 
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) {
124
+ 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
125
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
131
126
  }, function (props) {
132
127
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
@@ -148,8 +143,6 @@ var DxCButton = _styledComponents["default"].div(_templateObject4 || (_templateO
148
143
  return props.theme.paddingTop;
149
144
  }, function (props) {
150
145
  return props.theme.paddingBottom;
151
- }, function (props) {
152
- return props.iconPosition === "after" && "row" || "row-reverse";
153
146
  }, function (props) {
154
147
  return props.theme.fontFamily;
155
148
  }, function (props) {
@@ -167,9 +160,9 @@ var DxCButton = _styledComponents["default"].div(_templateObject4 || (_templateO
167
160
  backgroundType = props.backgroundType;
168
161
 
169
162
  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 ");
163
+ 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
164
  } 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 ");
165
+ 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
166
  } else if (mode === "text") {
174
167
  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
168
  }
@@ -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
@@ -21,7 +21,7 @@ var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
21
 
22
22
  var _variables = require("../common/variables.js");
23
23
 
24
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
24
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
25
25
 
26
26
  var _Box = _interopRequireDefault(require("../box/Box"));
27
27
 
@@ -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,15 +21,15 @@ 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
 
30
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
28
+ var _uuid = require("uuid");
29
+
30
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
31
31
 
32
- var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext.js"));
32
+ var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
33
33
 
34
34
  var _templateObject, _templateObject2, _templateObject3;
35
35
 
@@ -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) {