@dxc-technology/halstack-react 0.0.0-2b773b3 → 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 +2 -2
- package/BackgroundColorContext.js +1 -1
- 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 +108 -134
- package/accordion/Accordion.stories.tsx +108 -118
- package/accordion/Accordion.test.js +10 -11
- package/accordion/types.d.ts +1 -12
- package/accordion-group/AccordionGroup.d.ts +4 -3
- package/accordion-group/AccordionGroup.js +25 -65
- package/accordion-group/AccordionGroup.stories.tsx +93 -66
- package/accordion-group/AccordionGroup.test.js +27 -62
- package/accordion-group/AccordionGroupAccordion.d.ts +4 -0
- package/accordion-group/AccordionGroupAccordion.js +43 -0
- package/accordion-group/types.d.ts +7 -12
- package/alert/Alert.js +9 -10
- package/alert/Alert.stories.tsx +28 -0
- package/alert/Alert.test.js +1 -1
- package/badge/Badge.d.ts +1 -1
- package/badge/Badge.js +5 -3
- package/badge/types.d.ts +1 -0
- package/bleed/Bleed.js +1 -34
- package/bleed/Bleed.stories.tsx +95 -95
- package/bleed/types.d.ts +1 -1
- package/box/Box.d.ts +1 -1
- package/box/Box.js +19 -48
- package/box/Box.stories.tsx +38 -51
- package/box/Box.test.js +1 -1
- package/box/types.d.ts +0 -11
- 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/button/Button.d.ts +1 -1
- package/button/Button.js +44 -71
- package/button/Button.stories.tsx +159 -8
- package/button/Button.test.js +12 -1
- package/button/types.d.ts +9 -5
- package/card/Card.d.ts +1 -1
- package/card/Card.js +37 -58
- package/card/Card.stories.tsx +12 -42
- package/card/Card.test.js +1 -1
- package/card/types.d.ts +1 -6
- package/checkbox/Checkbox.d.ts +2 -2
- package/checkbox/Checkbox.js +104 -101
- package/checkbox/Checkbox.stories.tsx +198 -130
- package/checkbox/Checkbox.test.js +94 -17
- package/checkbox/types.d.ts +7 -3
- package/chip/Chip.js +28 -49
- package/chip/Chip.stories.tsx +121 -26
- package/chip/Chip.test.js +3 -5
- package/chip/types.d.ts +1 -1
- 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 -1111
- package/date-input/Calendar.d.ts +4 -0
- package/date-input/Calendar.js +258 -0
- package/date-input/DateInput.js +140 -238
- package/date-input/DateInput.stories.tsx +209 -33
- package/date-input/DateInput.test.js +519 -149
- 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 +55 -0
- package/dialog/Dialog.d.ts +1 -1
- package/dialog/Dialog.js +68 -103
- package/dialog/Dialog.stories.tsx +154 -171
- package/dialog/Dialog.test.js +334 -5
- package/dialog/types.d.ts +0 -12
- package/dropdown/Dropdown.d.ts +1 -1
- package/dropdown/Dropdown.js +246 -253
- package/dropdown/Dropdown.stories.tsx +245 -56
- package/dropdown/Dropdown.test.js +507 -110
- 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 +23 -3
- package/file-input/FileInput.d.ts +2 -2
- package/file-input/FileInput.js +180 -223
- package/file-input/FileInput.stories.tsx +122 -11
- package/file-input/FileInput.test.js +14 -14
- package/file-input/FileItem.d.ts +4 -14
- package/file-input/FileItem.js +44 -66
- package/file-input/types.d.ts +18 -1
- 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/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +49 -142
- package/footer/Footer.stories.tsx +41 -19
- package/footer/Footer.test.js +16 -26
- package/footer/Icons.js +1 -1
- package/footer/types.d.ts +11 -12
- 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/header/Header.d.ts +4 -3
- package/header/Header.js +102 -150
- package/header/Header.stories.tsx +152 -63
- package/header/Header.test.js +20 -4
- package/header/Icons.js +2 -2
- package/header/types.d.ts +0 -13
- package/heading/Heading.js +1 -1
- package/heading/Heading.test.js +1 -1
- 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/inset/Inset.js +1 -34
- package/inset/Inset.stories.tsx +37 -36
- package/inset/types.d.ts +1 -1
- package/layout/ApplicationLayout.d.ts +16 -6
- package/layout/ApplicationLayout.js +81 -138
- package/layout/ApplicationLayout.stories.tsx +85 -94
- 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 +19 -35
- package/link/Link.d.ts +3 -2
- package/link/Link.js +60 -77
- package/link/Link.stories.tsx +155 -53
- package/link/Link.test.js +9 -19
- package/link/types.d.ts +5 -21
- package/main.d.ts +9 -10
- package/main.js +55 -57
- 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/number-input/NumberInput.d.ts +7 -0
- package/number-input/NumberInput.js +6 -4
- package/number-input/NumberInput.test.js +319 -102
- package/number-input/types.d.ts +13 -10
- package/package.json +19 -23
- package/paginator/Icons.d.ts +5 -0
- package/paginator/Icons.js +16 -28
- package/paginator/Paginator.js +20 -49
- package/paginator/Paginator.stories.tsx +24 -0
- package/paginator/Paginator.test.js +91 -39
- 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.js +36 -80
- package/password-input/PasswordInput.stories.tsx +1 -0
- package/password-input/PasswordInput.test.js +36 -45
- package/password-input/types.d.ts +14 -11
- package/progress-bar/ProgressBar.js +61 -55
- package/progress-bar/ProgressBar.stories.jsx +47 -12
- package/progress-bar/ProgressBar.test.js +68 -23
- package/quick-nav/QuickNav.js +77 -26
- package/quick-nav/QuickNav.stories.tsx +145 -26
- package/quick-nav/types.d.ts +4 -4
- package/radio-group/Radio.d.ts +1 -1
- package/radio-group/Radio.js +46 -31
- package/radio-group/RadioGroup.js +37 -36
- package/radio-group/RadioGroup.stories.tsx +132 -18
- package/radio-group/RadioGroup.test.js +124 -97
- package/radio-group/types.d.ts +2 -2
- package/resultsetTable/Icons.d.ts +7 -0
- package/resultsetTable/Icons.js +51 -0
- package/resultsetTable/ResultsetTable.js +49 -108
- package/resultsetTable/ResultsetTable.stories.tsx +50 -25
- package/resultsetTable/ResultsetTable.test.js +61 -42
- package/resultsetTable/types.d.ts +1 -1
- package/select/Listbox.d.ts +4 -0
- package/select/Listbox.js +169 -0
- package/select/Option.js +11 -24
- package/select/Select.js +148 -214
- package/select/Select.stories.tsx +525 -136
- package/select/Select.test.js +478 -307
- package/select/types.d.ts +20 -4
- package/sidenav/Icons.d.ts +7 -0
- package/sidenav/Icons.js +51 -0
- package/sidenav/Sidenav.d.ts +6 -5
- package/sidenav/Sidenav.js +146 -44
- package/sidenav/Sidenav.stories.tsx +251 -151
- package/sidenav/Sidenav.test.js +25 -37
- package/sidenav/types.d.ts +52 -26
- package/slider/Slider.d.ts +2 -2
- package/slider/Slider.js +121 -97
- package/slider/Slider.stories.tsx +64 -1
- package/slider/Slider.test.js +122 -22
- package/slider/types.d.ts +4 -0
- package/spinner/Spinner.js +18 -24
- package/spinner/Spinner.stories.jsx +53 -27
- package/spinner/Spinner.test.js +1 -1
- package/switch/Switch.d.ts +2 -2
- package/switch/Switch.js +138 -68
- package/switch/Switch.stories.tsx +49 -38
- package/switch/Switch.test.js +145 -18
- package/switch/types.d.ts +6 -2
- package/table/Table.js +3 -3
- package/table/Table.stories.jsx +80 -1
- package/table/Table.test.js +2 -2
- package/tabs/Tab.d.ts +4 -0
- package/tabs/Tab.js +132 -0
- package/tabs/Tabs.js +358 -108
- package/tabs/Tabs.stories.tsx +119 -11
- package/tabs/Tabs.test.js +220 -10
- package/tabs/types.d.ts +13 -3
- package/tag/Tag.js +12 -17
- package/tag/Tag.stories.tsx +14 -1
- package/tag/Tag.test.js +1 -1
- package/tag/types.d.ts +1 -1
- 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.js +260 -399
- package/text-input/TextInput.stories.tsx +319 -185
- package/text-input/TextInput.test.js +846 -759
- package/text-input/types.d.ts +50 -12
- package/textarea/Textarea.js +37 -45
- package/textarea/Textarea.stories.jsx +68 -1
- package/textarea/Textarea.test.js +61 -19
- package/textarea/types.d.ts +14 -7
- package/toggle-group/ToggleGroup.d.ts +2 -2
- package/toggle-group/ToggleGroup.js +85 -59
- package/toggle-group/ToggleGroup.stories.tsx +48 -3
- package/toggle-group/ToggleGroup.test.js +38 -24
- package/toggle-group/types.d.ts +23 -14
- 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 +1246 -1
- 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.js +44 -45
- package/wizard/Wizard.stories.tsx +40 -1
- package/wizard/Wizard.test.js +1 -1
- package/wizard/types.d.ts +3 -3
- package/ThemeContext.d.ts +0 -10
- package/ThemeContext.js +0 -243
- package/card/ice-cream.jpg +0 -0
- package/common/RequiredComponent.js +0 -32
- package/list/List.d.ts +0 -4
- package/list/List.js +0 -47
- package/list/List.stories.tsx +0 -95
- package/list/types.d.ts +0 -7
- package/number-input/NumberInputContext.d.ts +0 -4
- package/number-input/NumberInputContext.js +0 -19
- package/number-input/numberInputContextTypes.d.ts +0 -19
- package/radio/Radio.d.ts +0 -4
- package/radio/Radio.js +0 -174
- package/radio/Radio.stories.tsx +0 -192
- package/radio/Radio.test.js +0 -71
- package/radio/types.d.ts +0 -54
- package/row/Row.d.ts +0 -3
- package/row/Row.js +0 -127
- package/row/Row.stories.tsx +0 -237
- package/row/types.d.ts +0 -28
- package/stack/Stack.d.ts +0 -3
- package/stack/Stack.js +0 -97
- package/stack/Stack.stories.tsx +0 -164
- package/stack/types.d.ts +0 -24
- package/text/Text.d.ts +0 -7
- package/text/Text.js +0 -30
- package/text/Text.stories.tsx +0 -19
- /package/{list → bulleted-list}/types.js +0 -0
- /package/{radio → flex}/types.js +0 -0
- /package/{row → grid}/types.js +0 -0
- /package/{stack → image}/types.js +0 -0
- /package/{number-input/numberInputContextTypes.js → nav-tabs/types.js} +0 -0
package/flex/types.d.ts
ADDED
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
declare type Spaces = "0rem" | "0.125rem" | "0.25rem" | "0.5rem" | "1rem" | "1.5rem" | "2rem" | "3rem" | "4rem" | "5rem";
|
|
3
|
+
declare type Gap = {
|
|
4
|
+
rowGap: Spaces;
|
|
5
|
+
columnGap?: Spaces;
|
|
6
|
+
} | {
|
|
7
|
+
rowGap?: Spaces;
|
|
8
|
+
columnGap?: Spaces;
|
|
9
|
+
} | Spaces;
|
|
10
|
+
declare type CommonProps = {
|
|
11
|
+
/**
|
|
12
|
+
* Sets the justify-content CSS property.
|
|
13
|
+
*
|
|
14
|
+
* See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/justify-content
|
|
15
|
+
*/
|
|
16
|
+
justifyContent?: "flex-start" | "flex-end" | "start" | "end" | "left" | "right" | "center" | "space-between" | "space-around" | "space-evenly";
|
|
17
|
+
/**
|
|
18
|
+
* Sets the align-items CSS property.
|
|
19
|
+
*
|
|
20
|
+
* See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/align-items
|
|
21
|
+
*/
|
|
22
|
+
alignItems?: "stretch" | "flex-start" | "flex-end" | "start" | "end" | "self-start" | "self-end" | "center" | "baseline";
|
|
23
|
+
/**
|
|
24
|
+
* Sets the align-content CSS property.
|
|
25
|
+
*
|
|
26
|
+
* See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/align-content
|
|
27
|
+
*/
|
|
28
|
+
alignContent?: "normal" | "flex-start" | "flex-end" | "start" | "end" | "center" | "space-between" | "space-around" | "space-evenly" | "stretch";
|
|
29
|
+
/**
|
|
30
|
+
* Sets the align-self CSS property.
|
|
31
|
+
*
|
|
32
|
+
* See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/align-self
|
|
33
|
+
*/
|
|
34
|
+
alignSelf?: "auto" | "flex-start" | "flex-end" | "center" | "baseline" | "stretch";
|
|
35
|
+
};
|
|
36
|
+
declare type Props = CommonProps & {
|
|
37
|
+
/**
|
|
38
|
+
* Sets the flex-direction CSS property.
|
|
39
|
+
*
|
|
40
|
+
* See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/flex-direction
|
|
41
|
+
*/
|
|
42
|
+
direction?: "row" | "row-reverse" | "column" | "column-reverse";
|
|
43
|
+
/**
|
|
44
|
+
* Sets the flex-wrap CSS property.
|
|
45
|
+
*
|
|
46
|
+
* See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/flex-wrap
|
|
47
|
+
*/
|
|
48
|
+
wrap?: "nowrap" | "wrap" | "wrap-reverse";
|
|
49
|
+
/**
|
|
50
|
+
* Sets the gap CSS property.
|
|
51
|
+
*
|
|
52
|
+
* See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/gap
|
|
53
|
+
*/
|
|
54
|
+
gap?: Gap;
|
|
55
|
+
/**
|
|
56
|
+
* Sets the order CSS property.
|
|
57
|
+
*
|
|
58
|
+
* See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/order
|
|
59
|
+
*/
|
|
60
|
+
order?: number;
|
|
61
|
+
/**
|
|
62
|
+
* Sets the flex-grow CSS property.
|
|
63
|
+
*
|
|
64
|
+
* See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/flex-grow
|
|
65
|
+
*/
|
|
66
|
+
grow?: number;
|
|
67
|
+
/**
|
|
68
|
+
* Sets the flex-shrink CSS property.
|
|
69
|
+
*
|
|
70
|
+
* See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/flex-shrink
|
|
71
|
+
*/
|
|
72
|
+
shrink?: number;
|
|
73
|
+
/**
|
|
74
|
+
* Sets the flex-basis CSS property.
|
|
75
|
+
*
|
|
76
|
+
* See MDN: https://developer.mozilla.org/en-US/docs/Web/CSS/flex-basis
|
|
77
|
+
*/
|
|
78
|
+
basis?: string;
|
|
79
|
+
/**
|
|
80
|
+
* Sets a custom HTML tag.
|
|
81
|
+
*/
|
|
82
|
+
as?: keyof HTMLElementTagNameMap;
|
|
83
|
+
/**
|
|
84
|
+
* Custom content inside the flex container.
|
|
85
|
+
*/
|
|
86
|
+
children: React.ReactNode;
|
|
87
|
+
};
|
|
88
|
+
export declare type StyledProps = CommonProps & {
|
|
89
|
+
$direction?: "row" | "row-reverse" | "column" | "column-reverse";
|
|
90
|
+
$wrap?: "nowrap" | "wrap" | "wrap-reverse";
|
|
91
|
+
$gap?: Spaces | Gap;
|
|
92
|
+
$order?: number;
|
|
93
|
+
$grow?: number;
|
|
94
|
+
$shrink?: number;
|
|
95
|
+
$basis?: string;
|
|
96
|
+
};
|
|
97
|
+
export default Props;
|
package/footer/Footer.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import FooterPropsType from "./types";
|
|
3
|
-
declare const DxcFooter: ({ socialLinks, bottomLinks, copyright, children,
|
|
3
|
+
declare const DxcFooter: ({ socialLinks, bottomLinks, copyright, children, margin, tabIndex, }: FooterPropsType) => JSX.Element;
|
|
4
4
|
export default DxcFooter;
|
package/footer/Footer.js
CHANGED
|
@@ -13,21 +13,23 @@ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
|
|
|
13
13
|
|
|
14
14
|
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
15
15
|
|
|
16
|
-
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
17
|
-
|
|
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");
|
|
23
21
|
|
|
24
22
|
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
25
23
|
|
|
24
|
+
var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
|
|
25
|
+
|
|
26
26
|
var _BackgroundColorContext = require("../BackgroundColorContext");
|
|
27
27
|
|
|
28
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,31 +38,13 @@ 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 ? "\xA9 DXC Technology ".concat(new Date().getFullYear(), ". All rights reserved.") : _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
50
|
return _Icons.dxcLogo;
|
|
@@ -68,127 +52,62 @@ var DxcFooter = function DxcFooter(_ref) {
|
|
|
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
|
-
}, /*#__PURE__*/_react["default"].createElement(SocialIconContainer, null, typeof link.logo === "string" ? /*#__PURE__*/_react["default"].createElement(SocialIconImg, {
|
|
78
|
+
index: index
|
|
79
|
+
}, /*#__PURE__*/_react["default"].createElement(SocialIconContainer, null, typeof link.logo === "string" ? /*#__PURE__*/_react["default"].createElement("img", {
|
|
114
80
|
src: link.logo
|
|
115
81
|
}) : link.logo));
|
|
116
|
-
})
|
|
117
|
-
|
|
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, {
|
|
134
|
-
refSize: refSize
|
|
135
|
-
}, /*#__PURE__*/_react["default"].createElement(LogoContainer, null, footerLogo), /*#__PURE__*/_react["default"].createElement(SocialLinkContainer, {
|
|
136
|
-
refSize: refSize
|
|
137
|
-
}, socialLink)), /*#__PURE__*/_react["default"].createElement("div", null, /*#__PURE__*/_react["default"].createElement(ChildComponents, {
|
|
138
|
-
padding: padding
|
|
139
|
-
}, /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
|
|
140
|
-
color: colorsTheme.footer.backgroundColor
|
|
141
|
-
}, children)), /*#__PURE__*/_react["default"].createElement(FooterFooter, {
|
|
142
|
-
className: "footerFooter",
|
|
143
|
-
refSize: refSize
|
|
144
|
-
}, /*#__PURE__*/_react["default"].createElement(BottomLinks, {
|
|
145
|
-
refSize: refSize
|
|
146
|
-
}, bottomLink), /*#__PURE__*/_react["default"].createElement(Copyright, {
|
|
147
|
-
refSize: refSize
|
|
148
|
-
}, 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())))));
|
|
149
92
|
};
|
|
150
93
|
|
|
151
|
-
var FooterContainer = _styledComponents["default"].footer(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n
|
|
152
|
-
return props.
|
|
153
|
-
}, function (props) {
|
|
154
|
-
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;
|
|
155
96
|
}, function (props) {
|
|
156
97
|
return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
|
|
157
98
|
}, function (props) {
|
|
158
|
-
return props.theme.
|
|
159
|
-
});
|
|
160
|
-
|
|
161
|
-
var FooterHeader = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n row-gap: 24px;\n"])));
|
|
99
|
+
return props.theme.backgroundColor;
|
|
100
|
+
}, _variables.responsiveSizes.small, _variables.responsiveSizes.small);
|
|
162
101
|
|
|
163
|
-
var
|
|
164
|
-
return props.refSize <= _variables.responsiveSizes.mobileLarge ? "column" : "row";
|
|
165
|
-
}, function (props) {
|
|
166
|
-
return props.refSize <= _variables.responsiveSizes.mobileLarge ? "center" : "";
|
|
167
|
-
}, 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) {
|
|
168
103
|
return "".concat(props.theme.bottomLinksDividerThickness, " ").concat(props.theme.bottomLinksDividerStyle, " ").concat(props.theme.bottomLinksDividerColor);
|
|
169
104
|
});
|
|
170
105
|
|
|
171
|
-
var
|
|
172
|
-
return props.theme.bottomLinksDividerSpacing;
|
|
173
|
-
}, function (props) {
|
|
174
|
-
return props.refSize <= _variables.responsiveSizes.mobileLarge ? "100%" : "60%";
|
|
175
|
-
}, function (props) {
|
|
176
|
-
return props.refSize <= _variables.responsiveSizes.mobileLarge ? "100%" : "";
|
|
177
|
-
});
|
|
106
|
+
var ChildComponents = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n min-height: 16px;\n overflow: hidden;\n"])));
|
|
178
107
|
|
|
179
|
-
var
|
|
180
|
-
return props.
|
|
181
|
-
}, function (props) {
|
|
182
|
-
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.top ? _variables.spaces[props.padding.top] : "";
|
|
183
|
-
}, function (props) {
|
|
184
|
-
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.right ? _variables.spaces[props.padding.right] : "";
|
|
185
|
-
}, function (props) {
|
|
186
|
-
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;
|
|
187
110
|
}, function (props) {
|
|
188
|
-
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.left ? _variables.spaces[props.padding.left] : "";
|
|
189
|
-
});
|
|
190
|
-
|
|
191
|
-
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) {
|
|
192
111
|
return props.theme.copyrightFontFamily;
|
|
193
112
|
}, function (props) {
|
|
194
113
|
return props.theme.copyrightFontSize;
|
|
@@ -198,37 +117,25 @@ var Copyright = _styledComponents["default"].div(_templateObject6 || (_templateO
|
|
|
198
117
|
return props.theme.copyrightFontWeight;
|
|
199
118
|
}, function (props) {
|
|
200
119
|
return props.theme.copyrightFontColor;
|
|
201
|
-
},
|
|
202
|
-
return props.refSize <= _variables.responsiveSizes.mobileLarge ? "100%" : "40%";
|
|
203
|
-
}, function (props) {
|
|
204
|
-
return props.refSize <= _variables.responsiveSizes.mobileLarge ? "100%" : "";
|
|
205
|
-
}, function (props) {
|
|
206
|
-
return props.refSize <= _variables.responsiveSizes.mobileLarge ? "left" : "right";
|
|
207
|
-
}, function (props) {
|
|
208
|
-
return props.theme.bottomLinksDividerSpacing;
|
|
209
|
-
});
|
|
120
|
+
}, _variables.responsiveSizes.small, _variables.responsiveSizes.small);
|
|
210
121
|
|
|
211
|
-
var LogoContainer = _styledComponents["default"].
|
|
122
|
+
var LogoContainer = _styledComponents["default"].span(_templateObject5 || (_templateObject5 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n"])), function (props) {
|
|
212
123
|
return props.theme.logoHeight;
|
|
213
124
|
}, function (props) {
|
|
214
125
|
return props.theme.logoWidth;
|
|
215
126
|
});
|
|
216
127
|
|
|
217
|
-
var LogoImg = _styledComponents["default"].img(
|
|
128
|
+
var LogoImg = _styledComponents["default"].img(_templateObject6 || (_templateObject6 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n"])), function (props) {
|
|
218
129
|
return props.theme.logoHeight;
|
|
219
130
|
}, function (props) {
|
|
220
131
|
return props.theme.logoWidth;
|
|
221
132
|
});
|
|
222
133
|
|
|
223
|
-
var
|
|
224
|
-
|
|
225
|
-
var SocialAnchor = _styledComponents["default"].a(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n & {\n display: inline-flex;\n margin-left: ", ";\n }\n"])), function (props) {
|
|
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) {
|
|
226
135
|
return props.index === 0 ? "0px" : props.theme.socialLinksGutter;
|
|
227
136
|
});
|
|
228
137
|
|
|
229
|
-
var
|
|
230
|
-
|
|
231
|
-
var SocialIconContainer = _styledComponents["default"].div(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n & {\n display: inline-flex;\n height: ", ";\n width: ", ";\n color: ", ";\n }\n\n overflow: hidden;\n img,\n svg {\n height: 100%;\n width: 100%;\n }\n"])), function (props) {
|
|
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,11 +143,11 @@ var SocialIconContainer = _styledComponents["default"].div(_templateObject12 ||
|
|
|
236
143
|
return props.theme.socialLinksColor;
|
|
237
144
|
});
|
|
238
145
|
|
|
239
|
-
var
|
|
240
|
-
return props.theme.
|
|
241
|
-
});
|
|
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);
|
|
242
149
|
|
|
243
|
-
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) {
|
|
244
151
|
return props.theme.bottomLinksTextDecoration;
|
|
245
152
|
}, function (props) {
|
|
246
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,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
|
);
|
package/footer/Footer.test.js
CHANGED
|
@@ -6,10 +6,17 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
6
6
|
|
|
7
7
|
var _react2 = require("@testing-library/react");
|
|
8
8
|
|
|
9
|
-
var
|
|
10
|
-
|
|
11
|
-
var
|
|
12
|
-
|
|
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
|
+
}];
|
|
13
20
|
describe("Footer component tests", function () {
|
|
14
21
|
test("Footer renders with default logo", function () {
|
|
15
22
|
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], null)),
|
|
@@ -18,32 +25,22 @@ describe("Footer component tests", function () {
|
|
|
18
25
|
expect(getByTitle("DXC Logo")).toBeTruthy();
|
|
19
26
|
});
|
|
20
27
|
test("Footer renders with social links", function () {
|
|
21
|
-
var social = [{
|
|
22
|
-
href: "https://www.test.com/test",
|
|
23
|
-
logo: _linkedin["default"]
|
|
24
|
-
}];
|
|
25
|
-
|
|
26
28
|
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
|
|
27
29
|
socialLinks: social
|
|
28
30
|
})),
|
|
29
31
|
getByRole = _render2.getByRole;
|
|
30
32
|
|
|
31
33
|
var socialIcon = getByRole("link");
|
|
32
|
-
expect(socialIcon.getAttribute("href")).toBe("https://www.test.com/
|
|
34
|
+
expect(socialIcon.getAttribute("href")).toBe("https://www.test.com/social");
|
|
33
35
|
});
|
|
34
36
|
test("Footer renders with bottom links", function () {
|
|
35
|
-
var bottom = [{
|
|
36
|
-
href: "https://www.test.com/test",
|
|
37
|
-
text: "bottom-link-text"
|
|
38
|
-
}];
|
|
39
|
-
|
|
40
37
|
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
|
|
41
38
|
bottomLinks: bottom
|
|
42
39
|
})),
|
|
43
40
|
getByText = _render3.getByText;
|
|
44
41
|
|
|
45
42
|
var link = getByText("bottom-link-text");
|
|
46
|
-
expect(link.getAttribute("href")).toBe("https://www.test.com/
|
|
43
|
+
expect(link.getAttribute("href")).toBe("https://www.test.com/bottom");
|
|
47
44
|
});
|
|
48
45
|
test("Footer renders with copyright text", function () {
|
|
49
46
|
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
|
|
@@ -54,7 +51,7 @@ describe("Footer component tests", function () {
|
|
|
54
51
|
expect(getByText("test-copyright")).toBeTruthy();
|
|
55
52
|
});
|
|
56
53
|
test("Footer renders with correct children", function () {
|
|
57
|
-
//We need to force the offsetWidth value
|
|
54
|
+
// We need to force the offsetWidth value
|
|
58
55
|
Object.defineProperty(HTMLElement.prototype, "offsetWidth", {
|
|
59
56
|
configurable: true,
|
|
60
57
|
value: 1024
|
|
@@ -66,7 +63,7 @@ describe("Footer component tests", function () {
|
|
|
66
63
|
expect(getByText("footer-child-text")).toBeTruthy();
|
|
67
64
|
});
|
|
68
65
|
test("Footer renders with children in mobile", function () {
|
|
69
|
-
//425 is mobile width
|
|
66
|
+
// 425 is mobile width
|
|
70
67
|
Object.defineProperty(HTMLElement.prototype, "offsetWidth", {
|
|
71
68
|
configurable: true,
|
|
72
69
|
value: 425
|
|
@@ -82,14 +79,6 @@ describe("Footer component tests", function () {
|
|
|
82
79
|
configurable: true,
|
|
83
80
|
value: 1024
|
|
84
81
|
});
|
|
85
|
-
var social = [{
|
|
86
|
-
href: "https://www.test.com/social",
|
|
87
|
-
logo: _linkedin["default"]
|
|
88
|
-
}];
|
|
89
|
-
var bottom = [{
|
|
90
|
-
href: "https://www.test.com/bottom",
|
|
91
|
-
text: "bottom-link-text"
|
|
92
|
-
}];
|
|
93
82
|
|
|
94
83
|
var _render7 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Footer["default"], {
|
|
95
84
|
socialLinks: social,
|
|
@@ -101,6 +90,7 @@ describe("Footer component tests", function () {
|
|
|
101
90
|
|
|
102
91
|
var socialIcon = getAllByRole("link")[0];
|
|
103
92
|
expect(socialIcon.getAttribute("href")).toBe("https://www.test.com/social");
|
|
93
|
+
expect(socialIcon.getAttribute("aria-label")).toBe("test");
|
|
104
94
|
var bottomLink = getByText("bottom-link-text");
|
|
105
95
|
expect(bottomLink.getAttribute("href")).toBe("https://www.test.com/bottom");
|
|
106
96
|
expect(getByText("test-copyright")).toBeTruthy();
|
package/footer/Icons.js
CHANGED
|
@@ -12,7 +12,7 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
12
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", {
|