@dxc-technology/halstack-react 0.0.0-1f647e3 → 0.0.0-1f7dada

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 (171) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +1 -3
  3. package/ThemeContext.d.ts +15 -0
  4. package/ThemeContext.js +5 -8
  5. package/V3Select/V3Select.js +2 -2
  6. package/V3Textarea/V3Textarea.js +2 -2
  7. package/accordion/Accordion.js +2 -2
  8. package/accordion/Accordion.stories.tsx +300 -0
  9. package/accordion/types.d.ts +1 -1
  10. package/accordion-group/AccordionGroup.js +2 -2
  11. package/accordion-group/AccordionGroup.stories.tsx +225 -0
  12. package/accordion-group/types.d.ts +1 -1
  13. package/alert/Alert.js +2 -2
  14. package/alert/Alert.stories.tsx +170 -0
  15. package/alert/types.d.ts +1 -1
  16. package/badge/Badge.js +1 -1
  17. package/box/Box.d.ts +4 -0
  18. package/box/Box.js +6 -32
  19. package/box/{Box.stories.jsx → Box.stories.tsx} +0 -0
  20. package/box/types.d.ts +43 -0
  21. package/box/types.js +5 -0
  22. package/button/Button.d.ts +1 -1
  23. package/button/Button.js +6 -4
  24. package/button/Button.stories.tsx +216 -233
  25. package/button/types.d.ts +2 -2
  26. package/card/Card.js +5 -6
  27. package/card/Card.stories.tsx +201 -0
  28. package/card/ice-cream.jpg +0 -0
  29. package/card/types.d.ts +4 -6
  30. package/checkbox/Checkbox.js +2 -2
  31. package/checkbox/types.d.ts +1 -1
  32. package/chip/Chip.d.ts +4 -0
  33. package/chip/Chip.js +5 -27
  34. package/chip/Chip.stories.tsx +121 -0
  35. package/chip/types.d.ts +53 -0
  36. package/chip/types.js +5 -0
  37. package/common/variables.js +32 -27
  38. package/date/Date.js +1 -1
  39. package/date-input/DateInput.js +4 -7
  40. package/date-input/DateInput.stories.tsx +138 -0
  41. package/dialog/Dialog.js +2 -2
  42. package/dialog/Dialog.stories.tsx +212 -0
  43. package/dropdown/Dropdown.js +1 -1
  44. package/dropdown/types.d.ts +1 -1
  45. package/file-input/FileInput.d.ts +4 -0
  46. package/file-input/FileInput.js +65 -76
  47. package/file-input/FileItem.d.ts +14 -0
  48. package/file-input/FileItem.js +12 -21
  49. package/file-input/types.d.ts +112 -0
  50. package/file-input/types.js +5 -0
  51. package/footer/Footer.d.ts +1 -1
  52. package/footer/Footer.js +12 -18
  53. package/footer/{Footer.stories.jsx → Footer.stories.tsx} +1 -22
  54. package/footer/Icons.d.ts +2 -0
  55. package/footer/Icons.js +3 -3
  56. package/footer/types.d.ts +22 -18
  57. package/header/Header.js +2 -2
  58. package/header/Header.stories.tsx +162 -0
  59. package/header/Icons.d.ts +2 -0
  60. package/header/types.d.ts +4 -2
  61. package/heading/Heading.d.ts +4 -0
  62. package/heading/Heading.js +7 -24
  63. package/heading/Heading.stories.tsx +53 -0
  64. package/heading/types.d.ts +33 -0
  65. package/heading/types.js +5 -0
  66. package/input-text/InputText.js +2 -2
  67. package/layout/ApplicationLayout.d.ts +10 -0
  68. package/layout/ApplicationLayout.js +8 -18
  69. package/layout/ApplicationLayout.stories.tsx +171 -0
  70. package/layout/types.d.ts +57 -0
  71. package/layout/types.js +5 -0
  72. package/link/Link.js +3 -3
  73. package/link/Link.stories.tsx +146 -0
  74. package/list/List.d.ts +8 -0
  75. package/list/List.js +47 -0
  76. package/list/List.stories.tsx +85 -0
  77. package/main.d.ts +7 -3
  78. package/main.js +34 -2
  79. package/number-input/NumberInput.d.ts +4 -0
  80. package/number-input/NumberInput.js +5 -50
  81. package/number-input/{NumberInput.stories.jsx → NumberInput.stories.tsx} +0 -0
  82. package/number-input/NumberInputContext.d.ts +4 -0
  83. package/number-input/NumberInputContext.js +5 -2
  84. package/number-input/numberInputContextTypes.d.ts +19 -0
  85. package/number-input/numberInputContextTypes.js +5 -0
  86. package/number-input/types.d.ts +117 -0
  87. package/number-input/types.js +5 -0
  88. package/package.json +1 -1
  89. package/paginator/Paginator.js +2 -8
  90. package/password-input/PasswordInput.js +19 -18
  91. package/password-input/types.d.ts +17 -10
  92. package/progress-bar/ProgressBar.js +2 -2
  93. package/radio/Radio.js +2 -2
  94. package/radio/types.d.ts +2 -2
  95. package/resultsetTable/ResultsetTable.d.ts +4 -0
  96. package/resultsetTable/ResultsetTable.js +4 -27
  97. package/resultsetTable/ResultsetTable.stories.tsx +276 -0
  98. package/resultsetTable/types.d.ts +67 -0
  99. package/resultsetTable/types.js +5 -0
  100. package/row/Row.d.ts +11 -0
  101. package/row/Row.js +124 -0
  102. package/row/Row.stories.tsx +223 -0
  103. package/select/Select.js +15 -17
  104. package/select/Select.stories.tsx +572 -0
  105. package/sidenav/Sidenav.d.ts +9 -0
  106. package/sidenav/Sidenav.js +6 -15
  107. package/sidenav/Sidenav.stories.tsx +165 -0
  108. package/sidenav/types.d.ts +50 -0
  109. package/sidenav/types.js +5 -0
  110. package/slider/Slider.d.ts +1 -1
  111. package/slider/Slider.js +43 -32
  112. package/slider/Slider.stories.tsx +177 -0
  113. package/slider/types.d.ts +2 -7
  114. package/spinner/Spinner.js +2 -2
  115. package/stack/Stack.d.ts +10 -0
  116. package/stack/Stack.js +94 -0
  117. package/stack/Stack.stories.tsx +150 -0
  118. package/switch/Switch.js +2 -2
  119. package/table/Table.js +3 -3
  120. package/tabs/Tabs.js +4 -2
  121. package/tabs/Tabs.stories.tsx +121 -0
  122. package/tabs/types.d.ts +3 -4
  123. package/tag/Tag.d.ts +4 -0
  124. package/tag/Tag.js +4 -25
  125. package/tag/{Tag.stories.jsx → Tag.stories.tsx} +0 -0
  126. package/tag/types.d.ts +60 -0
  127. package/tag/types.js +5 -0
  128. package/text/Text.d.ts +7 -0
  129. package/text/Text.js +30 -0
  130. package/text/Text.stories.tsx +19 -0
  131. package/text-input/TextInput.d.ts +4 -0
  132. package/text-input/TextInput.js +42 -81
  133. package/text-input/TextInput.stories.tsx +456 -0
  134. package/text-input/types.d.ts +159 -0
  135. package/text-input/types.js +5 -0
  136. package/textarea/Textarea.d.ts +4 -0
  137. package/textarea/Textarea.js +27 -60
  138. package/textarea/types.d.ts +130 -0
  139. package/textarea/types.js +5 -0
  140. package/toggle/Toggle.js +1 -1
  141. package/toggle-group/ToggleGroup.d.ts +4 -0
  142. package/toggle-group/ToggleGroup.js +8 -34
  143. package/toggle-group/ToggleGroup.stories.tsx +178 -0
  144. package/toggle-group/types.d.ts +84 -0
  145. package/toggle-group/types.js +5 -0
  146. package/upload/buttons-upload/ButtonsUpload.js +2 -2
  147. package/upload/dragAndDropArea/DragAndDropArea.js +2 -2
  148. package/upload/file-upload/FileToUpload.js +1 -1
  149. package/upload/files-upload/FilesToUpload.js +1 -1
  150. package/upload/transaction/Transaction.js +2 -2
  151. package/upload/transactions/Transactions.js +1 -1
  152. package/useTheme.d.ts +2 -0
  153. package/useTheme.js +1 -1
  154. package/wizard/Wizard.d.ts +4 -0
  155. package/wizard/Wizard.js +69 -59
  156. package/wizard/Wizard.stories.tsx +224 -0
  157. package/wizard/types.d.ts +60 -0
  158. package/wizard/types.js +5 -0
  159. package/box/index.d.ts +0 -25
  160. package/chip/index.d.ts +0 -22
  161. package/file-input/index.d.ts +0 -81
  162. package/heading/index.d.ts +0 -17
  163. package/number-input/index.d.ts +0 -113
  164. package/resultsetTable/index.d.ts +0 -19
  165. package/sidenav/index.d.ts +0 -13
  166. package/tag/index.d.ts +0 -24
  167. package/text-input/index.d.ts +0 -135
  168. package/textarea/index.d.ts +0 -117
  169. package/toggle-group/index.d.ts +0 -21
  170. package/wizard/Icons.js +0 -65
  171. package/wizard/index.d.ts +0 -18
@@ -0,0 +1,84 @@
1
+ /// <reference types="react" />
2
+ declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
+ declare type Margin = {
4
+ top?: Space;
5
+ bottom?: Space;
6
+ left?: Space;
7
+ right?: Space;
8
+ };
9
+ declare type SVG = React.SVGProps<SVGSVGElement> | React.FunctionComponent<React.SVGProps<SVGSVGElement>>;
10
+ declare type OptionCommons = {
11
+ /**
12
+ * Number with the option inner value.
13
+ */
14
+ value: string;
15
+ /**
16
+ * @deprecated URL of the icon that will be placed. IconSrc and label can't be used at same time.
17
+ */
18
+ iconSrc?: string;
19
+ };
20
+ declare type OptionIcon = OptionCommons & {
21
+ /**
22
+ * String with the option display value.
23
+ */
24
+ label?: string;
25
+ /**
26
+ * Element used as the icon. Icon and label can't be used at same time.
27
+ */
28
+ icon: SVG;
29
+ };
30
+ declare type OptionLabel = OptionCommons & {
31
+ /**
32
+ * String with the option display value.
33
+ */
34
+ label: string;
35
+ /**
36
+ * Element used as the icon. Icon and label can't be used at same time.
37
+ */
38
+ icon?: SVG;
39
+ };
40
+ declare type Option = OptionIcon | OptionLabel;
41
+ declare type Props = {
42
+ /**
43
+ * Text to be placed above the component.
44
+ */
45
+ label?: string;
46
+ /**
47
+ * Helper text to be placed above the component.
48
+ */
49
+ helperText?: string;
50
+ /**
51
+ * The key(s) of the selected value(s). If the toggle group component doesn't allow multiple selection,
52
+ * it must be one unique value. If the component allows multiple selection, value must be an array.
53
+ * If undefined, the component will be uncontrolled and the value will be managed internally by the component.
54
+ */
55
+ value?: string | string[];
56
+ /**
57
+ * This function will be called every time the selection changes. The number with the key of the selected
58
+ * value will be passed as a parameter to this function.
59
+ * If multiple selection is allowed, an array of keys will be passed.
60
+ */
61
+ onChange?: (optionIndex: number | number[]) => void;
62
+ /**
63
+ * If true, the component will be disabled.
64
+ */
65
+ disabled?: boolean;
66
+ /**
67
+ * An array of objects representing the selectable options.
68
+ */
69
+ options: Option[];
70
+ /**
71
+ * If true, the toggle group will support multiple selection. In that case, value must be an array of numbers with the keys of the selected values.
72
+ */
73
+ multiple?: boolean;
74
+ /**
75
+ * Size of the margin to be applied to the component ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
76
+ * You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different margin sizes.
77
+ */
78
+ margin?: Space | Margin;
79
+ /**
80
+ * Value of the tabindex.
81
+ */
82
+ tabIndex?: number;
83
+ };
84
+ export default Props;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -21,9 +21,9 @@ var _Button = _interopRequireDefault(require("../../button/Button"));
21
21
 
22
22
  var _Icons = require("./Icons");
23
23
 
24
- var _useTheme = _interopRequireDefault(require("../../useTheme.js"));
24
+ var _useTheme = _interopRequireDefault(require("../../useTheme"));
25
25
 
26
- var _BackgroundColorContext = require("../../BackgroundColorContext.js");
26
+ var _BackgroundColorContext = require("../../BackgroundColorContext");
27
27
 
28
28
  var _templateObject, _templateObject2, _templateObject3;
29
29
 
@@ -23,9 +23,9 @@ var _Icons = require("./Icons");
23
23
 
24
24
  var _Button = _interopRequireDefault(require("../../button/Button"));
25
25
 
26
- var _useTheme = _interopRequireDefault(require("../../useTheme.js"));
26
+ var _useTheme = _interopRequireDefault(require("../../useTheme"));
27
27
 
28
- var _BackgroundColorContext = require("../../BackgroundColorContext.js");
28
+ var _BackgroundColorContext = require("../../BackgroundColorContext");
29
29
 
30
30
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11;
31
31
 
@@ -19,7 +19,7 @@ var _styledComponents = _interopRequireWildcard(require("styled-components"));
19
19
 
20
20
  var _Icons = require("./Icons");
21
21
 
22
- var _useTheme = _interopRequireDefault(require("../../useTheme.js"));
22
+ var _useTheme = _interopRequireDefault(require("../../useTheme"));
23
23
 
24
24
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8;
25
25
 
@@ -21,7 +21,7 @@ var _FileToUpload = _interopRequireDefault(require("../file-upload/FileToUpload"
21
21
 
22
22
  var _ButtonsUpload = _interopRequireDefault(require("../buttons-upload/ButtonsUpload"));
23
23
 
24
- var _useTheme = _interopRequireDefault(require("../../useTheme.js"));
24
+ var _useTheme = _interopRequireDefault(require("../../useTheme"));
25
25
 
26
26
  var _templateObject, _templateObject2;
27
27
 
@@ -23,9 +23,9 @@ var _Icons = require("./Icons");
23
23
 
24
24
  var _Spinner = _interopRequireDefault(require("../../spinner/Spinner"));
25
25
 
26
- var _useTheme = _interopRequireDefault(require("../../useTheme.js"));
26
+ var _useTheme = _interopRequireDefault(require("../../useTheme"));
27
27
 
28
- var _BackgroundColorContext = require("../../BackgroundColorContext.js");
28
+ var _BackgroundColorContext = require("../../BackgroundColorContext");
29
29
 
30
30
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
31
31
 
@@ -19,7 +19,7 @@ var _propTypes = _interopRequireDefault(require("prop-types"));
19
19
 
20
20
  var _Transaction = _interopRequireDefault(require("../transaction/Transaction"));
21
21
 
22
- var _useTheme = _interopRequireDefault(require("../../useTheme.js"));
22
+ var _useTheme = _interopRequireDefault(require("../../useTheme"));
23
23
 
24
24
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;
25
25
 
package/useTheme.d.ts ADDED
@@ -0,0 +1,2 @@
1
+ declare const useTheme: () => any;
2
+ export default useTheme;
package/useTheme.js CHANGED
@@ -11,7 +11,7 @@ var _react = require("react");
11
11
 
12
12
  var _variables = require("./common/variables.js");
13
13
 
14
- var _ThemeContext = _interopRequireDefault(require("./ThemeContext.js"));
14
+ var _ThemeContext = _interopRequireDefault(require("./ThemeContext"));
15
15
 
16
16
  var useTheme = function useTheme() {
17
17
  var colorsTheme = (0, _react.useContext)(_ThemeContext["default"]);
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import WizardPropsType from "./types";
3
+ declare const DxcWizard: ({ mode, currentStep, onStepClick, steps, margin, tabIndex, }: WizardPropsType) => JSX.Element;
4
+ export default DxcWizard;
package/wizard/Wizard.js CHANGED
@@ -9,8 +9,6 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports["default"] = void 0;
11
11
 
12
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
-
14
12
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
13
 
16
14
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
@@ -21,20 +19,68 @@ var _react = _interopRequireWildcard(require("react"));
21
19
 
22
20
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
23
21
 
24
- var _propTypes = _interopRequireDefault(require("prop-types"));
25
-
26
22
  var _variables = require("../common/variables.js");
27
23
 
28
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
24
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
29
25
 
30
- var _Icons = require("./Icons");
31
-
32
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14;
26
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13;
33
27
 
34
28
  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); }
35
29
 
36
30
  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; }
37
31
 
32
+ var icons = {
33
+ validIcon: /*#__PURE__*/_react["default"].createElement("svg", {
34
+ id: "check_circle_black_18dp",
35
+ xmlns: "http://www.w3.org/2000/svg",
36
+ width: "18",
37
+ height: "18",
38
+ viewBox: "0 0 18 18"
39
+ }, /*#__PURE__*/_react["default"].createElement("path", {
40
+ id: "Path_2946",
41
+ "data-name": "Path 2946",
42
+ d: "M0,0H18V18H0Z",
43
+ fill: "none"
44
+ }), /*#__PURE__*/_react["default"].createElement("path", {
45
+ id: "Path_2947",
46
+ "data-name": "Path 2947",
47
+ 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",
48
+ transform: "translate(-0.986 -0.986)",
49
+ fill: "#eafaef",
50
+ opacity: "0.999"
51
+ }), /*#__PURE__*/_react["default"].createElement("path", {
52
+ id: "Path_2948",
53
+ "data-name": "Path 2948",
54
+ 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",
55
+ transform: "translate(-0.493 -0.493)",
56
+ fill: "#24a148"
57
+ })),
58
+ invalidIcon: /*#__PURE__*/_react["default"].createElement("svg", {
59
+ id: "highlight_off_black_18dp",
60
+ xmlns: "http://www.w3.org/2000/svg",
61
+ width: "18",
62
+ height: "18",
63
+ viewBox: "0 0 18 18"
64
+ }, /*#__PURE__*/_react["default"].createElement("path", {
65
+ id: "Path_2943",
66
+ "data-name": "Path 2943",
67
+ d: "M0,0H18V18H0Z",
68
+ fill: "none"
69
+ }), /*#__PURE__*/_react["default"].createElement("path", {
70
+ id: "Path_2944",
71
+ "data-name": "Path 2944",
72
+ 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",
73
+ transform: "translate(-1.002 -1.002)",
74
+ fill: "#ffe6e9"
75
+ }), /*#__PURE__*/_react["default"].createElement("path", {
76
+ id: "Path_2945",
77
+ "data-name": "Path 2945",
78
+ 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",
79
+ transform: "translate(-0.501 -0.501)",
80
+ fill: "#d0011b"
81
+ }))
82
+ };
83
+
38
84
  var DxcWizard = function DxcWizard(_ref) {
39
85
  var _ref$mode = _ref.mode,
40
86
  mode = _ref$mode === void 0 ? "horizontal" : _ref$mode,
@@ -68,11 +114,11 @@ var DxcWizard = function DxcWizard(_ref) {
68
114
  }, /*#__PURE__*/_react["default"].createElement(StepsContainer, {
69
115
  mode: mode,
70
116
  margin: margin
71
- }, steps.map(function (step, i) {
117
+ }, steps === null || steps === void 0 ? void 0 : steps.map(function (step, i) {
72
118
  return /*#__PURE__*/_react["default"].createElement(StepContainer, {
73
119
  key: "step".concat(i),
74
120
  mode: mode,
75
- lastStep: i === steps.length - 1
121
+ lastStep: i === (steps === null || steps === void 0 ? void 0 : steps.length) - 1
76
122
  }, /*#__PURE__*/_react["default"].createElement(Step, {
77
123
  tabIndex: tabIndex,
78
124
  onClick: function onClick() {
@@ -81,22 +127,19 @@ var DxcWizard = function DxcWizard(_ref) {
81
127
  mode: mode,
82
128
  disabled: step.disabled,
83
129
  first: i === 0,
84
- last: i === steps.length - 1
130
+ last: i === (steps === null || steps === void 0 ? void 0 : steps.length) - 1
85
131
  }, /*#__PURE__*/_react["default"].createElement(StepHeader, null, /*#__PURE__*/_react["default"].createElement(IconContainer, {
86
132
  current: i === renderedCurrent,
87
133
  visited: i < renderedCurrent,
88
134
  disabled: step.disabled
89
- }, step.icon ? /*#__PURE__*/_react["default"].createElement(StepIconContainer, {
135
+ }, step.icon ? typeof step.icon === "string" ? /*#__PURE__*/_react["default"].createElement(Icon, {
136
+ src: step.icon
137
+ }) : /*#__PURE__*/_react["default"].createElement(StepIconContainer, {
90
138
  disabled: step.disabled
91
- }, (0, _typeof2["default"])(step.icon) === "object" ? step.icon.type === "img" ? /*#__PURE__*/_react["default"].createElement(ImgContainer, {
92
- current: i === renderedCurrent,
93
- img: step.icon.props.src
94
- }) : step.icon : /*#__PURE__*/_react["default"].createElement(step.icon)) : step.iconSrc ? /*#__PURE__*/_react["default"].createElement(Icon, {
95
- src: step.iconSrc
96
- }) : /*#__PURE__*/_react["default"].createElement(Number, {
139
+ }, (0, _typeof2["default"])(step.icon) === "object" ? step.icon : /*#__PURE__*/_react["default"].createElement(step.icon)) : /*#__PURE__*/_react["default"].createElement(Number, {
97
140
  disabled: step.disabled,
98
141
  current: i === renderedCurrent
99
- }, i + 1)), step.valid !== undefined ? step.valid ? /*#__PURE__*/_react["default"].createElement(ValidityIconContainer, null, _Icons.validIcon) : /*#__PURE__*/_react["default"].createElement(ValidityIconContainer, null, _Icons.invalidIcon) : ""), step.label || step.description ? /*#__PURE__*/_react["default"].createElement(InfoContainer, null, step.label ? /*#__PURE__*/_react["default"].createElement(Label, {
142
+ }, i + 1)), step.valid !== undefined ? step.valid ? /*#__PURE__*/_react["default"].createElement(ValidityIconContainer, null, icons.validIcon) : /*#__PURE__*/_react["default"].createElement(ValidityIconContainer, null, icons.invalidIcon) : ""), step.label || step.description ? /*#__PURE__*/_react["default"].createElement(InfoContainer, null, step.label ? /*#__PURE__*/_react["default"].createElement(Label, {
100
143
  disabled: step.disabled,
101
144
  visited: i <= innerCurrent
102
145
  }, step.label) : "", step.description ? /*#__PURE__*/_react["default"].createElement(Description, {
@@ -153,7 +196,7 @@ var IconContainer = _styledComponents["default"].div(_templateObject5 || (_templ
153
196
  }, function (props) {
154
197
  return props.disabled ? props.theme.disabledCircleHeight : props.current ? props.theme.selectedCircleHeight : props.theme.circleHeight;
155
198
  }, function (props) {
156
- 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 ");
199
+ return "\n ".concat(!props.current && !props.disabled ? "border: ".concat(props.theme.circleBorderThickness, " ").concat(props.theme.circleBorderStyle, " ").concat(props.theme.circleBorderColor, ";") : props.current && !props.disabled ? "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 ");
157
200
  }, function (props) {
158
201
  return props.disabled ? "color: ".concat(props.theme.disabledFontColor, ";") : "color: ".concat(props.current ? props.theme.stepContainerSelectedFontColor : props.theme.stepContainerFontColor, ";");
159
202
  }, function (props) {
@@ -172,20 +215,7 @@ var StepIconContainer = _styledComponents["default"].div(_templateObject7 || (_t
172
215
  return props.theme.stepContainerIconSize;
173
216
  });
174
217
 
175
- var ImgContainer = _styledComponents["default"].div(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n background-color: ", ";\n mask: url(", ") no-repeat center;\n mask-size: ", ";\n height: ", ";\n width: ", ";\n"])), function (props) {
176
- return props.current ? props.theme.stepContainerSelectedFontColor : props.theme.stepContainerFontColor;
177
- }, function (_ref2) {
178
- var img = _ref2.img;
179
- return img;
180
- }, function (props) {
181
- return "".concat(props.theme.stepContainerIconSize, " ").concat(props.theme.stepContainerIconSize);
182
- }, function (props) {
183
- return props.theme.stepContainerIconSize;
184
- }, function (props) {
185
- return props.theme.stepContainerIconSize;
186
- });
187
-
188
- var Number = _styledComponents["default"].p(_templateObject9 || (_templateObject9 = (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"])), function (props) {
218
+ var Number = _styledComponents["default"].p(_templateObject8 || (_templateObject8 = (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"])), function (props) {
189
219
  return props.theme.stepContainerFontSize;
190
220
  }, function (props) {
191
221
  return props.theme.stepContainerFontFamily;
@@ -197,11 +227,11 @@ var Number = _styledComponents["default"].p(_templateObject9 || (_templateObject
197
227
  return props.theme.stepContainerLetterSpacing;
198
228
  });
199
229
 
200
- var ValidityIconContainer = _styledComponents["default"].div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n width: 18px;\n height: 18px;\n position: absolute;\n top: 22.5px;\n left: 22.5px;\n"])));
230
+ var ValidityIconContainer = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n width: 18px;\n height: 18px;\n position: absolute;\n top: 22.5px;\n left: 22.5px;\n"])));
201
231
 
202
- var InfoContainer = _styledComponents["default"].div(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n margin-left: 12px;\n"])));
232
+ var InfoContainer = _styledComponents["default"].div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n margin-left: 12px;\n"])));
203
233
 
204
- var Label = _styledComponents["default"].p(_templateObject12 || (_templateObject12 = (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"])), function (props) {
234
+ var Label = _styledComponents["default"].p(_templateObject11 || (_templateObject11 = (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"])), function (props) {
205
235
  return props.theme.labelTextAlign;
206
236
  }, function (props) {
207
237
  return props.theme.labelFontFamily;
@@ -219,7 +249,7 @@ var Label = _styledComponents["default"].p(_templateObject12 || (_templateObject
219
249
  return props.theme.labelFontTextTransform;
220
250
  });
221
251
 
222
- var Description = _styledComponents["default"].p(_templateObject13 || (_templateObject13 = (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"])), function (props) {
252
+ var Description = _styledComponents["default"].p(_templateObject12 || (_templateObject12 = (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"])), function (props) {
223
253
  return props.theme.descriptionTextAlign;
224
254
  }, function (props) {
225
255
  return props.theme.descriptionFontFamily;
@@ -237,7 +267,7 @@ var Description = _styledComponents["default"].p(_templateObject13 || (_template
237
267
  return props.disabled ? "color: ".concat(props.theme.disabledFontColor, ";") : "color: ".concat(props.visited ? props.theme.visitedDescriptionFontColor : props.theme.descriptionFontColor, ";");
238
268
  });
239
269
 
240
- var StepSeparator = _styledComponents["default"].div(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n height: ", ";\n ", "\n border: ", ";\n opacity: 1;\n flex-grow: 1;\n"])), function (props) {
270
+ var StepSeparator = _styledComponents["default"].div(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n height: ", ";\n ", "\n border: ", ";\n opacity: 1;\n flex-grow: 1;\n"])), function (props) {
241
271
  return props.mode === "horizontal" ? "" : "0";
242
272
  }, function (props) {
243
273
  return props.mode === "horizontal" ? "0" : "";
@@ -247,25 +277,5 @@ var StepSeparator = _styledComponents["default"].div(_templateObject14 || (_temp
247
277
  return "".concat(props.theme.separatorBorderStyle, " ").concat(props.theme.separatorBorderThickness, " ").concat(props.theme.separatorColor);
248
278
  });
249
279
 
250
- DxcWizard.propTypes = {
251
- mode: _propTypes["default"].oneOf(["horizontal", "vertical"]),
252
- currentStep: _propTypes["default"].number,
253
- onStepClick: _propTypes["default"].func,
254
- steps: _propTypes["default"].arrayOf(_propTypes["default"].shape({
255
- label: _propTypes["default"].string,
256
- description: _propTypes["default"].string,
257
- icon: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].func]),
258
- iconSrc: _propTypes["default"].string,
259
- disabled: _propTypes["default"].bool,
260
- valid: _propTypes["default"].bool
261
- })),
262
- margin: _propTypes["default"].oneOfType([_propTypes["default"].shape({
263
- top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
264
- bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
265
- left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
266
- right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
267
- }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
268
- tabIndex: _propTypes["default"].number
269
- };
270
280
  var _default = DxcWizard;
271
281
  exports["default"] = _default;
@@ -0,0 +1,224 @@
1
+ import React from "react";
2
+ import DxcWizard from "./Wizard";
3
+ import Title from "../../.storybook/components/Title";
4
+ import ExampleContainer from "../../.storybook/components/ExampleContainer";
5
+ import { userEvent, within } from "@storybook/testing-library";
6
+
7
+ export default {
8
+ title: "Wizard",
9
+ component: DxcWizard,
10
+ };
11
+
12
+ const favoriteSVG = () => {
13
+ return (
14
+ <svg viewBox="0 0 24 24" fill="currentColor">
15
+ <path d="M0 0h24v24H0z" fill="none" />
16
+ <path d="M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z" />
17
+ </svg>
18
+ );
19
+ };
20
+
21
+ const largeIcon = () => {
22
+ return (
23
+ <svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 0 24 24" width="48px" fill="currentColor">
24
+ <path d="M0 0h24v24H0z" fill="none" />
25
+ <path d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z" />
26
+ </svg>
27
+ );
28
+ };
29
+
30
+ const stepWithLabel = [
31
+ {
32
+ label: "First step",
33
+ },
34
+ {
35
+ label: "Second step",
36
+ },
37
+ {
38
+ label: "Third step",
39
+ },
40
+ {
41
+ label: "Forth step",
42
+ },
43
+ ];
44
+
45
+ const stepWithLabelDescription = [
46
+ {
47
+ label: "First step",
48
+ description: "Description",
49
+ },
50
+ {
51
+ label: "Second step",
52
+ description: "Description",
53
+ },
54
+ {
55
+ label: "Third step",
56
+ description: "Description",
57
+ valid: true,
58
+ },
59
+ {
60
+ label: "Forth step",
61
+ description: "Description",
62
+ valid: false,
63
+ },
64
+ ];
65
+
66
+ const stepWithLongDescription = [
67
+ {
68
+ label: "First step",
69
+ description:
70
+ "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. ",
71
+ },
72
+ {
73
+ label: "Second step",
74
+ description:
75
+ "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. ",
76
+ },
77
+ {
78
+ label: "Third step",
79
+ description:
80
+ "Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. ",
81
+ },
82
+ ];
83
+
84
+ const stepDisabled = [
85
+ {
86
+ label: "First step",
87
+ description: "Description",
88
+ disabled: true,
89
+ },
90
+ {
91
+ label: "Second step",
92
+ description: "Description",
93
+ icon: favoriteSVG,
94
+ disabled: true,
95
+ },
96
+ {
97
+ label: "Third step",
98
+ description: "Description",
99
+ disabled: true,
100
+ valid: true,
101
+ },
102
+ {
103
+ label: "Forth step",
104
+ description: "Description",
105
+ valid: false,
106
+ disabled: true,
107
+ },
108
+ ];
109
+
110
+ const stepIcons = [
111
+ {
112
+ label: "First step",
113
+ icon: favoriteSVG,
114
+ },
115
+ {
116
+ label: "Second step",
117
+ icon: favoriteSVG,
118
+ },
119
+ {
120
+ label: "Third step",
121
+ icon: favoriteSVG,
122
+ },
123
+ ];
124
+
125
+ const stepLargeIcons = [
126
+ {
127
+ label: "First step",
128
+ icon: largeIcon,
129
+ },
130
+ {
131
+ label: "Second step",
132
+ icon: largeIcon,
133
+ },
134
+ {
135
+ label: "Third step",
136
+ icon: largeIcon,
137
+ },
138
+ ];
139
+
140
+ export const Chromatic = () => (
141
+ <>
142
+ <ExampleContainer>
143
+ <Title title="Current step in the third step, labels and description" theme="light" level={4} />
144
+ <DxcWizard currentStep={2} steps={stepWithLabelDescription}></DxcWizard>
145
+ <Title title="With long description in horizontal" theme="light" level={4} />
146
+ <DxcWizard steps={stepWithLongDescription}></DxcWizard>
147
+ <Title title="With long description in vertical" theme="light" level={4} />
148
+ <DxcWizard mode="vertical" steps={stepWithLongDescription}></DxcWizard>
149
+ <Title title="Disabled steps" theme="light" level={4} />
150
+ <DxcWizard steps={stepDisabled}></DxcWizard>
151
+ <Title title="With icons" theme="light" level={4} />
152
+ <DxcWizard steps={stepIcons}></DxcWizard>
153
+ <Title title="With large icons" theme="light" level={4} />
154
+ <DxcWizard steps={stepLargeIcons}></DxcWizard>
155
+ </ExampleContainer>
156
+ <Title title="Margins horizontal" theme="light" level={2} />
157
+ <ExampleContainer>
158
+ <Title title="Xxsmall margin" theme="light" level={4} />
159
+ <DxcWizard margin="xxsmall" steps={stepWithLabel}></DxcWizard>
160
+ </ExampleContainer>
161
+ <ExampleContainer>
162
+ <Title title="Xsmall margin" theme="light" level={4} />
163
+ <DxcWizard margin="xsmall" steps={stepWithLabel}></DxcWizard>
164
+ </ExampleContainer>
165
+ <ExampleContainer>
166
+ <Title title="Small margin" theme="light" level={4} />
167
+ <DxcWizard margin="small" steps={stepWithLabel}></DxcWizard>
168
+ </ExampleContainer>
169
+ <ExampleContainer>
170
+ <Title title="Medium margin" theme="light" level={4} />
171
+ <DxcWizard margin="medium" steps={stepWithLabel}></DxcWizard>
172
+ </ExampleContainer>
173
+ <ExampleContainer>
174
+ <Title title="Large margin" theme="light" level={4} />
175
+ <DxcWizard margin="large" steps={stepWithLabel}></DxcWizard>
176
+ </ExampleContainer>
177
+ <ExampleContainer>
178
+ <Title title="Xlarge margin" theme="light" level={4} />
179
+ <DxcWizard margin="xlarge" steps={stepWithLabel}></DxcWizard>
180
+ </ExampleContainer>
181
+ <ExampleContainer>
182
+ <Title title="Xxlarge margin" theme="light" level={4} />
183
+ <DxcWizard margin="xxlarge" steps={stepWithLabel}></DxcWizard>
184
+ </ExampleContainer>
185
+ <Title title="Margins vertical" theme="light" level={2} />
186
+ <ExampleContainer>
187
+ <Title title="Xxsmall margin" theme="light" level={4} />
188
+ <DxcWizard mode="vertical" margin="xxsmall" steps={stepWithLabelDescription}></DxcWizard>
189
+ </ExampleContainer>
190
+ <ExampleContainer>
191
+ <Title title="Xsmall margin" theme="light" level={4} />
192
+ <DxcWizard mode="vertical" margin="xsmall" steps={stepWithLabel}></DxcWizard>
193
+ </ExampleContainer>
194
+ <ExampleContainer>
195
+ <Title title="Small margin" theme="light" level={4} />
196
+ <DxcWizard mode="vertical" margin="small" steps={stepWithLabel}></DxcWizard>
197
+ </ExampleContainer>
198
+ <ExampleContainer>
199
+ <Title title="Medium margin" theme="light" level={4} />
200
+ <DxcWizard mode="vertical" margin="medium" steps={stepWithLabel}></DxcWizard>
201
+ </ExampleContainer>
202
+ <ExampleContainer>
203
+ <Title title="Large margin" theme="light" level={4} />
204
+ <DxcWizard mode="vertical" margin="large" steps={stepWithLabel}></DxcWizard>
205
+ </ExampleContainer>
206
+ <ExampleContainer>
207
+ <Title title="Xlarge margin" theme="light" level={4} />
208
+ <DxcWizard mode="vertical" margin="xlarge" steps={stepWithLabel}></DxcWizard>
209
+ </ExampleContainer>
210
+ <ExampleContainer>
211
+ <Title title="Xxlarge margin" theme="light" level={4} />
212
+ <DxcWizard mode="vertical" margin="xxlarge" steps={stepWithLabel}></DxcWizard>
213
+ </ExampleContainer>
214
+ </>
215
+ );
216
+
217
+ const WizardSelected = () => <DxcWizard steps={stepWithLabel}></DxcWizard>;
218
+
219
+ export const WizardStepActived = WizardSelected.bind({});
220
+ WizardStepActived.play = async ({ canvasElement }) => {
221
+ const canvas = within(canvasElement);
222
+ const option = canvas.getByText("Third step");
223
+ await userEvent.click(option);
224
+ };