@dxc-technology/halstack-react 0.0.0-dfcca07 → 0.0.0-e01c6f9

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 (346) hide show
  1. package/BackgroundColorContext.d.ts +1 -0
  2. package/BackgroundColorContext.js +6 -26
  3. package/HalstackContext.d.ts +1235 -0
  4. package/HalstackContext.js +310 -0
  5. package/README.md +47 -0
  6. package/accordion/Accordion.d.ts +1 -1
  7. package/accordion/Accordion.js +118 -194
  8. package/accordion/Accordion.stories.tsx +283 -0
  9. package/accordion/Accordion.test.js +56 -0
  10. package/accordion/types.d.ts +12 -23
  11. package/accordion-group/AccordionGroup.d.ts +5 -4
  12. package/accordion-group/AccordionGroup.js +39 -108
  13. package/accordion-group/AccordionGroup.stories.tsx +95 -68
  14. package/accordion-group/AccordionGroup.test.js +98 -0
  15. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  16. package/accordion-group/AccordionGroupAccordion.js +31 -0
  17. package/accordion-group/types.d.ts +18 -23
  18. package/action-icon/ActionIcon.d.ts +4 -0
  19. package/action-icon/ActionIcon.js +43 -0
  20. package/action-icon/types.d.ts +26 -0
  21. package/alert/Alert.js +24 -60
  22. package/alert/Alert.stories.tsx +28 -0
  23. package/alert/Alert.test.js +75 -0
  24. package/alert/types.d.ts +5 -5
  25. package/badge/Badge.d.ts +4 -0
  26. package/badge/Badge.js +9 -20
  27. package/badge/types.d.ts +5 -0
  28. package/bleed/Bleed.d.ts +3 -0
  29. package/bleed/Bleed.js +43 -0
  30. package/bleed/Bleed.stories.tsx +342 -0
  31. package/bleed/types.d.ts +37 -0
  32. package/box/Box.d.ts +1 -1
  33. package/box/Box.js +31 -82
  34. package/box/Box.stories.tsx +38 -51
  35. package/box/Box.test.js +13 -0
  36. package/box/types.d.ts +3 -14
  37. package/bulleted-list/BulletedList.d.ts +7 -0
  38. package/bulleted-list/BulletedList.js +89 -0
  39. package/bulleted-list/BulletedList.stories.tsx +115 -0
  40. package/bulleted-list/types.d.ts +38 -0
  41. package/bulleted-list/types.js +5 -0
  42. package/button/Button.d.ts +1 -1
  43. package/button/Button.js +64 -123
  44. package/button/Button.stories.tsx +164 -96
  45. package/button/Button.test.js +36 -0
  46. package/button/types.d.ts +12 -12
  47. package/card/Card.d.ts +1 -1
  48. package/card/Card.js +59 -103
  49. package/card/Card.stories.tsx +13 -43
  50. package/card/Card.test.js +39 -0
  51. package/card/types.d.ts +6 -11
  52. package/checkbox/Checkbox.d.ts +2 -2
  53. package/checkbox/Checkbox.js +145 -183
  54. package/checkbox/Checkbox.stories.tsx +166 -136
  55. package/checkbox/Checkbox.test.js +199 -0
  56. package/checkbox/types.d.ts +19 -7
  57. package/chip/Chip.d.ts +4 -0
  58. package/chip/Chip.js +48 -148
  59. package/chip/Chip.stories.tsx +123 -30
  60. package/chip/Chip.test.js +41 -0
  61. package/chip/types.d.ts +45 -0
  62. package/chip/types.js +5 -0
  63. package/common/OpenSans.css +68 -80
  64. package/common/coreTokens.d.ts +237 -0
  65. package/common/coreTokens.js +184 -0
  66. package/common/utils.d.ts +1 -0
  67. package/common/utils.js +6 -12
  68. package/common/variables.d.ts +1381 -0
  69. package/common/variables.js +1006 -1331
  70. package/container/Container.d.ts +4 -0
  71. package/container/Container.js +194 -0
  72. package/container/Container.stories.tsx +214 -0
  73. package/container/types.d.ts +74 -0
  74. package/container/types.js +5 -0
  75. package/date-input/Calendar.d.ts +4 -0
  76. package/date-input/Calendar.js +214 -0
  77. package/date-input/DateInput.js +175 -313
  78. package/date-input/DateInput.stories.tsx +203 -56
  79. package/date-input/DateInput.test.js +808 -0
  80. package/date-input/DatePicker.d.ts +4 -0
  81. package/date-input/DatePicker.js +115 -0
  82. package/date-input/Icons.d.ts +6 -0
  83. package/date-input/Icons.js +58 -0
  84. package/date-input/YearPicker.d.ts +4 -0
  85. package/date-input/YearPicker.js +100 -0
  86. package/date-input/types.d.ts +86 -22
  87. package/dialog/Dialog.d.ts +1 -1
  88. package/dialog/Dialog.js +69 -130
  89. package/dialog/Dialog.stories.tsx +320 -167
  90. package/dialog/Dialog.test.js +307 -0
  91. package/dialog/types.d.ts +18 -25
  92. package/dropdown/Dropdown.d.ts +1 -1
  93. package/dropdown/Dropdown.js +245 -328
  94. package/dropdown/Dropdown.stories.tsx +438 -0
  95. package/dropdown/Dropdown.test.js +599 -0
  96. package/dropdown/DropdownMenu.d.ts +4 -0
  97. package/dropdown/DropdownMenu.js +63 -0
  98. package/dropdown/DropdownMenuItem.d.ts +4 -0
  99. package/dropdown/DropdownMenuItem.js +67 -0
  100. package/dropdown/types.d.ts +36 -27
  101. package/file-input/FileInput.d.ts +2 -2
  102. package/file-input/FileInput.js +267 -299
  103. package/file-input/FileInput.stories.tsx +618 -0
  104. package/file-input/FileInput.test.js +459 -0
  105. package/file-input/FileItem.d.ts +4 -14
  106. package/file-input/FileItem.js +52 -101
  107. package/file-input/types.d.ts +53 -11
  108. package/flex/Flex.d.ts +4 -0
  109. package/flex/Flex.js +57 -0
  110. package/flex/Flex.stories.tsx +112 -0
  111. package/flex/types.d.ts +97 -0
  112. package/flex/types.js +5 -0
  113. package/footer/Footer.d.ts +1 -1
  114. package/footer/Footer.js +60 -201
  115. package/footer/{Footer.stories.jsx → Footer.stories.tsx} +38 -37
  116. package/footer/Footer.test.js +85 -0
  117. package/footer/Icons.d.ts +2 -0
  118. package/footer/Icons.js +4 -9
  119. package/footer/types.d.ts +22 -33
  120. package/grid/Grid.d.ts +7 -0
  121. package/grid/Grid.js +76 -0
  122. package/grid/Grid.stories.tsx +219 -0
  123. package/grid/types.d.ts +115 -0
  124. package/grid/types.js +5 -0
  125. package/header/Header.d.ts +4 -3
  126. package/header/Header.js +100 -204
  127. package/header/Header.stories.tsx +152 -63
  128. package/header/Header.test.js +66 -0
  129. package/header/Icons.d.ts +2 -0
  130. package/header/Icons.js +4 -9
  131. package/header/types.d.ts +5 -19
  132. package/heading/Heading.js +11 -33
  133. package/heading/Heading.stories.tsx +3 -2
  134. package/heading/Heading.test.js +169 -0
  135. package/heading/types.d.ts +7 -7
  136. package/image/Image.d.ts +4 -0
  137. package/image/Image.js +70 -0
  138. package/image/Image.stories.tsx +127 -0
  139. package/image/types.d.ts +72 -0
  140. package/image/types.js +5 -0
  141. package/inset/Inset.d.ts +3 -0
  142. package/inset/Inset.js +43 -0
  143. package/inset/Inset.stories.tsx +230 -0
  144. package/inset/types.d.ts +37 -0
  145. package/inset/types.js +5 -0
  146. package/layout/ApplicationLayout.d.ts +20 -0
  147. package/layout/ApplicationLayout.js +83 -184
  148. package/layout/ApplicationLayout.stories.tsx +162 -0
  149. package/layout/Icons.d.ts +8 -0
  150. package/layout/Icons.js +51 -48
  151. package/layout/SidenavContext.d.ts +5 -0
  152. package/layout/SidenavContext.js +13 -0
  153. package/layout/types.d.ts +41 -0
  154. package/layout/types.js +5 -0
  155. package/link/Link.d.ts +3 -2
  156. package/link/Link.js +65 -111
  157. package/link/Link.stories.tsx +159 -52
  158. package/link/Link.test.js +63 -0
  159. package/link/types.d.ts +15 -35
  160. package/main.d.ts +15 -13
  161. package/main.js +70 -97
  162. package/nav-tabs/NavTabs.d.ts +8 -0
  163. package/nav-tabs/NavTabs.js +90 -0
  164. package/nav-tabs/NavTabs.stories.tsx +274 -0
  165. package/nav-tabs/NavTabs.test.js +75 -0
  166. package/nav-tabs/Tab.d.ts +4 -0
  167. package/nav-tabs/Tab.js +117 -0
  168. package/nav-tabs/types.d.ts +52 -0
  169. package/nav-tabs/types.js +5 -0
  170. package/number-input/NumberInput.d.ts +7 -0
  171. package/number-input/NumberInput.js +28 -47
  172. package/number-input/NumberInput.stories.tsx +44 -28
  173. package/number-input/NumberInput.test.js +830 -0
  174. package/number-input/types.d.ts +28 -15
  175. package/package.json +46 -45
  176. package/paginator/Icons.d.ts +5 -0
  177. package/paginator/Icons.js +21 -47
  178. package/paginator/Paginator.js +35 -98
  179. package/paginator/Paginator.stories.tsx +24 -0
  180. package/paginator/Paginator.test.js +335 -0
  181. package/paginator/types.d.ts +3 -3
  182. package/paragraph/Paragraph.d.ts +5 -0
  183. package/paragraph/Paragraph.js +22 -0
  184. package/paragraph/Paragraph.stories.tsx +27 -0
  185. package/password-input/Icons.d.ts +6 -0
  186. package/password-input/Icons.js +35 -0
  187. package/password-input/PasswordInput.js +58 -125
  188. package/password-input/PasswordInput.stories.tsx +3 -35
  189. package/password-input/PasswordInput.test.js +198 -0
  190. package/password-input/types.d.ts +21 -17
  191. package/progress-bar/ProgressBar.js +66 -92
  192. package/progress-bar/ProgressBar.stories.tsx +93 -0
  193. package/progress-bar/ProgressBar.test.js +93 -0
  194. package/progress-bar/types.d.ts +3 -3
  195. package/quick-nav/QuickNav.d.ts +4 -0
  196. package/quick-nav/QuickNav.js +94 -0
  197. package/quick-nav/QuickNav.stories.tsx +356 -0
  198. package/quick-nav/types.d.ts +21 -0
  199. package/quick-nav/types.js +5 -0
  200. package/radio-group/Radio.d.ts +4 -0
  201. package/radio-group/Radio.js +124 -0
  202. package/radio-group/RadioGroup.d.ts +4 -0
  203. package/radio-group/RadioGroup.js +235 -0
  204. package/radio-group/RadioGroup.stories.tsx +214 -0
  205. package/radio-group/RadioGroup.test.js +756 -0
  206. package/radio-group/types.d.ts +114 -0
  207. package/radio-group/types.js +5 -0
  208. package/resultset-table/Icons.d.ts +7 -0
  209. package/resultset-table/Icons.js +47 -0
  210. package/resultset-table/ResultsetTable.js +159 -0
  211. package/resultset-table/ResultsetTable.stories.tsx +300 -0
  212. package/resultset-table/ResultsetTable.test.js +305 -0
  213. package/{resultsetTable → resultset-table}/types.d.ts +8 -8
  214. package/resultset-table/types.js +5 -0
  215. package/select/Icons.d.ts +10 -0
  216. package/select/Icons.js +89 -0
  217. package/select/Listbox.d.ts +4 -0
  218. package/select/Listbox.js +143 -0
  219. package/select/Option.d.ts +4 -0
  220. package/select/Option.js +80 -0
  221. package/select/Select.d.ts +4 -0
  222. package/select/Select.js +227 -511
  223. package/select/Select.stories.tsx +603 -204
  224. package/select/Select.test.js +2370 -0
  225. package/select/types.d.ts +209 -0
  226. package/select/types.js +5 -0
  227. package/sidenav/Icons.d.ts +7 -0
  228. package/sidenav/Icons.js +47 -0
  229. package/sidenav/Sidenav.d.ts +6 -5
  230. package/sidenav/Sidenav.js +132 -72
  231. package/sidenav/Sidenav.stories.tsx +251 -134
  232. package/sidenav/Sidenav.test.js +37 -0
  233. package/sidenav/types.d.ts +52 -26
  234. package/slider/Slider.d.ts +2 -2
  235. package/slider/Slider.js +149 -181
  236. package/slider/Slider.test.js +254 -0
  237. package/slider/types.d.ts +11 -3
  238. package/spinner/Spinner.js +32 -76
  239. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -26
  240. package/spinner/Spinner.test.js +55 -0
  241. package/spinner/types.d.ts +3 -3
  242. package/switch/Switch.d.ts +2 -2
  243. package/switch/Switch.js +150 -115
  244. package/switch/Switch.stories.tsx +45 -68
  245. package/switch/Switch.test.js +180 -0
  246. package/switch/types.d.ts +13 -5
  247. package/table/Table.js +9 -31
  248. package/table/{Table.stories.jsx → Table.stories.tsx} +81 -1
  249. package/table/Table.test.js +21 -0
  250. package/table/types.d.ts +8 -8
  251. package/tabs/Tab.d.ts +4 -0
  252. package/tabs/Tab.js +113 -0
  253. package/tabs/Tabs.d.ts +1 -1
  254. package/tabs/Tabs.js +318 -147
  255. package/tabs/Tabs.stories.tsx +122 -17
  256. package/tabs/Tabs.test.js +294 -0
  257. package/tabs/types.d.ts +46 -24
  258. package/tag/Tag.d.ts +1 -1
  259. package/tag/Tag.js +44 -86
  260. package/tag/Tag.stories.tsx +38 -28
  261. package/tag/Tag.test.js +49 -0
  262. package/tag/types.d.ts +25 -16
  263. package/text-input/Icons.d.ts +8 -0
  264. package/text-input/Icons.js +56 -0
  265. package/text-input/Suggestion.d.ts +4 -0
  266. package/text-input/Suggestion.js +67 -0
  267. package/text-input/Suggestions.d.ts +4 -0
  268. package/text-input/Suggestions.js +84 -0
  269. package/text-input/TextInput.js +330 -544
  270. package/text-input/TextInput.stories.tsx +280 -271
  271. package/text-input/TextInput.test.js +1739 -0
  272. package/text-input/types.d.ts +71 -25
  273. package/textarea/Textarea.d.ts +4 -0
  274. package/textarea/Textarea.js +95 -177
  275. package/textarea/Textarea.stories.tsx +174 -0
  276. package/textarea/Textarea.test.js +406 -0
  277. package/textarea/types.d.ts +141 -0
  278. package/textarea/types.js +5 -0
  279. package/toggle-group/ToggleGroup.d.ts +2 -2
  280. package/toggle-group/ToggleGroup.js +97 -113
  281. package/toggle-group/ToggleGroup.stories.tsx +76 -36
  282. package/toggle-group/ToggleGroup.test.js +137 -0
  283. package/toggle-group/types.d.ts +66 -36
  284. package/typography/Typography.d.ts +4 -0
  285. package/typography/Typography.js +23 -0
  286. package/typography/Typography.stories.tsx +198 -0
  287. package/typography/types.d.ts +18 -0
  288. package/typography/types.js +5 -0
  289. package/useTheme.d.ts +1134 -0
  290. package/useTheme.js +4 -11
  291. package/useTranslatedLabels.d.ts +85 -0
  292. package/useTranslatedLabels.js +14 -0
  293. package/utils/BaseTypography.d.ts +21 -0
  294. package/utils/BaseTypography.js +94 -0
  295. package/utils/FocusLock.d.ts +13 -0
  296. package/utils/FocusLock.js +121 -0
  297. package/wizard/Wizard.d.ts +1 -1
  298. package/wizard/Wizard.js +123 -104
  299. package/wizard/{Wizard.stories.jsx → Wizard.stories.tsx} +48 -19
  300. package/wizard/Wizard.test.js +114 -0
  301. package/wizard/types.d.ts +14 -14
  302. package/ThemeContext.js +0 -246
  303. package/V3Select/V3Select.js +0 -455
  304. package/V3Select/index.d.ts +0 -27
  305. package/V3Textarea/V3Textarea.js +0 -260
  306. package/V3Textarea/index.d.ts +0 -27
  307. package/card/ice-cream.jpg +0 -0
  308. package/chip/index.d.ts +0 -22
  309. package/common/RequiredComponent.js +0 -32
  310. package/date/Date.js +0 -373
  311. package/date/index.d.ts +0 -27
  312. package/input-text/Icons.js +0 -22
  313. package/input-text/InputText.js +0 -611
  314. package/input-text/index.d.ts +0 -36
  315. package/number-input/NumberInputContext.d.ts +0 -4
  316. package/number-input/NumberInputContext.js +0 -19
  317. package/number-input/numberInputContextTypes.d.ts +0 -19
  318. package/progress-bar/ProgressBar.stories.jsx +0 -58
  319. package/radio/Radio.d.ts +0 -4
  320. package/radio/Radio.js +0 -174
  321. package/radio/Radio.stories.tsx +0 -192
  322. package/radio/types.d.ts +0 -54
  323. package/resultsetTable/ResultsetTable.js +0 -251
  324. package/select/index.d.ts +0 -131
  325. package/slider/Slider.stories.tsx +0 -177
  326. package/textarea/Textarea.stories.jsx +0 -135
  327. package/textarea/index.d.ts +0 -127
  328. package/toggle/Toggle.js +0 -186
  329. package/toggle/index.d.ts +0 -21
  330. package/upload/Upload.js +0 -201
  331. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  332. package/upload/buttons-upload/Icons.js +0 -40
  333. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  334. package/upload/dragAndDropArea/Icons.js +0 -39
  335. package/upload/file-upload/FileToUpload.js +0 -115
  336. package/upload/file-upload/Icons.js +0 -66
  337. package/upload/files-upload/FilesToUpload.js +0 -109
  338. package/upload/index.d.ts +0 -15
  339. package/upload/transaction/Icons.js +0 -160
  340. package/upload/transaction/Transaction.js +0 -104
  341. package/upload/transactions/Transactions.js +0 -94
  342. package/wizard/Icons.js +0 -65
  343. /package/{radio → action-icon}/types.js +0 -0
  344. /package/{resultsetTable → badge}/types.js +0 -0
  345. /package/{number-input/numberInputContextTypes.js → bleed/types.js} +0 -0
  346. /package/{resultsetTable → resultset-table}/ResultsetTable.d.ts +0 -0
package/wizard/Wizard.js CHANGED
@@ -1,110 +1,143 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _typeof3 = require("@babel/runtime/helpers/typeof");
6
-
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports["default"] = void 0;
11
-
12
- var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
-
14
9
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
15
-
10
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
16
11
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
-
18
12
  var _react = _interopRequireWildcard(require("react"));
19
-
20
13
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
-
22
- var _variables = require("../common/variables.js");
23
-
24
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
25
-
26
- var _Icons = require("./Icons");
27
-
14
+ var _variables = require("../common/variables");
15
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
28
16
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13;
29
-
30
- 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); }
31
-
32
- 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; }
33
-
17
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
18
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
19
+ var icons = {
20
+ validIcon: /*#__PURE__*/_react["default"].createElement("svg", {
21
+ id: "check_circle_black_18dp",
22
+ xmlns: "http://www.w3.org/2000/svg",
23
+ width: "18",
24
+ height: "18",
25
+ viewBox: "0 0 18 18"
26
+ }, /*#__PURE__*/_react["default"].createElement("path", {
27
+ id: "Path_2946",
28
+ "data-name": "Path 2946",
29
+ d: "M0,0H18V18H0Z",
30
+ fill: "none"
31
+ }), /*#__PURE__*/_react["default"].createElement("path", {
32
+ id: "Path_2947",
33
+ "data-name": "Path 2947",
34
+ 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",
35
+ transform: "translate(-0.986 -0.986)",
36
+ fill: "#eafaef",
37
+ opacity: "0.999"
38
+ }), /*#__PURE__*/_react["default"].createElement("path", {
39
+ id: "Path_2948",
40
+ "data-name": "Path 2948",
41
+ 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",
42
+ transform: "translate(-0.493 -0.493)",
43
+ fill: "#24a148"
44
+ })),
45
+ invalidIcon: /*#__PURE__*/_react["default"].createElement("svg", {
46
+ id: "highlight_off_black_18dp",
47
+ xmlns: "http://www.w3.org/2000/svg",
48
+ width: "18",
49
+ height: "18",
50
+ viewBox: "0 0 18 18"
51
+ }, /*#__PURE__*/_react["default"].createElement("path", {
52
+ id: "Path_2943",
53
+ "data-name": "Path 2943",
54
+ d: "M0,0H18V18H0Z",
55
+ fill: "none"
56
+ }), /*#__PURE__*/_react["default"].createElement("path", {
57
+ id: "Path_2944",
58
+ "data-name": "Path 2944",
59
+ 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",
60
+ transform: "translate(-1.002 -1.002)",
61
+ fill: "#ffe6e9"
62
+ }), /*#__PURE__*/_react["default"].createElement("path", {
63
+ id: "Path_2945",
64
+ "data-name": "Path 2945",
65
+ 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",
66
+ transform: "translate(-0.501 -0.501)",
67
+ fill: "#d0011b"
68
+ }))
69
+ };
34
70
  var DxcWizard = function DxcWizard(_ref) {
71
+ var _ref2;
35
72
  var _ref$mode = _ref.mode,
36
- mode = _ref$mode === void 0 ? "horizontal" : _ref$mode,
37
- currentStep = _ref.currentStep,
38
- onStepClick = _ref.onStepClick,
39
- steps = _ref.steps,
40
- margin = _ref.margin,
41
- _ref$tabIndex = _ref.tabIndex,
42
- tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
43
-
44
- var _useState = (0, _react.useState)(currentStep || 0),
45
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
46
- innerCurrent = _useState2[0],
47
- setInnerCurrentStep = _useState2[1];
48
-
73
+ mode = _ref$mode === void 0 ? "horizontal" : _ref$mode,
74
+ defaultCurrentStep = _ref.defaultCurrentStep,
75
+ currentStep = _ref.currentStep,
76
+ onStepClick = _ref.onStepClick,
77
+ steps = _ref.steps,
78
+ margin = _ref.margin,
79
+ _ref$tabIndex = _ref.tabIndex,
80
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
81
+ var _useState = (0, _react.useState)((_ref2 = currentStep !== null && currentStep !== void 0 ? currentStep : defaultCurrentStep) !== null && _ref2 !== void 0 ? _ref2 : 0),
82
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
83
+ innerCurrent = _useState2[0],
84
+ setInnerCurrentStep = _useState2[1];
49
85
  var renderedCurrent = currentStep == null ? innerCurrent : currentStep;
50
86
  var colorsTheme = (0, _useTheme["default"])();
51
-
52
87
  var handleStepClick = function handleStepClick(newValue) {
53
88
  if (currentStep == null) {
54
89
  setInnerCurrentStep(newValue);
55
90
  }
56
-
57
91
  if (onStepClick) {
58
92
  onStepClick(newValue);
59
93
  }
60
94
  };
61
-
62
95
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
63
96
  theme: colorsTheme.wizard
64
97
  }, /*#__PURE__*/_react["default"].createElement(StepsContainer, {
65
98
  mode: mode,
66
- margin: margin
99
+ margin: margin,
100
+ role: "group"
67
101
  }, steps === null || steps === void 0 ? void 0 : steps.map(function (step, i) {
68
102
  return /*#__PURE__*/_react["default"].createElement(StepContainer, {
69
103
  key: "step".concat(i),
70
104
  mode: mode,
71
105
  lastStep: i === (steps === null || steps === void 0 ? void 0 : steps.length) - 1
72
106
  }, /*#__PURE__*/_react["default"].createElement(Step, {
73
- tabIndex: tabIndex,
74
107
  onClick: function onClick() {
75
- return handleStepClick(i);
108
+ handleStepClick(i);
76
109
  },
77
- mode: mode,
78
110
  disabled: step.disabled,
111
+ mode: mode,
79
112
  first: i === 0,
80
- last: i === (steps === null || steps === void 0 ? void 0 : steps.length) - 1
81
- }, /*#__PURE__*/_react["default"].createElement(StepHeader, null, /*#__PURE__*/_react["default"].createElement(IconContainer, {
113
+ last: i === (steps === null || steps === void 0 ? void 0 : steps.length) - 1,
114
+ "aria-current": renderedCurrent === i ? "step" : "false",
115
+ tabIndex: tabIndex
116
+ }, /*#__PURE__*/_react["default"].createElement(StepHeader, {
117
+ validityIcon: step.valid !== undefined
118
+ }, /*#__PURE__*/_react["default"].createElement(IconContainer, {
82
119
  current: i === renderedCurrent,
83
120
  visited: i < renderedCurrent,
84
121
  disabled: step.disabled
85
- }, step.icon ? /*#__PURE__*/_react["default"].createElement(StepIconContainer, {
86
- disabled: step.disabled
87
- }, (0, _typeof2["default"])(step.icon) === "object" ? step.icon : /*#__PURE__*/_react["default"].createElement(step.icon)) : step.iconSrc ? /*#__PURE__*/_react["default"].createElement(Icon, {
88
- src: step.iconSrc
89
- }) : /*#__PURE__*/_react["default"].createElement(Number, {
90
- disabled: step.disabled,
91
- current: i === renderedCurrent
92
- }, 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, {
122
+ }, step.icon ? /*#__PURE__*/_react["default"].createElement(StepIconContainer, null, typeof step.icon === "string" ? /*#__PURE__*/_react["default"].createElement(Icon, {
123
+ src: step.icon
124
+ }) : step.icon) : /*#__PURE__*/_react["default"].createElement(Number, null, 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, {
125
+ current: i === renderedCurrent,
93
126
  disabled: step.disabled,
94
127
  visited: i <= innerCurrent
95
- }, step.label) : "", step.description ? /*#__PURE__*/_react["default"].createElement(Description, {
128
+ }, step.label), step.description && /*#__PURE__*/_react["default"].createElement(Description, {
129
+ current: i === renderedCurrent,
96
130
  disabled: step.disabled,
97
131
  visited: i <= innerCurrent
98
- }, step.description) : "") : ""), i === steps.length - 1 ? "" : /*#__PURE__*/_react["default"].createElement(StepSeparator, {
132
+ }, step.description))), i === steps.length - 1 ? "" : /*#__PURE__*/_react["default"].createElement(StepSeparator, {
99
133
  mode: mode
100
134
  }));
101
135
  })));
102
136
  };
103
-
104
- var StepsContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (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"])), function (props) {
137
+ var StepsContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: ", ";\n justify-content: center;\n ", ";\n font-family: ", ";\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
105
138
  return props.mode === "vertical" ? "column" : "row";
106
139
  }, function (props) {
107
- return props.mode === "vertical" ? "height: 500px" : "width: 100%";
140
+ return props.mode === "vertical" && "height: 500px";
108
141
  }, function (props) {
109
142
  return props.theme.fontFamily;
110
143
  }, function (props) {
@@ -118,18 +151,16 @@ var StepsContainer = _styledComponents["default"].div(_templateObject || (_templ
118
151
  }, function (props) {
119
152
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
120
153
  });
121
-
122
154
  var StepContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n ", "\n flex-grow: ", ";\n flex-direction: ", ";\n ", "\n"])), function (props) {
123
- return props.mode === "vertical" ? "" : "align-items: center;";
155
+ return props.mode !== "vertical" && "align-items: center;";
124
156
  }, function (props) {
125
157
  return props.lastStep ? "0" : "1";
126
158
  }, function (props) {
127
159
  return props.mode === "vertical" ? "column" : "row";
128
160
  }, function (props) {
129
- return props.mode === "vertical" ? "width: 100%;" : "";
161
+ return props.mode === "vertical" && "width: fit-content;";
130
162
  });
131
-
132
- var Step = _styledComponents["default"].button(_templateObject3 || (_templateObject3 = (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"])), function (props) {
163
+ var Step = _styledComponents["default"].button(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: flex-start;\n align-items: center;\n border: none;\n border-radius: 0.25rem;\n background: inherit;\n margin: ", ";\n\n padding: 0px;\n ", ";\n\n &:hover {\n ", ";\n }\n &:focus {\n outline: 2px solid ", ";\n }\n"])), function (props) {
133
164
  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";
134
165
  }, function (props) {
135
166
  return props.disabled ? "cursor: not-allowed" : "";
@@ -138,49 +169,43 @@ var Step = _styledComponents["default"].button(_templateObject3 || (_templateObj
138
169
  }, function (props) {
139
170
  return props.theme.focusColor;
140
171
  });
141
-
142
- var StepHeader = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n display: inline-flex;\n padding-bottom: 4px;\n"])));
143
-
144
- var IconContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (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"])), function (props) {
145
- return props.disabled ? props.theme.disabledCircleWidth : props.current ? props.theme.selectedCircleWidth : props.theme.circleWidth;
172
+ var StepHeader = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n display: inline-flex;\n ", "\n"])), function (props) {
173
+ return props.validityIcon && "padding-bottom: 4px;";
174
+ });
175
+ var IconContainer = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n height: ", ";\n\n ", "\n ", ";\n\n border-radius: ", ";\n\n display: flex;\n justify-content: center;\n align-items: center;\n"])), function (props) {
176
+ return props.disabled ? props.theme.disabledStepWidth : props.current ? props.theme.selectedStepWidth : props.theme.stepWidth;
146
177
  }, function (props) {
147
- return props.disabled ? props.theme.disabledCircleHeight : props.current ? props.theme.selectedCircleHeight : props.theme.circleHeight;
178
+ return props.disabled ? props.theme.disabledStepHeight : props.current ? props.theme.selectedStepHeight : props.theme.stepHeight;
148
179
  }, function (props) {
149
- 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 ");
180
+ return "\n ".concat(props.disabled ? "border: ".concat(props.theme.disabledStepBorderThickness, " ").concat(props.theme.disabledStepBorderStyle, " ").concat(props.theme.disabledStepBorderColor, ";") : props.current ? "border: ".concat(props.theme.selectedStepBorderThickness, " ").concat(props.theme.selectedStepBorderStyle, " ").concat(props.theme.selectedStepBorderColor, ";") : props.visited ? "border: ".concat(props.theme.stepBorderThickness, " ").concat(props.theme.stepBorderStyle, " ").concat(props.theme.visitedStepBorderColor, ";") : "border: ".concat(props.theme.stepBorderThickness, " ").concat(props.theme.stepBorderStyle, " ").concat(props.theme.unvisitedStepBorderColor, ";"), "\n background: ").concat(props.disabled ? "".concat(props.theme.disabledStepBackgroundColor) : props.current ? "".concat(props.theme.selectedStepBackgroundColor) : !props.visited ? "".concat(props.theme.unvisitedStepBackgroundColor) : "".concat(props.theme.visitedStepBackgroundColor), ";\n ");
150
181
  }, function (props) {
151
- return props.disabled ? "color: ".concat(props.theme.disabledFontColor, ";") : "color: ".concat(props.current ? props.theme.stepContainerSelectedFontColor : props.theme.stepContainerFontColor, ";");
182
+ return props.disabled ? "color: ".concat(props.theme.disabledStepFontColor, ";") : "color: ".concat(props.current ? props.theme.selectedStepFontColor : !props.visited ? props.theme.unvisitedStepFontColor : props.theme.visitedStepFontColor, ";");
152
183
  }, function (props) {
153
- return !props.current && !props.disabled ? props.theme.circleBorderRadius : props.current ? props.theme.selectedCircleBorderRadius : props.disabled ? props.theme.disabledCircleBorderRadius : "";
184
+ return !props.current && !props.disabled ? props.theme.stepBorderRadius : props.current ? props.theme.selectedStepBorderRadius : props.disabled ? props.theme.disabledStepBorderRadius : "";
154
185
  });
155
-
156
186
  var Icon = _styledComponents["default"].img(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n height: ", ";\n"])), function (props) {
157
- return props.theme.stepContainerIconSize;
187
+ return props.theme.stepIconSize;
158
188
  }, function (props) {
159
- return props.theme.stepContainerIconSize;
189
+ return props.theme.stepIconSize;
160
190
  });
161
-
162
191
  var StepIconContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n width: ", ";\n height: ", ";\n overflow: hidden;\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
163
- return props.theme.stepContainerIconSize;
192
+ return props.theme.stepIconSize;
164
193
  }, function (props) {
165
- return props.theme.stepContainerIconSize;
194
+ return props.theme.stepIconSize;
166
195
  });
167
-
168
196
  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) {
169
- return props.theme.stepContainerFontSize;
197
+ return props.theme.stepFontSize;
170
198
  }, function (props) {
171
- return props.theme.stepContainerFontFamily;
199
+ return props.theme.stepFontFamily;
172
200
  }, function (props) {
173
- return props.theme.stepContainerFontStyle;
201
+ return props.theme.stepFontStyle;
174
202
  }, function (props) {
175
- return props.theme.stepContainerFontWeight;
203
+ return props.theme.stepFontWeight;
176
204
  }, function (props) {
177
- return props.theme.stepContainerLetterSpacing;
205
+ return props.theme.stepFontTracking;
178
206
  });
179
-
180
207
  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"])));
181
-
182
208
  var InfoContainer = _styledComponents["default"].div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n margin-left: 12px;\n"])));
183
-
184
209
  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) {
185
210
  return props.theme.labelTextAlign;
186
211
  }, function (props) {
@@ -192,40 +217,34 @@ var Label = _styledComponents["default"].p(_templateObject11 || (_templateObject
192
217
  }, function (props) {
193
218
  return props.theme.labelFontWeight;
194
219
  }, function (props) {
195
- return props.theme.labelLetterSpacing;
220
+ return props.theme.labelFontTracking;
196
221
  }, function (props) {
197
- return props.disabled ? "color: ".concat(props.theme.disabledFontColor, ";") : "color: ".concat(props.visited ? props.theme.visitedLabelFontColor : props.theme.labelFontColor, ";");
222
+ return props.disabled ? "color: ".concat(props.theme.disabledLabelFontColor, ";") : "color: ".concat(!props.visited ? props.theme.unvisitedLabelFontColor : props.current ? props.theme.selectedLabelFontColor : props.theme.visitedLabelFontColor, ";");
198
223
  }, function (props) {
199
224
  return props.theme.labelFontTextTransform;
200
225
  });
201
-
202
226
  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) {
203
- return props.theme.descriptionTextAlign;
227
+ return props.theme.helperTextTextAlign;
204
228
  }, function (props) {
205
- return props.theme.descriptionFontFamily;
229
+ return props.theme.helperTextFontFamily;
206
230
  }, function (props) {
207
- return props.theme.descriptionFontSize;
231
+ return props.theme.helperTextFontSize;
208
232
  }, function (props) {
209
- return props.theme.descriptionFontStyle;
233
+ return props.theme.helperTextFontStyle;
210
234
  }, function (props) {
211
- return props.theme.descriptionFontWeight;
235
+ return props.theme.helperTextFontWeight;
212
236
  }, function (props) {
213
- return props.theme.descriptionLetterSpacing;
237
+ return props.theme.helperTextFontTracking;
214
238
  }, function (props) {
215
- return props.theme.descriptionFontTextTransform;
239
+ return props.theme.helperTextFontTextTransform;
216
240
  }, function (props) {
217
- return props.disabled ? "color: ".concat(props.theme.disabledFontColor, ";") : "color: ".concat(props.visited ? props.theme.visitedDescriptionFontColor : props.theme.descriptionFontColor, ";");
241
+ return props.disabled ? "color: ".concat(props.theme.disabledHelperTextFontColor, ";") : "color: ".concat(!props.visited ? props.theme.unvisitedHelperTextFontColor : props.current ? props.theme.selectedHelperTextFontColor : props.theme.visitedHelperTextFontColor, ";");
218
242
  });
219
-
220
- 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) {
221
- return props.mode === "horizontal" ? "" : "0";
243
+ var StepSeparator = _styledComponents["default"].div(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2["default"])(["\n ", ";\n ", "\n border: ", ";\n opacity: 1;\n flex-grow: 1;\n"])), function (props) {
244
+ return props.mode === "horizontal" ? "height: 0;" : "width: 0;";
222
245
  }, function (props) {
223
- return props.mode === "horizontal" ? "0" : "";
224
- }, function (props) {
225
- return props.mode === "vertical" ? "margin: 0 18px;" : "";
246
+ return props.mode === "vertical" && "margin: 0 18px;";
226
247
  }, function (props) {
227
248
  return "".concat(props.theme.separatorBorderStyle, " ").concat(props.theme.separatorBorderThickness, " ").concat(props.theme.separatorColor);
228
249
  });
229
-
230
- var _default = DxcWizard;
231
- exports["default"] = _default;
250
+ var _default = exports["default"] = DxcWizard;
@@ -3,29 +3,25 @@ import DxcWizard from "./Wizard";
3
3
  import Title from "../../.storybook/components/Title";
4
4
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
5
5
  import { userEvent, within } from "@storybook/testing-library";
6
+ import { HalstackProvider } from "../HalstackContext";
6
7
 
7
8
  export default {
8
9
  title: "Wizard",
9
10
  component: DxcWizard,
10
11
  };
11
12
 
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
- };
13
+ const favoriteSVG = (
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
+ const largeIcon = (
20
+ <svg xmlns="http://www.w3.org/2000/svg" height="48px" viewBox="0 0 24 24" width="48px" fill="currentColor">
21
+ <path d="M0 0h24v24H0z" fill="none" />
22
+ <path d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z" />
23
+ </svg>
24
+ );
29
25
 
30
26
  const stepWithLabel = [
31
27
  {
@@ -137,19 +133,41 @@ const stepLargeIcons = [
137
133
  },
138
134
  ];
139
135
 
136
+ const opinionatedTheme = {
137
+ wizard: {
138
+ baseColor: "#5f249f",
139
+ fontColor: "#000000",
140
+ selectedStepFontColor: "#ffffff",
141
+ },
142
+ };
143
+
140
144
  export const Chromatic = () => (
141
145
  <>
142
146
  <ExampleContainer>
143
147
  <Title title="Current step in the third step, labels and description" theme="light" level={4} />
144
- <DxcWizard currentStep={2} steps={stepWithLabelDescription}></DxcWizard>
148
+ <DxcWizard defaultCurrentStep={2} steps={stepWithLabelDescription}></DxcWizard>
149
+ </ExampleContainer>
150
+ <ExampleContainer>
145
151
  <Title title="With long description in horizontal" theme="light" level={4} />
146
152
  <DxcWizard steps={stepWithLongDescription}></DxcWizard>
153
+ </ExampleContainer>
154
+ <ExampleContainer>
147
155
  <Title title="With long description in vertical" theme="light" level={4} />
148
156
  <DxcWizard mode="vertical" steps={stepWithLongDescription}></DxcWizard>
157
+ </ExampleContainer>
158
+ <ExampleContainer>
149
159
  <Title title="Disabled steps" theme="light" level={4} />
150
160
  <DxcWizard steps={stepDisabled}></DxcWizard>
161
+ </ExampleContainer>
162
+ <ExampleContainer pseudoState="pseudo-focus">
163
+ <Title title="Focused steps" theme="light" level={4} />
164
+ <DxcWizard steps={stepIcons}></DxcWizard>
165
+ </ExampleContainer>
166
+ <ExampleContainer>
151
167
  <Title title="With icons" theme="light" level={4} />
152
168
  <DxcWizard steps={stepIcons}></DxcWizard>
169
+ </ExampleContainer>
170
+ <ExampleContainer>
153
171
  <Title title="With large icons" theme="light" level={4} />
154
172
  <DxcWizard steps={stepLargeIcons}></DxcWizard>
155
173
  </ExampleContainer>
@@ -211,10 +229,21 @@ export const Chromatic = () => (
211
229
  <Title title="Xxlarge margin" theme="light" level={4} />
212
230
  <DxcWizard mode="vertical" margin="xxlarge" steps={stepWithLabel}></DxcWizard>
213
231
  </ExampleContainer>
232
+ <Title title="Opinionated theme" theme="light" level={2} />
233
+ <ExampleContainer>
234
+ <HalstackProvider theme={opinionatedTheme}>
235
+ <DxcWizard defaultCurrentStep={2} steps={stepWithLabelDescription}></DxcWizard>
236
+ </HalstackProvider>
237
+ </ExampleContainer>
214
238
  </>
215
239
  );
216
240
 
217
- const WizardSelected = () => <DxcWizard steps={stepWithLabel}></DxcWizard>;
241
+ const WizardSelected = () => (
242
+ <ExampleContainer>
243
+ <Title title="Clicked step" theme="light" level={4} />
244
+ <DxcWizard steps={stepWithLabel} mode="vertical"></DxcWizard>
245
+ </ExampleContainer>
246
+ );
218
247
 
219
248
  export const WizardStepActived = WizardSelected.bind({});
220
249
  WizardStepActived.play = async ({ canvasElement }) => {
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _react = _interopRequireDefault(require("react"));
5
+ var _react2 = require("@testing-library/react");
6
+ var _Wizard = _interopRequireDefault(require("./Wizard.tsx"));
7
+ describe("Wizard components tests", function () {
8
+ test("Wizard renders with correct steps", function () {
9
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Wizard["default"], {
10
+ steps: [{
11
+ label: "first-step"
12
+ }, {
13
+ label: "second-step"
14
+ }]
15
+ })),
16
+ getByText = _render.getByText,
17
+ getAllByRole = _render.getAllByRole;
18
+ var steps = getAllByRole("button");
19
+ expect(getByText("first-step")).toBeTruthy();
20
+ expect(getByText("second-step")).toBeTruthy();
21
+ expect(steps[0].getAttribute("aria-current")).toBe("step");
22
+ expect(steps[1].getAttribute("aria-current")).toBe("false");
23
+ });
24
+ test("Wizard renders with initially selected step", function () {
25
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Wizard["default"], {
26
+ defaultCurrentStep: 1,
27
+ steps: [{
28
+ label: "first-step"
29
+ }, {
30
+ label: "second-step"
31
+ }]
32
+ })),
33
+ getAllByRole = _render2.getAllByRole;
34
+ var steps = getAllByRole("button");
35
+ expect(steps[1].getAttribute("aria-current")).toBe("step");
36
+ });
37
+ test("Click on step text", function () {
38
+ var onClick = jest.fn();
39
+ var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Wizard["default"], {
40
+ onStepClick: onClick,
41
+ steps: [{
42
+ label: "first-step"
43
+ }]
44
+ })),
45
+ getByText = _render3.getByText;
46
+ var step = getByText("first-step");
47
+ _react2.fireEvent.click(step);
48
+ expect(onClick).toHaveBeenCalled();
49
+ });
50
+ test("Click on step description", function () {
51
+ var onClick = jest.fn();
52
+ var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Wizard["default"], {
53
+ onStepClick: onClick,
54
+ steps: [{
55
+ label: "first-step",
56
+ description: "step-description"
57
+ }]
58
+ })),
59
+ getByText = _render4.getByText;
60
+ var step = getByText("step-description");
61
+ _react2.fireEvent.click(step);
62
+ expect(onClick).toHaveBeenCalled();
63
+ });
64
+ test("Click on step number", function () {
65
+ var onClick = jest.fn();
66
+ var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Wizard["default"], {
67
+ onStepClick: onClick,
68
+ steps: [{
69
+ label: "first-step"
70
+ }]
71
+ })),
72
+ getByText = _render5.getByText;
73
+ var step = getByText("1");
74
+ _react2.fireEvent.click(step);
75
+ expect(onClick).toHaveBeenCalled();
76
+ });
77
+ test("Click on disable step", function () {
78
+ var onClick = jest.fn();
79
+ var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Wizard["default"], {
80
+ onStepClick: onClick,
81
+ steps: [{
82
+ label: "first-step"
83
+ }, {
84
+ label: "second-step",
85
+ disabled: true
86
+ }]
87
+ })),
88
+ getByText = _render6.getByText;
89
+ var step = getByText("second-step");
90
+ _react2.fireEvent.click(step);
91
+ expect(onClick).toHaveBeenCalledTimes(0);
92
+ });
93
+ test("Controlled wizard function is called", function () {
94
+ var onClick = jest.fn(function (i) {
95
+ return i;
96
+ });
97
+ var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Wizard["default"], {
98
+ currentStep: 0,
99
+ onStepClick: onClick,
100
+ steps: [{
101
+ label: "first-step"
102
+ }, {
103
+ label: "second-step"
104
+ }]
105
+ })),
106
+ getAllByRole = _render7.getAllByRole;
107
+ var steps = getAllByRole("button");
108
+ _react2.fireEvent.click(steps[1]);
109
+ _react2.fireEvent.click(steps[0]);
110
+ expect(onClick).toHaveBeenCalledTimes(2);
111
+ expect(onClick).toHaveBeenNthCalledWith(1, 1);
112
+ expect(onClick).toHaveBeenNthCalledWith(2, 0);
113
+ });
114
+ });
package/wizard/types.d.ts CHANGED
@@ -1,13 +1,13 @@
1
1
  /// <reference types="react" />
2
- declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
- declare type Margin = {
2
+ type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
+ type Margin = {
4
4
  top?: Space;
5
5
  bottom?: Space;
6
6
  left?: Space;
7
7
  right?: Space;
8
8
  };
9
- declare type SVG = React.SVGProps<SVGSVGElement> | React.FunctionComponent<React.SVGProps<SVGSVGElement>>;
10
- declare type Step = {
9
+ type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
10
+ export type StepProps = {
11
11
  /**
12
12
  * Step label.
13
13
  */
@@ -17,13 +17,9 @@ declare type Step = {
17
17
  */
18
18
  description?: string;
19
19
  /**
20
- * Element used as the icon to be displayed in the step.
20
+ * Element or path used as the icon displayed in the step.
21
21
  */
22
- icon?: SVG;
23
- /**
24
- * @deprecated URL of the icon to be displayed in the step.
25
- */
26
- iconSrc?: string;
22
+ icon?: string | SVG;
27
23
  /**
28
24
  * Whether the step is disabled or not.
29
25
  */
@@ -33,24 +29,28 @@ declare type Step = {
33
29
  */
34
30
  valid?: boolean;
35
31
  };
36
- declare type Props = {
32
+ type Props = {
37
33
  /**
38
34
  * The wizard can be showed in horizontal or vertical.
39
35
  */
40
36
  mode?: "horizontal" | "vertical";
41
37
  /**
42
- * Defines which step is marked as the current. The numeration starts in 0.
38
+ * Initially selected step, only when it is uncontrolled.
39
+ */
40
+ defaultCurrentStep?: number;
41
+ /**
42
+ * Defines which step is marked as the current. The numeration starts at 0.
43
43
  */
44
44
  currentStep?: number;
45
45
  /**
46
46
  * This function will be called when the user clicks a step. The step
47
47
  * number will be passed as a parameter.
48
48
  */
49
- onStepClick?: (newCurrentStep: number) => void;
49
+ onStepClick?: (currentStep: number) => void;
50
50
  /**
51
51
  * An array of objects representing the steps.
52
52
  */
53
- steps: Step[];
53
+ steps: StepProps[];
54
54
  /**
55
55
  * Size of the margin to be applied to the component ('xxsmall' | 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' | 'xxlarge').
56
56
  * You can pass an object with 'top', 'bottom', 'left' and 'right' properties in order to specify different margin sizes.