@dnanpm/styleguide 4.0.0 → 4.0.1
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/build/cjs/components/MainHeaderNavigation/ChildComponents/LanguageSelector.js +10 -9
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/LoginTooltip.js +2 -2
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenu.d.ts +1 -3
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenu.js +4 -6
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/MinicartTooltip.js +4 -8
- package/build/cjs/components/MainHeaderNavigation/ChildComponents/PageSearch.js +2 -2
- package/build/cjs/components/Tooltip/Tooltip.js +1 -1
- package/build/es/components/MainHeaderNavigation/ChildComponents/LanguageSelector.js +11 -10
- package/build/es/components/MainHeaderNavigation/ChildComponents/LoginTooltip.js +2 -2
- package/build/es/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenu.d.ts +1 -3
- package/build/es/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenu.js +4 -6
- package/build/es/components/MainHeaderNavigation/ChildComponents/MinicartTooltip.js +5 -9
- package/build/es/components/MainHeaderNavigation/ChildComponents/PageSearch.js +2 -2
- package/build/es/components/Tooltip/Tooltip.js +1 -1
- package/package.json +5 -5
|
@@ -6,9 +6,7 @@ var icons = require('@dnanpm/icons');
|
|
|
6
6
|
var React = require('react');
|
|
7
7
|
var styledComponents = require('styled-components');
|
|
8
8
|
var theme = require('../../../themes/theme.js');
|
|
9
|
-
var navigation = require('../../../themes/themeComponents/navigation.js');
|
|
10
9
|
var styledUtils = require('../../../utils/styledUtils.js');
|
|
11
|
-
var NavContext = require('../context/NavContext.js');
|
|
12
10
|
var globalNavStyles = require('../globalNavStyles.js');
|
|
13
11
|
var MainNavTooltipMenu = require('./MainNavTooltipMenu.js');
|
|
14
12
|
|
|
@@ -16,22 +14,25 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
|
|
|
16
14
|
|
|
17
15
|
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
18
16
|
|
|
19
|
-
const
|
|
17
|
+
const MenuWrapper = styledComponents.styled.div `
|
|
18
|
+
display: flex;
|
|
19
|
+
flex-direction: column;
|
|
20
|
+
gap: ${styledUtils.getMultipliedSize(theme.default.base.baseWidth, 2)};
|
|
21
|
+
margin: ${styledUtils.getMultipliedSize(theme.default.base.baseHeight, 2)}
|
|
22
|
+
${styledUtils.getMultipliedSize(theme.default.base.baseHeight, 3)};
|
|
20
23
|
font-weight: ${theme.default.fontWeight.medium};
|
|
21
|
-
margin: ${styledUtils.getMultipliedSize(theme.default.base.baseHeight, 1)} auto;
|
|
22
24
|
text-align: center;
|
|
23
25
|
`;
|
|
24
|
-
const LangComponent = ({ currentLanguage, languagesObject }) => (React__default.default.createElement(
|
|
26
|
+
const LangComponent = ({ currentLanguage, languagesObject }) => (React__default.default.createElement(MenuWrapper, null, Object.entries(languagesObject)
|
|
25
27
|
.filter(([key]) => key.toLowerCase() !== currentLanguage.toLowerCase())
|
|
26
|
-
.map(([key, value]) => (React__default.default.createElement(
|
|
28
|
+
.map(([key, value]) => (React__default.default.createElement(globalNavStyles.MenuLink, { key: `language-${key}`, href: value }, key.toUpperCase())))));
|
|
27
29
|
const LanguageSelector = ({ currentLanguage, languagesObject, languageSelectorLabel, }) => {
|
|
28
|
-
const { isMobileMenu, navZIndex } = React.useContext(NavContext.default);
|
|
29
30
|
const LngComponent = React.useCallback(() => (React__default.default.createElement(LangComponent, { languageSelectorLabel: languageSelectorLabel, currentLanguage: currentLanguage, languagesObject: languagesObject })), [currentLanguage, languagesObject, languageSelectorLabel]);
|
|
30
31
|
if (Object.keys(languagesObject).length < 2) {
|
|
31
32
|
return null;
|
|
32
33
|
}
|
|
33
|
-
return (React__default.default.createElement(MainNavTooltipMenu.default, { ariaLabel: languageSelectorLabel, closeWhenTagClicked: ['a'], contentComponent: LngComponent, contentWidth: "5rem", globalStateString: "lang", tooltipRight:
|
|
34
|
-
React__default.default.createElement(icons.Globe,
|
|
34
|
+
return (React__default.default.createElement(MainNavTooltipMenu.default, { ariaLabel: languageSelectorLabel, closeWhenTagClicked: ['a'], contentComponent: LngComponent, contentWidth: "5rem", globalStateString: "lang", tooltipRight: "auto" },
|
|
35
|
+
React__default.default.createElement(icons.Globe, null),
|
|
35
36
|
React__default.default.createElement("span", { "data-testid": "header-lang-label" }, currentLanguage.toUpperCase())));
|
|
36
37
|
};
|
|
37
38
|
|
|
@@ -12,8 +12,8 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
|
|
|
12
12
|
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
13
13
|
|
|
14
14
|
const LoginTooltip = ({ isLogged, loginLabel }) => {
|
|
15
|
-
const {
|
|
16
|
-
return (React__default.default.createElement(MainNavTooltipMenu.default, { ariaLabel: loginLabel, closeWhenTagClicked: ['a', 'button'], contentComponent: loginComponent, globalStateString: "login", tooltipRight: isMobileMenu ? '3rem' : '1rem'
|
|
15
|
+
const { isMobileMenu, loginComponent } = React.useContext(NavContext.default);
|
|
16
|
+
return (React__default.default.createElement(MainNavTooltipMenu.default, { ariaLabel: loginLabel, closeWhenTagClicked: ['a', 'button'], contentComponent: loginComponent, globalStateString: "login", tooltipRight: isMobileMenu ? '3rem' : '1rem' }, !isLogged ? (loginLabel) : (React__default.default.createElement(React__default.default.Fragment, null,
|
|
17
17
|
React__default.default.createElement(icons.User, null),
|
|
18
18
|
React__default.default.createElement("span", { "data-testid": "header-login-label" }, loginLabel)))));
|
|
19
19
|
};
|
|
@@ -6,8 +6,6 @@ interface MainNavTooltipMenuProps<ContentProps extends object = object> extends
|
|
|
6
6
|
ariaLabel?: string;
|
|
7
7
|
/** Tooltip menu content */
|
|
8
8
|
children?: ReactNode;
|
|
9
|
-
/** Overlap other elements */
|
|
10
|
-
zIndex?: number;
|
|
11
9
|
/** Tooltip position from right. Default: 1.25rem */
|
|
12
10
|
tooltipRight?: string;
|
|
13
11
|
/** Mandatory Component provided as login content */
|
|
@@ -27,5 +25,5 @@ export declare const IconContainer: import("styled-components/dist/types").IStyl
|
|
|
27
25
|
$isActive?: boolean;
|
|
28
26
|
$collapseSize: number;
|
|
29
27
|
}>> & string;
|
|
30
|
-
declare const MainNavTooltipMenu: <ContentProps extends object = object>({ ariaLabel, children, closeWhenTagClicked, contentComponent, contentWidth, fullWidthBreakpoint, fullWidthDesktop, globalStateString, tooltipRight,
|
|
28
|
+
declare const MainNavTooltipMenu: <ContentProps extends object = object>({ ariaLabel, children, closeWhenTagClicked, contentComponent, contentWidth, fullWidthBreakpoint, fullWidthDesktop, globalStateString, tooltipRight, ...props }: MainNavTooltipMenuProps<ContentProps>) => React.JSX.Element;
|
|
31
29
|
export default MainNavTooltipMenu;
|
|
@@ -49,9 +49,7 @@ const Tooltip = styledComponents.styled.div `
|
|
|
49
49
|
min-height: ${styledUtils.getMultipliedSize(theme.default.base.baseHeight, 5)};
|
|
50
50
|
// Ensure that the tooltip's content is always visible within the viewport. So, the max-height is the viewport height minus the header's height + some margin.
|
|
51
51
|
max-height: calc(var(--vh100, 100vh) - ${styledUtils.getMultipliedSize(theme.default.base.baseHeight, 12)});
|
|
52
|
-
width: 100%;
|
|
53
52
|
position: absolute;
|
|
54
|
-
right: 0;
|
|
55
53
|
top: ${navigation.navMaxHeight};
|
|
56
54
|
z-index: ${p => p.$zIndex};
|
|
57
55
|
display: flex;
|
|
@@ -85,8 +83,8 @@ const Caret = styledComponents.styled.div `
|
|
|
85
83
|
}
|
|
86
84
|
`;
|
|
87
85
|
const MainNavTooltipMenu = (_a) => {
|
|
88
|
-
var { ariaLabel, children, closeWhenTagClicked = [], contentComponent, contentWidth = '20rem', fullWidthBreakpoint = theme.default.breakpoints.xs, fullWidthDesktop = false, globalStateString, tooltipRight = '-1rem'
|
|
89
|
-
const { collapseSize, isMobileMenu, isLoggedIn, resetMenuEvents, setTooltipItems, showLoginTooltip, showMinicart, tooltipItems, } = React.useContext(NavContext.default);
|
|
86
|
+
var { ariaLabel, children, closeWhenTagClicked = [], contentComponent, contentWidth = '20rem', fullWidthBreakpoint = theme.default.breakpoints.xs, fullWidthDesktop = false, globalStateString, tooltipRight = '-1rem' } = _a, props = tslib.__rest(_a, ["ariaLabel", "children", "closeWhenTagClicked", "contentComponent", "contentWidth", "fullWidthBreakpoint", "fullWidthDesktop", "globalStateString", "tooltipRight"]);
|
|
87
|
+
const { collapseSize, isMobileMenu, isLoggedIn, resetMenuEvents, setTooltipItems, showLoginTooltip, showMinicart, tooltipItems, navZIndex, } = React.useContext(NavContext.default);
|
|
90
88
|
const ref = React.useRef(null);
|
|
91
89
|
const globalStateKey = globalStateString;
|
|
92
90
|
const isLoginItemAndLoggedIn = globalStateKey === 'login' && isLoggedIn;
|
|
@@ -113,8 +111,8 @@ const MainNavTooltipMenu = (_a) => {
|
|
|
113
111
|
return (React__default.default.createElement(IconContainer, { "data-testid": `header-${globalStateKey}-container`, "$collapseSize": collapseSize, ref: ref },
|
|
114
112
|
globalStateKey === 'login' && !isLoggedIn ? (React__default.default.createElement(ButtonPrimary.default, { onClick: ContentComponent ? toggleState : undefined, small: true }, children)) : (React__default.default.createElement(MainNavTooltipMenuExportedStyles.default, { "aria-label": ariaLabel, "aria-expanded": tooltipItems[globalStateKey], "$isLoggedIn": isLoginItemAndLoggedIn, "$collapseSize": collapseSize, "$isHighlighted": tooltipItems[globalStateKey] || isLoginItemAndLoggedIn, onClick: props.onCartButtonClick || (ContentComponent ? toggleState : undefined) }, children)),
|
|
115
113
|
tooltipItems[globalStateKey] && ContentComponent && (React__default.default.createElement(React__default.default.Fragment, null,
|
|
116
|
-
React__default.default.createElement(Caret, { "$zIndex":
|
|
117
|
-
React__default.default.createElement(Tooltip, { "$zIndex":
|
|
114
|
+
React__default.default.createElement(Caret, { "$zIndex": navZIndex + 1, "$collapseSize": collapseSize }),
|
|
115
|
+
React__default.default.createElement(Tooltip, { "$zIndex": navZIndex + 1, "$tooltipRight": tooltipRight, "$contentWidth": contentWidth, "$collapseSize": collapseSize, "$fullWidthDesktop": fullWidthDesktop, "$fullWidthBreakpoint": fullWidthBreakpoint },
|
|
118
116
|
React__default.default.createElement(TooltipBox, { elevation: "high", padding: "0", width: "100%" },
|
|
119
117
|
React__default.default.createElement(ContentComponent, { mobileView: isMobileMenu })))))));
|
|
120
118
|
};
|
|
@@ -6,19 +6,15 @@ var icons = require('@dnanpm/icons');
|
|
|
6
6
|
var React = require('react');
|
|
7
7
|
var theme = require('../../../themes/theme.js');
|
|
8
8
|
var NotificationBadge = require('../../NotificationBadge/NotificationBadge.js');
|
|
9
|
-
var NavContext = require('../context/NavContext.js');
|
|
10
9
|
var MainNavTooltipMenu = require('./MainNavTooltipMenu.js');
|
|
11
10
|
|
|
12
11
|
function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
|
|
13
12
|
|
|
14
13
|
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
15
14
|
|
|
16
|
-
const MinicartTooltip = ({ minicartAmount, minicartAmountLabel, minicartLabel, onCartButtonClick, }) => {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
React__default.default.createElement("span", { "aria-hidden": !!minicartAmountLabel }, minicartLabel),
|
|
21
|
-
minicartAmount > 0 && (React__default.default.createElement(NotificationBadge.default, { "data-testid": "header-minicart-amount", right: "5px", top: "-5px", visuallyHiddenText: minicartAmountLabel }, minicartAmount))));
|
|
22
|
-
};
|
|
15
|
+
const MinicartTooltip = ({ minicartAmount, minicartAmountLabel, minicartLabel, onCartButtonClick, }) => (React__default.default.createElement(MainNavTooltipMenu.default, { closeWhenTagClicked: ['a', 'button'], onCartButtonClick: onCartButtonClick, contentWidth: "35rem", fullWidthBreakpoint: theme.default.breakpoints.md, globalStateString: "minicart", tooltipRight: "5rem" },
|
|
16
|
+
React__default.default.createElement(icons.Cart, null),
|
|
17
|
+
React__default.default.createElement("span", { "aria-hidden": !!minicartAmountLabel }, minicartLabel),
|
|
18
|
+
minicartAmount > 0 && (React__default.default.createElement(NotificationBadge.default, { "data-testid": "header-minicart-amount", right: "5px", top: "-5px", visuallyHiddenText: minicartAmountLabel }, minicartAmount))));
|
|
23
19
|
|
|
24
20
|
exports.default = MinicartTooltip;
|
|
@@ -12,8 +12,8 @@ function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'defau
|
|
|
12
12
|
var React__default = /*#__PURE__*/_interopDefaultCompat(React);
|
|
13
13
|
|
|
14
14
|
const PageSearch = ({ searchLabel }) => {
|
|
15
|
-
const {
|
|
16
|
-
return (React__default.default.createElement(MainNavTooltipMenu.default, { ariaLabel: searchLabel, closeWhenTagClicked: ['a'], contentComponent: searchComponent, contentWidth: "100%", "data-testid": "header-search-container", fullWidthDesktop: true, globalStateString: "search", tooltipRight: "0"
|
|
15
|
+
const { searchComponent } = React.useContext(NavContext.default);
|
|
16
|
+
return (React__default.default.createElement(MainNavTooltipMenu.default, { ariaLabel: searchLabel, closeWhenTagClicked: ['a'], contentComponent: searchComponent, contentWidth: "100%", "data-testid": "header-search-container", fullWidthDesktop: true, globalStateString: "search", tooltipRight: "0" },
|
|
17
17
|
React__default.default.createElement(icons.Search, null),
|
|
18
18
|
React__default.default.createElement("span", null, searchLabel)));
|
|
19
19
|
};
|
|
@@ -108,7 +108,7 @@ const Tooltip = (_a) => {
|
|
|
108
108
|
scroll: true,
|
|
109
109
|
};
|
|
110
110
|
return (React__default.default.createElement(React__default.default.Fragment, null,
|
|
111
|
-
!props.hideTriggerElement && (React__default.default.createElement(Helper, { "data-tooltip-id": props.id, "$isClickable": isClickable, className: props.className, "data-testid": dataTestId, type: "button", "data-tooltip-delay-hide": 500
|
|
111
|
+
!props.hideTriggerElement && (React__default.default.createElement(Helper, { "data-tooltip-id": props.id, "$isClickable": isClickable, className: props.className, "data-testid": dataTestId, type: "button", "data-tooltip-delay-hide": 500 },
|
|
112
112
|
React__default.default.createElement(Icon.default, { icon: icons.Info, size: "1rem", position: props.position, "aria-hidden": true }))),
|
|
113
113
|
React__default.default.createElement(StyledReactTooltip, { id: props.id, place: props.placement, openOnClick: isClickable, clickable: isHoverable, "$isMultiline": props.isMultiline, disableStyleInjection: true, role: isHoverable ? 'dialog' : 'tooltip', openEvents: handleReactTooltipOpenEvents, globalCloseEvents: handleReactTooltipGlobalCloseEvents, closeEvents: handleReactTooltipCloseEvents, "data-testid": dataTestId && `${dataTestId}-content` }, props.children)));
|
|
114
114
|
};
|
|
@@ -1,29 +1,30 @@
|
|
|
1
1
|
import { Globe } from '@dnanpm/icons';
|
|
2
|
-
import React__default, {
|
|
2
|
+
import React__default, { useCallback } from 'react';
|
|
3
3
|
import { styled } from 'styled-components';
|
|
4
4
|
import theme from '../../../themes/theme.js';
|
|
5
|
-
import { navIconSize } from '../../../themes/themeComponents/navigation.js';
|
|
6
5
|
import { getMultipliedSize } from '../../../utils/styledUtils.js';
|
|
7
|
-
import NavContext from '../context/NavContext.js';
|
|
8
6
|
import { MenuLink } from '../globalNavStyles.js';
|
|
9
7
|
import MainNavTooltipMenu from './MainNavTooltipMenu.js';
|
|
10
8
|
|
|
11
|
-
const
|
|
9
|
+
const MenuWrapper = styled.div `
|
|
10
|
+
display: flex;
|
|
11
|
+
flex-direction: column;
|
|
12
|
+
gap: ${getMultipliedSize(theme.base.baseWidth, 2)};
|
|
13
|
+
margin: ${getMultipliedSize(theme.base.baseHeight, 2)}
|
|
14
|
+
${getMultipliedSize(theme.base.baseHeight, 3)};
|
|
12
15
|
font-weight: ${theme.fontWeight.medium};
|
|
13
|
-
margin: ${getMultipliedSize(theme.base.baseHeight, 1)} auto;
|
|
14
16
|
text-align: center;
|
|
15
17
|
`;
|
|
16
|
-
const LangComponent = ({ currentLanguage, languagesObject }) => (React__default.createElement(
|
|
18
|
+
const LangComponent = ({ currentLanguage, languagesObject }) => (React__default.createElement(MenuWrapper, null, Object.entries(languagesObject)
|
|
17
19
|
.filter(([key]) => key.toLowerCase() !== currentLanguage.toLowerCase())
|
|
18
|
-
.map(([key, value]) => (React__default.createElement(
|
|
20
|
+
.map(([key, value]) => (React__default.createElement(MenuLink, { key: `language-${key}`, href: value }, key.toUpperCase())))));
|
|
19
21
|
const LanguageSelector = ({ currentLanguage, languagesObject, languageSelectorLabel, }) => {
|
|
20
|
-
const { isMobileMenu, navZIndex } = useContext(NavContext);
|
|
21
22
|
const LngComponent = useCallback(() => (React__default.createElement(LangComponent, { languageSelectorLabel: languageSelectorLabel, currentLanguage: currentLanguage, languagesObject: languagesObject })), [currentLanguage, languagesObject, languageSelectorLabel]);
|
|
22
23
|
if (Object.keys(languagesObject).length < 2) {
|
|
23
24
|
return null;
|
|
24
25
|
}
|
|
25
|
-
return (React__default.createElement(MainNavTooltipMenu, { ariaLabel: languageSelectorLabel, closeWhenTagClicked: ['a'], contentComponent: LngComponent, contentWidth: "5rem", globalStateString: "lang", tooltipRight:
|
|
26
|
-
React__default.createElement(Globe,
|
|
26
|
+
return (React__default.createElement(MainNavTooltipMenu, { ariaLabel: languageSelectorLabel, closeWhenTagClicked: ['a'], contentComponent: LngComponent, contentWidth: "5rem", globalStateString: "lang", tooltipRight: "auto" },
|
|
27
|
+
React__default.createElement(Globe, null),
|
|
27
28
|
React__default.createElement("span", { "data-testid": "header-lang-label" }, currentLanguage.toUpperCase())));
|
|
28
29
|
};
|
|
29
30
|
|
|
@@ -4,8 +4,8 @@ import NavContext from '../context/NavContext.js';
|
|
|
4
4
|
import MainNavTooltipMenu from './MainNavTooltipMenu.js';
|
|
5
5
|
|
|
6
6
|
const LoginTooltip = ({ isLogged, loginLabel }) => {
|
|
7
|
-
const {
|
|
8
|
-
return (React__default.createElement(MainNavTooltipMenu, { ariaLabel: loginLabel, closeWhenTagClicked: ['a', 'button'], contentComponent: loginComponent, globalStateString: "login", tooltipRight: isMobileMenu ? '3rem' : '1rem'
|
|
7
|
+
const { isMobileMenu, loginComponent } = useContext(NavContext);
|
|
8
|
+
return (React__default.createElement(MainNavTooltipMenu, { ariaLabel: loginLabel, closeWhenTagClicked: ['a', 'button'], contentComponent: loginComponent, globalStateString: "login", tooltipRight: isMobileMenu ? '3rem' : '1rem' }, !isLogged ? (loginLabel) : (React__default.createElement(React__default.Fragment, null,
|
|
9
9
|
React__default.createElement(User, null),
|
|
10
10
|
React__default.createElement("span", { "data-testid": "header-login-label" }, loginLabel)))));
|
|
11
11
|
};
|
|
@@ -6,8 +6,6 @@ interface MainNavTooltipMenuProps<ContentProps extends object = object> extends
|
|
|
6
6
|
ariaLabel?: string;
|
|
7
7
|
/** Tooltip menu content */
|
|
8
8
|
children?: ReactNode;
|
|
9
|
-
/** Overlap other elements */
|
|
10
|
-
zIndex?: number;
|
|
11
9
|
/** Tooltip position from right. Default: 1.25rem */
|
|
12
10
|
tooltipRight?: string;
|
|
13
11
|
/** Mandatory Component provided as login content */
|
|
@@ -27,5 +25,5 @@ export declare const IconContainer: import("styled-components/dist/types").IStyl
|
|
|
27
25
|
$isActive?: boolean;
|
|
28
26
|
$collapseSize: number;
|
|
29
27
|
}>> & string;
|
|
30
|
-
declare const MainNavTooltipMenu: <ContentProps extends object = object>({ ariaLabel, children, closeWhenTagClicked, contentComponent, contentWidth, fullWidthBreakpoint, fullWidthDesktop, globalStateString, tooltipRight,
|
|
28
|
+
declare const MainNavTooltipMenu: <ContentProps extends object = object>({ ariaLabel, children, closeWhenTagClicked, contentComponent, contentWidth, fullWidthBreakpoint, fullWidthDesktop, globalStateString, tooltipRight, ...props }: MainNavTooltipMenuProps<ContentProps>) => React.JSX.Element;
|
|
31
29
|
export default MainNavTooltipMenu;
|
|
@@ -41,9 +41,7 @@ const Tooltip = styled.div `
|
|
|
41
41
|
min-height: ${getMultipliedSize(theme.base.baseHeight, 5)};
|
|
42
42
|
// Ensure that the tooltip's content is always visible within the viewport. So, the max-height is the viewport height minus the header's height + some margin.
|
|
43
43
|
max-height: calc(var(--vh100, 100vh) - ${getMultipliedSize(theme.base.baseHeight, 12)});
|
|
44
|
-
width: 100%;
|
|
45
44
|
position: absolute;
|
|
46
|
-
right: 0;
|
|
47
45
|
top: ${navMaxHeight};
|
|
48
46
|
z-index: ${p => p.$zIndex};
|
|
49
47
|
display: flex;
|
|
@@ -77,8 +75,8 @@ const Caret = styled.div `
|
|
|
77
75
|
}
|
|
78
76
|
`;
|
|
79
77
|
const MainNavTooltipMenu = (_a) => {
|
|
80
|
-
var { ariaLabel, children, closeWhenTagClicked = [], contentComponent, contentWidth = '20rem', fullWidthBreakpoint = theme.breakpoints.xs, fullWidthDesktop = false, globalStateString, tooltipRight = '-1rem'
|
|
81
|
-
const { collapseSize, isMobileMenu, isLoggedIn, resetMenuEvents, setTooltipItems, showLoginTooltip, showMinicart, tooltipItems, } = useContext(NavContext);
|
|
78
|
+
var { ariaLabel, children, closeWhenTagClicked = [], contentComponent, contentWidth = '20rem', fullWidthBreakpoint = theme.breakpoints.xs, fullWidthDesktop = false, globalStateString, tooltipRight = '-1rem' } = _a, props = __rest(_a, ["ariaLabel", "children", "closeWhenTagClicked", "contentComponent", "contentWidth", "fullWidthBreakpoint", "fullWidthDesktop", "globalStateString", "tooltipRight"]);
|
|
79
|
+
const { collapseSize, isMobileMenu, isLoggedIn, resetMenuEvents, setTooltipItems, showLoginTooltip, showMinicart, tooltipItems, navZIndex, } = useContext(NavContext);
|
|
82
80
|
const ref = useRef(null);
|
|
83
81
|
const globalStateKey = globalStateString;
|
|
84
82
|
const isLoginItemAndLoggedIn = globalStateKey === 'login' && isLoggedIn;
|
|
@@ -105,8 +103,8 @@ const MainNavTooltipMenu = (_a) => {
|
|
|
105
103
|
return (React__default.createElement(IconContainer, { "data-testid": `header-${globalStateKey}-container`, "$collapseSize": collapseSize, ref: ref },
|
|
106
104
|
globalStateKey === 'login' && !isLoggedIn ? (React__default.createElement(ButtonPrimary, { onClick: ContentComponent ? toggleState : undefined, small: true }, children)) : (React__default.createElement(TooltipWrapper, { "aria-label": ariaLabel, "aria-expanded": tooltipItems[globalStateKey], "$isLoggedIn": isLoginItemAndLoggedIn, "$collapseSize": collapseSize, "$isHighlighted": tooltipItems[globalStateKey] || isLoginItemAndLoggedIn, onClick: props.onCartButtonClick || (ContentComponent ? toggleState : undefined) }, children)),
|
|
107
105
|
tooltipItems[globalStateKey] && ContentComponent && (React__default.createElement(React__default.Fragment, null,
|
|
108
|
-
React__default.createElement(Caret, { "$zIndex":
|
|
109
|
-
React__default.createElement(Tooltip, { "$zIndex":
|
|
106
|
+
React__default.createElement(Caret, { "$zIndex": navZIndex + 1, "$collapseSize": collapseSize }),
|
|
107
|
+
React__default.createElement(Tooltip, { "$zIndex": navZIndex + 1, "$tooltipRight": tooltipRight, "$contentWidth": contentWidth, "$collapseSize": collapseSize, "$fullWidthDesktop": fullWidthDesktop, "$fullWidthBreakpoint": fullWidthBreakpoint },
|
|
110
108
|
React__default.createElement(TooltipBox, { elevation: "high", padding: "0", width: "100%" },
|
|
111
109
|
React__default.createElement(ContentComponent, { mobileView: isMobileMenu })))))));
|
|
112
110
|
};
|
|
@@ -1,16 +1,12 @@
|
|
|
1
1
|
import { Cart } from '@dnanpm/icons';
|
|
2
|
-
import React__default
|
|
2
|
+
import React__default from 'react';
|
|
3
3
|
import theme from '../../../themes/theme.js';
|
|
4
4
|
import NotificationBadge from '../../NotificationBadge/NotificationBadge.js';
|
|
5
|
-
import NavContext from '../context/NavContext.js';
|
|
6
5
|
import MainNavTooltipMenu from './MainNavTooltipMenu.js';
|
|
7
6
|
|
|
8
|
-
const MinicartTooltip = ({ minicartAmount, minicartAmountLabel, minicartLabel, onCartButtonClick, }) => {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
React__default.createElement("span", { "aria-hidden": !!minicartAmountLabel }, minicartLabel),
|
|
13
|
-
minicartAmount > 0 && (React__default.createElement(NotificationBadge, { "data-testid": "header-minicart-amount", right: "5px", top: "-5px", visuallyHiddenText: minicartAmountLabel }, minicartAmount))));
|
|
14
|
-
};
|
|
7
|
+
const MinicartTooltip = ({ minicartAmount, minicartAmountLabel, minicartLabel, onCartButtonClick, }) => (React__default.createElement(MainNavTooltipMenu, { closeWhenTagClicked: ['a', 'button'], onCartButtonClick: onCartButtonClick, contentWidth: "35rem", fullWidthBreakpoint: theme.breakpoints.md, globalStateString: "minicart", tooltipRight: "5rem" },
|
|
8
|
+
React__default.createElement(Cart, null),
|
|
9
|
+
React__default.createElement("span", { "aria-hidden": !!minicartAmountLabel }, minicartLabel),
|
|
10
|
+
minicartAmount > 0 && (React__default.createElement(NotificationBadge, { "data-testid": "header-minicart-amount", right: "5px", top: "-5px", visuallyHiddenText: minicartAmountLabel }, minicartAmount))));
|
|
15
11
|
|
|
16
12
|
export { MinicartTooltip as default };
|
|
@@ -4,8 +4,8 @@ import NavContext from '../context/NavContext.js';
|
|
|
4
4
|
import MainNavTooltipMenu from './MainNavTooltipMenu.js';
|
|
5
5
|
|
|
6
6
|
const PageSearch = ({ searchLabel }) => {
|
|
7
|
-
const {
|
|
8
|
-
return (React__default.createElement(MainNavTooltipMenu, { ariaLabel: searchLabel, closeWhenTagClicked: ['a'], contentComponent: searchComponent, contentWidth: "100%", "data-testid": "header-search-container", fullWidthDesktop: true, globalStateString: "search", tooltipRight: "0"
|
|
7
|
+
const { searchComponent } = useContext(NavContext);
|
|
8
|
+
return (React__default.createElement(MainNavTooltipMenu, { ariaLabel: searchLabel, closeWhenTagClicked: ['a'], contentComponent: searchComponent, contentWidth: "100%", "data-testid": "header-search-container", fullWidthDesktop: true, globalStateString: "search", tooltipRight: "0" },
|
|
9
9
|
React__default.createElement(Search, null),
|
|
10
10
|
React__default.createElement("span", null, searchLabel)));
|
|
11
11
|
};
|
|
@@ -100,7 +100,7 @@ const Tooltip = (_a) => {
|
|
|
100
100
|
scroll: true,
|
|
101
101
|
};
|
|
102
102
|
return (React__default.createElement(React__default.Fragment, null,
|
|
103
|
-
!props.hideTriggerElement && (React__default.createElement(Helper, { "data-tooltip-id": props.id, "$isClickable": isClickable, className: props.className, "data-testid": dataTestId, type: "button", "data-tooltip-delay-hide": 500
|
|
103
|
+
!props.hideTriggerElement && (React__default.createElement(Helper, { "data-tooltip-id": props.id, "$isClickable": isClickable, className: props.className, "data-testid": dataTestId, type: "button", "data-tooltip-delay-hide": 500 },
|
|
104
104
|
React__default.createElement(Icon, { icon: Info, size: "1rem", position: props.position, "aria-hidden": true }))),
|
|
105
105
|
React__default.createElement(StyledReactTooltip, { id: props.id, place: props.placement, openOnClick: isClickable, clickable: isHoverable, "$isMultiline": props.isMultiline, disableStyleInjection: true, role: isHoverable ? 'dialog' : 'tooltip', openEvents: handleReactTooltipOpenEvents, globalCloseEvents: handleReactTooltipGlobalCloseEvents, closeEvents: handleReactTooltipCloseEvents, "data-testid": dataTestId && `${dataTestId}-content` }, props.children)));
|
|
106
106
|
};
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dnanpm/styleguide",
|
|
3
3
|
"sideEffects": false,
|
|
4
|
-
"version": "v4.0.
|
|
4
|
+
"version": "v4.0.1",
|
|
5
5
|
"main": "build/cjs/index.js",
|
|
6
6
|
"module": "build/es/index.js",
|
|
7
7
|
"jsnext:main": "build/es/index.js",
|
|
@@ -66,14 +66,14 @@
|
|
|
66
66
|
"@types/react-modal": "^3.13.1",
|
|
67
67
|
"@types/resize-observer-browser": "^0.1.8",
|
|
68
68
|
"@typescript-eslint/eslint-plugin": "^8.46.4",
|
|
69
|
-
"@typescript-eslint/parser": "^8.
|
|
69
|
+
"@typescript-eslint/parser": "^8.48.0",
|
|
70
70
|
"babel-loader": "^9.2.1",
|
|
71
71
|
"cross-env": "^10.0.0",
|
|
72
72
|
"css-loader": "^6.11.0",
|
|
73
73
|
"eslint": "^9.39.1",
|
|
74
74
|
"eslint-config-prettier": "^10.1.8",
|
|
75
75
|
"eslint-plugin-import": "^2.32.0",
|
|
76
|
-
"eslint-plugin-jsdoc": "^61.
|
|
76
|
+
"eslint-plugin-jsdoc": "^61.4.1",
|
|
77
77
|
"eslint-plugin-jsx-a11y": "^6.10.2",
|
|
78
78
|
"eslint-plugin-react": "^7.37.5",
|
|
79
79
|
"eslint-plugin-react-hooks": "^7.0.1",
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
"ts-node": "^10.9.2",
|
|
97
97
|
"tslib": "^2.8.1",
|
|
98
98
|
"typescript": "^5.1.6",
|
|
99
|
-
"webpack": "^5.
|
|
99
|
+
"webpack": "^5.103.0"
|
|
100
100
|
},
|
|
101
101
|
"dependencies": {
|
|
102
102
|
"ramda": "^0.32.0",
|
|
@@ -104,7 +104,7 @@
|
|
|
104
104
|
"react-modal": "^3.16.1",
|
|
105
105
|
"react-select": "^5.8.1",
|
|
106
106
|
"react-spring": "^8.0.27",
|
|
107
|
-
"react-tooltip": "^5.
|
|
107
|
+
"react-tooltip": "^5.30.0"
|
|
108
108
|
},
|
|
109
109
|
"peerDependencies": {
|
|
110
110
|
"@dnanpm/icons": "^2.x",
|