@dxc-technology/halstack-react 0.0.0-b9523dd → 0.0.0-b98c25c
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BackgroundColorContext.d.ts +10 -0
- package/BackgroundColorContext.js +1 -4
- package/HalstackContext.d.ts +12 -0
- package/HalstackContext.js +295 -0
- package/accordion/Accordion.d.ts +1 -1
- package/accordion/Accordion.js +124 -137
- package/accordion/Accordion.stories.tsx +306 -0
- package/accordion/Accordion.test.js +71 -0
- package/accordion/types.d.ts +12 -11
- package/accordion-group/AccordionGroup.d.ts +1 -1
- package/accordion-group/AccordionGroup.js +16 -37
- package/accordion-group/AccordionGroup.stories.tsx +251 -0
- package/accordion-group/AccordionGroup.test.js +126 -0
- package/accordion-group/types.d.ts +17 -10
- package/alert/Alert.js +7 -4
- package/alert/Alert.stories.tsx +170 -0
- package/alert/Alert.test.js +92 -0
- package/alert/types.d.ts +1 -1
- package/badge/Badge.d.ts +4 -0
- package/badge/Badge.js +6 -4
- package/badge/types.d.ts +5 -0
- package/{radio → badge}/types.js +0 -0
- package/bleed/Bleed.d.ts +3 -0
- package/bleed/Bleed.js +51 -0
- package/bleed/Bleed.stories.tsx +341 -0
- package/bleed/types.d.ts +37 -0
- package/bleed/types.js +5 -0
- package/box/Box.d.ts +4 -0
- package/box/Box.js +29 -65
- package/box/{Box.stories.jsx → Box.stories.tsx} +0 -0
- package/box/Box.test.js +18 -0
- package/box/types.d.ts +44 -0
- package/box/types.js +5 -0
- package/bulleted-list/BulletedList.d.ts +7 -0
- package/bulleted-list/BulletedList.js +123 -0
- package/bulleted-list/BulletedList.stories.tsx +200 -0
- package/bulleted-list/types.d.ts +11 -0
- package/bulleted-list/types.js +5 -0
- package/button/Button.d.ts +1 -1
- package/button/Button.js +62 -83
- package/button/Button.stories.tsx +231 -241
- package/button/Button.test.js +35 -0
- package/button/types.d.ts +10 -14
- package/card/Card.js +26 -30
- package/card/Card.stories.tsx +201 -0
- package/card/Card.test.js +50 -0
- package/card/ice-cream.jpg +0 -0
- package/card/types.d.ts +5 -6
- package/checkbox/Checkbox.d.ts +1 -1
- package/checkbox/Checkbox.js +104 -108
- package/checkbox/Checkbox.stories.tsx +124 -128
- package/checkbox/Checkbox.test.js +155 -0
- package/checkbox/types.d.ts +11 -7
- package/chip/Chip.d.ts +4 -0
- package/chip/Chip.js +16 -76
- package/chip/Chip.stories.tsx +119 -0
- package/chip/Chip.test.js +56 -0
- package/chip/types.d.ts +45 -0
- package/chip/types.js +5 -0
- package/common/variables.js +319 -380
- package/date-input/DateInput.js +66 -55
- package/date-input/DateInput.stories.tsx +138 -0
- package/date-input/DateInput.test.js +479 -0
- package/date-input/types.d.ts +16 -9
- package/dialog/Dialog.js +50 -53
- package/dialog/Dialog.stories.tsx +267 -0
- package/dialog/Dialog.test.js +70 -0
- package/dialog/types.d.ts +3 -2
- package/dropdown/Dropdown.d.ts +1 -1
- package/dropdown/Dropdown.js +243 -273
- package/dropdown/Dropdown.stories.tsx +312 -0
- package/dropdown/Dropdown.test.js +591 -0
- package/dropdown/DropdownMenu.d.ts +4 -0
- package/dropdown/DropdownMenu.js +80 -0
- package/dropdown/DropdownMenuItem.d.ts +4 -0
- package/dropdown/DropdownMenuItem.js +92 -0
- package/dropdown/types.d.ts +30 -19
- package/file-input/FileInput.d.ts +4 -0
- package/file-input/FileInput.js +172 -111
- package/file-input/FileInput.stories.tsx +507 -0
- package/file-input/FileInput.test.js +457 -0
- package/file-input/FileItem.d.ts +14 -0
- package/file-input/FileItem.js +16 -23
- package/file-input/types.d.ts +112 -0
- package/file-input/types.js +5 -0
- package/flex/Flex.d.ts +4 -0
- package/flex/Flex.js +57 -0
- package/flex/Flex.stories.tsx +103 -0
- package/flex/types.d.ts +21 -0
- package/flex/types.js +5 -0
- package/footer/Footer.d.ts +1 -1
- package/footer/Footer.js +32 -113
- package/footer/{Footer.stories.jsx → Footer.stories.tsx} +5 -19
- package/footer/Footer.test.js +109 -0
- package/footer/Icons.d.ts +2 -0
- package/footer/Icons.js +4 -4
- package/footer/types.d.ts +23 -18
- package/header/Header.js +97 -116
- package/header/Header.stories.tsx +172 -0
- package/header/Header.test.js +79 -0
- package/header/Icons.d.ts +2 -0
- package/header/Icons.js +2 -2
- package/header/types.d.ts +7 -4
- package/heading/Heading.d.ts +4 -0
- package/heading/Heading.js +7 -24
- package/heading/Heading.stories.tsx +54 -0
- package/heading/Heading.test.js +186 -0
- package/heading/types.d.ts +33 -0
- package/heading/types.js +5 -0
- package/inset/Inset.d.ts +3 -0
- package/inset/Inset.js +51 -0
- package/inset/Inset.stories.tsx +229 -0
- package/inset/types.d.ts +37 -0
- package/inset/types.js +5 -0
- package/layout/ApplicationLayout.d.ts +20 -0
- package/layout/ApplicationLayout.js +71 -135
- package/layout/ApplicationLayout.stories.tsx +162 -0
- package/layout/Icons.d.ts +5 -0
- package/layout/Icons.js +13 -2
- package/layout/SidenavContext.d.ts +5 -0
- package/layout/SidenavContext.js +19 -0
- package/layout/types.d.ts +42 -0
- package/layout/types.js +5 -0
- package/link/Link.d.ts +4 -0
- package/link/Link.js +60 -107
- package/link/Link.stories.tsx +193 -0
- package/link/Link.test.js +83 -0
- package/link/types.d.ts +54 -0
- package/link/types.js +5 -0
- package/main.d.ts +12 -12
- package/main.js +64 -58
- package/number-input/NumberInput.d.ts +4 -0
- package/number-input/NumberInput.js +16 -68
- package/number-input/{NumberInput.stories.jsx → NumberInput.stories.tsx} +5 -5
- package/number-input/NumberInput.test.js +506 -0
- package/number-input/NumberInputContext.d.ts +4 -0
- package/number-input/NumberInputContext.js +5 -2
- package/number-input/numberInputContextTypes.d.ts +19 -0
- package/number-input/numberInputContextTypes.js +5 -0
- package/number-input/types.d.ts +124 -0
- package/number-input/types.js +5 -0
- package/package.json +16 -12
- package/paginator/Paginator.js +19 -46
- package/paginator/Paginator.test.js +308 -0
- package/paragraph/Paragraph.d.ts +6 -0
- package/paragraph/Paragraph.js +38 -0
- package/paragraph/Paragraph.stories.tsx +44 -0
- package/password-input/PasswordInput.d.ts +4 -0
- package/password-input/PasswordInput.js +22 -55
- package/password-input/{PasswordInput.stories.jsx → PasswordInput.stories.tsx} +3 -3
- package/password-input/PasswordInput.test.js +180 -0
- package/password-input/types.d.ts +110 -0
- package/password-input/types.js +5 -0
- package/progress-bar/ProgressBar.d.ts +2 -2
- package/progress-bar/ProgressBar.js +59 -53
- package/progress-bar/ProgressBar.stories.jsx +60 -0
- package/progress-bar/ProgressBar.test.js +110 -0
- package/progress-bar/types.d.ts +3 -4
- package/quick-nav/QuickNav.d.ts +4 -0
- package/quick-nav/QuickNav.js +115 -0
- package/quick-nav/QuickNav.stories.tsx +300 -0
- package/quick-nav/types.d.ts +21 -0
- package/quick-nav/types.js +5 -0
- package/radio-group/Radio.d.ts +4 -0
- package/radio-group/Radio.js +156 -0
- package/radio-group/RadioGroup.d.ts +4 -0
- package/radio-group/RadioGroup.js +279 -0
- package/radio-group/RadioGroup.stories.tsx +101 -0
- package/radio-group/RadioGroup.test.js +665 -0
- package/radio-group/types.d.ts +114 -0
- package/radio-group/types.js +5 -0
- package/resultsetTable/ResultsetTable.d.ts +4 -0
- package/resultsetTable/ResultsetTable.js +9 -29
- package/resultsetTable/ResultsetTable.stories.tsx +275 -0
- package/resultsetTable/ResultsetTable.test.js +348 -0
- package/resultsetTable/types.d.ts +67 -0
- package/resultsetTable/types.js +5 -0
- package/select/Icons.d.ts +10 -0
- package/select/Icons.js +93 -0
- package/select/Listbox.d.ts +4 -0
- package/select/Listbox.js +198 -0
- package/select/Option.d.ts +4 -0
- package/select/Option.js +110 -0
- package/select/Select.d.ts +4 -0
- package/select/Select.js +158 -380
- package/select/Select.stories.tsx +627 -0
- package/select/Select.test.js +2175 -0
- package/select/types.d.ts +210 -0
- package/select/types.js +5 -0
- package/sidenav/Sidenav.d.ts +10 -0
- package/sidenav/Sidenav.js +186 -63
- package/sidenav/Sidenav.stories.tsx +180 -0
- package/sidenav/Sidenav.test.js +44 -0
- package/sidenav/types.d.ts +73 -0
- package/sidenav/types.js +5 -0
- package/slider/Slider.d.ts +1 -1
- package/slider/Slider.js +145 -109
- package/slider/Slider.stories.tsx +183 -0
- package/slider/Slider.test.js +250 -0
- package/slider/types.d.ts +8 -9
- package/spinner/Spinner.js +3 -3
- package/spinner/Spinner.stories.jsx +1 -0
- package/spinner/Spinner.test.js +64 -0
- package/switch/Switch.d.ts +2 -2
- package/switch/Switch.js +149 -67
- package/switch/Switch.stories.tsx +138 -0
- package/switch/Switch.test.js +225 -0
- package/switch/types.d.ts +9 -6
- package/table/Table.js +3 -3
- package/table/Table.stories.jsx +2 -1
- package/table/Table.test.js +26 -0
- package/tabs/Tab.d.ts +4 -0
- package/tabs/Tab.js +135 -0
- package/tabs/Tabs.d.ts +1 -1
- package/tabs/Tabs.js +364 -108
- package/tabs/Tabs.stories.tsx +186 -0
- package/tabs/Tabs.test.js +351 -0
- package/tabs/types.d.ts +41 -20
- package/tabs-nav/NavTabs.d.ts +8 -0
- package/tabs-nav/NavTabs.js +125 -0
- package/tabs-nav/NavTabs.stories.tsx +170 -0
- package/tabs-nav/NavTabs.test.js +82 -0
- package/tabs-nav/Tab.d.ts +4 -0
- package/tabs-nav/Tab.js +130 -0
- package/tabs-nav/types.d.ts +53 -0
- package/tabs-nav/types.js +5 -0
- package/tag/Tag.d.ts +4 -0
- package/tag/Tag.js +21 -52
- package/tag/{Tag.stories.jsx → Tag.stories.tsx} +26 -29
- package/tag/Tag.test.js +60 -0
- package/tag/types.d.ts +69 -0
- package/tag/types.js +5 -0
- package/text-input/Icons.d.ts +8 -0
- package/text-input/Icons.js +60 -0
- package/text-input/Suggestion.d.ts +4 -0
- package/text-input/Suggestion.js +57 -0
- package/text-input/Suggestions.d.ts +4 -0
- package/text-input/Suggestions.js +134 -0
- package/text-input/TextInput.d.ts +4 -0
- package/text-input/TextInput.js +166 -328
- package/text-input/TextInput.stories.tsx +481 -0
- package/text-input/TextInput.test.js +1713 -0
- package/text-input/types.d.ts +192 -0
- package/text-input/types.js +5 -0
- package/textarea/Textarea.d.ts +4 -0
- package/textarea/Textarea.js +39 -79
- package/textarea/Textarea.stories.jsx +37 -15
- package/textarea/Textarea.test.js +437 -0
- package/textarea/types.d.ts +137 -0
- package/textarea/types.js +5 -0
- package/toggle-group/ToggleGroup.d.ts +4 -0
- package/toggle-group/ToggleGroup.js +18 -46
- package/toggle-group/ToggleGroup.stories.tsx +173 -0
- package/toggle-group/ToggleGroup.test.js +156 -0
- package/toggle-group/types.d.ts +105 -0
- package/toggle-group/types.js +5 -0
- package/typography/Typography.d.ts +4 -0
- package/typography/Typography.js +131 -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 +2 -0
- package/useTheme.js +2 -2
- package/useTranslatedLabels.d.ts +2 -0
- package/useTranslatedLabels.js +20 -0
- package/wizard/Wizard.d.ts +4 -0
- package/wizard/Wizard.js +118 -104
- package/wizard/Wizard.stories.tsx +233 -0
- package/wizard/Wizard.test.js +141 -0
- package/wizard/types.d.ts +65 -0
- package/wizard/types.js +5 -0
- package/ThemeContext.js +0 -246
- package/V3Select/V3Select.js +0 -455
- package/V3Select/index.d.ts +0 -27
- package/V3Textarea/V3Textarea.js +0 -260
- package/V3Textarea/index.d.ts +0 -27
- package/box/index.d.ts +0 -25
- package/chip/index.d.ts +0 -22
- package/date/Date.js +0 -373
- package/date/index.d.ts +0 -27
- package/file-input/index.d.ts +0 -81
- package/heading/index.d.ts +0 -17
- package/input-text/Icons.js +0 -22
- package/input-text/InputText.js +0 -611
- package/input-text/index.d.ts +0 -36
- package/link/index.d.ts +0 -23
- package/number-input/index.d.ts +0 -113
- package/password-input/index.d.ts +0 -94
- package/radio/Radio.d.ts +0 -4
- package/radio/Radio.js +0 -174
- package/radio/Radio.stories.tsx +0 -192
- package/radio/types.d.ts +0 -54
- package/resultsetTable/index.d.ts +0 -19
- package/select/index.d.ts +0 -131
- package/sidenav/index.d.ts +0 -13
- package/tag/index.d.ts +0 -24
- package/text-input/index.d.ts +0 -135
- package/textarea/index.d.ts +0 -117
- package/toggle/Toggle.js +0 -186
- package/toggle/index.d.ts +0 -21
- package/toggle-group/index.d.ts +0 -21
- package/upload/Upload.js +0 -201
- package/upload/buttons-upload/ButtonsUpload.js +0 -111
- package/upload/buttons-upload/Icons.js +0 -40
- package/upload/dragAndDropArea/DragAndDropArea.js +0 -225
- package/upload/dragAndDropArea/Icons.js +0 -39
- package/upload/file-upload/FileToUpload.js +0 -115
- package/upload/file-upload/Icons.js +0 -66
- package/upload/files-upload/FilesToUpload.js +0 -109
- package/upload/index.d.ts +0 -15
- package/upload/transaction/Icons.js +0 -160
- package/upload/transaction/Transaction.js +0 -104
- package/upload/transactions/Transactions.js +0 -94
- package/wizard/Icons.js +0 -65
- package/wizard/index.d.ts +0 -18
package/footer/types.d.ts
CHANGED
|
@@ -6,39 +6,43 @@ declare type Size = {
|
|
|
6
6
|
left?: Space;
|
|
7
7
|
right?: Space;
|
|
8
8
|
};
|
|
9
|
+
declare type SVG = React.ReactNode & React.SVGProps<SVGSVGElement>;
|
|
9
10
|
declare type SocialLink = {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
11
|
+
/**
|
|
12
|
+
* Element used as the icon for the link.
|
|
13
|
+
*/
|
|
14
|
+
logo: string | SVG;
|
|
15
|
+
/**
|
|
16
|
+
* URL of the page the link goes to.
|
|
17
|
+
*/
|
|
18
|
+
href: string;
|
|
13
19
|
};
|
|
14
20
|
declare type BottomLink = {
|
|
15
|
-
|
|
16
|
-
|
|
21
|
+
/**
|
|
22
|
+
* Text for the link.
|
|
23
|
+
*/
|
|
24
|
+
text: string;
|
|
25
|
+
/**
|
|
26
|
+
* URL of the page the link goes to.
|
|
27
|
+
*/
|
|
28
|
+
href: string;
|
|
17
29
|
};
|
|
18
|
-
declare type ImgElement = HTMLElement & (SVGElement | HTMLImageElement);
|
|
19
30
|
declare type FooterPropsType = {
|
|
20
31
|
/**
|
|
21
32
|
* An array of objects representing the links that will be rendered as
|
|
22
|
-
* icons at the top-right side of the footer.
|
|
23
|
-
* following properties:
|
|
24
|
-
* - logo: Element used as the icon for the link.
|
|
25
|
-
* - logoSrc: The path of an icon for the link. @deprecated
|
|
26
|
-
* - href: URL of the page the link goes to.
|
|
33
|
+
* icons at the top-right side of the footer.
|
|
27
34
|
*/
|
|
28
|
-
socialLinks?:
|
|
35
|
+
socialLinks?: SocialLink[];
|
|
29
36
|
/**
|
|
30
37
|
* An array of objects representing the links that will be rendered at
|
|
31
|
-
* the bottom part of the footer.
|
|
32
|
-
* properties:
|
|
33
|
-
* - text: Text for the link.
|
|
34
|
-
* - href: URL of the page the link goes to.
|
|
38
|
+
* the bottom part of the footer.
|
|
35
39
|
*/
|
|
36
|
-
bottomLinks?:
|
|
40
|
+
bottomLinks?: BottomLink[];
|
|
37
41
|
/**
|
|
38
42
|
* The center section of the footer. Can be used to render custom
|
|
39
43
|
* content in this area.
|
|
40
44
|
*/
|
|
41
|
-
children
|
|
45
|
+
children?: React.ReactNode;
|
|
42
46
|
/**
|
|
43
47
|
* The text that will be displayed as copyright disclaimer.
|
|
44
48
|
*/
|
|
@@ -53,6 +57,7 @@ declare type FooterPropsType = {
|
|
|
53
57
|
*/
|
|
54
58
|
margin?: Space | Size;
|
|
55
59
|
/**
|
|
60
|
+
* @deprecated This prop will be removed shortly, consider using the Inset component for this purpose.
|
|
56
61
|
* Size of the padding to be applied to the custom area of the component.
|
|
57
62
|
* You can pass an object with properties in order to specify different padding sizes.
|
|
58
63
|
*/
|
package/header/Header.js
CHANGED
|
@@ -19,17 +19,17 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
19
19
|
|
|
20
20
|
var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
21
21
|
|
|
22
|
-
var _AppBar = _interopRequireDefault(require("@material-ui/core/AppBar"));
|
|
23
|
-
|
|
24
22
|
var _Dropdown = _interopRequireDefault(require("../dropdown/Dropdown"));
|
|
25
23
|
|
|
26
24
|
var _Icons = require("./Icons");
|
|
27
25
|
|
|
28
26
|
var _variables = require("../common/variables.js");
|
|
29
27
|
|
|
30
|
-
var _useTheme = _interopRequireDefault(require("../useTheme
|
|
28
|
+
var _useTheme = _interopRequireDefault(require("../useTheme"));
|
|
29
|
+
|
|
30
|
+
var _useTranslatedLabels = _interopRequireDefault(require("../useTranslatedLabels"));
|
|
31
31
|
|
|
32
|
-
var _BackgroundColorContext = _interopRequireWildcard(require("../BackgroundColorContext
|
|
32
|
+
var _BackgroundColorContext = _interopRequireWildcard(require("../BackgroundColorContext"));
|
|
33
33
|
|
|
34
34
|
var _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15;
|
|
35
35
|
|
|
@@ -64,69 +64,54 @@ var Dropdown = function Dropdown(props) {
|
|
|
64
64
|
|
|
65
65
|
var HeaderDropdown = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n button {\n background-color: transparent;\n :hover {\n background-color: transparent;\n }\n }\n"])));
|
|
66
66
|
|
|
67
|
-
var getLogoElement = function getLogoElement(themeInput) {
|
|
68
|
-
if (!themeInput) {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
if (typeof themeInput === "string") {
|
|
73
|
-
return /*#__PURE__*/_react["default"].createElement(LogoImg, {
|
|
74
|
-
alt: "Logo",
|
|
75
|
-
src: themeInput
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
return themeInput;
|
|
67
|
+
var getLogoElement = function getLogoElement(themeInput, logoLabel) {
|
|
68
|
+
if (!themeInput) return _Icons.dxcLogo;else if (typeof themeInput === "string") return /*#__PURE__*/_react["default"].createElement(LogoImg, {
|
|
69
|
+
alt: logoLabel,
|
|
70
|
+
src: themeInput
|
|
71
|
+
});else return themeInput;
|
|
80
72
|
};
|
|
81
73
|
|
|
82
|
-
var
|
|
83
|
-
var
|
|
84
|
-
underlined = _ref$underlined === void 0 ? false : _ref$underlined,
|
|
85
|
-
content = _ref.content,
|
|
74
|
+
var Content = function Content(_ref) {
|
|
75
|
+
var isResponsive = _ref.isResponsive,
|
|
86
76
|
responsiveContent = _ref.responsiveContent,
|
|
87
|
-
|
|
88
|
-
margin = _ref.margin,
|
|
77
|
+
handleMenu = _ref.handleMenu,
|
|
89
78
|
padding = _ref.padding,
|
|
90
|
-
|
|
91
|
-
|
|
79
|
+
content = _ref.content;
|
|
80
|
+
var backgroundType = (0, _react.useContext)(_BackgroundColorContext["default"]);
|
|
81
|
+
return isResponsive ? /*#__PURE__*/_react["default"].createElement(MenuContent, {
|
|
82
|
+
backgroundType: backgroundType
|
|
83
|
+
}, responsiveContent(handleMenu)) : /*#__PURE__*/_react["default"].createElement(ContentContainer, {
|
|
84
|
+
padding: padding,
|
|
85
|
+
backgroundType: backgroundType
|
|
86
|
+
}, content);
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
var DxcHeader = function DxcHeader(_ref2) {
|
|
90
|
+
var _ref2$underlined = _ref2.underlined,
|
|
91
|
+
underlined = _ref2$underlined === void 0 ? false : _ref2$underlined,
|
|
92
|
+
content = _ref2.content,
|
|
93
|
+
responsiveContent = _ref2.responsiveContent,
|
|
94
|
+
onClick = _ref2.onClick,
|
|
95
|
+
margin = _ref2.margin,
|
|
96
|
+
padding = _ref2.padding,
|
|
97
|
+
_ref2$tabIndex = _ref2.tabIndex,
|
|
98
|
+
tabIndex = _ref2$tabIndex === void 0 ? 0 : _ref2$tabIndex;
|
|
92
99
|
var colorsTheme = (0, _useTheme["default"])();
|
|
100
|
+
var translatedLabels = (0, _useTranslatedLabels["default"])();
|
|
93
101
|
var ref = (0, _react.useRef)(null);
|
|
94
102
|
|
|
95
|
-
var _useState = (0, _react.useState)(),
|
|
103
|
+
var _useState = (0, _react.useState)(false),
|
|
96
104
|
_useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
|
97
|
-
|
|
98
|
-
|
|
105
|
+
isResponsive = _useState2[0],
|
|
106
|
+
setIsResponsive = _useState2[1];
|
|
99
107
|
|
|
100
108
|
var _useState3 = (0, _react.useState)(false),
|
|
101
109
|
_useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
var _useState5 = (0, _react.useState)(false),
|
|
106
|
-
_useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
|
|
107
|
-
isMenuVisible = _useState6[0],
|
|
108
|
-
setIsMenuVisible = _useState6[1];
|
|
109
|
-
|
|
110
|
-
var handleResize = function handleResize(refWidth) {
|
|
111
|
-
if (refWidth) {
|
|
112
|
-
setRefSize(refWidth);
|
|
113
|
-
|
|
114
|
-
if (refWidth <= _variables.responsiveSizes.tablet && !isResponsive) {
|
|
115
|
-
setIsResponsive(true);
|
|
116
|
-
} else {
|
|
117
|
-
setIsResponsive(false);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
};
|
|
110
|
+
isMenuVisible = _useState4[0],
|
|
111
|
+
setIsMenuVisible = _useState4[1];
|
|
121
112
|
|
|
122
|
-
var
|
|
123
|
-
|
|
124
|
-
return isResponsive && /*#__PURE__*/_react["default"].createElement(MenuContent, {
|
|
125
|
-
backgroundType: backgroundType
|
|
126
|
-
}, responsiveContent(handleMenu)) || /*#__PURE__*/_react["default"].createElement(ContentContainer, {
|
|
127
|
-
padding: padding,
|
|
128
|
-
backgroundType: backgroundType
|
|
129
|
-
}, content);
|
|
113
|
+
var handleResize = function handleResize() {
|
|
114
|
+
setIsResponsive(window.matchMedia("(max-width: ".concat(_variables.responsiveSizes.medium, "rem)")).matches);
|
|
130
115
|
};
|
|
131
116
|
|
|
132
117
|
var handleMenu = function handleMenu() {
|
|
@@ -138,80 +123,80 @@ var DxcHeader = function DxcHeader(_ref) {
|
|
|
138
123
|
};
|
|
139
124
|
|
|
140
125
|
var headerLogo = (0, _react.useMemo)(function () {
|
|
141
|
-
return getLogoElement(colorsTheme.header.logo);
|
|
126
|
+
return getLogoElement(colorsTheme.header.logo, translatedLabels.formFields.logoAlternativeText);
|
|
142
127
|
}, [colorsTheme.header.logo]);
|
|
143
128
|
var headerResponsiveLogo = (0, _react.useMemo)(function () {
|
|
144
|
-
return getLogoElement(colorsTheme.header.logoResponsive);
|
|
129
|
+
return getLogoElement(colorsTheme.header.logoResponsive, translatedLabels.formFields.logoAlternativeText);
|
|
145
130
|
}, [colorsTheme.header.logoResponsive]);
|
|
146
|
-
|
|
147
|
-
var handleEventListener = function handleEventListener() {
|
|
148
|
-
handleResize(ref.current.offsetWidth);
|
|
149
|
-
};
|
|
150
|
-
|
|
151
131
|
(0, _react.useEffect)(function () {
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
handleResize(ref.current.offsetWidth);
|
|
155
|
-
}
|
|
156
|
-
|
|
132
|
+
handleResize();
|
|
133
|
+
window.addEventListener("resize", handleResize);
|
|
157
134
|
return function () {
|
|
158
|
-
window.removeEventListener("resize",
|
|
135
|
+
window.removeEventListener("resize", handleResize);
|
|
159
136
|
};
|
|
160
137
|
}, []);
|
|
138
|
+
(0, _react.useEffect)(function () {
|
|
139
|
+
!isResponsive && setIsMenuVisible(false);
|
|
140
|
+
}, [isResponsive]);
|
|
161
141
|
return /*#__PURE__*/_react["default"].createElement(_styledComponents.ThemeProvider, {
|
|
162
142
|
theme: colorsTheme.header
|
|
163
143
|
}, /*#__PURE__*/_react["default"].createElement(HeaderContainer, {
|
|
164
|
-
|
|
165
|
-
position: "static",
|
|
144
|
+
underlined: underlined,
|
|
166
145
|
margin: margin,
|
|
167
146
|
ref: ref
|
|
168
147
|
}, /*#__PURE__*/_react["default"].createElement(LogoAnchor, {
|
|
169
|
-
tabIndex:
|
|
170
|
-
interactuable:
|
|
148
|
+
tabIndex: onClick ? tabIndex : -1,
|
|
149
|
+
interactuable: onClick ? true : false,
|
|
171
150
|
onClick: onClick
|
|
172
151
|
}, /*#__PURE__*/_react["default"].createElement(LogoContainer, null, headerLogo)), isResponsive && responsiveContent && /*#__PURE__*/_react["default"].createElement(MainContainer, null, /*#__PURE__*/_react["default"].createElement(ChildContainer, {
|
|
173
152
|
padding: padding
|
|
174
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
153
|
+
}, /*#__PURE__*/_react["default"].createElement(HamburguerTrigger, {
|
|
175
154
|
tabIndex: tabIndex,
|
|
176
|
-
underlined: underlined,
|
|
177
155
|
onClick: handleMenu
|
|
178
|
-
}, hamburgerIcon,
|
|
179
|
-
hasVisibility: isMenuVisible
|
|
180
|
-
|
|
181
|
-
}, /*#__PURE__*/_react["default"].createElement(ResponsiveLogoContainer, null, headerResponsiveLogo), /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
|
|
182
|
-
color: colorsTheme.header.menuBackgroundColor
|
|
183
|
-
}, /*#__PURE__*/_react["default"].createElement(ContentContainerComponent, null)), /*#__PURE__*/_react["default"].createElement(CloseContainer, {
|
|
156
|
+
}, hamburgerIcon, translatedLabels.header.hamburguerTitle)), /*#__PURE__*/_react["default"].createElement(ResponsiveMenu, {
|
|
157
|
+
hasVisibility: isMenuVisible
|
|
158
|
+
}, /*#__PURE__*/_react["default"].createElement(ResponsiveIconsContainer, null, /*#__PURE__*/_react["default"].createElement(ResponsiveLogoContainer, null, headerResponsiveLogo), /*#__PURE__*/_react["default"].createElement(CloseAction, {
|
|
184
159
|
tabIndex: tabIndex,
|
|
185
160
|
onClick: handleMenu,
|
|
186
|
-
|
|
187
|
-
}, closeIcon)), /*#__PURE__*/_react["default"].createElement(
|
|
161
|
+
"aria-label": translatedLabels.header.closeIcon
|
|
162
|
+
}, closeIcon)), /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
|
|
163
|
+
color: colorsTheme.header.menuBackgroundColor
|
|
164
|
+
}, /*#__PURE__*/_react["default"].createElement(Content, {
|
|
165
|
+
isResponsive: isResponsive,
|
|
166
|
+
responsiveContent: responsiveContent,
|
|
167
|
+
handleMenu: handleMenu,
|
|
168
|
+
padding: padding,
|
|
169
|
+
content: content
|
|
170
|
+
}))), /*#__PURE__*/_react["default"].createElement(Overlay, {
|
|
188
171
|
onClick: handleMenu,
|
|
189
|
-
hasVisibility: isMenuVisible
|
|
190
|
-
|
|
191
|
-
}))), !isResponsive && /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
|
|
172
|
+
hasVisibility: isMenuVisible
|
|
173
|
+
})), !isResponsive && /*#__PURE__*/_react["default"].createElement(_BackgroundColorContext.BackgroundColorProvider, {
|
|
192
174
|
color: colorsTheme.header.backgroundColor
|
|
193
|
-
}, /*#__PURE__*/_react["default"].createElement(
|
|
175
|
+
}, /*#__PURE__*/_react["default"].createElement(Content, {
|
|
176
|
+
isResponsive: isResponsive,
|
|
177
|
+
responsiveContent: responsiveContent,
|
|
178
|
+
handleMenu: handleMenu,
|
|
179
|
+
padding: padding,
|
|
180
|
+
content: content
|
|
181
|
+
}))));
|
|
194
182
|
};
|
|
195
183
|
|
|
196
184
|
DxcHeader.Dropdown = Dropdown;
|
|
197
|
-
|
|
185
|
+
|
|
186
|
+
var HeaderContainer = _styledComponents["default"].header(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n margin-bottom: ", ";\n padding: ", ";\n background-color: ", ";\n border-bottom: ", ";\n min-height: ", ";\n box-shadow: none;\n display: flex;\n align-items: center;\n flex-direction: row;\n justify-content: space-between;\n box-sizing: border-box;\n"])), function (props) {
|
|
198
187
|
return props.margin && (0, _typeof2["default"])(props.margin) !== "object" ? _variables.spaces[props.margin] : "0px";
|
|
188
|
+
}, function (props) {
|
|
189
|
+
return "".concat(props.theme.paddingTop, " ").concat(props.theme.paddingRight, " ").concat(props.theme.paddingBottom, " ").concat(props.theme.paddingLeft);
|
|
199
190
|
}, function (props) {
|
|
200
191
|
return props.theme.backgroundColor;
|
|
201
192
|
}, function (props) {
|
|
202
|
-
return props
|
|
193
|
+
return props.underlined && "".concat(props.theme.underlinedThickness, " ").concat(props.theme.underlinedStyle, " ").concat(props.theme.underlinedColor);
|
|
203
194
|
}, function (props) {
|
|
204
195
|
return props.theme.minHeight;
|
|
205
|
-
}, function (props) {
|
|
206
|
-
return "".concat(props.theme.paddingTop, " ").concat(props.theme.paddingRight, " ").concat(props.theme.paddingBottom, " ").concat(props.theme.paddingLeft);
|
|
207
196
|
});
|
|
208
197
|
|
|
209
|
-
var LogoAnchor = _styledComponents["default"].a(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n ", "
|
|
210
|
-
|
|
211
|
-
return "cursor: default; outline:none;";
|
|
212
|
-
}
|
|
213
|
-
|
|
214
|
-
return "cursor: pointer;";
|
|
198
|
+
var LogoAnchor = _styledComponents["default"].a(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n ", ";\n"])), function (props) {
|
|
199
|
+
return props.interactuable ? "cursor: pointer" : "cursor: default; outline:none";
|
|
215
200
|
});
|
|
216
201
|
|
|
217
202
|
var LogoImg = _styledComponents["default"].img(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n"])), function (props) {
|
|
@@ -252,15 +237,13 @@ var ContentContainer = _styledComponents["default"].div(_templateObject7 || (_te
|
|
|
252
237
|
return props.padding && (0, _typeof2["default"])(props.padding) === "object" && props.padding.left ? _variables.spaces[props.padding.left] : "";
|
|
253
238
|
});
|
|
254
239
|
|
|
255
|
-
var
|
|
240
|
+
var HamburguerTrigger = _styledComponents["default"].button(_templateObject8 || (_templateObject8 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n width: 54px;\n cursor: pointer;\n border: 1px solid transparent;\n border-radius: 2px;\n background-color: transparent;\n :hover {\n background-color: ", ";\n }\n &:focus {\n outline: ", " auto 1px;\n }\n & > svg {\n fill: ", ";\n }\n font-family: ", ";\n font-style: ", ";\n font-size: ", ";\n text-transform: ", ";\n font-weight: ", ";\n color: ", ";\n"])), function (props) {
|
|
256
241
|
return props.theme.hamburguerHoverColor;
|
|
257
242
|
}, function (props) {
|
|
258
243
|
return props.theme.hamburguerFocusColor;
|
|
259
244
|
}, function (props) {
|
|
260
245
|
return props.theme.hamburguerIconColor;
|
|
261
|
-
})
|
|
262
|
-
|
|
263
|
-
var HamburguerTitle = _styledComponents["default"].span(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n font-family: ", ";\n font-style: ", ";\n font-size: ", ";\n text-transform: ", ";\n font-weight: ", ";\n color: ", ";\n"])), function (props) {
|
|
246
|
+
}, function (props) {
|
|
264
247
|
return props.theme.hamburguerFontFamily;
|
|
265
248
|
}, function (props) {
|
|
266
249
|
return props.theme.hamburguerFontStyle;
|
|
@@ -274,39 +257,39 @@ var HamburguerTitle = _styledComponents["default"].span(_templateObject9 || (_te
|
|
|
274
257
|
return props.theme.hamburguerFontColor;
|
|
275
258
|
});
|
|
276
259
|
|
|
277
|
-
var MainContainer = _styledComponents["default"].div(
|
|
260
|
+
var MainContainer = _styledComponents["default"].div(_templateObject9 || (_templateObject9 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-grow: 1;\n"])));
|
|
278
261
|
|
|
279
|
-
var ResponsiveMenu = _styledComponents["default"].div(
|
|
262
|
+
var ResponsiveMenu = _styledComponents["default"].div(_templateObject10 || (_templateObject10 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n flex-direction: column;\n background-color: ", ";\n position: fixed;\n top: 0;\n right: 0;\n z-index: ", ";\n\n @media (max-width: ", "rem) and (min-width: ", "rem) {\n //tablet\n width: ", ";\n }\n\n @media (not((max-width: ", "rem) and (min-width: ", "rem))) {\n //mobile phones\n width: ", ";\n }\n\n height: 100vh;\n padding: 20px;\n transform: ", ";\n opacity: ", ";\n transition-property: transform, opacity;\n transition-duration: 0.6s;\n transition-timing-function: ease-in-out;\n box-sizing: border-box;\n"])), function (props) {
|
|
280
263
|
return props.theme.menuBackgroundColor;
|
|
281
264
|
}, function (props) {
|
|
282
265
|
return props.theme.menuZindex;
|
|
283
|
-
}, function (props) {
|
|
284
|
-
return props.
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
return props.theme.menuMobileWidth;
|
|
288
|
-
});
|
|
266
|
+
}, _variables.responsiveSizes.large, _variables.responsiveSizes.small, function (props) {
|
|
267
|
+
return props.theme.menuTabletWidth;
|
|
268
|
+
}, _variables.responsiveSizes.large, _variables.responsiveSizes.small, function (props) {
|
|
269
|
+
return props.theme.menuMobileWidth;
|
|
289
270
|
}, function (props) {
|
|
290
271
|
return props.hasVisibility ? "translateX(0)" : "translateX(100vw)";
|
|
291
272
|
}, function (props) {
|
|
292
273
|
return props.hasVisibility ? "1" : "0.96";
|
|
293
274
|
});
|
|
294
275
|
|
|
295
|
-
var ResponsiveLogoContainer = _styledComponents["default"].div(
|
|
276
|
+
var ResponsiveLogoContainer = _styledComponents["default"].div(_templateObject11 || (_templateObject11 = (0, _taggedTemplateLiteral2["default"])(["\n max-height: ", ";\n width: ", ";\n display: flex;\n"])), function (props) {
|
|
296
277
|
return props.theme.logoHeight;
|
|
297
278
|
}, function (props) {
|
|
298
279
|
return props.theme.logoWidth;
|
|
299
280
|
});
|
|
300
281
|
|
|
301
|
-
var
|
|
282
|
+
var ResponsiveIconsContainer = _styledComponents["default"].div(_templateObject12 || (_templateObject12 = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n justify-content: space-between;\n align-items: center;\n"])));
|
|
283
|
+
|
|
284
|
+
var CloseAction = _styledComponents["default"].button(_templateObject13 || (_templateObject13 = (0, _taggedTemplateLiteral2["default"])(["\n cursor: pointer;\n padding: 6px;\n height: 36px;\n width: 36px;\n border: 1px solid transparent;\n border-radius: 2px;\n display: flex;\n flex-wrap: wrap;\n align-content: center;\n background-color: transparent;\n :focus,\n :focus-visible {\n outline: ", " auto 1px;\n }\n"])), function (props) {
|
|
302
285
|
return props.theme.hamburguerFocusColor;
|
|
303
|
-
}
|
|
286
|
+
});
|
|
304
287
|
|
|
305
|
-
var MenuContent = _styledComponents["default"].div(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteral2["default"])(["\n height: 100%;\n
|
|
288
|
+
var MenuContent = _styledComponents["default"].div(_templateObject14 || (_templateObject14 = (0, _taggedTemplateLiteral2["default"])(["\n height: 100%;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n color: ", ";\n"])), function (props) {
|
|
306
289
|
return props.backgroundType === "dark" ? props.theme.contentColorOnDark : props.theme.contentColor;
|
|
307
290
|
});
|
|
308
291
|
|
|
309
|
-
var Overlay = _styledComponents["default"].div(_templateObject15 || (_templateObject15 = (0, _taggedTemplateLiteral2["default"])(["\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background-color: ", ";\n opacity: ", " !important;\n visibility: ", ";\n opacity: ", ";\n
|
|
292
|
+
var Overlay = _styledComponents["default"].div(_templateObject15 || (_templateObject15 = (0, _taggedTemplateLiteral2["default"])(["\n position: fixed;\n top: 0;\n left: 0;\n width: 100vw;\n height: 100vh;\n background-color: ", ";\n opacity: ", " !important;\n visibility: ", ";\n opacity: ", ";\n\n @media (max-width: ", "rem) {\n //mobile phones\n display: none;\n }\n\n transition: opacity 0.2s 0.2s ease-in-out;\n z-index: ", ";\n"])), function (props) {
|
|
310
293
|
return props.theme.overlayColor;
|
|
311
294
|
}, function (props) {
|
|
312
295
|
return props.theme.overlayOpacity;
|
|
@@ -314,9 +297,7 @@ var Overlay = _styledComponents["default"].div(_templateObject15 || (_templateOb
|
|
|
314
297
|
return props.hasVisibility ? "visible" : "hidden";
|
|
315
298
|
}, function (props) {
|
|
316
299
|
return props.hasVisibility ? "1" : "0";
|
|
317
|
-
}, function (props) {
|
|
318
|
-
return props.refSize <= _variables.responsiveSizes.mobileLarge ? "none" : "";
|
|
319
|
-
}, function (props) {
|
|
300
|
+
}, _variables.responsiveSizes.small, function (props) {
|
|
320
301
|
return props.theme.overlayZindex;
|
|
321
302
|
});
|
|
322
303
|
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import DxcHeader from "./Header";
|
|
3
|
+
import Title from "../../.storybook/components/Title";
|
|
4
|
+
import ExampleContainer from "../../.storybook/components/ExampleContainer";
|
|
5
|
+
import { userEvent, waitFor, within } from "@storybook/testing-library";
|
|
6
|
+
|
|
7
|
+
export default {
|
|
8
|
+
title: "Header",
|
|
9
|
+
component: DxcHeader,
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
const options: any = [
|
|
13
|
+
{
|
|
14
|
+
value: 1,
|
|
15
|
+
label: "Amazon",
|
|
16
|
+
},
|
|
17
|
+
];
|
|
18
|
+
|
|
19
|
+
export const Chromatic = () => (
|
|
20
|
+
<>
|
|
21
|
+
<ExampleContainer>
|
|
22
|
+
<Title title="Default with dropdown" theme="light" level={4} />
|
|
23
|
+
<DxcHeader content={<DxcHeader.Dropdown options={options} label="Default Dropdown" />} />
|
|
24
|
+
</ExampleContainer>
|
|
25
|
+
<ExampleContainer>
|
|
26
|
+
<Title title="Underlined with text" theme="light" level={4} />
|
|
27
|
+
<DxcHeader underlined content={<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>} />
|
|
28
|
+
</ExampleContainer>
|
|
29
|
+
<Title title="Margins" theme="light" level={2} />
|
|
30
|
+
<ExampleContainer>
|
|
31
|
+
<Title title="Xxsmall margin" theme="light" level={4} />
|
|
32
|
+
<DxcHeader underlined margin="xxsmall" />
|
|
33
|
+
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>
|
|
34
|
+
</ExampleContainer>
|
|
35
|
+
<ExampleContainer>
|
|
36
|
+
<Title title="Xsmall margin" theme="light" level={4} />
|
|
37
|
+
<DxcHeader underlined margin="xsmall" />
|
|
38
|
+
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>
|
|
39
|
+
</ExampleContainer>
|
|
40
|
+
<ExampleContainer>
|
|
41
|
+
<Title title="Small margin" theme="light" level={4} />
|
|
42
|
+
<DxcHeader underlined margin="small" />
|
|
43
|
+
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>
|
|
44
|
+
</ExampleContainer>
|
|
45
|
+
<ExampleContainer>
|
|
46
|
+
<Title title="Medium margin" theme="light" level={4} />
|
|
47
|
+
<DxcHeader underlined margin="medium" />
|
|
48
|
+
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>
|
|
49
|
+
</ExampleContainer>
|
|
50
|
+
<ExampleContainer>
|
|
51
|
+
<Title title="Large margin" theme="light" level={4} />
|
|
52
|
+
<DxcHeader underlined margin="large" />
|
|
53
|
+
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>
|
|
54
|
+
</ExampleContainer>
|
|
55
|
+
<ExampleContainer>
|
|
56
|
+
<Title title="Xlarge margin" theme="light" level={4} />
|
|
57
|
+
<DxcHeader underlined margin="xlarge" />
|
|
58
|
+
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>
|
|
59
|
+
</ExampleContainer>
|
|
60
|
+
<ExampleContainer>
|
|
61
|
+
<Title title="Xxlarge margin" theme="light" level={4} />
|
|
62
|
+
<DxcHeader underlined margin="xxlarge" />
|
|
63
|
+
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Cras felis.</p>
|
|
64
|
+
</ExampleContainer>
|
|
65
|
+
|
|
66
|
+
<Title title="Paddings" theme="light" level={2} />
|
|
67
|
+
<ExampleContainer>
|
|
68
|
+
<Title title="Xxsmall padding" theme="light" level={4} />
|
|
69
|
+
<DxcHeader underlined padding="xxsmall" />
|
|
70
|
+
</ExampleContainer>
|
|
71
|
+
<ExampleContainer>
|
|
72
|
+
<Title title="Xsmall padding" theme="light" level={4} />
|
|
73
|
+
<DxcHeader underlined padding="xsmall" />
|
|
74
|
+
</ExampleContainer>
|
|
75
|
+
<ExampleContainer>
|
|
76
|
+
<Title title="Small padding" theme="light" level={4} />
|
|
77
|
+
<DxcHeader underlined padding="small" />
|
|
78
|
+
</ExampleContainer>
|
|
79
|
+
<ExampleContainer>
|
|
80
|
+
<Title title="Medium padding" theme="light" level={4} />
|
|
81
|
+
<DxcHeader underlined padding="medium" />
|
|
82
|
+
</ExampleContainer>
|
|
83
|
+
<ExampleContainer>
|
|
84
|
+
<Title title="Large padding" theme="light" level={4} />
|
|
85
|
+
<DxcHeader underlined padding="large" />
|
|
86
|
+
</ExampleContainer>
|
|
87
|
+
<ExampleContainer>
|
|
88
|
+
<Title title="Xlarge padding" theme="light" level={4} />
|
|
89
|
+
<DxcHeader underlined padding="xlarge" />
|
|
90
|
+
</ExampleContainer>
|
|
91
|
+
<ExampleContainer>
|
|
92
|
+
<Title title="Xxlarge padding" theme="light" level={4} />
|
|
93
|
+
<DxcHeader underlined padding="xxlarge" />
|
|
94
|
+
</ExampleContainer>
|
|
95
|
+
</>
|
|
96
|
+
);
|
|
97
|
+
|
|
98
|
+
export const ResponsiveHeader = () => (
|
|
99
|
+
<ExampleContainer>
|
|
100
|
+
<Title title="Responsive" theme="light" level={4} />
|
|
101
|
+
<DxcHeader
|
|
102
|
+
content={<DxcHeader.Dropdown options={options} label="Default Dropdown" />}
|
|
103
|
+
responsiveContent={(closeHandler) => <DxcHeader.Dropdown options={options} label="Default Dropdown" />}
|
|
104
|
+
underlined
|
|
105
|
+
/>
|
|
106
|
+
</ExampleContainer>
|
|
107
|
+
);
|
|
108
|
+
|
|
109
|
+
const RespHeaderFocus = () => (
|
|
110
|
+
<ExampleContainer pseudoState="pseudo-focus">
|
|
111
|
+
<Title title="Responsive focus" theme="light" level={4} />
|
|
112
|
+
<DxcHeader responsiveContent={(closeHandler) => <p>Lorem ipsum dolor sit amet.</p>} underlined />
|
|
113
|
+
</ExampleContainer>
|
|
114
|
+
);
|
|
115
|
+
|
|
116
|
+
const RespHeaderHover = () => (
|
|
117
|
+
<ExampleContainer pseudoState="pseudo-hover">
|
|
118
|
+
<Title title="Responsive hover" theme="light" level={4} />
|
|
119
|
+
<DxcHeader responsiveContent={(closeHandler) => <p>Lorem ipsum dolor sit amet.</p>} underlined />
|
|
120
|
+
</ExampleContainer>
|
|
121
|
+
);
|
|
122
|
+
|
|
123
|
+
const RespHeaderMenu = () => (
|
|
124
|
+
<ExampleContainer>
|
|
125
|
+
<Title title="Responsive menu" theme="light" level={4} />
|
|
126
|
+
<DxcHeader responsiveContent={(closeHandler) => <p>Lorem ipsum dolor sit amet.</p>} underlined />
|
|
127
|
+
</ExampleContainer>
|
|
128
|
+
);
|
|
129
|
+
|
|
130
|
+
ResponsiveHeader.parameters = {
|
|
131
|
+
viewport: {
|
|
132
|
+
defaultViewport: "iphonex",
|
|
133
|
+
},
|
|
134
|
+
chromatic: { viewports: [375] },
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
export const ResponsiveHeaderFocus = RespHeaderFocus.bind({});
|
|
138
|
+
ResponsiveHeaderFocus.parameters = {
|
|
139
|
+
viewport: {
|
|
140
|
+
defaultViewport: "iphonex",
|
|
141
|
+
},
|
|
142
|
+
chromatic: { viewports: [375] },
|
|
143
|
+
};
|
|
144
|
+
ResponsiveHeaderFocus.play = async ({ canvasElement }) => {
|
|
145
|
+
const canvas = within(canvasElement);
|
|
146
|
+
await waitFor(() => canvas.findByText("Menu"));
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
export const ResponsiveHeaderHover = RespHeaderHover.bind({});
|
|
150
|
+
ResponsiveHeaderHover.parameters = {
|
|
151
|
+
viewport: {
|
|
152
|
+
defaultViewport: "iphonex",
|
|
153
|
+
},
|
|
154
|
+
chromatic: { viewports: [375] },
|
|
155
|
+
};
|
|
156
|
+
ResponsiveHeaderHover.play = async ({ canvasElement }) => {
|
|
157
|
+
const canvas = within(canvasElement);
|
|
158
|
+
await waitFor(() => canvas.findByText("Menu"));
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
export const ResponsiveHeaderMenu = RespHeaderMenu.bind({});
|
|
162
|
+
ResponsiveHeaderMenu.parameters = {
|
|
163
|
+
viewport: {
|
|
164
|
+
defaultViewport: "iphonex",
|
|
165
|
+
},
|
|
166
|
+
chromatic: { viewports: [375] },
|
|
167
|
+
};
|
|
168
|
+
ResponsiveHeaderMenu.play = async ({ canvasElement }) => {
|
|
169
|
+
const canvas = within(canvasElement);
|
|
170
|
+
await waitFor(() => canvas.findByText("Menu"));
|
|
171
|
+
await userEvent.click(canvas.getByText("Menu"));
|
|
172
|
+
};
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
var _react = _interopRequireDefault(require("react"));
|
|
6
|
+
|
|
7
|
+
var _react2 = require("@testing-library/react");
|
|
8
|
+
|
|
9
|
+
var _Header = _interopRequireDefault(require("./Header"));
|
|
10
|
+
|
|
11
|
+
describe("Header component tests", function () {
|
|
12
|
+
beforeAll(function () {
|
|
13
|
+
Object.defineProperty(window, "matchMedia", {
|
|
14
|
+
writable: true,
|
|
15
|
+
value: jest.fn().mockImplementation(function () {
|
|
16
|
+
return {
|
|
17
|
+
matches: false
|
|
18
|
+
};
|
|
19
|
+
})
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
test("Header renders with default logo", function () {
|
|
23
|
+
var _render = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Header["default"], null)),
|
|
24
|
+
getByTitle = _render.getByTitle;
|
|
25
|
+
|
|
26
|
+
expect(getByTitle("DXC Logo")).toBeTruthy();
|
|
27
|
+
});
|
|
28
|
+
test("Call correct function on logo click", function () {
|
|
29
|
+
var onClick = jest.fn();
|
|
30
|
+
|
|
31
|
+
var _render2 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Header["default"], {
|
|
32
|
+
onClick: onClick
|
|
33
|
+
})),
|
|
34
|
+
getByTitle = _render2.getByTitle;
|
|
35
|
+
|
|
36
|
+
var logo = getByTitle("DXC Logo");
|
|
37
|
+
|
|
38
|
+
_react2.fireEvent.click(logo);
|
|
39
|
+
|
|
40
|
+
expect(onClick).toHaveBeenCalled();
|
|
41
|
+
});
|
|
42
|
+
test("Header renders with correct children", function () {
|
|
43
|
+
// We need to force the offsetWidth value
|
|
44
|
+
Object.defineProperty(HTMLElement.prototype, "offsetWidth", {
|
|
45
|
+
configurable: true,
|
|
46
|
+
value: 1024
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
var _render3 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Header["default"], {
|
|
50
|
+
content: /*#__PURE__*/_react["default"].createElement("p", null, "header-child-text")
|
|
51
|
+
})),
|
|
52
|
+
getByText = _render3.getByText;
|
|
53
|
+
|
|
54
|
+
expect(getByText("header-child-text")).toBeTruthy();
|
|
55
|
+
});
|
|
56
|
+
test("Header renders menu button in mobile", function () {
|
|
57
|
+
Object.defineProperty(HTMLElement.prototype, "offsetWidth", {
|
|
58
|
+
configurable: true,
|
|
59
|
+
value: 425
|
|
60
|
+
});
|
|
61
|
+
Object.defineProperty(window, "matchMedia", {
|
|
62
|
+
writable: true,
|
|
63
|
+
value: jest.fn().mockImplementation(function () {
|
|
64
|
+
return {
|
|
65
|
+
matches: true
|
|
66
|
+
};
|
|
67
|
+
})
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
var _render4 = (0, _react2.render)( /*#__PURE__*/_react["default"].createElement(_Header["default"], {
|
|
71
|
+
responsiveContent: function responsiveContent(closeMenu) {
|
|
72
|
+
return /*#__PURE__*/_react["default"].createElement("p", null, "header-child-text");
|
|
73
|
+
}
|
|
74
|
+
})),
|
|
75
|
+
getByText = _render4.getByText;
|
|
76
|
+
|
|
77
|
+
expect(getByText("Menu")).toBeTruthy();
|
|
78
|
+
});
|
|
79
|
+
});
|