@dxc-technology/halstack-react 0.0.0-50c4df3 → 0.0.0-51152f3

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 (278) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +5 -22
  3. package/HalstackContext.d.ts +1231 -6
  4. package/HalstackContext.js +67 -100
  5. package/README.md +47 -0
  6. package/accordion/Accordion.d.ts +1 -1
  7. package/accordion/Accordion.js +30 -87
  8. package/accordion/Accordion.stories.tsx +2 -114
  9. package/accordion/Accordion.test.js +19 -34
  10. package/accordion/types.d.ts +5 -17
  11. package/accordion-group/AccordionGroup.d.ts +4 -3
  12. package/accordion-group/AccordionGroup.js +29 -77
  13. package/accordion-group/AccordionGroup.stories.tsx +78 -77
  14. package/accordion-group/AccordionGroup.test.js +44 -72
  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/action-icon/ActionIcon.d.ts +4 -0
  19. package/action-icon/ActionIcon.js +47 -0
  20. package/action-icon/ActionIcon.stories.tsx +41 -0
  21. package/action-icon/ActionIcon.test.js +64 -0
  22. package/action-icon/types.d.ts +26 -0
  23. package/alert/Alert.js +19 -58
  24. package/alert/Alert.test.js +29 -46
  25. package/alert/types.d.ts +5 -5
  26. package/badge/Badge.d.ts +1 -1
  27. package/badge/Badge.js +141 -43
  28. package/badge/Badge.stories.tsx +210 -0
  29. package/badge/Badge.test.js +30 -0
  30. package/badge/types.d.ts +52 -3
  31. package/bleed/Bleed.js +13 -21
  32. package/bleed/Bleed.stories.tsx +1 -0
  33. package/bleed/types.d.ts +2 -2
  34. package/box/Box.d.ts +1 -1
  35. package/box/Box.js +18 -59
  36. package/box/Box.stories.tsx +25 -53
  37. package/box/Box.test.js +2 -7
  38. package/box/types.d.ts +3 -15
  39. package/bulleted-list/BulletedList.js +19 -53
  40. package/bulleted-list/BulletedList.stories.tsx +8 -93
  41. package/bulleted-list/types.d.ts +32 -5
  42. package/button/Button.d.ts +1 -1
  43. package/button/Button.js +68 -102
  44. package/button/Button.stories.tsx +9 -90
  45. package/button/Button.test.js +20 -17
  46. package/button/types.d.ts +8 -4
  47. package/card/Card.d.ts +1 -1
  48. package/card/Card.js +48 -89
  49. package/card/Card.stories.tsx +12 -42
  50. package/card/Card.test.js +11 -22
  51. package/card/types.d.ts +6 -12
  52. package/checkbox/Checkbox.js +87 -122
  53. package/checkbox/Checkbox.stories.tsx +16 -54
  54. package/checkbox/Checkbox.test.js +108 -64
  55. package/checkbox/types.d.ts +8 -4
  56. package/chip/Chip.js +36 -70
  57. package/chip/Chip.stories.tsx +25 -17
  58. package/chip/Chip.test.js +16 -31
  59. package/chip/types.d.ts +4 -4
  60. package/common/OpenSans.css +68 -80
  61. package/common/coreTokens.d.ts +237 -0
  62. package/common/coreTokens.js +184 -0
  63. package/common/utils.d.ts +1 -0
  64. package/common/utils.js +6 -12
  65. package/common/variables.d.ts +1383 -0
  66. package/common/variables.js +880 -1163
  67. package/container/Container.d.ts +4 -0
  68. package/container/Container.js +194 -0
  69. package/container/Container.stories.tsx +214 -0
  70. package/container/types.d.ts +74 -0
  71. package/date-input/Calendar.js +15 -59
  72. package/date-input/DateInput.js +50 -96
  73. package/date-input/DateInput.stories.tsx +11 -30
  74. package/date-input/DateInput.test.js +674 -701
  75. package/date-input/DatePicker.js +11 -42
  76. package/date-input/Icons.d.ts +6 -6
  77. package/date-input/Icons.js +6 -23
  78. package/date-input/YearPicker.js +8 -34
  79. package/date-input/types.d.ts +27 -21
  80. package/dialog/Dialog.d.ts +1 -1
  81. package/dialog/Dialog.js +61 -117
  82. package/dialog/Dialog.stories.tsx +292 -216
  83. package/dialog/Dialog.test.js +269 -32
  84. package/dialog/types.d.ts +18 -26
  85. package/dropdown/Dropdown.js +50 -102
  86. package/dropdown/Dropdown.test.js +393 -379
  87. package/dropdown/DropdownMenu.js +13 -20
  88. package/dropdown/DropdownMenuItem.js +5 -19
  89. package/dropdown/types.d.ts +17 -19
  90. package/file-input/FileInput.js +181 -250
  91. package/file-input/FileInput.stories.tsx +1 -1
  92. package/file-input/FileInput.test.js +357 -355
  93. package/file-input/FileItem.js +14 -41
  94. package/file-input/types.d.ts +10 -10
  95. package/flex/Flex.js +27 -39
  96. package/flex/Flex.stories.tsx +35 -26
  97. package/flex/types.d.ts +74 -9
  98. package/footer/Footer.d.ts +1 -1
  99. package/footer/Footer.js +70 -117
  100. package/footer/Footer.stories.tsx +38 -95
  101. package/footer/Footer.test.js +33 -57
  102. package/footer/Icons.d.ts +3 -2
  103. package/footer/Icons.js +66 -7
  104. package/footer/types.d.ts +25 -27
  105. package/grid/Grid.d.ts +7 -0
  106. package/grid/Grid.js +76 -0
  107. package/grid/Grid.stories.tsx +219 -0
  108. package/grid/types.d.ts +115 -0
  109. package/grid/types.js +5 -0
  110. package/header/Header.d.ts +4 -3
  111. package/header/Header.js +34 -117
  112. package/header/Header.stories.tsx +7 -71
  113. package/header/Header.test.js +13 -26
  114. package/header/Icons.d.ts +2 -2
  115. package/header/Icons.js +2 -7
  116. package/header/types.d.ts +5 -20
  117. package/heading/Heading.js +10 -32
  118. package/heading/Heading.test.js +71 -88
  119. package/heading/types.d.ts +7 -7
  120. package/image/Image.d.ts +4 -0
  121. package/image/Image.js +70 -0
  122. package/image/Image.stories.tsx +127 -0
  123. package/image/types.d.ts +72 -0
  124. package/image/types.js +5 -0
  125. package/inset/Inset.js +13 -21
  126. package/inset/Inset.stories.tsx +2 -1
  127. package/inset/types.d.ts +2 -2
  128. package/layout/ApplicationLayout.d.ts +5 -5
  129. package/layout/ApplicationLayout.js +29 -66
  130. package/layout/ApplicationLayout.stories.tsx +1 -1
  131. package/layout/Icons.d.ts +8 -5
  132. package/layout/Icons.js +51 -59
  133. package/layout/SidenavContext.d.ts +1 -1
  134. package/layout/SidenavContext.js +3 -9
  135. package/layout/types.d.ts +5 -6
  136. package/link/Link.js +24 -45
  137. package/link/Link.test.js +24 -44
  138. package/link/types.d.ts +14 -14
  139. package/main.d.ts +7 -4
  140. package/main.js +32 -58
  141. package/nav-tabs/NavTabs.d.ts +2 -2
  142. package/nav-tabs/NavTabs.js +22 -54
  143. package/nav-tabs/NavTabs.stories.tsx +21 -5
  144. package/nav-tabs/NavTabs.test.js +39 -45
  145. package/nav-tabs/Tab.js +43 -75
  146. package/nav-tabs/types.d.ts +14 -15
  147. package/number-input/NumberInput.d.ts +7 -0
  148. package/number-input/NumberInput.js +47 -37
  149. package/number-input/NumberInput.stories.tsx +42 -26
  150. package/number-input/NumberInput.test.js +860 -413
  151. package/number-input/types.d.ts +11 -5
  152. package/package.json +31 -29
  153. package/paginator/Icons.d.ts +5 -5
  154. package/paginator/Icons.js +5 -19
  155. package/paginator/Paginator.js +17 -47
  156. package/paginator/Paginator.test.js +235 -215
  157. package/paginator/types.d.ts +3 -3
  158. package/paragraph/Paragraph.d.ts +3 -4
  159. package/paragraph/Paragraph.js +6 -22
  160. package/paragraph/Paragraph.stories.tsx +0 -17
  161. package/password-input/Icons.d.ts +6 -0
  162. package/password-input/Icons.js +35 -0
  163. package/password-input/PasswordInput.js +57 -126
  164. package/password-input/PasswordInput.stories.tsx +1 -33
  165. package/password-input/PasswordInput.test.js +158 -141
  166. package/password-input/types.d.ts +8 -7
  167. package/progress-bar/ProgressBar.d.ts +2 -2
  168. package/progress-bar/ProgressBar.js +22 -54
  169. package/progress-bar/{ProgressBar.stories.jsx → ProgressBar.stories.tsx} +1 -1
  170. package/progress-bar/ProgressBar.test.js +36 -53
  171. package/progress-bar/types.d.ts +4 -3
  172. package/quick-nav/QuickNav.js +4 -27
  173. package/quick-nav/QuickNav.stories.tsx +1 -1
  174. package/quick-nav/types.d.ts +10 -10
  175. package/radio-group/Radio.d.ts +1 -1
  176. package/radio-group/Radio.js +31 -63
  177. package/radio-group/RadioGroup.js +45 -93
  178. package/radio-group/RadioGroup.stories.tsx +10 -10
  179. package/radio-group/RadioGroup.test.js +505 -471
  180. package/radio-group/types.d.ts +8 -8
  181. package/resultset-table/Icons.d.ts +7 -0
  182. package/{resultsetTable → resultset-table}/Icons.js +1 -5
  183. package/resultset-table/ResultsetTable.d.ts +7 -0
  184. package/{resultsetTable → resultset-table}/ResultsetTable.js +38 -66
  185. package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +86 -5
  186. package/{resultsetTable → resultset-table}/ResultsetTable.test.js +139 -93
  187. package/{resultsetTable → resultset-table}/types.d.ts +13 -7
  188. package/resultset-table/types.js +5 -0
  189. package/select/Icons.d.ts +7 -7
  190. package/select/Icons.js +1 -5
  191. package/select/Listbox.js +13 -39
  192. package/select/Option.js +17 -27
  193. package/select/Select.js +94 -168
  194. package/select/Select.stories.tsx +3 -3
  195. package/select/Select.test.js +1952 -1810
  196. package/select/types.d.ts +14 -15
  197. package/sidenav/Icons.d.ts +7 -0
  198. package/sidenav/Icons.js +47 -0
  199. package/sidenav/Sidenav.d.ts +2 -2
  200. package/sidenav/Sidenav.js +81 -151
  201. package/sidenav/Sidenav.stories.tsx +60 -60
  202. package/sidenav/Sidenav.test.js +3 -10
  203. package/sidenav/types.d.ts +31 -28
  204. package/slider/Slider.js +70 -128
  205. package/slider/Slider.test.js +108 -104
  206. package/slider/types.d.ts +4 -4
  207. package/spinner/Spinner.js +29 -73
  208. package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +28 -28
  209. package/spinner/Spinner.test.js +26 -35
  210. package/spinner/types.d.ts +3 -3
  211. package/status-light/StatusLight.d.ts +4 -0
  212. package/status-light/StatusLight.js +51 -0
  213. package/status-light/StatusLight.stories.tsx +74 -0
  214. package/status-light/StatusLight.test.js +25 -0
  215. package/status-light/types.d.ts +17 -0
  216. package/status-light/types.js +5 -0
  217. package/switch/Switch.js +51 -99
  218. package/switch/Switch.stories.tsx +0 -34
  219. package/switch/Switch.test.js +52 -97
  220. package/switch/types.d.ts +4 -4
  221. package/table/ActionsCell.d.ts +4 -0
  222. package/table/ActionsCell.js +55 -0
  223. package/table/DropdownTheme.js +58 -0
  224. package/table/Table.d.ts +4 -1
  225. package/table/Table.js +27 -32
  226. package/table/{Table.stories.jsx → Table.stories.tsx} +261 -2
  227. package/table/Table.test.js +94 -7
  228. package/table/types.d.ts +45 -6
  229. package/tabs/Tab.js +23 -40
  230. package/tabs/Tabs.js +62 -145
  231. package/tabs/Tabs.stories.tsx +1 -1
  232. package/tabs/Tabs.test.js +66 -123
  233. package/tabs/types.d.ts +19 -19
  234. package/tag/Tag.js +28 -60
  235. package/tag/Tag.test.js +20 -31
  236. package/tag/types.d.ts +7 -7
  237. package/text-input/Icons.d.ts +5 -5
  238. package/text-input/Icons.js +1 -5
  239. package/text-input/Suggestion.js +11 -28
  240. package/text-input/Suggestions.d.ts +1 -1
  241. package/text-input/Suggestions.js +15 -65
  242. package/text-input/TextInput.js +220 -328
  243. package/text-input/TextInput.stories.tsx +48 -152
  244. package/text-input/TextInput.test.js +1228 -1196
  245. package/text-input/types.d.ts +25 -17
  246. package/textarea/Textarea.js +70 -113
  247. package/textarea/{Textarea.stories.jsx → Textarea.stories.tsx} +58 -100
  248. package/textarea/Textarea.test.js +152 -183
  249. package/textarea/types.d.ts +9 -5
  250. package/toggle-group/ToggleGroup.d.ts +2 -2
  251. package/toggle-group/ToggleGroup.js +92 -106
  252. package/toggle-group/ToggleGroup.stories.tsx +7 -4
  253. package/toggle-group/ToggleGroup.test.js +69 -88
  254. package/toggle-group/types.d.ts +26 -17
  255. package/typography/Typography.d.ts +2 -2
  256. package/typography/Typography.js +15 -123
  257. package/typography/Typography.stories.tsx +1 -1
  258. package/typography/types.d.ts +1 -1
  259. package/useTheme.d.ts +1135 -1
  260. package/useTheme.js +2 -9
  261. package/useTranslatedLabels.d.ts +84 -1
  262. package/useTranslatedLabels.js +1 -7
  263. package/utils/BaseTypography.d.ts +21 -0
  264. package/utils/BaseTypography.js +94 -0
  265. package/utils/FocusLock.d.ts +13 -0
  266. package/utils/FocusLock.js +124 -0
  267. package/wizard/Wizard.js +16 -51
  268. package/wizard/Wizard.test.js +54 -81
  269. package/wizard/types.d.ts +8 -9
  270. package/card/ice-cream.jpg +0 -0
  271. package/number-input/NumberInputContext.d.ts +0 -4
  272. package/number-input/NumberInputContext.js +0 -19
  273. package/number-input/numberInputContextTypes.d.ts +0 -19
  274. package/resultsetTable/Icons.d.ts +0 -7
  275. package/resultsetTable/ResultsetTable.d.ts +0 -4
  276. package/slider/Slider.stories.tsx +0 -240
  277. /package/{resultsetTable → action-icon}/types.js +0 -0
  278. /package/{number-input/numberInputContextTypes.js → container/types.js} +0 -0
package/footer/Footer.js CHANGED
@@ -1,127 +1,94 @@
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
- var _variables = require("../common/variables.js");
21
-
12
+ var _variables = require("../common/variables");
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,
28
+ _ref$mode = _ref.mode,
29
+ mode = _ref$mode === void 0 ? "default" : _ref$mode;
45
30
  var colorsTheme = (0, _useTheme["default"])();
46
31
  var translatedLabels = (0, _useTranslatedLabels["default"])();
47
32
  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) {
33
+ return !colorsTheme.footer.logo ? mode === "default" ? _Icons.dxcLogo : _Icons.dxcSmallLogo : typeof colorsTheme.footer.logo === "string" ? /*#__PURE__*/_react["default"].createElement(LogoImg, {
34
+ mode: mode,
35
+ alt: translatedLabels.formFields.logoAlternativeText,
36
+ src: colorsTheme.footer.logo
37
+ }) : colorsTheme.footer.logo;
38
+ }, [colorsTheme]);
39
+ return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
40
+ theme: colorsTheme.footer
41
+ }, /*#__PURE__*/_react["default"].createElement(FooterContainer, {
42
+ margin: margin,
43
+ mode: mode
44
+ }, /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
45
+ justifyContent: "space-between",
46
+ alignItems: "center",
47
+ wrap: "wrap",
48
+ gap: "1.5rem"
49
+ }, /*#__PURE__*/_react["default"].createElement(LogoContainer, {
50
+ mode: mode
51
+ }, footerLogo), mode === "default" && /*#__PURE__*/_react["default"].createElement(_Flex["default"], null, socialLinks === null || socialLinks === void 0 ? void 0 : socialLinks.map(function (link, index) {
62
52
  return /*#__PURE__*/_react["default"].createElement(SocialAnchor, {
53
+ href: link.href,
63
54
  tabIndex: tabIndex,
55
+ title: link.title,
56
+ "aria-label": link.title,
64
57
  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, {
68
- src: link.logo
58
+ index: index
59
+ }, /*#__PURE__*/_react["default"].createElement(SocialIconContainer, null, typeof link.logo === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
60
+ src: link.logo,
61
+ alt: link.title
69
62
  }) : link.logo));
70
- });
71
- var bottomLink = bottomLinks === null || bottomLinks === void 0 ? void 0 : bottomLinks.map(function (link, index) {
63
+ }))), /*#__PURE__*/_react["default"].createElement(ChildComponents, null, children), mode === "default" && /*#__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
64
  return /*#__PURE__*/_react["default"].createElement("span", {
73
65
  key: "bottom".concat(index).concat(link.text)
74
66
  }, /*#__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, {
78
- index: index
79
- }, "\xB7"));
80
- });
81
- return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
82
- theme: colorsTheme.footer
83
- }, /*#__PURE__*/_react["default"].createElement(FooterContainer, {
84
- margin: margin
85
- }, /*#__PURE__*/_react["default"].createElement(FooterHeader, null, /*#__PURE__*/_react["default"].createElement(LogoContainer, null, footerLogo), /*#__PURE__*/_react["default"].createElement(SocialLinkContainer, null, socialLink)), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(ChildComponents, {
86
- padding: padding
87
- }, /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
88
- color: colorsTheme.footer.backgroundColor
89
- }, children)), /*#__PURE__*/_react["default"].createElement(FooterFooter, {
90
- className: "footerFooter"
91
- }, /*#__PURE__*/_react["default"].createElement(BottomLinks, null, bottomLink), /*#__PURE__*/_react["default"].createElement(Copyright, null, copyright || translatedLabels.footer.copyrightText(new Date().getFullYear()))))));
67
+ href: link.href,
68
+ tabIndex: tabIndex
69
+ }, link.text));
70
+ })), /*#__PURE__*/_react["default"].createElement(Copyright, null, copyright || translatedLabels.footer.copyrightText(new Date().getFullYear())))));
92
71
  };
93
-
94
- var FooterContainer = _styledComponents["default"].footer(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n @media (min-width: ", "rem) {\n padding: 24px 36px 24px 36px;\n }\n\n @media (max-width: ", "rem) {\n //mobile phones\n padding: 20px;\n }\n\n background-color: ", ";\n margin-top: ", ";\n width: 100%;\n box-sizing: border-box;\n min-height: ", ";\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n"])), _variables.responsiveSizes.small, _variables.responsiveSizes.small, function (props) {
72
+ var FooterContainer = _styledComponents["default"].footer(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n background-color: ", ";\n box-sizing: border-box;\n display: flex;\n flex-direction: ", ";\n justify-content: space-between;\n margin-top: ", ";\n min-height: ", ";\n width: 100%;\n gap: ", ";\n @media (min-width: ", "rem) {\n padding: ", ";\n }\n @media (max-width: ", "rem) {\n padding: 20px;\n flex-direction: column;\n }\n"])), function (props) {
95
73
  return props.theme.backgroundColor;
96
74
  }, function (props) {
97
- return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
75
+ return (props === null || props === void 0 ? void 0 : props.mode) === "default" ? "column" : "row";
98
76
  }, function (props) {
99
- return props.theme.height;
100
- });
101
-
102
- var FooterHeader = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n row-gap: 24px;\n"])));
103
-
104
- var FooterFooter = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n align-items: flex-end;\n\n @media (min-width: ", "rem) {\n flex-direction: row;\n }\n\n @media (max-width: ", "rem) {\n //mobile phones\n flex-direction: column;\n align-items: center;\n }\n\n border-top: ", ";\n margin-top: 16px;\n"])), _variables.responsiveSizes.small, _variables.responsiveSizes.small, function (props) {
77
+ return props.margin ? _variables.spaces[props.margin] : "0px";
78
+ }, function (props) {
79
+ return (props === null || props === void 0 ? void 0 : props.mode) === "default" ? props.theme.height : "40px";
80
+ }, function (props) {
81
+ return (props === null || props === void 0 ? void 0 : props.mode) === "default" ? "0px" : "32px";
82
+ }, _variables.responsiveSizes.small, function (props) {
83
+ return (props === null || props === void 0 ? void 0 : props.mode) === "default" ? "24px 32px" : "12px 32px";
84
+ }, _variables.responsiveSizes.small);
85
+ 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) {
105
86
  return "".concat(props.theme.bottomLinksDividerThickness, " ").concat(props.theme.bottomLinksDividerStyle, " ").concat(props.theme.bottomLinksDividerColor);
106
87
  });
107
-
108
- var BottomLinks = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n padding-top: ", ";\n display: inline-flex;\n flex-wrap: wrap;\n\n @media (min-width: ", "rem) {\n max-width: 60%;\n }\n\n @media (max-width: ", "rem) {\n //mobile phones\n max-width: 100%;\n width: 100%;\n }\n\n & > span:last-child span {\n display: none;\n }\n align-self: center;\n"])), function (props) {
88
+ var ChildComponents = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n min-height: 16px;\n overflow: hidden;\n"])));
89
+ 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
90
  return props.theme.bottomLinksDividerSpacing;
110
- }, _variables.responsiveSizes.small, _variables.responsiveSizes.small);
111
-
112
- var ChildComponents = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n min-height: 16px;\n padding: ", ";\n padding-top: ", ";\n padding-right: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n overflow: hidden;\n"])), function (props) {
113
- return props.padding && (0, _typeof2["default"])(props.padding) !== "object" ? _variables.spaces[props.padding] : "0px";
114
91
  }, function (props) {
115
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.top ? _variables.spaces[props.padding.top] : "";
116
- }, function (props) {
117
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.right ? _variables.spaces[props.padding.right] : "";
118
- }, function (props) {
119
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.bottom ? _variables.spaces[props.padding.bottom] : "";
120
- }, function (props) {
121
- return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.left ? _variables.spaces[props.padding.left] : "";
122
- });
123
-
124
- var Copyright = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n\n @media (min-width: ", "rem) {\n max-width: 40%;\n text-align: right;\n }\n\n @media (max-width: ", "rem) {\n //mobile phones\n max-width: 100%;\n width: 100%;\n text-align: left;\n }\n\n padding-top: ", ";\n"])), function (props) {
125
92
  return props.theme.copyrightFontFamily;
126
93
  }, function (props) {
127
94
  return props.theme.copyrightFontSize;
@@ -131,43 +98,31 @@ var Copyright = _styledComponents["default"].div(_templateObject6 || (_templateO
131
98
  return props.theme.copyrightFontWeight;
132
99
  }, function (props) {
133
100
  return props.theme.copyrightFontColor;
134
- }, _variables.responsiveSizes.small, _variables.responsiveSizes.small, function (props) {
135
- return props.theme.bottomLinksDividerSpacing;
136
- });
137
-
138
- var LogoContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n"])), function (props) {
139
- return props.theme.logoHeight;
101
+ }, _variables.responsiveSizes.small, _variables.responsiveSizes.small);
102
+ var LogoContainer = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n"])), function (props) {
103
+ return (props === null || props === void 0 ? void 0 : props.mode) === "default" ? props.theme.logoHeight : "16px";
140
104
  }, function (props) {
141
105
  return props.theme.logoWidth;
142
106
  });
143
-
144
- var LogoImg = _styledComponents["default"].img(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n"])), function (props) {
145
- return props.theme.logoHeight;
107
+ var LogoImg = _styledComponents["default"].img(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n"])), function (props) {
108
+ return (props === null || props === void 0 ? void 0 : props.mode) === "default" ? props.theme.logoHeight : "16px";
146
109
  }, function (props) {
147
110
  return props.theme.logoWidth;
148
111
  });
149
-
150
- var SocialLinkContainer = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-self: center;\n"])));
151
-
152
- var SocialAnchor = _styledComponents["default"].a(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n & {\n display: inline-flex;\n margin-left: ", ";\n }\n"])), function (props) {
112
+ 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) {
153
113
  return props.index === 0 ? "0px" : props.theme.socialLinksGutter;
154
114
  });
155
-
156
- var SocialIconImg = _styledComponents["default"].img(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])([""])));
157
-
158
- var SocialIconContainer = _styledComponents["default"].div(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n & {\n display: inline-flex;\n height: ", ";\n width: ", ";\n color: ", ";\n }\n\n overflow: hidden;\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
115
+ 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) {
159
116
  return props.theme.socialLinksSize;
160
117
  }, function (props) {
161
118
  return props.theme.socialLinksSize;
162
119
  }, function (props) {
163
120
  return props.theme.socialLinksColor;
164
121
  });
165
-
166
- var Point = _styledComponents["default"].span(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2["default"])(["\n margin: 0px 10px;\n color: ", ";\n"])), function (props) {
167
- return props.theme.bottomLinksFontColor;
168
- });
169
-
170
- var BottomLink = _styledComponents["default"].a(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteral2["default"])(["\n text-decoration: ", ";\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n"])), function (props) {
122
+ 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) {
123
+ return props.theme.bottomLinksDividerSpacing;
124
+ }, _variables.responsiveSizes.small, _variables.responsiveSizes.small);
125
+ 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) {
171
126
  return props.theme.bottomLinksTextDecoration;
172
127
  }, function (props) {
173
128
  return props.theme.bottomLinksFontColor;
@@ -180,6 +135,4 @@ var BottomLink = _styledComponents["default"].a(_templateObject14 || (_templateO
180
135
  }, function (props) {
181
136
  return props.theme.bottomLinksFontWeight;
182
137
  });
183
-
184
- var _default = DxcFooter;
185
- exports["default"] = _default;
138
+ var _default = exports["default"] = DxcFooter;
@@ -3,6 +3,8 @@ import DxcFooter from "./Footer";
3
3
  import Title from "../../.storybook/components/Title";
4
4
  import ExampleContainer from "../../.storybook/components/ExampleContainer";
5
5
  import { HalstackProvider } from "../HalstackContext";
6
+ import DxcFlex from "../flex/Flex";
7
+ import DxcTypography from "../typography/Typography";
6
8
 
7
9
  const social = [
8
10
  {
@@ -26,17 +28,20 @@ const social = [
26
28
  </g>
27
29
  </svg>
28
30
  ),
31
+ title: "Linkedin",
29
32
  },
30
33
  {
31
- href: "https://twitter.com/dxctechnology",
34
+ href: "https://x.com/dxctechnology",
32
35
  logo: (
33
- <svg viewBox="0 0 248 204" fill="currentColor">
36
+ <svg width="256" height="256" viewBox="0 0 256 256" fill="none" xmlns="http://www.w3.org/2000/svg">
37
+ <rect width="256" height="256" rx="40" fill="white" />
34
38
  <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"
39
+ 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"
40
+ fill="#0F1419"
37
41
  />
38
42
  </svg>
39
43
  ),
44
+ title: "X",
40
45
  },
41
46
  {
42
47
  href: "https://www.facebook.com/DXCTechnology/",
@@ -63,6 +68,7 @@ const social = [
63
68
  </g>
64
69
  </svg>
65
70
  ),
71
+ title: "Facebook",
66
72
  },
67
73
  ];
68
74
 
@@ -72,8 +78,8 @@ const bottom = [
72
78
  text: "Linkedin",
73
79
  },
74
80
  {
75
- href: "https://twitter.com/dxctechnology",
76
- text: "Twitter",
81
+ href: "https://x.com/dxctechnology",
82
+ text: "X",
77
83
  },
78
84
  {
79
85
  href: "https://www.facebook.com/DXCTechnology/",
@@ -91,81 +97,15 @@ const opinionatedTheme = {
91
97
  baseColor: "#000000",
92
98
  fontColor: "#ffffff",
93
99
  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
- ),
100
+ logo: "https://upload.wikimedia.org/wikipedia/commons/thumb/b/b8/2021_Facebook_icon.svg/2048px-2021_Facebook_icon.svg.png",
166
101
  },
167
102
  };
168
103
 
104
+ const info = [
105
+ { label: "Example Label", text: "Example" },
106
+ { label: "Example Label", text: "Example" },
107
+ ];
108
+
169
109
  export const Chromatic = () => (
170
110
  <>
171
111
  <ExampleContainer>
@@ -180,6 +120,26 @@ export const Chromatic = () => (
180
120
  </div>
181
121
  </DxcFooter>
182
122
  </ExampleContainer>
123
+ <ExampleContainer pseudoState="pseudo-focus">
124
+ <Title title="Focused bottom and social links" theme="light" level={4} />
125
+ <DxcFooter copyright="Copyright" socialLinks={social} bottomLinks={bottom}>
126
+ <div>
127
+ <a href="https://www.linkedin.com/company/dxctechnology">Linkedin</a>
128
+ </div>
129
+ </DxcFooter>
130
+ </ExampleContainer>
131
+ <ExampleContainer>
132
+ <Title title="Reduced" theme="light" level={4} />
133
+ <DxcFooter mode="reduced">
134
+ <DxcFlex justifyContent="center" alignItems="center" gap={"1rem"}>
135
+ {info.map((tag, index) => (
136
+ <DxcTypography color="white" key={`tag${index}${tag.label}${tag.text}`} >
137
+ {tag.label}: {tag.text}
138
+ </DxcTypography>
139
+ ))}
140
+ </DxcFlex>
141
+ </DxcFooter>
142
+ </ExampleContainer>
183
143
  <Title title="Margins" theme="light" level={2} />
184
144
  <ExampleContainer>
185
145
  <Title title="Xxsmall margin" theme="light" level={4} />
@@ -197,23 +157,6 @@ export const Chromatic = () => (
197
157
  <Title title="Xxlarge margin" theme="light" level={4} />
198
158
  <DxcFooter margin="xxlarge"></DxcFooter>
199
159
  </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
160
  <Title title="Opinionated theme" theme="light" level={2} />
218
161
  <ExampleContainer>
219
162
  <HalstackProvider theme={opinionatedTheme}>
@@ -1,80 +1,65 @@
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
- var _linkedin = _interopRequireDefault(require("../../app/src/images/linkedin.svg"));
10
-
11
- var _Footer = _interopRequireDefault(require("./Footer"));
12
-
6
+ var _Footer = _interopRequireDefault(require("./Footer.tsx"));
7
+ var social = [{
8
+ href: "https://www.test.com/social",
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"
11
+ }];
12
+ var bottom = [{
13
+ href: "https://www.test.com/bottom",
14
+ text: "bottom-link-text"
15
+ }];
13
16
  describe("Footer component tests", function () {
14
17
  test("Footer renders with default logo", function () {
15
18
  var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], null)),
16
- getByTitle = _render.getByTitle;
17
-
19
+ getByTitle = _render.getByTitle;
18
20
  expect(getByTitle("DXC Logo")).toBeTruthy();
19
21
  });
20
22
  test("Footer renders with social links", function () {
21
- var social = [{
22
- href: "https://www.test.com/test",
23
- logo: _linkedin["default"]
24
- }];
25
-
26
23
  var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
27
- socialLinks: social
28
- })),
29
- getByRole = _render2.getByRole;
30
-
24
+ socialLinks: social
25
+ })),
26
+ getByRole = _render2.getByRole;
31
27
  var socialIcon = getByRole("link");
32
- expect(socialIcon.getAttribute("href")).toBe("https://www.test.com/test");
28
+ expect(socialIcon.getAttribute("href")).toBe("https://www.test.com/social");
33
29
  });
34
30
  test("Footer renders with bottom links", function () {
35
- var bottom = [{
36
- href: "https://www.test.com/test",
37
- text: "bottom-link-text"
38
- }];
39
-
40
31
  var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
41
- bottomLinks: bottom
42
- })),
43
- getByText = _render3.getByText;
44
-
32
+ bottomLinks: bottom
33
+ })),
34
+ getByText = _render3.getByText;
45
35
  var link = getByText("bottom-link-text");
46
- expect(link.getAttribute("href")).toBe("https://www.test.com/test");
36
+ expect(link.getAttribute("href")).toBe("https://www.test.com/bottom");
47
37
  });
48
38
  test("Footer renders with copyright text", function () {
49
39
  var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
50
- copyright: "test-copyright"
51
- })),
52
- getByText = _render4.getByText;
53
-
40
+ copyright: "test-copyright"
41
+ })),
42
+ getByText = _render4.getByText;
54
43
  expect(getByText("test-copyright")).toBeTruthy();
55
44
  });
56
45
  test("Footer renders with correct children", function () {
57
- //We need to force the offsetWidth value
46
+ // We need to force the offsetWidth value
58
47
  Object.defineProperty(HTMLElement.prototype, "offsetWidth", {
59
48
  configurable: true,
60
49
  value: 1024
61
50
  });
62
-
63
51
  var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], null, /*#__PURE__*/_react["default"].createElement("p", null, "footer-child-text"))),
64
- getByText = _render5.getByText;
65
-
52
+ getByText = _render5.getByText;
66
53
  expect(getByText("footer-child-text")).toBeTruthy();
67
54
  });
68
55
  test("Footer renders with children in mobile", function () {
69
- //425 is mobile width
56
+ // 425 is mobile width
70
57
  Object.defineProperty(HTMLElement.prototype, "offsetWidth", {
71
58
  configurable: true,
72
59
  value: 425
73
60
  });
74
-
75
61
  var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], null, /*#__PURE__*/_react["default"].createElement("p", null, "footer-child-text"))),
76
- queryByText = _render6.queryByText;
77
-
62
+ queryByText = _render6.queryByText;
78
63
  expect(queryByText("footer-child-text")).toBeTruthy();
79
64
  });
80
65
  test("Footer is fully rendered", function () {
@@ -82,25 +67,16 @@ describe("Footer component tests", function () {
82
67
  configurable: true,
83
68
  value: 1024
84
69
  });
85
- var social = [{
86
- href: "https://www.test.com/social",
87
- logo: _linkedin["default"]
88
- }];
89
- var bottom = [{
90
- href: "https://www.test.com/bottom",
91
- text: "bottom-link-text"
92
- }];
93
-
94
70
  var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
95
- socialLinks: social,
96
- bottomLinks: bottom,
97
- copyright: "test-copyright"
98
- }, /*#__PURE__*/_react["default"].createElement("p", null, "footer-child-text"))),
99
- getAllByRole = _render7.getAllByRole,
100
- getByText = _render7.getByText;
101
-
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;
102
77
  var socialIcon = getAllByRole("link")[0];
103
78
  expect(socialIcon.getAttribute("href")).toBe("https://www.test.com/social");
79
+ expect(socialIcon.getAttribute("aria-label")).toBe("test");
104
80
  var bottomLink = getByText("bottom-link-text");
105
81
  expect(bottomLink.getAttribute("href")).toBe("https://www.test.com/bottom");
106
82
  expect(getByText("test-copyright")).toBeTruthy();
package/footer/Icons.d.ts CHANGED
@@ -1,2 +1,3 @@
1
- /// <reference types="react" />
2
- export declare const dxcLogo: JSX.Element;
1
+ import React from "react";
2
+ export declare const dxcLogo: React.JSX.Element;
3
+ export declare const dxcSmallLogo: React.JSX.Element;