@dxc-technology/halstack-react 0.0.0-c680086 → 0.0.0-c713b1b

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 (153) hide show
  1. package/HalstackContext.d.ts +10 -0
  2. package/{ThemeContext.js → HalstackContext.js} +37 -37
  3. package/accordion/Accordion.d.ts +1 -1
  4. package/accordion/Accordion.js +7 -28
  5. package/accordion/Accordion.stories.tsx +11 -11
  6. package/accordion/Accordion.test.js +72 -0
  7. package/accordion/types.d.ts +4 -0
  8. package/accordion-group/AccordionGroup.d.ts +1 -1
  9. package/accordion-group/AccordionGroup.js +13 -15
  10. package/accordion-group/AccordionGroup.stories.tsx +1 -1
  11. package/accordion-group/AccordionGroup.test.js +151 -0
  12. package/accordion-group/types.d.ts +4 -0
  13. package/alert/Alert.test.js +92 -0
  14. package/badge/Badge.d.ts +4 -0
  15. package/badge/types.d.ts +4 -0
  16. package/badge/types.js +5 -0
  17. package/bleed/types.d.ts +24 -0
  18. package/box/Box.test.js +18 -0
  19. package/button/Button.js +14 -11
  20. package/button/Button.test.js +35 -0
  21. package/card/Card.js +27 -28
  22. package/card/Card.test.js +50 -0
  23. package/checkbox/Checkbox.d.ts +1 -1
  24. package/checkbox/Checkbox.js +40 -39
  25. package/checkbox/Checkbox.stories.tsx +124 -128
  26. package/checkbox/Checkbox.test.js +78 -0
  27. package/checkbox/types.d.ts +7 -3
  28. package/chip/Chip.test.js +56 -0
  29. package/common/variables.js +19 -254
  30. package/date-input/DateInput.js +50 -39
  31. package/date-input/DateInput.stories.tsx +7 -7
  32. package/date-input/DateInput.test.js +479 -0
  33. package/date-input/types.d.ts +16 -9
  34. package/dialog/Dialog.js +4 -32
  35. package/dialog/Dialog.test.js +40 -0
  36. package/dropdown/Dropdown.js +13 -17
  37. package/dropdown/Dropdown.test.js +189 -0
  38. package/file-input/FileInput.test.js +457 -0
  39. package/file-input/FileItem.js +7 -5
  40. package/footer/Footer.js +10 -85
  41. package/footer/Footer.test.js +109 -0
  42. package/header/Header.js +20 -44
  43. package/header/Header.stories.tsx +46 -36
  44. package/header/Header.test.js +79 -0
  45. package/heading/Heading.test.js +186 -0
  46. package/inset/types.d.ts +24 -0
  47. package/layout/ApplicationLayout.js +6 -13
  48. package/link/Link.d.ts +3 -2
  49. package/link/Link.js +65 -56
  50. package/link/Link.stories.tsx +87 -52
  51. package/link/Link.test.js +83 -0
  52. package/link/types.d.ts +8 -23
  53. package/main.d.ts +5 -7
  54. package/main.js +25 -41
  55. package/number-input/NumberInput.js +11 -18
  56. package/number-input/NumberInput.stories.tsx +5 -5
  57. package/number-input/NumberInput.test.js +506 -0
  58. package/number-input/types.d.ts +16 -9
  59. package/package.json +6 -5
  60. package/paginator/Paginator.test.js +266 -0
  61. package/password-input/PasswordInput.test.js +181 -0
  62. package/password-input/types.d.ts +13 -10
  63. package/progress-bar/ProgressBar.test.js +65 -0
  64. package/quick-nav/QuickNav.d.ts +4 -0
  65. package/quick-nav/QuickNav.js +64 -0
  66. package/quick-nav/QuickNav.stories.tsx +237 -0
  67. package/quick-nav/types.d.ts +21 -0
  68. package/quick-nav/types.js +5 -0
  69. package/radio/Radio.js +10 -11
  70. package/radio/Radio.test.js +71 -0
  71. package/radio-group/Radio.d.ts +1 -1
  72. package/radio-group/Radio.js +24 -23
  73. package/radio-group/RadioGroup.js +39 -32
  74. package/radio-group/RadioGroup.stories.tsx +60 -39
  75. package/radio-group/RadioGroup.test.js +530 -83
  76. package/radio-group/types.d.ts +80 -2
  77. package/resultsetTable/ResultsetTable.test.js +306 -0
  78. package/row/types.d.ts +18 -0
  79. package/select/Icons.d.ts +10 -0
  80. package/select/Icons.js +93 -0
  81. package/select/Listbox.d.ts +4 -0
  82. package/select/Listbox.js +148 -0
  83. package/select/Option.d.ts +4 -0
  84. package/select/Option.js +110 -0
  85. package/select/Select.js +89 -297
  86. package/select/Select.stories.tsx +91 -81
  87. package/select/Select.test.js +2057 -0
  88. package/select/types.d.ts +54 -11
  89. package/sidenav/Sidenav.test.js +56 -0
  90. package/slider/Slider.d.ts +1 -1
  91. package/slider/Slider.js +2 -1
  92. package/slider/Slider.stories.tsx +8 -8
  93. package/slider/Slider.test.js +150 -0
  94. package/slider/types.d.ts +4 -0
  95. package/spinner/Spinner.test.js +64 -0
  96. package/stack/types.d.ts +15 -0
  97. package/switch/Switch.d.ts +1 -1
  98. package/switch/Switch.js +32 -19
  99. package/switch/Switch.stories.tsx +14 -14
  100. package/switch/Switch.test.js +98 -0
  101. package/switch/types.d.ts +6 -2
  102. package/table/Table.test.js +26 -0
  103. package/tabs/Tabs.d.ts +1 -1
  104. package/tabs/Tabs.js +9 -11
  105. package/tabs/Tabs.stories.tsx +0 -8
  106. package/tabs/Tabs.test.js +140 -0
  107. package/tabs/types.d.ts +4 -0
  108. package/tag/Tag.js +14 -19
  109. package/tag/Tag.stories.tsx +12 -8
  110. package/tag/Tag.test.js +60 -0
  111. package/text-input/TextInput.js +10 -8
  112. package/text-input/TextInput.stories.tsx +30 -12
  113. package/text-input/TextInput.test.js +1712 -0
  114. package/text-input/types.d.ts +17 -10
  115. package/textarea/Textarea.js +10 -8
  116. package/textarea/Textarea.stories.jsx +33 -12
  117. package/textarea/Textarea.test.js +437 -0
  118. package/textarea/types.d.ts +17 -10
  119. package/toggle-group/ToggleGroup.d.ts +1 -1
  120. package/toggle-group/ToggleGroup.js +5 -4
  121. package/toggle-group/ToggleGroup.stories.tsx +4 -4
  122. package/toggle-group/ToggleGroup.test.js +156 -0
  123. package/toggle-group/types.d.ts +8 -0
  124. package/useTheme.js +2 -2
  125. package/wizard/Wizard.d.ts +1 -1
  126. package/wizard/Wizard.js +28 -19
  127. package/wizard/Wizard.stories.tsx +13 -23
  128. package/wizard/Wizard.test.js +141 -0
  129. package/wizard/types.d.ts +6 -2
  130. package/ThemeContext.d.ts +0 -15
  131. package/V3Select/V3Select.js +0 -455
  132. package/V3Select/index.d.ts +0 -27
  133. package/V3Textarea/V3Textarea.js +0 -260
  134. package/V3Textarea/index.d.ts +0 -27
  135. package/date/Date.js +0 -373
  136. package/date/index.d.ts +0 -27
  137. package/input-text/Icons.js +0 -22
  138. package/input-text/InputText.js +0 -611
  139. package/input-text/index.d.ts +0 -36
  140. package/toggle/Toggle.js +0 -186
  141. package/toggle/index.d.ts +0 -21
  142. package/upload/Upload.js +0 -201
  143. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  144. package/upload/buttons-upload/Icons.js +0 -40
  145. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  146. package/upload/dragAndDropArea/Icons.js +0 -39
  147. package/upload/file-upload/FileToUpload.js +0 -115
  148. package/upload/file-upload/Icons.js +0 -66
  149. package/upload/files-upload/FilesToUpload.js +0 -109
  150. package/upload/index.d.ts +0 -15
  151. package/upload/transaction/Icons.js +0 -160
  152. package/upload/transaction/Transaction.js +0 -104
  153. package/upload/transactions/Transactions.js +0 -94
@@ -0,0 +1,151 @@
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 _AccordionGroup = _interopRequireDefault(require("./AccordionGroup"));
10
+
11
+ describe("Accordion component tests", function () {
12
+ test("Uncontrolled accordion group renders with children", function () {
13
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"], null, /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"].Accordion, {
14
+ label: "Accordion1",
15
+ padding: "medium"
16
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget.")), /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"].Accordion, {
17
+ label: "Accordion2",
18
+ padding: "medium"
19
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget.")))),
20
+ getByText = _render.getByText,
21
+ getAllByRole = _render.getAllByRole;
22
+
23
+ expect(getByText("Accordion1")).toBeTruthy();
24
+ expect(getByText("Accordion2")).toBeTruthy();
25
+ expect(getAllByRole("button")[0].getAttribute("aria-expanded")).toBe("false");
26
+ expect(getAllByRole("button")[1].getAttribute("aria-expanded")).toBe("false");
27
+ });
28
+ test("Uncontrolled accordion group renders with only one children", function () {
29
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"], null, /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"].Accordion, {
30
+ label: "Accordion1",
31
+ padding: "medium"
32
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget.")))),
33
+ getByText = _render2.getByText,
34
+ getAllByRole = _render2.getAllByRole;
35
+
36
+ expect(getByText("Accordion1")).toBeTruthy();
37
+ expect(getAllByRole("button")[0].getAttribute("aria-expanded")).toBe("false");
38
+ });
39
+ test("Uncontrolled accordion group calls correct function on click", function () {
40
+ var onActiveChange = jest.fn();
41
+
42
+ var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"], {
43
+ margin: "large",
44
+ onActiveChange: onActiveChange
45
+ }, /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"].Accordion, {
46
+ label: "Accordion1",
47
+ padding: "medium",
48
+ margin: "large"
49
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget.")), /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"].Accordion, {
50
+ label: "Accordion2",
51
+ padding: "medium"
52
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget.")))),
53
+ getByText = _render3.getByText,
54
+ getAllByRole = _render3.getAllByRole;
55
+
56
+ expect(getAllByRole("button")[0].getAttribute("aria-expanded")).toBe("false");
57
+ expect(getAllByRole("button")[1].getAttribute("aria-expanded")).toBe("false");
58
+
59
+ _react2.fireEvent.click(getByText("Accordion1"));
60
+
61
+ expect(onActiveChange).toHaveBeenCalled();
62
+ expect(getAllByRole("button")[0].getAttribute("aria-expanded")).toBe("true");
63
+ expect(getAllByRole("button")[1].getAttribute("aria-expanded")).toBe("false");
64
+ });
65
+ test("Uncontrolled accordion group renders initially with an accordion expanded", function () {
66
+ var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"], {
67
+ defaultIndexActive: 1
68
+ }, /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"].Accordion, {
69
+ label: "Accordion1",
70
+ padding: "medium"
71
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget.")), /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"].Accordion, {
72
+ label: "Accordion2",
73
+ padding: "medium"
74
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit leo lobortis eget.")))),
75
+ getByText = _render4.getByText,
76
+ getAllByRole = _render4.getAllByRole;
77
+
78
+ expect(getByText("Accordion1")).toBeTruthy();
79
+ expect(getByText("Accordion2")).toBeTruthy();
80
+ expect(getAllByRole("button")[0].getAttribute("aria-expanded")).toBe("false");
81
+ expect(getAllByRole("button")[1].getAttribute("aria-expanded")).toBe("true");
82
+ });
83
+ test("Controlled accordion with indexActive change", function () {
84
+ var onActiveChange = jest.fn();
85
+
86
+ var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"], {
87
+ margin: "large",
88
+ indexActive: 1,
89
+ onActiveChange: onActiveChange
90
+ }, /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"].Accordion, {
91
+ label: "Accordion1",
92
+ padding: "medium",
93
+ margin: "large"
94
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Text1")), /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"].Accordion, {
95
+ label: "Accordion2",
96
+ padding: "medium"
97
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Text2")))),
98
+ getByText = _render5.getByText,
99
+ getAllByRole = _render5.getAllByRole,
100
+ rerender = _render5.rerender;
101
+
102
+ expect(getByText("Text1")).toBeTruthy();
103
+ expect(getByText("Text2")).toBeTruthy();
104
+
105
+ _react2.fireEvent.click(getByText("Accordion1"));
106
+
107
+ _react2.fireEvent.click(getByText("Accordion2"));
108
+
109
+ expect(onActiveChange.mock.calls[0][0]).toBe(0);
110
+ expect(onActiveChange.mock.calls[1][0]).toBe(1);
111
+ expect(getAllByRole("button")[0].getAttribute("aria-expanded")).toBe("false");
112
+ expect(getAllByRole("button")[1].getAttribute("aria-expanded")).toBe("true");
113
+ rerender( /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"], {
114
+ margin: "large",
115
+ indexActive: 0,
116
+ onActiveChange: onActiveChange
117
+ }, /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"].Accordion, {
118
+ label: "Accordion1",
119
+ padding: "medium",
120
+ margin: "large"
121
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Text1")), /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"].Accordion, {
122
+ label: "Accordion2",
123
+ padding: "medium"
124
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Text2"))));
125
+ expect(getAllByRole("button")[0].getAttribute("aria-expanded")).toBe("true");
126
+ expect(getAllByRole("button")[1].getAttribute("aria-expanded")).toBe("false");
127
+ });
128
+ test("Disabled uncontrolled accordion group", function () {
129
+ var onActiveChange = jest.fn();
130
+
131
+ var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"], {
132
+ margin: "large",
133
+ onActiveChange: onActiveChange,
134
+ disabled: true
135
+ }, /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"].Accordion, {
136
+ label: "Accordion1",
137
+ padding: "medium",
138
+ margin: "large"
139
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Text1")), /*#__PURE__*/_react["default"].createElement(_AccordionGroup["default"].Accordion, {
140
+ label: "Accordion2",
141
+ padding: "medium"
142
+ }, /*#__PURE__*/_react["default"].createElement("div", null, "Text2")))),
143
+ getByText = _render6.getByText;
144
+
145
+ _react2.fireEvent.click(getByText("Accordion1"));
146
+
147
+ _react2.fireEvent.click(getByText("Accordion2"));
148
+
149
+ expect(onActiveChange).toHaveBeenCalledTimes(0);
150
+ });
151
+ });
@@ -42,6 +42,10 @@ export declare type AccordionPropsType = {
42
42
  children: React.ReactNode;
43
43
  };
44
44
  declare type Props = {
45
+ /**
46
+ * Initially active accordion, only when it is uncontrolled.
47
+ */
48
+ defaultIndexActive?: number;
45
49
  /**
46
50
  * The index of the active accordion. If undefined, the component will be uncontrolled and the active accordion will be managed internally by the component.
47
51
  * If null, the component will be controlled and all accordions will be closed.
@@ -0,0 +1,92 @@
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 _Alert = _interopRequireDefault(require("./Alert"));
10
+
11
+ describe("Alert component tests", function () {
12
+ test("Info alert renders with correct text", function () {
13
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Alert["default"], {
14
+ type: "info",
15
+ inlineText: "info-alert-text"
16
+ })),
17
+ getByText = _render.getByText;
18
+
19
+ expect(getByText("information")).toBeTruthy();
20
+ expect(getByText("info-alert-text")).toBeTruthy();
21
+ });
22
+ test("Confirm alert renders with correct text", function () {
23
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Alert["default"], {
24
+ type: "confirm",
25
+ inlineText: "confirm-alert-text"
26
+ })),
27
+ getByText = _render2.getByText;
28
+
29
+ expect(getByText("success")).toBeTruthy();
30
+ expect(getByText("confirm-alert-text")).toBeTruthy();
31
+ });
32
+ test("Warning alert renders with correct text", function () {
33
+ var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Alert["default"], {
34
+ type: "warning",
35
+ inlineText: "warning-alert-text"
36
+ })),
37
+ getByText = _render3.getByText;
38
+
39
+ expect(getByText("warning")).toBeTruthy();
40
+ expect(getByText("warning-alert-text")).toBeTruthy();
41
+ });
42
+ test("Error alert renders with correct text", function () {
43
+ var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Alert["default"], {
44
+ type: "error",
45
+ inlineText: "error-alert-text"
46
+ })),
47
+ getByText = _render4.getByText;
48
+
49
+ expect(getByText("error")).toBeTruthy();
50
+ expect(getByText("error-alert-text")).toBeTruthy();
51
+ });
52
+ test("Alert renders with correct children", function () {
53
+ var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Alert["default"], {
54
+ inlineText: "alert-text"
55
+ }, /*#__PURE__*/_react["default"].createElement("p", null, "sample-children"))),
56
+ getByText = _render5.getByText;
57
+
58
+ expect(getByText("alert-text")).toBeTruthy();
59
+ expect(getByText("sample-children")).toBeTruthy();
60
+ });
61
+ test("Calls correct function on close", function () {
62
+ var onClose = jest.fn();
63
+
64
+ var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Alert["default"], {
65
+ onClose: onClose,
66
+ inlineText: "info-alert-text"
67
+ })),
68
+ getByRole = _render6.getByRole;
69
+
70
+ var closeButton = getByRole("button");
71
+
72
+ _react2.fireEvent.click(closeButton);
73
+
74
+ expect(onClose).toHaveBeenCalled();
75
+ });
76
+ test("Modal alert calls correct function on close", function () {
77
+ var onClose = jest.fn();
78
+
79
+ var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Alert["default"], {
80
+ onClose: onClose,
81
+ mode: "modal",
82
+ inlineText: "info-alert-text"
83
+ })),
84
+ getByRole = _render7.getByRole;
85
+
86
+ var closeButton = getByRole("button");
87
+
88
+ _react2.fireEvent.click(closeButton);
89
+
90
+ expect(onClose).toHaveBeenCalled();
91
+ });
92
+ });
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import BadgePropsType from "./types";
3
+ declare const DxcBadge: ({ notificationText }: BadgePropsType) => JSX.Element;
4
+ export default DxcBadge;
@@ -0,0 +1,4 @@
1
+ declare type Props = {
2
+ notificationText: boolean | number | string;
3
+ };
4
+ export default Props;
package/badge/types.js ADDED
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
package/bleed/types.d.ts CHANGED
@@ -1,13 +1,37 @@
1
1
  /// <reference types="react" />
2
2
  declare type Spacing = "none" | "xxxsmall" | "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge" | "xxxlarge";
3
3
  declare type Props = {
4
+ /**
5
+ * Applies the spacing scale to all sides.
6
+ */
4
7
  space?: Spacing;
8
+ /**
9
+ * Applies the spacing scale to the left and right sides.
10
+ */
5
11
  horizontal?: Spacing;
12
+ /**
13
+ * Applies the spacing scale to the top and bottom sides.
14
+ */
6
15
  vertical?: Spacing;
16
+ /**
17
+ * Applies the spacing scale to the top side.
18
+ */
7
19
  top?: Spacing;
20
+ /**
21
+ * Applies the spacing scale to the right side.
22
+ */
8
23
  right?: Spacing;
24
+ /**
25
+ * Applies the spacing scale to the bottom side.
26
+ */
9
27
  bottom?: Spacing;
28
+ /**
29
+ * Applies the spacing scale to the left side.
30
+ */
10
31
  left?: Spacing;
32
+ /**
33
+ * Custom content inside the bleed.
34
+ */
11
35
  children: React.ReactNode;
12
36
  };
13
37
  export default Props;
@@ -0,0 +1,18 @@
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/Card"));
10
+
11
+ describe("Box component tests", function () {
12
+ test("Box renders with correct text", function () {
13
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Card["default"], null, "test-box")),
14
+ getByText = _render.getByText;
15
+
16
+ expect(getByText("test-box")).toBeTruthy();
17
+ });
18
+ });
package/button/Button.js CHANGED
@@ -45,14 +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
- _onClick = _ref.onClick,
48
+ _ref$onClick = _ref.onClick,
49
+ _onClick = _ref$onClick === void 0 ? function () {} : _ref$onClick,
49
50
  margin = _ref.margin,
50
51
  _ref$size = _ref.size,
51
52
  size = _ref$size === void 0 ? "fitContent" : _ref$size,
52
53
  _ref$tabIndex = _ref.tabIndex,
53
54
  tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
55
+
54
56
  var colorsTheme = (0, _useTheme["default"])();
55
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
+
56
64
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
57
65
  theme: colorsTheme.button
58
66
  }, /*#__PURE__*/_react["default"].createElement(DxCButton, {
@@ -73,15 +81,12 @@ var DxcButton = function DxcButton(_ref) {
73
81
  onClick: function onClick() {
74
82
  _onClick();
75
83
  }
76
- }, label && /*#__PURE__*/_react["default"].createElement(LabelContainer, {
77
- icon: icon,
78
- iconPosition: iconPosition
79
- }, label), icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
84
+ }, label && iconPosition === "after" && labelComponent, icon && /*#__PURE__*/_react["default"].createElement(IconContainer, {
80
85
  label: label,
81
86
  iconPosition: iconPosition
82
87
  }, typeof icon === "string" ? /*#__PURE__*/_react["default"].createElement(ButtonIcon, {
83
88
  src: icon
84
- }) : icon))));
89
+ }) : icon), label && iconPosition === "before" && labelComponent)));
85
90
  };
86
91
 
87
92
  var sizes = {
@@ -118,7 +123,7 @@ var IconContainer = _styledComponents["default"].div(_templateObject2 || (_templ
118
123
 
119
124
  var ButtonIcon = _styledComponents["default"].img(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])([""])));
120
125
 
121
- 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) {
122
127
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
123
128
  }, function (props) {
124
129
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.top ? _variables.spaces[props.margin.top] : "";
@@ -140,8 +145,6 @@ var DxCButton = _styledComponents["default"].div(_templateObject4 || (_templateO
140
145
  return props.theme.paddingTop;
141
146
  }, function (props) {
142
147
  return props.theme.paddingBottom;
143
- }, function (props) {
144
- return props.iconPosition === "after" && "row" || "row-reverse";
145
148
  }, function (props) {
146
149
  return props.theme.fontFamily;
147
150
  }, function (props) {
@@ -159,9 +162,9 @@ var DxCButton = _styledComponents["default"].div(_templateObject4 || (_templateO
159
162
  backgroundType = props.backgroundType;
160
163
 
161
164
  if (mode === "primary") {
162
- 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 ");
163
166
  } else if (mode === "secondary") {
164
- 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 ");
165
168
  } else if (mode === "text") {
166
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 ");
167
170
  }
@@ -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/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
 
@@ -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;