@dxc-technology/halstack-react 0.0.0-3716032 → 0.0.0-381476a
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 +3 -3
- package/BackgroundColorContext.js +6 -19
- package/HalstackContext.d.ts +1356 -0
- package/HalstackContext.js +310 -0
- package/README.md +47 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +117 -190
- package/accordion/Accordion.stories.tsx +103 -120
- package/accordion/Accordion.test.js +56 -0
- package/accordion/types.d.ts +11 -22
- package/accordion-group/AccordionGroup.d.ts +5 -4
- package/accordion-group/AccordionGroup.js +38 -107
- package/accordion-group/AccordionGroup.stories.tsx +95 -68
- package/accordion-group/AccordionGroup.test.js +98 -0
- package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
- package/accordion-group/AccordionGroupAccordion.js +31 -0
- package/accordion-group/types.d.ts +17 -22
- package/alert/Alert.js +22 -55
- package/alert/Alert.stories.tsx +28 -0
- package/alert/Alert.test.js +75 -0
- package/alert/types.d.ts +5 -5
- package/badge/Badge.d.ts +4 -0
- package/badge/Badge.js +8 -19
- package/badge/types.d.ts +5 -0
- package/bleed/Bleed.d.ts +3 -0
- package/bleed/Bleed.js +43 -0
- package/bleed/Bleed.stories.tsx +342 -0
- package/bleed/types.d.ts +37 -0
- package/box/Box.d.ts +1 -1
- package/box/Box.js +29 -77
- package/box/Box.stories.tsx +38 -51
- package/box/Box.test.js +13 -0
- package/box/types.d.ts +3 -14
- package/bulleted-list/BulletedList.d.ts +7 -0
- package/bulleted-list/BulletedList.js +99 -0
- package/bulleted-list/BulletedList.stories.tsx +116 -0
- package/bulleted-list/types.d.ts +38 -0
- package/button/Button.d.ts +1 -1
- package/button/Button.js +61 -119
- package/button/Button.stories.tsx +164 -96
- package/button/Button.test.js +36 -0
- package/button/types.d.ts +12 -12
- package/card/Card.d.ts +1 -1
- package/card/Card.js +58 -102
- package/card/Card.stories.tsx +13 -43
- package/card/Card.test.js +39 -0
- package/card/types.d.ts +6 -11
- package/checkbox/Checkbox.d.ts +2 -2
- package/checkbox/Checkbox.js +145 -178
- package/checkbox/Checkbox.stories.tsx +166 -136
- package/checkbox/Checkbox.test.js +199 -0
- package/checkbox/types.d.ts +18 -6
- package/chip/Chip.d.ts +1 -1
- package/chip/Chip.js +46 -124
- package/chip/Chip.stories.tsx +123 -30
- package/chip/Chip.test.js +41 -0
- package/chip/types.d.ts +8 -16
- package/common/OpenSans.css +68 -80
- package/common/coreTokens.d.ts +146 -0
- package/common/coreTokens.js +166 -0
- package/common/utils.d.ts +1 -0
- package/common/utils.js +6 -12
- package/common/variables.d.ts +1499 -0
- package/common/variables.js +1117 -1320
- package/date-input/Calendar.d.ts +4 -0
- package/date-input/Calendar.js +214 -0
- package/date-input/DateInput.js +173 -308
- package/date-input/DateInput.stories.tsx +203 -56
- package/date-input/DateInput.test.js +808 -0
- package/date-input/DatePicker.d.ts +4 -0
- package/date-input/DatePicker.js +115 -0
- package/date-input/Icons.d.ts +6 -0
- package/date-input/Icons.js +58 -0
- package/date-input/YearPicker.d.ts +4 -0
- package/date-input/YearPicker.js +100 -0
- package/date-input/types.d.ts +86 -22
- package/dialog/Dialog.d.ts +1 -1
- package/dialog/Dialog.js +70 -129
- package/dialog/Dialog.stories.tsx +154 -171
- package/dialog/Dialog.test.js +307 -0
- package/dialog/types.d.ts +18 -25
- package/dropdown/Dropdown.d.ts +1 -1
- package/dropdown/Dropdown.js +244 -327
- package/dropdown/Dropdown.stories.tsx +255 -64
- package/dropdown/Dropdown.test.js +599 -0
- package/dropdown/DropdownMenu.d.ts +4 -0
- package/dropdown/DropdownMenu.js +63 -0
- package/dropdown/DropdownMenuItem.d.ts +4 -0
- package/dropdown/DropdownMenuItem.js +67 -0
- package/dropdown/types.d.ts +36 -27
- package/file-input/FileInput.d.ts +2 -2
- package/file-input/FileInput.js +224 -356
- package/file-input/FileInput.stories.tsx +123 -11
- package/file-input/FileInput.test.js +408 -0
- package/file-input/FileItem.d.ts +4 -14
- package/file-input/FileItem.js +50 -99
- package/file-input/types.d.ts +25 -8
- package/flex/Flex.d.ts +4 -0
- package/flex/Flex.js +57 -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 +54 -179
- package/footer/Footer.stories.tsx +41 -19
- package/footer/Footer.test.js +85 -0
- package/footer/Icons.d.ts +2 -2
- package/footer/Icons.js +3 -8
- package/footer/types.d.ts +21 -22
- package/grid/Grid.d.ts +7 -0
- package/grid/Grid.js +76 -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 +4 -3
- package/header/Header.js +104 -197
- package/header/Header.stories.tsx +152 -63
- package/header/Header.test.js +66 -0
- package/header/Icons.d.ts +2 -2
- package/header/Icons.js +4 -9
- package/header/types.d.ts +5 -20
- package/heading/Heading.js +10 -32
- package/heading/Heading.stories.tsx +3 -2
- package/heading/Heading.test.js +169 -0
- package/heading/types.d.ts +7 -7
- package/image/Image.d.ts +4 -0
- package/image/Image.js +70 -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 +43 -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 +16 -6
- package/layout/ApplicationLayout.js +83 -174
- package/layout/ApplicationLayout.stories.tsx +85 -94
- package/layout/Icons.d.ts +8 -0
- package/layout/Icons.js +51 -48
- package/layout/SidenavContext.d.ts +5 -0
- package/layout/SidenavContext.js +13 -0
- package/layout/types.d.ts +19 -35
- package/link/Link.d.ts +3 -2
- package/link/Link.js +64 -110
- package/link/Link.stories.tsx +159 -52
- package/link/Link.test.js +63 -0
- package/link/types.d.ts +15 -35
- package/main.d.ts +14 -16
- package/main.js +61 -120
- package/nav-tabs/NavTabs.d.ts +8 -0
- package/nav-tabs/NavTabs.js +90 -0
- package/nav-tabs/NavTabs.stories.tsx +274 -0
- package/nav-tabs/NavTabs.test.js +75 -0
- package/nav-tabs/Tab.d.ts +4 -0
- package/nav-tabs/Tab.js +117 -0
- package/nav-tabs/types.d.ts +52 -0
- package/nav-tabs/types.js +5 -0
- package/number-input/NumberInput.d.ts +7 -0
- package/number-input/NumberInput.js +27 -43
- package/number-input/NumberInput.stories.tsx +44 -28
- package/number-input/NumberInput.test.js +830 -0
- package/number-input/types.d.ts +28 -15
- package/package.json +44 -43
- package/paginator/Icons.d.ts +5 -0
- package/paginator/Icons.js +21 -47
- package/paginator/Paginator.js +33 -87
- package/paginator/Paginator.stories.tsx +24 -0
- package/paginator/Paginator.test.js +335 -0
- package/paginator/types.d.ts +3 -3
- package/paragraph/Paragraph.d.ts +5 -0
- package/paragraph/Paragraph.js +27 -0
- package/paragraph/Paragraph.stories.tsx +27 -0
- package/password-input/Icons.d.ts +6 -0
- package/password-input/Icons.js +35 -0
- package/password-input/PasswordInput.js +57 -123
- package/password-input/PasswordInput.stories.tsx +3 -34
- package/password-input/PasswordInput.test.js +198 -0
- package/password-input/types.d.ts +21 -17
- package/progress-bar/ProgressBar.js +67 -87
- package/progress-bar/ProgressBar.stories.tsx +93 -0
- package/progress-bar/ProgressBar.test.js +93 -0
- package/progress-bar/types.d.ts +3 -3
- package/quick-nav/QuickNav.d.ts +4 -0
- package/quick-nav/QuickNav.js +94 -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 +124 -0
- package/radio-group/RadioGroup.d.ts +4 -0
- package/radio-group/RadioGroup.js +235 -0
- package/radio-group/RadioGroup.stories.tsx +214 -0
- package/radio-group/RadioGroup.test.js +756 -0
- package/radio-group/types.d.ts +114 -0
- package/radio-group/types.js +5 -0
- package/resultset-table/Icons.d.ts +7 -0
- package/resultset-table/Icons.js +47 -0
- package/resultset-table/ResultsetTable.js +159 -0
- package/{resultsetTable → resultset-table}/ResultsetTable.stories.tsx +56 -32
- package/resultset-table/ResultsetTable.test.js +305 -0
- package/{resultsetTable → resultset-table}/types.d.ts +7 -7
- package/resultset-table/types.js +5 -0
- package/select/Icons.d.ts +10 -0
- package/select/Icons.js +89 -0
- package/select/Listbox.d.ts +4 -0
- package/select/Listbox.js +143 -0
- package/select/Option.d.ts +4 -0
- package/select/Option.js +80 -0
- package/select/Select.js +210 -491
- package/select/Select.stories.tsx +603 -204
- package/select/Select.test.js +2334 -0
- package/select/types.d.ts +64 -25
- package/sidenav/Icons.d.ts +7 -0
- package/sidenav/Icons.js +47 -0
- package/sidenav/Sidenav.d.ts +6 -5
- package/sidenav/Sidenav.js +133 -70
- package/sidenav/Sidenav.stories.tsx +251 -134
- package/sidenav/Sidenav.test.js +37 -0
- package/sidenav/types.d.ts +52 -26
- package/slider/Slider.d.ts +2 -2
- package/slider/Slider.js +145 -168
- package/slider/Slider.test.js +254 -0
- package/slider/types.d.ts +11 -3
- package/spinner/Spinner.js +28 -64
- package/spinner/{Spinner.stories.jsx → Spinner.stories.tsx} +53 -26
- package/spinner/Spinner.test.js +55 -0
- package/spinner/types.d.ts +3 -3
- package/switch/Switch.d.ts +2 -2
- package/switch/Switch.js +152 -112
- package/switch/Switch.stories.tsx +45 -68
- package/switch/Switch.test.js +180 -0
- package/switch/types.d.ts +13 -5
- package/table/Table.js +7 -26
- package/table/{Table.stories.jsx → Table.stories.tsx} +81 -1
- package/table/Table.test.js +21 -0
- package/table/types.d.ts +8 -8
- package/tabs/Tab.d.ts +4 -0
- package/tabs/Tab.js +113 -0
- package/tabs/Tabs.d.ts +1 -1
- package/tabs/Tabs.js +318 -146
- package/tabs/Tabs.stories.tsx +122 -17
- package/tabs/Tabs.test.js +294 -0
- package/tabs/types.d.ts +46 -24
- package/tag/Tag.d.ts +1 -1
- package/tag/Tag.js +43 -85
- package/tag/Tag.stories.tsx +38 -28
- package/tag/Tag.test.js +49 -0
- package/tag/types.d.ts +25 -16
- package/text-input/Icons.d.ts +8 -0
- package/text-input/Icons.js +56 -0
- package/text-input/Suggestion.d.ts +4 -0
- package/text-input/Suggestion.js +67 -0
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +89 -0
- package/text-input/TextInput.js +301 -495
- package/text-input/TextInput.stories.tsx +280 -271
- package/text-input/TextInput.test.js +1739 -0
- package/text-input/types.d.ts +71 -25
- package/textarea/Textarea.js +79 -123
- package/textarea/Textarea.stories.tsx +175 -0
- package/textarea/Textarea.test.js +406 -0
- package/textarea/types.d.ts +27 -16
- package/toggle-group/ToggleGroup.d.ts +2 -2
- package/toggle-group/ToggleGroup.js +95 -105
- package/toggle-group/ToggleGroup.stories.tsx +53 -8
- package/toggle-group/ToggleGroup.test.js +137 -0
- package/toggle-group/types.d.ts +34 -17
- package/typography/Typography.d.ts +4 -0
- package/typography/Typography.js +23 -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 +1251 -1
- package/useTheme.js +4 -11
- package/useTranslatedLabels.d.ts +85 -0
- package/useTranslatedLabels.js +14 -0
- package/utils/BaseTypography.d.ts +21 -0
- package/utils/BaseTypography.js +94 -0
- package/utils/FocusLock.d.ts +13 -0
- package/utils/FocusLock.js +114 -0
- package/wizard/Wizard.d.ts +1 -1
- package/wizard/Wizard.js +70 -101
- package/wizard/Wizard.stories.tsx +48 -19
- package/wizard/Wizard.test.js +114 -0
- package/wizard/types.d.ts +12 -8
- package/ThemeContext.d.ts +0 -15
- package/ThemeContext.js +0 -243
- 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/card/ice-cream.jpg +0 -0
- package/common/RequiredComponent.js +0 -32
- package/date/Date.js +0 -373
- package/date/index.d.ts +0 -27
- package/input-text/Icons.js +0 -22
- package/input-text/InputText.js +0 -611
- package/input-text/index.d.ts +0 -36
- package/list/List.d.ts +0 -8
- package/list/List.js +0 -47
- package/list/List.stories.tsx +0 -85
- package/number-input/NumberInputContext.d.ts +0 -4
- package/number-input/NumberInputContext.js +0 -19
- package/number-input/numberInputContextTypes.d.ts +0 -19
- package/progress-bar/ProgressBar.stories.jsx +0 -58
- package/radio/Radio.d.ts +0 -4
- package/radio/Radio.js +0 -174
- package/radio/Radio.stories.tsx +0 -192
- package/radio/types.d.ts +0 -54
- package/resultsetTable/ResultsetTable.js +0 -251
- package/row/Row.d.ts +0 -11
- package/row/Row.js +0 -124
- package/row/Row.stories.tsx +0 -223
- package/slider/Slider.stories.tsx +0 -177
- package/stack/Stack.d.ts +0 -10
- package/stack/Stack.js +0 -94
- package/stack/Stack.stories.tsx +0 -150
- package/text/Text.d.ts +0 -7
- package/text/Text.js +0 -30
- package/text/Text.stories.tsx +0 -19
- package/textarea/Textarea.stories.jsx +0 -135
- package/toggle/Toggle.js +0 -186
- package/toggle/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/{radio → badge}/types.js +0 -0
- /package/{resultsetTable → bleed}/types.js +0 -0
- /package/{number-input/numberInputContextTypes.js → bulleted-list/types.js} +0 -0
- /package/{resultsetTable → resultset-table}/ResultsetTable.d.ts +0 -0
package/footer/Footer.js
CHANGED
|
@@ -1,198 +1,91 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
var _typeof3 = require("@babel/runtime/helpers/typeof");
|
|
6
|
-
|
|
7
5
|
Object.defineProperty(exports, "__esModule", {
|
|
8
6
|
value: true
|
|
9
7
|
});
|
|
10
8
|
exports["default"] = void 0;
|
|
11
|
-
|
|
12
9
|
var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
13
|
-
|
|
14
10
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
15
|
-
|
|
16
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
17
|
-
|
|
18
11
|
var _react = _interopRequireWildcard(require("react"));
|
|
19
|
-
|
|
20
12
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
21
|
-
|
|
22
|
-
var _variables = require("../common/variables.js");
|
|
23
|
-
|
|
13
|
+
var _variables = require("../common/variables");
|
|
24
14
|
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
25
|
-
|
|
15
|
+
var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
|
|
26
16
|
var _BackgroundColorContext = require("../BackgroundColorContext");
|
|
27
|
-
|
|
28
17
|
var _Icons = require("./Icons");
|
|
29
|
-
|
|
30
|
-
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10
|
|
31
|
-
|
|
32
|
-
function
|
|
33
|
-
|
|
34
|
-
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
35
|
-
|
|
18
|
+
var _Flex = _interopRequireDefault(require("../flex/Flex"));
|
|
19
|
+
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10;
|
|
20
|
+
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; }
|
|
36
22
|
var DxcFooter = function DxcFooter(_ref) {
|
|
37
23
|
var socialLinks = _ref.socialLinks,
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
_ref$tabIndex = _ref.tabIndex,
|
|
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
|
-
|
|
24
|
+
bottomLinks = _ref.bottomLinks,
|
|
25
|
+
copyright = _ref.copyright,
|
|
26
|
+
children = _ref.children,
|
|
27
|
+
margin = _ref.margin,
|
|
28
|
+
_ref$tabIndex = _ref.tabIndex,
|
|
29
|
+
tabIndex = _ref$tabIndex === void 0 ? 0 : _ref$tabIndex;
|
|
63
30
|
var colorsTheme = (0, _useTheme["default"])();
|
|
31
|
+
var translatedLabels = (0, _useTranslatedLabels["default"])();
|
|
64
32
|
var footerLogo = (0, _react.useMemo)(function () {
|
|
65
33
|
if (!colorsTheme.footer.logo) {
|
|
66
34
|
return _Icons.dxcLogo;
|
|
67
35
|
}
|
|
68
|
-
|
|
69
36
|
if (typeof colorsTheme.footer.logo === "string") {
|
|
70
37
|
return /*#__PURE__*/_react["default"].createElement(LogoImg, {
|
|
71
|
-
alt:
|
|
38
|
+
alt: translatedLabels.formFields.logoAlternativeText,
|
|
72
39
|
src: colorsTheme.footer.logo
|
|
73
40
|
});
|
|
74
41
|
}
|
|
75
|
-
|
|
76
42
|
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) {
|
|
43
|
+
}, [colorsTheme]);
|
|
44
|
+
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
45
|
+
theme: colorsTheme.footer
|
|
46
|
+
}, /*#__PURE__*/_react["default"].createElement(FooterContainer, {
|
|
47
|
+
margin: margin
|
|
48
|
+
}, /*#__PURE__*/_react["default"].createElement(_Flex["default"], {
|
|
49
|
+
justifyContent: "space-between",
|
|
50
|
+
alignItems: "center",
|
|
51
|
+
wrap: "wrap",
|
|
52
|
+
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) {
|
|
108
54
|
return /*#__PURE__*/_react["default"].createElement(SocialAnchor, {
|
|
55
|
+
href: link.href,
|
|
109
56
|
tabIndex: tabIndex,
|
|
57
|
+
title: link.title,
|
|
58
|
+
"aria-label": link.title,
|
|
110
59
|
key: "social".concat(index).concat(link.href),
|
|
111
|
-
index: index
|
|
112
|
-
|
|
113
|
-
}, /*#__PURE__*/_react["default"].createElement(SocialIconContainer, null, typeof link.logo === "string" ? /*#__PURE__*/_react["default"].createElement(SocialIconImg, {
|
|
60
|
+
index: index
|
|
61
|
+
}, /*#__PURE__*/_react["default"].createElement(SocialIconContainer, null, typeof link.logo === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
|
|
114
62
|
src: link.logo
|
|
115
63
|
}) : link.logo));
|
|
116
|
-
})
|
|
117
|
-
|
|
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) {
|
|
118
67
|
return /*#__PURE__*/_react["default"].createElement("span", {
|
|
119
68
|
key: "bottom".concat(index).concat(link.text)
|
|
120
69
|
}, /*#__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)))));
|
|
70
|
+
href: link.href,
|
|
71
|
+
tabIndex: tabIndex
|
|
72
|
+
}, link.text));
|
|
73
|
+
})), /*#__PURE__*/_react["default"].createElement(Copyright, null, copyright || translatedLabels.footer.copyrightText(new Date().getFullYear())))));
|
|
151
74
|
};
|
|
152
|
-
|
|
153
|
-
var FooterContainer = _styledComponents["default"].footer(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n padding: ", ";\n background-color: ", ";\n margin-top: ", ";\n width: 100%;\n box-sizing: border-box;\n min-height: ", ";\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n"])), function (props) {
|
|
154
|
-
return props.refSize <= _variables.responsiveSizes.mobileLarge ? "20px 20px 20px 20px" : "24px 36px 24px 36px";
|
|
155
|
-
}, function (props) {
|
|
156
|
-
return props.theme.backgroundColor;
|
|
157
|
-
}, function (props) {
|
|
158
|
-
return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
|
|
159
|
-
}, function (props) {
|
|
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) {
|
|
160
76
|
return props.theme.height;
|
|
161
|
-
});
|
|
162
|
-
|
|
163
|
-
var FooterHeader = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n"])));
|
|
164
|
-
|
|
165
|
-
var FooterFooter = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n align-items: flex-end;\n flex-direction: ", ";\n align-items: ", ";\n border-top: ", ";\n"])), function (props) {
|
|
166
|
-
return props.refSize <= _variables.responsiveSizes.mobileLarge ? "column" : "row";
|
|
167
77
|
}, function (props) {
|
|
168
|
-
return props.
|
|
78
|
+
return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
|
|
169
79
|
}, function (props) {
|
|
80
|
+
return props.theme.backgroundColor;
|
|
81
|
+
}, _variables.responsiveSizes.small, _variables.responsiveSizes.small);
|
|
82
|
+
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
83
|
return "".concat(props.theme.bottomLinksDividerThickness, " ").concat(props.theme.bottomLinksDividerStyle, " ").concat(props.theme.bottomLinksDividerColor);
|
|
171
84
|
});
|
|
172
|
-
|
|
173
|
-
var
|
|
85
|
+
var ChildComponents = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n min-height: 16px;\n overflow: hidden;\n"])));
|
|
86
|
+
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) {
|
|
174
87
|
return props.theme.bottomLinksDividerSpacing;
|
|
175
88
|
}, 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
|
-
});
|
|
182
|
-
|
|
183
|
-
var ChildComponents = _styledComponents["default"].div(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n min-height: 15px;\n padding: ", ";\n padding-top: ", ";\n padding-right: ", ";\n padding-bottom: ", ";\n padding-left: ", ";\n overflow: hidden;\n"])), function (props) {
|
|
184
|
-
return props.padding && (0, _typeof2["default"])(props.padding) !== "object" ? _variables.spaces[props.padding] : "0px";
|
|
185
|
-
}, function (props) {
|
|
186
|
-
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.top ? _variables.spaces[props.padding.top] : "";
|
|
187
|
-
}, function (props) {
|
|
188
|
-
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.right ? _variables.spaces[props.padding.right] : "";
|
|
189
|
-
}, function (props) {
|
|
190
|
-
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.bottom ? _variables.spaces[props.padding.bottom] : "";
|
|
191
|
-
}, 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
89
|
return props.theme.copyrightFontFamily;
|
|
197
90
|
}, function (props) {
|
|
198
91
|
return props.theme.copyrightFontSize;
|
|
@@ -202,47 +95,31 @@ var Copyright = _styledComponents["default"].div(_templateObject6 || (_templateO
|
|
|
202
95
|
return props.theme.copyrightFontWeight;
|
|
203
96
|
}, function (props) {
|
|
204
97
|
return props.theme.copyrightFontColor;
|
|
205
|
-
},
|
|
206
|
-
|
|
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
|
-
});
|
|
214
|
-
|
|
215
|
-
var LogoContainer = _styledComponents["default"].div(_templateObject7 || (_templateObject7 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n"])), function (props) {
|
|
98
|
+
}, _variables.responsiveSizes.small, _variables.responsiveSizes.small);
|
|
99
|
+
var LogoContainer = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n"])), function (props) {
|
|
216
100
|
return props.theme.logoHeight;
|
|
217
101
|
}, function (props) {
|
|
218
102
|
return props.theme.logoWidth;
|
|
219
103
|
});
|
|
220
|
-
|
|
221
|
-
var LogoImg = _styledComponents["default"].img(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n"])), function (props) {
|
|
104
|
+
var LogoImg = _styledComponents["default"].img(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n"])), function (props) {
|
|
222
105
|
return props.theme.logoHeight;
|
|
223
106
|
}, function (props) {
|
|
224
107
|
return props.theme.logoWidth;
|
|
225
108
|
});
|
|
226
|
-
|
|
227
|
-
var SocialAnchor = _styledComponents["default"].a(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n & {\n display: inline-flex;\n margin-left: ", ";\n }\n"])), function (props) {
|
|
109
|
+
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
110
|
return props.index === 0 ? "0px" : props.theme.socialLinksGutter;
|
|
229
111
|
});
|
|
230
|
-
|
|
231
|
-
var SocialIconImg = _styledComponents["default"].img(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])([""])));
|
|
232
|
-
|
|
233
|
-
var SocialIconContainer = _styledComponents["default"].div(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n & {\n display: inline-flex;\n height: ", ";\n width: ", ";\n color: ", ";\n }\n\n overflow: hidden;\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
|
|
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) {
|
|
234
113
|
return props.theme.socialLinksSize;
|
|
235
114
|
}, function (props) {
|
|
236
115
|
return props.theme.socialLinksSize;
|
|
237
116
|
}, function (props) {
|
|
238
117
|
return props.theme.socialLinksColor;
|
|
239
118
|
});
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
})
|
|
244
|
-
|
|
245
|
-
var BottomLink = _styledComponents["default"].a(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2["default"])(["\n text-decoration: ", ";\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n"])), function (props) {
|
|
119
|
+
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
|
+
return props.theme.bottomLinksDividerSpacing;
|
|
121
|
+
}, _variables.responsiveSizes.small, _variables.responsiveSizes.small);
|
|
122
|
+
var BottomLink = _styledComponents["default"].a(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n text-decoration: ", ";\n color: ", ";\n font-family: ", ";\n font-size: ", ";\n font-style: ", ";\n font-weight: ", ";\n border-radius: 2px;\n\n &:focus {\n outline: 2px solid #0095ff;\n }\n"])), function (props) {
|
|
246
123
|
return props.theme.bottomLinksTextDecoration;
|
|
247
124
|
}, function (props) {
|
|
248
125
|
return props.theme.bottomLinksFontColor;
|
|
@@ -255,6 +132,4 @@ var BottomLink = _styledComponents["default"].a(_templateObject13 || (_templateO
|
|
|
255
132
|
}, function (props) {
|
|
256
133
|
return props.theme.bottomLinksFontWeight;
|
|
257
134
|
});
|
|
258
|
-
|
|
259
|
-
var _default = DxcFooter;
|
|
260
|
-
exports["default"] = _default;
|
|
135
|
+
var _default = exports["default"] = DxcFooter;
|
|
@@ -2,6 +2,7 @@ import React from "react";
|
|
|
2
2
|
import DxcFooter from "./Footer";
|
|
3
3
|
import Title from "../../.storybook/components/Title";
|
|
4
4
|
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
5
|
+
import { HalstackProvider } from "../HalstackContext";
|
|
5
6
|
|
|
6
7
|
const social = [
|
|
7
8
|
{
|
|
@@ -25,10 +26,20 @@ const social = [
|
|
|
25
26
|
</g>
|
|
26
27
|
</svg>
|
|
27
28
|
),
|
|
29
|
+
title: "Linkedin",
|
|
28
30
|
},
|
|
29
31
|
{
|
|
30
|
-
href: "https://
|
|
31
|
-
logo:
|
|
32
|
+
href: "https://x.com/dxctechnology",
|
|
33
|
+
logo: (
|
|
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
|
+
/>
|
|
40
|
+
</svg>
|
|
41
|
+
),
|
|
42
|
+
title: "X",
|
|
32
43
|
},
|
|
33
44
|
{
|
|
34
45
|
href: "https://www.facebook.com/DXCTechnology/",
|
|
@@ -55,6 +66,7 @@ const social = [
|
|
|
55
66
|
</g>
|
|
56
67
|
</svg>
|
|
57
68
|
),
|
|
69
|
+
title: "Facebook",
|
|
58
70
|
},
|
|
59
71
|
];
|
|
60
72
|
|
|
@@ -64,8 +76,8 @@ const bottom = [
|
|
|
64
76
|
text: "Linkedin",
|
|
65
77
|
},
|
|
66
78
|
{
|
|
67
|
-
href: "https://
|
|
68
|
-
text: "
|
|
79
|
+
href: "https://x.com/dxctechnology",
|
|
80
|
+
text: "X",
|
|
69
81
|
},
|
|
70
82
|
{
|
|
71
83
|
href: "https://www.facebook.com/DXCTechnology/",
|
|
@@ -78,6 +90,15 @@ export default {
|
|
|
78
90
|
component: DxcFooter,
|
|
79
91
|
};
|
|
80
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
|
+
|
|
81
102
|
export const Chromatic = () => (
|
|
82
103
|
<>
|
|
83
104
|
<ExampleContainer>
|
|
@@ -92,6 +113,14 @@ export const Chromatic = () => (
|
|
|
92
113
|
</div>
|
|
93
114
|
</DxcFooter>
|
|
94
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>
|
|
95
124
|
<Title title="Margins" theme="light" level={2} />
|
|
96
125
|
<ExampleContainer>
|
|
97
126
|
<Title title="Xxsmall margin" theme="light" level={4} />
|
|
@@ -109,22 +138,15 @@ export const Chromatic = () => (
|
|
|
109
138
|
<Title title="Xxlarge margin" theme="light" level={4} />
|
|
110
139
|
<DxcFooter margin="xxlarge"></DxcFooter>
|
|
111
140
|
</ExampleContainer>
|
|
112
|
-
<Title title="
|
|
141
|
+
<Title title="Opinionated theme" theme="light" level={2} />
|
|
113
142
|
<ExampleContainer>
|
|
114
|
-
<
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
<DxcFooter padding="medium"></DxcFooter>
|
|
122
|
-
<Title title="Large padding" theme="light" level={4} />
|
|
123
|
-
<DxcFooter padding="large"></DxcFooter>
|
|
124
|
-
<Title title="Xlarge padding" theme="light" level={4} />
|
|
125
|
-
<DxcFooter padding="xlarge"></DxcFooter>
|
|
126
|
-
<Title title="Xxlarge padding" theme="light" level={4} />
|
|
127
|
-
<DxcFooter padding="xxlarge"></DxcFooter>
|
|
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>
|
|
128
150
|
</ExampleContainer>
|
|
129
151
|
</>
|
|
130
152
|
);
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
var _react = _interopRequireDefault(require("react"));
|
|
5
|
+
var _react2 = require("@testing-library/react");
|
|
6
|
+
var _Footer = _interopRequireDefault(require("./Footer.tsx"));
|
|
7
|
+
var social = [{
|
|
8
|
+
href: "https://www.test.com/social",
|
|
9
|
+
logo: "https://developer.apple.com/design/human-interface-guidelines/foundations/app-icons/images/icon-and-image-large-icon-settings_2x.png",
|
|
10
|
+
title: "test"
|
|
11
|
+
}];
|
|
12
|
+
var bottom = [{
|
|
13
|
+
href: "https://www.test.com/bottom",
|
|
14
|
+
text: "bottom-link-text"
|
|
15
|
+
}];
|
|
16
|
+
describe("Footer component tests", function () {
|
|
17
|
+
test("Footer renders with default logo", function () {
|
|
18
|
+
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], null)),
|
|
19
|
+
getByTitle = _render.getByTitle;
|
|
20
|
+
expect(getByTitle("DXC Logo")).toBeTruthy();
|
|
21
|
+
});
|
|
22
|
+
test("Footer renders with social links", function () {
|
|
23
|
+
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
|
|
24
|
+
socialLinks: social
|
|
25
|
+
})),
|
|
26
|
+
getByRole = _render2.getByRole;
|
|
27
|
+
var socialIcon = getByRole("link");
|
|
28
|
+
expect(socialIcon.getAttribute("href")).toBe("https://www.test.com/social");
|
|
29
|
+
});
|
|
30
|
+
test("Footer renders with bottom links", function () {
|
|
31
|
+
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
|
|
32
|
+
bottomLinks: bottom
|
|
33
|
+
})),
|
|
34
|
+
getByText = _render3.getByText;
|
|
35
|
+
var link = getByText("bottom-link-text");
|
|
36
|
+
expect(link.getAttribute("href")).toBe("https://www.test.com/bottom");
|
|
37
|
+
});
|
|
38
|
+
test("Footer renders with copyright text", function () {
|
|
39
|
+
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
|
|
40
|
+
copyright: "test-copyright"
|
|
41
|
+
})),
|
|
42
|
+
getByText = _render4.getByText;
|
|
43
|
+
expect(getByText("test-copyright")).toBeTruthy();
|
|
44
|
+
});
|
|
45
|
+
test("Footer renders with correct children", function () {
|
|
46
|
+
// We need to force the offsetWidth value
|
|
47
|
+
Object.defineProperty(HTMLElement.prototype, "offsetWidth", {
|
|
48
|
+
configurable: true,
|
|
49
|
+
value: 1024
|
|
50
|
+
});
|
|
51
|
+
var _render5 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], null, /*#__PURE__*/_react["default"].createElement("p", null, "footer-child-text"))),
|
|
52
|
+
getByText = _render5.getByText;
|
|
53
|
+
expect(getByText("footer-child-text")).toBeTruthy();
|
|
54
|
+
});
|
|
55
|
+
test("Footer renders with children in mobile", function () {
|
|
56
|
+
// 425 is mobile width
|
|
57
|
+
Object.defineProperty(HTMLElement.prototype, "offsetWidth", {
|
|
58
|
+
configurable: true,
|
|
59
|
+
value: 425
|
|
60
|
+
});
|
|
61
|
+
var _render6 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], null, /*#__PURE__*/_react["default"].createElement("p", null, "footer-child-text"))),
|
|
62
|
+
queryByText = _render6.queryByText;
|
|
63
|
+
expect(queryByText("footer-child-text")).toBeTruthy();
|
|
64
|
+
});
|
|
65
|
+
test("Footer is fully rendered", function () {
|
|
66
|
+
Object.defineProperty(HTMLElement.prototype, "offsetWidth", {
|
|
67
|
+
configurable: true,
|
|
68
|
+
value: 1024
|
|
69
|
+
});
|
|
70
|
+
var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
|
|
71
|
+
socialLinks: social,
|
|
72
|
+
bottomLinks: bottom,
|
|
73
|
+
copyright: "test-copyright"
|
|
74
|
+
}, /*#__PURE__*/_react["default"].createElement("p", null, "footer-child-text"))),
|
|
75
|
+
getAllByRole = _render7.getAllByRole,
|
|
76
|
+
getByText = _render7.getByText;
|
|
77
|
+
var socialIcon = getAllByRole("link")[0];
|
|
78
|
+
expect(socialIcon.getAttribute("href")).toBe("https://www.test.com/social");
|
|
79
|
+
expect(socialIcon.getAttribute("aria-label")).toBe("test");
|
|
80
|
+
var bottomLink = getByText("bottom-link-text");
|
|
81
|
+
expect(bottomLink.getAttribute("href")).toBe("https://www.test.com/bottom");
|
|
82
|
+
expect(getByText("test-copyright")).toBeTruthy();
|
|
83
|
+
expect(getByText("footer-child-text")).toBeTruthy();
|
|
84
|
+
});
|
|
85
|
+
});
|
package/footer/Icons.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const dxcLogo: JSX.Element;
|
|
1
|
+
import React from "react";
|
|
2
|
+
export declare const dxcLogo: React.JSX.Element;
|
package/footer/Icons.js
CHANGED
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
4
|
Object.defineProperty(exports, "__esModule", {
|
|
6
5
|
value: true
|
|
7
6
|
});
|
|
8
7
|
exports.dxcLogo = void 0;
|
|
9
|
-
|
|
10
8
|
var _react = _interopRequireDefault(require("react"));
|
|
11
|
-
|
|
12
|
-
var dxcLogo = /*#__PURE__*/_react["default"].createElement("svg", {
|
|
9
|
+
var dxcLogo = exports.dxcLogo = /*#__PURE__*/_react["default"].createElement("svg", {
|
|
13
10
|
id: "g10",
|
|
14
11
|
xmlns: "http://www.w3.org/2000/svg",
|
|
15
|
-
width: "
|
|
12
|
+
width: "100%",
|
|
16
13
|
height: "32",
|
|
17
14
|
viewBox: "0 0 280.781 32"
|
|
18
15
|
}, /*#__PURE__*/_react["default"].createElement("title", null, "DXC Logo"), /*#__PURE__*/_react["default"].createElement("g", {
|
|
@@ -72,6 +69,4 @@ var dxcLogo = /*#__PURE__*/_react["default"].createElement("svg", {
|
|
|
72
69
|
d: "M84.218-55.737a10.063,10.063,0,0,1,2.589-4.4,9.792,9.792,0,0,1,6.985-2.77h11.328V-69.3H93.792a17.041,17.041,0,0,0-11.8,4.759,16.344,16.344,0,0,0-3.547,5.115,13.247,13.247,0,0,0-1.122,3.688Zm0,4.877a10.065,10.065,0,0,0,2.589,4.4,9.793,9.793,0,0,0,6.985,2.77h11.328V-37.3H93.792a17.042,17.042,0,0,1-11.8-4.759,16.339,16.339,0,0,1-3.547-5.114,13.251,13.251,0,0,1-1.122-3.688ZM63.1-47.98,54.45-37.3H45.873l12.957-16-12.957-16H54.45L63.1-58.619l8.65-10.68h8.578l-12.957,16,12.957,16H71.749ZM48.875-55.737a13.212,13.212,0,0,0-1.122-3.688,16.359,16.359,0,0,0-3.546-5.115,17.043,17.043,0,0,0-11.8-4.759H21.08v6.393H32.408a9.79,9.79,0,0,1,6.985,2.77,10.072,10.072,0,0,1,2.59,4.4Zm0,4.877a13.215,13.215,0,0,1-1.122,3.688,16.353,16.353,0,0,1-3.546,5.114,17.044,17.044,0,0,1-11.8,4.759H21.08v-6.393H32.408a9.791,9.791,0,0,0,6.985-2.77,10.074,10.074,0,0,0,2.59-4.4h6.892",
|
|
73
70
|
transform: "translate(-21.08 69.298)",
|
|
74
71
|
fill: "#fff"
|
|
75
|
-
})));
|
|
76
|
-
|
|
77
|
-
exports.dxcLogo = dxcLogo;
|
|
72
|
+
})));
|
package/footer/types.d.ts
CHANGED
|
@@ -1,33 +1,37 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
type Space = "xxsmall" | "xsmall" | "small" | "medium" | "large" | "xlarge" | "xxlarge";
|
|
3
|
+
type Size = {
|
|
4
4
|
top?: Space;
|
|
5
5
|
bottom?: Space;
|
|
6
6
|
left?: Space;
|
|
7
7
|
right?: Space;
|
|
8
8
|
};
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
|
|
10
|
+
type SocialLink = {
|
|
11
|
+
/**
|
|
12
|
+
* URL of the page the link goes to.
|
|
13
|
+
*/
|
|
14
|
+
href: string;
|
|
11
15
|
/**
|
|
12
16
|
* Element used as the icon for the link.
|
|
13
17
|
*/
|
|
14
18
|
logo: string | SVG;
|
|
19
|
+
/**
|
|
20
|
+
* Value for the HTML properties title and aria-label.
|
|
21
|
+
*/
|
|
22
|
+
title: string;
|
|
23
|
+
};
|
|
24
|
+
type BottomLink = {
|
|
15
25
|
/**
|
|
16
26
|
* URL of the page the link goes to.
|
|
17
27
|
*/
|
|
18
28
|
href: string;
|
|
19
|
-
};
|
|
20
|
-
declare type BottomLink = {
|
|
21
29
|
/**
|
|
22
30
|
* Text for the link.
|
|
23
31
|
*/
|
|
24
32
|
text: string;
|
|
25
|
-
/**
|
|
26
|
-
* URL of the page the link goes to.
|
|
27
|
-
*/
|
|
28
|
-
href: string;
|
|
29
33
|
};
|
|
30
|
-
|
|
34
|
+
type FooterPropsType = {
|
|
31
35
|
/**
|
|
32
36
|
* An array of objects representing the links that will be rendered as
|
|
33
37
|
* icons at the top-right side of the footer.
|
|
@@ -38,28 +42,23 @@ declare type FooterPropsType = {
|
|
|
38
42
|
* the bottom part of the footer.
|
|
39
43
|
*/
|
|
40
44
|
bottomLinks?: BottomLink[];
|
|
41
|
-
/**
|
|
42
|
-
* The center section of the footer. Can be used to render custom
|
|
43
|
-
* content in this area.
|
|
44
|
-
*/
|
|
45
|
-
children?: React.ReactNode;
|
|
46
45
|
/**
|
|
47
46
|
* The text that will be displayed as copyright disclaimer.
|
|
48
47
|
*/
|
|
49
48
|
copyright?: string;
|
|
50
49
|
/**
|
|
51
|
-
*
|
|
52
|
-
*
|
|
50
|
+
* The center section of the footer. Can be used to render custom
|
|
51
|
+
* content in this area.
|
|
53
52
|
*/
|
|
54
|
-
|
|
53
|
+
children?: React.ReactNode;
|
|
55
54
|
/**
|
|
56
55
|
* Size of the top margin to be applied to the footer.
|
|
57
56
|
*/
|
|
58
57
|
margin?: Space | Size;
|
|
59
58
|
/**
|
|
60
|
-
*
|
|
61
|
-
*
|
|
59
|
+
* Value of the tabindex for all interactive elements, except those
|
|
60
|
+
* inside the custom area.
|
|
62
61
|
*/
|
|
63
|
-
|
|
62
|
+
tabIndex?: number;
|
|
64
63
|
};
|
|
65
64
|
export default FooterPropsType;
|
package/grid/Grid.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import GridPropsType, { GridItemProps } from "./types";
|
|
3
|
+
declare const DxcGrid: {
|
|
4
|
+
(props: GridPropsType): JSX.Element;
|
|
5
|
+
Item: import("styled-components").StyledComponent<"div", any, GridItemProps, never>;
|
|
6
|
+
};
|
|
7
|
+
export default DxcGrid;
|