@dxc-technology/halstack-react 0.0.0-2b5b4b0 → 0.0.0-2bca710
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.
- package/BackgroundColorContext.d.ts +10 -0
- package/BackgroundColorContext.js +2 -5
- package/HalstackContext.d.ts +1348 -0
- package/HalstackContext.js +335 -0
- package/README.md +47 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +110 -146
- package/accordion/Accordion.stories.tsx +297 -0
- package/accordion/Accordion.test.js +71 -0
- package/accordion/types.d.ts +8 -19
- package/accordion-group/AccordionGroup.d.ts +5 -4
- package/accordion-group/AccordionGroup.js +34 -76
- package/accordion-group/AccordionGroup.stories.tsx +252 -0
- package/accordion-group/AccordionGroup.test.js +116 -0
- package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
- package/accordion-group/AccordionGroupAccordion.js +43 -0
- package/accordion-group/types.d.ts +14 -19
- package/alert/Alert.js +11 -12
- package/alert/Alert.stories.tsx +198 -0
- package/alert/Alert.test.js +92 -0
- package/alert/types.d.ts +1 -1
- package/badge/Badge.d.ts +4 -0
- package/badge/Badge.js +6 -4
- package/badge/types.d.ts +5 -0
- package/bleed/Bleed.d.ts +3 -0
- package/bleed/Bleed.js +51 -0
- package/bleed/Bleed.stories.tsx +342 -0
- package/bleed/types.d.ts +37 -0
- package/bleed/types.js +5 -0
- package/box/Box.d.ts +4 -0
- package/box/Box.js +24 -79
- package/box/{Box.stories.jsx → Box.stories.tsx} +38 -51
- package/box/Box.test.js +18 -0
- package/box/types.d.ts +32 -0
- package/box/types.js +5 -0
- package/bulleted-list/BulletedList.d.ts +7 -0
- package/bulleted-list/BulletedList.js +125 -0
- package/bulleted-list/BulletedList.stories.tsx +206 -0
- package/bulleted-list/types.d.ts +38 -0
- package/bulleted-list/types.js +5 -0
- package/button/Button.d.ts +1 -1
- package/button/Button.js +49 -87
- package/button/Button.stories.tsx +376 -244
- package/button/Button.test.js +46 -0
- package/button/types.d.ts +15 -15
- package/card/Card.d.ts +1 -1
- package/card/Card.js +39 -61
- package/card/Card.stories.tsx +171 -0
- package/card/Card.test.js +50 -0
- package/card/types.d.ts +3 -10
- package/checkbox/Checkbox.d.ts +2 -2
- package/checkbox/Checkbox.js +108 -111
- package/checkbox/Checkbox.stories.tsx +260 -0
- package/checkbox/Checkbox.test.js +155 -0
- package/checkbox/types.d.ts +13 -5
- package/chip/Chip.d.ts +4 -0
- package/chip/Chip.js +37 -118
- package/chip/Chip.stories.tsx +214 -0
- package/chip/Chip.test.js +54 -0
- package/chip/types.d.ts +45 -0
- package/chip/types.js +5 -0
- package/common/OpenSans.css +68 -80
- package/common/coreTokens.d.ts +146 -0
- package/common/coreTokens.js +167 -0
- package/common/utils.d.ts +1 -0
- package/common/utils.js +4 -4
- package/common/variables.d.ts +1494 -0
- package/common/variables.js +1111 -1307
- package/date-input/Calendar.d.ts +4 -0
- package/date-input/Calendar.js +258 -0
- package/date-input/DateInput.js +178 -268
- package/date-input/DateInput.stories.tsx +314 -0
- package/date-input/DateInput.test.js +849 -0
- package/date-input/DatePicker.d.ts +4 -0
- package/date-input/DatePicker.js +146 -0
- package/date-input/Icons.d.ts +6 -0
- package/date-input/Icons.js +75 -0
- package/date-input/YearPicker.d.ts +4 -0
- package/date-input/YearPicker.js +126 -0
- package/date-input/types.d.ts +71 -9
- package/dialog/Dialog.d.ts +1 -1
- package/dialog/Dialog.js +69 -103
- package/dialog/Dialog.stories.tsx +195 -0
- package/dialog/Dialog.test.js +369 -0
- package/dialog/types.d.ts +0 -12
- package/dropdown/Dropdown.d.ts +1 -1
- package/dropdown/Dropdown.js +248 -277
- package/dropdown/Dropdown.stories.tsx +438 -0
- package/dropdown/Dropdown.test.js +586 -0
- package/dropdown/DropdownMenu.d.ts +4 -0
- package/dropdown/DropdownMenu.js +74 -0
- package/dropdown/DropdownMenuItem.d.ts +4 -0
- package/dropdown/DropdownMenuItem.js +79 -0
- package/dropdown/types.d.ts +28 -17
- package/file-input/FileInput.d.ts +4 -0
- package/file-input/FileInput.js +183 -168
- package/file-input/FileInput.stories.tsx +618 -0
- package/file-input/FileInput.test.js +457 -0
- package/file-input/FileItem.d.ts +4 -0
- package/file-input/FileItem.js +50 -81
- package/file-input/types.d.ts +129 -0
- package/file-input/types.js +5 -0
- package/flex/Flex.d.ts +4 -0
- package/flex/Flex.js +71 -0
- package/flex/Flex.stories.tsx +112 -0
- package/flex/types.d.ts +97 -0
- package/flex/types.js +5 -0
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +56 -157
- package/footer/{Footer.stories.jsx → Footer.stories.tsx} +38 -37
- package/footer/Footer.test.js +99 -0
- package/footer/Icons.d.ts +2 -0
- package/footer/Icons.js +4 -4
- package/footer/types.d.ts +26 -23
- package/grid/Grid.d.ts +7 -0
- package/grid/Grid.js +91 -0
- package/grid/Grid.stories.tsx +219 -0
- package/grid/types.d.ts +115 -0
- package/grid/types.js +5 -0
- package/header/Header.d.ts +8 -0
- package/header/Header.js +121 -171
- package/header/Header.stories.tsx +251 -0
- package/header/Header.test.js +79 -0
- package/header/Icons.d.ts +2 -0
- package/header/Icons.js +4 -29
- package/header/types.d.ts +34 -0
- package/header/types.js +5 -0
- package/heading/Heading.d.ts +4 -0
- package/heading/Heading.js +8 -25
- package/heading/Heading.stories.tsx +54 -0
- package/heading/Heading.test.js +186 -0
- package/heading/types.d.ts +33 -0
- package/heading/types.js +5 -0
- package/image/Image.d.ts +4 -0
- package/image/Image.js +85 -0
- package/image/Image.stories.tsx +127 -0
- package/image/types.d.ts +72 -0
- package/image/types.js +5 -0
- package/inset/Inset.d.ts +3 -0
- package/inset/Inset.js +51 -0
- package/inset/Inset.stories.tsx +230 -0
- package/inset/types.d.ts +37 -0
- package/inset/types.js +5 -0
- package/layout/ApplicationLayout.d.ts +20 -0
- package/layout/ApplicationLayout.js +81 -142
- package/layout/ApplicationLayout.stories.tsx +162 -0
- package/layout/Icons.d.ts +8 -0
- package/layout/Icons.js +52 -45
- package/layout/SidenavContext.d.ts +5 -0
- package/layout/SidenavContext.js +19 -0
- package/layout/types.d.ts +41 -0
- package/layout/types.js +5 -0
- package/link/Link.d.ts +4 -0
- package/link/Link.js +62 -109
- package/link/Link.stories.tsx +253 -0
- package/link/Link.test.js +81 -0
- package/link/types.d.ts +54 -0
- package/link/types.js +5 -0
- package/main.d.ts +14 -12
- package/main.js +76 -54
- package/nav-tabs/NavTabs.d.ts +8 -0
- package/nav-tabs/NavTabs.js +122 -0
- package/nav-tabs/NavTabs.stories.tsx +274 -0
- package/nav-tabs/NavTabs.test.js +82 -0
- package/nav-tabs/Tab.d.ts +4 -0
- package/nav-tabs/Tab.js +146 -0
- package/nav-tabs/types.d.ts +52 -0
- package/nav-tabs/types.js +5 -0
- package/number-input/NumberInput.d.ts +11 -0
- package/number-input/NumberInput.js +21 -71
- package/number-input/{NumberInput.stories.jsx → NumberInput.stories.tsx} +5 -5
- package/number-input/NumberInput.test.js +725 -0
- package/number-input/types.d.ts +124 -0
- package/number-input/types.js +5 -0
- package/package.json +23 -24
- package/paginator/Icons.d.ts +5 -0
- package/paginator/Icons.js +16 -28
- package/paginator/Paginator.js +22 -57
- package/paginator/Paginator.stories.tsx +24 -0
- package/paginator/Paginator.test.js +318 -0
- package/paragraph/Paragraph.d.ts +5 -0
- package/paragraph/Paragraph.js +38 -0
- package/paragraph/Paragraph.stories.tsx +44 -0
- package/password-input/Icons.d.ts +6 -0
- package/password-input/Icons.js +39 -0
- package/password-input/PasswordInput.d.ts +4 -0
- package/password-input/PasswordInput.js +42 -122
- package/password-input/{PasswordInput.stories.jsx → PasswordInput.stories.tsx} +5 -4
- package/password-input/PasswordInput.test.js +174 -0
- package/password-input/types.d.ts +110 -0
- package/password-input/types.js +5 -0
- package/progress-bar/ProgressBar.js +63 -57
- package/progress-bar/ProgressBar.stories.jsx +93 -0
- package/progress-bar/ProgressBar.test.js +110 -0
- package/quick-nav/QuickNav.d.ts +4 -0
- package/quick-nav/QuickNav.js +117 -0
- package/quick-nav/QuickNav.stories.tsx +356 -0
- package/quick-nav/types.d.ts +21 -0
- package/quick-nav/types.js +5 -0
- package/radio-group/Radio.d.ts +4 -0
- package/radio-group/Radio.js +156 -0
- package/radio-group/RadioGroup.d.ts +4 -0
- package/radio-group/RadioGroup.js +281 -0
- package/radio-group/RadioGroup.stories.tsx +214 -0
- package/radio-group/RadioGroup.test.js +722 -0
- package/radio-group/types.d.ts +114 -0
- package/radio-group/types.js +5 -0
- package/resultsetTable/Icons.d.ts +7 -0
- package/resultsetTable/Icons.js +51 -0
- package/resultsetTable/ResultsetTable.d.ts +4 -0
- package/resultsetTable/ResultsetTable.js +54 -133
- package/resultsetTable/ResultsetTable.stories.tsx +300 -0
- package/resultsetTable/ResultsetTable.test.js +325 -0
- package/resultsetTable/types.d.ts +67 -0
- package/resultsetTable/types.js +5 -0
- package/select/Icons.d.ts +10 -0
- package/select/Icons.js +93 -0
- package/select/Listbox.d.ts +4 -0
- package/select/Listbox.js +169 -0
- package/select/Option.d.ts +4 -0
- package/select/Option.js +97 -0
- package/select/Select.d.ts +4 -0
- package/select/Select.js +202 -401
- package/select/Select.stories.tsx +971 -0
- package/select/Select.test.js +2228 -0
- package/select/types.d.ts +210 -0
- package/select/types.js +5 -0
- package/sidenav/Icons.d.ts +7 -0
- package/sidenav/Icons.js +51 -0
- package/sidenav/Sidenav.d.ts +10 -0
- package/sidenav/Sidenav.js +147 -54
- package/sidenav/Sidenav.stories.tsx +282 -0
- package/sidenav/Sidenav.test.js +44 -0
- package/sidenav/types.d.ts +76 -0
- package/sidenav/types.js +5 -0
- package/slider/Slider.d.ts +2 -2
- package/slider/Slider.js +150 -114
- package/slider/Slider.stories.tsx +240 -0
- package/slider/Slider.test.js +250 -0
- package/slider/types.d.ts +10 -7
- package/spinner/Spinner.d.ts +4 -0
- package/spinner/Spinner.js +20 -43
- package/spinner/Spinner.stories.jsx +53 -26
- package/spinner/Spinner.test.js +64 -0
- package/spinner/types.d.ts +32 -0
- package/spinner/types.js +5 -0
- package/switch/Switch.d.ts +2 -2
- package/switch/Switch.js +153 -70
- package/switch/Switch.stories.tsx +171 -0
- package/switch/Switch.test.js +225 -0
- package/switch/types.d.ts +10 -2
- package/table/Table.d.ts +4 -0
- package/table/Table.js +6 -6
- package/table/Table.stories.jsx +81 -1
- package/table/Table.test.js +26 -0
- package/table/types.d.ts +21 -0
- package/table/types.js +5 -0
- package/tabs/Tab.d.ts +4 -0
- package/tabs/Tab.js +132 -0
- package/tabs/Tabs.d.ts +1 -1
- package/tabs/Tabs.js +362 -112
- package/tabs/Tabs.stories.tsx +226 -0
- package/tabs/Tabs.test.js +350 -0
- package/tabs/types.d.ts +39 -18
- package/tag/Tag.d.ts +4 -0
- package/tag/Tag.js +38 -65
- package/tag/Tag.stories.tsx +155 -0
- package/tag/Tag.test.js +60 -0
- package/tag/types.d.ts +69 -0
- package/tag/types.js +5 -0
- package/text-input/Icons.d.ts +8 -0
- package/text-input/Icons.js +60 -0
- package/text-input/Suggestion.d.ts +4 -0
- package/text-input/Suggestion.js +84 -0
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +134 -0
- package/text-input/TextInput.d.ts +4 -0
- package/text-input/TextInput.js +272 -438
- package/text-input/TextInput.stories.tsx +608 -0
- package/text-input/TextInput.test.js +1812 -0
- package/text-input/types.d.ts +201 -0
- package/text-input/types.js +5 -0
- package/textarea/Textarea.d.ts +4 -0
- package/textarea/Textarea.js +64 -103
- package/textarea/Textarea.stories.jsx +104 -15
- package/textarea/Textarea.test.js +479 -0
- package/textarea/types.d.ts +141 -0
- package/textarea/types.js +5 -0
- package/toggle-group/ToggleGroup.d.ts +4 -0
- package/toggle-group/ToggleGroup.js +94 -96
- package/toggle-group/ToggleGroup.stories.tsx +218 -0
- package/toggle-group/ToggleGroup.test.js +170 -0
- package/toggle-group/types.d.ts +114 -0
- package/toggle-group/types.js +5 -0
- package/typography/Typography.d.ts +4 -0
- package/typography/Typography.js +32 -0
- package/typography/Typography.stories.tsx +198 -0
- package/typography/types.d.ts +18 -0
- package/typography/types.js +5 -0
- package/useTheme.d.ts +1247 -0
- package/useTheme.js +3 -3
- package/useTranslatedLabels.d.ts +85 -0
- package/useTranslatedLabels.js +20 -0
- package/utils/BaseTypography.d.ts +21 -0
- package/utils/BaseTypography.js +108 -0
- package/utils/FocusLock.d.ts +13 -0
- package/utils/FocusLock.js +138 -0
- package/wizard/Wizard.d.ts +4 -0
- package/wizard/Wizard.js +119 -105
- package/wizard/Wizard.stories.tsx +253 -0
- package/wizard/Wizard.test.js +141 -0
- package/wizard/types.d.ts +64 -0
- package/wizard/types.js +5 -0
- package/ThemeContext.js +0 -246
- package/V3Select/V3Select.js +0 -455
- package/V3Select/index.d.ts +0 -27
- package/V3Textarea/V3Textarea.js +0 -260
- package/V3Textarea/index.d.ts +0 -27
- package/box/index.d.ts +0 -25
- package/chip/index.d.ts +0 -22
- package/common/RequiredComponent.js +0 -32
- package/date/Date.js +0 -373
- package/date/index.d.ts +0 -27
- package/file-input/index.d.ts +0 -81
- package/header/index.d.ts +0 -25
- package/heading/index.d.ts +0 -17
- package/input-text/Icons.js +0 -22
- package/input-text/InputText.js +0 -611
- package/input-text/index.d.ts +0 -36
- package/link/index.d.ts +0 -23
- package/number-input/NumberInputContext.js +0 -16
- package/number-input/index.d.ts +0 -113
- package/password-input/index.d.ts +0 -94
- package/radio/Radio.d.ts +0 -4
- package/radio/Radio.js +0 -174
- package/radio/types.d.ts +0 -54
- package/resultsetTable/index.d.ts +0 -19
- package/select/index.d.ts +0 -131
- package/sidenav/index.d.ts +0 -13
- package/spinner/index.d.ts +0 -17
- package/table/index.d.ts +0 -13
- package/tag/index.d.ts +0 -24
- package/text-input/index.d.ts +0 -135
- package/textarea/index.d.ts +0 -117
- package/toggle/Toggle.js +0 -186
- package/toggle/index.d.ts +0 -21
- package/toggle-group/index.d.ts +0 -21
- package/upload/Upload.js +0 -201
- package/upload/buttons-upload/ButtonsUpload.js +0 -111
- package/upload/buttons-upload/Icons.js +0 -40
- package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
- package/upload/dragAndDropArea/Icons.js +0 -39
- package/upload/file-upload/FileToUpload.js +0 -115
- package/upload/file-upload/Icons.js +0 -66
- package/upload/files-upload/FilesToUpload.js +0 -109
- package/upload/index.d.ts +0 -15
- package/upload/transaction/Icons.js +0 -160
- package/upload/transaction/Transaction.js +0 -104
- package/upload/transactions/Transactions.js +0 -94
- package/wizard/Icons.js +0 -65
- package/wizard/index.d.ts +0 -18
- /package/{radio → badge}/types.js +0 -0
package/footer/Footer.js
CHANGED
|
@@ -9,25 +9,27 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
9
9
|
});
|
|
10
10
|
exports["default"] = void 0;
|
|
11
11
|
|
|
12
|
-
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
13
|
-
|
|
14
12
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
15
13
|
|
|
16
|
-
var
|
|
14
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
17
15
|
|
|
18
16
|
var _react = _interopRequireWildcard(require("react"));
|
|
19
17
|
|
|
20
18
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
21
19
|
|
|
22
|
-
var _variables = require("../common/variables
|
|
20
|
+
var _variables = require("../common/variables");
|
|
21
|
+
|
|
22
|
+
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
23
23
|
|
|
24
|
-
var
|
|
24
|
+
var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
|
|
25
25
|
|
|
26
|
-
var _BackgroundColorContext = require("../BackgroundColorContext
|
|
26
|
+
var _BackgroundColorContext = require("../BackgroundColorContext");
|
|
27
27
|
|
|
28
|
-
var _Icons =
|
|
28
|
+
var _Icons = require("./Icons");
|
|
29
29
|
|
|
30
|
-
var
|
|
30
|
+
var _Flex = _interopRequireDefault(require("../flex/Flex"));
|
|
31
|
+
|
|
32
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
|
|
31
33
|
|
|
32
34
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
33
35
|
|
|
@@ -36,163 +38,76 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
36
38
|
var DxcFooter = function DxcFooter(_ref) {
|
|
37
39
|
var socialLinks = _ref.socialLinks,
|
|
38
40
|
bottomLinks = _ref.bottomLinks,
|
|
39
|
-
|
|
40
|
-
copyright = _ref$copyright === void 0 ? "" : _ref$copyright,
|
|
41
|
+
copyright = _ref.copyright,
|
|
41
42
|
children = _ref.children,
|
|
42
|
-
padding = _ref.padding,
|
|
43
43
|
margin = _ref.margin,
|
|
44
44
|
_ref$tabIndex = _ref.tabIndex,
|
|
45
45
|
tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
|
|
46
|
-
var ref = (0, _react.useRef)(null);
|
|
47
|
-
|
|
48
|
-
var _useState = (0, _react.useState)(),
|
|
49
|
-
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
50
|
-
refSize = _useState2[0],
|
|
51
|
-
setRefSize = _useState2[1];
|
|
52
|
-
|
|
53
|
-
var _useState3 = (0, _react.useState)(false),
|
|
54
|
-
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
55
|
-
isResponsiveTablet = _useState4[0],
|
|
56
|
-
setIsResponsiveTablet = _useState4[1];
|
|
57
|
-
|
|
58
|
-
var _useState5 = (0, _react.useState)(false),
|
|
59
|
-
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
60
|
-
isResponsivePhone = _useState6[0],
|
|
61
|
-
setIsResponsivePhone = _useState6[1];
|
|
62
|
-
|
|
63
46
|
var colorsTheme = (0, _useTheme["default"])();
|
|
47
|
+
var translatedLabels = (0, _useTranslatedLabels["default"])();
|
|
64
48
|
var footerLogo = (0, _react.useMemo)(function () {
|
|
65
49
|
if (!colorsTheme.footer.logo) {
|
|
66
|
-
return _Icons
|
|
50
|
+
return _Icons.dxcLogo;
|
|
67
51
|
}
|
|
68
52
|
|
|
69
53
|
if (typeof colorsTheme.footer.logo === "string") {
|
|
70
54
|
return /*#__PURE__*/_react["default"].createElement(LogoImg, {
|
|
71
|
-
alt:
|
|
55
|
+
alt: translatedLabels.formFields.logoAlternativeText,
|
|
72
56
|
src: colorsTheme.footer.logo
|
|
73
57
|
});
|
|
74
58
|
}
|
|
75
59
|
|
|
76
60
|
return colorsTheme.footer.logo;
|
|
77
|
-
}, [colorsTheme
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
setIsResponsiveTablet(false);
|
|
89
|
-
} else {
|
|
90
|
-
setIsResponsiveTablet(false);
|
|
91
|
-
setIsResponsivePhone(false);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
};
|
|
95
|
-
|
|
96
|
-
var handleEventListener = function handleEventListener() {
|
|
97
|
-
handleResize(ref.current.offsetWidth);
|
|
98
|
-
};
|
|
99
|
-
|
|
100
|
-
(0, _react.useEffect)(function () {
|
|
101
|
-
window.addEventListener("resize", handleEventListener);
|
|
102
|
-
handleResize(ref.current.offsetWidth);
|
|
103
|
-
return function () {
|
|
104
|
-
window.removeEventListener("resize", handleEventListener);
|
|
105
|
-
};
|
|
106
|
-
}, []);
|
|
107
|
-
var socialLink = socialLinks === null || socialLinks === void 0 ? void 0 : socialLinks.map(function (link, index) {
|
|
61
|
+
}, [colorsTheme]);
|
|
62
|
+
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
63
|
+
theme: colorsTheme.footer
|
|
64
|
+
}, /*#__PURE__*/_react["default"].createElement(FooterContainer, {
|
|
65
|
+
margin: margin
|
|
66
|
+
}, /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
|
|
67
|
+
justifyContent: "space-between",
|
|
68
|
+
alignItems: "center",
|
|
69
|
+
wrap: "wrap",
|
|
70
|
+
gap: "1.5rem"
|
|
71
|
+
}, /*#__PURE__*/_react["default"].createElement(LogoContainer, null, footerLogo), /*#__PURE__*/_react["default"].createElement(_Flex["default"], null, socialLinks === null || socialLinks === void 0 ? void 0 : socialLinks.map(function (link, index) {
|
|
108
72
|
return /*#__PURE__*/_react["default"].createElement(SocialAnchor, {
|
|
73
|
+
href: link.href,
|
|
109
74
|
tabIndex: tabIndex,
|
|
75
|
+
title: link.title,
|
|
76
|
+
"aria-label": link.title,
|
|
110
77
|
key: "social".concat(index).concat(link.href),
|
|
111
|
-
index: index
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
78
|
+
index: index
|
|
79
|
+
}, /*#__PURE__*/_react["default"].createElement(SocialIconContainer, null, typeof link.logo === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
|
|
80
|
+
src: link.logo
|
|
81
|
+
}) : link.logo));
|
|
82
|
+
}))), /*#__PURE__*/_react["default"].createElement(ChildComponents, null, /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
|
|
83
|
+
color: colorsTheme.footer.backgroundColor
|
|
84
|
+
}, children)), /*#__PURE__*/_react["default"].createElement(BottomContainer, null, /*#__PURE__*/_react["default"].createElement(BottomLinks, null, bottomLinks === null || bottomLinks === void 0 ? void 0 : bottomLinks.map(function (link, index) {
|
|
118
85
|
return /*#__PURE__*/_react["default"].createElement("span", {
|
|
119
86
|
key: "bottom".concat(index).concat(link.text)
|
|
120
87
|
}, /*#__PURE__*/_react["default"].createElement(BottomLink, {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
}, link
|
|
124
|
-
|
|
125
|
-
}, "\xB7"));
|
|
126
|
-
});
|
|
127
|
-
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
128
|
-
theme: colorsTheme.footer
|
|
129
|
-
}, /*#__PURE__*/_react["default"].createElement(FooterContainer, {
|
|
130
|
-
margin: margin,
|
|
131
|
-
refSize: refSize,
|
|
132
|
-
ref: ref
|
|
133
|
-
}, /*#__PURE__*/_react["default"].createElement(FooterHeader, null, /*#__PURE__*/_react["default"].createElement(LogoContainer, null, footerLogo), /*#__PURE__*/_react["default"].createElement("div", null, socialLink)), isResponsivePhone && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(FooterFooter, {
|
|
134
|
-
className: "footerFooter",
|
|
135
|
-
refSize: refSize
|
|
136
|
-
}, /*#__PURE__*/_react["default"].createElement(BottomLinks, {
|
|
137
|
-
refSize: refSize
|
|
138
|
-
}, bottomLink), /*#__PURE__*/_react["default"].createElement(Copyright, {
|
|
139
|
-
refSize: refSize
|
|
140
|
-
}, copyright))), (!isResponsiveTablet && !isResponsivePhone || isResponsiveTablet) && /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(ChildComponents, {
|
|
141
|
-
padding: padding
|
|
142
|
-
}, /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
|
|
143
|
-
color: colorsTheme.footer.backgroundColor
|
|
144
|
-
}, children)), /*#__PURE__*/_react["default"].createElement(FooterFooter, {
|
|
145
|
-
className: "footerFooter"
|
|
146
|
-
}, /*#__PURE__*/_react["default"].createElement(BottomLinks, {
|
|
147
|
-
refSize: refSize
|
|
148
|
-
}, bottomLink), /*#__PURE__*/_react["default"].createElement(Copyright, {
|
|
149
|
-
refSize: refSize
|
|
150
|
-
}, copyright)))));
|
|
88
|
+
href: link.href,
|
|
89
|
+
tabIndex: tabIndex
|
|
90
|
+
}, link.text));
|
|
91
|
+
})), /*#__PURE__*/_react["default"].createElement(Copyright, null, copyright || translatedLabels.footer.copyrightText(new Date().getFullYear())))));
|
|
151
92
|
};
|
|
152
93
|
|
|
153
|
-
var FooterContainer = _styledComponents["default"].footer(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n
|
|
154
|
-
return props.
|
|
155
|
-
}, function (props) {
|
|
156
|
-
return props.theme.backgroundColor;
|
|
94
|
+
var FooterContainer = _styledComponents["default"].footer(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n width: 100%;\n min-height: ", ";\n margin-top: ", ";\n background-color: ", ";\n\n @media (min-width: ", "rem) {\n padding: 24px 36px 24px 36px;\n }\n @media (max-width: ", "rem) {\n padding: 20px;\n }\n"])), function (props) {
|
|
95
|
+
return props.theme.height;
|
|
157
96
|
}, function (props) {
|
|
158
97
|
return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
|
|
159
98
|
}, function (props) {
|
|
160
|
-
return props.theme.
|
|
161
|
-
});
|
|
162
|
-
|
|
163
|
-
var FooterHeader = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n"])));
|
|
99
|
+
return props.theme.backgroundColor;
|
|
100
|
+
}, _variables.responsiveSizes.small, _variables.responsiveSizes.small);
|
|
164
101
|
|
|
165
|
-
var
|
|
166
|
-
return props.refSize <= _variables.responsiveSizes.mobileLarge ? "column" : "row";
|
|
167
|
-
}, function (props) {
|
|
168
|
-
return props.refSize <= _variables.responsiveSizes.mobileLarge ? "center" : "";
|
|
169
|
-
}, function (props) {
|
|
102
|
+
var BottomContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n align-items: flex-end;\n\n @media (min-width: ", "rem) {\n flex-direction: row;\n }\n @media (max-width: ", "rem) {\n flex-direction: column;\n align-items: center;\n }\n\n border-top: ", ";\n margin-top: 16px;\n"])), _variables.responsiveSizes.small, _variables.responsiveSizes.small, function (props) {
|
|
170
103
|
return "".concat(props.theme.bottomLinksDividerThickness, " ").concat(props.theme.bottomLinksDividerStyle, " ").concat(props.theme.bottomLinksDividerColor);
|
|
171
104
|
});
|
|
172
105
|
|
|
173
|
-
var
|
|
174
|
-
return props.theme.bottomLinksDividerSpacing;
|
|
175
|
-
}, function (props) {
|
|
176
|
-
return props.refSize <= _variables.responsiveSizes.mobileLarge ? "100%" : "60%";
|
|
177
|
-
}, function (props) {
|
|
178
|
-
return props.refSize <= _variables.responsiveSizes.mobileLarge ? "100%" : "";
|
|
179
|
-
}, function (props) {
|
|
180
|
-
return props.refSize <= _variables.responsiveSizes.mobileLarge ? "40px 0 40px 0" : "";
|
|
181
|
-
});
|
|
106
|
+
var ChildComponents = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n min-height: 16px;\n overflow: hidden;\n"])));
|
|
182
107
|
|
|
183
|
-
var
|
|
184
|
-
return props.
|
|
185
|
-
}, function (props) {
|
|
186
|
-
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.top ? _variables.spaces[props.padding.top] : "";
|
|
187
|
-
}, function (props) {
|
|
188
|
-
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.right ? _variables.spaces[props.padding.right] : "";
|
|
189
|
-
}, function (props) {
|
|
190
|
-
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.bottom ? _variables.spaces[props.padding.bottom] : "";
|
|
108
|
+
var Copyright = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n padding-top: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n\n @media (min-width: ", "rem) {\n max-width: 40%;\n text-align: right;\n }\n\n @media (max-width: ", "rem) {\n max-width: 100%;\n width: 100%;\n text-align: left;\n }\n"])), function (props) {
|
|
109
|
+
return props.theme.bottomLinksDividerSpacing;
|
|
191
110
|
}, function (props) {
|
|
192
|
-
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.left ? _variables.spaces[props.padding.left] : "";
|
|
193
|
-
});
|
|
194
|
-
|
|
195
|
-
var Copyright = _styledComponents["default"].div(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n color: ", ";\n max-width: ", ";\n width: ", ";\n text-align: ", ";\n padding-top: ", ";\n"])), function (props) {
|
|
196
111
|
return props.theme.copyrightFontFamily;
|
|
197
112
|
}, function (props) {
|
|
198
113
|
return props.theme.copyrightFontSize;
|
|
@@ -202,33 +117,25 @@ var Copyright = _styledComponents["default"].div(_templateObject6 || (_templateO
|
|
|
202
117
|
return props.theme.copyrightFontWeight;
|
|
203
118
|
}, function (props) {
|
|
204
119
|
return props.theme.copyrightFontColor;
|
|
205
|
-
},
|
|
206
|
-
return props.refSize <= _variables.responsiveSizes.mobileLarge ? "100%" : "40%";
|
|
207
|
-
}, function (props) {
|
|
208
|
-
return props.refSize <= _variables.responsiveSizes.mobileLarge ? "100%" : "";
|
|
209
|
-
}, function (props) {
|
|
210
|
-
return props.refSize <= _variables.responsiveSizes.mobileLarge ? "center" : "right";
|
|
211
|
-
}, function (props) {
|
|
212
|
-
return props.theme.bottomLinksDividerSpacing;
|
|
213
|
-
});
|
|
120
|
+
}, _variables.responsiveSizes.small, _variables.responsiveSizes.small);
|
|
214
121
|
|
|
215
|
-
var LogoContainer = _styledComponents["default"].
|
|
122
|
+
var LogoContainer = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n"])), function (props) {
|
|
216
123
|
return props.theme.logoHeight;
|
|
217
124
|
}, function (props) {
|
|
218
125
|
return props.theme.logoWidth;
|
|
219
126
|
});
|
|
220
127
|
|
|
221
|
-
var LogoImg = _styledComponents["default"].img(
|
|
128
|
+
var LogoImg = _styledComponents["default"].img(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n"])), function (props) {
|
|
222
129
|
return props.theme.logoHeight;
|
|
223
130
|
}, function (props) {
|
|
224
131
|
return props.theme.logoWidth;
|
|
225
132
|
});
|
|
226
133
|
|
|
227
|
-
var SocialAnchor = _styledComponents["default"].a(
|
|
134
|
+
var SocialAnchor = _styledComponents["default"].a(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n margin-left: ", ";\n border-radius: 4px;\n\n &:focus {\n outline: 2px solid #0095ff;\n outline-offset: 2px;\n }\n"])), function (props) {
|
|
228
135
|
return props.index === 0 ? "0px" : props.theme.socialLinksGutter;
|
|
229
136
|
});
|
|
230
137
|
|
|
231
|
-
var
|
|
138
|
+
var SocialIconContainer = _styledComponents["default"].div(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n height: ", ";\n width: ", ";\n color: ", ";\n overflow: hidden;\n\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
|
|
232
139
|
return props.theme.socialLinksSize;
|
|
233
140
|
}, function (props) {
|
|
234
141
|
return props.theme.socialLinksSize;
|
|
@@ -236,19 +143,11 @@ var SocialIcon = _styledComponents["default"].img(_templateObject10 || (_templat
|
|
|
236
143
|
return props.theme.socialLinksColor;
|
|
237
144
|
});
|
|
238
145
|
|
|
239
|
-
var
|
|
240
|
-
return props.theme.
|
|
241
|
-
},
|
|
242
|
-
return props.theme.socialLinksSize;
|
|
243
|
-
}, function (props) {
|
|
244
|
-
return props.theme.socialLinksColor;
|
|
245
|
-
});
|
|
246
|
-
|
|
247
|
-
var Point = _styledComponents["default"].span(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n margin: 0px 10px;\n color: ", ";\n"])), function (props) {
|
|
248
|
-
return props.theme.bottomLinksFontColor;
|
|
249
|
-
});
|
|
146
|
+
var BottomLinks = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-flex;\n flex-wrap: wrap;\n align-self: center;\n padding-top: ", ";\n color: #fff;\n\n @media (min-width: ", "rem) {\n max-width: 60%;\n }\n @media (max-width: ", "rem) {\n max-width: 100%;\n width: 100%;\n }\n\n & > span:not(:first-child):before {\n content: \"\xB7\";\n padding: 0 0.5rem;\n }\n"])), function (props) {
|
|
147
|
+
return props.theme.bottomLinksDividerSpacing;
|
|
148
|
+
}, _variables.responsiveSizes.small, _variables.responsiveSizes.small);
|
|
250
149
|
|
|
251
|
-
var BottomLink = _styledComponents["default"].a(
|
|
150
|
+
var BottomLink = _styledComponents["default"].a(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n text-decoration: ", ";\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n border-radius: 2px;\n\n &:focus {\n outline: 2px solid #0095ff;\n }\n"])), function (props) {
|
|
252
151
|
return props.theme.bottomLinksTextDecoration;
|
|
253
152
|
}, function (props) {
|
|
254
153
|
return props.theme.bottomLinksFontColor;
|
|
@@ -2,6 +2,7 @@ import React from "react";
|
|
|
2
2
|
import DxcFooter from "./Footer";
|
|
3
3
|
import Title from "../../.storybook/components/Title";
|
|
4
4
|
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
5
|
+
import { HalstackProvider } from "../HalstackContext";
|
|
5
6
|
|
|
6
7
|
const social = [
|
|
7
8
|
{
|
|
@@ -25,31 +26,20 @@ const social = [
|
|
|
25
26
|
</g>
|
|
26
27
|
</svg>
|
|
27
28
|
),
|
|
29
|
+
title: "Linkedin",
|
|
28
30
|
},
|
|
29
31
|
{
|
|
30
|
-
href: "https://
|
|
32
|
+
href: "https://x.com/dxctechnology",
|
|
31
33
|
logo: (
|
|
32
|
-
<svg
|
|
33
|
-
<
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
C438.532,59.576,430.49,40.204,414.41,24.123z M335.471,168.735c0.191,1.713,0.288,4.278,0.288,7.71
|
|
39
|
-
c0,15.989-2.334,32.025-6.995,48.104c-4.661,16.087-11.8,31.504-21.416,46.254c-9.606,14.749-21.074,27.791-34.396,39.115
|
|
40
|
-
c-13.325,11.32-29.311,20.365-47.968,27.117c-18.648,6.762-38.637,10.143-59.953,10.143c-33.116,0-63.76-8.952-91.931-26.836
|
|
41
|
-
c4.568,0.568,9.329,0.855,14.275,0.855c27.6,0,52.439-8.565,74.519-25.7c-12.941-0.185-24.506-4.179-34.688-11.991
|
|
42
|
-
c-10.185-7.803-17.273-17.699-21.271-29.691c4.947,0.76,8.658,1.137,11.132,1.137c4.187,0,9.042-0.76,14.56-2.279
|
|
43
|
-
c-13.894-2.669-25.598-9.562-35.115-20.697c-9.519-11.136-14.277-23.84-14.277-38.114v-0.571
|
|
44
|
-
c10.085,4.755,19.602,7.229,28.549,7.422c-17.321-11.613-25.981-28.265-25.981-49.963c0-10.66,2.758-20.747,8.278-30.264
|
|
45
|
-
c15.035,18.464,33.311,33.213,54.816,44.252c21.507,11.038,44.54,17.227,69.092,18.558c-0.95-3.616-1.427-8.186-1.427-13.704
|
|
46
|
-
c0-16.562,5.853-30.692,17.56-42.399c11.703-11.706,25.837-17.561,42.394-17.561c17.515,0,32.079,6.283,43.688,18.846
|
|
47
|
-
c13.134-2.474,25.892-7.33,38.26-14.56c-4.757,14.652-13.613,25.788-26.55,33.402c12.368-1.716,23.88-4.95,34.537-9.708
|
|
48
|
-
C357.458,149.793,347.462,160.166,335.471,168.735z"
|
|
49
|
-
/>
|
|
50
|
-
</g>
|
|
34
|
+
<svg width="256" height="256" viewBox="0 0 256 256" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
35
|
+
<rect width="256" height="256" rx="40" fill="white" />
|
|
36
|
+
<path
|
|
37
|
+
d="M140.192 118.205L187.848 64H176.556L135.158 111.056L102.117 64H64L113.975 135.163L64 192H75.2914L118.982 142.296L153.883 192H192L140.192 118.205ZM124.722 135.787L119.65 128.697L79.3634 72.3294H96.7094L129.232 117.837L134.282 124.927L176.551 184.076H159.205L124.722 135.787Z"
|
|
38
|
+
fill="#0F1419"
|
|
39
|
+
/>
|
|
51
40
|
</svg>
|
|
52
41
|
),
|
|
42
|
+
title: "X",
|
|
53
43
|
},
|
|
54
44
|
{
|
|
55
45
|
href: "https://www.facebook.com/DXCTechnology/",
|
|
@@ -76,6 +66,7 @@ const social = [
|
|
|
76
66
|
</g>
|
|
77
67
|
</svg>
|
|
78
68
|
),
|
|
69
|
+
title: "Facebook",
|
|
79
70
|
},
|
|
80
71
|
];
|
|
81
72
|
|
|
@@ -85,8 +76,8 @@ const bottom = [
|
|
|
85
76
|
text: "Linkedin",
|
|
86
77
|
},
|
|
87
78
|
{
|
|
88
|
-
href: "https://
|
|
89
|
-
text: "
|
|
79
|
+
href: "https://x.com/dxctechnology",
|
|
80
|
+
text: "X",
|
|
90
81
|
},
|
|
91
82
|
{
|
|
92
83
|
href: "https://www.facebook.com/DXCTechnology/",
|
|
@@ -99,6 +90,15 @@ export default {
|
|
|
99
90
|
component: DxcFooter,
|
|
100
91
|
};
|
|
101
92
|
|
|
93
|
+
const opinionatedTheme = {
|
|
94
|
+
footer: {
|
|
95
|
+
baseColor: "#000000",
|
|
96
|
+
fontColor: "#ffffff",
|
|
97
|
+
accentColor: "#0095ff",
|
|
98
|
+
logo: "https://upload.wikimedia.org/wikipedia/commons/thumb/b/b8/2021_Facebook_icon.svg/2048px-2021_Facebook_icon.svg.png",
|
|
99
|
+
},
|
|
100
|
+
};
|
|
101
|
+
|
|
102
102
|
export const Chromatic = () => (
|
|
103
103
|
<>
|
|
104
104
|
<ExampleContainer>
|
|
@@ -113,6 +113,14 @@ export const Chromatic = () => (
|
|
|
113
113
|
</div>
|
|
114
114
|
</DxcFooter>
|
|
115
115
|
</ExampleContainer>
|
|
116
|
+
<ExampleContainer pseudoState="pseudo-focus">
|
|
117
|
+
<Title title="Focused bottom and social links" theme="light" level={4} />
|
|
118
|
+
<DxcFooter copyright="Copyright" socialLinks={social} bottomLinks={bottom}>
|
|
119
|
+
<div>
|
|
120
|
+
<a href="https://www.linkedin.com/company/dxctechnology">Linkedin</a>
|
|
121
|
+
</div>
|
|
122
|
+
</DxcFooter>
|
|
123
|
+
</ExampleContainer>
|
|
116
124
|
<Title title="Margins" theme="light" level={2} />
|
|
117
125
|
<ExampleContainer>
|
|
118
126
|
<Title title="Xxsmall margin" theme="light" level={4} />
|
|
@@ -130,22 +138,15 @@ export const Chromatic = () => (
|
|
|
130
138
|
<Title title="Xxlarge margin" theme="light" level={4} />
|
|
131
139
|
<DxcFooter margin="xxlarge"></DxcFooter>
|
|
132
140
|
</ExampleContainer>
|
|
133
|
-
<Title title="
|
|
141
|
+
<Title title="Opinionated theme" theme="light" level={2} />
|
|
134
142
|
<ExampleContainer>
|
|
135
|
-
<
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
<DxcFooter padding="medium"></DxcFooter>
|
|
143
|
-
<Title title="Large padding" theme="light" level={4} />
|
|
144
|
-
<DxcFooter padding="large"></DxcFooter>
|
|
145
|
-
<Title title="Xlarge padding" theme="light" level={4} />
|
|
146
|
-
<DxcFooter padding="xlarge"></DxcFooter>
|
|
147
|
-
<Title title="Xxlarge padding" theme="light" level={4} />
|
|
148
|
-
<DxcFooter padding="xxlarge"></DxcFooter>
|
|
143
|
+
<HalstackProvider theme={opinionatedTheme}>
|
|
144
|
+
<DxcFooter copyright="Copyright" socialLinks={social} bottomLinks={bottom}>
|
|
145
|
+
<div>
|
|
146
|
+
<a href="https://www.linkedin.com/company/dxctechnology">Linkedin</a>
|
|
147
|
+
</div>
|
|
148
|
+
</DxcFooter>
|
|
149
|
+
</HalstackProvider>
|
|
149
150
|
</ExampleContainer>
|
|
150
151
|
</>
|
|
151
152
|
);
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _react = _interopRequireDefault(require("react"));
|
|
6
|
+
|
|
7
|
+
var _react2 = require("@testing-library/react");
|
|
8
|
+
|
|
9
|
+
var _Footer = _interopRequireDefault(require("./Footer.tsx"));
|
|
10
|
+
|
|
11
|
+
var social = [{
|
|
12
|
+
href: "https://www.test.com/social",
|
|
13
|
+
logo: "https://developer.apple.com/design/human-interface-guidelines/foundations/app-icons/images/icon-and-image-large-icon-settings_2x.png",
|
|
14
|
+
title: "test"
|
|
15
|
+
}];
|
|
16
|
+
var bottom = [{
|
|
17
|
+
href: "https://www.test.com/bottom",
|
|
18
|
+
text: "bottom-link-text"
|
|
19
|
+
}];
|
|
20
|
+
describe("Footer component tests", function () {
|
|
21
|
+
test("Footer renders with default logo", function () {
|
|
22
|
+
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], null)),
|
|
23
|
+
getByTitle = _render.getByTitle;
|
|
24
|
+
|
|
25
|
+
expect(getByTitle("DXC Logo")).toBeTruthy();
|
|
26
|
+
});
|
|
27
|
+
test("Footer renders with social links", function () {
|
|
28
|
+
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
|
|
29
|
+
socialLinks: social
|
|
30
|
+
})),
|
|
31
|
+
getByRole = _render2.getByRole;
|
|
32
|
+
|
|
33
|
+
var socialIcon = getByRole("link");
|
|
34
|
+
expect(socialIcon.getAttribute("href")).toBe("https://www.test.com/social");
|
|
35
|
+
});
|
|
36
|
+
test("Footer renders with bottom links", function () {
|
|
37
|
+
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
|
|
38
|
+
bottomLinks: bottom
|
|
39
|
+
})),
|
|
40
|
+
getByText = _render3.getByText;
|
|
41
|
+
|
|
42
|
+
var link = getByText("bottom-link-text");
|
|
43
|
+
expect(link.getAttribute("href")).toBe("https://www.test.com/bottom");
|
|
44
|
+
});
|
|
45
|
+
test("Footer renders with copyright text", function () {
|
|
46
|
+
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
|
|
47
|
+
copyright: "test-copyright"
|
|
48
|
+
})),
|
|
49
|
+
getByText = _render4.getByText;
|
|
50
|
+
|
|
51
|
+
expect(getByText("test-copyright")).toBeTruthy();
|
|
52
|
+
});
|
|
53
|
+
test("Footer renders with correct children", function () {
|
|
54
|
+
// We need to force the offsetWidth value
|
|
55
|
+
Object.defineProperty(HTMLElement.prototype, "offsetWidth", {
|
|
56
|
+
configurable: true,
|
|
57
|
+
value: 1024
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], null, /*#__PURE__*/_react["default"].createElement("p", null, "footer-child-text"))),
|
|
61
|
+
getByText = _render5.getByText;
|
|
62
|
+
|
|
63
|
+
expect(getByText("footer-child-text")).toBeTruthy();
|
|
64
|
+
});
|
|
65
|
+
test("Footer renders with children in mobile", function () {
|
|
66
|
+
// 425 is mobile width
|
|
67
|
+
Object.defineProperty(HTMLElement.prototype, "offsetWidth", {
|
|
68
|
+
configurable: true,
|
|
69
|
+
value: 425
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], null, /*#__PURE__*/_react["default"].createElement("p", null, "footer-child-text"))),
|
|
73
|
+
queryByText = _render6.queryByText;
|
|
74
|
+
|
|
75
|
+
expect(queryByText("footer-child-text")).toBeTruthy();
|
|
76
|
+
});
|
|
77
|
+
test("Footer is fully rendered", function () {
|
|
78
|
+
Object.defineProperty(HTMLElement.prototype, "offsetWidth", {
|
|
79
|
+
configurable: true,
|
|
80
|
+
value: 1024
|
|
81
|
+
});
|
|
82
|
+
|
|
83
|
+
var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
|
|
84
|
+
socialLinks: social,
|
|
85
|
+
bottomLinks: bottom,
|
|
86
|
+
copyright: "test-copyright"
|
|
87
|
+
}, /*#__PURE__*/_react["default"].createElement("p", null, "footer-child-text"))),
|
|
88
|
+
getAllByRole = _render7.getAllByRole,
|
|
89
|
+
getByText = _render7.getByText;
|
|
90
|
+
|
|
91
|
+
var socialIcon = getAllByRole("link")[0];
|
|
92
|
+
expect(socialIcon.getAttribute("href")).toBe("https://www.test.com/social");
|
|
93
|
+
expect(socialIcon.getAttribute("aria-label")).toBe("test");
|
|
94
|
+
var bottomLink = getByText("bottom-link-text");
|
|
95
|
+
expect(bottomLink.getAttribute("href")).toBe("https://www.test.com/bottom");
|
|
96
|
+
expect(getByText("test-copyright")).toBeTruthy();
|
|
97
|
+
expect(getByText("footer-child-text")).toBeTruthy();
|
|
98
|
+
});
|
|
99
|
+
});
|
package/footer/Icons.js
CHANGED
|
@@ -5,14 +5,14 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports
|
|
8
|
+
exports.dxcLogo = void 0;
|
|
9
9
|
|
|
10
10
|
var _react = _interopRequireDefault(require("react"));
|
|
11
11
|
|
|
12
|
-
var
|
|
12
|
+
var dxcLogo = /*#__PURE__*/_react["default"].createElement("svg", {
|
|
13
13
|
id: "g10",
|
|
14
14
|
xmlns: "http://www.w3.org/2000/svg",
|
|
15
|
-
width: "
|
|
15
|
+
width: "100%",
|
|
16
16
|
height: "32",
|
|
17
17
|
viewBox: "0 0 280.781 32"
|
|
18
18
|
}, /*#__PURE__*/_react["default"].createElement("title", null, "DXC Logo"), /*#__PURE__*/_react["default"].createElement("g", {
|
|
@@ -74,4 +74,4 @@ var _default = /*#__PURE__*/_react["default"].createElement("svg", {
|
|
|
74
74
|
fill: "#fff"
|
|
75
75
|
})));
|
|
76
76
|
|
|
77
|
-
exports
|
|
77
|
+
exports.dxcLogo = dxcLogo;
|
package/footer/types.d.ts
CHANGED
|
@@ -6,39 +6,47 @@ declare type Size = {
|
|
|
6
6
|
left?: Space;
|
|
7
7
|
right?: Space;
|
|
8
8
|
};
|
|
9
|
+
declare type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
|
|
9
10
|
declare type SocialLink = {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
/**
|
|
12
|
+
* URL of the page the link goes to.
|
|
13
|
+
*/
|
|
14
|
+
href: string;
|
|
15
|
+
/**
|
|
16
|
+
* Element used as the icon for the link.
|
|
17
|
+
*/
|
|
18
|
+
logo: string | SVG;
|
|
19
|
+
/**
|
|
20
|
+
* Value for the HTML properties title and aria-label.
|
|
21
|
+
*/
|
|
22
|
+
title: string;
|
|
13
23
|
};
|
|
14
24
|
declare type BottomLink = {
|
|
15
|
-
|
|
16
|
-
|
|
25
|
+
/**
|
|
26
|
+
* URL of the page the link goes to.
|
|
27
|
+
*/
|
|
28
|
+
href: string;
|
|
29
|
+
/**
|
|
30
|
+
* Text for the link.
|
|
31
|
+
*/
|
|
32
|
+
text: string;
|
|
17
33
|
};
|
|
18
|
-
declare type ImgElement = HTMLElement & (SVGElement | HTMLImageElement);
|
|
19
34
|
declare type FooterPropsType = {
|
|
20
35
|
/**
|
|
21
36
|
* An array of objects representing the links that will be rendered as
|
|
22
|
-
* icons at the top-right side of the footer.
|
|
23
|
-
* following properties:
|
|
24
|
-
* - logo: Element used as the icon for the link.
|
|
25
|
-
* - logoSrc: The path of an icon for the link. @deprecated
|
|
26
|
-
* - href: URL of the page the link goes to.
|
|
37
|
+
* icons at the top-right side of the footer.
|
|
27
38
|
*/
|
|
28
|
-
socialLinks?:
|
|
39
|
+
socialLinks?: SocialLink[];
|
|
29
40
|
/**
|
|
30
41
|
* An array of objects representing the links that will be rendered at
|
|
31
|
-
* the bottom part of the footer.
|
|
32
|
-
* properties:
|
|
33
|
-
* - text: Text for the link.
|
|
34
|
-
* - href: URL of the page the link goes to.
|
|
42
|
+
* the bottom part of the footer.
|
|
35
43
|
*/
|
|
36
|
-
bottomLinks?:
|
|
44
|
+
bottomLinks?: BottomLink[];
|
|
37
45
|
/**
|
|
38
46
|
* The center section of the footer. Can be used to render custom
|
|
39
47
|
* content in this area.
|
|
40
48
|
*/
|
|
41
|
-
children
|
|
49
|
+
children?: React.ReactNode;
|
|
42
50
|
/**
|
|
43
51
|
* The text that will be displayed as copyright disclaimer.
|
|
44
52
|
*/
|
|
@@ -52,10 +60,5 @@ declare type FooterPropsType = {
|
|
|
52
60
|
* Size of the top margin to be applied to the footer.
|
|
53
61
|
*/
|
|
54
62
|
margin?: Space | Size;
|
|
55
|
-
/**
|
|
56
|
-
* Size of the padding to be applied to the custom area of the component.
|
|
57
|
-
* You can pass an object with properties in order to specify different padding sizes.
|
|
58
|
-
*/
|
|
59
|
-
padding?: Space | Size;
|
|
60
63
|
};
|
|
61
64
|
export default FooterPropsType;
|