@dnanpm/styleguide 3.9.13 → 3.10.0

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.
Files changed (73) hide show
  1. package/build/cjs/components/Box/Box.d.ts +4 -0
  2. package/build/cjs/components/Box/Box.js +1 -1
  3. package/build/cjs/components/Button/Button.d.ts +4 -0
  4. package/build/cjs/components/Button/Button.js +1 -1
  5. package/build/cjs/components/ButtonArrow/ButtonArrow.js +9 -2
  6. package/build/cjs/components/ButtonIcon/ButtonIcon.d.ts +4 -0
  7. package/build/cjs/components/ButtonIcon/ButtonIcon.js +49 -13
  8. package/build/cjs/components/Carousel/Carousel.js +4 -1
  9. package/build/cjs/components/Checkbox/Checkbox.js +1 -1
  10. package/build/cjs/components/EnergyLabel/EnergyLabel.d.ts +65 -0
  11. package/build/cjs/components/EnergyLabel/EnergyLabel.js +98 -0
  12. package/build/cjs/components/MainHeaderNavigation/ChildComponents/BusinessMenu.js +2 -3
  13. package/build/cjs/components/MainHeaderNavigation/ChildComponents/DesktopMenu.js +15 -16
  14. package/build/cjs/components/MainHeaderNavigation/ChildComponents/LanguageSelector.js +1 -2
  15. package/build/cjs/components/MainHeaderNavigation/ChildComponents/LinkModifier.d.ts +2 -2
  16. package/build/cjs/components/MainHeaderNavigation/ChildComponents/LinkModifier.js +5 -7
  17. package/build/cjs/components/MainHeaderNavigation/ChildComponents/LoginTooltip.js +3 -5
  18. package/build/cjs/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenu.js +5 -5
  19. package/build/cjs/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenuExportedStyles.js +4 -4
  20. package/build/cjs/components/MainHeaderNavigation/ChildComponents/MinicartTooltip.d.ts +3 -2
  21. package/build/cjs/components/MainHeaderNavigation/ChildComponents/MinicartTooltip.js +6 -10
  22. package/build/cjs/components/MainHeaderNavigation/ChildComponents/MobileMenu.js +3 -3
  23. package/build/cjs/components/MainHeaderNavigation/ChildComponents/PageSearch.js +3 -5
  24. package/build/cjs/components/MainHeaderNavigation/MainHeaderNavigation.d.ts +5 -1
  25. package/build/cjs/components/MainHeaderNavigation/MainHeaderNavigation.js +7 -7
  26. package/build/cjs/components/MainHeaderNavigation/globalNavStyles.js +6 -0
  27. package/build/cjs/components/Notification/Notification.js +3 -3
  28. package/build/cjs/components/Overlay/Overlay.d.ts +64 -3
  29. package/build/cjs/components/Overlay/Overlay.js +11 -8
  30. package/build/cjs/components/Pill/Pill.js +1 -1
  31. package/build/cjs/components/PriorityNavigation/PriorityNavigation.d.ts +0 -4
  32. package/build/cjs/components/PriorityNavigation/PriorityNavigation.js +18 -9
  33. package/build/cjs/components/RadioButton/RadioButton.js +1 -1
  34. package/build/cjs/components/Switch/Switch.js +1 -1
  35. package/build/cjs/components/index.d.ts +1 -0
  36. package/build/cjs/index.js +2 -0
  37. package/build/es/components/Box/Box.d.ts +4 -0
  38. package/build/es/components/Box/Box.js +1 -1
  39. package/build/es/components/Button/Button.d.ts +4 -0
  40. package/build/es/components/Button/Button.js +1 -1
  41. package/build/es/components/ButtonArrow/ButtonArrow.js +10 -3
  42. package/build/es/components/ButtonIcon/ButtonIcon.d.ts +4 -0
  43. package/build/es/components/ButtonIcon/ButtonIcon.js +49 -13
  44. package/build/es/components/Carousel/Carousel.js +4 -1
  45. package/build/es/components/Checkbox/Checkbox.js +1 -1
  46. package/build/es/components/EnergyLabel/EnergyLabel.d.ts +65 -0
  47. package/build/es/components/EnergyLabel/EnergyLabel.js +90 -0
  48. package/build/es/components/MainHeaderNavigation/ChildComponents/BusinessMenu.js +2 -3
  49. package/build/es/components/MainHeaderNavigation/ChildComponents/DesktopMenu.js +15 -16
  50. package/build/es/components/MainHeaderNavigation/ChildComponents/LanguageSelector.js +1 -2
  51. package/build/es/components/MainHeaderNavigation/ChildComponents/LinkModifier.d.ts +2 -2
  52. package/build/es/components/MainHeaderNavigation/ChildComponents/LinkModifier.js +5 -7
  53. package/build/es/components/MainHeaderNavigation/ChildComponents/LoginTooltip.js +3 -5
  54. package/build/es/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenu.js +5 -5
  55. package/build/es/components/MainHeaderNavigation/ChildComponents/MainNavTooltipMenuExportedStyles.js +4 -4
  56. package/build/es/components/MainHeaderNavigation/ChildComponents/MinicartTooltip.d.ts +3 -2
  57. package/build/es/components/MainHeaderNavigation/ChildComponents/MinicartTooltip.js +6 -10
  58. package/build/es/components/MainHeaderNavigation/ChildComponents/MobileMenu.js +3 -3
  59. package/build/es/components/MainHeaderNavigation/ChildComponents/PageSearch.js +3 -5
  60. package/build/es/components/MainHeaderNavigation/MainHeaderNavigation.d.ts +5 -1
  61. package/build/es/components/MainHeaderNavigation/MainHeaderNavigation.js +8 -8
  62. package/build/es/components/MainHeaderNavigation/globalNavStyles.js +6 -0
  63. package/build/es/components/Notification/Notification.js +3 -3
  64. package/build/es/components/Overlay/Overlay.d.ts +64 -3
  65. package/build/es/components/Overlay/Overlay.js +11 -8
  66. package/build/es/components/Pill/Pill.js +1 -1
  67. package/build/es/components/PriorityNavigation/PriorityNavigation.d.ts +0 -4
  68. package/build/es/components/PriorityNavigation/PriorityNavigation.js +18 -9
  69. package/build/es/components/RadioButton/RadioButton.js +1 -1
  70. package/build/es/components/Switch/Switch.js +1 -1
  71. package/build/es/components/index.d.ts +1 -0
  72. package/build/es/index.js +1 -0
  73. package/package.json +2 -2
@@ -7,6 +7,47 @@ import { getDividedSize, media } from '../../utils/styledUtils.js';
7
7
  import Icon from '../Icon/Icon.js';
8
8
  import PixelLoader from '../PixelLoader/PixelLoader.js';
9
9
 
10
+ const getStandardStyle = ({ isLinkStyle }) => {
11
+ const colorValue = isLinkStyle ? theme.color.default.pink : theme.color.text.black;
12
+ const colorHoverValue = isLinkStyle ? theme.color.hover.pink : theme.color.text.black;
13
+ return `
14
+ color: ${colorValue};
15
+ &:focus-visible {
16
+ border: 2px solid ${theme.color.focus.light};
17
+ box-shadow: 0px 0px 0px 2px ${theme.color.focus.dark};
18
+ }
19
+ &:hover {
20
+ color: ${colorHoverValue};
21
+ }
22
+ &:active {
23
+ color: ${theme.color.text.black + theme.color.transparency.T80};
24
+ }
25
+ &:disabled,
26
+ &[disabled] {
27
+ color: ${theme.color.text.gray};
28
+ }
29
+ `;
30
+ };
31
+ const getDarkBgStyle = () => {
32
+ const colorValue = theme.color.text.white;
33
+ return `
34
+ color: ${colorValue};
35
+ &:focus-visible {
36
+ border: 2px solid ${theme.color.focus.dark};
37
+ box-shadow: 0px 0px 0px 2px ${theme.color.focus.light};
38
+ }
39
+ &:hover {
40
+ color: ${colorValue};
41
+ }
42
+ &:active {
43
+ color: ${colorValue + theme.color.transparency.T90};
44
+ }
45
+ &:disabled,
46
+ &[disabled] {
47
+ color: ${colorValue + theme.color.transparency.T70};
48
+ }
49
+ `;
50
+ };
10
51
  const ButtonElement = styled__default.button `
11
52
  display: inline-flex;
12
53
  align-items: center;
@@ -15,10 +56,11 @@ const ButtonElement = styled__default.button `
15
56
  font-size: ${({ small }) => (small ? theme.fontSize.s : theme.fontSize.default)};
16
57
  line-height: ${({ small }) => (small ? theme.lineHeight.xs : theme.lineHeight.default)};
17
58
  cursor: pointer;
18
- color: ${({ darkBg }) => (darkBg ? theme.color.text.white : theme.color.text.black)};
19
59
  background-color: transparent;
20
60
  border: 2px solid transparent;
21
61
  padding: ${getDividedSize(theme.base.baseWidth, 5)} 0;
62
+ text-align: left;
63
+ transition: all 0.2s ease-in-out;
22
64
 
23
65
  & svg {
24
66
  pointer-events: none;
@@ -26,29 +68,23 @@ const ButtonElement = styled__default.button `
26
68
 
27
69
  ${({ isReversed }) => isReversed && `flex-direction: row-reverse;`}
28
70
 
71
+ ${({ darkBg, isLinkStyle }) => (darkBg ? getDarkBgStyle() : getStandardStyle({ isLinkStyle }))}
72
+
29
73
  &:focus-visible {
30
74
  border-radius: ${theme.radius.s};
31
75
  text-decoration: underline;
32
- border: 2px solid
33
- ${({ darkBg }) => (darkBg ? theme.color.focus.dark : theme.color.focus.light)};
34
- box-shadow: 0px 0px 0px 2px
35
- ${({ darkBg }) => (darkBg ? theme.color.focus.light : theme.color.focus.dark)};
36
76
  outline: none;
37
77
  }
38
78
 
39
79
  &:hover {
40
80
  text-decoration: underline;
41
- }
42
-
43
- &:active {
44
- color: ${({ darkBg }) => darkBg
45
- ? theme.color.text.white + theme.color.transparency.T90
46
- : theme.color.text.black + theme.color.transparency.T80};
81
+ text-underline-offset: 0.2em;
82
+ text-decoration-skip-ink: auto;
83
+ text-decoration-thickness: from-font;
47
84
  }
48
85
 
49
86
  &:disabled,
50
87
  &[disabled] {
51
- color: ${({ darkBg }) => darkBg ? theme.color.text.white + theme.color.transparency.T70 : theme.color.text.gray};
52
88
  pointer-events: none;
53
89
  }
54
90
 
@@ -83,7 +119,7 @@ const ButtonElement = styled__default.button `
83
119
  const ButtonIcon = forwardRef((_a, ref) => {
84
120
  var { icon = EditUnderline, 'data-testid': dataTestId, 'data-no-close': dataNoClose, 'data-track-value': dataTrackValue } = _a, props = __rest(_a, ["icon", 'data-testid', 'data-no-close', 'data-track-value']);
85
121
  const position = props.isReversed ? 'right' : 'left';
86
- return (React__default.createElement(ButtonElement, Object.assign({ ref: ref, id: props.id, name: props.name, type: props.type, onClick: props.onClick, onMouseDown: props.onMouseDown, small: props.small, darkBg: props.darkBg, "$loading": props.loading, tabIndex: props.loading ? -1 : 0, "data-loading": props.loading, disabled: props.disabled, hideChildrenMobile: props.hideChildrenMobile, isReversed: props.isReversed, className: props.className, "data-testid": dataTestId, "data-no-close": dataNoClose, "data-track-value": dataTrackValue, "aria-expanded": props.ariaExpanded, "aria-label": props.ariaLabel }, props.dataAttributes), props.loading ? (React__default.createElement(PixelLoader, { color: props.darkBg ? theme.color.default.white : theme.color.default.black, label: props.loadingLabel })) : (React__default.createElement(React__default.Fragment, null,
122
+ return (React__default.createElement(ButtonElement, Object.assign({ ref: ref, id: props.id, name: props.name, type: props.type, onClick: props.onClick, onMouseDown: props.onMouseDown, small: props.small, darkBg: props.darkBg, "$loading": props.loading, tabIndex: props.loading ? -1 : 0, "data-loading": props.loading, disabled: props.disabled, hideChildrenMobile: props.hideChildrenMobile, isReversed: props.isReversed, className: props.className, "data-testid": dataTestId, "data-no-close": dataNoClose, "data-track-value": dataTrackValue, "aria-expanded": props.ariaExpanded, "aria-label": props.ariaLabel, isLinkStyle: props.isLinkStyle }, props.dataAttributes), props.loading ? (React__default.createElement(PixelLoader, { color: props.darkBg ? theme.color.default.white : theme.color.default.black, label: props.loadingLabel })) : (React__default.createElement(React__default.Fragment, null,
87
123
  React__default.createElement(Icon, { icon: icon, color: props.darkBg ? theme.color.default.white : theme.color.default.pink, size: props.small ? '1.25rem' : '1.5rem', position: props.children ? position : undefined, "aria-hidden": true }),
88
124
  props.children && (React__default.createElement("span", { "data-testid": dataTestId && `${dataTestId}-text`, "data-no-close": dataNoClose }, props.children))))));
89
125
  });
@@ -176,7 +176,8 @@ const Carousel = (_a) => {
176
176
  };
177
177
  const visibleItems = props.visibleItems || calculatedItems;
178
178
  const slidesWrapperGapSizePx = 20;
179
- const slideScreensCount = Children.count(props.children) - Math.floor(visibleItems) + 1;
179
+ const slidesCount = Children.count(props.children);
180
+ const slideScreensCount = Math.max(1, slidesCount - Math.floor(visibleItems) + 1);
180
181
  const step = getStep((_b = props.swipeStep) !== null && _b !== void 0 ? _b : 1, visibleItems);
181
182
  const currentStepIndex = Math.ceil(currentIndex / step);
182
183
  const totalSwipeSteps = Math.ceil(slideScreensCount / step + ((slideScreensCount - 1) % step !== 0 ? 1 : 0));
@@ -298,6 +299,8 @@ const Carousel = (_a) => {
298
299
  setIsSwiping(false);
299
300
  };
300
301
  const handleSlidesPointerDown = (e) => {
302
+ if (e.button !== 0)
303
+ return;
301
304
  if (slidesWrapperRef.current && scrollbarRef.current && knobRef.current) {
302
305
  data.startX = e.pageX;
303
306
  data.startTime = Date.now();
@@ -110,7 +110,7 @@ const Checkbox = (_a) => {
110
110
  };
111
111
  return (React__default.createElement(React__default.Fragment, null,
112
112
  React__default.createElement(Container, null,
113
- React__default.createElement(Input, { id: props.id, name: props.name, type: "checkbox", className: props.className, checked: Boolean(props.value), onChange: handleChange, disabled: props.disabled, "data-testid": dataTestId, "aria-required": props.required, "aria-invalid": props.error ? 'true' : undefined, "aria-errormessage": props.error && props.errorMessage ? errorId : undefined }),
113
+ React__default.createElement(Input, { id: props.id, name: props.name, type: "checkbox", className: props.className, checked: Boolean(props.value), onChange: handleChange, disabled: props.disabled, "data-testid": dataTestId, "aria-required": props.required, "aria-invalid": props.error ? 'true' : undefined, "aria-errormessage": props.error && props.errorMessage ? errorId : undefined, "data-checked": Boolean(props.value) }),
114
114
  React__default.createElement("label", { htmlFor: props.id, "data-testid": dataTestId && `${dataTestId}-label` },
115
115
  props.label,
116
116
  props.required && React__default.createElement(Mandatory, null, "*"))),
@@ -0,0 +1,65 @@
1
+ import React from 'react';
2
+ interface Props {
3
+ /**
4
+ * Unique ID for the component
5
+ */
6
+ id?: string;
7
+ /**
8
+ * Allows to pass a custom className
9
+ */
10
+ className?: string;
11
+ /**
12
+ * Allows to pass testid string for testing purposes
13
+ */
14
+ 'data-testid'?: string;
15
+ /**
16
+ * Allows to pass a screen reader label to the component
17
+ */
18
+ ariaLabel?: string;
19
+ /**
20
+ * Allows to set property `aria-label` for `ButtonClose` element
21
+ */
22
+ closeButtonLabel?: string;
23
+ /**
24
+ * Allows to set the source of the badge image
25
+ */
26
+ badgeSrc: string;
27
+ /**
28
+ * Allows to set the title of the modal
29
+ */
30
+ modalTitle?: string;
31
+ /**
32
+ * Allows to set the source of the image in the modal
33
+ */
34
+ modalImageSrc?: string;
35
+ /**
36
+ * Allows to set the label of the modal
37
+ */
38
+ modalLabel?: string;
39
+ /**
40
+ * Allows to set the label of the button that opens the PDF
41
+ */
42
+ pdfButtonLabel?: string;
43
+ /**
44
+ * Allows to set the href of the PDF file
45
+ */
46
+ pdfHref?: string;
47
+ /**
48
+ * Allows to set the label for the error state
49
+ */
50
+ errorLabel?: string;
51
+ /**
52
+ * Allows to set the title for the error state
53
+ */
54
+ errorTitle?: string;
55
+ /**
56
+ * Allows to hide application from assistive screenreaders and other assistive technologies while the modal is open
57
+ *
58
+ * @default '#__next'
59
+ */
60
+ modalAppElement?: string;
61
+ }
62
+ /** @visibleName Energy Label */
63
+ declare const EnergyLabel: ({ "data-testid": dataTestId, modalAppElement, ...props }: Props) => React.JSX.Element | null;
64
+ /** @component */
65
+ export default EnergyLabel;
@@ -0,0 +1,90 @@
1
+ import { __rest } from 'tslib';
2
+ import React__default, { useState } from 'react';
3
+ import { Open } from '@dnanpm/icons';
4
+ import Modal from '../Modal/Modal.js';
5
+ import styled from '../../themes/styled.js';
6
+ import { media, getMultipliedSize } from '../../utils/styledUtils.js';
7
+ import Button from '../Button/Button.js';
8
+ import theme from '../../themes/theme.js';
9
+
10
+ const ERROR_IMAGE = 'https://res.cloudinary.com/dnaoyj/image/upload/v1731073400/Assets/KLT/Enriched%20icons/enriched-error-state.png';
11
+ const ButtonElement = styled.button `
12
+ display: flex;
13
+ align-items: center;
14
+ justify-content: center;
15
+ background-color: transparent;
16
+ border: 0;
17
+ padding: 0;
18
+ cursor: pointer;
19
+ `;
20
+ const StyledModal = styled(Modal) `
21
+ > div > div {
22
+ max-height: 100%;
23
+ height: 100%;
24
+ width: 100%;
25
+ margin: 0;
26
+
27
+ ${media.xs `
28
+ width: 23.438rem;
29
+ height: 50rem;
30
+ border-radius: ${theme.radius.default};
31
+ `};
32
+
33
+ > div {
34
+ border-radius: 0;
35
+ }
36
+ }
37
+ `;
38
+ const ModalLabel = styled.p `
39
+ font-size: ${theme.fontSize.s};
40
+ margin: 0;
41
+ `;
42
+ const ButtonContent = styled.span `
43
+ display: inline-flex;
44
+ align-items: center;
45
+ gap: ${getMultipliedSize(theme.base.baseWidth, 0.5)};
46
+ `;
47
+ const ErrorContainer = styled.div `
48
+ display: flex;
49
+ padding-top: ${getMultipliedSize(theme.base.baseHeight, 2)};
50
+ flex-direction: column;
51
+ text-align: center;
52
+ align-items: center;
53
+ flex-direction: column;
54
+ gap: ${getMultipliedSize(theme.base.baseHeight, 3)};
55
+ `;
56
+ const Image = styled.img `
57
+ width: ${p => p.imgWidth};
58
+ `;
59
+ /** @visibleName Energy Label */
60
+ const EnergyLabel = (_a) => {
61
+ var { 'data-testid': dataTestId, modalAppElement = '#__next' } = _a, props = __rest(_a, ['data-testid', "modalAppElement"]);
62
+ const [isOpen, setIsOpen] = useState(false);
63
+ const [hasError, setHasError] = useState(false);
64
+ const [imgError, setImgError] = useState(false);
65
+ const handleOpen = () => {
66
+ setIsOpen(true);
67
+ };
68
+ const handleClose = () => {
69
+ setIsOpen(false);
70
+ };
71
+ const renderFooter = () => (React__default.createElement(Button, { fullWidth: true, href: props.pdfHref, target: "_blank" },
72
+ React__default.createElement(ButtonContent, null,
73
+ props.pdfButtonLabel,
74
+ " ",
75
+ React__default.createElement(Open, null))));
76
+ if (imgError) {
77
+ return null;
78
+ }
79
+ return (React__default.createElement(React__default.Fragment, null,
80
+ React__default.createElement(ButtonElement, { onClick: handleOpen, "aria-label": props.ariaLabel, "data-testid": dataTestId, id: props.id, className: props.className },
81
+ React__default.createElement(Image, { src: props.badgeSrc, alt: "", "aria-hidden": true, imgWidth: "55px", onError: () => setImgError(true) })),
82
+ React__default.createElement(StyledModal, { appElement: modalAppElement, isOpen: isOpen, onRequestClose: handleClose, title: props.modalTitle, closeLabel: props.closeButtonLabel, footer: renderFooter() }, hasError || !props.modalImageSrc ? (React__default.createElement(ErrorContainer, null,
83
+ React__default.createElement("h3", null, props.errorTitle),
84
+ React__default.createElement(Image, { src: ERROR_IMAGE, alt: "", imgWidth: "160px" }),
85
+ React__default.createElement("p", null, props.errorLabel))) : (React__default.createElement(React__default.Fragment, null,
86
+ React__default.createElement(Image, { src: props.modalImageSrc, alt: "", imgWidth: "100%", onError: () => setHasError(true) }),
87
+ React__default.createElement(ModalLabel, null, props.modalLabel))))));
88
+ };
89
+
90
+ export { EnergyLabel as default };
@@ -39,8 +39,7 @@ const BusinessMenuLink = styled.a `
39
39
  const BusinessMenuList = styled.nav `
40
40
  display: flex;
41
41
  gap: ${getMultipliedSize(theme.base.baseWidth, 1)};
42
- padding: ${getMultipliedSize(theme.base.baseHeight, 0.5)}
43
- ${getMultipliedSize(theme.base.baseWidth, 1)};
42
+ padding: ${getMultipliedSize(theme.base.baseHeight, 0.5)} ${getMultipliedSize(theme.base.baseWidth, 1)};
44
43
  ${media.md `
45
44
  padding: ${getMultipliedSize(theme.base.baseHeight, 1)} ${getMultipliedSize(theme.base.baseWidth, 1.5)};
46
45
  `};
@@ -49,7 +48,7 @@ const BusinessMenu = ({ ariaLabel, currentBusinessId, items, lang }) => {
49
48
  if (!(items === null || items === void 0 ? void 0 : items.length)) {
50
49
  return null;
51
50
  }
52
- return (React__default.createElement(BusinessMenuList, { "aria-label": ariaLabel, "data-testid": "business-menu", role: "navigation" }, items.map(item => (React__default.createElement(BusinessMenuLink, { className: `menu-link ${item.businessId === currentBusinessId ? 'active-site' : ''}`, href: item.urls[lang], isActive: item.businessId === currentBusinessId, key: item.businessId }, item.titles[lang])))));
51
+ return (React__default.createElement(BusinessMenuList, { "aria-label": ariaLabel, "data-testid": "business-menu" }, items.map(item => (React__default.createElement(BusinessMenuLink, { className: `menu-link ${item.businessId === currentBusinessId ? 'active-site' : ''}`, href: item.urls[lang], isActive: item.businessId === currentBusinessId, key: item.businessId }, item.titles[lang])))));
53
52
  };
54
53
 
55
54
  export { BusinessMenu as default };
@@ -28,13 +28,12 @@ const noAnimation = css `
28
28
  const MegaMenuContent = styled.ul `
29
29
  display: grid;
30
30
  grid-template-columns: 25% 25% 25% 25%;
31
- padding-left: 0;
32
31
  `;
33
- const CategoryTitle = styled.span `
32
+ const CategoryTitle = styled.h2 `
34
33
  display: flex;
35
34
  font-size: ${theme.fontSize.default};
36
35
  line-height: ${theme.lineHeight.default};
37
- font-weight: ${theme.fontWeight.bold};
36
+ margin: 0;
38
37
  padding: 0 ${getMultipliedSize(theme.base.baseHeight, 2)}
39
38
  ${getMultipliedSize(theme.base.baseWidth, 1)};
40
39
  ${media.xl `
@@ -121,21 +120,21 @@ const SubMenuLevel1 = ({ menuItem }) => {
121
120
  const pagesWithSubItems = menuItem.pages.filter(element => element.pages.length > 0);
122
121
  // Helper function to render a sub menu item
123
122
  const renderSubMenuItem = (element, index, currUrl) => (React__default.createElement(SubMenuItem, { key: element.id, isHighlighted: isSelected(currUrl, element.urls[lang], true), "data-testid": `desktop-nav-item-level-2-${index + 1}` },
124
- React__default.createElement(LinkModifier, { menuItem: element, tabIndex: false })));
123
+ React__default.createElement(LinkModifier, { menuItem: element, disabledTabIndex: false })));
125
124
  if (!level1HasElements) {
126
125
  return null;
127
126
  }
128
127
  return (React__default.createElement(SubMenuList, { "aria-hidden": false, menuStates: menuLevel, navItemId: menuItem.id, navZIndex: navZIndex },
129
- React__default.createElement(MegaMenuContent, null,
128
+ React__default.createElement(MegaMenuContent, { "aria-labelledby": `menu-id-${menuItem.id}` },
130
129
  pagesWithSubItems.slice(0, 5).map(element => (React__default.createElement(CategoryBlock, { key: element.id },
131
- React__default.createElement(CategoryTitle, null, element.titles[lang]),
132
- React__default.createElement("ul", { "data-testid": "desktop-nav-menu-ul-level-2" }, element.pages.map((subElement, index) => renderSubMenuItem(subElement, index, currentUrl)))))),
130
+ React__default.createElement(CategoryTitle, { id: `menu-id-${element.id}` }, element.titles[lang]),
131
+ React__default.createElement("ul", { "aria-labelledby": `menu-id-${element.id}`, "data-testid": "desktop-nav-menu-ul-level-2" }, element.pages.map((subElement, index) => renderSubMenuItem(subElement, index, currentUrl)))))),
133
132
  pagesWithSubItems.length > 5 && (React__default.createElement(CategoryCollectionBlock, null,
134
- React__default.createElement(CategoryTitle, null, categoryCollectionText),
135
- React__default.createElement("ul", { "data-testid": "desktop-nav-menu-ul-level-2" }, pagesWithSubItems
133
+ React__default.createElement(CategoryTitle, { id: "misc-categories" }, categoryCollectionText),
134
+ React__default.createElement("ul", { "aria-labelledby": "misc-categories", "data-testid": "desktop-nav-menu-ul-level-2" }, pagesWithSubItems
136
135
  .slice(5)
137
136
  .map((element, index) => renderSubMenuItem(element, index, currentUrl))))),
138
- React__default.createElement(FeaturedBlock, { collapseSize: collapseSize, "data-testid": "desktop-nav-menu-level-2-featured" }, menuItem.pages.map(element => element.pages.length ? null : (React__default.createElement(LinkModifier, { key: element.id, showIcon: true, menuItem: element, tabIndex: false })))))));
137
+ React__default.createElement(FeaturedBlock, { collapseSize: collapseSize, "data-testid": "desktop-nav-menu-level-2-featured" }, menuItem.pages.map(element => element.pages.length ? null : (React__default.createElement(LinkModifier, { key: element.id, showIcon: true, menuItem: element, disabledTabIndex: false })))))));
139
138
  };
140
139
  const MenuItemWithChildren = ({ menuItem, currentLevel }) => {
141
140
  const { lang, handleNavMenuClick, currentUrl, menuLevel } = useContext(NavContext);
@@ -144,9 +143,9 @@ const MenuItemWithChildren = ({ menuItem, currentLevel }) => {
144
143
  e.preventDefault();
145
144
  handleNavMenuClick(element.id, 'level1');
146
145
  };
147
- return (React__default.createElement(DesktopMenuItem, { isActive: isSelected(currentUrl, menuItem.urls[lang]), "data-testid": `desktop-nav-item-level-1-${currentLevel + 1}` },
148
- React__default.createElement(MenuLinkWithChildren, { isOpen: menuLevel.level1 === menuItem.id, onClick: menuClickMain(menuItem), "data-testid": "menu-button-with-children", href: linkUrl },
149
- React__default.createElement("span", null, menuItem.titles[lang]),
146
+ return (React__default.createElement(DesktopMenuItem, { isActive: isSelected(currentUrl, linkUrl), "data-testid": `desktop-nav-item-level-1-${currentLevel + 1}` },
147
+ React__default.createElement(MenuLinkWithChildren, { isOpen: menuLevel.level1 === menuItem.id, onClick: menuClickMain(menuItem), "data-testid": "menu-button-with-children", "aria-current": isSelected(currentUrl, linkUrl) ? 'true' : undefined, "aria-expanded": menuLevel.level1 === menuItem.id, href: linkUrl },
148
+ React__default.createElement("span", { id: `menu-id-${menuItem.id}` }, menuItem.titles[lang]),
150
149
  React__default.createElement(ChevronRight, { size: "1rem" })),
151
150
  React__default.createElement(SubMenuLevel1, { menuItem: menuItem })));
152
151
  };
@@ -166,10 +165,10 @@ const DesktopMenu = () => {
166
165
  return (React__default.createElement(MenuList, { "aria-hidden": false, ref: ref, "data-testid": "desktop-nav-menu-ul" }, mainNavigation.map((navElement, index) => {
167
166
  const displaySubMenu = !navElement.pageIsLinkInDesktopNavigation && !!navElement.pages.length;
168
167
  if (displaySubMenu) {
169
- return (React__default.createElement(MenuItemWithChildren, { menuItem: navElement, key: navElement.id, currentLevel: index }));
168
+ return (React__default.createElement(MenuItemWithChildren, { currentLevel: index, key: navElement.id, menuItem: navElement }));
170
169
  }
171
- return (React__default.createElement(DesktopMenuItem, { key: navElement.id, "data-testid": `desktop-nav-item-level-1-${index + 1}`, isActive: isSelected(currentUrl, navElement.urls[lang]) },
172
- React__default.createElement(LinkModifier, { menuItem: navElement, tabIndex: false })));
170
+ return (React__default.createElement(DesktopMenuItem, { "data-testid": `desktop-nav-item-level-1-${index + 1}`, isActive: isSelected(currentUrl, navElement.urls[lang]), key: navElement.id },
171
+ React__default.createElement(LinkModifier, { menuItem: navElement, disabledTabIndex: false })));
173
172
  })));
174
173
  };
175
174
 
@@ -4,7 +4,6 @@ import styled from '../../../themes/styled.js';
4
4
  import theme from '../../../themes/theme.js';
5
5
  import { navIconSize } from '../../../themes/themeComponents/navigation.js';
6
6
  import { getMultipliedSize } from '../../../utils/styledUtils.js';
7
- import Icon from '../../Icon/Icon.js';
8
7
  import NavContext from '../context/NavContext.js';
9
8
  import { MenuLink } from '../globalNavStyles.js';
10
9
  import MainNavTooltipMenu from './MainNavTooltipMenu.js';
@@ -24,7 +23,7 @@ const LanguageSelector = ({ currentLanguage, languagesObject, languageSelectorLa
24
23
  return null;
25
24
  }
26
25
  return (React__default.createElement(MainNavTooltipMenu, { ariaLabel: languageSelectorLabel, closeWhenTagClicked: ['a'], contentComponent: LngComponent, contentWidth: "5rem", globalStateString: "lang", tooltipRight: isMobileMenu ? '13.8rem' : '11.8rem', zIndex: navZIndex + 1 },
27
- React__default.createElement(Icon, { icon: Globe, size: navIconSize }),
26
+ React__default.createElement(Globe, { size: navIconSize }),
28
27
  React__default.createElement("span", { "data-testid": "header-lang-label" }, currentLanguage.toUpperCase())));
29
28
  };
30
29
 
@@ -2,9 +2,9 @@ import React from 'react';
2
2
  import type { MenuLevelItem } from '../types/globalNavProps';
3
3
  interface LinkModifierProps {
4
4
  menuItem: MenuLevelItem;
5
- tabIndex: boolean;
5
+ disabledTabIndex?: boolean;
6
6
  showIcon?: boolean;
7
7
  }
8
8
  export declare const isSelected: (currentUrl: string, linkUrl: string, exactMatch?: boolean) => boolean;
9
- declare const LinkModifier: ({ menuItem, tabIndex, showIcon }: LinkModifierProps) => React.JSX.Element;
9
+ declare const LinkModifier: ({ menuItem, disabledTabIndex, showIcon }: LinkModifierProps) => React.JSX.Element;
10
10
  export default LinkModifier;
@@ -1,7 +1,5 @@
1
1
  import { Open, ArrowRight } from '@dnanpm/icons';
2
2
  import React__default, { useContext } from 'react';
3
- import theme from '../../../themes/theme.js';
4
- import Icon from '../../Icon/Icon.js';
5
3
  import NavContext from '../context/NavContext.js';
6
4
  import { MenuLink } from '../globalNavStyles.js';
7
5
 
@@ -16,12 +14,12 @@ const isSelected = (currentUrl, linkUrl, exactMatch = false) => {
16
14
  return false;
17
15
  };
18
16
  const isMenuItemLinkAbsolute = (menuItemLink) => menuItemLink.includes('http');
19
- const LinkModifier = ({ menuItem, tabIndex, showIcon }) => {
20
- const { lang, nextJSLinkComponent, resetMenuEvents } = useContext(NavContext);
21
- const menuItemLink = menuItem.urls[lang] || '';
17
+ const LinkModifier = ({ menuItem, disabledTabIndex, showIcon }) => {
18
+ const { lang, currentUrl, nextJSLinkComponent, resetMenuEvents } = useContext(NavContext);
19
+ const menuItemLink = menuItem.urls[lang];
22
20
  const isExternalLink = menuItem.target === '_blank';
23
- const MenuLinkComponent = (React__default.createElement(MenuLink, { href: menuItemLink, id: menuItem.id, onClick: resetMenuEvents, tabIndex: tabIndex ? -1 : undefined, target: isExternalLink ? '_blank' : '_self' },
24
- showIcon && (React__default.createElement(Icon, { icon: isExternalLink ? Open : ArrowRight, size: "1.25rem", color: theme.color.default.pink })),
21
+ const MenuLinkComponent = (React__default.createElement(MenuLink, { "aria-current": isSelected(currentUrl, menuItemLink) ? 'page' : undefined, href: menuItemLink, id: menuItem.id, onClick: resetMenuEvents, tabIndex: disabledTabIndex ? -1 : undefined, target: isExternalLink ? '_blank' : '_self' },
22
+ showIcon && (isExternalLink ? React__default.createElement(Open, null) : React__default.createElement(ArrowRight, null)),
25
23
  React__default.createElement("span", null, menuItem.titles[lang])));
26
24
  if (nextJSLinkComponent && !isMenuItemLinkAbsolute(menuItemLink)) {
27
25
  const NextJSLinkComponent = nextJSLinkComponent;
@@ -1,14 +1,12 @@
1
1
  import { User } from '@dnanpm/icons';
2
2
  import React__default, { useContext } from 'react';
3
- import { navIconSize } from '../../../themes/themeComponents/navigation.js';
4
- import Icon from '../../Icon/Icon.js';
5
3
  import NavContext from '../context/NavContext.js';
6
4
  import MainNavTooltipMenu from './MainNavTooltipMenu.js';
7
5
 
8
6
  const LoginTooltip = ({ isLogged, loginLabel }) => {
9
- const { navZIndex, isMobileMenu, loginComponent: LoginComponent } = useContext(NavContext);
10
- return (React__default.createElement(MainNavTooltipMenu, { ariaLabel: loginLabel, closeWhenTagClicked: ['a', 'button'], contentComponent: LoginComponent, globalStateString: "login", tooltipRight: isMobileMenu ? '3rem' : '1rem', zIndex: navZIndex + 1 }, !isLogged ? (loginLabel) : (React__default.createElement(React__default.Fragment, null,
11
- React__default.createElement(Icon, { icon: User, size: navIconSize }),
7
+ const { navZIndex, isMobileMenu, loginComponent } = useContext(NavContext);
8
+ return (React__default.createElement(MainNavTooltipMenu, { ariaLabel: loginLabel, closeWhenTagClicked: ['a', 'button'], contentComponent: loginComponent, globalStateString: "login", tooltipRight: isMobileMenu ? '3rem' : '1rem', zIndex: navZIndex + 1 }, !isLogged ? (loginLabel) : (React__default.createElement(React__default.Fragment, null,
9
+ React__default.createElement(User, null),
12
10
  React__default.createElement("span", { "data-testid": "header-login-label" }, loginLabel)))));
13
11
  };
14
12
 
@@ -20,19 +20,19 @@ const IconContainer = styled.div `
20
20
  min-width: ${IconContainerMinWidth};
21
21
  transition: color 0.2s ease-in-out;
22
22
 
23
- > span.dnasg-icon > svg {
23
+ > svg {
24
24
  display: block;
25
25
  height: ${navIconSize};
26
26
  width: ${navIconSize};
27
27
  }
28
- > span.dnasg-icon > svg,
29
- > span.dnasg-icon + span {
28
+ > svg,
29
+ + span {
30
30
  color: ${p => (p.isActive ? theme.color.text.pink : 'inherit')};
31
31
  }
32
32
 
33
33
  @media (min-width: ${p => p.collapseSize + 1}px) {
34
34
  min-width: ${getMultipliedSize(theme.base.baseWidth, 6)};
35
- > span.dnasg-icon + span {
35
+ + span {
36
36
  display: block;
37
37
  }
38
38
  }
@@ -103,7 +103,7 @@ const MainNavTooltipMenu = (_a) => {
103
103
  }
104
104
  });
105
105
  return (React__default.createElement(IconContainer, { "data-testid": `header-${globalStateKey}-container`, collapseSize: collapseSize, ref: ref },
106
- globalStateKey === 'login' && !isLoggedIn ? (React__default.createElement(ButtonPrimary, { onClick: ContentComponent ? toggleState : undefined, small: true }, children)) : (React__default.createElement(TooltipWrapper, { "aria-label": ariaLabel, isLoggedIn: isLoginItemAndLoggedIn, collapseSize: collapseSize, isHighlighted: tooltipItems[globalStateKey] || isLoginItemAndLoggedIn, onClick: props.onCartButtonClick || (ContentComponent ? toggleState : undefined) }, children)),
106
+ 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
107
  tooltipItems[globalStateKey] && ContentComponent && (React__default.createElement(React__default.Fragment, null,
108
108
  React__default.createElement(Caret, { zIndex: zIndex, collapseSize: collapseSize }),
109
109
  React__default.createElement(Tooltip, { zIndex: zIndex, tooltipRight: tooltipRight, contentWidth: contentWidth, collapseSize: collapseSize, fullWidthDesktop: fullWidthDesktop, fullWidthBreakpoint: fullWidthBreakpoint },
@@ -20,7 +20,7 @@ const TooltipWrapper = styled.button `
20
20
  border-left: ${p => (p.isLoggedIn ? `2px solid ${theme.color.line.L03}` : 'none')};
21
21
  &:active,
22
22
  &:focus {
23
- span.dnasg-icon > svg,
23
+ > svg,
24
24
  > span {
25
25
  color: ${theme.color.text.pink};
26
26
  }
@@ -30,12 +30,12 @@ const TooltipWrapper = styled.button `
30
30
  border-radius: ${theme.radius.s};
31
31
  box-shadow: 0px 0px 0px 2px ${theme.color.focus.light},
32
32
  0px 0px 0px 4px ${theme.color.focus.dark};
33
- span.dnasg-icon > svg,
33
+ > svg,
34
34
  > span {
35
35
  color: ${theme.color.text.black};
36
36
  }
37
37
  }
38
- span.dnasg-icon > svg {
38
+ > svg {
39
39
  align-content: center;
40
40
  display: flex;
41
41
  margin: 0 auto;
@@ -44,7 +44,7 @@ const TooltipWrapper = styled.button `
44
44
  width: 1.625em;
45
45
  }
46
46
  }
47
- span.dnasg-icon + span {
47
+ > span {
48
48
  display: none;
49
49
  @media (min-width: ${p => p.collapseSize + 1}px) {
50
50
  font-size: ${theme.fontSize.xs};
@@ -2,7 +2,8 @@ import React from 'react';
2
2
  import type { MainHeaderNavigationProps } from '../MainHeaderNavigation';
3
3
  interface MinicartTooltipProps extends Pick<MainHeaderNavigationProps, 'onCartButtonClick'> {
4
4
  minicartAmount: number;
5
- minicartLabel?: string;
5
+ minicartLabel: string;
6
+ minicartAmountLabel: string;
6
7
  }
7
- declare const MinicartTooltip: ({ minicartAmount, minicartLabel, ...props }: MinicartTooltipProps) => React.JSX.Element;
8
+ declare const MinicartTooltip: ({ minicartAmount, minicartAmountLabel, minicartLabel, onCartButtonClick, }: MinicartTooltipProps) => React.JSX.Element;
8
9
  export default MinicartTooltip;
@@ -1,20 +1,16 @@
1
- import { __rest } from 'tslib';
2
1
  import { Cart } from '@dnanpm/icons';
3
2
  import React__default, { useContext } from 'react';
4
3
  import theme from '../../../themes/theme.js';
5
- import { navIconSize } from '../../../themes/themeComponents/navigation.js';
6
- import Icon from '../../Icon/Icon.js';
7
4
  import NotificationBadge from '../../NotificationBadge/NotificationBadge.js';
8
5
  import NavContext from '../context/NavContext.js';
9
6
  import MainNavTooltipMenu from './MainNavTooltipMenu.js';
10
7
 
11
- const MinicartTooltip = (_a) => {
12
- var { minicartAmount, minicartLabel } = _a, props = __rest(_a, ["minicartAmount", "minicartLabel"]);
13
- const { navZIndex, minicartComponent: MinicartComponent } = useContext(NavContext);
14
- return (React__default.createElement(MainNavTooltipMenu, { ariaLabel: minicartLabel, closeWhenTagClicked: ['a', 'button'], onCartButtonClick: props.onCartButtonClick, contentComponent: MinicartComponent, contentWidth: "35rem", fullWidthBreakpoint: theme.breakpoints.md, globalStateString: "minicart", tooltipRight: "5rem", zIndex: navZIndex + 1 },
15
- React__default.createElement(Icon, { icon: Cart, size: navIconSize }),
16
- React__default.createElement("span", null, minicartLabel),
17
- minicartAmount > 0 && (React__default.createElement(NotificationBadge, { top: "-5px", right: "5px", "data-testid": "header-minicart-amount" }, minicartAmount))));
8
+ const MinicartTooltip = ({ minicartAmount, minicartAmountLabel, minicartLabel, onCartButtonClick, }) => {
9
+ const { navZIndex, minicartComponent } = useContext(NavContext);
10
+ return (React__default.createElement(MainNavTooltipMenu, { ariaLabel: minicartLabel, closeWhenTagClicked: ['a', 'button'], onCartButtonClick: onCartButtonClick, contentComponent: minicartComponent, contentWidth: "35rem", fullWidthBreakpoint: theme.breakpoints.md, globalStateString: "minicart", tooltipRight: "5rem", zIndex: navZIndex + 1 },
11
+ React__default.createElement(Cart, null),
12
+ React__default.createElement("span", { "aria-hidden": true }, minicartLabel),
13
+ minicartAmount > 0 && (React__default.createElement(NotificationBadge, { "data-testid": "header-minicart-amount", right: "5px", top: "-5px", visuallyHiddenText: minicartAmountLabel }, minicartAmount))));
18
14
  };
19
15
 
20
16
  export { MinicartTooltip as default };
@@ -124,7 +124,7 @@ const CreateSubMenuItem = ({ menuItem, currentLevel, itemIndex }) => {
124
124
  menuItem.titles[lang],
125
125
  React__default.createElement(ChevronRight, { color: theme.color.default.pink })));
126
126
  }
127
- return renderMenuItem(React__default.createElement(LinkModifier, { menuItem: menuItem, tabIndex: tabNavigationDisabled }));
127
+ return renderMenuItem(React__default.createElement(LinkModifier, { menuItem: menuItem, disabledTabIndex: tabNavigationDisabled }));
128
128
  };
129
129
  const SubMenuMobile = ({ currentLevel, menuItem }) => {
130
130
  const featuredItems = menuItem.pages.filter(subMenuItem => !subMenuItem.pages.length && currentLevel === 2);
@@ -136,7 +136,7 @@ const SubMenuMobile = ({ currentLevel, menuItem }) => {
136
136
  }
137
137
  return (React__default.createElement(React__default.Fragment, null,
138
138
  currentLevel > 1 && React__default.createElement(MenuItemBackLink, { currentLevel: currentLevel }),
139
- featuredItems.length > 0 && (React__default.createElement(FeaturedBlock, { collapseSize: collapseSize }, featuredItems.map(subMenuItem => (React__default.createElement(LinkModifier, { key: subMenuItem.id, menuItem: subMenuItem, showIcon: true, tabIndex: tabNavigationDisabled }))))),
139
+ featuredItems.length > 0 && (React__default.createElement(FeaturedBlock, { collapseSize: collapseSize }, featuredItems.map(subMenuItem => (React__default.createElement(LinkModifier, { key: subMenuItem.id, menuItem: subMenuItem, showIcon: true, disabledTabIndex: tabNavigationDisabled }))))),
140
140
  menuItem.pages
141
141
  .filter(subMenuItem => !featuredItems.includes(subMenuItem))
142
142
  .map((subMenuItem, index) => (React__default.createElement(CreateSubMenuItem, { currentLevel: currentLevel, itemIndex: index, key: subMenuItem.id, menuItem: subMenuItem })))));
@@ -147,7 +147,7 @@ const NavigationMenuMobile = () => {
147
147
  if (!(mainNavigation === null || mainNavigation === void 0 ? void 0 : mainNavigation.pages.length)) {
148
148
  return null;
149
149
  }
150
- const renderMenuList = (scrollPosition, level, menuItem) => (React__default.createElement(MenuList, { role: "menu", "aria-hidden": menuLevel.scrollPosition !== scrollPosition, "aria-disabled": menuLevel.scrollPosition !== scrollPosition, "data-testid": `mobile-nav-menu-level-${level}`, isInView: menuLevel.scrollPosition === scrollPosition },
150
+ const renderMenuList = (scrollPosition, level, menuItem) => (React__default.createElement(MenuList, { "aria-hidden": menuLevel.scrollPosition !== scrollPosition, "aria-disabled": menuLevel.scrollPosition !== scrollPosition, "data-testid": `mobile-nav-menu-level-${level}`, isInView: menuLevel.scrollPosition === scrollPosition },
151
151
  React__default.createElement(SubMenuMobile, { currentLevel: level, menuItem: menuItem })));
152
152
  return (React__default.createElement(React__default.Fragment, null,
153
153
  renderMenuList(0, 1, mainNavigation),
@@ -1,14 +1,12 @@
1
1
  import { Search } from '@dnanpm/icons';
2
2
  import React__default, { useContext } from 'react';
3
- import { navIconSize } from '../../../themes/themeComponents/navigation.js';
4
- import Icon from '../../Icon/Icon.js';
5
3
  import NavContext from '../context/NavContext.js';
6
4
  import MainNavTooltipMenu from './MainNavTooltipMenu.js';
7
5
 
8
6
  const PageSearch = ({ searchLabel }) => {
9
- const { navZIndex, searchComponent: SearchComponent } = useContext(NavContext);
10
- return (React__default.createElement(MainNavTooltipMenu, { ariaLabel: searchLabel, closeWhenTagClicked: ['a'], contentComponent: SearchComponent, contentWidth: "100%", "data-testid": "header-search-container", fullWidthDesktop: true, globalStateString: "search", tooltipRight: "0", zIndex: navZIndex + 1 },
11
- React__default.createElement(Icon, { icon: Search, size: navIconSize }),
7
+ const { navZIndex, 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", zIndex: navZIndex + 1 },
9
+ React__default.createElement(Search, null),
12
10
  React__default.createElement("span", null, searchLabel)));
13
11
  };
14
12