@dxc-technology/halstack-react 0.0.0-3a698b0 → 0.0.0-3ac400c

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 (248) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +4 -21
  3. package/HalstackContext.d.ts +25 -129
  4. package/HalstackContext.js +10 -35
  5. package/README.md +47 -0
  6. package/accordion/Accordion.d.ts +1 -1
  7. package/accordion/Accordion.js +24 -76
  8. package/accordion/Accordion.stories.tsx +1 -113
  9. package/accordion/Accordion.test.js +18 -33
  10. package/accordion/types.d.ts +5 -17
  11. package/accordion-group/AccordionGroup.d.ts +4 -3
  12. package/accordion-group/AccordionGroup.js +27 -75
  13. package/accordion-group/AccordionGroup.stories.tsx +78 -77
  14. package/accordion-group/AccordionGroup.test.js +43 -71
  15. package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
  16. package/accordion-group/AccordionGroupAccordion.js +31 -0
  17. package/accordion-group/types.d.ts +6 -18
  18. package/alert/Alert.js +16 -53
  19. package/alert/Alert.test.js +28 -45
  20. package/alert/types.d.ts +5 -5
  21. package/badge/Badge.js +4 -17
  22. package/badge/types.d.ts +1 -1
  23. package/bleed/Bleed.js +13 -21
  24. package/bleed/types.d.ts +2 -2
  25. package/box/Box.d.ts +1 -1
  26. package/box/Box.js +16 -55
  27. package/box/Box.stories.tsx +25 -53
  28. package/box/Box.test.js +1 -6
  29. package/box/types.d.ts +3 -15
  30. package/bulleted-list/BulletedList.js +19 -53
  31. package/bulleted-list/BulletedList.stories.tsx +8 -93
  32. package/bulleted-list/types.d.ts +32 -5
  33. package/button/Button.d.ts +1 -1
  34. package/button/Button.js +66 -99
  35. package/button/Button.stories.tsx +8 -89
  36. package/button/Button.test.js +17 -16
  37. package/button/types.d.ts +8 -4
  38. package/card/Card.d.ts +1 -1
  39. package/card/Card.js +39 -79
  40. package/card/Card.stories.tsx +0 -29
  41. package/card/Card.test.js +10 -21
  42. package/card/types.d.ts +6 -12
  43. package/checkbox/Checkbox.js +85 -120
  44. package/checkbox/Checkbox.stories.tsx +16 -54
  45. package/checkbox/Checkbox.test.js +107 -63
  46. package/checkbox/types.d.ts +8 -4
  47. package/chip/Chip.js +34 -66
  48. package/chip/Chip.stories.tsx +25 -17
  49. package/chip/Chip.test.js +15 -28
  50. package/chip/types.d.ts +4 -4
  51. package/common/OpenSans.css +68 -80
  52. package/common/coreTokens.d.ts +237 -0
  53. package/common/coreTokens.js +184 -0
  54. package/common/utils.js +2 -8
  55. package/common/variables.d.ts +24 -268
  56. package/common/variables.js +860 -1111
  57. package/container/Container.d.ts +4 -0
  58. package/container/Container.js +194 -0
  59. package/container/Container.stories.tsx +214 -0
  60. package/container/types.d.ts +74 -0
  61. package/date-input/Calendar.js +15 -59
  62. package/date-input/DateInput.js +50 -96
  63. package/date-input/DateInput.stories.tsx +11 -30
  64. package/date-input/DateInput.test.js +674 -701
  65. package/date-input/DatePicker.js +11 -42
  66. package/date-input/Icons.d.ts +6 -6
  67. package/date-input/Icons.js +6 -23
  68. package/date-input/YearPicker.js +8 -34
  69. package/date-input/types.d.ts +27 -21
  70. package/dialog/Dialog.d.ts +1 -1
  71. package/dialog/Dialog.js +15 -60
  72. package/dialog/Dialog.stories.tsx +215 -169
  73. package/dialog/Dialog.test.js +125 -187
  74. package/dialog/types.d.ts +18 -26
  75. package/dropdown/Dropdown.js +39 -93
  76. package/dropdown/Dropdown.test.js +391 -378
  77. package/dropdown/DropdownMenu.js +13 -20
  78. package/dropdown/DropdownMenuItem.js +5 -17
  79. package/dropdown/types.d.ts +17 -19
  80. package/file-input/FileInput.js +180 -248
  81. package/file-input/FileInput.stories.tsx +1 -1
  82. package/file-input/FileInput.test.js +356 -354
  83. package/file-input/FileItem.js +14 -41
  84. package/file-input/types.d.ts +10 -10
  85. package/flex/Flex.js +27 -39
  86. package/flex/Flex.stories.tsx +24 -10
  87. package/flex/types.d.ts +74 -9
  88. package/footer/Footer.d.ts +1 -1
  89. package/footer/Footer.js +54 -112
  90. package/footer/Footer.stories.tsx +19 -95
  91. package/footer/Footer.test.js +21 -33
  92. package/footer/Icons.d.ts +2 -2
  93. package/footer/Icons.js +2 -7
  94. package/footer/types.d.ts +21 -29
  95. package/grid/Grid.d.ts +1 -1
  96. package/grid/Grid.js +2 -17
  97. package/grid/Grid.stories.tsx +38 -38
  98. package/grid/types.d.ts +10 -10
  99. package/header/Header.d.ts +2 -2
  100. package/header/Header.js +31 -114
  101. package/header/Header.stories.tsx +7 -71
  102. package/header/Header.test.js +12 -25
  103. package/header/Icons.d.ts +2 -2
  104. package/header/Icons.js +2 -7
  105. package/header/types.d.ts +5 -20
  106. package/heading/Heading.js +9 -31
  107. package/heading/Heading.test.js +70 -87
  108. package/heading/types.d.ts +7 -7
  109. package/image/Image.d.ts +4 -0
  110. package/image/Image.js +70 -0
  111. package/image/Image.stories.tsx +127 -0
  112. package/image/types.d.ts +72 -0
  113. package/inset/Inset.js +13 -21
  114. package/inset/Inset.stories.tsx +1 -1
  115. package/inset/types.d.ts +2 -2
  116. package/layout/ApplicationLayout.d.ts +5 -5
  117. package/layout/ApplicationLayout.js +28 -65
  118. package/layout/ApplicationLayout.stories.tsx +1 -1
  119. package/layout/Icons.d.ts +8 -5
  120. package/layout/Icons.js +51 -59
  121. package/layout/SidenavContext.d.ts +1 -1
  122. package/layout/SidenavContext.js +3 -9
  123. package/layout/types.d.ts +5 -6
  124. package/link/Link.js +22 -43
  125. package/link/Link.test.js +23 -41
  126. package/link/types.d.ts +14 -14
  127. package/main.d.ts +4 -3
  128. package/main.js +17 -58
  129. package/nav-tabs/NavTabs.d.ts +2 -2
  130. package/nav-tabs/NavTabs.js +16 -51
  131. package/nav-tabs/NavTabs.stories.tsx +15 -1
  132. package/nav-tabs/NavTabs.test.js +36 -43
  133. package/nav-tabs/Tab.js +36 -69
  134. package/nav-tabs/types.d.ts +14 -15
  135. package/number-input/NumberInput.d.ts +7 -0
  136. package/number-input/NumberInput.js +26 -35
  137. package/number-input/NumberInput.stories.tsx +42 -26
  138. package/number-input/NumberInput.test.js +700 -412
  139. package/number-input/types.d.ts +11 -5
  140. package/package.json +30 -28
  141. package/paginator/Icons.d.ts +5 -5
  142. package/paginator/Icons.js +5 -19
  143. package/paginator/Paginator.js +16 -44
  144. package/paginator/Paginator.test.js +229 -199
  145. package/paginator/types.d.ts +3 -3
  146. package/paragraph/Paragraph.js +3 -19
  147. package/paragraph/Paragraph.stories.tsx +0 -17
  148. package/password-input/Icons.d.ts +6 -0
  149. package/password-input/Icons.js +35 -0
  150. package/password-input/PasswordInput.js +57 -126
  151. package/password-input/PasswordInput.stories.tsx +1 -33
  152. package/password-input/PasswordInput.test.js +157 -140
  153. package/password-input/types.d.ts +8 -7
  154. package/progress-bar/ProgressBar.js +21 -53
  155. package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +1 -1
  156. package/progress-bar/ProgressBar.test.js +35 -52
  157. package/progress-bar/types.d.ts +3 -3
  158. package/quick-nav/QuickNav.js +4 -27
  159. package/quick-nav/QuickNav.stories.tsx +1 -1
  160. package/quick-nav/types.d.ts +10 -10
  161. package/radio-group/Radio.d.ts +1 -1
  162. package/radio-group/Radio.js +31 -63
  163. package/radio-group/RadioGroup.js +45 -93
  164. package/radio-group/RadioGroup.stories.tsx +10 -10
  165. package/radio-group/RadioGroup.test.js +504 -470
  166. package/radio-group/types.d.ts +8 -8
  167. package/resultset-table/Icons.d.ts +7 -0
  168. package/{resultsetTable → resultset-table}/Icons.js +1 -5
  169. package/{resultsetTable → resultset-table}/ResultsetTable.js +23 -59
  170. package/{resultsetTable → resultset-table}/ResultsetTable.test.js +72 -92
  171. package/{resultsetTable → resultset-table}/types.d.ts +7 -7
  172. package/resultset-table/types.js +5 -0
  173. package/select/Icons.d.ts +7 -7
  174. package/select/Icons.js +1 -5
  175. package/select/Listbox.js +13 -39
  176. package/select/Option.js +9 -26
  177. package/select/Select.js +70 -155
  178. package/select/Select.stories.tsx +3 -3
  179. package/select/Select.test.js +1946 -1804
  180. package/select/types.d.ts +14 -15
  181. package/sidenav/Icons.d.ts +7 -0
  182. package/sidenav/Icons.js +47 -0
  183. package/sidenav/Sidenav.d.ts +2 -2
  184. package/sidenav/Sidenav.js +80 -150
  185. package/sidenav/Sidenav.stories.tsx +60 -60
  186. package/sidenav/Sidenav.test.js +3 -10
  187. package/sidenav/types.d.ts +31 -28
  188. package/slider/Slider.js +68 -125
  189. package/slider/Slider.test.js +107 -103
  190. package/slider/types.d.ts +4 -4
  191. package/spinner/Spinner.js +16 -54
  192. package/spinner/Spinner.test.js +25 -34
  193. package/spinner/types.d.ts +3 -3
  194. package/switch/Switch.js +49 -97
  195. package/switch/Switch.stories.tsx +0 -34
  196. package/switch/Switch.test.js +51 -96
  197. package/switch/types.d.ts +4 -4
  198. package/table/Table.js +5 -27
  199. package/table/Table.test.js +1 -6
  200. package/table/types.d.ts +8 -8
  201. package/tabs/Tab.js +10 -29
  202. package/tabs/Tabs.js +52 -129
  203. package/tabs/Tabs.test.js +62 -118
  204. package/tabs/types.d.ts +19 -19
  205. package/tag/Tag.js +21 -51
  206. package/tag/Tag.test.js +19 -30
  207. package/tag/types.d.ts +7 -7
  208. package/text-input/Icons.d.ts +5 -5
  209. package/text-input/Icons.js +1 -5
  210. package/text-input/Suggestion.js +9 -26
  211. package/text-input/Suggestions.d.ts +1 -1
  212. package/text-input/Suggestions.js +15 -65
  213. package/text-input/TextInput.js +189 -284
  214. package/text-input/TextInput.stories.tsx +48 -152
  215. package/text-input/TextInput.test.js +1210 -1194
  216. package/text-input/types.d.ts +25 -17
  217. package/textarea/Textarea.js +67 -109
  218. package/textarea/{Textarea.stories.jsx → Textarea.stories.tsx} +58 -100
  219. package/textarea/Textarea.test.js +150 -179
  220. package/textarea/types.d.ts +9 -5
  221. package/toggle-group/ToggleGroup.d.ts +2 -2
  222. package/toggle-group/ToggleGroup.js +90 -107
  223. package/toggle-group/ToggleGroup.stories.tsx +7 -4
  224. package/toggle-group/ToggleGroup.test.js +68 -87
  225. package/toggle-group/types.d.ts +26 -17
  226. package/typography/Typography.js +4 -13
  227. package/typography/types.d.ts +1 -1
  228. package/useTheme.d.ts +21 -122
  229. package/useTheme.js +1 -8
  230. package/useTranslatedLabels.js +1 -7
  231. package/utils/BaseTypography.d.ts +2 -2
  232. package/utils/BaseTypography.js +16 -30
  233. package/utils/FocusLock.js +24 -42
  234. package/wizard/Wizard.js +14 -49
  235. package/wizard/Wizard.test.js +53 -80
  236. package/wizard/types.d.ts +6 -6
  237. package/card/ice-cream.jpg +0 -0
  238. package/number-input/NumberInputContext.d.ts +0 -4
  239. package/number-input/NumberInputContext.js +0 -19
  240. package/number-input/numberInputContextTypes.d.ts +0 -19
  241. package/resultsetTable/Icons.d.ts +0 -7
  242. package/slider/Slider.stories.tsx +0 -240
  243. /package/{resultsetTable → container}/types.js +0 -0
  244. /package/{number-input/numberInputContextTypes.js → image/types.js} +0 -0
  245. /package/{resultsetTable → resultset-table}/ResultsetTable.d.ts +0 -0
  246. /package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +0 -0
  247. /package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +0 -0
  248. /package/table/{Table.stories.jsx → Table.stories.tsx} +0 -0
package/footer/Footer.js CHANGED
@@ -1,125 +1,81 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _typeof3 = require("@babel/runtime/helpers/typeof");
6
-
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
8
  exports["default"] = void 0;
11
-
12
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
13
-
14
9
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
15
-
16
10
  var _react = _interopRequireWildcard(require("react"));
17
-
18
11
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
19
-
20
12
  var _variables = require("../common/variables");
21
-
22
13
  var _useTheme = _interopRequireDefault(require("../useTheme"));
23
-
24
14
  var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
25
-
26
- var _BackgroundColorContext = require("../BackgroundColorContext");
27
-
28
15
  var _Icons = require("./Icons");
29
-
30
- var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14;
31
-
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
-
34
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
35
-
16
+ var _Flex = _interopRequireDefault(require("../flex/Flex"));
17
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
18
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
19
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
36
20
  var DxcFooter = function DxcFooter(_ref) {
37
21
  var socialLinks = _ref.socialLinks,
38
- bottomLinks = _ref.bottomLinks,
39
- copyright = _ref.copyright,
40
- children = _ref.children,
41
- padding = _ref.padding,
42
- margin = _ref.margin,
43
- _ref$tabIndex = _ref.tabIndex,
44
- tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
22
+ bottomLinks = _ref.bottomLinks,
23
+ copyright = _ref.copyright,
24
+ children = _ref.children,
25
+ margin = _ref.margin,
26
+ _ref$tabIndex = _ref.tabIndex,
27
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
45
28
  var colorsTheme = (0, _useTheme["default"])();
46
29
  var translatedLabels = (0, _useTranslatedLabels["default"])();
47
30
  var footerLogo = (0, _react.useMemo)(function () {
48
- if (!colorsTheme.footer.logo) {
49
- return _Icons.dxcLogo;
50
- }
51
-
52
- if (typeof colorsTheme.footer.logo === "string") {
53
- return /*#__PURE__*/_react["default"].createElement(LogoImg, {
54
- alt: translatedLabels.formFields.logoAlternativeText,
55
- src: colorsTheme.footer.logo
56
- });
57
- }
58
-
59
- return colorsTheme.footer.logo;
60
- }, [colorsTheme.footer.logo]);
61
- var socialLink = socialLinks === null || socialLinks === void 0 ? void 0 : socialLinks.map(function (link, index) {
31
+ return !colorsTheme.footer.logo ? _Icons.dxcLogo : typeof colorsTheme.footer.logo === "string" ? /*#__PURE__*/_react["default"].createElement(LogoImg, {
32
+ alt: translatedLabels.formFields.logoAlternativeText,
33
+ src: colorsTheme.footer.logo
34
+ }) : colorsTheme.footer.logo;
35
+ }, [colorsTheme]);
36
+ return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
37
+ theme: colorsTheme.footer
38
+ }, /*#__PURE__*/_react["default"].createElement(FooterContainer, {
39
+ margin: margin
40
+ }, /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
41
+ justifyContent: "space-between",
42
+ alignItems: "center",
43
+ wrap: "wrap",
44
+ gap: "1.5rem"
45
+ }, /*#__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) {
62
46
  return /*#__PURE__*/_react["default"].createElement(SocialAnchor, {
47
+ href: link.href,
63
48
  tabIndex: tabIndex,
49
+ title: link.title,
50
+ "aria-label": link.title,
64
51
  key: "social".concat(index).concat(link.href),
65
- index: index,
66
- href: link && link.href ? link.href : ""
67
- }, /*#__PURE__*/_react["default"].createElement(SocialIconContainer, null, typeof link.logo === "string" ? /*#__PURE__*/_react["default"].createElement(SocialIconImg, {
52
+ index: index
53
+ }, /*#__PURE__*/_react["default"].createElement(SocialIconContainer, null, typeof link.logo === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
68
54
  src: link.logo
69
55
  }) : link.logo));
70
- });
71
- var bottomLink = bottomLinks === null || bottomLinks === void 0 ? void 0 : bottomLinks.map(function (link, index) {
56
+ }))), /*#__PURE__*/_react["default"].createElement(ChildComponents, null, 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) {
72
57
  return /*#__PURE__*/_react["default"].createElement("span", {
73
58
  key: "bottom".concat(index).concat(link.text)
74
59
  }, /*#__PURE__*/_react["default"].createElement(BottomLink, {
75
- tabIndex: tabIndex,
76
- href: link && link.href ? link.href : ""
77
- }, link && link.text ? link.text : ""), /*#__PURE__*/_react["default"].createElement(Point, null, "\xB7"));
78
- });
79
- return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
80
- theme: colorsTheme.footer
81
- }, /*#__PURE__*/_react["default"].createElement(FooterContainer, {
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, {
84
- padding: padding
85
- }, /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
86
- color: colorsTheme.footer.backgroundColor
87
- }, children)), /*#__PURE__*/_react["default"].createElement(FooterFooter, {
88
- className: "footerFooter"
89
- }, /*#__PURE__*/_react["default"].createElement(BottomLinks, null, bottomLink), /*#__PURE__*/_react["default"].createElement(Copyright, null, copyright || translatedLabels.footer.copyrightText(new Date().getFullYear()))))));
60
+ href: link.href,
61
+ tabIndex: tabIndex
62
+ }, link.text));
63
+ })), /*#__PURE__*/_react["default"].createElement(Copyright, null, copyright || translatedLabels.footer.copyrightText(new Date().getFullYear())))));
90
64
  };
91
-
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) {
93
- return props.theme.backgroundColor;
65
+ 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) {
66
+ return props.theme.height;
94
67
  }, function (props) {
95
- return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
68
+ return props.margin ? _variables.spaces[props.margin] : "0px";
96
69
  }, function (props) {
97
- return props.theme.height;
98
- });
99
-
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"])));
101
-
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) {
70
+ return props.theme.backgroundColor;
71
+ }, _variables.responsiveSizes.small, _variables.responsiveSizes.small);
72
+ 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) {
103
73
  return "".concat(props.theme.bottomLinksDividerThickness, " ").concat(props.theme.bottomLinksDividerStyle, " ").concat(props.theme.bottomLinksDividerColor);
104
74
  });
105
-
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) {
75
+ var ChildComponents = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n min-height: 16px;\n overflow: hidden;\n"])));
76
+ 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) {
107
77
  return props.theme.bottomLinksDividerSpacing;
108
- }, _variables.responsiveSizes.small, _variables.responsiveSizes.small);
109
-
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) {
111
- return props.padding && (0, _typeof2["default"])(props.padding) !== "object" ? _variables.spaces[props.padding] : "0px";
112
78
  }, function (props) {
113
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.top ? _variables.spaces[props.padding.top] : "";
114
- }, function (props) {
115
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.right ? _variables.spaces[props.padding.right] : "";
116
- }, function (props) {
117
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.bottom ? _variables.spaces[props.padding.bottom] : "";
118
- }, function (props) {
119
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.left ? _variables.spaces[props.padding.left] : "";
120
- });
121
-
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) {
123
79
  return props.theme.copyrightFontFamily;
124
80
  }, function (props) {
125
81
  return props.theme.copyrightFontSize;
@@ -129,43 +85,31 @@ var Copyright = _styledComponents["default"].div(_templateObject6 || (_templateO
129
85
  return props.theme.copyrightFontWeight;
130
86
  }, function (props) {
131
87
  return props.theme.copyrightFontColor;
132
- }, _variables.responsiveSizes.small, _variables.responsiveSizes.small, function (props) {
133
- return props.theme.bottomLinksDividerSpacing;
134
- });
135
-
136
- var LogoContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n"])), function (props) {
88
+ }, _variables.responsiveSizes.small, _variables.responsiveSizes.small);
89
+ var LogoContainer = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n"])), function (props) {
137
90
  return props.theme.logoHeight;
138
91
  }, function (props) {
139
92
  return props.theme.logoWidth;
140
93
  });
141
-
142
- var LogoImg = _styledComponents["default"].img(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n"])), function (props) {
94
+ var LogoImg = _styledComponents["default"].img(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n"])), function (props) {
143
95
  return props.theme.logoHeight;
144
96
  }, function (props) {
145
97
  return props.theme.logoWidth;
146
98
  });
147
-
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) {
99
+ 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) {
151
100
  return props.index === 0 ? "0px" : props.theme.socialLinksGutter;
152
101
  });
153
-
154
- var SocialIconImg = _styledComponents["default"].img(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])([""])));
155
-
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) {
102
+ 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) {
157
103
  return props.theme.socialLinksSize;
158
104
  }, function (props) {
159
105
  return props.theme.socialLinksSize;
160
106
  }, function (props) {
161
107
  return props.theme.socialLinksColor;
162
108
  });
163
-
164
- var Point = _styledComponents["default"].span(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2["default"])(["\n margin: 0px 10px;\n color: ", ";\n"])), function (props) {
165
- return props.theme.bottomLinksFontColor;
166
- });
167
-
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) {
109
+ 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) {
110
+ return props.theme.bottomLinksDividerSpacing;
111
+ }, _variables.responsiveSizes.small, _variables.responsiveSizes.small);
112
+ 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) {
169
113
  return props.theme.bottomLinksTextDecoration;
170
114
  }, function (props) {
171
115
  return props.theme.bottomLinksFontColor;
@@ -178,6 +122,4 @@ var BottomLink = _styledComponents["default"].a(_templateObject14 || (_templateO
178
122
  }, function (props) {
179
123
  return props.theme.bottomLinksFontWeight;
180
124
  });
181
-
182
- var _default = DxcFooter;
183
- exports["default"] = _default;
125
+ var _default = exports["default"] = DxcFooter;
@@ -26,17 +26,20 @@ const social = [
26
26
  </g>
27
27
  </svg>
28
28
  ),
29
+ title: "Linkedin",
29
30
  },
30
31
  {
31
- href: "https://twitter.com/dxctechnology",
32
+ href: "https://x.com/dxctechnology",
32
33
  logo: (
33
- <svg viewBox="0 0 248 204" fill="currentColor">
34
+ <svg width="256" height="256" viewBox="0 0 256 256" fill="none" xmlns="http://www.w3.org/2000/svg">
35
+ <rect width="256" height="256" rx="40" fill="white" />
34
36
  <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
+ d="M140.192 118.205L187.848 64H176.556L135.158 111.056L102.117 64H64L113.975 135.163L64 192H75.2914L118.982 142.296L153.883 192H192L140.192 118.205ZM124.722 135.787L119.65 128.697L79.3634 72.3294H96.7094L129.232 117.837L134.282 124.927L176.551 184.076H159.205L124.722 135.787Z"
38
+ fill="#0F1419"
37
39
  />
38
40
  </svg>
39
41
  ),
42
+ title: "X",
40
43
  },
41
44
  {
42
45
  href: "https://www.facebook.com/DXCTechnology/",
@@ -63,6 +66,7 @@ const social = [
63
66
  </g>
64
67
  </svg>
65
68
  ),
69
+ title: "Facebook",
66
70
  },
67
71
  ];
68
72
 
@@ -72,8 +76,8 @@ const bottom = [
72
76
  text: "Linkedin",
73
77
  },
74
78
  {
75
- href: "https://twitter.com/dxctechnology",
76
- text: "Twitter",
79
+ href: "https://x.com/dxctechnology",
80
+ text: "X",
77
81
  },
78
82
  {
79
83
  href: "https://www.facebook.com/DXCTechnology/",
@@ -91,78 +95,7 @@ const opinionatedTheme = {
91
95
  baseColor: "#000000",
92
96
  fontColor: "#ffffff",
93
97
  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
- ),
98
+ logo: "https://upload.wikimedia.org/wikipedia/commons/thumb/b/b8/2021_Facebook_icon.svg/2048px-2021_Facebook_icon.svg.png",
166
99
  },
167
100
  };
168
101
 
@@ -180,6 +113,14 @@ export const Chromatic = () => (
180
113
  </div>
181
114
  </DxcFooter>
182
115
  </ExampleContainer>
116
+ <ExampleContainer pseudoState="pseudo-focus">
117
+ <Title title="Focused bottom and social links" theme="light" level={4} />
118
+ <DxcFooter copyright="Copyright" socialLinks={social} bottomLinks={bottom}>
119
+ <div>
120
+ <a href="https://www.linkedin.com/company/dxctechnology">Linkedin</a>
121
+ </div>
122
+ </DxcFooter>
123
+ </ExampleContainer>
183
124
  <Title title="Margins" theme="light" level={2} />
184
125
  <ExampleContainer>
185
126
  <Title title="Xxsmall margin" theme="light" level={4} />
@@ -197,23 +138,6 @@ export const Chromatic = () => (
197
138
  <Title title="Xxlarge margin" theme="light" level={4} />
198
139
  <DxcFooter margin="xxlarge"></DxcFooter>
199
140
  </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
141
  <Title title="Opinionated theme" theme="light" level={2} />
218
142
  <ExampleContainer>
219
143
  <HalstackProvider theme={opinionatedTheme}>
@@ -1,16 +1,13 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  var _react = _interopRequireDefault(require("react"));
6
-
7
5
  var _react2 = require("@testing-library/react");
8
-
9
6
  var _Footer = _interopRequireDefault(require("./Footer.tsx"));
10
-
11
7
  var social = [{
12
8
  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"
9
+ logo: "https://developer.apple.com/design/human-interface-guidelines/foundations/app-icons/images/icon-and-image-large-icon-settings_2x.png",
10
+ title: "test"
14
11
  }];
15
12
  var bottom = [{
16
13
  href: "https://www.test.com/bottom",
@@ -19,34 +16,30 @@ var bottom = [{
19
16
  describe("Footer component tests", function () {
20
17
  test("Footer renders with default logo", function () {
21
18
  var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], null)),
22
- getByTitle = _render.getByTitle;
23
-
19
+ getByTitle = _render.getByTitle;
24
20
  expect(getByTitle("DXC Logo")).toBeTruthy();
25
21
  });
26
22
  test("Footer renders with social links", function () {
27
23
  var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
28
- socialLinks: social
29
- })),
30
- getByRole = _render2.getByRole;
31
-
24
+ socialLinks: social
25
+ })),
26
+ getByRole = _render2.getByRole;
32
27
  var socialIcon = getByRole("link");
33
28
  expect(socialIcon.getAttribute("href")).toBe("https://www.test.com/social");
34
29
  });
35
30
  test("Footer renders with bottom links", function () {
36
31
  var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
37
- bottomLinks: bottom
38
- })),
39
- getByText = _render3.getByText;
40
-
32
+ bottomLinks: bottom
33
+ })),
34
+ getByText = _render3.getByText;
41
35
  var link = getByText("bottom-link-text");
42
36
  expect(link.getAttribute("href")).toBe("https://www.test.com/bottom");
43
37
  });
44
38
  test("Footer renders with copyright text", function () {
45
39
  var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
46
- copyright: "test-copyright"
47
- })),
48
- getByText = _render4.getByText;
49
-
40
+ copyright: "test-copyright"
41
+ })),
42
+ getByText = _render4.getByText;
50
43
  expect(getByText("test-copyright")).toBeTruthy();
51
44
  });
52
45
  test("Footer renders with correct children", function () {
@@ -55,10 +48,8 @@ describe("Footer component tests", function () {
55
48
  configurable: true,
56
49
  value: 1024
57
50
  });
58
-
59
51
  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
-
52
+ getByText = _render5.getByText;
62
53
  expect(getByText("footer-child-text")).toBeTruthy();
63
54
  });
64
55
  test("Footer renders with children in mobile", function () {
@@ -67,10 +58,8 @@ describe("Footer component tests", function () {
67
58
  configurable: true,
68
59
  value: 425
69
60
  });
70
-
71
61
  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
-
62
+ queryByText = _render6.queryByText;
74
63
  expect(queryByText("footer-child-text")).toBeTruthy();
75
64
  });
76
65
  test("Footer is fully rendered", function () {
@@ -78,17 +67,16 @@ describe("Footer component tests", function () {
78
67
  configurable: true,
79
68
  value: 1024
80
69
  });
81
-
82
70
  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
-
71
+ socialLinks: social,
72
+ bottomLinks: bottom,
73
+ copyright: "test-copyright"
74
+ }, /*#__PURE__*/_react["default"].createElement("p", null, "footer-child-text"))),
75
+ getAllByRole = _render7.getAllByRole,
76
+ getByText = _render7.getByText;
90
77
  var socialIcon = getAllByRole("link")[0];
91
78
  expect(socialIcon.getAttribute("href")).toBe("https://www.test.com/social");
79
+ expect(socialIcon.getAttribute("aria-label")).toBe("test");
92
80
  var bottomLink = getByText("bottom-link-text");
93
81
  expect(bottomLink.getAttribute("href")).toBe("https://www.test.com/bottom");
94
82
  expect(getByText("test-copyright")).toBeTruthy();
package/footer/Icons.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- /// <reference types="react" />
2
- export declare const dxcLogo: JSX.Element;
1
+ import React from "react";
2
+ export declare const dxcLogo: React.JSX.Element;
package/footer/Icons.js CHANGED
@@ -1,15 +1,12 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.dxcLogo = void 0;
9
-
10
8
  var _react = _interopRequireDefault(require("react"));
11
-
12
- var dxcLogo = /*#__PURE__*/_react["default"].createElement("svg", {
9
+ var dxcLogo = exports.dxcLogo = /*#__PURE__*/_react["default"].createElement("svg", {
13
10
  id: "g10",
14
11
  xmlns: "http://www.w3.org/2000/svg",
15
12
  width: "100%",
@@ -72,6 +69,4 @@ var dxcLogo = /*#__PURE__*/_react["default"].createElement("svg", {
72
69
  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",
73
70
  transform: "translate(-21.08 69.298)",
74
71
  fill: "#fff"
75
- })));
76
-
77
- exports.dxcLogo = dxcLogo;
72
+ })));
package/footer/types.d.ts CHANGED
@@ -1,33 +1,31 @@
1
1
  /// <reference types="react" />
2
- declare type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
- declare type Size = {
4
- top?: Space;
5
- bottom?: Space;
6
- left?: Space;
7
- right?: Space;
8
- };
9
- declare type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
10
- declare type SocialLink = {
2
+ type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
+ type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
4
+ type SocialLink = {
5
+ /**
6
+ * URL of the page the link goes to.
7
+ */
8
+ href: string;
11
9
  /**
12
10
  * Element used as the icon for the link.
13
11
  */
14
12
  logo: string | SVG;
13
+ /**
14
+ * Value for the HTML properties title and aria-label.
15
+ */
16
+ title: string;
17
+ };
18
+ type BottomLink = {
15
19
  /**
16
20
  * URL of the page the link goes to.
17
21
  */
18
22
  href: string;
19
- };
20
- declare type BottomLink = {
21
23
  /**
22
24
  * Text for the link.
23
25
  */
24
26
  text: string;
25
- /**
26
- * URL of the page the link goes to.
27
- */
28
- href: string;
29
27
  };
30
- declare type FooterPropsType = {
28
+ type FooterPropsType = {
31
29
  /**
32
30
  * An array of objects representing the links that will be rendered as
33
31
  * icons at the top-right side of the footer.
@@ -38,29 +36,23 @@ declare type FooterPropsType = {
38
36
  * the bottom part of the footer.
39
37
  */
40
38
  bottomLinks?: BottomLink[];
41
- /**
42
- * The center section of the footer. Can be used to render custom
43
- * content in this area.
44
- */
45
- children?: React.ReactNode;
46
39
  /**
47
40
  * The text that will be displayed as copyright disclaimer.
48
41
  */
49
42
  copyright?: string;
50
43
  /**
51
- * Value of the tabindex for all interactuable elements, except those
52
- * inside the custom area.
44
+ * The center section of the footer. Can be used to render custom
45
+ * content in this area.
53
46
  */
54
- tabIndex?: number;
47
+ children?: React.ReactNode;
55
48
  /**
56
49
  * Size of the top margin to be applied to the footer.
57
50
  */
58
- margin?: Space | Size;
51
+ margin?: Space;
59
52
  /**
60
- * @deprecated This prop will be removed shortly, consider using the Inset component for this purpose.
61
- * Size of the padding to be applied to the custom area of the component.
62
- * You can pass an object with properties in order to specify different padding sizes.
53
+ * Value of the tabindex for all interactive elements, except those
54
+ * inside the custom area.
63
55
  */
64
- padding?: Space | Size;
56
+ tabIndex?: number;
65
57
  };
66
58
  export default FooterPropsType;