@dxc-technology/halstack-react 0.0.0-afd5470 → 0.0.0-b1729d7

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 (155) hide show
  1. package/babel.config.js +6 -2
  2. package/dist/BackgroundColorContext.js +46 -0
  3. package/dist/ThemeContext.js +235 -2
  4. package/dist/V3Textarea/V3Textarea.js +264 -0
  5. package/dist/accordion/Accordion.js +168 -63
  6. package/dist/accordion-group/AccordionGroup.js +186 -0
  7. package/dist/alert/Alert.js +183 -84
  8. package/dist/alert/index.d.ts +51 -0
  9. package/dist/badge/Badge.js +63 -0
  10. package/dist/box/Box.js +31 -23
  11. package/dist/button/Button.js +83 -26
  12. package/dist/card/Card.js +72 -35
  13. package/dist/checkbox/Checkbox.js +98 -38
  14. package/dist/chip/Chip.js +128 -36
  15. package/dist/common/RequiredComponent.js +2 -8
  16. package/dist/common/utils.js +2 -22
  17. package/dist/common/variables.js +1439 -308
  18. package/dist/date/Date.js +80 -57
  19. package/dist/date-input/DateInput.js +400 -0
  20. package/dist/date-input/index.d.ts +95 -0
  21. package/dist/dialog/Dialog.js +58 -37
  22. package/dist/dropdown/Dropdown.js +199 -71
  23. package/dist/file-input/FileInput.js +644 -0
  24. package/dist/file-input/FileItem.js +280 -0
  25. package/dist/file-input/index.d.ts +81 -0
  26. package/dist/footer/Footer.js +121 -46
  27. package/dist/footer/Icons.js +77 -0
  28. package/dist/header/Header.js +171 -97
  29. package/dist/header/Icons.js +59 -0
  30. package/dist/heading/Heading.js +81 -16
  31. package/dist/input-text/Icons.js +22 -0
  32. package/dist/input-text/InputText.js +292 -106
  33. package/dist/layout/ApplicationLayout.js +52 -45
  34. package/dist/layout/Icons.js +55 -0
  35. package/dist/link/Link.js +136 -35
  36. package/dist/main.d.ts +8 -0
  37. package/dist/main.js +95 -7
  38. package/dist/new-select/NewSelect.js +836 -0
  39. package/dist/new-select/index.d.ts +53 -0
  40. package/dist/number-input/NumberInput.js +136 -0
  41. package/dist/number-input/NumberInputContext.js +16 -0
  42. package/dist/number-input/index.d.ts +113 -0
  43. package/dist/paginator/Icons.js +66 -0
  44. package/dist/paginator/Paginator.js +150 -63
  45. package/dist/password-input/PasswordInput.js +198 -0
  46. package/dist/password-input/index.d.ts +94 -0
  47. package/dist/progress-bar/ProgressBar.js +95 -38
  48. package/dist/radio/Radio.js +31 -17
  49. package/dist/resultsetTable/ResultsetTable.js +93 -68
  50. package/dist/select/Select.js +244 -146
  51. package/dist/sidenav/Sidenav.js +86 -129
  52. package/dist/slider/Slider.js +219 -73
  53. package/dist/spinner/Spinner.js +247 -59
  54. package/dist/switch/Switch.js +50 -27
  55. package/dist/table/Table.js +52 -13
  56. package/dist/tabs/Tabs.js +206 -35
  57. package/dist/tabs-for-sections/TabsForSections.js +1 -16
  58. package/dist/tag/Tag.js +85 -37
  59. package/dist/text-input/TextInput.js +971 -0
  60. package/dist/text-input/index.d.ts +135 -0
  61. package/dist/textarea/Textarea.js +248 -106
  62. package/dist/textarea/index.d.ts +117 -0
  63. package/dist/toggle/Toggle.js +16 -19
  64. package/dist/toggle-group/ToggleGroup.js +159 -46
  65. package/dist/upload/Upload.js +16 -11
  66. package/dist/upload/buttons-upload/ButtonsUpload.js +31 -14
  67. package/dist/upload/dragAndDropArea/DragAndDropArea.js +78 -28
  68. package/dist/upload/file-upload/FileToUpload.js +50 -24
  69. package/dist/upload/files-upload/FilesToUpload.js +16 -16
  70. package/dist/upload/readme.md +2 -2
  71. package/dist/upload/transaction/Transaction.js +44 -24
  72. package/dist/upload/transactions/Transactions.js +38 -20
  73. package/dist/useTheme.js +22 -0
  74. package/dist/wizard/Wizard.js +139 -55
  75. package/dist/wizard/invalid_icon.svg +4 -5
  76. package/dist/wizard/valid_icon.svg +4 -5
  77. package/package.json +13 -5
  78. package/test/AccordionGroup.test.js +125 -0
  79. package/test/Date.test.js +49 -45
  80. package/test/DateInput.test.js +242 -0
  81. package/test/Dropdown.test.js +15 -0
  82. package/test/FileInput.test.js +201 -0
  83. package/test/Footer.test.js +2 -7
  84. package/test/Header.test.js +5 -10
  85. package/test/InputText.test.js +53 -41
  86. package/test/Link.test.js +25 -7
  87. package/test/NumberInput.test.js +259 -0
  88. package/test/Paginator.test.js +72 -60
  89. package/test/PasswordInput.test.js +83 -0
  90. package/test/ResultsetTable.test.js +66 -19
  91. package/test/Select.test.js +55 -34
  92. package/test/Sidenav.test.js +22 -64
  93. package/test/Slider.test.js +24 -15
  94. package/test/Spinner.test.js +5 -0
  95. package/test/Tabs.test.js +21 -0
  96. package/test/TextInput.test.js +732 -0
  97. package/test/Textarea.test.js +193 -0
  98. package/test/ToggleGroup.test.js +5 -1
  99. package/test/Upload.test.js +5 -5
  100. package/test/{TextArea.test.js → V3TextArea.test.js} +6 -7
  101. package/dist/accordion/Accordion.stories.js +0 -207
  102. package/dist/accordion/readme.md +0 -96
  103. package/dist/alert/Alert.stories.js +0 -158
  104. package/dist/alert/close.svg +0 -4
  105. package/dist/alert/error.svg +0 -4
  106. package/dist/alert/info.svg +0 -4
  107. package/dist/alert/readme.md +0 -43
  108. package/dist/alert/success.svg +0 -4
  109. package/dist/alert/warning.svg +0 -4
  110. package/dist/button/Button.stories.js +0 -224
  111. package/dist/button/readme.md +0 -93
  112. package/dist/common/services/example-service.js +0 -10
  113. package/dist/common/services/example-service.test.js +0 -12
  114. package/dist/date/calendar.svg +0 -1
  115. package/dist/date/calendar_dark.svg +0 -1
  116. package/dist/dialog/Dialog.stories.js +0 -217
  117. package/dist/dialog/readme.md +0 -32
  118. package/dist/dropdown/Dropdown.stories.js +0 -249
  119. package/dist/dropdown/baseline-arrow_drop_down.svg +0 -1
  120. package/dist/dropdown/baseline-arrow_drop_down_wh.svg +0 -4
  121. package/dist/dropdown/baseline-arrow_drop_up.svg +0 -1
  122. package/dist/dropdown/baseline-arrow_drop_up_wh.svg +0 -4
  123. package/dist/dropdown/readme.md +0 -69
  124. package/dist/footer/Footer.stories.js +0 -94
  125. package/dist/footer/dxc_logo_wht.png +0 -0
  126. package/dist/footer/readme.md +0 -41
  127. package/dist/header/Header.stories.js +0 -176
  128. package/dist/header/close_icon.svg +0 -1
  129. package/dist/header/dxc_logo_black.png +0 -0
  130. package/dist/header/dxc_logo_blk_rgb.svg +0 -6
  131. package/dist/header/dxc_logo_white.png +0 -0
  132. package/dist/header/hamb_menu_black.svg +0 -1
  133. package/dist/header/hamb_menu_white.svg +0 -1
  134. package/dist/header/readme.md +0 -33
  135. package/dist/input-text/InputText.stories.js +0 -209
  136. package/dist/input-text/error.svg +0 -1
  137. package/dist/input-text/readme.md +0 -91
  138. package/dist/layout/SideNav.js +0 -67
  139. package/dist/layout/facebook.svg +0 -45
  140. package/dist/layout/linkedin.svg +0 -50
  141. package/dist/layout/twitter.svg +0 -53
  142. package/dist/paginator/images/next.svg +0 -3
  143. package/dist/paginator/images/nextPage.svg +0 -3
  144. package/dist/paginator/images/previous.svg +0 -3
  145. package/dist/paginator/images/previousPage.svg +0 -3
  146. package/dist/paginator/readme.md +0 -50
  147. package/dist/resultsetTable/arrow_downward-24px_wht.svg +0 -1
  148. package/dist/resultsetTable/arrow_upward-24px_wht.svg +0 -1
  149. package/dist/resultsetTable/unfold_more-24px_wht.svg +0 -1
  150. package/dist/select/Select.stories.js +0 -235
  151. package/dist/select/readme.md +0 -72
  152. package/dist/sidenav/arrow_icon.svg +0 -3
  153. package/dist/slider/Slider.stories.js +0 -241
  154. package/dist/toggle-group/readme.md +0 -82
  155. package/test/Toggle.test.js +0 -43
@@ -11,10 +11,10 @@ exports["default"] = void 0;
11
11
 
12
12
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
13
 
14
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
15
-
16
14
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
17
15
 
16
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
17
+
18
18
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
19
19
 
20
20
  var _react = _interopRequireWildcard(require("react"));
@@ -25,17 +25,35 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
25
25
 
26
26
  var _variables = require("../common/variables.js");
27
27
 
28
- var _utils = require("../common/utils.js");
29
-
30
- var _ThemeContext = _interopRequireDefault(require("../ThemeContext.js"));
28
+ var _useTheme = _interopRequireDefault(require("../useTheme.js"));
31
29
 
32
30
  var _valid_icon = _interopRequireDefault(require("./valid_icon.svg"));
33
31
 
34
32
  var _invalid_icon = _interopRequireDefault(require("./invalid_icon.svg"));
35
33
 
36
- function _templateObject12() {
34
+ function _templateObject14() {
37
35
  var data = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n height: ", ";\n ", "\n border: ", ";\n opacity: 1;\n flex-grow: 1;\n"]);
38
36
 
37
+ _templateObject14 = function _templateObject14() {
38
+ return data;
39
+ };
40
+
41
+ return data;
42
+ }
43
+
44
+ function _templateObject13() {
45
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n text-align: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n text-transform: ", ";\n ", ";\n margin: 0;\n"]);
46
+
47
+ _templateObject13 = function _templateObject13() {
48
+ return data;
49
+ };
50
+
51
+ return data;
52
+ }
53
+
54
+ function _templateObject12() {
55
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n text-align: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n ", ";\n text-transform: ", ";\n margin: 0;\n"]);
56
+
39
57
  _templateObject12 = function _templateObject12() {
40
58
  return data;
41
59
  };
@@ -44,7 +62,7 @@ function _templateObject12() {
44
62
  }
45
63
 
46
64
  function _templateObject11() {
47
- var data = (0, _taggedTemplateLiteral2["default"])(["\n text-align: left;\n font: Lighter 12px/17px Open Sans;\n letter-spacing: 0.58px;\n color: inherit;\n margin: 0;\n"]);
65
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n margin-left: 12px;\n"]);
48
66
 
49
67
  _templateObject11 = function _templateObject11() {
50
68
  return data;
@@ -54,7 +72,7 @@ function _templateObject11() {
54
72
  }
55
73
 
56
74
  function _templateObject10() {
57
- var data = (0, _taggedTemplateLiteral2["default"])(["\n text-align: left;\n font: Normal 16px/22px Open Sans;\n letter-spacing: 0.77px;\n color: inherit;\n margin: 0;\n ", "\n"]);
75
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n width: 18px;\n height: 18px;\n position: absolute;\n top: 22.5px;\n left: 22.5px;\n"]);
58
76
 
59
77
  _templateObject10 = function _templateObject10() {
60
78
  return data;
@@ -64,7 +82,7 @@ function _templateObject10() {
64
82
  }
65
83
 
66
84
  function _templateObject9() {
67
- var data = (0, _taggedTemplateLiteral2["default"])(["\n margin-left: 10px;\n color: ", ";\n ", "\n"]);
85
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n font-size: ", ";\n font-family: ", ";\n font-style: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n opacity: 1;\n margin: 0px 0px 0px 1px;\n"]);
68
86
 
69
87
  _templateObject9 = function _templateObject9() {
70
88
  return data;
@@ -74,7 +92,7 @@ function _templateObject9() {
74
92
  }
75
93
 
76
94
  function _templateObject8() {
77
- var data = (0, _taggedTemplateLiteral2["default"])(["\n width: 18px;\n height: 18px;\n position: absolute;\n bottom: 0px;\n right: 0px;\n"]);
95
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n background-color: ", ";\n mask: url(", ") no-repeat center;\n mask-size: ", ";\n height: ", ";\n width: ", ";\n"]);
78
96
 
79
97
  _templateObject8 = function _templateObject8() {
80
98
  return data;
@@ -84,7 +102,7 @@ function _templateObject8() {
84
102
  }
85
103
 
86
104
  function _templateObject7() {
87
- var data = (0, _taggedTemplateLiteral2["default"])(["\n font: Normal 16px/22px Open Sans;\n letter-spacing: 0.77px;\n color: ", ";\n opacity: 1;\n margin: 0;\n"]);
105
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n height: ", ";\n overflow: hidden;\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"]);
88
106
 
89
107
  _templateObject7 = function _templateObject7() {
90
108
  return data;
@@ -94,7 +112,7 @@ function _templateObject7() {
94
112
  }
95
113
 
96
114
  function _templateObject6() {
97
- var data = (0, _taggedTemplateLiteral2["default"])(["\n width: 19px;\n height: 19px;\n"]);
115
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n height: ", ";\n"]);
98
116
 
99
117
  _templateObject6 = function _templateObject6() {
100
118
  return data;
@@ -104,7 +122,7 @@ function _templateObject6() {
104
122
  }
105
123
 
106
124
  function _templateObject5() {
107
- var data = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n height: ", ";\n color: \"red\";\n ", "\n\n ", "\n\n ", "\n\n ", "\n\n border-radius: 45px;\n\n display: flex;\n justify-content: center;\n align-items: center;\n"]);
125
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n height: ", ";\n\n ", "\n ", ";\n\n border-radius: ", ";\n display: flex;\n justify-content: center;\n align-items: center;\n"]);
108
126
 
109
127
  _templateObject5 = function _templateObject5() {
110
128
  return data;
@@ -114,7 +132,7 @@ function _templateObject5() {
114
132
  }
115
133
 
116
134
  function _templateObject4() {
117
- var data = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n display: inline-flex;\n padding-bottom: 3px;\n"]);
135
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n display: inline-flex;\n padding-bottom: 4px;\n"]);
118
136
 
119
137
  _templateObject4 = function _templateObject4() {
120
138
  return data;
@@ -124,7 +142,7 @@ function _templateObject4() {
124
142
  }
125
143
 
126
144
  function _templateObject3() {
127
- var data = (0, _taggedTemplateLiteral2["default"])(["\n border: none;\n background: inherit;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n margin: ", ";\n\n padding: 0px;\n ", ";\n\n &:focus {\n outline: none;\n }\n\n &:hover {\n ", ";\n }\n"]);
145
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n border: none;\n background: inherit;\n display: flex;\n justify-content: flex-start;\n align-items: center;\n margin: ", ";\n\n padding: 0px;\n ", ";\n\n &:hover {\n ", ";\n }\n &:focus {\n outline: ", " auto 1px;\n }\n"]);
128
146
 
129
147
  _templateObject3 = function _templateObject3() {
130
148
  return data;
@@ -144,7 +162,7 @@ function _templateObject2() {
144
162
  }
145
163
 
146
164
  function _templateObject() {
147
- var data = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n flex-direction: ", ";\n justify-content: \"center\";\n ", ";\n\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"]);
165
+ var data = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n flex-direction: ", ";\n justify-content: \"center\";\n ", ";\n font-family: ", ";\n\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"]);
148
166
 
149
167
  _templateObject = function _templateObject() {
150
168
  return data;
@@ -159,18 +177,17 @@ var DxcWizard = function DxcWizard(_ref) {
159
177
  currentStep = _ref.currentStep,
160
178
  onStepClick = _ref.onStepClick,
161
179
  steps = _ref.steps,
162
- margin = _ref.margin;
180
+ margin = _ref.margin,
181
+ _ref$tabIndex = _ref.tabIndex,
182
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
163
183
 
164
- var _React$useState = _react["default"].useState(currentStep || 0),
165
- _React$useState2 = (0, _slicedToArray2["default"])(_React$useState, 2),
166
- innerCurrent = _React$useState2[0],
167
- setInnerCurrentStep = _React$useState2[1];
184
+ var _useState = (0, _react.useState)(currentStep || 0),
185
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
186
+ innerCurrent = _useState2[0],
187
+ setInnerCurrentStep = _useState2[1];
168
188
 
169
189
  var renderedCurrent = currentStep == null ? innerCurrent : currentStep;
170
- var customTheme = (0, _react.useContext)(_ThemeContext["default"]);
171
- var colorsTheme = (0, _react.useMemo)(function () {
172
- return (0, _utils.getCustomTheme)(_variables.theme, (0, _utils.getCustomTheme)(_variables.defaultTheme, customTheme));
173
- }, [customTheme]);
190
+ var colorsTheme = (0, _useTheme["default"])();
174
191
 
175
192
  var handleStepClick = function handleStepClick(newValue) {
176
193
  if (currentStep == null) {
@@ -183,7 +200,7 @@ var DxcWizard = function DxcWizard(_ref) {
183
200
  };
184
201
 
185
202
  return _react["default"].createElement(_styledComponents.ThemeProvider, {
186
- theme: colorsTheme
203
+ theme: colorsTheme.wizard
187
204
  }, _react["default"].createElement(StepsContainer, {
188
205
  mode: mode,
189
206
  margin: margin
@@ -193,11 +210,11 @@ var DxcWizard = function DxcWizard(_ref) {
193
210
  mode: mode,
194
211
  lastStep: i === steps.length - 1
195
212
  }, _react["default"].createElement(Step, {
213
+ tabIndex: tabIndex,
196
214
  onClick: function onClick() {
197
215
  return handleStepClick(i);
198
216
  },
199
217
  mode: mode,
200
- disable: step.disabled,
201
218
  disabled: step.disabled,
202
219
  first: i === 0,
203
220
  last: i === steps.length - 1
@@ -205,7 +222,12 @@ var DxcWizard = function DxcWizard(_ref) {
205
222
  current: i === renderedCurrent,
206
223
  visited: i < renderedCurrent,
207
224
  disabled: step.disabled
208
- }, step.iconSrc ? _react["default"].createElement(Icon, {
225
+ }, step.icon ? _react["default"].createElement(StepIconContainer, {
226
+ disabled: step.disabled
227
+ }, (0, _typeof2["default"])(step.icon) === "object" ? step.icon.type === "img" ? _react["default"].createElement(ImgContainer, {
228
+ current: i === renderedCurrent,
229
+ img: step.icon.props.src
230
+ }) : step.icon : _react["default"].createElement(step.icon)) : step.iconSrc ? _react["default"].createElement(Icon, {
209
231
  src: step.iconSrc
210
232
  }) : _react["default"].createElement(Number, {
211
233
  disabled: step.disabled,
@@ -214,12 +236,13 @@ var DxcWizard = function DxcWizard(_ref) {
214
236
  src: _valid_icon["default"]
215
237
  }) : _react["default"].createElement(ValidityIcon, {
216
238
  src: _invalid_icon["default"]
217
- }) : ""), step.label || step.description ? _react["default"].createElement(InfoContainer, {
218
- active: i <= innerCurrent,
219
- disable: step.disabled
220
- }, step.label ? _react["default"].createElement(Label, {
221
- disable: step.disabled
222
- }, step.label) : "", step.description ? _react["default"].createElement(Description, null, step.description) : "") : ""), i === steps.length - 1 ? "" : _react["default"].createElement(StepSeparator, {
239
+ }) : ""), step.label || step.description ? _react["default"].createElement(InfoContainer, null, step.label ? _react["default"].createElement(Label, {
240
+ disabled: step.disabled,
241
+ visited: i <= innerCurrent
242
+ }, step.label) : "", step.description ? _react["default"].createElement(Description, {
243
+ disabled: step.disabled,
244
+ visited: i <= innerCurrent
245
+ }, step.description) : "") : ""), i === steps.length - 1 ? "" : _react["default"].createElement(StepSeparator, {
223
246
  mode: mode
224
247
  }));
225
248
  })));
@@ -229,6 +252,8 @@ var StepsContainer = _styledComponents["default"].div(_templateObject(), functio
229
252
  return props.mode === "vertical" ? "column" : "row";
230
253
  }, function (props) {
231
254
  return props.mode === "vertical" ? "height: 500px" : "width: 100%";
255
+ }, function (props) {
256
+ return props.theme.fontFamily;
232
257
  }, function (props) {
233
258
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
234
259
  }, function (props) {
@@ -252,57 +277,114 @@ var StepContainer = _styledComponents["default"].div(_templateObject2(), functio
252
277
  });
253
278
 
254
279
  var Step = _styledComponents["default"].button(_templateObject3(), function (props) {
255
- return props.first ? props.mode === "vertical" ? "0 0 25px 0" : "0 25px 0 0" : props.last ? props.mode === "vertical" ? "25px 0 0 0" : "0 0 0 25px" : props.mode === "vertical" ? "25px 0" : "0 25px";
280
+ return props.first ? props.mode === "vertical" ? "0 0 24px 0" : "0 24px 0 0" : props.last ? props.mode === "vertical" ? "24px 0 0 0" : "0 0 0 24px" : props.mode === "vertical" ? "24px 0" : "0 24px";
256
281
  }, function (props) {
257
282
  return props.disabled ? "cursor: not-allowed" : "";
258
283
  }, function (props) {
259
284
  return props.disabled ? "" : "cursor: pointer";
285
+ }, function (props) {
286
+ return props.theme.focusColor;
260
287
  });
261
288
 
262
289
  var StepHeader = _styledComponents["default"].div(_templateObject4());
263
290
 
264
291
  var IconContainer = _styledComponents["default"].div(_templateObject5(), function (props) {
265
- return !props.current && !props.disabled ? "32px" : "36px";
266
- }, function (props) {
267
- return !props.current && !props.disabled ? "32px" : "36px";
292
+ return props.disabled ? props.theme.disabledCircleWidth : props.current ? props.theme.selectedCircleWidth : props.theme.circleWidth;
268
293
  }, function (props) {
269
- return !props.current && !props.disabled ? "border: 2px solid ".concat(props.theme.wizard.borderColor, ";") : "";
294
+ return props.disabled ? props.theme.disabledCircleHeight : props.current ? props.theme.selectedCircleHeight : props.theme.circleHeight;
270
295
  }, function (props) {
271
- return props.disabled ? "background: ".concat(props.theme.wizard.disabledBackground, ";\n p {\n color: ").concat(props.theme.wizard.disabledFont, " !important;\n }") : "";
296
+ return "\n ".concat(!props.current && !props.disabled ? "border: ".concat(props.theme.circleBorderThickness, " ").concat(props.theme.circleBorderStyle, " ").concat(props.theme.circleBorderColor, ";") : props.current ? "border: ".concat(props.theme.selectedCircleBorderThickness, " ").concat(props.theme.selectedCircleBorderStyle, " ").concat(props.theme.selectedCircleBorderColor, ";") : props.disabled ? "border: ".concat(props.theme.disabledCircleBorderThickness, " ").concat(props.theme.disabledCircleBorderStyle, " ").concat(props.theme.disabledCircleBorderColor, ";") : "", "\n background: ").concat(props.disabled ? "".concat(props.theme.disabledBackgroundColor) : props.current ? "".concat(props.theme.stepContainerSelectedBackgroundColor) : "".concat(props.theme.stepContainerBackgroundColor), ";\n ");
272
297
  }, function (props) {
273
- return props.current ? "background: ".concat(props.theme.wizard.selectedBackgroundColor, ";") : "";
298
+ return props.disabled ? "color: ".concat(props.theme.disabledFontColor, ";") : "color: ".concat(props.current ? props.theme.stepContainerSelectedFontColor : props.theme.stepContainerFontColor, ";");
274
299
  }, function (props) {
275
- return props.current ? "p {\n color: ".concat(props.theme.wizard.selectedFont, " !important;\n }") : "";
300
+ return !props.current && !props.disabled ? props.theme.circleBorderRadius : props.current ? props.theme.selectedCircleBorderRadius : props.disabled ? props.theme.disabledCircleBorderRadius : "";
276
301
  });
277
302
 
278
- var Icon = _styledComponents["default"].img(_templateObject6());
303
+ var Icon = _styledComponents["default"].img(_templateObject6(), function (props) {
304
+ return props.theme.stepContainerIconSize;
305
+ }, function (props) {
306
+ return props.theme.stepContainerIconSize;
307
+ });
279
308
 
280
- var Number = _styledComponents["default"].p(_templateObject7(), function (props) {
281
- return props.theme.wizard.fontColor;
309
+ var StepIconContainer = _styledComponents["default"].div(_templateObject7(), function (props) {
310
+ return props.theme.stepContainerIconSize;
311
+ }, function (props) {
312
+ return props.theme.stepContainerIconSize;
282
313
  });
283
314
 
284
- var ValidityIcon = _styledComponents["default"].img(_templateObject8());
315
+ var ImgContainer = _styledComponents["default"].div(_templateObject8(), function (props) {
316
+ return props.current ? props.theme.stepContainerSelectedFontColor : props.theme.stepContainerFontColor;
317
+ }, function (_ref2) {
318
+ var img = _ref2.img;
319
+ return img;
320
+ }, function (props) {
321
+ return "".concat(props.theme.stepContainerIconSize, " ").concat(props.theme.stepContainerIconSize);
322
+ }, function (props) {
323
+ return props.theme.stepContainerIconSize;
324
+ }, function (props) {
325
+ return props.theme.stepContainerIconSize;
326
+ });
285
327
 
286
- var InfoContainer = _styledComponents["default"].div(_templateObject9(), function (props) {
287
- return props.theme.wizard.fontColor;
328
+ var Number = _styledComponents["default"].p(_templateObject9(), function (props) {
329
+ return props.theme.stepContainerFontSize;
288
330
  }, function (props) {
289
- return !props.active && !props.disable ? "opacity: ".concat(props.theme.wizard.notVisitedOpacity) : "";
331
+ return props.theme.stepContainerFontFamily;
332
+ }, function (props) {
333
+ return props.theme.stepContainerFontStyle;
334
+ }, function (props) {
335
+ return props.theme.stepContainerFontWeight;
336
+ }, function (props) {
337
+ return props.theme.stepContainerLetterSpacing;
290
338
  });
291
339
 
292
- var Label = _styledComponents["default"].p(_templateObject10(), function (props) {
293
- return props.disable ? "opacity: ".concat(props.theme.wizard.disabled) : "";
340
+ var ValidityIcon = _styledComponents["default"].img(_templateObject10());
341
+
342
+ var InfoContainer = _styledComponents["default"].div(_templateObject11());
343
+
344
+ var Label = _styledComponents["default"].p(_templateObject12(), function (props) {
345
+ return props.theme.labelTextAlign;
346
+ }, function (props) {
347
+ return props.theme.labelFontFamily;
348
+ }, function (props) {
349
+ return props.theme.labelFontSize;
350
+ }, function (props) {
351
+ return props.theme.labelFontStyle;
352
+ }, function (props) {
353
+ return props.theme.labelFontWeight;
354
+ }, function (props) {
355
+ return props.theme.labelLetterSpacing;
356
+ }, function (props) {
357
+ return props.disabled ? "color: ".concat(props.theme.disabledFontColor, ";") : "color: ".concat(props.visited ? props.theme.visitedLabelFontColor : props.theme.labelFontColor, ";");
358
+ }, function (props) {
359
+ return props.theme.labelFontTextTransform;
294
360
  });
295
361
 
296
- var Description = _styledComponents["default"].p(_templateObject11());
362
+ var Description = _styledComponents["default"].p(_templateObject13(), function (props) {
363
+ return props.theme.descriptionTextAlign;
364
+ }, function (props) {
365
+ return props.theme.descriptionFontFamily;
366
+ }, function (props) {
367
+ return props.theme.descriptionFontSize;
368
+ }, function (props) {
369
+ return props.theme.descriptionFontStyle;
370
+ }, function (props) {
371
+ return props.theme.descriptionFontWeight;
372
+ }, function (props) {
373
+ return props.theme.descriptionLetterSpacing;
374
+ }, function (props) {
375
+ return props.theme.descriptionFontTextTransform;
376
+ }, function (props) {
377
+ return props.disabled ? "color: ".concat(props.theme.disabledFontColor, ";") : "color: ".concat(props.visited ? props.theme.visitedDescriptionFontColor : props.theme.descriptionFontColor, ";");
378
+ });
297
379
 
298
- var StepSeparator = _styledComponents["default"].div(_templateObject12(), function (props) {
380
+ var StepSeparator = _styledComponents["default"].div(_templateObject14(), function (props) {
299
381
  return props.mode === "horizontal" ? "" : "0";
300
382
  }, function (props) {
301
383
  return props.mode === "horizontal" ? "0" : "";
302
384
  }, function (props) {
303
385
  return props.mode === "vertical" ? "margin: 0 18px;" : "";
304
386
  }, function (props) {
305
- return "solid 1px ".concat(props.theme.wizard.lineColor);
387
+ return "".concat(props.theme.separatorBorderStyle, " ").concat(props.theme.separatorBorderThickness, " ").concat(props.theme.separatorColor);
306
388
  });
307
389
 
308
390
  DxcWizard.propTypes = {
@@ -312,6 +394,7 @@ DxcWizard.propTypes = {
312
394
  steps: _propTypes["default"].arrayOf(_propTypes["default"].shape({
313
395
  label: _propTypes["default"].string,
314
396
  description: _propTypes["default"].string,
397
+ icon: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].func]),
315
398
  iconSrc: _propTypes["default"].string,
316
399
  disabled: _propTypes["default"].bool,
317
400
  valid: _propTypes["default"].bool
@@ -321,7 +404,8 @@ DxcWizard.propTypes = {
321
404
  bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
322
405
  left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
323
406
  right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
324
- }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))])
407
+ }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
408
+ tabIndex: _propTypes["default"].number
325
409
  };
326
410
  var _default = DxcWizard;
327
411
  exports["default"] = _default;
@@ -1,6 +1,5 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="496" height="496" viewBox="0 0 496 496">
2
- <g id="Group_2913" data-name="Group 2913" transform="translate(5286 3925)">
3
- <path id="Path_2821" data-name="Path 2821" d="M240,0C372.548,0,480,107.452,480,240S372.548,480,240,480,0,372.548,0,240,107.452,0,240,0Z" transform="translate(-5278 -3917)" fill="#f9cfcf"/>
4
- <path id="times-circle-regular" d="M256,8C119,8,8,119,8,256S119,504,256,504,504,393,504,256,393,8,256,8Zm0,448A200,200,0,1,1,456,256,199.945,199.945,0,0,1,256,456ZM357.8,193.8,295.6,256l62.2,62.2a12.011,12.011,0,0,1,0,17l-22.6,22.6a12.011,12.011,0,0,1-17,0L256,295.6l-62.2,62.2a12.011,12.011,0,0,1-17,0l-22.6-22.6a12.011,12.011,0,0,1,0-17L216.4,256l-62.2-62.2a12.011,12.011,0,0,1,0-17l22.6-22.6a12.011,12.011,0,0,1,17,0L256,216.4l62.2-62.2a12.011,12.011,0,0,1,17,0l22.6,22.6a12.011,12.011,0,0,1,0,17Z" transform="translate(-5294 -3933)" fill="#e22"/>
5
- </g>
1
+ <svg id="highlight_off_black_18dp" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18">
2
+ <path id="Path_2943" data-name="Path 2943" d="M0,0H18V18H0Z" fill="none"/>
3
+ <path id="Path_2944" data-name="Path 2944" d="M10,4a6,6,0,1,0,6,6A6.01,6.01,0,0,0,10,4Zm3,7.945L11.945,13,10,11.06,8.059,13,7,11.945,8.944,10,7,8.059,8.059,7,10,8.944,11.945,7,13,8.059,11.06,10Z" transform="translate(-1.002 -1.002)" fill="#ffe6e9"/>
4
+ <path id="Path_2945" data-name="Path 2945" d="M11.444,6.5,9.5,8.443,7.558,6.5,6.5,7.558,8.443,9.5,6.5,11.444,7.558,12.5,9.5,10.558,11.444,12.5,12.5,11.444,10.558,9.5,12.5,7.558ZM9.5,2A7.5,7.5,0,1,0,17,9.5,7.494,7.494,0,0,0,9.5,2Zm0,13.5a6,6,0,1,1,6-6A6.009,6.009,0,0,1,9.5,15.5Z" transform="translate(-0.501 -0.501)" fill="#d0011b"/>
6
5
  </svg>
@@ -1,6 +1,5 @@
1
- <svg xmlns="http://www.w3.org/2000/svg" width="496" height="496" viewBox="0 0 496 496">
2
- <g id="Group_2914" data-name="Group 2914" transform="translate(4677 3925)">
3
- <path id="Path_2822" data-name="Path 2822" d="M240,0C372.548,0,480,107.452,480,240S372.548,480,240,480,0,372.548,0,240,107.452,0,240,0Z" transform="translate(-4669 -3917)" fill="#dbf1c4"/>
4
- <path id="check-circle-regular" d="M256,8C119.033,8,8,119.033,8,256S119.033,504,256,504,504,392.967,504,256,392.967,8,256,8Zm0,48A200,200,0,1,1,56,256,199.893,199.893,0,0,1,256,56M396.2,186.267l-22.536-22.718a12,12,0,0,0-16.97-.068L215.346,303.7,155.554,243.42a12,12,0,0,0-16.97-.069l-22.719,22.536a12,12,0,0,0-.068,16.971l90.781,91.516a12,12,0,0,0,16.97.068l172.589-171.2a12,12,0,0,0,.067-16.971Z" transform="translate(-4685 -3933)" fill="#7ed321"/>
5
- </g>
1
+ <svg id="check_circle_black_18dp" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18">
2
+ <path id="Path_2946" data-name="Path 2946" d="M0,0H18V18H0Z" fill="none"/>
3
+ <path id="Path_2947" data-name="Path 2947" d="M9.986,4a5.986,5.986,0,1,0,5.986,5.986A5.994,5.994,0,0,0,9.986,4Zm-1.5,9.727L5.5,10.734,6.551,9.679l1.938,1.93L13.42,6.679l1.055,1.063Z" transform="translate(-0.986 -0.986)" fill="#eafaef" opacity="0.999"/>
4
+ <path id="Path_2948" data-name="Path 2948" d="M9.493,2a7.493,7.493,0,1,0,7.493,7.493A7.5,7.5,0,0,0,9.493,2Zm0,13.487a5.994,5.994,0,1,1,5.994-5.994A6,6,0,0,1,9.493,15.487Zm3.439-9.306L7.994,11.119,6.054,9.186,5,10.242l3,3,5.994-5.994Z" transform="translate(-0.493 -0.493)" fill="#24a148"/>
6
5
  </svg>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxc-technology/halstack-react",
3
- "version": "0.0.0-afd5470",
3
+ "version": "0.0.0-b1729d7",
4
4
  "description": "DXC Halstack React components library",
5
5
  "repository": "dxc-technology/halstack-react",
6
6
  "homepage": "http://developer.dxc.com/tools/react",
@@ -11,6 +11,7 @@
11
11
  "url": "https://dxc.com"
12
12
  },
13
13
  "main": "./dist/main.js",
14
+ "types": "./dist/main.d.ts",
14
15
  "peerDependencies": {
15
16
  "react": "^16.8.6",
16
17
  "react-dom": "^16.8.6",
@@ -18,15 +19,19 @@
18
19
  },
19
20
  "dependencies": {
20
21
  "@date-io/date-fns": "^1.3.9",
21
- "@material-ui/core": "4.1.1",
22
+ "@material-ui/core": "4.11.1",
22
23
  "@material-ui/icons": "4.4.3",
23
24
  "@material-ui/lab": "4.0.0-alpha.17",
24
25
  "@material-ui/pickers": "3.2.2",
25
26
  "@material-ui/styles": "4.0.2",
27
+ "@testing-library/user-event": "^12.6.3",
28
+ "color": "^3.1.3",
26
29
  "date-fns": "^2.0.0-beta.4",
27
30
  "moment": "2.24.0",
28
31
  "prop-types": "^15.7.2",
29
- "react-use-scrollspy": "^2.0.0"
32
+ "react-use-scrollspy": "^2.0.0",
33
+ "rgb-hex": "^3.0.0",
34
+ "uuid": "^8.3.2"
30
35
  },
31
36
  "scripts": {
32
37
  "test": "jest",
@@ -38,10 +43,12 @@
38
43
  "@babel/cli": "^7.6.2",
39
44
  "@babel/core": "^7.6.2",
40
45
  "@babel/plugin-proposal-class-properties": "^7.5.5",
46
+ "@babel/plugin-proposal-nullish-coalescing-operator": "7.13.8",
47
+ "@babel/plugin-proposal-optional-chaining": "7.13.8",
41
48
  "@babel/plugin-transform-runtime": "^7.10.1",
42
49
  "@babel/preset-env": "^7.6.2",
43
50
  "@babel/preset-react": "^7.0.0",
44
- "@testing-library/react": "^10.0.2",
51
+ "@testing-library/react": "^11.2.5",
45
52
  "babel-jest": "^24.8.0",
46
53
  "babel-loader": "^8.0.6",
47
54
  "eslint": "^5.16.0",
@@ -51,11 +58,12 @@
51
58
  "eslint-plugin-jest": "^22.7.1",
52
59
  "eslint-plugin-jsx-a11y": "^6.2.1",
53
60
  "eslint-plugin-react": "^7.13.0",
61
+ "eslint-plugin-react-hooks": "^4.2.0",
54
62
  "identity-obj-proxy": "^3.0.0",
55
63
  "jest": "^25.5.4",
56
- "react-test-renderer": "^16.8.6",
57
64
  "react": "file:../node_modules/react",
58
65
  "react-dom": "file:../node_modules/react-dom",
66
+ "react-test-renderer": "^16.8.6",
59
67
  "styled-components": "file:../node_modules/styled-components"
60
68
  },
61
69
  "jest": {
@@ -0,0 +1,125 @@
1
+ import React from "react";
2
+ import { render, fireEvent } from "@testing-library/react";
3
+ import DxcAccordionGroup from "../src/accordion-group/AccordionGroup";
4
+
5
+ describe("Accordion component tests", () => {
6
+ test("Uncontrolled accordion group renders with children", () => {
7
+ const { getByText, getAllByRole } = render(
8
+ <DxcAccordionGroup>
9
+ <DxcAccordionGroup.Accordion label="Accordion1" padding="medium">
10
+ <div>
11
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit
12
+ leo lobortis eget.
13
+ </div>
14
+ </DxcAccordionGroup.Accordion>
15
+ <DxcAccordionGroup.Accordion label="Accordion2" padding="medium">
16
+ <div>
17
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit
18
+ leo lobortis eget.
19
+ </div>
20
+ </DxcAccordionGroup.Accordion>
21
+ </DxcAccordionGroup>
22
+ );
23
+
24
+ expect(getByText("Accordion1")).toBeTruthy();
25
+ expect(getByText("Accordion2")).toBeTruthy();
26
+ expect(getAllByRole("button")[0].getAttribute("aria-expanded")).toBe("false");
27
+ expect(getAllByRole("button")[1].getAttribute("aria-expanded")).toBe("false");
28
+ });
29
+
30
+ test("Uncontrolled accordion group renders with only one children", () => {
31
+ const { getByText, getAllByRole } = render(
32
+ <DxcAccordionGroup>
33
+ <DxcAccordionGroup.Accordion label="Accordion1" padding="medium">
34
+ <div>
35
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit
36
+ leo lobortis eget.
37
+ </div>
38
+ </DxcAccordionGroup.Accordion>
39
+ </DxcAccordionGroup>
40
+ );
41
+
42
+ expect(getByText("Accordion1")).toBeTruthy();
43
+ expect(getAllByRole("button")[0].getAttribute("aria-expanded")).toBe("false");
44
+ });
45
+
46
+ test("Uncontrolled accordion group calls correct function on click", () => {
47
+ const onActiveChange = jest.fn();
48
+ const { getByText, getAllByRole } = render(
49
+ <DxcAccordionGroup margin="large" onActiveChange={onActiveChange}>
50
+ <DxcAccordionGroup.Accordion label="Accordion1" padding="medium" margin="large">
51
+ <div>
52
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit
53
+ leo lobortis eget.
54
+ </div>
55
+ </DxcAccordionGroup.Accordion>
56
+ <DxcAccordionGroup.Accordion label="Accordion2" padding="medium">
57
+ <div>
58
+ Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse malesuada lacus ex, sit amet blandit
59
+ leo lobortis eget.
60
+ </div>
61
+ </DxcAccordionGroup.Accordion>
62
+ </DxcAccordionGroup>
63
+ );
64
+
65
+ expect(getAllByRole("button")[0].getAttribute("aria-expanded")).toBe("false");
66
+ expect(getAllByRole("button")[1].getAttribute("aria-expanded")).toBe("false");
67
+ fireEvent.click(getByText("Accordion1"));
68
+ expect(onActiveChange).toHaveBeenCalled();
69
+ expect(getAllByRole("button")[0].getAttribute("aria-expanded")).toBe("true");
70
+ expect(getAllByRole("button")[1].getAttribute("aria-expanded")).toBe("false");
71
+ });
72
+
73
+ test("Controlled accordion with indexActive change", () => {
74
+ const onActiveChange = jest.fn();
75
+ const { getByText, getAllByRole, rerender } = render(
76
+ <DxcAccordionGroup margin="large" indexActive={1} onActiveChange={onActiveChange}>
77
+ <DxcAccordionGroup.Accordion label="Accordion1" padding="medium" margin="large">
78
+ <div>Text1</div>
79
+ </DxcAccordionGroup.Accordion>
80
+ <DxcAccordionGroup.Accordion label="Accordion2" padding="medium">
81
+ <div>Text2</div>
82
+ </DxcAccordionGroup.Accordion>
83
+ </DxcAccordionGroup>
84
+ );
85
+ expect(getByText("Text1")).toBeTruthy();
86
+ expect(getByText("Text2")).toBeTruthy();
87
+ fireEvent.click(getByText("Accordion1"));
88
+ fireEvent.click(getByText("Accordion2"));
89
+ expect(onActiveChange.mock.calls[0][0]).toBe(0);
90
+ expect(onActiveChange.mock.calls[1][0]).toBe(1);
91
+ expect(getAllByRole("button")[0].getAttribute("aria-expanded")).toBe("false");
92
+ expect(getAllByRole("button")[1].getAttribute("aria-expanded")).toBe("true");
93
+
94
+ rerender(
95
+ <DxcAccordionGroup margin="large" indexActive={0} onActiveChange={onActiveChange}>
96
+ <DxcAccordionGroup.Accordion label="Accordion1" padding="medium" margin="large">
97
+ <div>Text1</div>
98
+ </DxcAccordionGroup.Accordion>
99
+ <DxcAccordionGroup.Accordion label="Accordion2" padding="medium">
100
+ <div>Text2</div>
101
+ </DxcAccordionGroup.Accordion>
102
+ </DxcAccordionGroup>
103
+ );
104
+
105
+ expect(getAllByRole("button")[0].getAttribute("aria-expanded")).toBe("true");
106
+ expect(getAllByRole("button")[1].getAttribute("aria-expanded")).toBe("false");
107
+ });
108
+
109
+ test("Disabled uncontrolled accordion group", () => {
110
+ const onActiveChange = jest.fn();
111
+ const { getByText } = render(
112
+ <DxcAccordionGroup margin="large" onActiveChange={onActiveChange} disabled={true}>
113
+ <DxcAccordionGroup.Accordion label="Accordion1" padding="medium" margin="large">
114
+ <div>Text1</div>
115
+ </DxcAccordionGroup.Accordion>
116
+ <DxcAccordionGroup.Accordion label="Accordion2" padding="medium">
117
+ <div>Text2</div>
118
+ </DxcAccordionGroup.Accordion>
119
+ </DxcAccordionGroup>
120
+ );
121
+ fireEvent.click(getByText("Accordion1"));
122
+ fireEvent.click(getByText("Accordion2"));
123
+ expect(onActiveChange).toHaveBeenCalledTimes(0);
124
+ });
125
+ });