@dxc-technology/halstack-react 0.0.0-e081e21 → 0.0.0-e1386cf

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 (348) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +1 -4
  3. package/HalstackContext.d.ts +12 -0
  4. package/HalstackContext.js +294 -0
  5. package/accordion/Accordion.d.ts +4 -0
  6. package/accordion/Accordion.js +126 -170
  7. package/accordion/Accordion.stories.tsx +306 -0
  8. package/accordion/Accordion.test.js +71 -0
  9. package/accordion/types.d.ts +69 -0
  10. package/accordion/types.js +5 -0
  11. package/accordion-group/AccordionGroup.d.ts +7 -0
  12. package/accordion-group/AccordionGroup.js +61 -96
  13. package/accordion-group/AccordionGroup.stories.tsx +251 -0
  14. package/accordion-group/AccordionGroup.test.js +126 -0
  15. package/accordion-group/types.d.ts +79 -0
  16. package/accordion-group/types.js +5 -0
  17. package/alert/Alert.js +7 -4
  18. package/alert/Alert.stories.tsx +170 -0
  19. package/alert/Alert.test.js +92 -0
  20. package/alert/types.d.ts +1 -1
  21. package/badge/Badge.d.ts +4 -0
  22. package/badge/Badge.js +6 -4
  23. package/badge/types.d.ts +5 -0
  24. package/badge/types.js +5 -0
  25. package/bleed/Bleed.d.ts +3 -0
  26. package/bleed/Bleed.js +51 -0
  27. package/bleed/Bleed.stories.tsx +341 -0
  28. package/bleed/types.d.ts +37 -0
  29. package/bleed/types.js +5 -0
  30. package/box/Box.d.ts +4 -0
  31. package/box/Box.js +29 -65
  32. package/box/Box.stories.tsx +132 -0
  33. package/box/Box.test.js +18 -0
  34. package/box/types.d.ts +44 -0
  35. package/box/types.js +5 -0
  36. package/bulleted-list/BulletedList.d.ts +7 -0
  37. package/bulleted-list/BulletedList.js +123 -0
  38. package/bulleted-list/BulletedList.stories.tsx +200 -0
  39. package/bulleted-list/types.d.ts +11 -0
  40. package/bulleted-list/types.js +5 -0
  41. package/button/Button.d.ts +1 -1
  42. package/button/Button.js +61 -87
  43. package/button/Button.stories.tsx +259 -282
  44. package/button/Button.test.js +35 -0
  45. package/button/types.d.ts +14 -18
  46. package/card/Card.d.ts +4 -0
  47. package/card/Card.js +38 -77
  48. package/card/Card.stories.tsx +201 -0
  49. package/card/Card.test.js +50 -0
  50. package/card/ice-cream.jpg +0 -0
  51. package/card/types.d.ts +68 -0
  52. package/card/types.js +5 -0
  53. package/checkbox/Checkbox.d.ts +2 -2
  54. package/checkbox/Checkbox.js +108 -111
  55. package/checkbox/Checkbox.stories.tsx +208 -0
  56. package/checkbox/Checkbox.test.js +155 -0
  57. package/checkbox/types.d.ts +15 -8
  58. package/chip/Chip.d.ts +4 -0
  59. package/chip/Chip.js +16 -76
  60. package/chip/Chip.stories.tsx +119 -0
  61. package/chip/Chip.test.js +56 -0
  62. package/chip/types.d.ts +45 -0
  63. package/chip/types.js +5 -0
  64. package/common/variables.js +319 -380
  65. package/date-input/DateInput.d.ts +4 -0
  66. package/date-input/DateInput.js +65 -89
  67. package/date-input/DateInput.stories.tsx +138 -0
  68. package/date-input/DateInput.test.js +543 -0
  69. package/date-input/types.d.ts +107 -0
  70. package/date-input/types.js +5 -0
  71. package/dialog/Dialog.d.ts +4 -0
  72. package/dialog/Dialog.js +52 -74
  73. package/dialog/Dialog.stories.tsx +267 -0
  74. package/dialog/Dialog.test.js +70 -0
  75. package/dialog/types.d.ts +44 -0
  76. package/dialog/types.js +5 -0
  77. package/dropdown/Dropdown.d.ts +4 -0
  78. package/dropdown/Dropdown.js +243 -302
  79. package/dropdown/Dropdown.stories.tsx +312 -0
  80. package/dropdown/Dropdown.test.js +585 -0
  81. package/dropdown/DropdownMenu.d.ts +4 -0
  82. package/dropdown/DropdownMenu.js +80 -0
  83. package/dropdown/DropdownMenuItem.d.ts +4 -0
  84. package/dropdown/DropdownMenuItem.js +92 -0
  85. package/dropdown/types.d.ts +100 -0
  86. package/dropdown/types.js +5 -0
  87. package/file-input/FileInput.d.ts +4 -0
  88. package/file-input/FileInput.js +185 -166
  89. package/file-input/FileInput.stories.tsx +535 -0
  90. package/file-input/FileInput.test.js +498 -0
  91. package/file-input/FileItem.d.ts +4 -0
  92. package/file-input/FileItem.js +49 -81
  93. package/file-input/types.d.ts +129 -0
  94. package/file-input/types.js +5 -0
  95. package/flex/Flex.d.ts +4 -0
  96. package/flex/Flex.js +69 -0
  97. package/flex/Flex.stories.tsx +103 -0
  98. package/flex/types.d.ts +32 -0
  99. package/flex/types.js +5 -0
  100. package/footer/Footer.d.ts +4 -0
  101. package/footer/Footer.js +36 -148
  102. package/footer/Footer.stories.tsx +137 -0
  103. package/footer/Footer.test.js +109 -0
  104. package/footer/Icons.d.ts +2 -0
  105. package/footer/Icons.js +4 -4
  106. package/footer/types.d.ts +66 -0
  107. package/footer/types.js +5 -0
  108. package/header/Header.d.ts +7 -0
  109. package/header/Header.js +119 -140
  110. package/header/Header.stories.tsx +172 -0
  111. package/header/Header.test.js +79 -0
  112. package/header/Icons.d.ts +2 -0
  113. package/header/Icons.js +4 -29
  114. package/header/types.d.ts +48 -0
  115. package/header/types.js +5 -0
  116. package/heading/Heading.d.ts +4 -0
  117. package/heading/Heading.js +7 -24
  118. package/heading/Heading.stories.tsx +54 -0
  119. package/heading/Heading.test.js +186 -0
  120. package/heading/types.d.ts +33 -0
  121. package/heading/types.js +5 -0
  122. package/inset/Inset.d.ts +3 -0
  123. package/inset/Inset.js +51 -0
  124. package/inset/Inset.stories.tsx +229 -0
  125. package/inset/types.d.ts +37 -0
  126. package/inset/types.js +5 -0
  127. package/layout/ApplicationLayout.d.ts +20 -0
  128. package/layout/ApplicationLayout.js +71 -135
  129. package/layout/ApplicationLayout.stories.tsx +162 -0
  130. package/layout/Icons.d.ts +5 -0
  131. package/layout/Icons.js +13 -2
  132. package/layout/SidenavContext.d.ts +5 -0
  133. package/layout/SidenavContext.js +19 -0
  134. package/layout/types.d.ts +42 -0
  135. package/layout/types.js +5 -0
  136. package/link/Link.d.ts +4 -0
  137. package/link/Link.js +61 -108
  138. package/link/Link.stories.tsx +193 -0
  139. package/link/Link.test.js +83 -0
  140. package/link/types.d.ts +54 -0
  141. package/link/types.js +5 -0
  142. package/main.d.ts +12 -12
  143. package/main.js +64 -58
  144. package/number-input/NumberInput.d.ts +4 -0
  145. package/number-input/NumberInput.js +16 -68
  146. package/number-input/NumberInput.stories.tsx +115 -0
  147. package/number-input/NumberInput.test.js +542 -0
  148. package/number-input/NumberInputContext.d.ts +4 -0
  149. package/number-input/NumberInputContext.js +5 -2
  150. package/number-input/numberInputContextTypes.d.ts +19 -0
  151. package/number-input/numberInputContextTypes.js +5 -0
  152. package/number-input/types.d.ts +124 -0
  153. package/number-input/types.js +5 -0
  154. package/package.json +22 -16
  155. package/paginator/Paginator.js +19 -46
  156. package/paginator/Paginator.stories.tsx +63 -0
  157. package/paginator/Paginator.test.js +308 -0
  158. package/paragraph/Paragraph.d.ts +6 -0
  159. package/paragraph/Paragraph.js +38 -0
  160. package/paragraph/Paragraph.stories.tsx +44 -0
  161. package/password-input/PasswordInput.d.ts +4 -0
  162. package/password-input/PasswordInput.js +24 -57
  163. package/password-input/PasswordInput.stories.tsx +131 -0
  164. package/password-input/PasswordInput.test.js +181 -0
  165. package/password-input/types.d.ts +110 -0
  166. package/password-input/types.js +5 -0
  167. package/progress-bar/ProgressBar.d.ts +4 -0
  168. package/progress-bar/ProgressBar.js +60 -72
  169. package/progress-bar/ProgressBar.stories.jsx +60 -0
  170. package/progress-bar/ProgressBar.test.js +110 -0
  171. package/progress-bar/types.d.ts +36 -0
  172. package/progress-bar/types.js +5 -0
  173. package/quick-nav/QuickNav.d.ts +4 -0
  174. package/quick-nav/QuickNav.js +117 -0
  175. package/quick-nav/QuickNav.stories.tsx +342 -0
  176. package/quick-nav/types.d.ts +21 -0
  177. package/quick-nav/types.js +5 -0
  178. package/radio-group/Radio.d.ts +4 -0
  179. package/radio-group/Radio.js +156 -0
  180. package/radio-group/RadioGroup.d.ts +4 -0
  181. package/radio-group/RadioGroup.js +283 -0
  182. package/radio-group/RadioGroup.stories.tsx +101 -0
  183. package/radio-group/RadioGroup.test.js +722 -0
  184. package/radio-group/types.d.ts +114 -0
  185. package/radio-group/types.js +5 -0
  186. package/resultsetTable/ResultsetTable.d.ts +4 -0
  187. package/resultsetTable/ResultsetTable.js +10 -32
  188. package/resultsetTable/ResultsetTable.stories.tsx +275 -0
  189. package/resultsetTable/ResultsetTable.test.js +348 -0
  190. package/resultsetTable/types.d.ts +67 -0
  191. package/resultsetTable/types.js +5 -0
  192. package/select/Icons.d.ts +10 -0
  193. package/select/Icons.js +93 -0
  194. package/select/Listbox.d.ts +4 -0
  195. package/select/Listbox.js +198 -0
  196. package/select/Option.d.ts +4 -0
  197. package/select/Option.js +110 -0
  198. package/select/Select.d.ts +4 -0
  199. package/select/Select.js +160 -380
  200. package/select/Select.stories.tsx +627 -0
  201. package/select/Select.test.js +2233 -0
  202. package/select/types.d.ts +210 -0
  203. package/select/types.js +5 -0
  204. package/sidenav/Sidenav.d.ts +10 -0
  205. package/sidenav/Sidenav.js +186 -63
  206. package/sidenav/Sidenav.stories.tsx +180 -0
  207. package/sidenav/Sidenav.test.js +44 -0
  208. package/sidenav/types.d.ts +73 -0
  209. package/sidenav/types.js +5 -0
  210. package/slider/Slider.d.ts +4 -0
  211. package/slider/Slider.js +159 -156
  212. package/slider/Slider.stories.tsx +183 -0
  213. package/slider/Slider.test.js +250 -0
  214. package/slider/types.d.ts +86 -0
  215. package/slider/types.js +5 -0
  216. package/spinner/Spinner.d.ts +4 -0
  217. package/spinner/Spinner.js +9 -26
  218. package/spinner/Spinner.stories.jsx +103 -0
  219. package/spinner/Spinner.test.js +64 -0
  220. package/spinner/types.d.ts +32 -0
  221. package/spinner/types.js +5 -0
  222. package/switch/Switch.d.ts +2 -2
  223. package/switch/Switch.js +152 -69
  224. package/switch/Switch.stories.tsx +138 -0
  225. package/switch/Switch.test.js +225 -0
  226. package/switch/types.d.ts +12 -4
  227. package/table/Table.d.ts +4 -0
  228. package/table/Table.js +4 -4
  229. package/table/Table.stories.jsx +277 -0
  230. package/table/Table.test.js +26 -0
  231. package/table/types.d.ts +21 -0
  232. package/table/types.js +5 -0
  233. package/tabs/Tab.d.ts +4 -0
  234. package/tabs/Tab.js +135 -0
  235. package/tabs/Tabs.d.ts +4 -0
  236. package/tabs/Tabs.js +364 -156
  237. package/tabs/Tabs.stories.tsx +186 -0
  238. package/tabs/Tabs.test.js +351 -0
  239. package/tabs/types.d.ts +92 -0
  240. package/tabs/types.js +5 -0
  241. package/tabs-nav/NavTabs.d.ts +8 -0
  242. package/tabs-nav/NavTabs.js +125 -0
  243. package/tabs-nav/NavTabs.stories.tsx +170 -0
  244. package/tabs-nav/NavTabs.test.js +82 -0
  245. package/tabs-nav/Tab.d.ts +4 -0
  246. package/tabs-nav/Tab.js +130 -0
  247. package/tabs-nav/types.d.ts +53 -0
  248. package/tabs-nav/types.js +5 -0
  249. package/tag/Tag.d.ts +4 -0
  250. package/tag/Tag.js +35 -60
  251. package/tag/Tag.stories.tsx +142 -0
  252. package/tag/Tag.test.js +60 -0
  253. package/tag/types.d.ts +69 -0
  254. package/tag/types.js +5 -0
  255. package/text-input/Icons.d.ts +8 -0
  256. package/text-input/Icons.js +60 -0
  257. package/text-input/Suggestion.d.ts +4 -0
  258. package/text-input/Suggestion.js +57 -0
  259. package/text-input/Suggestions.d.ts +4 -0
  260. package/text-input/Suggestions.js +134 -0
  261. package/text-input/TextInput.d.ts +4 -0
  262. package/text-input/TextInput.js +228 -376
  263. package/text-input/TextInput.stories.tsx +481 -0
  264. package/text-input/TextInput.test.js +1624 -0
  265. package/text-input/types.d.ts +197 -0
  266. package/text-input/types.js +5 -0
  267. package/textarea/Textarea.d.ts +4 -0
  268. package/textarea/Textarea.js +39 -79
  269. package/textarea/Textarea.stories.jsx +157 -0
  270. package/textarea/Textarea.test.js +437 -0
  271. package/textarea/types.d.ts +137 -0
  272. package/textarea/types.js +5 -0
  273. package/toggle-group/ToggleGroup.d.ts +4 -0
  274. package/toggle-group/ToggleGroup.js +18 -46
  275. package/toggle-group/ToggleGroup.stories.tsx +173 -0
  276. package/toggle-group/ToggleGroup.test.js +156 -0
  277. package/toggle-group/types.d.ts +105 -0
  278. package/toggle-group/types.js +5 -0
  279. package/typography/Typography.d.ts +4 -0
  280. package/typography/Typography.js +131 -0
  281. package/typography/Typography.stories.tsx +198 -0
  282. package/typography/types.d.ts +18 -0
  283. package/typography/types.js +5 -0
  284. package/useTheme.d.ts +2 -0
  285. package/useTheme.js +2 -2
  286. package/useTranslatedLabels.d.ts +2 -0
  287. package/useTranslatedLabels.js +20 -0
  288. package/wizard/Wizard.d.ts +4 -0
  289. package/wizard/Wizard.js +118 -104
  290. package/wizard/Wizard.stories.tsx +233 -0
  291. package/wizard/Wizard.test.js +141 -0
  292. package/wizard/types.d.ts +65 -0
  293. package/wizard/types.js +5 -0
  294. package/ThemeContext.js +0 -246
  295. package/V3Select/V3Select.js +0 -455
  296. package/V3Select/index.d.ts +0 -27
  297. package/V3Textarea/V3Textarea.js +0 -260
  298. package/V3Textarea/index.d.ts +0 -27
  299. package/accordion/index.d.ts +0 -28
  300. package/accordion-group/index.d.ts +0 -16
  301. package/box/index.d.ts +0 -25
  302. package/card/index.d.ts +0 -22
  303. package/chip/index.d.ts +0 -22
  304. package/date/Date.js +0 -373
  305. package/date/index.d.ts +0 -27
  306. package/date-input/index.d.ts +0 -95
  307. package/dialog/index.d.ts +0 -18
  308. package/dropdown/index.d.ts +0 -26
  309. package/file-input/index.d.ts +0 -81
  310. package/footer/index.d.ts +0 -25
  311. package/header/index.d.ts +0 -25
  312. package/heading/index.d.ts +0 -17
  313. package/input-text/Icons.js +0 -22
  314. package/input-text/InputText.js +0 -611
  315. package/input-text/index.d.ts +0 -36
  316. package/link/index.d.ts +0 -23
  317. package/number-input/index.d.ts +0 -113
  318. package/password-input/index.d.ts +0 -94
  319. package/progress-bar/index.d.ts +0 -18
  320. package/radio/Radio.js +0 -195
  321. package/radio/index.d.ts +0 -23
  322. package/resultsetTable/index.d.ts +0 -19
  323. package/select/index.d.ts +0 -131
  324. package/sidenav/index.d.ts +0 -13
  325. package/slider/index.d.ts +0 -29
  326. package/spinner/index.d.ts +0 -17
  327. package/table/index.d.ts +0 -13
  328. package/tabs/index.d.ts +0 -19
  329. package/tag/index.d.ts +0 -24
  330. package/text-input/index.d.ts +0 -135
  331. package/textarea/index.d.ts +0 -117
  332. package/toggle/Toggle.js +0 -186
  333. package/toggle/index.d.ts +0 -21
  334. package/toggle-group/index.d.ts +0 -21
  335. package/upload/Upload.js +0 -201
  336. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  337. package/upload/buttons-upload/Icons.js +0 -40
  338. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  339. package/upload/dragAndDropArea/Icons.js +0 -39
  340. package/upload/file-upload/FileToUpload.js +0 -115
  341. package/upload/file-upload/Icons.js +0 -66
  342. package/upload/files-upload/FilesToUpload.js +0 -109
  343. package/upload/index.d.ts +0 -15
  344. package/upload/transaction/Icons.js +0 -160
  345. package/upload/transaction/Transaction.js +0 -104
  346. package/upload/transactions/Transactions.js +0 -94
  347. package/wizard/Icons.js +0 -65
  348. package/wizard/index.d.ts +0 -18
package/footer/Footer.js CHANGED
@@ -9,118 +9,66 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports["default"] = void 0;
11
11
 
12
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
13
-
14
- var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
-
16
12
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
17
13
 
18
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
14
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
19
15
 
20
16
  var _react = _interopRequireWildcard(require("react"));
21
17
 
22
18
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
23
19
 
24
- var _propTypes = _interopRequireDefault(require("prop-types"));
25
-
26
20
  var _variables = require("../common/variables.js");
27
21
 
28
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
22
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
23
+
24
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
29
25
 
30
- var _BackgroundColorContext = require("../BackgroundColorContext.js");
26
+ var _BackgroundColorContext = require("../BackgroundColorContext");
31
27
 
32
- var _Icons = _interopRequireDefault(require("./Icons"));
28
+ var _Icons = require("./Icons");
33
29
 
34
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13;
30
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14;
35
31
 
36
32
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
37
33
 
38
34
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
39
35
 
40
36
  var DxcFooter = function DxcFooter(_ref) {
41
- var _ref$socialLinks = _ref.socialLinks,
42
- socialLinks = _ref$socialLinks === void 0 ? [] : _ref$socialLinks,
43
- _ref$bottomLinks = _ref.bottomLinks,
44
- bottomLinks = _ref$bottomLinks === void 0 ? [] : _ref$bottomLinks,
45
- _ref$copyright = _ref.copyright,
46
- copyright = _ref$copyright === void 0 ? "" : _ref$copyright,
37
+ var socialLinks = _ref.socialLinks,
38
+ bottomLinks = _ref.bottomLinks,
39
+ copyright = _ref.copyright,
47
40
  children = _ref.children,
48
41
  padding = _ref.padding,
49
42
  margin = _ref.margin,
50
43
  _ref$tabIndex = _ref.tabIndex,
51
44
  tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
52
- var ref = (0, _react.useRef)(null);
53
-
54
- var _useState = (0, _react.useState)(),
55
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
56
- refSize = _useState2[0],
57
- setRefSize = _useState2[1];
58
-
59
- var _useState3 = (0, _react.useState)(false),
60
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
61
- isResponsiveTablet = _useState4[0],
62
- setIsResponsiveTablet = _useState4[1];
63
-
64
- var _useState5 = (0, _react.useState)(false),
65
- _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
66
- isResponsivePhone = _useState6[0],
67
- setIsResponsivePhone = _useState6[1];
68
-
69
45
  var colorsTheme = (0, _useTheme["default"])();
46
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
70
47
  var footerLogo = (0, _react.useMemo)(function () {
71
48
  if (!colorsTheme.footer.logo) {
72
- return _Icons["default"];
49
+ return _Icons.dxcLogo;
73
50
  }
74
51
 
75
52
  if (typeof colorsTheme.footer.logo === "string") {
76
53
  return /*#__PURE__*/_react["default"].createElement(LogoImg, {
77
- alt: "Logo",
54
+ alt: translatedLabels.formFields.logoAlternativeText,
78
55
  src: colorsTheme.footer.logo
79
56
  });
80
57
  }
81
58
 
82
59
  return colorsTheme.footer.logo;
83
60
  }, [colorsTheme.footer.logo]);
84
-
85
- var handleResize = function handleResize(refWidth) {
86
- if (ref.current) {
87
- setRefSize(refWidth);
88
-
89
- if (refWidth <= _variables.responsiveSizes.tablet && refWidth > _variables.responsiveSizes.mobileLarge) {
90
- setIsResponsiveTablet(true);
91
- setIsResponsivePhone(false);
92
- } else if (refWidth <= _variables.responsiveSizes.tablet && refWidth <= _variables.responsiveSizes.mobileLarge) {
93
- setIsResponsivePhone(true);
94
- setIsResponsiveTablet(false);
95
- } else {
96
- setIsResponsiveTablet(false);
97
- setIsResponsivePhone(false);
98
- }
99
- }
100
- };
101
-
102
- var handleEventListener = function handleEventListener() {
103
- handleResize(ref.current.offsetWidth);
104
- };
105
-
106
- (0, _react.useEffect)(function () {
107
- window.addEventListener("resize", handleEventListener);
108
- handleResize(ref.current.offsetWidth);
109
- return function () {
110
- window.removeEventListener("resize", handleEventListener);
111
- };
112
- }, []);
113
- var socialLink = socialLinks.map(function (link, index) {
61
+ var socialLink = socialLinks === null || socialLinks === void 0 ? void 0 : socialLinks.map(function (link, index) {
114
62
  return /*#__PURE__*/_react["default"].createElement(SocialAnchor, {
115
63
  tabIndex: tabIndex,
116
64
  key: "social".concat(index).concat(link.href),
117
65
  index: index,
118
66
  href: link && link.href ? link.href : ""
119
- }, link.logo ? /*#__PURE__*/_react["default"].createElement(SocialIconContainer, null, (0, _typeof2["default"])(link.logo) === "object" ? link.logo : /*#__PURE__*/_react["default"].createElement(link.logo)) : link && link.logoSrc && /*#__PURE__*/_react["default"].createElement(SocialIcon, {
120
- src: link.logoSrc
121
- }));
67
+ }, /*#__PURE__*/_react["default"].createElement(SocialIconContainer, null, typeof link.logo === "string" ? /*#__PURE__*/_react["default"].createElement(SocialIconImg, {
68
+ src: link.logo
69
+ }) : link.logo));
122
70
  });
123
- var bottomLink = bottomLinks.map(function (link, index) {
71
+ var bottomLink = bottomLinks === null || bottomLinks === void 0 ? void 0 : bottomLinks.map(function (link, index) {
124
72
  return /*#__PURE__*/_react["default"].createElement("span", {
125
73
  key: "bottom".concat(index).concat(link.text)
126
74
  }, /*#__PURE__*/_react["default"].createElement(BottomLink, {
@@ -133,32 +81,17 @@ var DxcFooter = function DxcFooter(_ref) {
133
81
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
134
82
  theme: colorsTheme.footer
135
83
  }, /*#__PURE__*/_react["default"].createElement(FooterContainer, {
136
- margin: margin,
137
- refSize: refSize,
138
- ref: ref
139
- }, /*#__PURE__*/_react["default"].createElement(FooterHeader, null, /*#__PURE__*/_react["default"].createElement(LogoContainer, null, footerLogo), /*#__PURE__*/_react["default"].createElement("div", null, socialLink)), isResponsivePhone && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(FooterFooter, {
140
- className: "footerFooter",
141
- refSize: refSize
142
- }, /*#__PURE__*/_react["default"].createElement(BottomLinks, {
143
- refSize: refSize
144
- }, bottomLink), /*#__PURE__*/_react["default"].createElement(Copyright, {
145
- refSize: refSize
146
- }, copyright))), (!isResponsiveTablet && !isResponsivePhone || isResponsiveTablet) && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(ChildComponents, {
84
+ margin: margin
85
+ }, /*#__PURE__*/_react["default"].createElement(FooterHeader, null, /*#__PURE__*/_react["default"].createElement(LogoContainer, null, footerLogo), /*#__PURE__*/_react["default"].createElement(SocialLinkContainer, null, socialLink)), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(ChildComponents, {
147
86
  padding: padding
148
87
  }, /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
149
88
  color: colorsTheme.footer.backgroundColor
150
89
  }, children)), /*#__PURE__*/_react["default"].createElement(FooterFooter, {
151
90
  className: "footerFooter"
152
- }, /*#__PURE__*/_react["default"].createElement(BottomLinks, {
153
- refSize: refSize
154
- }, bottomLink), /*#__PURE__*/_react["default"].createElement(Copyright, {
155
- refSize: refSize
156
- }, copyright)))));
91
+ }, /*#__PURE__*/_react["default"].createElement(BottomLinks, null, bottomLink), /*#__PURE__*/_react["default"].createElement(Copyright, null, copyright || translatedLabels.footer.copyrightText(new Date().getFullYear()))))));
157
92
  };
158
93
 
159
- var FooterContainer = _styledComponents["default"].footer(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n padding: ", ";\n background-color: ", ";\n margin-top: ", ";\n width: 100%;\n box-sizing: border-box;\n min-height: ", ";\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n"])), function (props) {
160
- return props.refSize <= _variables.responsiveSizes.mobileLarge ? "20px 20px 20px 20px" : "24px 36px 24px 36px";
161
- }, function (props) {
94
+ var FooterContainer = _styledComponents["default"].footer(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n @media (min-width: ", "rem) {\n padding: 24px 36px 24px 36px;\n }\n\n @media (max-width: ", "rem) {\n //mobile phones\n padding: 20px;\n }\n\n background-color: ", ";\n margin-top: ", ";\n width: 100%;\n box-sizing: border-box;\n min-height: ", ";\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n"])), _variables.responsiveSizes.small, _variables.responsiveSizes.small, function (props) {
162
95
  return props.theme.backgroundColor;
163
96
  }, function (props) {
164
97
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
@@ -166,27 +99,17 @@ var FooterContainer = _styledComponents["default"].footer(_templateObject || (_t
166
99
  return props.theme.height;
167
100
  });
168
101
 
169
- var FooterHeader = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n"])));
102
+ var FooterHeader = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n row-gap: 24px;\n"])));
170
103
 
171
- var FooterFooter = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n align-items: flex-end;\n flex-direction: ", ";\n align-items: ", ";\n border-top: ", ";\n"])), function (props) {
172
- return props.refSize <= _variables.responsiveSizes.mobileLarge ? "column" : "row";
173
- }, function (props) {
174
- return props.refSize <= _variables.responsiveSizes.mobileLarge ? "center" : "";
175
- }, function (props) {
104
+ var FooterFooter = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n align-items: flex-end;\n\n @media (min-width: ", "rem) {\n flex-direction: row;\n }\n\n @media (max-width: ", "rem) {\n //mobile phones\n flex-direction: column;\n align-items: center;\n }\n\n border-top: ", ";\n margin-top: 16px;\n"])), _variables.responsiveSizes.small, _variables.responsiveSizes.small, function (props) {
176
105
  return "".concat(props.theme.bottomLinksDividerThickness, " ").concat(props.theme.bottomLinksDividerStyle, " ").concat(props.theme.bottomLinksDividerColor);
177
106
  });
178
107
 
179
- var BottomLinks = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n padding-top: ", ";\n display: inline-flex;\n flex-wrap: wrap;\n max-width: ", ";\n width: ", ";\n & > span:last-child span {\n display: none;\n }\n margin: ", ";\n"])), function (props) {
108
+ var BottomLinks = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n padding-top: ", ";\n display: inline-flex;\n flex-wrap: wrap;\n\n @media (min-width: ", "rem) {\n max-width: 60%;\n }\n\n @media (max-width: ", "rem) {\n //mobile phones\n max-width: 100%;\n width: 100%;\n }\n\n & > span:last-child span {\n display: none;\n }\n align-self: center;\n"])), function (props) {
180
109
  return props.theme.bottomLinksDividerSpacing;
181
- }, function (props) {
182
- return props.refSize <= _variables.responsiveSizes.mobileLarge ? "100%" : "60%";
183
- }, function (props) {
184
- return props.refSize <= _variables.responsiveSizes.mobileLarge ? "100%" : "";
185
- }, function (props) {
186
- return props.refSize <= _variables.responsiveSizes.mobileLarge ? "40px 0 40px 0" : "";
187
- });
110
+ }, _variables.responsiveSizes.small, _variables.responsiveSizes.small);
188
111
 
189
- var ChildComponents = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n min-height: 15px;\n padding: ", ";\n padding-top: ", ";\n padding-right: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n overflow: hidden;\n"])), function (props) {
112
+ var ChildComponents = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n min-height: 16px;\n padding: ", ";\n padding-top: ", ";\n padding-right: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n overflow: hidden;\n"])), function (props) {
190
113
  return props.padding && (0, _typeof2["default"])(props.padding) !== "object" ? _variables.spaces[props.padding] : "0px";
191
114
  }, function (props) {
192
115
  return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.top ? _variables.spaces[props.padding.top] : "";
@@ -198,7 +121,7 @@ var ChildComponents = _styledComponents["default"].div(_templateObject5 || (_tem
198
121
  return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.left ? _variables.spaces[props.padding.left] : "";
199
122
  });
200
123
 
201
- var Copyright = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n max-width: ", ";\n width: ", ";\n text-align: ", ";\n padding-top: ", ";\n"])), function (props) {
124
+ var Copyright = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n\n @media (min-width: ", "rem) {\n max-width: 40%;\n text-align: right;\n }\n\n @media (max-width: ", "rem) {\n //mobile phones\n max-width: 100%;\n width: 100%;\n text-align: left;\n }\n\n padding-top: ", ";\n"])), function (props) {
202
125
  return props.theme.copyrightFontFamily;
203
126
  }, function (props) {
204
127
  return props.theme.copyrightFontSize;
@@ -208,13 +131,7 @@ var Copyright = _styledComponents["default"].div(_templateObject6 || (_templateO
208
131
  return props.theme.copyrightFontWeight;
209
132
  }, function (props) {
210
133
  return props.theme.copyrightFontColor;
211
- }, function (props) {
212
- return props.refSize <= _variables.responsiveSizes.mobileLarge ? "100%" : "40%";
213
- }, function (props) {
214
- return props.refSize <= _variables.responsiveSizes.mobileLarge ? "100%" : "";
215
- }, function (props) {
216
- return props.refSize <= _variables.responsiveSizes.mobileLarge ? "center" : "right";
217
- }, function (props) {
134
+ }, _variables.responsiveSizes.small, _variables.responsiveSizes.small, function (props) {
218
135
  return props.theme.bottomLinksDividerSpacing;
219
136
  });
220
137
 
@@ -230,19 +147,15 @@ var LogoImg = _styledComponents["default"].img(_templateObject8 || (_templateObj
230
147
  return props.theme.logoWidth;
231
148
  });
232
149
 
233
- var SocialAnchor = _styledComponents["default"].a(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n & {\n display: inline-flex;\n margin-left: ", ";\n }\n"])), function (props) {
150
+ var SocialLinkContainer = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-self: center;\n"])));
151
+
152
+ var SocialAnchor = _styledComponents["default"].a(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n & {\n display: inline-flex;\n margin-left: ", ";\n }\n"])), function (props) {
234
153
  return props.index === 0 ? "0px" : props.theme.socialLinksGutter;
235
154
  });
236
155
 
237
- var SocialIcon = _styledComponents["default"].img(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n & {\n display: inline-flex;\n height: ", ";\n width: ", ";\n fill: ", ";\n }\n"])), function (props) {
238
- return props.theme.socialLinksSize;
239
- }, function (props) {
240
- return props.theme.socialLinksSize;
241
- }, function (props) {
242
- return props.theme.socialLinksColor;
243
- });
156
+ var SocialIconImg = _styledComponents["default"].img(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])([""])));
244
157
 
245
- var SocialIconContainer = _styledComponents["default"].div(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n & {\n display: inline-flex;\n height: ", ";\n width: ", ";\n color: ", ";\n }\n\n overflow: hidden;\n\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
158
+ var SocialIconContainer = _styledComponents["default"].div(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n & {\n display: inline-flex;\n height: ", ";\n width: ", ";\n color: ", ";\n }\n\n overflow: hidden;\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
246
159
  return props.theme.socialLinksSize;
247
160
  }, function (props) {
248
161
  return props.theme.socialLinksSize;
@@ -250,11 +163,11 @@ var SocialIconContainer = _styledComponents["default"].div(_templateObject11 ||
250
163
  return props.theme.socialLinksColor;
251
164
  });
252
165
 
253
- var Point = _styledComponents["default"].span(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n margin: 0px 10px;\n color: ", ";\n"])), function (props) {
166
+ var Point = _styledComponents["default"].span(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2["default"])(["\n margin: 0px 10px;\n color: ", ";\n"])), function (props) {
254
167
  return props.theme.bottomLinksFontColor;
255
168
  });
256
169
 
257
- var BottomLink = _styledComponents["default"].a(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2["default"])(["\n text-decoration: ", ";\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n"])), function (props) {
170
+ var BottomLink = _styledComponents["default"].a(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteral2["default"])(["\n text-decoration: ", ";\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n"])), function (props) {
258
171
  return props.theme.bottomLinksTextDecoration;
259
172
  }, function (props) {
260
173
  return props.theme.bottomLinksFontColor;
@@ -268,30 +181,5 @@ var BottomLink = _styledComponents["default"].a(_templateObject13 || (_templateO
268
181
  return props.theme.bottomLinksFontWeight;
269
182
  });
270
183
 
271
- DxcFooter.propTypes = {
272
- socialLinks: _propTypes["default"].arrayOf(_propTypes["default"].shape({
273
- logo: _propTypes["default"].oneOfType([_propTypes["default"].element, _propTypes["default"].func]),
274
- logoSrc: _propTypes["default"].string.isRequired,
275
- href: _propTypes["default"].string
276
- })),
277
- bottomLinks: _propTypes["default"].arrayOf(_propTypes["default"].shape({
278
- text: _propTypes["default"].string.isRequired,
279
- href: _propTypes["default"].string
280
- })),
281
- copyright: _propTypes["default"].string,
282
- margin: _propTypes["default"].oneOfType([_propTypes["default"].shape({
283
- top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
284
- bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
285
- left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
286
- right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
287
- }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
288
- padding: _propTypes["default"].oneOfType([_propTypes["default"].shape({
289
- top: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
290
- bottom: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
291
- left: _propTypes["default"].oneOf(Object.keys(_variables.spaces)),
292
- right: _propTypes["default"].oneOf(Object.keys(_variables.spaces))
293
- }), _propTypes["default"].oneOf((0, _toConsumableArray2["default"])(Object.keys(_variables.spaces)))]),
294
- tabIndex: _propTypes["default"].number
295
- };
296
184
  var _default = DxcFooter;
297
185
  exports["default"] = _default;
@@ -0,0 +1,137 @@
1
+ import React from "react";
2
+ import DxcFooter from "./Footer";
3
+ import Title from "../../.storybook/components/Title";
4
+ import ExampleContainer from "../../.storybook/components/ExampleContainer";
5
+
6
+ const social = [
7
+ {
8
+ href: "https://www.linkedin.com/company/dxctechnology",
9
+ logo: (
10
+ <svg version="1.1" id="Capa_1" x="0px" y="0px" viewBox="0 0 438.536 438.536" fill="currentColor">
11
+ <g>
12
+ <path
13
+ d="M414.41,24.123C398.333,8.042,378.963,0,356.315,0H82.228C59.58,0,40.21,8.042,24.126,24.123
14
+ C8.045,40.207,0.003,59.576,0.003,82.225v274.084c0,22.647,8.042,42.018,24.123,58.102c16.084,16.084,35.454,24.126,58.102,24.126
15
+ h274.084c22.648,0,42.018-8.042,58.095-24.126c16.084-16.084,24.126-35.454,24.126-58.102V82.225
16
+ C438.532,59.576,430.49,40.204,414.41,24.123z M133.618,367.157H67.666V169.016h65.952V367.157z M127.626,132.332
17
+ c-6.851,6.567-15.893,9.851-27.124,9.851h-0.288c-10.848,0-19.648-3.284-26.407-9.851c-6.76-6.567-10.138-14.703-10.138-24.41
18
+ c0-9.897,3.476-18.083,10.421-24.556c6.95-6.471,15.942-9.708,26.98-9.708c11.039,0,19.89,3.237,26.553,9.708
19
+ c6.661,6.473,10.088,14.659,10.277,24.556C137.899,117.625,134.477,125.761,127.626,132.332z M370.873,367.157h-65.952v-105.92
20
+ c0-29.879-11.036-44.823-33.116-44.823c-8.374,0-15.42,2.331-21.128,6.995c-5.715,4.661-9.996,10.324-12.847,16.991
21
+ c-1.335,3.422-1.999,8.75-1.999,15.981v110.775h-65.952c0.571-119.529,0.571-185.579,0-198.142h65.952v27.974
22
+ c13.867-21.681,33.558-32.544,59.101-32.544c22.84,0,41.21,7.52,55.104,22.554c13.895,15.037,20.841,37.214,20.841,66.519v113.64
23
+ H370.873z"
24
+ />
25
+ </g>
26
+ </svg>
27
+ ),
28
+ },
29
+ {
30
+ href: "https://twitter.com/dxctechnology",
31
+ logo: (
32
+ <svg viewBox="0 0 248 204" fill="currentColor">
33
+ <path
34
+ fill="#1d9bf0"
35
+ d="M221.95 51.29c.15 2.17.15 4.34.15 6.53 0 66.73-50.8 143.69-143.69 143.69v-.04c-27.44.04-54.31-7.82-77.41-22.64 3.99.48 8 .72 12.02.73 22.74.02 44.83-7.61 62.72-21.66-21.61-.41-40.56-14.5-47.18-35.07 7.57 1.46 15.37 1.16 22.8-.87-23.56-4.76-40.51-25.46-40.51-49.5v-.64c7.02 3.91 14.88 6.08 22.92 6.32C11.58 63.31 4.74 33.79 18.14 10.71c25.64 31.55 63.47 50.73 104.08 52.76-4.07-17.54 1.49-35.92 14.61-48.25 20.34-19.12 52.33-18.14 71.45 2.19 11.31-2.23 22.15-6.38 32.07-12.26-3.77 11.69-11.66 21.62-22.2 27.93 10.01-1.18 19.79-3.86 29-7.95-6.78 10.16-15.32 19.01-25.2 26.16z"
36
+ />
37
+ </svg>
38
+ ),
39
+ },
40
+ {
41
+ href: "https://www.facebook.com/DXCTechnology/",
42
+ logo: (
43
+ <svg
44
+ version="1.1"
45
+ id="Capa_1"
46
+ x="0px"
47
+ y="0px"
48
+ viewBox="0 0 438.536 438.536"
49
+ fill="currentColor"
50
+ width="1000px"
51
+ height="500px"
52
+ >
53
+ <g>
54
+ <path
55
+ d="M414.41,24.123C398.333,8.042,378.963,0,356.315,0H82.228C59.58,0,40.21,8.042,24.126,24.123
56
+ C8.045,40.207,0.003,59.576,0.003,82.225v274.084c0,22.647,8.042,42.018,24.123,58.102c16.084,16.084,35.454,24.126,58.102,24.126
57
+ h274.084c22.648,0,42.018-8.042,58.095-24.126c16.084-16.084,24.126-35.454,24.126-58.102V82.225
58
+ C438.532,59.576,430.49,40.204,414.41,24.123z M373.155,225.548h-49.963V406.84h-74.802V225.548H210.99V163.02h37.401v-37.402
59
+ c0-26.838,6.283-47.107,18.843-60.813c12.559-13.706,33.304-20.555,62.242-20.555h49.963v62.526h-31.401
60
+ c-10.663,0-17.467,1.853-20.417,5.568c-2.949,3.711-4.428,10.23-4.428,19.558v31.119h56.534L373.155,225.548z"
61
+ />
62
+ </g>
63
+ </svg>
64
+ ),
65
+ },
66
+ ];
67
+
68
+ const bottom = [
69
+ {
70
+ href: "https://www.linkedin.com/company/dxctechnology",
71
+ text: "Linkedin",
72
+ },
73
+ {
74
+ href: "https://twitter.com/dxctechnology",
75
+ text: "Twitter",
76
+ },
77
+ {
78
+ href: "https://www.facebook.com/DXCTechnology/",
79
+ text: "Facebook",
80
+ },
81
+ ];
82
+
83
+ export default {
84
+ title: "Footer",
85
+ component: DxcFooter,
86
+ };
87
+
88
+ export const Chromatic = () => (
89
+ <>
90
+ <ExampleContainer>
91
+ <Title title="Default" theme="light" level={4} />
92
+ <DxcFooter />
93
+ </ExampleContainer>
94
+ <ExampleContainer>
95
+ <Title title="With children, copyright, bottom links and social links" theme="light" level={4} />
96
+ <DxcFooter copyright="Copyright" socialLinks={social} bottomLinks={bottom}>
97
+ <div>
98
+ <a href="https://www.linkedin.com/company/dxctechnology">Linkedin</a>
99
+ </div>
100
+ </DxcFooter>
101
+ </ExampleContainer>
102
+ <Title title="Margins" theme="light" level={2} />
103
+ <ExampleContainer>
104
+ <Title title="Xxsmall margin" theme="light" level={4} />
105
+ <DxcFooter margin="xxsmall"></DxcFooter>
106
+ <Title title="Xsmall margin" theme="light" level={4} />
107
+ <DxcFooter margin="xsmall"></DxcFooter>
108
+ <Title title="Small margin" theme="light" level={4} />
109
+ <DxcFooter margin="small"></DxcFooter>
110
+ <Title title="Medium margin" theme="light" level={4} />
111
+ <DxcFooter margin="medium"></DxcFooter>
112
+ <Title title="Large margin" theme="light" level={4} />
113
+ <DxcFooter margin="large"></DxcFooter>
114
+ <Title title="Xlarge margin" theme="light" level={4} />
115
+ <DxcFooter margin="xlarge"></DxcFooter>
116
+ <Title title="Xxlarge margin" theme="light" level={4} />
117
+ <DxcFooter margin="xxlarge"></DxcFooter>
118
+ </ExampleContainer>
119
+ <Title title="Padding" theme="light" level={2} />
120
+ <ExampleContainer>
121
+ <Title title="Xxsmall padding" theme="light" level={4} />
122
+ <DxcFooter padding="xxsmall"></DxcFooter>
123
+ <Title title="Xsmall padding" theme="light" level={4} />
124
+ <DxcFooter padding="xsmall"></DxcFooter>
125
+ <Title title="Small padding" theme="light" level={4} />
126
+ <DxcFooter padding="small"></DxcFooter>
127
+ <Title title="Medium padding" theme="light" level={4} />
128
+ <DxcFooter padding="medium"></DxcFooter>
129
+ <Title title="Large padding" theme="light" level={4} />
130
+ <DxcFooter padding="large"></DxcFooter>
131
+ <Title title="Xlarge padding" theme="light" level={4} />
132
+ <DxcFooter padding="xlarge"></DxcFooter>
133
+ <Title title="Xxlarge padding" theme="light" level={4} />
134
+ <DxcFooter padding="xxlarge"></DxcFooter>
135
+ </ExampleContainer>
136
+ </>
137
+ );
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _react = _interopRequireDefault(require("react"));
6
+
7
+ var _react2 = require("@testing-library/react");
8
+
9
+ var _linkedin = _interopRequireDefault(require("../../app/src/images/linkedin.svg"));
10
+
11
+ var _Footer = _interopRequireDefault(require("./Footer"));
12
+
13
+ describe("Footer component tests", function () {
14
+ test("Footer renders with default logo", function () {
15
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], null)),
16
+ getByTitle = _render.getByTitle;
17
+
18
+ expect(getByTitle("DXC Logo")).toBeTruthy();
19
+ });
20
+ test("Footer renders with social links", function () {
21
+ var social = [{
22
+ href: "https://www.test.com/test",
23
+ logo: _linkedin["default"]
24
+ }];
25
+
26
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
27
+ socialLinks: social
28
+ })),
29
+ getByRole = _render2.getByRole;
30
+
31
+ var socialIcon = getByRole("link");
32
+ expect(socialIcon.getAttribute("href")).toBe("https://www.test.com/test");
33
+ });
34
+ test("Footer renders with bottom links", function () {
35
+ var bottom = [{
36
+ href: "https://www.test.com/test",
37
+ text: "bottom-link-text"
38
+ }];
39
+
40
+ var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
41
+ bottomLinks: bottom
42
+ })),
43
+ getByText = _render3.getByText;
44
+
45
+ var link = getByText("bottom-link-text");
46
+ expect(link.getAttribute("href")).toBe("https://www.test.com/test");
47
+ });
48
+ test("Footer renders with copyright text", function () {
49
+ var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
50
+ copyright: "test-copyright"
51
+ })),
52
+ getByText = _render4.getByText;
53
+
54
+ expect(getByText("test-copyright")).toBeTruthy();
55
+ });
56
+ test("Footer renders with correct children", function () {
57
+ //We need to force the offsetWidth value
58
+ Object.defineProperty(HTMLElement.prototype, "offsetWidth", {
59
+ configurable: true,
60
+ value: 1024
61
+ });
62
+
63
+ var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], null, /*#__PURE__*/_react["default"].createElement("p", null, "footer-child-text"))),
64
+ getByText = _render5.getByText;
65
+
66
+ expect(getByText("footer-child-text")).toBeTruthy();
67
+ });
68
+ test("Footer renders with children in mobile", function () {
69
+ //425 is mobile width
70
+ Object.defineProperty(HTMLElement.prototype, "offsetWidth", {
71
+ configurable: true,
72
+ value: 425
73
+ });
74
+
75
+ var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], null, /*#__PURE__*/_react["default"].createElement("p", null, "footer-child-text"))),
76
+ queryByText = _render6.queryByText;
77
+
78
+ expect(queryByText("footer-child-text")).toBeTruthy();
79
+ });
80
+ test("Footer is fully rendered", function () {
81
+ Object.defineProperty(HTMLElement.prototype, "offsetWidth", {
82
+ configurable: true,
83
+ value: 1024
84
+ });
85
+ var social = [{
86
+ href: "https://www.test.com/social",
87
+ logo: _linkedin["default"]
88
+ }];
89
+ var bottom = [{
90
+ href: "https://www.test.com/bottom",
91
+ text: "bottom-link-text"
92
+ }];
93
+
94
+ var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
95
+ socialLinks: social,
96
+ bottomLinks: bottom,
97
+ copyright: "test-copyright"
98
+ }, /*#__PURE__*/_react["default"].createElement("p", null, "footer-child-text"))),
99
+ getAllByRole = _render7.getAllByRole,
100
+ getByText = _render7.getByText;
101
+
102
+ var socialIcon = getAllByRole("link")[0];
103
+ expect(socialIcon.getAttribute("href")).toBe("https://www.test.com/social");
104
+ var bottomLink = getByText("bottom-link-text");
105
+ expect(bottomLink.getAttribute("href")).toBe("https://www.test.com/bottom");
106
+ expect(getByText("test-copyright")).toBeTruthy();
107
+ expect(getByText("footer-child-text")).toBeTruthy();
108
+ });
109
+ });
@@ -0,0 +1,2 @@
1
+ /// <reference types="react" />
2
+ export declare const dxcLogo: JSX.Element;
package/footer/Icons.js CHANGED
@@ -5,14 +5,14 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports["default"] = void 0;
8
+ exports.dxcLogo = void 0;
9
9
 
10
10
  var _react = _interopRequireDefault(require("react"));
11
11
 
12
- var _default = /*#__PURE__*/_react["default"].createElement("svg", {
12
+ var dxcLogo = /*#__PURE__*/_react["default"].createElement("svg", {
13
13
  id: "g10",
14
14
  xmlns: "http://www.w3.org/2000/svg",
15
- width: "280.781",
15
+ width: "100%",
16
16
  height: "32",
17
17
  viewBox: "0 0 280.781 32"
18
18
  }, /*#__PURE__*/_react["default"].createElement("title", null, "DXC Logo"), /*#__PURE__*/_react["default"].createElement("g", {
@@ -74,4 +74,4 @@ var _default = /*#__PURE__*/_react["default"].createElement("svg", {
74
74
  fill: "#fff"
75
75
  })));
76
76
 
77
- exports["default"] = _default;
77
+ exports.dxcLogo = dxcLogo;
@@ -0,0 +1,66 @@
1
+ /// <reference types="react" />
2
+ declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
+ declare type Size = {
4
+ top?: Space;
5
+ bottom?: Space;
6
+ left?: Space;
7
+ right?: Space;
8
+ };
9
+ declare type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
10
+ declare type SocialLink = {
11
+ /**
12
+ * Element used as the icon for the link.
13
+ */
14
+ logo: string | SVG;
15
+ /**
16
+ * URL of the page the link goes to.
17
+ */
18
+ href: string;
19
+ };
20
+ declare type BottomLink = {
21
+ /**
22
+ * Text for the link.
23
+ */
24
+ text: string;
25
+ /**
26
+ * URL of the page the link goes to.
27
+ */
28
+ href: string;
29
+ };
30
+ declare type FooterPropsType = {
31
+ /**
32
+ * An array of objects representing the links that will be rendered as
33
+ * icons at the top-right side of the footer.
34
+ */
35
+ socialLinks?: SocialLink[];
36
+ /**
37
+ * An array of objects representing the links that will be rendered at
38
+ * the bottom part of the footer.
39
+ */
40
+ bottomLinks?: BottomLink[];
41
+ /**
42
+ * The center section of the footer. Can be used to render custom
43
+ * content in this area.
44
+ */
45
+ children?: React.ReactNode;
46
+ /**
47
+ * The text that will be displayed as copyright disclaimer.
48
+ */
49
+ copyright?: string;
50
+ /**
51
+ * Value of the tabindex for all interactuable elements, except those
52
+ * inside the custom area.
53
+ */
54
+ tabIndex?: number;
55
+ /**
56
+ * Size of the top margin to be applied to the footer.
57
+ */
58
+ margin?: Space | Size;
59
+ /**
60
+ * @deprecated This prop will be removed shortly, consider using the Inset component for this purpose.
61
+ * Size of the padding to be applied to the custom area of the component.
62
+ * You can pass an object with properties in order to specify different padding sizes.
63
+ */
64
+ padding?: Space | Size;
65
+ };
66
+ export default FooterPropsType;
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });