@dxc-technology/halstack-react 0.0.0-9bd9511 → 0.0.0-9c20370

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 (213) hide show
  1. package/BackgroundColorContext.d.ts +3 -3
  2. package/BackgroundColorContext.js +12 -2
  3. package/HalstackContext.d.ts +1330 -7
  4. package/HalstackContext.js +84 -67
  5. package/accordion/Accordion.d.ts +1 -1
  6. package/accordion/Accordion.js +74 -55
  7. package/accordion/Accordion.stories.tsx +3 -101
  8. package/accordion/Accordion.test.js +34 -19
  9. package/accordion/types.d.ts +4 -16
  10. package/accordion-group/AccordionGroup.d.ts +4 -3
  11. package/accordion-group/AccordionGroup.js +49 -42
  12. package/accordion-group/AccordionGroup.stories.tsx +77 -76
  13. package/accordion-group/AccordionGroup.test.js +62 -54
  14. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  15. package/accordion-group/AccordionGroupAccordion.js +43 -0
  16. package/accordion-group/types.d.ts +6 -18
  17. package/alert/Alert.js +47 -20
  18. package/alert/Alert.test.js +46 -29
  19. package/alert/types.d.ts +3 -3
  20. package/badge/Badge.js +14 -2
  21. package/badge/types.d.ts +1 -1
  22. package/bleed/Bleed.js +21 -13
  23. package/bleed/Bleed.stories.tsx +1 -0
  24. package/bleed/types.d.ts +2 -2
  25. package/box/Box.d.ts +1 -1
  26. package/box/Box.js +33 -33
  27. package/box/Box.stories.tsx +25 -53
  28. package/box/Box.test.js +7 -2
  29. package/box/types.d.ts +3 -15
  30. package/bulleted-list/BulletedList.js +36 -9
  31. package/bulleted-list/BulletedList.stories.tsx +7 -1
  32. package/bulleted-list/types.d.ts +32 -5
  33. package/button/Button.d.ts +1 -1
  34. package/button/Button.js +83 -71
  35. package/button/Button.stories.tsx +4 -4
  36. package/button/Button.test.js +28 -8
  37. package/button/types.d.ts +8 -4
  38. package/card/Card.d.ts +1 -1
  39. package/card/Card.js +67 -62
  40. package/card/Card.stories.tsx +12 -42
  41. package/card/Card.test.js +22 -11
  42. package/card/types.d.ts +4 -10
  43. package/checkbox/Checkbox.js +71 -27
  44. package/checkbox/Checkbox.test.js +60 -33
  45. package/checkbox/types.d.ts +4 -4
  46. package/chip/Chip.js +51 -48
  47. package/chip/Chip.stories.tsx +25 -17
  48. package/chip/Chip.test.js +29 -17
  49. package/chip/types.d.ts +4 -4
  50. package/common/OpenSans.css +68 -80
  51. package/common/coreTokens.d.ts +146 -0
  52. package/common/coreTokens.js +167 -0
  53. package/common/utils.d.ts +1 -0
  54. package/common/utils.js +8 -3
  55. package/common/variables.d.ts +226 -175
  56. package/common/variables.js +956 -1133
  57. package/date-input/Calendar.js +55 -12
  58. package/date-input/DateInput.js +82 -35
  59. package/date-input/DateInput.test.js +351 -164
  60. package/date-input/DatePicker.js +38 -8
  61. package/date-input/Icons.js +12 -0
  62. package/date-input/YearPicker.js +30 -5
  63. package/date-input/types.d.ts +7 -7
  64. package/dialog/Dialog.d.ts +1 -1
  65. package/dialog/Dialog.js +83 -86
  66. package/dialog/Dialog.stories.tsx +127 -221
  67. package/dialog/Dialog.test.js +331 -18
  68. package/dialog/types.d.ts +1 -14
  69. package/dropdown/Dropdown.js +86 -32
  70. package/dropdown/Dropdown.test.js +211 -104
  71. package/dropdown/DropdownMenu.js +22 -8
  72. package/dropdown/DropdownMenuItem.js +15 -6
  73. package/dropdown/types.d.ts +8 -8
  74. package/file-input/FileInput.js +218 -134
  75. package/file-input/FileInput.test.js +343 -331
  76. package/file-input/FileItem.js +39 -12
  77. package/file-input/types.d.ts +10 -10
  78. package/flex/Flex.js +39 -25
  79. package/flex/Flex.stories.tsx +35 -26
  80. package/flex/types.d.ts +74 -9
  81. package/footer/Footer.d.ts +1 -1
  82. package/footer/Footer.js +80 -68
  83. package/footer/Footer.stories.tsx +12 -89
  84. package/footer/Footer.test.js +47 -40
  85. package/footer/Icons.js +4 -0
  86. package/footer/types.d.ts +15 -17
  87. package/grid/Grid.d.ts +7 -0
  88. package/grid/Grid.js +91 -0
  89. package/grid/Grid.stories.tsx +219 -0
  90. package/grid/types.d.ts +115 -0
  91. package/header/Header.d.ts +4 -3
  92. package/header/Header.js +72 -55
  93. package/header/Header.stories.tsx +7 -71
  94. package/header/Header.test.js +26 -13
  95. package/header/Icons.js +4 -0
  96. package/header/types.d.ts +2 -16
  97. package/heading/Heading.js +28 -7
  98. package/heading/Heading.test.js +88 -71
  99. package/heading/types.d.ts +3 -3
  100. package/inset/Inset.js +21 -13
  101. package/inset/Inset.stories.tsx +2 -1
  102. package/inset/types.d.ts +2 -2
  103. package/layout/ApplicationLayout.d.ts +5 -5
  104. package/layout/ApplicationLayout.js +57 -15
  105. package/layout/Icons.js +10 -0
  106. package/layout/SidenavContext.d.ts +1 -1
  107. package/layout/SidenavContext.js +4 -0
  108. package/layout/types.d.ts +5 -6
  109. package/link/Link.js +41 -21
  110. package/link/Link.test.js +42 -26
  111. package/link/types.d.ts +4 -4
  112. package/main.d.ts +2 -1
  113. package/main.js +55 -0
  114. package/nav-tabs/NavTabs.d.ts +2 -2
  115. package/nav-tabs/NavTabs.js +43 -16
  116. package/nav-tabs/NavTabs.stories.tsx +14 -0
  117. package/nav-tabs/NavTabs.test.js +44 -37
  118. package/nav-tabs/Tab.js +71 -45
  119. package/nav-tabs/types.d.ts +10 -11
  120. package/number-input/NumberInput.js +30 -20
  121. package/number-input/NumberInput.test.js +249 -113
  122. package/number-input/NumberInputContext.js +5 -0
  123. package/number-input/numberInputContextTypes.d.ts +1 -1
  124. package/number-input/types.d.ts +4 -4
  125. package/package.json +7 -7
  126. package/paginator/Icons.js +10 -0
  127. package/paginator/Paginator.js +39 -17
  128. package/paginator/Paginator.test.js +156 -104
  129. package/paginator/types.d.ts +1 -1
  130. package/paragraph/Paragraph.d.ts +3 -4
  131. package/paragraph/Paragraph.js +18 -8
  132. package/password-input/PasswordInput.js +51 -22
  133. package/password-input/PasswordInput.test.js +94 -51
  134. package/password-input/types.d.ts +4 -4
  135. package/progress-bar/ProgressBar.d.ts +2 -2
  136. package/progress-bar/ProgressBar.js +39 -14
  137. package/progress-bar/ProgressBar.test.js +53 -36
  138. package/progress-bar/types.d.ts +4 -3
  139. package/quick-nav/QuickNav.js +24 -2
  140. package/quick-nav/types.d.ts +2 -2
  141. package/radio-group/Radio.js +53 -22
  142. package/radio-group/RadioGroup.js +84 -41
  143. package/radio-group/RadioGroup.test.js +288 -186
  144. package/radio-group/types.d.ts +4 -4
  145. package/resultsetTable/Icons.js +3 -0
  146. package/resultsetTable/ResultsetTable.js +56 -21
  147. package/resultsetTable/ResultsetTable.test.js +75 -42
  148. package/resultsetTable/types.d.ts +5 -5
  149. package/select/Icons.js +3 -0
  150. package/select/Listbox.js +35 -10
  151. package/select/Option.js +24 -8
  152. package/select/Select.js +143 -56
  153. package/select/Select.test.js +839 -456
  154. package/select/types.d.ts +12 -12
  155. package/sidenav/Icons.d.ts +7 -0
  156. package/sidenav/Icons.js +51 -0
  157. package/sidenav/Sidenav.d.ts +2 -2
  158. package/sidenav/Sidenav.js +116 -104
  159. package/sidenav/Sidenav.stories.tsx +60 -60
  160. package/sidenav/Sidenav.test.js +10 -3
  161. package/sidenav/types.d.ts +26 -23
  162. package/slider/Slider.js +84 -38
  163. package/slider/Slider.test.js +104 -76
  164. package/slider/types.d.ts +4 -4
  165. package/spinner/Spinner.js +51 -28
  166. package/spinner/Spinner.stories.jsx +28 -28
  167. package/spinner/Spinner.test.js +35 -26
  168. package/spinner/types.d.ts +3 -3
  169. package/switch/Switch.js +66 -24
  170. package/switch/Switch.test.js +97 -52
  171. package/switch/types.d.ts +4 -4
  172. package/table/Table.js +22 -4
  173. package/table/Table.test.js +7 -2
  174. package/table/types.d.ts +3 -3
  175. package/tabs/Tab.js +39 -22
  176. package/tabs/Tabs.js +131 -62
  177. package/tabs/Tabs.test.js +122 -67
  178. package/tabs/types.d.ts +8 -8
  179. package/tag/Tag.js +54 -27
  180. package/tag/Tag.test.js +31 -20
  181. package/tag/types.d.ts +7 -7
  182. package/text-input/Icons.js +3 -0
  183. package/text-input/Suggestion.js +24 -8
  184. package/text-input/Suggestions.js +36 -11
  185. package/text-input/TextInput.js +144 -59
  186. package/text-input/TextInput.stories.tsx +1 -1
  187. package/text-input/TextInput.test.js +858 -539
  188. package/text-input/types.d.ts +9 -9
  189. package/textarea/Textarea.js +73 -38
  190. package/textarea/Textarea.test.js +173 -98
  191. package/textarea/types.d.ts +4 -4
  192. package/toggle-group/ToggleGroup.d.ts +2 -2
  193. package/toggle-group/ToggleGroup.js +59 -21
  194. package/toggle-group/ToggleGroup.test.js +72 -40
  195. package/toggle-group/types.d.ts +11 -11
  196. package/typography/Typography.d.ts +2 -2
  197. package/typography/Typography.js +23 -110
  198. package/typography/Typography.stories.tsx +1 -1
  199. package/typography/types.d.ts +1 -1
  200. package/useTheme.d.ts +1234 -1
  201. package/useTheme.js +6 -0
  202. package/useTranslatedLabels.d.ts +84 -2
  203. package/useTranslatedLabels.js +5 -0
  204. package/utils/BaseTypography.d.ts +21 -0
  205. package/utils/BaseTypography.js +108 -0
  206. package/utils/FocusLock.d.ts +13 -0
  207. package/utils/FocusLock.js +138 -0
  208. package/wizard/Wizard.js +47 -13
  209. package/wizard/Wizard.test.js +81 -54
  210. package/wizard/types.d.ts +7 -8
  211. package/card/ice-cream.jpg +0 -0
  212. package/translatedLabelsType.d.ts +0 -82
  213. /package/{translatedLabelsType.js → grid/types.js} +0 -0
@@ -1,55 +1,64 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  var _react = _interopRequireDefault(require("react"));
6
+
5
7
  var _react2 = require("@testing-library/react");
6
- var _Spinner = _interopRequireDefault(require("./Spinner"));
8
+
9
+ var _Spinner = _interopRequireDefault(require("./Spinner.tsx"));
10
+
7
11
  describe("Spinner component tests", function () {
8
12
  test("Spinner renders with correct label", function () {
9
13
  var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Spinner["default"], {
10
- label: "test-loading"
11
- })),
12
- getByText = _render.getByText;
14
+ label: "test-loading"
15
+ })),
16
+ getByText = _render.getByText;
17
+
13
18
  expect(getByText("test-loading")).toBeTruthy();
14
19
  });
15
20
  test("Spinner shows value correctly", function () {
16
21
  var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Spinner["default"], {
17
- label: "test-loading",
18
- value: 75,
19
- showValue: true
20
- })),
21
- getByText = _render2.getByText;
22
+ label: "test-loading",
23
+ value: 75,
24
+ showValue: true
25
+ })),
26
+ getByText = _render2.getByText;
27
+
22
28
  expect(getByText("75%")).toBeTruthy();
23
29
  });
24
30
  test("Small spinner hides value and label correctly", function () {
25
31
  var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Spinner["default"], {
26
- mode: "small",
27
- label: "test-loading",
28
- value: 75,
29
- showValue: true
30
- })),
31
- queryByText = _render3.queryByText;
32
+ mode: "small",
33
+ label: "test-loading",
34
+ value: 75,
35
+ showValue: true
36
+ })),
37
+ queryByText = _render3.queryByText;
38
+
32
39
  expect(queryByText("test-loading")).toBeFalsy();
33
40
  expect(queryByText("75%")).toBeFalsy();
34
41
  });
35
42
  test("Overlay spinner shows value and label correctly", function () {
36
43
  var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Spinner["default"], {
37
- mode: "overlay",
38
- label: "test-loading",
39
- value: 75,
40
- showValue: true
41
- })),
42
- getByText = _render4.getByText;
44
+ mode: "overlay",
45
+ label: "test-loading",
46
+ value: 75,
47
+ showValue: true
48
+ })),
49
+ getByText = _render4.getByText;
50
+
43
51
  expect(getByText("test-loading")).toBeTruthy();
44
52
  expect(getByText("75%")).toBeTruthy();
45
53
  });
46
54
  test("Get spinner by role", function () {
47
55
  var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Spinner["default"], {
48
- label: "test-loading",
49
- value: 75,
50
- showValue: true
51
- })),
52
- getByRole = _render5.getByRole;
56
+ label: "test-loading",
57
+ value: 75,
58
+ showValue: true
59
+ })),
60
+ getByRole = _render5.getByRole;
61
+
53
62
  expect(getByRole("progressbar")).toBeTruthy();
54
63
  });
55
64
  });
@@ -1,11 +1,11 @@
1
- type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
2
- type Margin = {
1
+ declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
2
+ declare type Margin = {
3
3
  top?: Space;
4
4
  bottom?: Space;
5
5
  left?: Space;
6
6
  right?: Space;
7
7
  };
8
- type Props = {
8
+ declare type Props = {
9
9
  /**
10
10
  * Text to be placed inside the spinner.
11
11
  */
package/switch/Switch.js CHANGED
@@ -1,57 +1,79 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  var _typeof3 = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
8
10
  exports["default"] = void 0;
11
+
9
12
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
+
10
14
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
+
11
16
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
+
12
18
  var _react = _interopRequireWildcard(require("react"));
19
+
13
20
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
+
14
22
  var _uuid = require("uuid");
23
+
15
24
  var _variables = require("../common/variables");
16
- var _utils = require("../common/utils.js");
25
+
26
+ var _utils = require("../common/utils");
27
+
17
28
  var _useTheme = _interopRequireDefault(require("../useTheme"));
29
+
18
30
  var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
31
+
19
32
  var _BackgroundColorContext = _interopRequireDefault(require("../BackgroundColorContext"));
33
+
20
34
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
35
+
21
36
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
37
+
22
38
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
39
+
23
40
  var DxcSwitch = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
24
41
  var defaultChecked = _ref.defaultChecked,
25
- checked = _ref.checked,
26
- value = _ref.value,
27
- _ref$label = _ref.label,
28
- label = _ref$label === void 0 ? "" : _ref$label,
29
- _ref$labelPosition = _ref.labelPosition,
30
- labelPosition = _ref$labelPosition === void 0 ? "before" : _ref$labelPosition,
31
- _ref$name = _ref.name,
32
- name = _ref$name === void 0 ? "" : _ref$name,
33
- _ref$disabled = _ref.disabled,
34
- disabled = _ref$disabled === void 0 ? false : _ref$disabled,
35
- _ref$optional = _ref.optional,
36
- optional = _ref$optional === void 0 ? false : _ref$optional,
37
- onChange = _ref.onChange,
38
- margin = _ref.margin,
39
- _ref$size = _ref.size,
40
- size = _ref$size === void 0 ? "fitContent" : _ref$size,
41
- _ref$tabIndex = _ref.tabIndex,
42
- tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
42
+ checked = _ref.checked,
43
+ value = _ref.value,
44
+ _ref$label = _ref.label,
45
+ label = _ref$label === void 0 ? "" : _ref$label,
46
+ _ref$labelPosition = _ref.labelPosition,
47
+ labelPosition = _ref$labelPosition === void 0 ? "before" : _ref$labelPosition,
48
+ _ref$name = _ref.name,
49
+ name = _ref$name === void 0 ? "" : _ref$name,
50
+ _ref$disabled = _ref.disabled,
51
+ disabled = _ref$disabled === void 0 ? false : _ref$disabled,
52
+ _ref$optional = _ref.optional,
53
+ optional = _ref$optional === void 0 ? false : _ref$optional,
54
+ onChange = _ref.onChange,
55
+ margin = _ref.margin,
56
+ _ref$size = _ref.size,
57
+ size = _ref$size === void 0 ? "fitContent" : _ref$size,
58
+ _ref$tabIndex = _ref.tabIndex,
59
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
60
+
43
61
  var _useState = (0, _react.useState)("switch-".concat((0, _uuid.v4)())),
44
- _useState2 = (0, _slicedToArray2["default"])(_useState, 1),
45
- switchId = _useState2[0];
62
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 1),
63
+ switchId = _useState2[0];
64
+
46
65
  var labelId = "label-".concat(switchId);
66
+
47
67
  var _useState3 = (0, _react.useState)(defaultChecked !== null && defaultChecked !== void 0 ? defaultChecked : false),
48
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
49
- innerChecked = _useState4[0],
50
- setInnerChecked = _useState4[1];
68
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
69
+ innerChecked = _useState4[0],
70
+ setInnerChecked = _useState4[1];
71
+
51
72
  var colorsTheme = (0, _useTheme["default"])();
52
73
  var translatedLabels = (0, _useTranslatedLabels["default"])();
53
74
  var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
54
75
  var refTrack = (0, _react.useRef)(null);
76
+
55
77
  var handleOnKeyDown = function handleOnKeyDown(event) {
56
78
  switch (event.key) {
57
79
  case "Enter":
@@ -65,12 +87,14 @@ var DxcSwitch = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
65
87
  break;
66
88
  }
67
89
  };
90
+
68
91
  var handlerSwitchChange = function handlerSwitchChange(event) {
69
92
  checked !== null && checked !== void 0 ? checked : setInnerChecked(function (innerChecked) {
70
93
  return !innerChecked;
71
94
  });
72
95
  onChange === null || onChange === void 0 ? void 0 : onChange(checked ? !checked : !innerChecked);
73
96
  };
97
+
74
98
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
75
99
  theme: colorsTheme["switch"]
76
100
  }, /*#__PURE__*/_react["default"].createElement(SwitchContainer, {
@@ -111,6 +135,7 @@ var DxcSwitch = /*#__PURE__*/_react["default"].forwardRef(function (_ref, ref) {
111
135
  label: label
112
136
  }, optional && /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, translatedLabels.formFields.optionalLabel), " ", label)));
113
137
  });
138
+
114
139
  var sizes = {
115
140
  small: "60px",
116
141
  medium: "240px",
@@ -118,49 +143,61 @@ var sizes = {
118
143
  fillParent: "100%",
119
144
  fitContent: "fit-content"
120
145
  };
146
+
121
147
  var calculateWidth = function calculateWidth(margin, size) {
122
148
  return size === "fillParent" ? "calc(".concat(sizes[size], " - ").concat((0, _utils.getMargin)(margin, "left"), " - ").concat((0, _utils.getMargin)(margin, "right"), ")") : sizes[size];
123
149
  };
150
+
124
151
  var getDisabledColor = function getDisabledColor(props, element, subelement) {
125
152
  switch (element) {
126
153
  case "track":
127
154
  switch (subelement) {
128
155
  case "check":
129
156
  return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledCheckedTrackBackgroundColorOnDark : props.theme.disabledCheckedTrackBackgroundColor;
157
+
130
158
  case "uncheck":
131
159
  return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledUncheckedTrackBackgroundColorOnDark : props.theme.disabledUncheckedTrackBackgroundColor;
132
160
  }
161
+
133
162
  case "thumb":
134
163
  switch (subelement) {
135
164
  case "check":
136
165
  return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledCheckedThumbBackgroundColorOnDark : props.theme.disabledCheckedThumbBackgroundColor;
166
+
137
167
  case "uncheck":
138
168
  return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledUncheckedThumbBackgroundColorOnDark : props.theme.disabledUncheckedThumbBackgroundColor;
139
169
  }
170
+
140
171
  case "label":
141
172
  return props.backgroundType && props.backgroundType === "dark" ? props.theme.disabledLabelFontColorOnDark : props.theme.disabledLabelFontColor;
142
173
  }
143
174
  };
175
+
144
176
  var getNotDisabledColor = function getNotDisabledColor(props, element, subelement) {
145
177
  switch (element) {
146
178
  case "track":
147
179
  switch (subelement) {
148
180
  case "check":
149
181
  return props.backgroundType && props.backgroundType === "dark" ? props.theme.checkedTrackBackgroundColorOnDark : props.theme.checkedTrackBackgroundColor;
182
+
150
183
  case "uncheck":
151
184
  return props.backgroundType && props.backgroundType === "dark" ? props.theme.uncheckedTrackBackgroundColorOnDark : props.theme.uncheckedTrackBackgroundColor;
152
185
  }
186
+
153
187
  case "thumb":
154
188
  switch (subelement) {
155
189
  case "check":
156
190
  return props.backgroundType && props.backgroundType === "dark" ? props.theme.checkedThumbBackgroundColorOnDark : props.theme.checkedThumbBackgroundColor;
191
+
157
192
  case "uncheck":
158
193
  return props.backgroundType && props.backgroundType === "dark" ? props.theme.uncheckedThumbBackgroundColorOnDark : props.theme.uncheckedThumbBackgroundColor;
159
194
  }
195
+
160
196
  case "label":
161
197
  return props.backgroundType && props.backgroundType === "dark" ? props.theme.labelFontColorOnDark : props.theme.labelFontColor;
162
198
  }
163
199
  };
200
+
164
201
  var SwitchContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n align-items: center;\n width: ", ";\n height: 40px;\n cursor: ", ";\n\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
165
202
  return calculateWidth(props.margin, props.size);
166
203
  }, function (props) {
@@ -176,6 +213,7 @@ var SwitchContainer = _styledComponents["default"].div(_templateObject || (_temp
176
213
  }, function (props) {
177
214
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
178
215
  });
216
+
179
217
  var LabelContainer = _styledComponents["default"].span(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n color: ", ";\n opacity: 1;\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n\n ", ";\n\n ", "\n"])), function (props) {
180
218
  return props.disabled ? getDisabledColor(props, "label") : getNotDisabledColor(props, "label");
181
219
  }, function (props) {
@@ -191,8 +229,11 @@ var LabelContainer = _styledComponents["default"].span(_templateObject2 || (_tem
191
229
  }, function (props) {
192
230
  return props.labelPosition === "before" && "order: -1";
193
231
  });
232
+
194
233
  var SwitchBase = _styledComponents["default"].label(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n justify-content: space-between;\n cursor: pointer;\n margin: 0px 12px;\n"])));
234
+
195
235
  var ValueInput = _styledComponents["default"].input(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n display: none;\n"])));
236
+
196
237
  var SwitchTrack = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n border-radius: 15px;\n width: ", ";\n height: ", ";\n position: relative;\n cursor: ", ";\n\n &:focus-visible {\n outline: none;\n ::before {\n outline: ", ";\n outline-offset: 6px;\n }\n }\n\n /* Thumb element */\n ::before {\n content: \"\";\n transform: initial;\n position: absolute;\n width: ", ";\n height: ", ";\n border-radius: 50%;\n box-shadow: 0px 2px 1px -1px rgb(0 0 0 / 20%), 0px 1px 1px 0px rgb(0 0 0 / 14%), 0px 1px 3px 0px rgb(0 0 0 / 12%);\n bottom: -6px;\n left: -4px;\n transform: translateX(0px);\n background-color: ", ";\n }\n\n /* Unchecked */\n background-color: ", ";\n\n /* Checked */\n &[aria-checked=\"true\"] {\n background-color: ", ";\n ::before {\n transform: translateX(", ");\n background-color: ", ";\n }\n }\n"])), function (props) {
197
238
  return props.theme.trackWidth;
198
239
  }, function (props) {
@@ -216,5 +257,6 @@ var SwitchTrack = _styledComponents["default"].span(_templateObject5 || (_templa
216
257
  }, function (props) {
217
258
  return props.disabled ? getDisabledColor(props, "thumb", "check") : getNotDisabledColor(props, "thumb", "check");
218
259
  });
260
+
219
261
  var _default = DxcSwitch;
220
262
  exports["default"] = _default;
@@ -1,143 +1,186 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
4
5
  var _react = _interopRequireDefault(require("react"));
6
+
5
7
  var _react2 = require("@testing-library/react");
6
- var _Switch = _interopRequireDefault(require("./Switch"));
8
+
9
+ var _Switch = _interopRequireDefault(require("./Switch.tsx"));
10
+
7
11
  describe("Switch component tests", function () {
8
12
  test("Switch renders with correct text", function () {
9
13
  var onChange = jest.fn(function (returnedValue) {
10
14
  expect(returnedValue).toBe(true);
11
15
  });
16
+
12
17
  var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Switch["default"], {
13
- label: "SwitchComponent",
14
- checked: false,
15
- onChange: onChange
16
- })),
17
- getByText = _render.getByText;
18
+ label: "SwitchComponent",
19
+ checked: false,
20
+ onChange: onChange
21
+ })),
22
+ getByText = _render.getByText;
23
+
18
24
  expect(getByText("SwitchComponent")).toBeTruthy();
19
25
  });
20
26
  test("Calls correct function on click", function () {
21
27
  var onChange = jest.fn();
28
+
22
29
  var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Switch["default"], {
23
- label: "SwitchComponent",
24
- checked: false,
25
- onChange: onChange
26
- })),
27
- getByText = _render2.getByText;
30
+ label: "SwitchComponent",
31
+ checked: false,
32
+ onChange: onChange
33
+ })),
34
+ getByText = _render2.getByText;
35
+
28
36
  _react2.fireEvent.click(getByText("SwitchComponent"));
37
+
29
38
  expect(onChange).toHaveBeenCalled();
30
39
  });
31
40
  test("Calls correct function on key down", function () {
32
41
  var onChange = jest.fn();
42
+
33
43
  var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Switch["default"], {
34
- label: "SwitchComponent",
35
- checked: false,
36
- onChange: onChange
37
- })),
38
- getByText = _render3.getByText;
44
+ label: "SwitchComponent",
45
+ checked: false,
46
+ onChange: onChange
47
+ })),
48
+ getByText = _render3.getByText;
49
+
39
50
  _react2.fireEvent.focus(getByText("SwitchComponent"));
51
+
40
52
  _react2.fireEvent.keyDown(getByText("SwitchComponent"), {
41
53
  key: "Enter"
42
54
  });
55
+
43
56
  expect(onChange).toHaveBeenCalled();
57
+
44
58
  _react2.fireEvent.keyDown(getByText("SwitchComponent"), {
45
59
  key: " "
46
60
  });
61
+
47
62
  expect(onChange).toHaveBeenCalled();
48
63
  });
49
64
  test("Everytime the user clicks the component the onchange function is called with the correct value CONTROLLED COMPONENT", function () {
50
65
  var onChange = jest.fn();
66
+
51
67
  var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Switch["default"], {
52
- label: "SwitchComponent",
53
- checked: false,
54
- onChange: onChange
55
- })),
56
- getByText = _render4.getByText;
68
+ label: "SwitchComponent",
69
+ checked: false,
70
+ onChange: onChange
71
+ })),
72
+ getByText = _render4.getByText;
73
+
57
74
  _react2.fireEvent.click(getByText("SwitchComponent"));
75
+
58
76
  _react2.fireEvent.click(getByText("SwitchComponent"));
77
+
59
78
  expect(onChange.mock.calls[0][0]).toBe(true);
60
79
  expect(onChange.mock.calls[1][0]).toBe(true);
61
80
  });
62
81
  test("Everytime the user use enter in the component, the onchange function is called with the correct value CONTROLLED COMPONENT", function () {
63
82
  var onChange = jest.fn();
83
+
64
84
  var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Switch["default"], {
65
- label: "SwitchComponent",
66
- checked: false,
67
- onChange: onChange
68
- })),
69
- getByText = _render5.getByText;
85
+ label: "SwitchComponent",
86
+ checked: false,
87
+ onChange: onChange
88
+ })),
89
+ getByText = _render5.getByText;
90
+
70
91
  _react2.fireEvent.focus(getByText("SwitchComponent"));
92
+
71
93
  _react2.fireEvent.keyDown(getByText("SwitchComponent"), {
72
94
  key: "Enter"
73
95
  });
96
+
74
97
  _react2.fireEvent.keyDown(getByText("SwitchComponent"), {
75
98
  key: "Enter"
76
99
  });
100
+
77
101
  expect(onChange.mock.calls[0][0]).toBe(true);
78
102
  expect(onChange.mock.calls[1][0]).toBe(true);
79
103
  });
80
104
  test("Everytime the user use space in the component, the onchange function is called with the correct value CONTROLLED COMPONENT", function () {
81
105
  var onChange = jest.fn();
106
+
82
107
  var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Switch["default"], {
83
- label: "SwitchComponent",
84
- checked: false,
85
- onChange: onChange
86
- })),
87
- getByText = _render6.getByText;
108
+ label: "SwitchComponent",
109
+ checked: false,
110
+ onChange: onChange
111
+ })),
112
+ getByText = _render6.getByText;
113
+
88
114
  _react2.fireEvent.focus(getByText("SwitchComponent"));
115
+
89
116
  _react2.fireEvent.keyDown(getByText("SwitchComponent"), {
90
117
  key: " "
91
118
  });
119
+
92
120
  _react2.fireEvent.keyDown(getByText("SwitchComponent"), {
93
121
  key: " "
94
122
  });
123
+
95
124
  expect(onChange.mock.calls[0][0]).toBe(true);
96
125
  expect(onChange.mock.calls[1][0]).toBe(true);
97
126
  });
98
127
  test("Everytime the user clicks the component the onchange function is called with the correct value UNCONTROLLED COMPONENT", function () {
99
128
  var onChange = jest.fn();
129
+
100
130
  var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Switch["default"], {
101
- label: "SwitchComponent",
102
- onChange: onChange
103
- })),
104
- getByText = _render7.getByText;
131
+ label: "SwitchComponent",
132
+ onChange: onChange
133
+ })),
134
+ getByText = _render7.getByText;
135
+
105
136
  _react2.fireEvent.click(getByText("SwitchComponent"));
137
+
106
138
  _react2.fireEvent.click(getByText("SwitchComponent"));
139
+
107
140
  expect(onChange.mock.calls[0][0]).toBe(true);
108
141
  expect(onChange.mock.calls[1][0]).toBe(false);
109
142
  });
110
143
  test("Everytime the user use enter in the component, the onchange function is called with the correct value UNCONTROLLED COMPONENT", function () {
111
144
  var onChange = jest.fn();
145
+
112
146
  var _render8 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Switch["default"], {
113
- label: "SwitchComponent",
114
- onChange: onChange
115
- })),
116
- getByText = _render8.getByText;
147
+ label: "SwitchComponent",
148
+ onChange: onChange
149
+ })),
150
+ getByText = _render8.getByText;
151
+
117
152
  _react2.fireEvent.focus(getByText("SwitchComponent"));
153
+
118
154
  _react2.fireEvent.keyDown(getByText("SwitchComponent"), {
119
155
  key: "Enter"
120
156
  });
157
+
121
158
  _react2.fireEvent.keyDown(getByText("SwitchComponent"), {
122
159
  key: "Enter"
123
160
  });
161
+
124
162
  expect(onChange.mock.calls[0][0]).toBe(true);
125
163
  expect(onChange.mock.calls[1][0]).toBe(false);
126
164
  });
127
165
  test("Everytime the user use space in the component, the onchange function is called with the correct value UNCONTROLLED COMPONENT", function () {
128
166
  var onChange = jest.fn();
167
+
129
168
  var _render9 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Switch["default"], {
130
- label: "SwitchComponent",
131
- onChange: onChange
132
- })),
133
- getByText = _render9.getByText;
169
+ label: "SwitchComponent",
170
+ onChange: onChange
171
+ })),
172
+ getByText = _render9.getByText;
173
+
134
174
  _react2.fireEvent.focus(getByText("SwitchComponent"));
175
+
135
176
  _react2.fireEvent.keyDown(getByText("SwitchComponent"), {
136
177
  key: " "
137
178
  });
179
+
138
180
  _react2.fireEvent.keyDown(getByText("SwitchComponent"), {
139
181
  key: " "
140
182
  });
183
+
141
184
  expect(onChange.mock.calls[0][0]).toBe(true);
142
185
  expect(onChange.mock.calls[1][0]).toBe(false);
143
186
  });
@@ -155,10 +198,11 @@ describe("Switch component tests", function () {
155
198
  });
156
199
  test("Renders with correct aria attributes", function () {
157
200
  var _render10 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Switch["default"], {
158
- label: "Default label"
159
- })),
160
- getByText = _render10.getByText,
161
- getByRole = _render10.getByRole;
201
+ label: "Default label"
202
+ })),
203
+ getByText = _render10.getByText,
204
+ getByRole = _render10.getByRole;
205
+
162
206
  var switchEl = getByRole("switch");
163
207
  var label = getByText("Default label");
164
208
  expect(switchEl.getAttribute("aria-labelledby")).toBe(label.id);
@@ -166,11 +210,12 @@ describe("Switch component tests", function () {
166
210
  });
167
211
  test("Renders disabled switch correctly", function () {
168
212
  var _render11 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Switch["default"], {
169
- label: "Default label",
170
- disabled: true
171
- })),
172
- getByText = _render11.getByText,
173
- getByRole = _render11.getByRole;
213
+ label: "Default label",
214
+ disabled: true
215
+ })),
216
+ getByText = _render11.getByText,
217
+ getByRole = _render11.getByRole;
218
+
174
219
  var switchEl = getByRole("switch");
175
220
  var label = getByText("Default label");
176
221
  expect(switchEl.getAttribute("aria-labelledby")).toBe(label.id);
package/switch/types.d.ts CHANGED
@@ -1,11 +1,11 @@
1
- export type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
2
- export type Margin = {
1
+ declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
2
+ declare type Margin = {
3
3
  top?: Space;
4
4
  bottom?: Space;
5
5
  left?: Space;
6
6
  right?: Space;
7
7
  };
8
- type Props = {
8
+ declare type Props = {
9
9
  /**
10
10
  * Initial state of the switch, only when it is uncontrolled.
11
11
  */
@@ -62,5 +62,5 @@ type Props = {
62
62
  /**
63
63
  * Reference to the component.
64
64
  */
65
- export type RefType = HTMLDivElement;
65
+ export declare type RefType = HTMLDivElement;
66
66
  export default Props;