@dxc-technology/halstack-react 0.0.0-9b45027 → 0.0.0-9c20370

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 (308) hide show
  1. package/BackgroundColorContext.d.ts +2 -2
  2. package/BackgroundColorContext.js +1 -1
  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 +110 -146
  7. package/accordion/Accordion.stories.tsx +108 -118
  8. package/accordion/Accordion.test.js +71 -0
  9. package/accordion/types.d.ts +7 -18
  10. package/accordion-group/AccordionGroup.d.ts +5 -4
  11. package/accordion-group/AccordionGroup.js +34 -76
  12. package/accordion-group/AccordionGroup.stories.tsx +94 -67
  13. package/accordion-group/AccordionGroup.test.js +116 -0
  14. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  15. package/accordion-group/AccordionGroupAccordion.js +43 -0
  16. package/accordion-group/types.d.ts +13 -18
  17. package/alert/Alert.js +9 -10
  18. package/alert/Alert.stories.tsx +28 -0
  19. package/alert/Alert.test.js +92 -0
  20. package/badge/Badge.d.ts +4 -0
  21. package/badge/Badge.js +5 -3
  22. package/badge/types.d.ts +5 -0
  23. package/bleed/Bleed.d.ts +2 -2
  24. package/bleed/Bleed.js +1 -34
  25. package/bleed/Bleed.stories.tsx +95 -95
  26. package/bleed/types.d.ts +25 -1
  27. package/box/Box.d.ts +1 -1
  28. package/box/Box.js +19 -48
  29. package/box/Box.stories.tsx +38 -51
  30. package/box/Box.test.js +18 -0
  31. package/box/types.d.ts +0 -11
  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 +38 -0
  36. package/bulleted-list/types.js +5 -0
  37. package/button/Button.d.ts +1 -1
  38. package/button/Button.js +44 -71
  39. package/button/Button.stories.tsx +159 -8
  40. package/button/Button.test.js +46 -0
  41. package/button/types.d.ts +9 -5
  42. package/card/Card.d.ts +1 -1
  43. package/card/Card.js +37 -58
  44. package/card/Card.stories.tsx +12 -42
  45. package/card/Card.test.js +50 -0
  46. package/card/types.d.ts +1 -6
  47. package/checkbox/Checkbox.d.ts +2 -2
  48. package/checkbox/Checkbox.js +107 -110
  49. package/checkbox/Checkbox.stories.tsx +198 -130
  50. package/checkbox/Checkbox.test.js +155 -0
  51. package/checkbox/types.d.ts +11 -3
  52. package/chip/Chip.d.ts +1 -1
  53. package/chip/Chip.js +36 -95
  54. package/chip/Chip.stories.tsx +123 -30
  55. package/chip/Chip.test.js +54 -0
  56. package/chip/types.d.ts +5 -13
  57. package/common/OpenSans.css +68 -80
  58. package/common/coreTokens.d.ts +146 -0
  59. package/common/coreTokens.js +167 -0
  60. package/common/utils.d.ts +1 -0
  61. package/common/utils.js +4 -4
  62. package/common/variables.d.ts +1482 -0
  63. package/common/variables.js +1097 -1348
  64. package/date-input/Calendar.d.ts +4 -0
  65. package/date-input/Calendar.js +258 -0
  66. package/date-input/DateInput.js +169 -258
  67. package/date-input/DateInput.stories.tsx +199 -33
  68. package/date-input/DateInput.test.js +835 -0
  69. package/date-input/DatePicker.d.ts +4 -0
  70. package/date-input/DatePicker.js +146 -0
  71. package/date-input/Icons.d.ts +6 -0
  72. package/date-input/Icons.js +75 -0
  73. package/date-input/YearPicker.d.ts +4 -0
  74. package/date-input/YearPicker.js +126 -0
  75. package/date-input/types.d.ts +67 -9
  76. package/dialog/Dialog.d.ts +1 -1
  77. package/dialog/Dialog.js +68 -103
  78. package/dialog/Dialog.stories.tsx +154 -171
  79. package/dialog/Dialog.test.js +369 -0
  80. package/dialog/types.d.ts +0 -12
  81. package/dropdown/Dropdown.d.ts +1 -1
  82. package/dropdown/Dropdown.js +248 -277
  83. package/dropdown/Dropdown.stories.tsx +255 -64
  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 +27 -16
  90. package/file-input/FileInput.d.ts +2 -2
  91. package/file-input/FileInput.js +180 -223
  92. package/file-input/FileInput.stories.tsx +122 -11
  93. package/file-input/FileInput.test.js +457 -0
  94. package/file-input/FileItem.d.ts +4 -14
  95. package/file-input/FileItem.js +44 -66
  96. package/file-input/types.d.ts +18 -1
  97. package/flex/Flex.d.ts +4 -0
  98. package/flex/Flex.js +71 -0
  99. package/flex/Flex.stories.tsx +112 -0
  100. package/flex/types.d.ts +97 -0
  101. package/flex/types.js +5 -0
  102. package/footer/Footer.d.ts +1 -1
  103. package/footer/Footer.js +49 -144
  104. package/footer/Footer.stories.tsx +37 -16
  105. package/footer/Footer.test.js +99 -0
  106. package/footer/Icons.js +1 -1
  107. package/footer/types.d.ts +11 -12
  108. package/grid/Grid.d.ts +7 -0
  109. package/grid/Grid.js +91 -0
  110. package/grid/Grid.stories.tsx +219 -0
  111. package/grid/types.d.ts +115 -0
  112. package/grid/types.js +5 -0
  113. package/header/Header.d.ts +4 -3
  114. package/header/Header.js +102 -150
  115. package/header/Header.stories.tsx +152 -63
  116. package/header/Header.test.js +79 -0
  117. package/header/Icons.js +2 -2
  118. package/header/types.d.ts +0 -13
  119. package/heading/Heading.js +1 -1
  120. package/heading/Heading.test.js +186 -0
  121. package/inset/Inset.js +1 -34
  122. package/inset/Inset.stories.tsx +37 -36
  123. package/inset/types.d.ts +25 -1
  124. package/layout/ApplicationLayout.d.ts +16 -6
  125. package/layout/ApplicationLayout.js +78 -129
  126. package/layout/ApplicationLayout.stories.tsx +84 -93
  127. package/layout/Icons.d.ts +5 -0
  128. package/layout/Icons.js +13 -2
  129. package/layout/SidenavContext.d.ts +5 -0
  130. package/layout/SidenavContext.js +19 -0
  131. package/layout/types.d.ts +19 -35
  132. package/link/Link.d.ts +3 -2
  133. package/link/Link.js +63 -88
  134. package/link/Link.stories.tsx +159 -52
  135. package/link/Link.test.js +81 -0
  136. package/link/types.d.ts +7 -27
  137. package/main.d.ts +12 -15
  138. package/main.js +57 -75
  139. package/nav-tabs/NavTabs.d.ts +8 -0
  140. package/nav-tabs/NavTabs.js +122 -0
  141. package/nav-tabs/NavTabs.stories.tsx +274 -0
  142. package/nav-tabs/NavTabs.test.js +82 -0
  143. package/nav-tabs/Tab.d.ts +4 -0
  144. package/nav-tabs/Tab.js +146 -0
  145. package/nav-tabs/types.d.ts +52 -0
  146. package/nav-tabs/types.js +5 -0
  147. package/number-input/NumberInput.js +11 -18
  148. package/number-input/NumberInput.stories.tsx +5 -5
  149. package/number-input/NumberInput.test.js +542 -0
  150. package/number-input/types.d.ts +17 -10
  151. package/package.json +20 -23
  152. package/paginator/Icons.d.ts +5 -0
  153. package/paginator/Icons.js +16 -28
  154. package/paginator/Paginator.js +20 -49
  155. package/paginator/Paginator.stories.tsx +24 -0
  156. package/paginator/Paginator.test.js +318 -0
  157. package/paragraph/Paragraph.d.ts +5 -0
  158. package/paragraph/Paragraph.js +38 -0
  159. package/paragraph/Paragraph.stories.tsx +44 -0
  160. package/password-input/PasswordInput.js +7 -4
  161. package/password-input/PasswordInput.test.js +181 -0
  162. package/password-input/types.d.ts +14 -11
  163. package/progress-bar/ProgressBar.js +61 -55
  164. package/progress-bar/ProgressBar.stories.jsx +47 -12
  165. package/progress-bar/ProgressBar.test.js +110 -0
  166. package/quick-nav/QuickNav.d.ts +4 -0
  167. package/quick-nav/QuickNav.js +117 -0
  168. package/quick-nav/QuickNav.stories.tsx +356 -0
  169. package/quick-nav/types.d.ts +21 -0
  170. package/quick-nav/types.js +5 -0
  171. package/radio-group/Radio.d.ts +1 -1
  172. package/radio-group/Radio.js +60 -34
  173. package/radio-group/RadioGroup.js +81 -68
  174. package/radio-group/RadioGroup.stories.tsx +171 -36
  175. package/radio-group/RadioGroup.test.js +722 -0
  176. package/radio-group/types.d.ts +81 -3
  177. package/resultsetTable/Icons.d.ts +7 -0
  178. package/resultsetTable/Icons.js +51 -0
  179. package/resultsetTable/ResultsetTable.js +50 -106
  180. package/resultsetTable/ResultsetTable.stories.tsx +50 -25
  181. package/resultsetTable/ResultsetTable.test.js +325 -0
  182. package/resultsetTable/types.d.ts +1 -1
  183. package/select/Icons.d.ts +10 -0
  184. package/select/Icons.js +93 -0
  185. package/select/Listbox.d.ts +4 -0
  186. package/select/Listbox.js +169 -0
  187. package/select/Option.d.ts +4 -0
  188. package/select/Option.js +97 -0
  189. package/select/Select.js +189 -386
  190. package/select/Select.stories.tsx +600 -201
  191. package/select/Select.test.js +2228 -0
  192. package/select/types.d.ts +53 -13
  193. package/sidenav/Icons.d.ts +7 -0
  194. package/sidenav/Icons.js +51 -0
  195. package/sidenav/Sidenav.d.ts +6 -5
  196. package/sidenav/Sidenav.js +146 -44
  197. package/sidenav/Sidenav.stories.tsx +251 -151
  198. package/sidenav/Sidenav.test.js +44 -0
  199. package/sidenav/types.d.ts +52 -26
  200. package/slider/Slider.d.ts +2 -2
  201. package/slider/Slider.js +123 -98
  202. package/slider/Slider.stories.tsx +72 -9
  203. package/slider/Slider.test.js +250 -0
  204. package/slider/types.d.ts +8 -0
  205. package/spinner/Spinner.js +18 -24
  206. package/spinner/Spinner.stories.jsx +53 -27
  207. package/spinner/Spinner.test.js +64 -0
  208. package/switch/Switch.d.ts +2 -2
  209. package/switch/Switch.js +152 -69
  210. package/switch/Switch.stories.tsx +53 -42
  211. package/switch/Switch.test.js +225 -0
  212. package/switch/types.d.ts +10 -2
  213. package/table/Table.js +3 -3
  214. package/table/Table.stories.jsx +80 -1
  215. package/table/Table.test.js +26 -0
  216. package/tabs/Tab.d.ts +4 -0
  217. package/tabs/Tab.js +132 -0
  218. package/tabs/Tabs.d.ts +1 -1
  219. package/tabs/Tabs.js +360 -112
  220. package/tabs/Tabs.stories.tsx +119 -13
  221. package/tabs/Tabs.test.js +350 -0
  222. package/tabs/types.d.ts +17 -3
  223. package/tag/Tag.d.ts +1 -1
  224. package/tag/Tag.js +24 -36
  225. package/tag/Tag.stories.tsx +37 -27
  226. package/tag/Tag.test.js +60 -0
  227. package/tag/types.d.ts +23 -14
  228. package/text-input/Icons.d.ts +8 -0
  229. package/text-input/Icons.js +60 -0
  230. package/text-input/Suggestion.d.ts +4 -0
  231. package/text-input/Suggestion.js +84 -0
  232. package/text-input/Suggestions.d.ts +4 -0
  233. package/text-input/Suggestions.js +134 -0
  234. package/text-input/TextInput.js +225 -346
  235. package/text-input/TextInput.stories.tsx +310 -197
  236. package/text-input/TextInput.test.js +1723 -0
  237. package/text-input/types.d.ts +50 -12
  238. package/textarea/Textarea.js +22 -30
  239. package/textarea/Textarea.stories.jsx +93 -13
  240. package/textarea/Textarea.test.js +435 -0
  241. package/textarea/types.d.ts +18 -11
  242. package/toggle-group/ToggleGroup.d.ts +2 -2
  243. package/toggle-group/ToggleGroup.js +12 -8
  244. package/toggle-group/ToggleGroup.stories.tsx +46 -4
  245. package/toggle-group/ToggleGroup.test.js +156 -0
  246. package/toggle-group/types.d.ts +10 -2
  247. package/typography/Typography.d.ts +4 -0
  248. package/typography/Typography.js +32 -0
  249. package/typography/Typography.stories.tsx +198 -0
  250. package/typography/types.d.ts +18 -0
  251. package/typography/types.js +5 -0
  252. package/useTheme.d.ts +1234 -1
  253. package/useTheme.js +3 -3
  254. package/useTranslatedLabels.d.ts +85 -0
  255. package/useTranslatedLabels.js +20 -0
  256. package/utils/BaseTypography.d.ts +21 -0
  257. package/utils/BaseTypography.js +108 -0
  258. package/utils/FocusLock.d.ts +13 -0
  259. package/utils/FocusLock.js +138 -0
  260. package/wizard/Wizard.d.ts +1 -1
  261. package/wizard/Wizard.js +59 -55
  262. package/wizard/Wizard.stories.tsx +48 -19
  263. package/wizard/Wizard.test.js +141 -0
  264. package/wizard/types.d.ts +8 -4
  265. package/ThemeContext.d.ts +0 -15
  266. package/ThemeContext.js +0 -243
  267. package/V3Select/V3Select.js +0 -455
  268. package/V3Select/index.d.ts +0 -27
  269. package/V3Textarea/V3Textarea.js +0 -260
  270. package/V3Textarea/index.d.ts +0 -27
  271. package/card/ice-cream.jpg +0 -0
  272. package/common/RequiredComponent.js +0 -32
  273. package/date/Date.js +0 -373
  274. package/date/index.d.ts +0 -27
  275. package/input-text/Icons.js +0 -22
  276. package/input-text/InputText.js +0 -611
  277. package/input-text/index.d.ts +0 -36
  278. package/list/List.d.ts +0 -8
  279. package/list/List.js +0 -47
  280. package/list/List.stories.tsx +0 -95
  281. package/radio/Radio.d.ts +0 -4
  282. package/radio/Radio.js +0 -174
  283. package/radio/Radio.stories.tsx +0 -192
  284. package/radio/types.d.ts +0 -54
  285. package/row/Row.d.ts +0 -11
  286. package/row/Row.js +0 -127
  287. package/row/Row.stories.tsx +0 -239
  288. package/stack/Stack.d.ts +0 -10
  289. package/stack/Stack.js +0 -97
  290. package/stack/Stack.stories.tsx +0 -166
  291. package/text/Text.d.ts +0 -7
  292. package/text/Text.js +0 -30
  293. package/text/Text.stories.tsx +0 -19
  294. package/toggle/Toggle.js +0 -186
  295. package/toggle/index.d.ts +0 -21
  296. package/upload/Upload.js +0 -201
  297. package/upload/buttons-upload/ButtonsUpload.js +0 -111
  298. package/upload/buttons-upload/Icons.js +0 -40
  299. package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
  300. package/upload/dragAndDropArea/Icons.js +0 -39
  301. package/upload/file-upload/FileToUpload.js +0 -115
  302. package/upload/file-upload/Icons.js +0 -66
  303. package/upload/files-upload/FilesToUpload.js +0 -109
  304. package/upload/index.d.ts +0 -15
  305. package/upload/transaction/Icons.js +0 -160
  306. package/upload/transaction/Transaction.js +0 -104
  307. package/upload/transactions/Transactions.js +0 -94
  308. /package/{radio → badge}/types.js +0 -0
package/footer/Footer.js CHANGED
@@ -13,21 +13,23 @@ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
13
 
14
14
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
15
 
16
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
-
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");
23
21
 
24
22
  var _useTheme = _interopRequireDefault(require("../useTheme"));
25
23
 
24
+ var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
25
+
26
26
  var _BackgroundColorContext = require("../BackgroundColorContext");
27
27
 
28
28
  var _Icons = require("./Icons");
29
29
 
30
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13;
30
+ var _Flex = _interopRequireDefault(require("../flex/Flex"));
31
+
32
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
31
33
 
32
34
  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
35
 
@@ -36,31 +38,13 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
36
38
  var DxcFooter = function DxcFooter(_ref) {
37
39
  var socialLinks = _ref.socialLinks,
38
40
  bottomLinks = _ref.bottomLinks,
39
- _ref$copyright = _ref.copyright,
40
- copyright = _ref$copyright === void 0 ? "\xA9 DXC Technology ".concat(new Date().getFullYear(), ". All rights reserved.") : _ref$copyright,
41
+ copyright = _ref.copyright,
41
42
  children = _ref.children,
42
- padding = _ref.padding,
43
43
  margin = _ref.margin,
44
44
  _ref$tabIndex = _ref.tabIndex,
45
45
  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
46
  var colorsTheme = (0, _useTheme["default"])();
47
+ var translatedLabels = (0, _useTranslatedLabels["default"])();
64
48
  var footerLogo = (0, _react.useMemo)(function () {
65
49
  if (!colorsTheme.footer.logo) {
66
50
  return _Icons.dxcLogo;
@@ -68,131 +52,62 @@ var DxcFooter = function DxcFooter(_ref) {
68
52
 
69
53
  if (typeof colorsTheme.footer.logo === "string") {
70
54
  return /*#__PURE__*/_react["default"].createElement(LogoImg, {
71
- alt: "Logo",
55
+ alt: translatedLabels.formFields.logoAlternativeText,
72
56
  src: colorsTheme.footer.logo
73
57
  });
74
58
  }
75
59
 
76
60
  return colorsTheme.footer.logo;
77
- }, [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
- var socialLink = socialLinks === null || socialLinks === void 0 ? void 0 : socialLinks.map(function (link, index) {
61
+ }, [colorsTheme]);
62
+ return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
63
+ theme: colorsTheme.footer
64
+ }, /*#__PURE__*/_react["default"].createElement(FooterContainer, {
65
+ margin: margin
66
+ }, /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
67
+ justifyContent: "space-between",
68
+ alignItems: "center",
69
+ wrap: "wrap",
70
+ gap: "1.5rem"
71
+ }, /*#__PURE__*/_react["default"].createElement(LogoContainer, null, footerLogo), /*#__PURE__*/_react["default"].createElement(_Flex["default"], null, socialLinks === null || socialLinks === void 0 ? void 0 : socialLinks.map(function (link, index) {
108
72
  return /*#__PURE__*/_react["default"].createElement(SocialAnchor, {
73
+ href: link.href,
109
74
  tabIndex: tabIndex,
75
+ title: link.title,
76
+ "aria-label": link.title,
110
77
  key: "social".concat(index).concat(link.href),
111
- index: index,
112
- href: link && link.href ? link.href : ""
113
- }, /*#__PURE__*/_react["default"].createElement(SocialIconContainer, null, typeof link.logo === "string" ? /*#__PURE__*/_react["default"].createElement(SocialIconImg, {
78
+ index: index
79
+ }, /*#__PURE__*/_react["default"].createElement(SocialIconContainer, null, typeof link.logo === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
114
80
  src: link.logo
115
81
  }) : link.logo));
116
- });
117
- var bottomLink = bottomLinks === null || bottomLinks === void 0 ? void 0 : bottomLinks.map(function (link, index) {
82
+ }))), /*#__PURE__*/_react["default"].createElement(ChildComponents, null, /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
83
+ color: colorsTheme.footer.backgroundColor
84
+ }, children)), /*#__PURE__*/_react["default"].createElement(BottomContainer, null, /*#__PURE__*/_react["default"].createElement(BottomLinks, null, bottomLinks === null || bottomLinks === void 0 ? void 0 : bottomLinks.map(function (link, index) {
118
85
  return /*#__PURE__*/_react["default"].createElement("span", {
119
86
  key: "bottom".concat(index).concat(link.text)
120
87
  }, /*#__PURE__*/_react["default"].createElement(BottomLink, {
121
- tabIndex: tabIndex,
122
- href: link && link.href ? link.href : ""
123
- }, link && link.text ? link.text : ""), /*#__PURE__*/_react["default"].createElement(Point, {
124
- index: index
125
- }, "\xB7"));
126
- });
127
- return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
128
- theme: colorsTheme.footer
129
- }, /*#__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, {
141
- padding: padding
142
- }, /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
143
- color: colorsTheme.footer.backgroundColor
144
- }, children)), /*#__PURE__*/_react["default"].createElement(FooterFooter, {
145
- className: "footerFooter"
146
- }, /*#__PURE__*/_react["default"].createElement(BottomLinks, {
147
- refSize: refSize
148
- }, bottomLink), /*#__PURE__*/_react["default"].createElement(Copyright, {
149
- refSize: refSize
150
- }, copyright)))));
88
+ href: link.href,
89
+ tabIndex: tabIndex
90
+ }, link.text));
91
+ })), /*#__PURE__*/_react["default"].createElement(Copyright, null, copyright || translatedLabels.footer.copyrightText(new Date().getFullYear())))));
151
92
  };
152
93
 
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) {
156
- return props.theme.backgroundColor;
94
+ var FooterContainer = _styledComponents["default"].footer(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n width: 100%;\n min-height: ", ";\n margin-top: ", ";\n background-color: ", ";\n\n @media (min-width: ", "rem) {\n padding: 24px 36px 24px 36px;\n }\n @media (max-width: ", "rem) {\n padding: 20px;\n }\n"])), function (props) {
95
+ return props.theme.height;
157
96
  }, function (props) {
158
97
  return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
159
98
  }, function (props) {
160
- return props.theme.height;
161
- });
162
-
163
- var FooterHeader = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n"])));
99
+ return props.theme.backgroundColor;
100
+ }, _variables.responsiveSizes.small, _variables.responsiveSizes.small);
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 BottomContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (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 @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) {
174
- 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
- });
106
+ var ChildComponents = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n min-height: 16px;\n overflow: hidden;\n"])));
182
107
 
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) {
184
- return props.padding && (0, _typeof2["default"])(props.padding) !== "object" ? _variables.spaces[props.padding] : "0px";
185
- }, function (props) {
186
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.top ? _variables.spaces[props.padding.top] : "";
187
- }, function (props) {
188
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.right ? _variables.spaces[props.padding.right] : "";
189
- }, function (props) {
190
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.bottom ? _variables.spaces[props.padding.bottom] : "";
108
+ var Copyright = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n padding-top: ", ";\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"])), function (props) {
109
+ return props.theme.bottomLinksDividerSpacing;
191
110
  }, function (props) {
192
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.left ? _variables.spaces[props.padding.left] : "";
193
- });
194
-
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) {
196
111
  return props.theme.copyrightFontFamily;
197
112
  }, function (props) {
198
113
  return props.theme.copyrightFontSize;
@@ -202,35 +117,25 @@ var Copyright = _styledComponents["default"].div(_templateObject6 || (_templateO
202
117
  return props.theme.copyrightFontWeight;
203
118
  }, function (props) {
204
119
  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) {
212
- return props.theme.bottomLinksDividerSpacing;
213
- });
120
+ }, _variables.responsiveSizes.small, _variables.responsiveSizes.small);
214
121
 
215
- var LogoContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n"])), function (props) {
122
+ var LogoContainer = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n"])), function (props) {
216
123
  return props.theme.logoHeight;
217
124
  }, function (props) {
218
125
  return props.theme.logoWidth;
219
126
  });
220
127
 
221
- var LogoImg = _styledComponents["default"].img(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n"])), function (props) {
128
+ var LogoImg = _styledComponents["default"].img(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n"])), function (props) {
222
129
  return props.theme.logoHeight;
223
130
  }, function (props) {
224
131
  return props.theme.logoWidth;
225
132
  });
226
133
 
227
- var SocialAnchor = _styledComponents["default"].a(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n & {\n display: inline-flex;\n margin-left: ", ";\n }\n"])), function (props) {
134
+ var SocialAnchor = _styledComponents["default"].a(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n margin-left: ", ";\n border-radius: 4px;\n\n &:focus {\n outline: 2px solid #0095ff;\n outline-offset: 2px;\n }\n"])), function (props) {
228
135
  return props.index === 0 ? "0px" : props.theme.socialLinksGutter;
229
136
  });
230
137
 
231
- var SocialIconImg = _styledComponents["default"].img(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])([""])));
232
-
233
- 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 img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
138
+ var SocialIconContainer = _styledComponents["default"].div(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n height: ", ";\n width: ", ";\n color: ", ";\n overflow: hidden;\n\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
234
139
  return props.theme.socialLinksSize;
235
140
  }, function (props) {
236
141
  return props.theme.socialLinksSize;
@@ -238,11 +143,11 @@ var SocialIconContainer = _styledComponents["default"].div(_templateObject11 ||
238
143
  return props.theme.socialLinksColor;
239
144
  });
240
145
 
241
- var Point = _styledComponents["default"].span(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n margin: 0px 10px;\n color: ", ";\n"])), function (props) {
242
- return props.theme.bottomLinksFontColor;
243
- });
146
+ var BottomLinks = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n flex-wrap: wrap;\n align-self: center;\n padding-top: ", ";\n color: #fff;\n\n @media (min-width: ", "rem) {\n max-width: 60%;\n }\n @media (max-width: ", "rem) {\n max-width: 100%;\n width: 100%;\n }\n\n & > span:not(:first-child):before {\n content: \"\xB7\";\n padding: 0 0.5rem;\n }\n"])), function (props) {
147
+ return props.theme.bottomLinksDividerSpacing;
148
+ }, _variables.responsiveSizes.small, _variables.responsiveSizes.small);
244
149
 
245
- 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) {
150
+ var BottomLink = _styledComponents["default"].a(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n text-decoration: ", ";\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n border-radius: 2px;\n\n &:focus {\n outline: 2px solid #0095ff;\n }\n"])), function (props) {
246
151
  return props.theme.bottomLinksTextDecoration;
247
152
  }, function (props) {
248
153
  return props.theme.bottomLinksFontColor;
@@ -2,6 +2,7 @@ import React from "react";
2
2
  import DxcFooter from "./Footer";
3
3
  import Title from "../../.storybook/components/Title";
4
4
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
5
+ import { HalstackProvider } from "../HalstackContext";
5
6
 
6
7
  const social = [
7
8
  {
@@ -25,10 +26,19 @@ const social = [
25
26
  </g>
26
27
  </svg>
27
28
  ),
29
+ title: "Linkedin",
28
30
  },
29
31
  {
30
32
  href: "https://twitter.com/dxctechnology",
31
- logo: "http://assets.stickpng.com/images/580b57fcd9996e24bc43c53e.png",
33
+ logo: (
34
+ <svg viewBox="0 0 248 204" fill="currentColor">
35
+ <path
36
+ fill="#1d9bf0"
37
+ 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"
38
+ />
39
+ </svg>
40
+ ),
41
+ title: "Twitter",
32
42
  },
33
43
  {
34
44
  href: "https://www.facebook.com/DXCTechnology/",
@@ -55,6 +65,7 @@ const social = [
55
65
  </g>
56
66
  </svg>
57
67
  ),
68
+ title: "Facebook",
58
69
  },
59
70
  ];
60
71
 
@@ -78,6 +89,15 @@ export default {
78
89
  component: DxcFooter,
79
90
  };
80
91
 
92
+ const opinionatedTheme = {
93
+ footer: {
94
+ baseColor: "#000000",
95
+ fontColor: "#ffffff",
96
+ accentColor: "#0095ff",
97
+ logo: "https://upload.wikimedia.org/wikipedia/commons/thumb/b/b8/2021_Facebook_icon.svg/2048px-2021_Facebook_icon.svg.png",
98
+ },
99
+ };
100
+
81
101
  export const Chromatic = () => (
82
102
  <>
83
103
  <ExampleContainer>
@@ -92,6 +112,14 @@ export const Chromatic = () => (
92
112
  </div>
93
113
  </DxcFooter>
94
114
  </ExampleContainer>
115
+ <ExampleContainer pseudoState="pseudo-focus">
116
+ <Title title="Focused bottom and social links" theme="light" level={4} />
117
+ <DxcFooter copyright="Copyright" socialLinks={social} bottomLinks={bottom}>
118
+ <div>
119
+ <a href="https://www.linkedin.com/company/dxctechnology">Linkedin</a>
120
+ </div>
121
+ </DxcFooter>
122
+ </ExampleContainer>
95
123
  <Title title="Margins" theme="light" level={2} />
96
124
  <ExampleContainer>
97
125
  <Title title="Xxsmall margin" theme="light" level={4} />
@@ -109,22 +137,15 @@ export const Chromatic = () => (
109
137
  <Title title="Xxlarge margin" theme="light" level={4} />
110
138
  <DxcFooter margin="xxlarge"></DxcFooter>
111
139
  </ExampleContainer>
112
- <Title title="Padding" theme="light" level={2} />
140
+ <Title title="Opinionated theme" theme="light" level={2} />
113
141
  <ExampleContainer>
114
- <Title title="Xxsmall padding" theme="light" level={4} />
115
- <DxcFooter padding="xxsmall"></DxcFooter>
116
- <Title title="Xsmall padding" theme="light" level={4} />
117
- <DxcFooter padding="xsmall"></DxcFooter>
118
- <Title title="Small padding" theme="light" level={4} />
119
- <DxcFooter padding="small"></DxcFooter>
120
- <Title title="Medium padding" theme="light" level={4} />
121
- <DxcFooter padding="medium"></DxcFooter>
122
- <Title title="Large padding" theme="light" level={4} />
123
- <DxcFooter padding="large"></DxcFooter>
124
- <Title title="Xlarge padding" theme="light" level={4} />
125
- <DxcFooter padding="xlarge"></DxcFooter>
126
- <Title title="Xxlarge padding" theme="light" level={4} />
127
- <DxcFooter padding="xxlarge"></DxcFooter>
142
+ <HalstackProvider theme={opinionatedTheme}>
143
+ <DxcFooter copyright="Copyright" socialLinks={social} bottomLinks={bottom}>
144
+ <div>
145
+ <a href="https://www.linkedin.com/company/dxctechnology">Linkedin</a>
146
+ </div>
147
+ </DxcFooter>
148
+ </HalstackProvider>
128
149
  </ExampleContainer>
129
150
  </>
130
151
  );
@@ -0,0 +1,99 @@
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
+ title: "test"
15
+ }];
16
+ var bottom = [{
17
+ href: "https://www.test.com/bottom",
18
+ text: "bottom-link-text"
19
+ }];
20
+ describe("Footer component tests", function () {
21
+ test("Footer renders with default logo", function () {
22
+ var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], null)),
23
+ getByTitle = _render.getByTitle;
24
+
25
+ expect(getByTitle("DXC Logo")).toBeTruthy();
26
+ });
27
+ test("Footer renders with social links", function () {
28
+ var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
29
+ socialLinks: social
30
+ })),
31
+ getByRole = _render2.getByRole;
32
+
33
+ var socialIcon = getByRole("link");
34
+ expect(socialIcon.getAttribute("href")).toBe("https://www.test.com/social");
35
+ });
36
+ test("Footer renders with bottom links", function () {
37
+ var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
38
+ bottomLinks: bottom
39
+ })),
40
+ getByText = _render3.getByText;
41
+
42
+ var link = getByText("bottom-link-text");
43
+ expect(link.getAttribute("href")).toBe("https://www.test.com/bottom");
44
+ });
45
+ test("Footer renders with copyright text", function () {
46
+ var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
47
+ copyright: "test-copyright"
48
+ })),
49
+ getByText = _render4.getByText;
50
+
51
+ expect(getByText("test-copyright")).toBeTruthy();
52
+ });
53
+ test("Footer renders with correct children", function () {
54
+ // We need to force the offsetWidth value
55
+ Object.defineProperty(HTMLElement.prototype, "offsetWidth", {
56
+ configurable: true,
57
+ value: 1024
58
+ });
59
+
60
+ var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], null, /*#__PURE__*/_react["default"].createElement("p", null, "footer-child-text"))),
61
+ getByText = _render5.getByText;
62
+
63
+ expect(getByText("footer-child-text")).toBeTruthy();
64
+ });
65
+ test("Footer renders with children in mobile", function () {
66
+ // 425 is mobile width
67
+ Object.defineProperty(HTMLElement.prototype, "offsetWidth", {
68
+ configurable: true,
69
+ value: 425
70
+ });
71
+
72
+ var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], null, /*#__PURE__*/_react["default"].createElement("p", null, "footer-child-text"))),
73
+ queryByText = _render6.queryByText;
74
+
75
+ expect(queryByText("footer-child-text")).toBeTruthy();
76
+ });
77
+ test("Footer is fully rendered", function () {
78
+ Object.defineProperty(HTMLElement.prototype, "offsetWidth", {
79
+ configurable: true,
80
+ value: 1024
81
+ });
82
+
83
+ var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
84
+ socialLinks: social,
85
+ bottomLinks: bottom,
86
+ copyright: "test-copyright"
87
+ }, /*#__PURE__*/_react["default"].createElement("p", null, "footer-child-text"))),
88
+ getAllByRole = _render7.getAllByRole,
89
+ getByText = _render7.getByText;
90
+
91
+ var socialIcon = getAllByRole("link")[0];
92
+ expect(socialIcon.getAttribute("href")).toBe("https://www.test.com/social");
93
+ expect(socialIcon.getAttribute("aria-label")).toBe("test");
94
+ var bottomLink = getByText("bottom-link-text");
95
+ expect(bottomLink.getAttribute("href")).toBe("https://www.test.com/bottom");
96
+ expect(getByText("test-copyright")).toBeTruthy();
97
+ expect(getByText("footer-child-text")).toBeTruthy();
98
+ });
99
+ });
package/footer/Icons.js CHANGED
@@ -12,7 +12,7 @@ var _react = _interopRequireDefault(require("react"));
12
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", {
package/footer/types.d.ts CHANGED
@@ -6,26 +6,30 @@ declare type Size = {
6
6
  left?: Space;
7
7
  right?: Space;
8
8
  };
9
- declare type SVG = React.SVGProps<SVGSVGElement>;
9
+ declare type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
10
10
  declare type SocialLink = {
11
+ /**
12
+ * URL of the page the link goes to.
13
+ */
14
+ href: string;
11
15
  /**
12
16
  * Element used as the icon for the link.
13
17
  */
14
18
  logo: string | SVG;
15
19
  /**
16
- * URL of the page the link goes to.
20
+ * Value for the HTML properties title and aria-label.
17
21
  */
18
- href: string;
22
+ title: string;
19
23
  };
20
24
  declare type BottomLink = {
21
- /**
22
- * Text for the link.
23
- */
24
- text: string;
25
25
  /**
26
26
  * URL of the page the link goes to.
27
27
  */
28
28
  href: string;
29
+ /**
30
+ * Text for the link.
31
+ */
32
+ text: string;
29
33
  };
30
34
  declare type FooterPropsType = {
31
35
  /**
@@ -56,10 +60,5 @@ declare type FooterPropsType = {
56
60
  * Size of the top margin to be applied to the footer.
57
61
  */
58
62
  margin?: Space | Size;
59
- /**
60
- * Size of the padding to be applied to the custom area of the component.
61
- * You can pass an object with properties in order to specify different padding sizes.
62
- */
63
- padding?: Space | Size;
64
63
  };
65
64
  export default FooterPropsType;
package/grid/Grid.d.ts ADDED
@@ -0,0 +1,7 @@
1
+ /// <reference types="react" />
2
+ import GridPropsType, { GridItemProps } from "./types";
3
+ declare const DxcGrid: {
4
+ (props: GridPropsType): JSX.Element;
5
+ Item: import("styled-components").StyledComponent<"div", any, GridItemProps, never>;
6
+ };
7
+ export default DxcGrid;