@dxc-technology/halstack-react 11.0.0 → 12.0.0

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 (276) hide show
  1. package/BackgroundColorContext.d.ts +1 -10
  2. package/BackgroundColorContext.js +3 -8
  3. package/HalstackContext.d.ts +32 -142
  4. package/HalstackContext.js +2 -2
  5. package/accordion/Accordion.accessibility.test.js +71 -0
  6. package/accordion/Accordion.js +13 -27
  7. package/accordion/Accordion.stories.tsx +7 -49
  8. package/accordion/types.d.ts +1 -1
  9. package/accordion-group/AccordionGroup.accessibility.test.js +88 -0
  10. package/accordion-group/AccordionGroup.d.ts +2 -3
  11. package/accordion-group/AccordionGroup.js +4 -4
  12. package/accordion-group/AccordionGroup.stories.tsx +23 -23
  13. package/accordion-group/AccordionGroupAccordion.js +3 -3
  14. package/accordion-group/AccordionGroupContext.d.ts +3 -0
  15. package/accordion-group/AccordionGroupContext.js +8 -0
  16. package/accordion-group/types.d.ts +1 -1
  17. package/action-icon/ActionIcon.accessibility.test.js +63 -0
  18. package/action-icon/ActionIcon.d.ts +4 -0
  19. package/action-icon/ActionIcon.js +48 -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/action-icon/types.js +5 -0
  24. package/alert/Alert.accessibility.test.js +95 -0
  25. package/alert/Alert.js +21 -75
  26. package/badge/Badge.accessibility.test.js +129 -0
  27. package/badge/Badge.d.ts +1 -1
  28. package/badge/Badge.js +141 -28
  29. package/badge/Badge.stories.tsx +210 -0
  30. package/badge/Badge.test.js +30 -0
  31. package/badge/types.d.ts +52 -3
  32. package/box/Box.accessibility.test.js +33 -0
  33. package/box/Box.js +2 -5
  34. package/breadcrumbs/Breadcrumbs.accessibility.test.d.ts +1 -0
  35. package/breadcrumbs/Breadcrumbs.accessibility.test.js +96 -0
  36. package/breadcrumbs/Breadcrumbs.d.ts +4 -0
  37. package/breadcrumbs/Breadcrumbs.js +79 -0
  38. package/breadcrumbs/Breadcrumbs.stories.tsx +194 -0
  39. package/breadcrumbs/Breadcrumbs.test.d.ts +1 -0
  40. package/breadcrumbs/Breadcrumbs.test.js +169 -0
  41. package/breadcrumbs/Item.d.ts +4 -0
  42. package/breadcrumbs/Item.js +52 -0
  43. package/breadcrumbs/dropdownTheme.d.ts +53 -0
  44. package/breadcrumbs/dropdownTheme.js +62 -0
  45. package/breadcrumbs/types.d.ts +16 -0
  46. package/breadcrumbs/types.js +5 -0
  47. package/bulleted-list/BulletedList.accessibility.test.js +119 -0
  48. package/bulleted-list/BulletedList.js +16 -23
  49. package/bulleted-list/BulletedList.stories.tsx +1 -2
  50. package/button/Button.accessibility.test.js +127 -0
  51. package/button/Button.js +16 -16
  52. package/button/Button.stories.tsx +34 -53
  53. package/button/Button.test.js +3 -1
  54. package/button/types.d.ts +1 -1
  55. package/card/Card.accessibility.test.js +36 -0
  56. package/card/Card.js +3 -2
  57. package/checkbox/Checkbox.accessibility.test.js +87 -0
  58. package/checkbox/Checkbox.js +31 -36
  59. package/chip/Chip.accessibility.test.js +67 -0
  60. package/chip/Chip.js +11 -6
  61. package/chip/Chip.stories.tsx +10 -25
  62. package/chip/Chip.test.js +4 -4
  63. package/common/coreTokens.d.ts +105 -14
  64. package/common/coreTokens.js +40 -22
  65. package/common/variables.d.ts +31 -138
  66. package/common/variables.js +103 -210
  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/container/types.js +5 -0
  72. package/contextual-menu/ContextualMenu.accessibility.test.js +97 -0
  73. package/contextual-menu/ContextualMenu.d.ts +5 -0
  74. package/contextual-menu/ContextualMenu.js +88 -0
  75. package/contextual-menu/ContextualMenu.stories.tsx +232 -0
  76. package/contextual-menu/ContextualMenu.test.js +205 -0
  77. package/contextual-menu/GroupItem.d.ts +4 -0
  78. package/contextual-menu/GroupItem.js +67 -0
  79. package/contextual-menu/ItemAction.d.ts +4 -0
  80. package/contextual-menu/ItemAction.js +51 -0
  81. package/contextual-menu/MenuItem.d.ts +4 -0
  82. package/contextual-menu/MenuItem.js +29 -0
  83. package/contextual-menu/SingleItem.d.ts +4 -0
  84. package/contextual-menu/SingleItem.js +38 -0
  85. package/contextual-menu/types.d.ts +58 -0
  86. package/contextual-menu/types.js +5 -0
  87. package/date-input/Calendar.js +1 -1
  88. package/date-input/DateInput.accessibility.test.js +228 -0
  89. package/date-input/DateInput.js +4 -5
  90. package/date-input/DateInput.stories.tsx +15 -8
  91. package/date-input/DatePicker.js +13 -7
  92. package/date-input/YearPicker.js +1 -1
  93. package/date-input/types.d.ts +2 -2
  94. package/dialog/Dialog.accessibility.test.js +69 -0
  95. package/dialog/Dialog.js +11 -25
  96. package/dialog/Dialog.stories.tsx +176 -0
  97. package/dialog/Dialog.test.js +1 -1
  98. package/divider/Divider.accessibility.test.js +33 -0
  99. package/divider/Divider.d.ts +4 -0
  100. package/divider/Divider.js +36 -0
  101. package/divider/Divider.stories.tsx +223 -0
  102. package/divider/Divider.test.js +38 -0
  103. package/divider/types.d.ts +21 -0
  104. package/divider/types.js +5 -0
  105. package/dropdown/Dropdown.accessibility.test.js +180 -0
  106. package/dropdown/Dropdown.js +26 -39
  107. package/dropdown/Dropdown.stories.tsx +15 -26
  108. package/dropdown/Dropdown.test.js +18 -18
  109. package/dropdown/DropdownMenu.js +4 -4
  110. package/dropdown/DropdownMenuItem.js +8 -4
  111. package/dropdown/types.d.ts +3 -5
  112. package/file-input/FileInput.accessibility.test.js +160 -0
  113. package/file-input/FileInput.js +126 -141
  114. package/file-input/FileInput.test.js +84 -110
  115. package/file-input/FileItem.js +18 -28
  116. package/file-input/types.d.ts +1 -1
  117. package/footer/Footer.accessibility.test.js +125 -0
  118. package/footer/Footer.d.ts +1 -1
  119. package/footer/Footer.js +36 -31
  120. package/footer/Footer.stories.tsx +58 -2
  121. package/footer/Icons.d.ts +1 -0
  122. package/footer/Icons.js +52 -16
  123. package/footer/types.d.ts +8 -8
  124. package/header/Header.accessibility.test.js +93 -0
  125. package/header/Header.js +20 -41
  126. package/header/Header.stories.tsx +16 -0
  127. package/header/Icons.js +1 -6
  128. package/header/types.d.ts +4 -3
  129. package/heading/Heading.accessibility.test.js +33 -0
  130. package/heading/Heading.js +1 -1
  131. package/icon/Icon.accessibility.test.js +30 -0
  132. package/icon/Icon.d.ts +4 -0
  133. package/icon/Icon.js +33 -0
  134. package/icon/Icon.stories.tsx +28 -0
  135. package/icon/types.d.ts +4 -0
  136. package/icon/types.js +5 -0
  137. package/image/Image.accessibility.test.js +56 -0
  138. package/image/Image.js +1 -1
  139. package/image/Image.stories.tsx +3 -1
  140. package/layout/ApplicationLayout.d.ts +1 -1
  141. package/layout/ApplicationLayout.js +10 -7
  142. package/layout/Icons.d.ts +0 -1
  143. package/layout/Icons.js +1 -11
  144. package/link/Link.accessibility.test.js +108 -0
  145. package/link/Link.js +8 -6
  146. package/link/Link.stories.tsx +4 -4
  147. package/link/types.d.ts +1 -1
  148. package/main.d.ts +7 -3
  149. package/main.js +37 -9
  150. package/nav-tabs/NavTabs.accessibility.test.js +44 -0
  151. package/nav-tabs/NavTabs.d.ts +1 -2
  152. package/nav-tabs/NavTabs.js +10 -7
  153. package/nav-tabs/NavTabs.stories.tsx +29 -24
  154. package/nav-tabs/NavTabs.test.js +11 -9
  155. package/nav-tabs/NavTabsContext.d.ts +3 -0
  156. package/nav-tabs/NavTabsContext.js +8 -0
  157. package/nav-tabs/Tab.js +23 -23
  158. package/nav-tabs/types.d.ts +1 -1
  159. package/number-input/NumberInput.accessibility.test.js +228 -0
  160. package/number-input/NumberInput.d.ts +0 -7
  161. package/number-input/NumberInput.js +24 -5
  162. package/number-input/NumberInput.test.js +165 -6
  163. package/number-input/NumberInputContext.d.ts +3 -0
  164. package/number-input/NumberInputContext.js +8 -0
  165. package/number-input/types.d.ts +6 -0
  166. package/package.json +16 -14
  167. package/paginator/Paginator.accessibility.test.js +79 -0
  168. package/paginator/Paginator.js +14 -14
  169. package/paragraph/Paragraph.accessibility.test.js +28 -0
  170. package/paragraph/Paragraph.js +2 -7
  171. package/password-input/PasswordInput.accessibility.test.js +153 -0
  172. package/password-input/PasswordInput.js +7 -7
  173. package/password-input/PasswordInput.stories.tsx +0 -1
  174. package/password-input/PasswordInput.test.js +4 -4
  175. package/progress-bar/ProgressBar.accessibility.test.js +35 -0
  176. package/progress-bar/ProgressBar.js +11 -15
  177. package/quick-nav/QuickNav.accessibility.test.js +57 -0
  178. package/quick-nav/QuickNav.js +1 -1
  179. package/radio-group/Radio.js +1 -1
  180. package/radio-group/RadioGroup.accessibility.test.js +97 -0
  181. package/radio-group/RadioGroup.js +3 -2
  182. package/resultset-table/ResultsetTable.accessibility.test.js +285 -0
  183. package/resultset-table/ResultsetTable.d.ts +4 -1
  184. package/resultset-table/ResultsetTable.js +25 -13
  185. package/resultset-table/ResultsetTable.stories.tsx +118 -5
  186. package/resultset-table/ResultsetTable.test.js +76 -0
  187. package/resultset-table/types.d.ts +40 -7
  188. package/select/Listbox.js +28 -16
  189. package/select/Option.js +19 -10
  190. package/select/Select.accessibility.test.js +228 -0
  191. package/select/Select.js +57 -37
  192. package/select/Select.stories.tsx +59 -111
  193. package/select/Select.test.js +387 -456
  194. package/select/types.d.ts +3 -3
  195. package/sidenav/Sidenav.accessibility.test.js +59 -0
  196. package/sidenav/Sidenav.js +21 -19
  197. package/sidenav/Sidenav.stories.tsx +4 -9
  198. package/sidenav/types.d.ts +2 -2
  199. package/slider/Slider.accessibility.test.js +104 -0
  200. package/slider/Slider.js +40 -48
  201. package/spinner/Spinner.accessibility.test.js +96 -0
  202. package/spinner/Spinner.js +12 -16
  203. package/status-light/StatusLight.accessibility.test.js +157 -0
  204. package/status-light/StatusLight.d.ts +4 -0
  205. package/status-light/StatusLight.js +51 -0
  206. package/status-light/StatusLight.stories.tsx +74 -0
  207. package/status-light/StatusLight.test.js +25 -0
  208. package/status-light/types.d.ts +17 -0
  209. package/status-light/types.js +5 -0
  210. package/switch/Switch.accessibility.test.js +98 -0
  211. package/switch/Switch.js +24 -29
  212. package/switch/Switch.stories.tsx +12 -0
  213. package/table/DropdownTheme.js +62 -0
  214. package/table/Table.accessibility.test.js +93 -0
  215. package/table/Table.d.ts +6 -2
  216. package/table/Table.js +74 -12
  217. package/table/Table.stories.tsx +309 -2
  218. package/table/Table.test.js +92 -0
  219. package/table/types.d.ts +28 -0
  220. package/tabs/Tab.js +13 -9
  221. package/tabs/Tabs.accessibility.test.js +56 -0
  222. package/tabs/Tabs.js +12 -24
  223. package/tabs/Tabs.stories.tsx +8 -4
  224. package/tabs/Tabs.test.js +19 -37
  225. package/tabs/types.d.ts +2 -2
  226. package/tag/Tag.accessibility.test.js +69 -0
  227. package/tag/Tag.js +7 -7
  228. package/tag/Tag.stories.tsx +4 -7
  229. package/tag/Tag.test.js +4 -12
  230. package/tag/types.d.ts +2 -2
  231. package/text-input/Suggestion.js +1 -1
  232. package/text-input/Suggestions.js +19 -14
  233. package/text-input/TextInput.accessibility.test.js +321 -0
  234. package/text-input/TextInput.js +84 -105
  235. package/text-input/TextInput.stories.tsx +17 -8
  236. package/text-input/TextInput.test.js +96 -79
  237. package/textarea/Textarea.accessibility.test.js +155 -0
  238. package/textarea/Textarea.js +12 -17
  239. package/textarea/Textarea.stories.tsx +0 -1
  240. package/toggle-group/ToggleGroup.accessibility.test.js +107 -0
  241. package/toggle-group/ToggleGroup.js +6 -8
  242. package/toggle-group/ToggleGroup.stories.tsx +3 -3
  243. package/toggle-group/types.d.ts +2 -2
  244. package/typography/Typography.accessibility.test.js +339 -0
  245. package/useTheme.d.ts +31 -138
  246. package/utils/BaseTypography.js +1 -1
  247. package/utils/FocusLock.js +16 -6
  248. package/wizard/Wizard.accessibility.test.js +55 -0
  249. package/wizard/Wizard.js +14 -25
  250. package/wizard/Wizard.stories.tsx +19 -0
  251. package/wizard/types.d.ts +2 -2
  252. package/common/OpenSans.css +0 -69
  253. package/common/fonts/OpenSans-Bold.ttf +0 -0
  254. package/common/fonts/OpenSans-BoldItalic.ttf +0 -0
  255. package/common/fonts/OpenSans-ExtraBold.ttf +0 -0
  256. package/common/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  257. package/common/fonts/OpenSans-Italic.ttf +0 -0
  258. package/common/fonts/OpenSans-Light.ttf +0 -0
  259. package/common/fonts/OpenSans-LightItalic.ttf +0 -0
  260. package/common/fonts/OpenSans-Regular.ttf +0 -0
  261. package/common/fonts/OpenSans-SemiBold.ttf +0 -0
  262. package/common/fonts/OpenSans-SemiBoldItalic.ttf +0 -0
  263. package/date-input/Icons.d.ts +0 -6
  264. package/date-input/Icons.js +0 -58
  265. package/paginator/Icons.d.ts +0 -5
  266. package/paginator/Icons.js +0 -40
  267. package/password-input/Icons.d.ts +0 -6
  268. package/password-input/Icons.js +0 -35
  269. package/select/Icons.d.ts +0 -10
  270. package/select/Icons.js +0 -89
  271. package/sidenav/Icons.d.ts +0 -7
  272. package/sidenav/Icons.js +0 -47
  273. package/text-input/Icons.d.ts +0 -8
  274. package/text-input/Icons.js +0 -56
  275. /package/{layout → sidenav}/SidenavContext.d.ts +0 -0
  276. /package/{layout → sidenav}/SidenavContext.js +0 -0
package/footer/Footer.js CHANGED
@@ -1,24 +1,23 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof3 = require("@babel/runtime/helpers/typeof");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports["default"] = void 0;
9
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
10
9
  var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
11
10
  var _react = _interopRequireWildcard(require("react"));
12
11
  var _styledComponents = _interopRequireWildcard(require("styled-components"));
13
12
  var _variables = require("../common/variables");
14
13
  var _useTheme = _interopRequireDefault(require("../useTheme"));
15
14
  var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
16
- var _BackgroundColorContext = require("../BackgroundColorContext");
17
15
  var _Icons = require("./Icons");
18
16
  var _Flex = _interopRequireDefault(require("../flex/Flex"));
17
+ var _Icon = _interopRequireDefault(require("../icon/Icon"));
19
18
  var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
20
19
  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); }
21
- function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof3(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; }
20
+ 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 && {}.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; }
22
21
  var DxcFooter = function DxcFooter(_ref) {
23
22
  var socialLinks = _ref.socialLinks,
24
23
  bottomLinks = _ref.bottomLinks,
@@ -26,31 +25,31 @@ var DxcFooter = function DxcFooter(_ref) {
26
25
  children = _ref.children,
27
26
  margin = _ref.margin,
28
27
  _ref$tabIndex = _ref.tabIndex,
29
- tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
28
+ tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex,
29
+ _ref$mode = _ref.mode,
30
+ mode = _ref$mode === void 0 ? "default" : _ref$mode;
30
31
  var colorsTheme = (0, _useTheme["default"])();
31
32
  var translatedLabels = (0, _useTranslatedLabels["default"])();
32
33
  var footerLogo = (0, _react.useMemo)(function () {
33
- if (!colorsTheme.footer.logo) {
34
- return _Icons.dxcLogo;
35
- }
36
- if (typeof colorsTheme.footer.logo === "string") {
37
- return /*#__PURE__*/_react["default"].createElement(LogoImg, {
38
- alt: translatedLabels.formFields.logoAlternativeText,
39
- src: colorsTheme.footer.logo
40
- });
41
- }
42
- return colorsTheme.footer.logo;
34
+ return !colorsTheme.footer.logo ? mode === "default" ? _Icons.dxcLogo : _Icons.dxcSmallLogo : typeof colorsTheme.footer.logo === "string" ? /*#__PURE__*/_react["default"].createElement(LogoImg, {
35
+ mode: mode,
36
+ alt: translatedLabels.formFields.logoAlternativeText,
37
+ src: colorsTheme.footer.logo
38
+ }) : colorsTheme.footer.logo;
43
39
  }, [colorsTheme]);
44
40
  return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
45
41
  theme: colorsTheme.footer
46
42
  }, /*#__PURE__*/_react["default"].createElement(FooterContainer, {
47
- margin: margin
43
+ margin: margin,
44
+ mode: mode
48
45
  }, /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
49
46
  justifyContent: "space-between",
50
47
  alignItems: "center",
51
48
  wrap: "wrap",
52
49
  gap: "1.5rem"
53
- }, /*#__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) {
50
+ }, /*#__PURE__*/_react["default"].createElement(LogoContainer, {
51
+ mode: mode
52
+ }, footerLogo), mode === "default" && /*#__PURE__*/_react["default"].createElement(_Flex["default"], null, socialLinks === null || socialLinks === void 0 ? void 0 : socialLinks.map(function (link, index) {
54
53
  return /*#__PURE__*/_react["default"].createElement(SocialAnchor, {
55
54
  href: link.href,
56
55
  tabIndex: tabIndex,
@@ -58,12 +57,10 @@ var DxcFooter = function DxcFooter(_ref) {
58
57
  "aria-label": link.title,
59
58
  key: "social".concat(index).concat(link.href),
60
59
  index: index
61
- }, /*#__PURE__*/_react["default"].createElement(SocialIconContainer, null, typeof link.logo === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
62
- src: link.logo
60
+ }, /*#__PURE__*/_react["default"].createElement(SocialIconContainer, null, typeof link.logo === "string" ? /*#__PURE__*/_react["default"].createElement(_Icon["default"], {
61
+ icon: link.logo
63
62
  }) : link.logo));
64
- }))), /*#__PURE__*/_react["default"].createElement(ChildComponents, null, /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
65
- color: colorsTheme.footer.backgroundColor
66
- }, 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) {
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) {
67
64
  return /*#__PURE__*/_react["default"].createElement("span", {
68
65
  key: "bottom".concat(index).concat(link.text)
69
66
  }, /*#__PURE__*/_react["default"].createElement(BottomLink, {
@@ -72,13 +69,19 @@ var DxcFooter = function DxcFooter(_ref) {
72
69
  }, link.text));
73
70
  })), /*#__PURE__*/_react["default"].createElement(Copyright, null, copyright || translatedLabels.footer.copyrightText(new Date().getFullYear())))));
74
71
  };
75
- 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) {
76
- return props.theme.height;
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) {
73
+ return props.theme.backgroundColor;
77
74
  }, function (props) {
78
- 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";
79
76
  }, function (props) {
80
- return props.theme.backgroundColor;
81
- }, _variables.responsiveSizes.small, _variables.responsiveSizes.small);
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);
82
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) {
83
86
  return "".concat(props.theme.bottomLinksDividerThickness, " ").concat(props.theme.bottomLinksDividerStyle, " ").concat(props.theme.bottomLinksDividerColor);
84
87
  });
@@ -97,24 +100,26 @@ var Copyright = _styledComponents["default"].div(_templateObject4 || (_templateO
97
100
  return props.theme.copyrightFontColor;
98
101
  }, _variables.responsiveSizes.small, _variables.responsiveSizes.small);
99
102
  var LogoContainer = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n"])), function (props) {
100
- return props.theme.logoHeight;
103
+ return (props === null || props === void 0 ? void 0 : props.mode) === "default" ? props.theme.logoHeight : "16px";
101
104
  }, function (props) {
102
105
  return props.theme.logoWidth;
103
106
  });
104
107
  var LogoImg = _styledComponents["default"].img(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n"])), function (props) {
105
- return props.theme.logoHeight;
108
+ return (props === null || props === void 0 ? void 0 : props.mode) === "default" ? props.theme.logoHeight : "16px";
106
109
  }, function (props) {
107
110
  return props.theme.logoWidth;
108
111
  });
109
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) {
110
113
  return props.index === 0 ? "0px" : props.theme.socialLinksGutter;
111
114
  });
112
- 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) {
115
+ var SocialIconContainer = _styledComponents["default"].div(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n color: ", ";\n overflow: hidden;\n font-size: ", ";\n\n svg {\n height: ", ";\n width: ", ";\n }\n"])), function (props) {
116
+ return props.theme.socialLinksColor;
117
+ }, function (props) {
113
118
  return props.theme.socialLinksSize;
114
119
  }, function (props) {
115
120
  return props.theme.socialLinksSize;
116
121
  }, function (props) {
117
- return props.theme.socialLinksColor;
122
+ return props.theme.socialLinksSize;
118
123
  });
119
124
  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) {
120
125
  return props.theme.bottomLinksDividerSpacing;
@@ -3,12 +3,16 @@ 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";
8
+ import preview from "../../.storybook/preview";
9
+ import { disabledRules } from "../../test/accessibility/rules/specific/footer/disabledRules";
6
10
 
7
11
  const social = [
8
12
  {
9
13
  href: "https://www.linkedin.com/company/dxctechnology",
10
14
  logo: (
11
- <svg version="1.1" id="Capa_1" x="0px" y="0px" viewBox="0 0 438.536 438.536" fill="currentColor">
15
+ <svg version="1.1" x="0px" y="0px" viewBox="0 0 438.536 438.536" fill="currentColor">
12
16
  <g>
13
17
  <path
14
18
  d="M414.41,24.123C398.333,8.042,378.963,0,356.315,0H82.228C59.58,0,40.21,8.042,24.126,24.123
@@ -46,7 +50,6 @@ const social = [
46
50
  logo: (
47
51
  <svg
48
52
  version="1.1"
49
- id="Capa_1"
50
53
  x="0px"
51
54
  y="0px"
52
55
  viewBox="0 0 438.536 438.536"
@@ -70,6 +73,24 @@ const social = [
70
73
  },
71
74
  ];
72
75
 
76
+ const socialMaterialIcons = [
77
+ {
78
+ href: "https://www.linkedin.com/company/dxctechnology",
79
+ logo: "person",
80
+ title: "Linkedin",
81
+ },
82
+ {
83
+ href: "https://x.com/dxctechnology",
84
+ logo: "group",
85
+ title: "X",
86
+ },
87
+ {
88
+ href: "https://www.facebook.com/DXCTechnology/",
89
+ logo: "thumb_up",
90
+ title: "Facebook",
91
+ },
92
+ ];
93
+
73
94
  const bottom = [
74
95
  {
75
96
  href: "https://www.linkedin.com/company/dxctechnology",
@@ -88,6 +109,16 @@ const bottom = [
88
109
  export default {
89
110
  title: "Footer",
90
111
  component: DxcFooter,
112
+ parameters: {
113
+ a11y: {
114
+ config: {
115
+ rules: [
116
+ ...disabledRules.map((ruleId) => ({ id: ruleId, enabled: false })),
117
+ ...preview?.parameters?.a11y?.config?.rules,
118
+ ],
119
+ },
120
+ },
121
+ },
91
122
  };
92
123
 
93
124
  const opinionatedTheme = {
@@ -99,6 +130,11 @@ const opinionatedTheme = {
99
130
  },
100
131
  };
101
132
 
133
+ const info = [
134
+ { label: "Example Label", text: "Example" },
135
+ { label: "Example Label", text: "Example" },
136
+ ];
137
+
102
138
  export const Chromatic = () => (
103
139
  <>
104
140
  <ExampleContainer>
@@ -113,6 +149,14 @@ export const Chromatic = () => (
113
149
  </div>
114
150
  </DxcFooter>
115
151
  </ExampleContainer>
152
+ <ExampleContainer>
153
+ <Title title="With children, copyright, bottom links and social links from material" theme="light" level={4} />
154
+ <DxcFooter copyright="Copyright" socialLinks={socialMaterialIcons} bottomLinks={bottom}>
155
+ <div>
156
+ <a href="https://www.linkedin.com/company/dxctechnology">Linkedin</a>
157
+ </div>
158
+ </DxcFooter>
159
+ </ExampleContainer>
116
160
  <ExampleContainer pseudoState="pseudo-focus">
117
161
  <Title title="Focused bottom and social links" theme="light" level={4} />
118
162
  <DxcFooter copyright="Copyright" socialLinks={social} bottomLinks={bottom}>
@@ -121,6 +165,18 @@ export const Chromatic = () => (
121
165
  </div>
122
166
  </DxcFooter>
123
167
  </ExampleContainer>
168
+ <ExampleContainer>
169
+ <Title title="Reduced" theme="light" level={4} />
170
+ <DxcFooter mode="reduced">
171
+ <DxcFlex justifyContent="center" alignItems="center" gap={"1rem"}>
172
+ {info.map((tag, index) => (
173
+ <DxcTypography color="white" key={`tag${index}${tag.label}${tag.text}`}>
174
+ {tag.label}: {tag.text}
175
+ </DxcTypography>
176
+ ))}
177
+ </DxcFlex>
178
+ </DxcFooter>
179
+ </ExampleContainer>
124
180
  <Title title="Margins" theme="light" level={2} />
125
181
  <ExampleContainer>
126
182
  <Title title="Xxsmall margin" theme="light" level={4} />
package/footer/Icons.d.ts CHANGED
@@ -1,2 +1,3 @@
1
1
  import React from "react";
2
2
  export declare const dxcLogo: React.JSX.Element;
3
+ export declare const dxcSmallLogo: React.JSX.Element;
package/footer/Icons.js CHANGED
@@ -4,68 +4,104 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
4
4
  Object.defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
- exports.dxcLogo = void 0;
7
+ exports.dxcSmallLogo = exports.dxcLogo = void 0;
8
8
  var _react = _interopRequireDefault(require("react"));
9
9
  var dxcLogo = exports.dxcLogo = /*#__PURE__*/_react["default"].createElement("svg", {
10
- id: "g10",
11
10
  xmlns: "http://www.w3.org/2000/svg",
12
11
  width: "100%",
13
12
  height: "32",
14
13
  viewBox: "0 0 280.781 32"
15
- }, /*#__PURE__*/_react["default"].createElement("title", null, "DXC Logo"), /*#__PURE__*/_react["default"].createElement("g", {
16
- id: "g12"
17
- }, /*#__PURE__*/_react["default"].createElement("path", {
18
- id: "path14",
14
+ }, /*#__PURE__*/_react["default"].createElement("title", null, "DXC Logo"), /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement("path", {
15
+ d: "M171.5-54.124v12.539h-3.6V-54.124h-4.973v-3.191h13.54v3.191H171.5",
16
+ transform: "translate(-68.528 65.45)",
17
+ fill: "#fff"
18
+ }), /*#__PURE__*/_react["default"].createElement("path", {
19
+ d: "M189.96-41.585V-57.315h12.326v3.079h-8.753v3.191h7.7v3.078h-7.7v3.3h8.87v3.078H189.96",
20
+ transform: "translate(-77.56 65.45)",
21
+ fill: "#fff"
22
+ }), /*#__PURE__*/_react["default"].createElement("path", {
23
+ 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",
24
+ transform: "translate(-86.019 65.583)",
25
+ fill: "#fff"
26
+ }), /*#__PURE__*/_react["default"].createElement("path", {
27
+ d: "M254.988-41.585V-47.9h-6.63v6.315h-3.6V-57.315h3.6v6.225h6.63v-6.225h3.594v15.731h-3.594",
28
+ transform: "translate(-95.903 65.45)",
29
+ fill: "#fff"
30
+ }), /*#__PURE__*/_react["default"].createElement("path", {
31
+ d: "M285.991-41.585l-7.914-10v10h-3.549V-57.315h3.316l7.657,9.685v-9.685h3.549v15.731h-3.058",
32
+ transform: "translate(-105.869 65.45)",
33
+ fill: "#fff"
34
+ }), /*#__PURE__*/_react["default"].createElement("path", {
35
+ 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",
36
+ transform: "translate(-115.631 65.583)",
37
+ fill: "#fff"
38
+ }), /*#__PURE__*/_react["default"].createElement("path", {
39
+ d: "M336.786-41.585V-57.315h3.6v12.584h8.148v3.146H336.786",
40
+ transform: "translate(-126.654 65.45)",
41
+ fill: "#fff"
42
+ }), /*#__PURE__*/_react["default"].createElement("path", {
43
+ 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",
44
+ transform: "translate(-135.016 65.583)",
45
+ fill: "#fff"
46
+ }), /*#__PURE__*/_react["default"].createElement("path", {
47
+ 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",
48
+ transform: "translate(-145.284 65.583)",
49
+ fill: "#fff"
50
+ }), /*#__PURE__*/_react["default"].createElement("path", {
51
+ 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",
52
+ transform: "translate(-154.162 65.45)",
53
+ fill: "#fff"
54
+ }), /*#__PURE__*/_react["default"].createElement("path", {
55
+ 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",
56
+ transform: "translate(-21.08 69.298)",
57
+ fill: "#fff"
58
+ })));
59
+ var dxcSmallLogo = exports.dxcSmallLogo = /*#__PURE__*/_react["default"].createElement("svg", {
60
+ xmlns: "http://www.w3.org/2000/svg",
61
+ width: "100%",
62
+ height: "16",
63
+ viewBox: "0 0 280.781 32"
64
+ }, /*#__PURE__*/_react["default"].createElement("title", null, "DXC Logo"), /*#__PURE__*/_react["default"].createElement("g", null, /*#__PURE__*/_react["default"].createElement("path", {
19
65
  d: "M171.5-54.124v12.539h-3.6V-54.124h-4.973v-3.191h13.54v3.191H171.5",
20
66
  transform: "translate(-68.528 65.45)",
21
67
  fill: "#fff"
22
68
  }), /*#__PURE__*/_react["default"].createElement("path", {
23
- id: "path16",
24
69
  d: "M189.96-41.585V-57.315h12.326v3.079h-8.753v3.191h7.7v3.078h-7.7v3.3h8.87v3.078H189.96",
25
70
  transform: "translate(-77.56 65.45)",
26
71
  fill: "#fff"
27
72
  }), /*#__PURE__*/_react["default"].createElement("path", {
28
- id: "path18",
29
73
  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",
30
74
  transform: "translate(-86.019 65.583)",
31
75
  fill: "#fff"
32
76
  }), /*#__PURE__*/_react["default"].createElement("path", {
33
- id: "path20",
34
77
  d: "M254.988-41.585V-47.9h-6.63v6.315h-3.6V-57.315h3.6v6.225h6.63v-6.225h3.594v15.731h-3.594",
35
78
  transform: "translate(-95.903 65.45)",
36
79
  fill: "#fff"
37
80
  }), /*#__PURE__*/_react["default"].createElement("path", {
38
- id: "path22",
39
81
  d: "M285.991-41.585l-7.914-10v10h-3.549V-57.315h3.316l7.657,9.685v-9.685h3.549v15.731h-3.058",
40
82
  transform: "translate(-105.869 65.45)",
41
83
  fill: "#fff"
42
84
  }), /*#__PURE__*/_react["default"].createElement("path", {
43
- id: "path24",
44
85
  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",
45
86
  transform: "translate(-115.631 65.583)",
46
87
  fill: "#fff"
47
88
  }), /*#__PURE__*/_react["default"].createElement("path", {
48
- id: "path26",
49
89
  d: "M336.786-41.585V-57.315h3.6v12.584h8.148v3.146H336.786",
50
90
  transform: "translate(-126.654 65.45)",
51
91
  fill: "#fff"
52
92
  }), /*#__PURE__*/_react["default"].createElement("path", {
53
- id: "path28",
54
93
  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",
55
94
  transform: "translate(-135.016 65.583)",
56
95
  fill: "#fff"
57
96
  }), /*#__PURE__*/_react["default"].createElement("path", {
58
- id: "path30",
59
97
  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",
60
98
  transform: "translate(-145.284 65.583)",
61
99
  fill: "#fff"
62
100
  }), /*#__PURE__*/_react["default"].createElement("path", {
63
- id: "path32",
64
101
  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",
65
102
  transform: "translate(-154.162 65.45)",
66
103
  fill: "#fff"
67
104
  }), /*#__PURE__*/_react["default"].createElement("path", {
68
- id: "path34",
69
105
  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",
70
106
  transform: "translate(-21.08 69.298)",
71
107
  fill: "#fff"
package/footer/types.d.ts CHANGED
@@ -1,11 +1,5 @@
1
1
  /// <reference types="react" />
2
2
  type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
3
- type Size = {
4
- top?: Space;
5
- bottom?: Space;
6
- left?: Space;
7
- right?: Space;
8
- };
9
3
  type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
10
4
  type SocialLink = {
11
5
  /**
@@ -13,7 +7,7 @@ type SocialLink = {
13
7
  */
14
8
  href: string;
15
9
  /**
16
- * Element used as the icon for the link.
10
+ * Material Symbol name or SVG element as the icon used for the link.
17
11
  */
18
12
  logo: string | SVG;
19
13
  /**
@@ -54,11 +48,17 @@ type FooterPropsType = {
54
48
  /**
55
49
  * Size of the top margin to be applied to the footer.
56
50
  */
57
- margin?: Space | Size;
51
+ margin?: Space;
58
52
  /**
59
53
  * Value of the tabindex for all interactive elements, except those
60
54
  * inside the custom area.
61
55
  */
62
56
  tabIndex?: number;
57
+ /**
58
+ * Determines the visual style and layout
59
+ * - "default": The default mode with full content and styling.
60
+ * - "reduced": A reduced mode with minimal content and styling.
61
+ */
62
+ mode?: "default" | "reduced";
63
63
  };
64
64
  export default FooterPropsType;
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
5
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
6
+ var _react = _interopRequireDefault(require("react"));
7
+ var _react2 = require("@testing-library/react");
8
+ var _axeHelper = require("../../test/accessibility/axe-helper.js");
9
+ var _Header = _interopRequireDefault(require("./Header.tsx"));
10
+ var _Flex = _interopRequireDefault(require("../flex/Flex.tsx"));
11
+ var _Link = _interopRequireDefault(require("../link/Link.tsx"));
12
+ var _disabledRules = require("../../test/accessibility/rules/specific/header/disabledRules.js");
13
+ var disabledRules = {
14
+ rules: _disabledRules.disabledRules.reduce(function (rulesObj, rule) {
15
+ rulesObj[rule] = {
16
+ enabled: false
17
+ };
18
+ return rulesObj;
19
+ }, {})
20
+ };
21
+ var iconSVG = /*#__PURE__*/_react["default"].createElement("svg", {
22
+ viewBox: "0 0 24 24",
23
+ height: "24",
24
+ width: "24",
25
+ fill: "currentColor"
26
+ }, /*#__PURE__*/_react["default"].createElement("path", {
27
+ d: "M0 0h24v24H0z",
28
+ fill: "none"
29
+ }), /*#__PURE__*/_react["default"].createElement("path", {
30
+ d: "M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z"
31
+ }));
32
+ var iconUrl = "https://iconape.com/wp-content/files/yd/367773/svg/logo-linkedin-logo-icon-png-svg.png";
33
+ var options = [{
34
+ value: "1",
35
+ label: "Amazon",
36
+ icon: iconUrl
37
+ }, {
38
+ value: "2",
39
+ label: "Ebay",
40
+ icon: iconUrl
41
+ }, {
42
+ value: "3",
43
+ label: "Wallapop",
44
+ icon: iconSVG
45
+ }, {
46
+ value: "4",
47
+ label: "Aliexpress",
48
+ icon: iconSVG
49
+ }];
50
+ describe("Header component accessibility tests", function () {
51
+ beforeAll(function () {
52
+ Object.defineProperty(window, "matchMedia", {
53
+ writable: true,
54
+ value: jest.fn().mockImplementation(function () {
55
+ return {
56
+ matches: false
57
+ };
58
+ })
59
+ });
60
+ });
61
+ it("Should not have basic accessibility issues", /*#__PURE__*/(0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee() {
62
+ var _render, container, results;
63
+ return _regenerator["default"].wrap(function _callee$(_context) {
64
+ while (1) switch (_context.prev = _context.next) {
65
+ case 0:
66
+ _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Header["default"], {
67
+ content: /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
68
+ alignItems: "center",
69
+ gap: "4rem"
70
+ }, /*#__PURE__*/_react["default"].createElement(_Link["default"], null, "Link 1"), /*#__PURE__*/_react["default"].createElement(_Link["default"], null, "Link 2"), /*#__PURE__*/_react["default"].createElement(_Link["default"], null, "Link 3"), /*#__PURE__*/_react["default"].createElement(_Header["default"].Dropdown, {
71
+ options: options,
72
+ label: "dropdown-test",
73
+ icon: iconSVG,
74
+ iconPosition: "after",
75
+ margin: "medium",
76
+ size: "medium",
77
+ optionsIconPosition: "after"
78
+ })),
79
+ margin: "medium",
80
+ underlined: true
81
+ })), container = _render.container;
82
+ _context.next = 3;
83
+ return (0, _axeHelper.axe)(container, disabledRules);
84
+ case 3:
85
+ results = _context.sent;
86
+ expect(results).toHaveNoViolations();
87
+ case 5:
88
+ case "end":
89
+ return _context.stop();
90
+ }
91
+ }, _callee);
92
+ })));
93
+ });