@dxc-technology/halstack-react 0.0.0-73f82b7 → 0.0.0-74c93cf

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 (400) hide show
  1. package/BackgroundColorContext.d.ts +1 -0
  2. package/BackgroundColorContext.js +6 -26
  3. package/HalstackContext.d.ts +1249 -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 +105 -194
  8. package/accordion/Accordion.stories.tsx +252 -0
  9. package/accordion/Accordion.test.js +56 -0
  10. package/accordion/types.d.ts +12 -23
  11. package/accordion-group/AccordionGroup.d.ts +3 -3
  12. package/accordion-group/AccordionGroup.js +39 -108
  13. package/accordion-group/AccordionGroup.stories.tsx +252 -0
  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/AccordionGroupContext.d.ts +3 -0
  18. package/accordion-group/AccordionGroupContext.js +8 -0
  19. package/accordion-group/types.d.ts +18 -23
  20. package/action-icon/ActionIcon.d.ts +4 -0
  21. package/action-icon/ActionIcon.js +48 -0
  22. package/action-icon/ActionIcon.stories.tsx +41 -0
  23. package/action-icon/ActionIcon.test.js +64 -0
  24. package/action-icon/types.d.ts +26 -0
  25. package/alert/Alert.js +24 -60
  26. package/alert/Alert.stories.tsx +28 -0
  27. package/alert/Alert.test.js +75 -0
  28. package/alert/types.d.ts +6 -6
  29. package/badge/Badge.d.ts +4 -0
  30. package/badge/Badge.js +141 -41
  31. package/badge/Badge.stories.tsx +210 -0
  32. package/badge/Badge.test.js +30 -0
  33. package/badge/types.d.ts +54 -0
  34. package/badge/types.js +5 -0
  35. package/bleed/Bleed.d.ts +3 -0
  36. package/bleed/Bleed.js +43 -0
  37. package/bleed/Bleed.stories.tsx +342 -0
  38. package/bleed/types.d.ts +37 -0
  39. package/bleed/types.js +5 -0
  40. package/box/Box.d.ts +1 -1
  41. package/box/Box.js +32 -86
  42. package/box/Box.stories.tsx +38 -51
  43. package/box/Box.test.js +13 -0
  44. package/box/types.d.ts +3 -18
  45. package/bulleted-list/BulletedList.d.ts +7 -0
  46. package/bulleted-list/BulletedList.js +89 -0
  47. package/bulleted-list/BulletedList.stories.tsx +115 -0
  48. package/bulleted-list/types.d.ts +38 -0
  49. package/bulleted-list/types.js +5 -0
  50. package/button/Button.d.ts +1 -1
  51. package/button/Button.js +65 -121
  52. package/button/Button.stories.tsx +156 -106
  53. package/button/Button.test.js +38 -0
  54. package/button/types.d.ts +14 -14
  55. package/card/Card.d.ts +1 -1
  56. package/card/Card.js +59 -104
  57. package/card/Card.stories.tsx +171 -0
  58. package/card/Card.test.js +39 -0
  59. package/card/types.d.ts +8 -15
  60. package/checkbox/Checkbox.d.ts +2 -2
  61. package/checkbox/Checkbox.js +145 -183
  62. package/checkbox/Checkbox.stories.tsx +166 -136
  63. package/checkbox/Checkbox.test.js +199 -0
  64. package/checkbox/types.d.ts +20 -8
  65. package/chip/Chip.d.ts +4 -0
  66. package/chip/Chip.js +48 -148
  67. package/chip/Chip.stories.tsx +214 -0
  68. package/chip/Chip.test.js +41 -0
  69. package/chip/types.d.ts +45 -0
  70. package/chip/types.js +5 -0
  71. package/common/coreTokens.d.ts +237 -0
  72. package/common/coreTokens.js +184 -0
  73. package/common/utils.d.ts +1 -0
  74. package/common/utils.js +6 -12
  75. package/common/variables.d.ts +1395 -0
  76. package/common/variables.js +1034 -1344
  77. package/container/Container.d.ts +4 -0
  78. package/container/Container.js +194 -0
  79. package/container/Container.stories.tsx +214 -0
  80. package/container/types.d.ts +74 -0
  81. package/container/types.js +5 -0
  82. package/contextual-menu/ContextualMenu.d.ts +7 -0
  83. package/contextual-menu/ContextualMenu.js +71 -0
  84. package/contextual-menu/ContextualMenu.stories.tsx +182 -0
  85. package/contextual-menu/ContextualMenu.test.js +71 -0
  86. package/contextual-menu/MenuItemAction.d.ts +4 -0
  87. package/contextual-menu/MenuItemAction.js +46 -0
  88. package/contextual-menu/types.d.ts +22 -0
  89. package/contextual-menu/types.js +5 -0
  90. package/date-input/Calendar.d.ts +4 -0
  91. package/date-input/Calendar.js +214 -0
  92. package/date-input/DateInput.js +175 -313
  93. package/date-input/DateInput.stories.tsx +203 -56
  94. package/date-input/DateInput.test.js +808 -0
  95. package/date-input/DatePicker.d.ts +4 -0
  96. package/date-input/DatePicker.js +115 -0
  97. package/date-input/Icons.d.ts +6 -0
  98. package/date-input/Icons.js +58 -0
  99. package/date-input/YearPicker.d.ts +4 -0
  100. package/date-input/YearPicker.js +100 -0
  101. package/date-input/types.d.ts +86 -22
  102. package/dialog/Dialog.d.ts +1 -1
  103. package/dialog/Dialog.js +69 -130
  104. package/dialog/Dialog.stories.tsx +365 -0
  105. package/dialog/Dialog.test.js +307 -0
  106. package/dialog/types.d.ts +18 -25
  107. package/divider/Divider.d.ts +4 -0
  108. package/divider/Divider.js +36 -0
  109. package/divider/Divider.stories.tsx +223 -0
  110. package/divider/Divider.test.js +38 -0
  111. package/divider/types.d.ts +21 -0
  112. package/divider/types.js +5 -0
  113. package/dropdown/Dropdown.d.ts +1 -1
  114. package/dropdown/Dropdown.js +232 -330
  115. package/dropdown/Dropdown.stories.tsx +427 -0
  116. package/dropdown/Dropdown.test.js +599 -0
  117. package/dropdown/DropdownMenu.d.ts +4 -0
  118. package/dropdown/DropdownMenu.js +63 -0
  119. package/dropdown/DropdownMenuItem.d.ts +4 -0
  120. package/dropdown/DropdownMenuItem.js +70 -0
  121. package/dropdown/types.d.ts +38 -31
  122. package/file-input/FileInput.d.ts +4 -0
  123. package/file-input/FileInput.js +274 -327
  124. package/file-input/FileInput.stories.tsx +618 -0
  125. package/file-input/FileInput.test.js +459 -0
  126. package/file-input/FileItem.d.ts +4 -0
  127. package/file-input/FileItem.js +54 -112
  128. package/file-input/types.d.ts +129 -0
  129. package/file-input/types.js +5 -0
  130. package/flex/Flex.d.ts +4 -0
  131. package/flex/Flex.js +57 -0
  132. package/flex/Flex.stories.tsx +112 -0
  133. package/flex/types.d.ts +97 -0
  134. package/flex/types.js +5 -0
  135. package/footer/Footer.d.ts +1 -1
  136. package/footer/Footer.js +73 -201
  137. package/footer/{Footer.stories.jsx → Footer.stories.tsx} +57 -37
  138. package/footer/Footer.test.js +85 -0
  139. package/footer/Icons.d.ts +3 -0
  140. package/footer/Icons.js +67 -8
  141. package/footer/types.d.ts +41 -38
  142. package/grid/Grid.d.ts +7 -0
  143. package/grid/Grid.js +76 -0
  144. package/grid/Grid.stories.tsx +219 -0
  145. package/grid/types.d.ts +115 -0
  146. package/grid/types.js +5 -0
  147. package/header/Header.d.ts +4 -3
  148. package/header/Header.js +100 -204
  149. package/header/Header.stories.tsx +251 -0
  150. package/header/Header.test.js +66 -0
  151. package/header/Icons.d.ts +2 -0
  152. package/header/Icons.js +4 -9
  153. package/header/types.d.ts +6 -18
  154. package/heading/Heading.d.ts +4 -0
  155. package/heading/Heading.js +16 -55
  156. package/heading/Heading.stories.tsx +54 -0
  157. package/heading/Heading.test.js +169 -0
  158. package/heading/types.d.ts +33 -0
  159. package/heading/types.js +5 -0
  160. package/icon/Icon.d.ts +4 -0
  161. package/icon/Icon.js +33 -0
  162. package/icon/Icon.stories.tsx +28 -0
  163. package/icon/types.d.ts +4 -0
  164. package/icon/types.js +5 -0
  165. package/image/Image.d.ts +4 -0
  166. package/image/Image.js +70 -0
  167. package/image/Image.stories.tsx +129 -0
  168. package/image/types.d.ts +72 -0
  169. package/image/types.js +5 -0
  170. package/inset/Inset.d.ts +3 -0
  171. package/inset/Inset.js +43 -0
  172. package/inset/Inset.stories.tsx +230 -0
  173. package/inset/types.d.ts +37 -0
  174. package/inset/types.js +5 -0
  175. package/layout/ApplicationLayout.d.ts +20 -0
  176. package/layout/ApplicationLayout.js +83 -184
  177. package/layout/ApplicationLayout.stories.tsx +162 -0
  178. package/layout/Icons.d.ts +8 -0
  179. package/layout/Icons.js +51 -48
  180. package/layout/types.d.ts +41 -0
  181. package/layout/types.js +5 -0
  182. package/link/Link.d.ts +3 -2
  183. package/link/Link.js +65 -111
  184. package/link/Link.stories.tsx +199 -16
  185. package/link/Link.test.js +63 -0
  186. package/link/types.d.ts +15 -35
  187. package/main.d.ts +19 -14
  188. package/main.js +92 -98
  189. package/nav-tabs/NavTabs.d.ts +7 -0
  190. package/nav-tabs/NavTabs.js +93 -0
  191. package/nav-tabs/NavTabs.stories.tsx +276 -0
  192. package/nav-tabs/NavTabs.test.js +76 -0
  193. package/nav-tabs/NavTabsContext.d.ts +3 -0
  194. package/nav-tabs/NavTabsContext.js +8 -0
  195. package/nav-tabs/Tab.d.ts +4 -0
  196. package/nav-tabs/Tab.js +118 -0
  197. package/nav-tabs/types.d.ts +52 -0
  198. package/nav-tabs/types.js +5 -0
  199. package/number-input/NumberInput.js +48 -48
  200. package/number-input/NumberInput.stories.tsx +44 -28
  201. package/number-input/NumberInput.test.js +989 -0
  202. package/number-input/NumberInputContext.d.ts +3 -0
  203. package/number-input/NumberInputContext.js +3 -11
  204. package/number-input/types.d.ts +34 -15
  205. package/package.json +46 -45
  206. package/paginator/Icons.d.ts +5 -0
  207. package/paginator/Icons.js +21 -47
  208. package/paginator/Paginator.js +35 -98
  209. package/paginator/Paginator.stories.tsx +24 -0
  210. package/paginator/Paginator.test.js +335 -0
  211. package/paginator/types.d.ts +3 -3
  212. package/paragraph/Paragraph.d.ts +5 -0
  213. package/paragraph/Paragraph.js +22 -0
  214. package/paragraph/Paragraph.stories.tsx +27 -0
  215. package/password-input/Icons.d.ts +6 -0
  216. package/password-input/Icons.js +35 -0
  217. package/password-input/PasswordInput.js +60 -125
  218. package/password-input/PasswordInput.stories.tsx +3 -35
  219. package/password-input/PasswordInput.test.js +198 -0
  220. package/password-input/types.d.ts +35 -24
  221. package/progress-bar/ProgressBar.js +66 -92
  222. package/progress-bar/ProgressBar.stories.tsx +93 -0
  223. package/progress-bar/ProgressBar.test.js +93 -0
  224. package/progress-bar/types.d.ts +3 -3
  225. package/quick-nav/QuickNav.d.ts +4 -0
  226. package/quick-nav/QuickNav.js +94 -0
  227. package/quick-nav/QuickNav.stories.tsx +356 -0
  228. package/quick-nav/types.d.ts +21 -0
  229. package/quick-nav/types.js +5 -0
  230. package/radio-group/Radio.d.ts +4 -0
  231. package/radio-group/Radio.js +124 -0
  232. package/radio-group/RadioGroup.d.ts +4 -0
  233. package/radio-group/RadioGroup.js +235 -0
  234. package/radio-group/RadioGroup.stories.tsx +214 -0
  235. package/radio-group/RadioGroup.test.js +756 -0
  236. package/radio-group/types.d.ts +114 -0
  237. package/radio-group/types.js +5 -0
  238. package/resultset-table/Icons.d.ts +7 -0
  239. package/resultset-table/Icons.js +47 -0
  240. package/resultset-table/ResultsetTable.d.ts +7 -0
  241. package/resultset-table/ResultsetTable.js +170 -0
  242. package/resultset-table/ResultsetTable.stories.tsx +401 -0
  243. package/resultset-table/ResultsetTable.test.js +381 -0
  244. package/resultset-table/types.d.ts +100 -0
  245. package/resultset-table/types.js +5 -0
  246. package/select/Icons.d.ts +10 -0
  247. package/select/Icons.js +89 -0
  248. package/select/Listbox.d.ts +4 -0
  249. package/select/Listbox.js +143 -0
  250. package/select/Option.d.ts +4 -0
  251. package/select/Option.js +87 -0
  252. package/select/Select.d.ts +4 -0
  253. package/select/Select.js +240 -515
  254. package/select/Select.stories.tsx +971 -0
  255. package/select/Select.test.js +2370 -0
  256. package/select/types.d.ts +209 -0
  257. package/select/types.js +5 -0
  258. package/sidenav/Icons.d.ts +7 -0
  259. package/sidenav/Icons.js +47 -0
  260. package/sidenav/Sidenav.d.ts +6 -5
  261. package/sidenav/Sidenav.js +133 -72
  262. package/sidenav/Sidenav.stories.tsx +282 -0
  263. package/sidenav/Sidenav.test.js +37 -0
  264. package/sidenav/SidenavContext.d.ts +5 -0
  265. package/sidenav/SidenavContext.js +13 -0
  266. package/sidenav/types.d.ts +52 -26
  267. package/slider/Slider.d.ts +2 -2
  268. package/slider/Slider.js +151 -183
  269. package/slider/Slider.test.js +254 -0
  270. package/slider/types.d.ts +11 -3
  271. package/spinner/Spinner.js +32 -76
  272. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -26
  273. package/spinner/Spinner.test.js +55 -0
  274. package/spinner/types.d.ts +3 -3
  275. package/status-light/StatusLight.d.ts +4 -0
  276. package/status-light/StatusLight.js +51 -0
  277. package/status-light/StatusLight.stories.tsx +74 -0
  278. package/status-light/StatusLight.test.js +25 -0
  279. package/status-light/types.d.ts +17 -0
  280. package/status-light/types.js +5 -0
  281. package/switch/Switch.d.ts +2 -2
  282. package/switch/Switch.js +150 -115
  283. package/switch/Switch.stories.tsx +45 -68
  284. package/switch/Switch.test.js +180 -0
  285. package/switch/types.d.ts +13 -5
  286. package/table/DropdownTheme.js +62 -0
  287. package/table/Table.d.ts +6 -2
  288. package/table/Table.js +80 -37
  289. package/table/Table.stories.tsx +651 -0
  290. package/table/Table.test.js +113 -0
  291. package/table/types.d.ts +34 -6
  292. package/tabs/Tab.d.ts +4 -0
  293. package/tabs/Tab.js +116 -0
  294. package/tabs/Tabs.d.ts +1 -1
  295. package/tabs/Tabs.js +318 -145
  296. package/tabs/Tabs.stories.tsx +226 -0
  297. package/tabs/Tabs.test.js +294 -0
  298. package/tabs/types.d.ts +48 -27
  299. package/tag/Tag.d.ts +1 -1
  300. package/tag/Tag.js +44 -86
  301. package/tag/Tag.stories.tsx +38 -28
  302. package/tag/Tag.test.js +49 -0
  303. package/tag/types.d.ts +25 -16
  304. package/text-input/Icons.d.ts +8 -0
  305. package/text-input/Icons.js +56 -0
  306. package/text-input/Suggestion.d.ts +4 -0
  307. package/text-input/Suggestion.js +67 -0
  308. package/text-input/Suggestions.d.ts +4 -0
  309. package/text-input/Suggestions.js +84 -0
  310. package/text-input/TextInput.d.ts +4 -0
  311. package/text-input/TextInput.js +333 -593
  312. package/text-input/TextInput.stories.tsx +465 -0
  313. package/text-input/TextInput.test.js +1756 -0
  314. package/text-input/types.d.ts +205 -0
  315. package/text-input/types.js +5 -0
  316. package/textarea/Textarea.d.ts +4 -0
  317. package/textarea/Textarea.js +98 -181
  318. package/textarea/Textarea.stories.tsx +174 -0
  319. package/textarea/Textarea.test.js +406 -0
  320. package/textarea/types.d.ts +141 -0
  321. package/textarea/types.js +5 -0
  322. package/toggle-group/ToggleGroup.d.ts +4 -0
  323. package/toggle-group/ToggleGroup.js +100 -142
  324. package/toggle-group/ToggleGroup.stories.tsx +76 -36
  325. package/toggle-group/ToggleGroup.test.js +137 -0
  326. package/toggle-group/types.d.ts +114 -0
  327. package/toggle-group/types.js +5 -0
  328. package/typography/Typography.d.ts +4 -0
  329. package/typography/Typography.js +23 -0
  330. package/typography/Typography.stories.tsx +198 -0
  331. package/typography/types.d.ts +18 -0
  332. package/typography/types.js +5 -0
  333. package/useTheme.d.ts +1148 -0
  334. package/useTheme.js +4 -11
  335. package/useTranslatedLabels.d.ts +85 -0
  336. package/useTranslatedLabels.js +14 -0
  337. package/utils/BaseTypography.d.ts +21 -0
  338. package/utils/BaseTypography.js +94 -0
  339. package/utils/FocusLock.d.ts +13 -0
  340. package/utils/FocusLock.js +124 -0
  341. package/wizard/Wizard.d.ts +1 -1
  342. package/wizard/Wizard.js +123 -104
  343. package/wizard/Wizard.stories.tsx +253 -0
  344. package/wizard/Wizard.test.js +114 -0
  345. package/wizard/types.d.ts +15 -15
  346. package/ThemeContext.js +0 -246
  347. package/V3Select/V3Select.js +0 -455
  348. package/V3Select/index.d.ts +0 -27
  349. package/V3Textarea/V3Textarea.js +0 -260
  350. package/V3Textarea/index.d.ts +0 -27
  351. package/chip/index.d.ts +0 -22
  352. package/common/OpenSans.css +0 -81
  353. package/common/RequiredComponent.js +0 -32
  354. package/common/fonts/OpenSans-Bold.ttf +0 -0
  355. package/common/fonts/OpenSans-BoldItalic.ttf +0 -0
  356. package/common/fonts/OpenSans-ExtraBold.ttf +0 -0
  357. package/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  358. package/common/fonts/OpenSans-Italic.ttf +0 -0
  359. package/common/fonts/OpenSans-Light.ttf +0 -0
  360. package/common/fonts/OpenSans-LightItalic.ttf +0 -0
  361. package/common/fonts/OpenSans-Regular.ttf +0 -0
  362. package/common/fonts/OpenSans-SemiBold.ttf +0 -0
  363. package/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  364. package/date/Date.js +0 -373
  365. package/date/index.d.ts +0 -27
  366. package/file-input/index.d.ts +0 -81
  367. package/heading/index.d.ts +0 -17
  368. package/input-text/Icons.js +0 -22
  369. package/input-text/InputText.js +0 -611
  370. package/input-text/index.d.ts +0 -36
  371. package/progress-bar/ProgressBar.stories.jsx +0 -58
  372. package/radio/Radio.d.ts +0 -4
  373. package/radio/Radio.js +0 -174
  374. package/radio/Radio.stories.tsx +0 -192
  375. package/radio/types.d.ts +0 -54
  376. package/resultsetTable/ResultsetTable.js +0 -274
  377. package/resultsetTable/index.d.ts +0 -19
  378. package/select/index.d.ts +0 -131
  379. package/slider/Slider.stories.tsx +0 -172
  380. package/table/Table.stories.jsx +0 -276
  381. package/text-input/index.d.ts +0 -135
  382. package/textarea/Textarea.stories.jsx +0 -135
  383. package/textarea/index.d.ts +0 -117
  384. package/toggle/Toggle.js +0 -186
  385. package/toggle/index.d.ts +0 -21
  386. package/toggle-group/index.d.ts +0 -21
  387. package/upload/Upload.js +0 -201
  388. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  389. package/upload/buttons-upload/Icons.js +0 -40
  390. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  391. package/upload/dragAndDropArea/Icons.js +0 -39
  392. package/upload/file-upload/FileToUpload.js +0 -115
  393. package/upload/file-upload/Icons.js +0 -66
  394. package/upload/files-upload/FilesToUpload.js +0 -109
  395. package/upload/index.d.ts +0 -15
  396. package/upload/transaction/Icons.js +0 -160
  397. package/upload/transaction/Transaction.js +0 -104
  398. package/upload/transactions/Transactions.js +0 -94
  399. package/wizard/Icons.js +0 -65
  400. /package/{radio → action-icon}/types.js +0 -0
@@ -0,0 +1,251 @@
1
+ import React from "react";
2
+ import DxcHeader from "./Header";
3
+ import DxcButton from "../button/Button";
4
+ import Title from "../../.storybook/components/Title";
5
+ import ExampleContainer from "../../.storybook/components/ExampleContainer";
6
+ import { userEvent, waitFor, within } from "@storybook/testing-library";
7
+ import DxcFlex from "../flex/Flex";
8
+ import DxcLink from "../link/Link";
9
+ import { HalstackProvider } from "../HalstackContext";
10
+
11
+ export default {
12
+ title: "Header",
13
+ component: DxcHeader,
14
+ };
15
+
16
+ const options: any = [
17
+ {
18
+ value: 1,
19
+ label: "Amazon",
20
+ },
21
+ ];
22
+
23
+ const options2: any = [
24
+ {
25
+ value: 1,
26
+ label: "Home",
27
+ },
28
+ {
29
+ value: 2,
30
+ label: "Release notes",
31
+ },
32
+ {
33
+ value: 3,
34
+ label: "Sign out",
35
+ },
36
+ ];
37
+
38
+ const opinionatedTheme = {
39
+ header: {
40
+ baseColor: "#ffffff",
41
+ accentColor: "#000000",
42
+ fontColor: "#000000",
43
+ menuBaseColor: "#ffffff",
44
+ hamburguerColor: "#000000",
45
+ logo: "https://upload.wikimedia.org/wikipedia/commons/thumb/b/b8/2021_Facebook_icon.svg/2048px-2021_Facebook_icon.svg.png",
46
+ logoResponsive:
47
+ "https://upload.wikimedia.org/wikipedia/commons/thumb/b/b8/2021_Facebook_icon.svg/2048px-2021_Facebook_icon.svg.png",
48
+ contentColor: "#000000",
49
+ overlayColor: "#000000b3",
50
+ },
51
+ };
52
+
53
+ export const Chromatic = () => (
54
+ <>
55
+ <ExampleContainer>
56
+ <Title title="Default with dropdown" theme="light" level={4} />
57
+ <DxcHeader
58
+ content={<DxcHeader.Dropdown options={options} label="Default Dropdown" onSelectOption={() => {}} />}
59
+ />
60
+ </ExampleContainer>
61
+ <ExampleContainer>
62
+ <Title title="Underlined with text" theme="light" level={4} />
63
+ <DxcHeader underlined content={<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>} />
64
+ </ExampleContainer>
65
+ <ExampleContainer>
66
+ <Title title="Underlined, dropdown and links" theme="light" level={4} />
67
+ <DxcHeader
68
+ content={
69
+ <DxcFlex alignItems="center" gap="4rem">
70
+ <DxcLink>Link 1</DxcLink>
71
+ <DxcLink>Link 2</DxcLink>
72
+ <DxcLink>Link 3</DxcLink>
73
+ <DxcHeader.Dropdown options={options2} label="Label" onSelectOption={() => {}} />
74
+ </DxcFlex>
75
+ }
76
+ underlined
77
+ />
78
+ </ExampleContainer>
79
+ <Title title="Margins" theme="light" level={2} />
80
+ <ExampleContainer>
81
+ <Title title="Xxsmall margin" theme="light" level={4} />
82
+ <DxcHeader underlined margin="xxsmall" />
83
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>
84
+ </ExampleContainer>
85
+ <ExampleContainer>
86
+ <Title title="Xsmall margin" theme="light" level={4} />
87
+ <DxcHeader underlined margin="xsmall" />
88
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>
89
+ </ExampleContainer>
90
+ <ExampleContainer>
91
+ <Title title="Small margin" theme="light" level={4} />
92
+ <DxcHeader underlined margin="small" />
93
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>
94
+ </ExampleContainer>
95
+ <ExampleContainer>
96
+ <Title title="Medium margin" theme="light" level={4} />
97
+ <DxcHeader underlined margin="medium" />
98
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>
99
+ </ExampleContainer>
100
+ <ExampleContainer>
101
+ <Title title="Large margin" theme="light" level={4} />
102
+ <DxcHeader underlined margin="large" />
103
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>
104
+ </ExampleContainer>
105
+ <ExampleContainer>
106
+ <Title title="Xlarge margin" theme="light" level={4} />
107
+ <DxcHeader underlined margin="xlarge" />
108
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>
109
+ </ExampleContainer>
110
+ <ExampleContainer>
111
+ <Title title="Xxlarge margin" theme="light" level={4} />
112
+ <DxcHeader underlined margin="xxlarge" />
113
+ <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>
114
+ </ExampleContainer>
115
+ <Title title="Opinionated theme" theme="light" level={2} />
116
+ <ExampleContainer>
117
+ <HalstackProvider theme={opinionatedTheme}>
118
+ <DxcHeader
119
+ underlined
120
+ content={<DxcButton label={"Custom Button"} />}
121
+ responsiveContent={(closeHandler) => (
122
+ <>
123
+ <DxcButton label={"Custom Button"} onClick={closeHandler} />
124
+ Custom content
125
+ </>
126
+ )}
127
+ />
128
+ </HalstackProvider>
129
+ </ExampleContainer>
130
+ </>
131
+ );
132
+
133
+ export const ResponsiveHeader = () => (
134
+ <ExampleContainer>
135
+ <Title title="Responsive" theme="light" level={4} />
136
+ <DxcHeader
137
+ content={<DxcHeader.Dropdown options={options} label="Default Dropdown" onSelectOption={() => {}} />}
138
+ responsiveContent={(closeHandler) => (
139
+ <DxcHeader.Dropdown options={options} label="Default Dropdown" onSelectOption={() => {}} />
140
+ )}
141
+ underlined
142
+ />
143
+ </ExampleContainer>
144
+ );
145
+
146
+ const RespHeaderFocus = () => (
147
+ <ExampleContainer pseudoState="pseudo-focus">
148
+ <Title title="Responsive focus" theme="light" level={4} />
149
+ <DxcHeader responsiveContent={(closeHandler) => <p>Lorem ipsum dolor sit amet.</p>} underlined />
150
+ </ExampleContainer>
151
+ );
152
+
153
+ const RespHeaderHover = () => (
154
+ <ExampleContainer pseudoState="pseudo-hover">
155
+ <Title title="Responsive hover" theme="light" level={4} />
156
+ <DxcHeader responsiveContent={(closeHandler) => <p>Lorem ipsum dolor sit amet.</p>} underlined />
157
+ </ExampleContainer>
158
+ );
159
+
160
+ const RespHeaderMenuMobile = () => (
161
+ <ExampleContainer>
162
+ <Title title="Responsive menu" theme="light" level={4} />
163
+ <DxcHeader responsiveContent={(closeHandler) => <p>Lorem ipsum dolor sit amet.</p>} underlined />
164
+ </ExampleContainer>
165
+ );
166
+
167
+ const RespHeaderMenuTablet = () => (
168
+ <ExampleContainer>
169
+ <Title title="Responsive menu" theme="light" level={4} />
170
+ <DxcHeader responsiveContent={(closeHandler) => <p>Lorem ipsum dolor sit amet.</p>} underlined />
171
+ </ExampleContainer>
172
+ );
173
+
174
+ const RespHeaderMenuOpinionated = () => (
175
+ <ExampleContainer>
176
+ <Title title="Responsive menu" theme="light" level={4} />
177
+ <HalstackProvider theme={opinionatedTheme}>
178
+ <DxcHeader responsiveContent={(closeHandler) => <p>Lorem ipsum dolor sit amet.</p>} underlined />
179
+ </HalstackProvider>
180
+ </ExampleContainer>
181
+ );
182
+
183
+ ResponsiveHeader.parameters = {
184
+ viewport: {
185
+ defaultViewport: "iphonex",
186
+ },
187
+ chromatic: { viewports: [375] },
188
+ };
189
+
190
+ export const ResponsiveHeaderFocus = RespHeaderFocus.bind({});
191
+ ResponsiveHeaderFocus.parameters = {
192
+ viewport: {
193
+ defaultViewport: "iphonex",
194
+ },
195
+ chromatic: { viewports: [375] },
196
+ };
197
+ ResponsiveHeaderFocus.play = async ({ canvasElement }) => {
198
+ const canvas = within(canvasElement);
199
+ await waitFor(() => canvas.findByText("Menu"));
200
+ };
201
+
202
+ export const ResponsiveHeaderHover = RespHeaderHover.bind({});
203
+ ResponsiveHeaderHover.parameters = {
204
+ viewport: {
205
+ defaultViewport: "iphonex",
206
+ },
207
+ chromatic: { viewports: [375] },
208
+ };
209
+ ResponsiveHeaderHover.play = async ({ canvasElement }) => {
210
+ const canvas = within(canvasElement);
211
+ await waitFor(() => canvas.findByText("Menu"));
212
+ };
213
+
214
+ export const ResponsiveHeaderMenuMobile = RespHeaderMenuMobile.bind({});
215
+ ResponsiveHeaderMenuMobile.parameters = {
216
+ viewport: {
217
+ defaultViewport: "iphonex",
218
+ },
219
+ chromatic: { viewports: [375] },
220
+ };
221
+ ResponsiveHeaderMenuMobile.play = async ({ canvasElement }) => {
222
+ const canvas = within(canvasElement);
223
+ await waitFor(() => canvas.findByText("Menu"));
224
+ await userEvent.click(canvas.getByText("Menu"));
225
+ };
226
+
227
+ export const ResponsiveHeaderMenuTablet = RespHeaderMenuTablet.bind({});
228
+ ResponsiveHeaderMenuTablet.parameters = {
229
+ viewport: {
230
+ defaultViewport: "pixelxl",
231
+ },
232
+ chromatic: { viewports: [720] },
233
+ };
234
+ ResponsiveHeaderMenuTablet.play = async ({ canvasElement }) => {
235
+ const canvas = within(canvasElement);
236
+ await waitFor(() => canvas.findByText("Menu"));
237
+ await userEvent.click(canvas.getByText("Menu"));
238
+ };
239
+
240
+ export const ResponsiveHeaderMenuOpinionated = RespHeaderMenuOpinionated.bind({});
241
+ ResponsiveHeaderMenuOpinionated.parameters = {
242
+ viewport: {
243
+ defaultViewport: "pixelxl",
244
+ },
245
+ chromatic: { viewports: [720] },
246
+ };
247
+ ResponsiveHeaderMenuOpinionated.play = async ({ canvasElement }) => {
248
+ const canvas = within(canvasElement);
249
+ await waitFor(() => canvas.findByText("Menu"));
250
+ await userEvent.click(canvas.getByText("Menu"));
251
+ };
@@ -0,0 +1,66 @@
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 _Header = _interopRequireDefault(require("./Header.tsx"));
7
+ describe("Header component tests", function () {
8
+ beforeAll(function () {
9
+ Object.defineProperty(window, "matchMedia", {
10
+ writable: true,
11
+ value: jest.fn().mockImplementation(function () {
12
+ return {
13
+ matches: false
14
+ };
15
+ })
16
+ });
17
+ });
18
+ test("Header renders with default logo", function () {
19
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Header["default"], null)),
20
+ getByTitle = _render.getByTitle;
21
+ expect(getByTitle("DXC Logo")).toBeTruthy();
22
+ });
23
+ test("Call correct function on logo click", function () {
24
+ var onClick = jest.fn();
25
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Header["default"], {
26
+ onClick: onClick
27
+ })),
28
+ getByTitle = _render2.getByTitle;
29
+ var logo = getByTitle("DXC Logo");
30
+ _react2.fireEvent.click(logo);
31
+ expect(onClick).toHaveBeenCalled();
32
+ });
33
+ test("Header renders with correct children", function () {
34
+ // We need to force the offsetWidth value
35
+ Object.defineProperty(HTMLElement.prototype, "offsetWidth", {
36
+ configurable: true,
37
+ value: 1024
38
+ });
39
+ var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Header["default"], {
40
+ content: /*#__PURE__*/_react["default"].createElement("p", null, "header-child-text")
41
+ })),
42
+ getByText = _render3.getByText;
43
+ expect(getByText("header-child-text")).toBeTruthy();
44
+ });
45
+ test("Header renders menu button in mobile", function () {
46
+ Object.defineProperty(HTMLElement.prototype, "offsetWidth", {
47
+ configurable: true,
48
+ value: 425
49
+ });
50
+ Object.defineProperty(window, "matchMedia", {
51
+ writable: true,
52
+ value: jest.fn().mockImplementation(function () {
53
+ return {
54
+ matches: true
55
+ };
56
+ })
57
+ });
58
+ var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Header["default"], {
59
+ responsiveContent: function responsiveContent() {
60
+ return /*#__PURE__*/_react["default"].createElement("p", null, "header-child-text");
61
+ }
62
+ })),
63
+ getByText = _render4.getByText;
64
+ expect(getByText("Menu")).toBeTruthy();
65
+ });
66
+ });
@@ -0,0 +1,2 @@
1
+ import React from "react";
2
+ export declare const dxcLogo: React.JSX.Element;
package/header/Icons.js CHANGED
@@ -1,15 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.dxcLogo = void 0;
9
-
10
8
  var _react = _interopRequireDefault(require("react"));
11
-
12
- var dxcLogo = /*#__PURE__*/_react["default"].createElement("svg", {
9
+ var dxcLogo = exports.dxcLogo = /*#__PURE__*/_react["default"].createElement("svg", {
13
10
  xmlns: "http://www.w3.org/2000/svg",
14
11
  width: "73",
15
12
  height: "40",
@@ -23,12 +20,10 @@ var dxcLogo = /*#__PURE__*/_react["default"].createElement("svg", {
23
20
  id: "path14",
24
21
  d: "M91.613-28.177v2.514H90.231V-28.15l-2.415-3.82h1.616l1.5,2.532,1.526-2.532h1.571ZM83.9-25.555A3.15,3.15,0,0,1,80.6-28.8v-.018a3.231,3.231,0,0,1,3.294-3.262,3.442,3.442,0,0,1,2.469.865l-.87,1.054a2.311,2.311,0,0,0-1.643-.64,1.891,1.891,0,0,0-1.8,1.964v.018a1.886,1.886,0,0,0,1.9,2,2.2,2.2,0,0,0,1.3-.378v-.9H83.858v-1.2h2.729v2.738A4.071,4.071,0,0,1,83.9-25.555Zm-6.416-3.261a1.913,1.913,0,0,0-1.9-1.982A1.883,1.883,0,0,0,73.7-28.835v.018a1.913,1.913,0,0,0,1.9,1.982A1.883,1.883,0,0,0,77.486-28.8Zm-1.9,3.261a3.225,3.225,0,0,1-3.33-3.243v-.018A3.255,3.255,0,0,1,75.6-32.078a3.225,3.225,0,0,1,3.331,3.243v.018A3.255,3.255,0,0,1,75.583-25.555Zm-9.173-.108V-31.97h1.382v5.045h3.133v1.261Zm-3.433-3.153a1.913,1.913,0,0,0-1.9-1.982,1.883,1.883,0,0,0-1.886,1.964v.018a1.913,1.913,0,0,0,1.9,1.982A1.883,1.883,0,0,0,62.978-28.8Zm-1.9,3.261a3.225,3.225,0,0,1-3.33-3.243v-.018a3.255,3.255,0,0,1,3.348-3.262,3.225,3.225,0,0,1,3.331,3.243v.018A3.255,3.255,0,0,1,61.075-25.555Zm-6.508-.108-3.043-4.009v4.009H50.159V-31.97h1.275l2.944,3.883V-31.97h1.364v6.306Zm-8.246,0v-2.531h-2.55v2.531H42.389V-31.97h1.382v2.5h2.55v-2.5H47.7v6.306Zm-8.432.108A3.178,3.178,0,0,1,34.666-28.8v-.018a3.2,3.2,0,0,1,3.276-3.262,3.237,3.237,0,0,1,2.478.973l-.88,1.018a2.315,2.315,0,0,0-1.606-.712,1.866,1.866,0,0,0-1.822,1.964v.018a1.87,1.87,0,0,0,1.822,1.982,2.265,2.265,0,0,0,1.651-.739l.88.891A3.206,3.206,0,0,1,37.889-25.555Zm-9.805-.108V-31.97h4.739v1.235H29.458v1.279h2.962v1.234H29.458V-26.9h3.411v1.234ZM24.322-30.69v5.027H22.939V-30.69H21.028v-1.28h5.206v1.28H24.322",
25
22
  transform: "translate(-21.028 65.555)",
26
- fill: "#100f0d"
23
+ fill: "#010101"
27
24
  }), /*#__PURE__*/_react["default"].createElement("path", {
28
25
  id: "path16",
29
26
  d: "M75.836-76.712a8.975,8.975,0,0,1,2.246-3.9,8.393,8.393,0,0,1,6.058-2.457h9.824v-5.67H84.139a14.611,14.611,0,0,0-10.232,4.221,14.509,14.509,0,0,0-3.076,4.536,11.913,11.913,0,0,0-.973,3.271Zm0,4.325a8.978,8.978,0,0,0,2.246,3.9,8.394,8.394,0,0,0,6.058,2.457h9.824v5.67H84.139A14.611,14.611,0,0,1,73.907-64.58a14.506,14.506,0,0,1-3.076-4.536,11.91,11.91,0,0,1-.973-3.271ZM57.522-69.832l-7.5,9.473H42.581L53.818-74.55,42.581-88.739H50.02l7.5,9.472,7.5-9.472h7.439L61.225-74.55l11.237,14.19H65.023Zm-12.336-6.88a11.935,11.935,0,0,0-.973-3.271,14.515,14.515,0,0,0-3.076-4.536A14.612,14.612,0,0,0,30.9-88.739H21.081v5.67H30.9a8.394,8.394,0,0,1,6.058,2.457,8.978,8.978,0,0,1,2.246,3.9Zm0,4.325a11.932,11.932,0,0,1-.973,3.271,14.511,14.511,0,0,1-3.076,4.536A14.611,14.611,0,0,1,30.9-60.359H21.081v-5.67H30.9a8.4,8.4,0,0,0,6.058-2.457,8.981,8.981,0,0,0,2.246-3.9h5.978",
30
27
  transform: "translate(-21.049 88.739)",
31
- fill: "#100f0d"
32
- }))));
33
-
34
- exports.dxcLogo = dxcLogo;
28
+ fill: "#603494"
29
+ }))));
package/header/types.d.ts CHANGED
@@ -1,24 +1,18 @@
1
1
  /// <reference types="react" />
2
- declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
- declare type Padding = {
4
- top?: Space;
5
- bottom?: Space;
6
- left?: Space;
7
- right?: Space;
8
- };
9
- declare type Props = {
2
+ type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
+ type Props = {
10
4
  /**
11
- * Wether a contrast line should appear at the bottom of the header.
5
+ * Whether a contrast line should appear at the bottom of the header.
12
6
  */
13
7
  underlined?: boolean;
14
8
  /**
15
- * Content showed in the header. Take into account that the component applies styles
9
+ * Content shown in the header. Take into account that the component applies styles
16
10
  * for the first child in the content, so we recommend the use of React.Fragment
17
11
  * to be applied correctly. Otherwise, the styles can be modified.
18
12
  */
19
13
  content?: React.ReactNode;
20
14
  /**
21
- * Content showed in responsive version. It receives the close menu handler that can
15
+ * Content shown in responsive version. It receives the close menu handler that can
22
16
  * be used to add that functionality when a element is clicked.
23
17
  */
24
18
  responsiveContent?: (closeHandler: () => void) => React.ReactNode;
@@ -31,13 +25,7 @@ declare type Props = {
31
25
  */
32
26
  margin?: Space;
33
27
  /**
34
- * Size of the padding to be applied to the custom area of the component.
35
- * You can pass an object with 'top', 'bottom', 'left' and 'right' properties in
36
- * order to specify different padding sizes.
37
- */
38
- padding?: Space | Padding;
39
- /**
40
- * Value of the tabindex for all interactuable elements, except those inside the
28
+ * Value of the tabindex for all interactive elements, except those inside the
41
29
  * custom area.
42
30
  */
43
31
  tabIndex?: number;
@@ -0,0 +1,4 @@
1
+ /// <reference types="react" />
2
+ import HeadingPropsType from "./types";
3
+ declare const DxcHeading: ({ level, text, as, weight, margin }: HeadingPropsType) => JSX.Element;
4
+ export default DxcHeading;
@@ -1,73 +1,53 @@
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 _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
-
14
9
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
15
-
16
10
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
17
-
18
11
  var _react = _interopRequireDefault(require("react"));
19
-
20
12
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
-
22
- var _propTypes = _interopRequireDefault(require("prop-types"));
23
-
24
- var _variables = require("../common/variables.js");
25
-
26
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
27
-
13
+ var _variables = require("../common/variables");
14
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
28
15
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6;
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
-
16
+ 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); }
17
+ 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; }
34
18
  var DxcHeading = function DxcHeading(_ref) {
35
19
  var _ref$level = _ref.level,
36
- level = _ref$level === void 0 ? 1 : _ref$level,
37
- _ref$text = _ref.text,
38
- text = _ref$text === void 0 ? "" : _ref$text,
39
- as = _ref.as,
40
- _ref$weight = _ref.weight,
41
- weight = _ref$weight === void 0 ? "" : _ref$weight,
42
- margin = _ref.margin;
20
+ level = _ref$level === void 0 ? 1 : _ref$level,
21
+ _ref$text = _ref.text,
22
+ text = _ref$text === void 0 ? "" : _ref$text,
23
+ as = _ref.as,
24
+ weight = _ref.weight,
25
+ margin = _ref.margin;
43
26
  var colorsTheme = (0, _useTheme["default"])();
44
-
45
27
  var checkValidAs = function checkValidAs() {
46
28
  if (as === "h1" || as === "h2" || as === "h3" || as === "h4" || as === "h5") return as;
47
29
  };
48
-
49
30
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
50
31
  theme: colorsTheme.heading
51
32
  }, /*#__PURE__*/_react["default"].createElement(HeadingContainer, {
52
33
  margin: margin
53
34
  }, level === 1 ? /*#__PURE__*/_react["default"].createElement(HeadingLevel1, {
54
- as: checkValidAs(as),
35
+ as: checkValidAs(),
55
36
  weight: weight
56
37
  }, text) : level === 2 ? /*#__PURE__*/_react["default"].createElement(HeadingLevel2, {
57
- as: checkValidAs(as),
38
+ as: checkValidAs(),
58
39
  weight: weight
59
40
  }, text) : level === 3 ? /*#__PURE__*/_react["default"].createElement(HeadingLevel3, {
60
- as: checkValidAs(as),
41
+ as: checkValidAs(),
61
42
  weight: weight
62
43
  }, text) : level === 4 ? /*#__PURE__*/_react["default"].createElement(HeadingLevel4, {
63
- as: checkValidAs(as),
44
+ as: checkValidAs(),
64
45
  weight: weight
65
46
  }, text) : /*#__PURE__*/_react["default"].createElement(HeadingLevel5, {
66
- as: checkValidAs(as),
47
+ as: checkValidAs(),
67
48
  weight: weight
68
49
  }, text)));
69
50
  };
70
-
71
51
  var HeadingContainer = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n margin: ", ";\n margin-top: ", ";\n margin-right: ", ";\n margin-bottom: ", ";\n margin-left: ", ";\n"])), function (props) {
72
52
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
73
53
  }, function (props) {
@@ -79,7 +59,6 @@ var HeadingContainer = _styledComponents["default"].div(_templateObject || (_tem
79
59
  }, function (props) {
80
60
  return props.margin && (0, _typeof2["default"])(props.margin) === "object" && props.margin.left ? _variables.spaces[props.margin.left] : "";
81
61
  });
82
-
83
62
  var HeadingLevel1 = _styledComponents["default"].h1(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-style: ", ";\n font-size: ", ";\n line-height: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n color: ", ";\n margin: 0;\n"])), function (props) {
84
63
  return props.theme.level1FontFamily;
85
64
  }, function (props) {
@@ -95,7 +74,6 @@ var HeadingLevel1 = _styledComponents["default"].h1(_templateObject2 || (_templa
95
74
  }, function (props) {
96
75
  return props.theme.level1FontColor;
97
76
  });
98
-
99
77
  var HeadingLevel2 = _styledComponents["default"].h2(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-style: ", ";\n font-size: ", ";\n line-height: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n color: ", ";\n margin: 0;\n"])), function (props) {
100
78
  return props.theme.level2FontFamily;
101
79
  }, function (props) {
@@ -111,7 +89,6 @@ var HeadingLevel2 = _styledComponents["default"].h2(_templateObject3 || (_templa
111
89
  }, function (props) {
112
90
  return props.theme.level2FontColor;
113
91
  });
114
-
115
92
  var HeadingLevel3 = _styledComponents["default"].h3(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-style: ", ";\n font-size: ", ";\n line-height: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n color: ", ";\n margin: 0;\n"])), function (props) {
116
93
  return props.theme.level3FontFamily;
117
94
  }, function (props) {
@@ -127,7 +104,6 @@ var HeadingLevel3 = _styledComponents["default"].h3(_templateObject4 || (_templa
127
104
  }, function (props) {
128
105
  return props.theme.level3FontColor;
129
106
  });
130
-
131
107
  var HeadingLevel4 = _styledComponents["default"].h4(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-style: ", ";\n font-size: ", ";\n line-height: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n color: ", ";\n margin: 0;\n"])), function (props) {
132
108
  return props.theme.level4FontFamily;
133
109
  }, function (props) {
@@ -143,7 +119,6 @@ var HeadingLevel4 = _styledComponents["default"].h4(_templateObject5 || (_templa
143
119
  }, function (props) {
144
120
  return props.theme.level4FontColor;
145
121
  });
146
-
147
122
  var HeadingLevel5 = _styledComponents["default"].h5(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-style: ", ";\n font-size: ", ";\n line-height: ", ";\n font-weight: ", ";\n letter-spacing: ", ";\n color: ", ";\n margin: 0;\n"])), function (props) {
148
123
  return props.theme.level5FontFamily;
149
124
  }, function (props) {
@@ -159,18 +134,4 @@ var HeadingLevel5 = _styledComponents["default"].h5(_templateObject6 || (_templa
159
134
  }, function (props) {
160
135
  return props.theme.level5FontColor;
161
136
  });
162
-
163
- DxcHeading.propTypes = {
164
- level: _propTypes["default"].number,
165
- text: _propTypes["default"].string,
166
- as: _propTypes["default"].oneOf(["h1", "h2", "h3", "h4", "h5"]),
167
- weight: _propTypes["default"].oneOf(["light", "normal", "bold", ""]),
168
- margin: _propTypes["default"].oneOfType([_propTypes["default"].shape({
169
- top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
170
- bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
171
- left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
172
- right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
173
- }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))])
174
- };
175
- var _default = DxcHeading;
176
- exports["default"] = _default;
137
+ var _default = exports["default"] = DxcHeading;
@@ -0,0 +1,54 @@
1
+ import React from "react";
2
+ import DxcHeading from "./Heading";
3
+ import Title from "../../.storybook/components/Title";
4
+ import ExampleContainer from "../../.storybook/components/ExampleContainer";
5
+
6
+ export default {
7
+ title: "Heading",
8
+ component: DxcHeading,
9
+ };
10
+
11
+ export const Chromatic = () => (
12
+ <>
13
+ <Title title="Levels" theme="light" level={2} />
14
+ <ExampleContainer>
15
+ <Title title="Level 1" theme="light" level={4} />
16
+ <DxcHeading text="Heading for sections within the page" />
17
+ <Title title="Level 2" theme="light" level={4} />
18
+ <DxcHeading text="Heading for sections within the page" level={2} />
19
+ <Title title="Level 3" theme="light" level={4} />
20
+ <DxcHeading text="Heading for sections within the page" level={3} />
21
+ <Title title="Level 4" theme="light" level={4} />
22
+ <DxcHeading text="Heading for sections within the page" level={4} />
23
+ <Title title="Level 5" theme="light" level={4} />
24
+ <DxcHeading text="Heading for sections within the page" level={5} />
25
+ </ExampleContainer>
26
+ <Title title="Weights" theme="light" level={2} />
27
+ <ExampleContainer>
28
+ <Title title="'light' Weight" theme="light" level={4} />
29
+ <DxcHeading text="Heading for sections within the page" level={2} weight="light" />
30
+ <Title title="'normal' Weight" theme="light" level={4} />
31
+ <DxcHeading text="Heading for sections within the page" level={2} weight="normal" />
32
+ <Title title="'bold' Weight" theme="light" level={4} />
33
+ <DxcHeading text="Heading for sections within the page" level={2} weight="bold" />
34
+ </ExampleContainer>
35
+ <Title title="Margins" theme="light" level={2} />
36
+ <ExampleContainer>
37
+ <Title title="Xxsmall" theme="light" level={4} />
38
+ <DxcHeading text="Xxsmall" margin="xxsmall" />
39
+ <Title title="Xsmall" theme="light" level={4} />
40
+ <DxcHeading text="Xsmall" margin="xsmall" />
41
+ <Title title="Small" theme="light" level={4} />
42
+ <DxcHeading text="Small" margin="small" />
43
+ <Title title="Medium" theme="light" level={4} />
44
+ <DxcHeading text="Medium" margin="medium" />
45
+ <Title title="Large" theme="light" level={4} />
46
+ <DxcHeading text="Large" margin="large" />
47
+ <Title title="Xlarge" theme="light" level={4} />
48
+ <DxcHeading text="Xlarge" margin="xlarge" />
49
+ <Title title="Xxlarge" theme="light" level={4} />
50
+ <DxcHeading text="Xxlarge" margin="xxlarge" />
51
+ <hr />
52
+ </ExampleContainer>
53
+ </>
54
+ );