@dxc-technology/halstack-react 0.0.0-c908d78 → 0.0.0-ca55cbe

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 (337) hide show
  1. package/BackgroundColorContext.d.ts +10 -0
  2. package/BackgroundColorContext.js +2 -5
  3. package/HalstackContext.d.ts +1336 -0
  4. package/HalstackContext.js +335 -0
  5. package/accordion/Accordion.d.ts +1 -1
  6. package/accordion/Accordion.js +118 -142
  7. package/accordion/Accordion.stories.tsx +395 -0
  8. package/accordion/Accordion.test.js +71 -0
  9. package/accordion/types.d.ts +9 -8
  10. package/accordion-group/AccordionGroup.d.ts +1 -1
  11. package/accordion-group/AccordionGroup.js +18 -39
  12. package/accordion-group/AccordionGroup.stories.tsx +251 -0
  13. package/accordion-group/AccordionGroup.test.js +126 -0
  14. package/accordion-group/types.d.ts +15 -8
  15. package/alert/Alert.js +10 -9
  16. package/alert/Alert.stories.tsx +198 -0
  17. package/alert/Alert.test.js +92 -0
  18. package/alert/types.d.ts +1 -1
  19. package/badge/Badge.d.ts +4 -0
  20. package/badge/Badge.js +6 -4
  21. package/badge/types.d.ts +5 -0
  22. package/bleed/Bleed.d.ts +3 -0
  23. package/bleed/Bleed.js +51 -0
  24. package/bleed/Bleed.stories.tsx +342 -0
  25. package/bleed/types.d.ts +37 -0
  26. package/bleed/types.js +5 -0
  27. package/box/Box.d.ts +1 -1
  28. package/box/Box.js +29 -44
  29. package/box/Box.stories.tsx +15 -0
  30. package/box/Box.test.js +18 -0
  31. package/box/types.d.ts +1 -4
  32. package/bulleted-list/BulletedList.d.ts +7 -0
  33. package/bulleted-list/BulletedList.js +125 -0
  34. package/bulleted-list/BulletedList.stories.tsx +206 -0
  35. package/bulleted-list/types.d.ts +11 -0
  36. package/bulleted-list/types.js +5 -0
  37. package/button/Button.d.ts +1 -1
  38. package/button/Button.js +61 -85
  39. package/button/Button.stories.tsx +375 -243
  40. package/button/Button.test.js +35 -0
  41. package/button/types.d.ts +8 -12
  42. package/card/Card.js +35 -40
  43. package/card/Card.stories.tsx +200 -0
  44. package/card/Card.test.js +50 -0
  45. package/card/ice-cream.jpg +0 -0
  46. package/card/types.d.ts +5 -6
  47. package/checkbox/Checkbox.d.ts +2 -2
  48. package/checkbox/Checkbox.js +108 -111
  49. package/checkbox/Checkbox.stories.tsx +198 -130
  50. package/checkbox/Checkbox.test.js +155 -0
  51. package/checkbox/types.d.ts +13 -5
  52. package/chip/Chip.d.ts +4 -0
  53. package/chip/Chip.js +24 -92
  54. package/chip/Chip.stories.tsx +206 -0
  55. package/chip/Chip.test.js +54 -0
  56. package/chip/types.d.ts +45 -0
  57. package/chip/types.js +5 -0
  58. package/common/OpenSans.css +68 -80
  59. package/common/coreTokens.d.ts +146 -0
  60. package/common/coreTokens.js +167 -0
  61. package/common/utils.d.ts +1 -0
  62. package/common/utils.js +4 -4
  63. package/common/variables.d.ts +1482 -0
  64. package/common/variables.js +1100 -1308
  65. package/date-input/Calendar.d.ts +4 -0
  66. package/date-input/Calendar.js +258 -0
  67. package/date-input/DateInput.js +174 -266
  68. package/date-input/DateInput.stories.tsx +304 -0
  69. package/date-input/DateInput.test.js +835 -0
  70. package/date-input/DatePicker.d.ts +4 -0
  71. package/date-input/DatePicker.js +146 -0
  72. package/date-input/Icons.d.ts +6 -0
  73. package/date-input/Icons.js +75 -0
  74. package/date-input/YearPicker.d.ts +4 -0
  75. package/date-input/YearPicker.js +126 -0
  76. package/date-input/types.d.ts +67 -9
  77. package/dialog/Dialog.js +79 -95
  78. package/dialog/Dialog.stories.tsx +319 -0
  79. package/dialog/Dialog.test.js +369 -0
  80. package/dialog/types.d.ts +1 -0
  81. package/dropdown/Dropdown.d.ts +1 -1
  82. package/dropdown/Dropdown.js +248 -277
  83. package/dropdown/Dropdown.stories.tsx +438 -0
  84. package/dropdown/Dropdown.test.js +586 -0
  85. package/dropdown/DropdownMenu.d.ts +4 -0
  86. package/dropdown/DropdownMenu.js +74 -0
  87. package/dropdown/DropdownMenuItem.d.ts +4 -0
  88. package/dropdown/DropdownMenuItem.js +79 -0
  89. package/dropdown/types.d.ts +28 -17
  90. package/file-input/FileInput.d.ts +4 -0
  91. package/file-input/FileInput.js +183 -168
  92. package/file-input/FileInput.stories.tsx +618 -0
  93. package/file-input/FileInput.test.js +457 -0
  94. package/file-input/FileItem.d.ts +4 -0
  95. package/file-input/FileItem.js +50 -81
  96. package/file-input/types.d.ts +129 -0
  97. package/file-input/types.js +5 -0
  98. package/flex/Flex.d.ts +4 -0
  99. package/flex/Flex.js +71 -0
  100. package/flex/Flex.stories.tsx +112 -0
  101. package/flex/types.d.ts +97 -0
  102. package/flex/types.js +5 -0
  103. package/footer/Footer.d.ts +1 -1
  104. package/footer/Footer.js +34 -117
  105. package/footer/Footer.stories.tsx +228 -0
  106. package/footer/Footer.test.js +97 -0
  107. package/footer/Icons.d.ts +2 -0
  108. package/footer/Icons.js +4 -4
  109. package/footer/types.d.ts +23 -18
  110. package/grid/Grid.d.ts +7 -0
  111. package/grid/Grid.js +91 -0
  112. package/grid/Grid.stories.tsx +219 -0
  113. package/grid/types.d.ts +115 -0
  114. package/grid/types.js +5 -0
  115. package/header/Header.d.ts +3 -2
  116. package/header/Header.js +110 -131
  117. package/header/Header.stories.tsx +315 -0
  118. package/header/Header.test.js +79 -0
  119. package/header/Icons.d.ts +2 -0
  120. package/header/Icons.js +2 -2
  121. package/header/types.d.ts +5 -2
  122. package/heading/Heading.d.ts +4 -0
  123. package/heading/Heading.js +8 -25
  124. package/heading/Heading.stories.tsx +54 -0
  125. package/heading/Heading.test.js +186 -0
  126. package/heading/types.d.ts +33 -0
  127. package/heading/types.js +5 -0
  128. package/inset/Inset.d.ts +3 -0
  129. package/inset/Inset.js +51 -0
  130. package/inset/Inset.stories.tsx +230 -0
  131. package/inset/types.d.ts +37 -0
  132. package/inset/types.js +5 -0
  133. package/layout/ApplicationLayout.d.ts +20 -0
  134. package/layout/ApplicationLayout.js +72 -136
  135. package/layout/ApplicationLayout.stories.tsx +162 -0
  136. package/layout/Icons.d.ts +5 -0
  137. package/layout/Icons.js +13 -2
  138. package/layout/SidenavContext.d.ts +5 -0
  139. package/layout/SidenavContext.js +19 -0
  140. package/layout/types.d.ts +41 -0
  141. package/layout/types.js +5 -0
  142. package/link/Link.d.ts +3 -2
  143. package/link/Link.js +64 -89
  144. package/link/Link.stories.tsx +253 -0
  145. package/link/Link.test.js +81 -0
  146. package/link/types.d.ts +7 -27
  147. package/main.d.ts +13 -12
  148. package/main.js +68 -54
  149. package/nav-tabs/NavTabs.d.ts +8 -0
  150. package/nav-tabs/NavTabs.js +125 -0
  151. package/nav-tabs/NavTabs.stories.tsx +260 -0
  152. package/nav-tabs/NavTabs.test.js +82 -0
  153. package/nav-tabs/Tab.d.ts +4 -0
  154. package/nav-tabs/Tab.js +150 -0
  155. package/nav-tabs/types.d.ts +53 -0
  156. package/nav-tabs/types.js +5 -0
  157. package/number-input/NumberInput.d.ts +4 -0
  158. package/number-input/NumberInput.js +16 -68
  159. package/number-input/{NumberInput.stories.jsx → NumberInput.stories.tsx} +5 -5
  160. package/number-input/NumberInput.test.js +542 -0
  161. package/number-input/NumberInputContext.d.ts +4 -0
  162. package/number-input/NumberInputContext.js +5 -2
  163. package/number-input/numberInputContextTypes.d.ts +19 -0
  164. package/number-input/numberInputContextTypes.js +5 -0
  165. package/number-input/types.d.ts +124 -0
  166. package/number-input/types.js +5 -0
  167. package/package.json +22 -23
  168. package/paginator/Icons.d.ts +5 -0
  169. package/paginator/Icons.js +16 -28
  170. package/paginator/Paginator.js +21 -56
  171. package/paginator/Paginator.stories.tsx +24 -0
  172. package/paginator/Paginator.test.js +305 -0
  173. package/paragraph/Paragraph.d.ts +5 -0
  174. package/paragraph/Paragraph.js +38 -0
  175. package/paragraph/Paragraph.stories.tsx +44 -0
  176. package/password-input/PasswordInput.js +23 -19
  177. package/password-input/PasswordInput.stories.tsx +3 -3
  178. package/password-input/PasswordInput.test.js +181 -0
  179. package/password-input/types.d.ts +29 -19
  180. package/progress-bar/ProgressBar.js +63 -57
  181. package/progress-bar/ProgressBar.stories.jsx +47 -12
  182. package/progress-bar/ProgressBar.test.js +110 -0
  183. package/quick-nav/QuickNav.d.ts +4 -0
  184. package/quick-nav/QuickNav.js +117 -0
  185. package/quick-nav/QuickNav.stories.tsx +356 -0
  186. package/quick-nav/types.d.ts +21 -0
  187. package/quick-nav/types.js +5 -0
  188. package/radio-group/Radio.d.ts +4 -0
  189. package/radio-group/Radio.js +156 -0
  190. package/radio-group/RadioGroup.d.ts +4 -0
  191. package/radio-group/RadioGroup.js +283 -0
  192. package/radio-group/RadioGroup.stories.tsx +214 -0
  193. package/radio-group/RadioGroup.test.js +722 -0
  194. package/radio-group/types.d.ts +114 -0
  195. package/radio-group/types.js +5 -0
  196. package/resultsetTable/Icons.d.ts +7 -0
  197. package/resultsetTable/Icons.js +51 -0
  198. package/resultsetTable/ResultsetTable.d.ts +4 -0
  199. package/resultsetTable/ResultsetTable.js +54 -133
  200. package/resultsetTable/ResultsetTable.stories.tsx +300 -0
  201. package/resultsetTable/ResultsetTable.test.js +325 -0
  202. package/resultsetTable/types.d.ts +67 -0
  203. package/resultsetTable/types.js +5 -0
  204. package/select/Icons.d.ts +10 -0
  205. package/select/Icons.js +93 -0
  206. package/select/Listbox.d.ts +4 -0
  207. package/select/Listbox.js +169 -0
  208. package/select/Option.d.ts +4 -0
  209. package/select/Option.js +97 -0
  210. package/select/Select.d.ts +4 -0
  211. package/select/Select.js +202 -401
  212. package/select/Select.stories.tsx +971 -0
  213. package/select/Select.test.js +2228 -0
  214. package/select/types.d.ts +210 -0
  215. package/select/types.js +5 -0
  216. package/sidenav/Icons.d.ts +7 -0
  217. package/sidenav/Icons.js +51 -0
  218. package/sidenav/Sidenav.d.ts +10 -0
  219. package/sidenav/Sidenav.js +147 -54
  220. package/sidenav/Sidenav.stories.tsx +282 -0
  221. package/sidenav/Sidenav.test.js +44 -0
  222. package/sidenav/types.d.ts +76 -0
  223. package/sidenav/types.js +5 -0
  224. package/slider/Slider.d.ts +2 -2
  225. package/slider/Slider.js +150 -114
  226. package/slider/Slider.stories.tsx +240 -0
  227. package/slider/Slider.test.js +250 -0
  228. package/slider/types.d.ts +10 -7
  229. package/spinner/Spinner.js +20 -26
  230. package/spinner/Spinner.stories.jsx +53 -26
  231. package/spinner/Spinner.test.js +64 -0
  232. package/switch/Switch.d.ts +2 -2
  233. package/switch/Switch.js +153 -70
  234. package/switch/Switch.stories.tsx +54 -43
  235. package/switch/Switch.test.js +225 -0
  236. package/switch/types.d.ts +10 -2
  237. package/table/Table.js +6 -6
  238. package/table/Table.stories.jsx +81 -1
  239. package/table/Table.test.js +26 -0
  240. package/tabs/Tab.d.ts +4 -0
  241. package/tabs/Tab.js +132 -0
  242. package/tabs/Tabs.d.ts +1 -1
  243. package/tabs/Tabs.js +362 -112
  244. package/tabs/Tabs.stories.tsx +226 -0
  245. package/tabs/Tabs.test.js +350 -0
  246. package/tabs/types.d.ts +39 -18
  247. package/tag/Tag.d.ts +1 -1
  248. package/tag/Tag.js +25 -37
  249. package/tag/Tag.stories.tsx +38 -28
  250. package/tag/Tag.test.js +60 -0
  251. package/tag/types.d.ts +23 -14
  252. package/text-input/Icons.d.ts +8 -0
  253. package/text-input/Icons.js +60 -0
  254. package/text-input/Suggestion.d.ts +4 -0
  255. package/text-input/Suggestion.js +84 -0
  256. package/text-input/Suggestions.d.ts +4 -0
  257. package/text-input/Suggestions.js +134 -0
  258. package/text-input/TextInput.d.ts +4 -0
  259. package/text-input/TextInput.js +235 -387
  260. package/text-input/TextInput.stories.tsx +569 -0
  261. package/text-input/TextInput.test.js +1723 -0
  262. package/text-input/types.d.ts +197 -0
  263. package/text-input/types.js +5 -0
  264. package/textarea/Textarea.d.ts +4 -0
  265. package/textarea/Textarea.js +41 -82
  266. package/textarea/Textarea.stories.jsx +96 -15
  267. package/textarea/Textarea.test.js +435 -0
  268. package/textarea/types.d.ts +137 -0
  269. package/textarea/types.js +5 -0
  270. package/toggle-group/ToggleGroup.d.ts +4 -0
  271. package/toggle-group/ToggleGroup.js +24 -49
  272. package/toggle-group/ToggleGroup.stories.tsx +215 -0
  273. package/toggle-group/ToggleGroup.test.js +156 -0
  274. package/toggle-group/types.d.ts +105 -0
  275. package/toggle-group/types.js +5 -0
  276. package/typography/Typography.d.ts +4 -0
  277. package/typography/Typography.js +32 -0
  278. package/typography/Typography.stories.tsx +198 -0
  279. package/typography/types.d.ts +18 -0
  280. package/typography/types.js +5 -0
  281. package/useTheme.d.ts +1235 -0
  282. package/useTheme.js +3 -3
  283. package/useTranslatedLabels.d.ts +85 -0
  284. package/useTranslatedLabels.js +20 -0
  285. package/utils/BaseTypography.d.ts +21 -0
  286. package/utils/BaseTypography.js +108 -0
  287. package/utils/FocusLock.d.ts +13 -0
  288. package/utils/FocusLock.js +139 -0
  289. package/wizard/Wizard.d.ts +4 -0
  290. package/wizard/Wizard.js +119 -105
  291. package/wizard/Wizard.stories.tsx +253 -0
  292. package/wizard/Wizard.test.js +141 -0
  293. package/wizard/types.d.ts +64 -0
  294. package/wizard/types.js +5 -0
  295. package/ThemeContext.js +0 -246
  296. package/V3Select/V3Select.js +0 -455
  297. package/V3Select/index.d.ts +0 -27
  298. package/V3Textarea/V3Textarea.js +0 -260
  299. package/V3Textarea/index.d.ts +0 -27
  300. package/chip/index.d.ts +0 -22
  301. package/common/RequiredComponent.js +0 -32
  302. package/date/Date.js +0 -373
  303. package/date/index.d.ts +0 -27
  304. package/file-input/index.d.ts +0 -81
  305. package/footer/Footer.stories.jsx +0 -151
  306. package/heading/index.d.ts +0 -17
  307. package/input-text/Icons.js +0 -22
  308. package/input-text/InputText.js +0 -611
  309. package/input-text/index.d.ts +0 -36
  310. package/number-input/index.d.ts +0 -113
  311. package/radio/Radio.d.ts +0 -4
  312. package/radio/Radio.js +0 -174
  313. package/radio/Radio.stories.tsx +0 -192
  314. package/radio/types.d.ts +0 -54
  315. package/resultsetTable/index.d.ts +0 -19
  316. package/select/index.d.ts +0 -131
  317. package/sidenav/index.d.ts +0 -13
  318. package/text-input/index.d.ts +0 -135
  319. package/textarea/index.d.ts +0 -117
  320. package/toggle/Toggle.js +0 -186
  321. package/toggle/index.d.ts +0 -21
  322. package/toggle-group/index.d.ts +0 -21
  323. package/upload/Upload.js +0 -201
  324. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  325. package/upload/buttons-upload/Icons.js +0 -40
  326. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  327. package/upload/dragAndDropArea/Icons.js +0 -39
  328. package/upload/file-upload/FileToUpload.js +0 -115
  329. package/upload/file-upload/Icons.js +0 -66
  330. package/upload/files-upload/FilesToUpload.js +0 -109
  331. package/upload/index.d.ts +0 -15
  332. package/upload/transaction/Icons.js +0 -160
  333. package/upload/transaction/Transaction.js +0 -104
  334. package/upload/transactions/Transactions.js +0 -94
  335. package/wizard/Icons.js +0 -65
  336. package/wizard/index.d.ts +0 -18
  337. /package/{radio → badge}/types.js +0 -0
package/footer/Footer.js CHANGED
@@ -9,25 +9,25 @@ Object.defineProperty(exports, "__esModule", {
9
9
  });
10
10
  exports["default"] = void 0;
11
11
 
12
- var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
13
-
14
12
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
15
13
 
16
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
14
+ var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
17
15
 
18
16
  var _react = _interopRequireWildcard(require("react"));
19
17
 
20
18
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
21
19
 
22
- var _variables = require("../common/variables.js");
20
+ var _variables = require("../common/variables");
21
+
22
+ var _useTheme = _interopRequireDefault(require("../useTheme"));
23
23
 
24
- var _useTheme = _interopRequireDefault(require("../useTheme.js"));
24
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
25
25
 
26
- var _BackgroundColorContext = require("../BackgroundColorContext.js");
26
+ var _BackgroundColorContext = require("../BackgroundColorContext");
27
27
 
28
- var _Icons = _interopRequireDefault(require("./Icons"));
28
+ var _Icons = require("./Icons");
29
29
 
30
- 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;
31
31
 
32
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); }
33
33
 
@@ -36,83 +36,37 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
36
36
  var DxcFooter = function DxcFooter(_ref) {
37
37
  var socialLinks = _ref.socialLinks,
38
38
  bottomLinks = _ref.bottomLinks,
39
- _ref$copyright = _ref.copyright,
40
- copyright = _ref$copyright === void 0 ? "" : _ref$copyright,
39
+ copyright = _ref.copyright,
41
40
  children = _ref.children,
42
41
  padding = _ref.padding,
43
42
  margin = _ref.margin,
44
43
  _ref$tabIndex = _ref.tabIndex,
45
44
  tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
46
- var ref = (0, _react.useRef)(null);
47
-
48
- var _useState = (0, _react.useState)(),
49
- _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
50
- refSize = _useState2[0],
51
- setRefSize = _useState2[1];
52
-
53
- var _useState3 = (0, _react.useState)(false),
54
- _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
55
- isResponsiveTablet = _useState4[0],
56
- setIsResponsiveTablet = _useState4[1];
57
-
58
- var _useState5 = (0, _react.useState)(false),
59
- _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
60
- isResponsivePhone = _useState6[0],
61
- setIsResponsivePhone = _useState6[1];
62
-
63
45
  var colorsTheme = (0, _useTheme["default"])();
46
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
64
47
  var footerLogo = (0, _react.useMemo)(function () {
65
48
  if (!colorsTheme.footer.logo) {
66
- return _Icons["default"];
49
+ return _Icons.dxcLogo;
67
50
  }
68
51
 
69
52
  if (typeof colorsTheme.footer.logo === "string") {
70
53
  return /*#__PURE__*/_react["default"].createElement(LogoImg, {
71
- alt: "Logo",
54
+ alt: translatedLabels.formFields.logoAlternativeText,
72
55
  src: colorsTheme.footer.logo
73
56
  });
74
57
  }
75
58
 
76
59
  return colorsTheme.footer.logo;
77
60
  }, [colorsTheme.footer.logo]);
78
-
79
- var handleResize = function handleResize(refWidth) {
80
- if (ref.current) {
81
- setRefSize(refWidth);
82
-
83
- if (refWidth <= _variables.responsiveSizes.tablet && refWidth > _variables.responsiveSizes.mobileLarge) {
84
- setIsResponsiveTablet(true);
85
- setIsResponsivePhone(false);
86
- } else if (refWidth <= _variables.responsiveSizes.tablet && refWidth <= _variables.responsiveSizes.mobileLarge) {
87
- setIsResponsivePhone(true);
88
- setIsResponsiveTablet(false);
89
- } else {
90
- setIsResponsiveTablet(false);
91
- setIsResponsivePhone(false);
92
- }
93
- }
94
- };
95
-
96
- var handleEventListener = function handleEventListener() {
97
- handleResize(ref.current.offsetWidth);
98
- };
99
-
100
- (0, _react.useEffect)(function () {
101
- window.addEventListener("resize", handleEventListener);
102
- handleResize(ref.current.offsetWidth);
103
- return function () {
104
- window.removeEventListener("resize", handleEventListener);
105
- };
106
- }, []);
107
61
  var socialLink = socialLinks === null || socialLinks === void 0 ? void 0 : socialLinks.map(function (link, index) {
108
62
  return /*#__PURE__*/_react["default"].createElement(SocialAnchor, {
109
63
  tabIndex: tabIndex,
110
64
  key: "social".concat(index).concat(link.href),
111
65
  index: index,
112
66
  href: link && link.href ? link.href : ""
113
- }, 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, {
114
- src: link.logoSrc
115
- }));
67
+ }, /*#__PURE__*/_react["default"].createElement(SocialIconContainer, null, typeof link.logo === "string" ? /*#__PURE__*/_react["default"].createElement(SocialIconImg, {
68
+ src: link.logo
69
+ }) : link.logo));
116
70
  });
117
71
  var bottomLink = bottomLinks === null || bottomLinks === void 0 ? void 0 : bottomLinks.map(function (link, index) {
118
72
  return /*#__PURE__*/_react["default"].createElement("span", {
@@ -120,39 +74,22 @@ var DxcFooter = function DxcFooter(_ref) {
120
74
  }, /*#__PURE__*/_react["default"].createElement(BottomLink, {
121
75
  tabIndex: tabIndex,
122
76
  href: link && link.href ? link.href : ""
123
- }, link && link.text ? link.text : ""), /*#__PURE__*/_react["default"].createElement(Point, {
124
- index: index
125
- }, "\xB7"));
77
+ }, link && link.text ? link.text : ""), /*#__PURE__*/_react["default"].createElement(Point, null, "\xB7"));
126
78
  });
127
79
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
128
80
  theme: colorsTheme.footer
129
81
  }, /*#__PURE__*/_react["default"].createElement(FooterContainer, {
130
- margin: margin,
131
- refSize: refSize,
132
- ref: ref
133
- }, /*#__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, {
134
- className: "footerFooter",
135
- refSize: refSize
136
- }, /*#__PURE__*/_react["default"].createElement(BottomLinks, {
137
- refSize: refSize
138
- }, bottomLink), /*#__PURE__*/_react["default"].createElement(Copyright, {
139
- refSize: refSize
140
- }, copyright))), (!isResponsiveTablet && !isResponsivePhone || isResponsiveTablet) && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(ChildComponents, {
82
+ margin: margin
83
+ }, /*#__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, {
141
84
  padding: padding
142
85
  }, /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
143
86
  color: colorsTheme.footer.backgroundColor
144
87
  }, children)), /*#__PURE__*/_react["default"].createElement(FooterFooter, {
145
88
  className: "footerFooter"
146
- }, /*#__PURE__*/_react["default"].createElement(BottomLinks, {
147
- refSize: refSize
148
- }, bottomLink), /*#__PURE__*/_react["default"].createElement(Copyright, {
149
- refSize: refSize
150
- }, copyright)))));
89
+ }, /*#__PURE__*/_react["default"].createElement(BottomLinks, null, bottomLink), /*#__PURE__*/_react["default"].createElement(Copyright, null, copyright || translatedLabels.footer.copyrightText(new Date().getFullYear()))))));
151
90
  };
152
91
 
153
- 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) {
154
- return props.refSize <= _variables.responsiveSizes.mobileLarge ? "20px 20px 20px 20px" : "24px 36px 24px 36px";
155
- }, function (props) {
92
+ 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 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) {
156
93
  return props.theme.backgroundColor;
157
94
  }, function (props) {
158
95
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
@@ -160,27 +97,17 @@ var FooterContainer = _styledComponents["default"].footer(_templateObject || (_t
160
97
  return props.theme.height;
161
98
  });
162
99
 
163
- var FooterHeader = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n"])));
100
+ 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"])));
164
101
 
165
- 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) {
166
- return props.refSize <= _variables.responsiveSizes.mobileLarge ? "column" : "row";
167
- }, function (props) {
168
- return props.refSize <= _variables.responsiveSizes.mobileLarge ? "center" : "";
169
- }, function (props) {
102
+ 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 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) {
170
103
  return "".concat(props.theme.bottomLinksDividerThickness, " ").concat(props.theme.bottomLinksDividerStyle, " ").concat(props.theme.bottomLinksDividerColor);
171
104
  });
172
105
 
173
- 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) {
106
+ 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 max-width: 100%;\n width: 100%;\n }\n\n & > span:last-child span {\n display: none;\n }\n align-self: center;\n"])), function (props) {
174
107
  return props.theme.bottomLinksDividerSpacing;
175
- }, function (props) {
176
- return props.refSize <= _variables.responsiveSizes.mobileLarge ? "100%" : "60%";
177
- }, function (props) {
178
- return props.refSize <= _variables.responsiveSizes.mobileLarge ? "100%" : "";
179
- }, function (props) {
180
- return props.refSize <= _variables.responsiveSizes.mobileLarge ? "40px 0 40px 0" : "";
181
- });
108
+ }, _variables.responsiveSizes.small, _variables.responsiveSizes.small);
182
109
 
183
- 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) {
110
+ 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) {
184
111
  return props.padding && (0, _typeof2["default"])(props.padding) !== "object" ? _variables.spaces[props.padding] : "0px";
185
112
  }, function (props) {
186
113
  return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.top ? _variables.spaces[props.padding.top] : "";
@@ -192,7 +119,7 @@ var ChildComponents = _styledComponents["default"].div(_templateObject5 || (_tem
192
119
  return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.left ? _variables.spaces[props.padding.left] : "";
193
120
  });
194
121
 
195
- 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) {
122
+ 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 max-width: 100%;\n width: 100%;\n text-align: left;\n }\n\n padding-top: ", ";\n"])), function (props) {
196
123
  return props.theme.copyrightFontFamily;
197
124
  }, function (props) {
198
125
  return props.theme.copyrightFontSize;
@@ -202,13 +129,7 @@ var Copyright = _styledComponents["default"].div(_templateObject6 || (_templateO
202
129
  return props.theme.copyrightFontWeight;
203
130
  }, function (props) {
204
131
  return props.theme.copyrightFontColor;
205
- }, function (props) {
206
- return props.refSize <= _variables.responsiveSizes.mobileLarge ? "100%" : "40%";
207
- }, function (props) {
208
- return props.refSize <= _variables.responsiveSizes.mobileLarge ? "100%" : "";
209
- }, function (props) {
210
- return props.refSize <= _variables.responsiveSizes.mobileLarge ? "center" : "right";
211
- }, function (props) {
132
+ }, _variables.responsiveSizes.small, _variables.responsiveSizes.small, function (props) {
212
133
  return props.theme.bottomLinksDividerSpacing;
213
134
  });
214
135
 
@@ -224,19 +145,15 @@ var LogoImg = _styledComponents["default"].img(_templateObject8 || (_templateObj
224
145
  return props.theme.logoWidth;
225
146
  });
226
147
 
227
- var SocialAnchor = _styledComponents["default"].a(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n & {\n display: inline-flex;\n margin-left: ", ";\n }\n"])), function (props) {
148
+ var SocialLinkContainer = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-self: center;\n"])));
149
+
150
+ var SocialAnchor = _styledComponents["default"].a(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n & {\n display: inline-flex;\n margin-left: ", ";\n }\n"])), function (props) {
228
151
  return props.index === 0 ? "0px" : props.theme.socialLinksGutter;
229
152
  });
230
153
 
231
- 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) {
232
- return props.theme.socialLinksSize;
233
- }, function (props) {
234
- return props.theme.socialLinksSize;
235
- }, function (props) {
236
- return props.theme.socialLinksColor;
237
- });
154
+ var SocialIconImg = _styledComponents["default"].img(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])([""])));
238
155
 
239
- 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) {
156
+ 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) {
240
157
  return props.theme.socialLinksSize;
241
158
  }, function (props) {
242
159
  return props.theme.socialLinksSize;
@@ -244,11 +161,11 @@ var SocialIconContainer = _styledComponents["default"].div(_templateObject11 ||
244
161
  return props.theme.socialLinksColor;
245
162
  });
246
163
 
247
- var Point = _styledComponents["default"].span(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n margin: 0px 10px;\n color: ", ";\n"])), function (props) {
164
+ var Point = _styledComponents["default"].span(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2["default"])(["\n margin: 0px 10px;\n color: ", ";\n"])), function (props) {
248
165
  return props.theme.bottomLinksFontColor;
249
166
  });
250
167
 
251
- 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) {
168
+ 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) {
252
169
  return props.theme.bottomLinksTextDecoration;
253
170
  }, function (props) {
254
171
  return props.theme.bottomLinksFontColor;
@@ -0,0 +1,228 @@
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
+ import { HalstackProvider } from "../HalstackContext";
6
+
7
+ const social = [
8
+ {
9
+ href: "https://www.linkedin.com/company/dxctechnology",
10
+ logo: (
11
+ <svg version="1.1" id="Capa_1" x="0px" y="0px" viewBox="0 0 438.536 438.536" fill="currentColor">
12
+ <g>
13
+ <path
14
+ 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
15
+ 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
16
+ h274.084c22.648,0,42.018-8.042,58.095-24.126c16.084-16.084,24.126-35.454,24.126-58.102V82.225
17
+ C438.532,59.576,430.49,40.204,414.41,24.123z M133.618,367.157H67.666V169.016h65.952V367.157z M127.626,132.332
18
+ 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
19
+ 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
20
+ 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
21
+ 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
22
+ 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
23
+ 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
24
+ H370.873z"
25
+ />
26
+ </g>
27
+ </svg>
28
+ ),
29
+ },
30
+ {
31
+ href: "https://twitter.com/dxctechnology",
32
+ logo: (
33
+ <svg viewBox="0 0 248 204" fill="currentColor">
34
+ <path
35
+ fill="#1d9bf0"
36
+ 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"
37
+ />
38
+ </svg>
39
+ ),
40
+ },
41
+ {
42
+ href: "https://www.facebook.com/DXCTechnology/",
43
+ logo: (
44
+ <svg
45
+ version="1.1"
46
+ id="Capa_1"
47
+ x="0px"
48
+ y="0px"
49
+ viewBox="0 0 438.536 438.536"
50
+ fill="currentColor"
51
+ width="1000px"
52
+ height="500px"
53
+ >
54
+ <g>
55
+ <path
56
+ 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
57
+ 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
58
+ h274.084c22.648,0,42.018-8.042,58.095-24.126c16.084-16.084,24.126-35.454,24.126-58.102V82.225
59
+ 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
60
+ 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
61
+ 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"
62
+ />
63
+ </g>
64
+ </svg>
65
+ ),
66
+ },
67
+ ];
68
+
69
+ const bottom = [
70
+ {
71
+ href: "https://www.linkedin.com/company/dxctechnology",
72
+ text: "Linkedin",
73
+ },
74
+ {
75
+ href: "https://twitter.com/dxctechnology",
76
+ text: "Twitter",
77
+ },
78
+ {
79
+ href: "https://www.facebook.com/DXCTechnology/",
80
+ text: "Facebook",
81
+ },
82
+ ];
83
+
84
+ export default {
85
+ title: "Footer",
86
+ component: DxcFooter,
87
+ };
88
+
89
+ const opinionatedTheme = {
90
+ footer: {
91
+ baseColor: "#000000",
92
+ fontColor: "#ffffff",
93
+ accentColor: "#0095ff",
94
+ logo: (
95
+ <svg id="g10" xmlns="http://www.w3.org/2000/svg" width="280.781" height="32" viewBox="0 0 280.781 32">
96
+ <g id="g12">
97
+ <path
98
+ id="path14"
99
+ d="M171.5-54.124v12.539h-3.6V-54.124h-4.973v-3.191h13.54v3.191H171.5"
100
+ transform="translate(-68.528 65.45)"
101
+ fill="#fff"
102
+ />
103
+ <path
104
+ id="path16"
105
+ d="M189.96-41.585V-57.315h12.326v3.079h-8.753v3.191h7.7v3.078h-7.7v3.3h8.87v3.078H189.96"
106
+ transform="translate(-77.56 65.45)"
107
+ fill="#fff"
108
+ />
109
+ <path
110
+ id="path18"
111
+ d="M223.558-41.438a8.1,8.1,0,0,1-8.382-8.1v-.045a8.161,8.161,0,0,1,8.522-8.146,8.6,8.6,0,0,1,6.444,2.431l-2.289,2.543a6.133,6.133,0,0,0-4.178-1.778,4.743,4.743,0,0,0-4.738,4.905v.045a4.752,4.752,0,0,0,4.738,4.95,6,6,0,0,0,4.295-1.845l2.288,2.228a8.491,8.491,0,0,1-6.7,2.813"
112
+ transform="translate(-86.019 65.583)"
113
+ fill="#fff"
114
+ />
115
+ <path
116
+ id="path20"
117
+ d="M254.988-41.585V-47.9h-6.63v6.315h-3.6V-57.315h3.6v6.225h6.63v-6.225h3.594v15.731h-3.594"
118
+ transform="translate(-95.903 65.45)"
119
+ fill="#fff"
120
+ />
121
+ <path
122
+ id="path22"
123
+ d="M285.991-41.585l-7.914-10v10h-3.549V-57.315h3.316l7.657,9.685v-9.685h3.549v15.731h-3.058"
124
+ transform="translate(-105.869 65.45)"
125
+ fill="#fff"
126
+ />
127
+ <path
128
+ id="path24"
129
+ d="M317.2-49.583a4.869,4.869,0,0,0-4.949-4.95,4.793,4.793,0,0,0-4.9,4.905v.045a4.869,4.869,0,0,0,4.949,4.95,4.793,4.793,0,0,0,4.9-4.905Zm-4.949,8.145c-5.043,0-8.661-3.623-8.661-8.1v-.045c0-4.478,3.666-8.146,8.708-8.146s8.66,3.623,8.66,8.1v.045c0,4.477-3.664,8.145-8.708,8.145"
130
+ transform="translate(-115.631 65.583)"
131
+ fill="#fff"
132
+ />
133
+ <path
134
+ id="path26"
135
+ d="M336.786-41.585V-57.315h3.6v12.584h8.148v3.146H336.786"
136
+ transform="translate(-126.654 65.45)"
137
+ fill="#fff"
138
+ />
139
+ <path
140
+ id="path28"
141
+ d="M372.78-49.583a4.87,4.87,0,0,0-4.949-4.95,4.794,4.794,0,0,0-4.9,4.905v.045a4.869,4.869,0,0,0,4.949,4.95,4.794,4.794,0,0,0,4.9-4.905Zm-4.949,8.145c-5.043,0-8.662-3.623-8.662-8.1v-.045c0-4.478,3.666-8.146,8.708-8.146s8.661,3.623,8.661,8.1v.045c0,4.477-3.666,8.145-8.708,8.145"
142
+ transform="translate(-135.016 65.583)"
143
+ fill="#fff"
144
+ />
145
+ <path
146
+ id="path30"
147
+ d="M399.735-41.438c-5.09,0-8.592-3.443-8.592-8.1v-.045a8.243,8.243,0,0,1,8.568-8.146,9.18,9.18,0,0,1,6.42,2.16l-2.265,2.634a6.141,6.141,0,0,0-4.272-1.6,4.807,4.807,0,0,0-4.692,4.905v.045a4.8,4.8,0,0,0,4.949,4.995,5.89,5.89,0,0,0,3.384-.945v-2.25h-3.618v-2.992h7.1v6.841a10.837,10.837,0,0,1-6.98,2.5"
148
+ transform="translate(-145.284 65.583)"
149
+ fill="#fff"
150
+ />
151
+ <path
152
+ id="path32"
153
+ d="M428.664-47.855v6.27h-3.6v-6.2l-6.28-9.528h4.2L426.89-51l3.968-6.315h4.085l-6.28,9.46"
154
+ transform="translate(-154.162 65.45)"
155
+ fill="#fff"
156
+ />
157
+ <path
158
+ id="path34"
159
+ d="M84.218-55.737a10.063,10.063,0,0,1,2.589-4.4,9.792,9.792,0,0,1,6.985-2.77h11.328V-69.3H93.792a17.041,17.041,0,0,0-11.8,4.759,16.344,16.344,0,0,0-3.547,5.115,13.247,13.247,0,0,0-1.122,3.688Zm0,4.877a10.065,10.065,0,0,0,2.589,4.4,9.793,9.793,0,0,0,6.985,2.77h11.328V-37.3H93.792a17.042,17.042,0,0,1-11.8-4.759,16.339,16.339,0,0,1-3.547-5.114,13.251,13.251,0,0,1-1.122-3.688ZM63.1-47.98,54.45-37.3H45.873l12.957-16-12.957-16H54.45L63.1-58.619l8.65-10.68h8.578l-12.957,16,12.957,16H71.749ZM48.875-55.737a13.212,13.212,0,0,0-1.122-3.688,16.359,16.359,0,0,0-3.546-5.115,17.043,17.043,0,0,0-11.8-4.759H21.08v6.393H32.408a9.79,9.79,0,0,1,6.985,2.77,10.072,10.072,0,0,1,2.59,4.4Zm0,4.877a13.215,13.215,0,0,1-1.122,3.688,16.353,16.353,0,0,1-3.546,5.114,17.044,17.044,0,0,1-11.8,4.759H21.08v-6.393H32.408a9.791,9.791,0,0,0,6.985-2.77,10.074,10.074,0,0,0,2.59-4.4h6.892"
160
+ transform="translate(-21.08 69.298)"
161
+ fill="#fff"
162
+ />
163
+ </g>
164
+ </svg>
165
+ ),
166
+ },
167
+ };
168
+
169
+ export const Chromatic = () => (
170
+ <>
171
+ <ExampleContainer>
172
+ <Title title="Default" theme="light" level={4} />
173
+ <DxcFooter />
174
+ </ExampleContainer>
175
+ <ExampleContainer>
176
+ <Title title="With children, copyright, bottom links and social links" theme="light" level={4} />
177
+ <DxcFooter copyright="Copyright" socialLinks={social} bottomLinks={bottom}>
178
+ <div>
179
+ <a href="https://www.linkedin.com/company/dxctechnology">Linkedin</a>
180
+ </div>
181
+ </DxcFooter>
182
+ </ExampleContainer>
183
+ <Title title="Margins" theme="light" level={2} />
184
+ <ExampleContainer>
185
+ <Title title="Xxsmall margin" theme="light" level={4} />
186
+ <DxcFooter margin="xxsmall"></DxcFooter>
187
+ <Title title="Xsmall margin" theme="light" level={4} />
188
+ <DxcFooter margin="xsmall"></DxcFooter>
189
+ <Title title="Small margin" theme="light" level={4} />
190
+ <DxcFooter margin="small"></DxcFooter>
191
+ <Title title="Medium margin" theme="light" level={4} />
192
+ <DxcFooter margin="medium"></DxcFooter>
193
+ <Title title="Large margin" theme="light" level={4} />
194
+ <DxcFooter margin="large"></DxcFooter>
195
+ <Title title="Xlarge margin" theme="light" level={4} />
196
+ <DxcFooter margin="xlarge"></DxcFooter>
197
+ <Title title="Xxlarge margin" theme="light" level={4} />
198
+ <DxcFooter margin="xxlarge"></DxcFooter>
199
+ </ExampleContainer>
200
+ <Title title="Padding" theme="light" level={2} />
201
+ <ExampleContainer>
202
+ <Title title="Xxsmall padding" theme="light" level={4} />
203
+ <DxcFooter padding="xxsmall"></DxcFooter>
204
+ <Title title="Xsmall padding" theme="light" level={4} />
205
+ <DxcFooter padding="xsmall"></DxcFooter>
206
+ <Title title="Small padding" theme="light" level={4} />
207
+ <DxcFooter padding="small"></DxcFooter>
208
+ <Title title="Medium padding" theme="light" level={4} />
209
+ <DxcFooter padding="medium"></DxcFooter>
210
+ <Title title="Large padding" theme="light" level={4} />
211
+ <DxcFooter padding="large"></DxcFooter>
212
+ <Title title="Xlarge padding" theme="light" level={4} />
213
+ <DxcFooter padding="xlarge"></DxcFooter>
214
+ <Title title="Xxlarge padding" theme="light" level={4} />
215
+ <DxcFooter padding="xxlarge"></DxcFooter>
216
+ </ExampleContainer>
217
+ <Title title="Opinionated theme" theme="light" level={2} />
218
+ <ExampleContainer>
219
+ <HalstackProvider theme={opinionatedTheme}>
220
+ <DxcFooter copyright="Copyright" socialLinks={social} bottomLinks={bottom}>
221
+ <div>
222
+ <a href="https://www.linkedin.com/company/dxctechnology">Linkedin</a>
223
+ </div>
224
+ </DxcFooter>
225
+ </HalstackProvider>
226
+ </ExampleContainer>
227
+ </>
228
+ );
@@ -0,0 +1,97 @@
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 _Footer = _interopRequireDefault(require("./Footer.tsx"));
10
+
11
+ var social = [{
12
+ href: "https://www.test.com/social",
13
+ logo: "https://developer.apple.com/design/human-interface-guidelines/foundations/app-icons/images/icon-and-image-large-icon-settings_2x.png"
14
+ }];
15
+ var bottom = [{
16
+ href: "https://www.test.com/bottom",
17
+ text: "bottom-link-text"
18
+ }];
19
+ describe("Footer component tests", function () {
20
+ test("Footer renders with default logo", function () {
21
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], null)),
22
+ getByTitle = _render.getByTitle;
23
+
24
+ expect(getByTitle("DXC Logo")).toBeTruthy();
25
+ });
26
+ test("Footer renders with social links", function () {
27
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
28
+ socialLinks: social
29
+ })),
30
+ getByRole = _render2.getByRole;
31
+
32
+ var socialIcon = getByRole("link");
33
+ expect(socialIcon.getAttribute("href")).toBe("https://www.test.com/social");
34
+ });
35
+ test("Footer renders with bottom links", function () {
36
+ var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
37
+ bottomLinks: bottom
38
+ })),
39
+ getByText = _render3.getByText;
40
+
41
+ var link = getByText("bottom-link-text");
42
+ expect(link.getAttribute("href")).toBe("https://www.test.com/bottom");
43
+ });
44
+ test("Footer renders with copyright text", function () {
45
+ var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
46
+ copyright: "test-copyright"
47
+ })),
48
+ getByText = _render4.getByText;
49
+
50
+ expect(getByText("test-copyright")).toBeTruthy();
51
+ });
52
+ test("Footer renders with correct children", function () {
53
+ // We need to force the offsetWidth value
54
+ Object.defineProperty(HTMLElement.prototype, "offsetWidth", {
55
+ configurable: true,
56
+ value: 1024
57
+ });
58
+
59
+ var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], null, /*#__PURE__*/_react["default"].createElement("p", null, "footer-child-text"))),
60
+ getByText = _render5.getByText;
61
+
62
+ expect(getByText("footer-child-text")).toBeTruthy();
63
+ });
64
+ test("Footer renders with children in mobile", function () {
65
+ // 425 is mobile width
66
+ Object.defineProperty(HTMLElement.prototype, "offsetWidth", {
67
+ configurable: true,
68
+ value: 425
69
+ });
70
+
71
+ var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], null, /*#__PURE__*/_react["default"].createElement("p", null, "footer-child-text"))),
72
+ queryByText = _render6.queryByText;
73
+
74
+ expect(queryByText("footer-child-text")).toBeTruthy();
75
+ });
76
+ test("Footer is fully rendered", function () {
77
+ Object.defineProperty(HTMLElement.prototype, "offsetWidth", {
78
+ configurable: true,
79
+ value: 1024
80
+ });
81
+
82
+ var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
83
+ socialLinks: social,
84
+ bottomLinks: bottom,
85
+ copyright: "test-copyright"
86
+ }, /*#__PURE__*/_react["default"].createElement("p", null, "footer-child-text"))),
87
+ getAllByRole = _render7.getAllByRole,
88
+ getByText = _render7.getByText;
89
+
90
+ var socialIcon = getAllByRole("link")[0];
91
+ expect(socialIcon.getAttribute("href")).toBe("https://www.test.com/social");
92
+ var bottomLink = getByText("bottom-link-text");
93
+ expect(bottomLink.getAttribute("href")).toBe("https://www.test.com/bottom");
94
+ expect(getByText("test-copyright")).toBeTruthy();
95
+ expect(getByText("footer-child-text")).toBeTruthy();
96
+ });
97
+ });
@@ -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;