From bbfd2df393e60382fec8a1b76208477fb9bb9de7 Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Wed, 23 Oct 2024 21:16:23 +0200 Subject: [PATCH 01/62] poc desktop large menu --- src/navigation-bar.css.ts | 104 ++++++++++++++++++++- src/navigation-bar.tsx | 192 +++++++++++++++++++++++++++++++++----- 2 files changed, 271 insertions(+), 25 deletions(-) diff --git a/src/navigation-bar.css.ts b/src/navigation-bar.css.ts index 7064f8945..7aa94be4c 100644 --- a/src/navigation-bar.css.ts +++ b/src/navigation-bar.css.ts @@ -2,7 +2,7 @@ import {style, styleVariants} from '@vanilla-extract/css'; import {sprinkles} from './sprinkles.css'; import {NAVBAR_HEIGHT_DESKTOP, NAVBAR_HEIGHT_DESKTOP_LARGE, NAVBAR_HEIGHT_MOBILE} from './theme'; import * as mq from './media-queries.css'; -import {vars as colorVars} from './skins/skin-contract.css'; +import {vars as colorVars, vars} from './skins/skin-contract.css'; const NAVBAR_ZINDEX = 25; @@ -112,6 +112,33 @@ export const navbarBorderColorVariants = styleVariants({ ], }); +export const firstSection = style({}); +export const lastSection = style({}); + +export const sectionContainer = style([ + sprinkles({position: 'relative', display: 'flex'}), + { + '::after': { + content: '', + position: 'absolute', + top: 0, + bottom: 0, + left: 0, + right: 0, + }, + + selectors: { + // Add extra width on the left/right of interactive area so that we cover the space between sections + [`&:not(${firstSection}):after`]: { + left: -16, + }, + [`&:not(${lastSection}):after`]: { + right: -16, + }, + }, + }, +]); + export const section = style([ sprinkles({ height: NAVBAR_HEIGHT_DESKTOP, @@ -120,8 +147,10 @@ export const section = style([ paddingX: 8, border: 'none', background: 'transparent', + position: 'relative', }), { + zIndex: 1, borderBottom: `2px solid transparent`, transition: 'border-color 300ms ease-in-out', }, @@ -313,3 +342,76 @@ export const lineHeightFix = style({ // use display inline and other components like Badge use inline-block. lineHeight: 0, }); + +export const desktopMenuTransitionClasses = { + enter: style({ + gridTemplateRows: '0fr', + }), + enterActive: style({ + gridTemplateRows: '1fr', + transition: 'grid-template-rows 0.4s cubic-bezier(0.65, 0, 0.35, 1)', + '@media': { + ['(prefers-reduced-motion)']: { + transition: 'none', + }, + }, + }), + exit: style({ + gridTemplateRows: '1fr', + }), + exitActive: style({ + gridTemplateRows: '0fr', + transition: 'grid-template-rows 0.4s cubic-bezier(0.65, 0, 0.35, 1)', + '@media': { + ['(prefers-reduced-motion)']: { + transition: 'none', + }, + }, + }), +}; + +export const desktopMenuWrapper = style([ + sprinkles({ + position: 'fixed', + width: '100%', + }), + { + display: 'grid', + }, +]); + +export const desktopMenuContainer = style([ + sprinkles({ + overflow: 'hidden', + background: vars.colors.backgroundContainer, + }), + { + boxShadow: '0px 2px 4px rgba(0,0,0,0.2)', + }, +]); + +export const desktopMenu = style([ + sprinkles({ + paddingX: 72, + paddingY: 40, + overflow: 'auto', + position: 'relative', + }), + { + transform: 'translateY(-16px)', + opacity: 0, + '@media': { + ['(prefers-reduced-motion)']: { + transition: 'none', + }, + }, + }, +]); + +export const desktopMenuColumn = style({ + minWidth: 184, +}); + +export const desktopMenuColumnItem = style({ + color: vars.colors.textPrimary, +}); diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index 709a71b4c..8a01a01ca 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -1,6 +1,6 @@ 'use client'; import * as React from 'react'; -import {Transition} from 'react-transition-group'; +import {CSSTransition} from 'react-transition-group'; import classnames from 'classnames'; import ResponsiveLayout from './responsive-layout'; import Inline from './inline'; @@ -26,7 +26,10 @@ import Stack from './stack'; import Box from './box'; import {isRunningAcceptanceTest} from './utils/platform'; import * as tokens from './text-tokens'; +import {NAVBAR_HEIGHT_DESKTOP, NAVBAR_HEIGHT_DESKTOP_LARGE} from './theme'; +import TextLink from './text-link'; +import type {ExclusifyUnion} from './utils/utility-types'; import type {Variant} from './theme-variant-context'; import type {TouchableProps} from './touchable'; import type {DataAttributes, HeadingType} from './utils/types'; @@ -45,6 +48,7 @@ const BurgerMenuIcon = ({isOpen}: {isOpen: boolean}) => { }; const BURGER_MENU_ANIMATION_DURATION_MS = 300; +const DESKTOP_MENU_ANIMATION_DURATION_MS = 400; type HeaderProps = { children: React.ReactNode; @@ -113,10 +117,23 @@ const NavigationBarContentContainer = ({ ); }; -type MainNavigationBarSection = - | {href: string; to?: undefined; onPress?: undefined; title: string} - | {to: string; href?: undefined; onPress?: undefined; title: string} - | {onPress: () => void; to?: undefined; href?: undefined; title: string}; +type InteractiveProps = ExclusifyUnion<{href: string} | {to: string} | {onPress: () => void}>; + +type SectionColumn = { + title: string; + items: ReadonlyArray<{name: string} & InteractiveProps>; +}; + +type SectionMenu = { + columns?: ReadonlyArray; + extra?: React.ReactElement; + small?: boolean; +}; + +type MainNavigationBarSection = { + title: string; + menu?: SectionMenu; +} & InteractiveProps; type MainNavigationBarPropsBase = { sections?: ReadonlyArray; @@ -154,36 +171,162 @@ export const MainNavigationBar = ({ const {isTabletOrSmaller} = useScreenSize(); const setModalState = useSetModalState(); const logoElement = logo || ; + const hasBottomSections = large && sections.length > 0; + + const menuRef = React.useRef(null); + const [isMenuHovered, setIsMenuHovered] = React.useState(false); + const [hoveredSection, setHoveredSection] = React.useState(-1); + const [isDesktopMenuOpen, setIsDesktopMenuOpen] = React.useState(false); + const [desktopMenuOpenedSection, setDesktopMenuOpenedSection] = React.useState(-1); + + React.useEffect(() => { + // Close desktop menu when scrolling in the page + const handleScroll = () => { + if (!isTabletOrSmaller) setIsDesktopMenuOpen(false); + }; + document.addEventListener('scroll', handleScroll); + return () => { + document.removeEventListener('scroll', handleScroll); + }; + }, [isTabletOrSmaller]); + + React.useEffect(() => { + if (!isMenuHovered && hoveredSection === -1) { + setIsDesktopMenuOpen(false); + } else if (hoveredSection !== -1) { + setDesktopMenuOpenedSection(hoveredSection); + setIsDesktopMenuOpen(true); + } + }, [isMenuHovered, hoveredSection]); const renderDesktopSections = () => { return ( ); }; - const hasBottomSections = large && sections.length > 0; + const renderDesktopMenu = () => { + const topSpace = hasBottomSections ? NAVBAR_HEIGHT_DESKTOP_LARGE : NAVBAR_HEIGHT_DESKTOP; + // TODO: verify this + const bottomSpace = 32; + + return ( +
+ + setDesktopMenuOpenedSection(-1)} + > + {(transitionStatus) => { + return ( +
setIsMenuHovered(true)} + onMouseLeave={() => setIsMenuHovered(false)} + ref={menuRef} + style={{ + top: hasBottomSections + ? NAVBAR_HEIGHT_DESKTOP_LARGE + : NAVBAR_HEIGHT_DESKTOP, + }} + className={styles.desktopMenuWrapper} + > +
+
+ + + {sections[desktopMenuOpenedSection]?.menu?.columns?.map( + (column) => ( + + + {column.title} + + + + {column.items.map( + ({name, ...touchableProps}) => ( + + {name} + + ) + )} + + + ) + )} + + {sections[desktopMenuOpenedSection]?.menu?.extra} + +
+
+
+ ); + }} +
+
+
+ ); + }; const openMenu = () => { setIsMenuOpen(true); @@ -239,6 +382,7 @@ export const MainNavigationBar = ({ {topFixed &&
} + {renderDesktopMenu()} ); @@ -254,7 +398,7 @@ export const MainNavigationBar = ({ {showBurger && ( - { setMenuTransitionState('opening'); }} @@ -308,7 +452,7 @@ export const MainNavigationBar = ({ )} - + )} From 06ba8466bf743b8e6e01e80a50d07854593a6c7d Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Wed, 23 Oct 2024 21:20:20 +0200 Subject: [PATCH 02/62] cleanup --- src/navigation-bar.css.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/navigation-bar.css.ts b/src/navigation-bar.css.ts index 7aa94be4c..0fb4de250 100644 --- a/src/navigation-bar.css.ts +++ b/src/navigation-bar.css.ts @@ -2,7 +2,7 @@ import {style, styleVariants} from '@vanilla-extract/css'; import {sprinkles} from './sprinkles.css'; import {NAVBAR_HEIGHT_DESKTOP, NAVBAR_HEIGHT_DESKTOP_LARGE, NAVBAR_HEIGHT_MOBILE} from './theme'; import * as mq from './media-queries.css'; -import {vars as colorVars, vars} from './skins/skin-contract.css'; +import {vars as colorVars} from './skins/skin-contract.css'; const NAVBAR_ZINDEX = 25; @@ -383,7 +383,7 @@ export const desktopMenuWrapper = style([ export const desktopMenuContainer = style([ sprinkles({ overflow: 'hidden', - background: vars.colors.backgroundContainer, + background: colorVars.colors.backgroundContainer, }), { boxShadow: '0px 2px 4px rgba(0,0,0,0.2)', @@ -413,5 +413,5 @@ export const desktopMenuColumn = style({ }); export const desktopMenuColumnItem = style({ - color: vars.colors.textPrimary, + color: colorVars.colors.textPrimary, }); From a1b75d5b99a585be9142c5a729d0bab889692aa2 Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Fri, 25 Oct 2024 11:05:46 +0200 Subject: [PATCH 03/62] fixes and code updats --- src/navigation-bar.css.ts | 74 +++++------- src/navigation-bar.tsx | 240 ++++++++++++++++++++++---------------- 2 files changed, 171 insertions(+), 143 deletions(-) diff --git a/src/navigation-bar.css.ts b/src/navigation-bar.css.ts index 0fb4de250..4a4ad5109 100644 --- a/src/navigation-bar.css.ts +++ b/src/navigation-bar.css.ts @@ -250,21 +250,32 @@ export const spacerLarge = style([ spacerMobile, ]); -export const burgerMenuTransition = styleVariants({ - entering: { +export const burgerMenuTransition = { + enter: style({ + transform: 'translate(-100vw)', + }), + enterActive: style({ transform: 'translate(0vw)', - }, - entered: { + transition: `transform ${BURGER_MENU_ANIMATION_DURATION_MS}ms ease-out`, + '@media': { + ['(prefers-reduced-motion)']: { + transition: 'none', + }, + }, + }), + exit: style({ transform: 'translate(0vw)', - }, - exiting: { - transform: 'translate(-100vw)', - }, - exited: { + }), + exitActive: style({ transform: 'translate(-100vw)', - }, - unmounted: {}, -}); + transition: `transform ${BURGER_MENU_ANIMATION_DURATION_MS}ms ease-out`, + '@media': { + ['(prefers-reduced-motion)']: { + transition: 'none', + }, + }, + }), +}; export const mainNavbarContent = style({ display: 'flex', @@ -306,7 +317,6 @@ export const burgerMenu = style([ { height: `calc(100vh - ${NAVBAR_HEIGHT_MOBILE}px)`, overflowY: 'auto', - transition: `transform ${BURGER_MENU_ANIMATION_DURATION_MS}ms ease-out`, }, ]); @@ -343,50 +353,25 @@ export const lineHeightFix = style({ lineHeight: 0, }); -export const desktopMenuTransitionClasses = { - enter: style({ - gridTemplateRows: '0fr', - }), - enterActive: style({ - gridTemplateRows: '1fr', - transition: 'grid-template-rows 0.4s cubic-bezier(0.65, 0, 0.35, 1)', - '@media': { - ['(prefers-reduced-motion)']: { - transition: 'none', - }, - }, - }), - exit: style({ - gridTemplateRows: '1fr', - }), - exitActive: style({ - gridTemplateRows: '0fr', - transition: 'grid-template-rows 0.4s cubic-bezier(0.65, 0, 0.35, 1)', - '@media': { - ['(prefers-reduced-motion)']: { - transition: 'none', - }, - }, - }), -}; - export const desktopMenuWrapper = style([ sprinkles({ position: 'fixed', width: '100%', }), - { - display: 'grid', - }, ]); export const desktopMenuContainer = style([ sprinkles({ - overflow: 'hidden', background: colorVars.colors.backgroundContainer, }), { + transition: 'height 0.4s cubic-bezier(0.65, 0, 0.35, 1)', boxShadow: '0px 2px 4px rgba(0,0,0,0.2)', + '@media': { + ['(prefers-reduced-motion)']: { + transition: 'none', + }, + }, }, ]); @@ -394,7 +379,6 @@ export const desktopMenu = style([ sprinkles({ paddingX: 72, paddingY: 40, - overflow: 'auto', position: 'relative', }), { diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index 8a01a01ca..4c375c8ee 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -2,7 +2,7 @@ import * as React from 'react'; import {CSSTransition} from 'react-transition-group'; import classnames from 'classnames'; -import ResponsiveLayout from './responsive-layout'; +import ResponsiveLayout, {ResetResponsiveLayout} from './responsive-layout'; import Inline from './inline'; import Touchable, {BaseTouchable} from './touchable'; import {Text2, Text3} from './text'; @@ -11,8 +11,7 @@ import IconMenuRegular from './generated/mistica-icons/icon-menu-regular'; import IconCloseRegular from './generated/mistica-icons/icon-close-regular'; import IconChevronLeftRegular from './generated/mistica-icons/icon-chevron-left-regular'; import {IconButton} from './icon-button'; -import NegativeBox from './negative-box'; -import {Row, RowList} from './list'; +import {RowList} from './list'; import {ThemeVariant, useIsInverseOrMediaVariant} from './theme-variant-context'; import FocusTrap from './focus-trap'; import {Portal} from './portal'; @@ -34,6 +33,12 @@ import type {Variant} from './theme-variant-context'; import type {TouchableProps} from './touchable'; import type {DataAttributes, HeadingType} from './utils/types'; +const supportsCssMin = () => { + const element = document.createElement('div'); + element.style.height = 'min(2px, 3px)'; + return element.style.height === 'calc(2px)'; +}; + const BurgerMenuIcon = ({isOpen}: {isOpen: boolean}) => { return (
@@ -55,7 +60,7 @@ type HeaderProps = { topFixed?: boolean; variant?: Variant; withBorder?: boolean; - isMenuOpen?: boolean; + isBurgerMenuOpen?: boolean; dataAttributes?: DataAttributes; isBottomRow?: boolean; }; @@ -64,7 +69,7 @@ const Header = ({ children, topFixed, withBorder, - isMenuOpen, + isBurgerMenuOpen, variant = 'default', dataAttributes, }: HeaderProps) => { @@ -73,7 +78,7 @@ const Header = ({ const getBorderClass = () => { const inverse = variant === 'inverse' && !isDarkMode; if (inverse || !withBorder) return styles.navbarBorderColorVariants.noBorder; - if (isMenuOpen) return styles.navbarBorderColorVariants.menuOpen; + if (isBurgerMenuOpen) return styles.navbarBorderColorVariants.menuOpen; return styles.navbarBorderColorVariants.default; }; @@ -119,9 +124,11 @@ const NavigationBarContentContainer = ({ type InteractiveProps = ExclusifyUnion<{href: string} | {to: string} | {onPress: () => void}>; +type SectionItem = {title: string} & InteractiveProps; + type SectionColumn = { title: string; - items: ReadonlyArray<{name: string} & InteractiveProps>; + items: ReadonlyArray; }; type SectionMenu = { @@ -149,8 +156,45 @@ type MainNavigationBarPropsBase = { }; type MainNavigationBarProps = MainNavigationBarPropsBase; +type BurgerMenuTransitionState = 'closed' | 'open'; + +const MainNavigationBarBurgerMenu = ({ + sections, + extra, + closeMenu, +}: { + sections: ReadonlyArray; + extra: React.ReactNode; + closeMenu: () => void; +}) => { + const renderSectionContent = (items: ReadonlyArray | undefined, extra: React.ReactNode) => { + // TODO: implement + console.log(items, extra); + return undefined; + }; + + const renderSection = (section: MainNavigationBarSection, index: number) => { + // TODO: implement + console.log( + section, + index, + closeMenu, + renderSectionContent(section.menu?.columns?.[0].items, section.menu?.extra) + ); + return undefined; + }; -type MenuTransitionState = 'closed' | 'opening' | 'open' | 'closing'; + return ( + + + + {sections.map((section, index) => renderSection(section, index))} + + {extra && {extra}} + + + ); +}; export const MainNavigationBar = ({ sections = [], @@ -164,20 +208,25 @@ export const MainNavigationBar = ({ large = false, }: MainNavigationBarProps): JSX.Element => { const {texts, isDarkMode, t} = useTheme(); - const [isMenuOpen, setIsMenuOpen] = React.useState(false); - const [menuTransitionState, setMenuTransitionState] = React.useState('closed'); const menuId = React.useId(); - const shadowAlpha = isDarkMode ? 1 : 0.2; const {isTabletOrSmaller} = useScreenSize(); - const setModalState = useSetModalState(); const logoElement = logo || ; const hasBottomSections = large && sections.length > 0; - const menuRef = React.useRef(null); - const [isMenuHovered, setIsMenuHovered] = React.useState(false); - const [hoveredSection, setHoveredSection] = React.useState(-1); + const burgerMenuRef = React.useRef(null); + const [isBurgerMenuOpen, setIsBurgerMenuOpen] = React.useState(false); + const [burgerMenuTransitionState, setBurgerMenuTransitionState] = + React.useState('closed'); + const setModalState = useSetModalState(); + const shadowAlpha = isDarkMode ? 1 : 0.2; + + const desktopMenuRef = React.useRef(null); + const [isDesktopMenuHovered, setIsDesktopMenuHovered] = React.useState(false); + const [desktopHoveredSection, setDesktopHoveredSection] = React.useState(-1); const [isDesktopMenuOpen, setIsDesktopMenuOpen] = React.useState(false); const [desktopMenuOpenedSection, setDesktopMenuOpenedSection] = React.useState(-1); + const [desktopMenuHeight, setDesktopMenuHeight] = React.useState('0px'); + const [isDesktopMenuScrollable, setIsDesktopMenuScrollable] = React.useState(false); React.useEffect(() => { // Close desktop menu when scrolling in the page @@ -191,13 +240,13 @@ export const MainNavigationBar = ({ }, [isTabletOrSmaller]); React.useEffect(() => { - if (!isMenuHovered && hoveredSection === -1) { + if (!isDesktopMenuHovered && desktopHoveredSection === -1) { setIsDesktopMenuOpen(false); - } else if (hoveredSection !== -1) { - setDesktopMenuOpenedSection(hoveredSection); + } else if (desktopHoveredSection !== -1) { + setDesktopMenuOpenedSection(desktopHoveredSection); setIsDesktopMenuOpen(true); } - }, [isMenuHovered, hoveredSection]); + }, [isDesktopMenuHovered, desktopHoveredSection]); const renderDesktopSections = () => { return ( @@ -210,8 +259,8 @@ export const MainNavigationBar = ({ [styles.firstSection]: idx === 0, [styles.lastSection]: idx === sections.length - 1, })} - onMouseEnter={() => setHoveredSection(idx)} - onMouseLeave={() => setHoveredSection(-1)} + onMouseEnter={() => setDesktopHoveredSection(idx)} + onMouseLeave={() => setDesktopHoveredSection(-1)} > { + setIsDesktopMenuScrollable(false); + const id = setTimeout(() => setIsDesktopMenuScrollable(true), DESKTOP_MENU_ANIMATION_DURATION_MS); + return () => clearTimeout(id); + }, [desktopMenuOpenedSection]); + const renderDesktopMenu = () => { const topSpace = hasBottomSections ? NAVBAR_HEIGHT_DESKTOP_LARGE : NAVBAR_HEIGHT_DESKTOP; - // TODO: verify this - const bottomSpace = 32; + const bottomSpace = 40; return (
@@ -247,18 +302,18 @@ export const MainNavigationBar = ({ setIsDesktopMenuScrollable(false)} onExited={() => setDesktopMenuOpenedSection(-1)} > {(transitionStatus) => { return (
setIsMenuHovered(true)} - onMouseLeave={() => setIsMenuHovered(false)} - ref={menuRef} + onMouseEnter={() => setIsDesktopMenuHovered(true)} + onMouseLeave={() => setIsDesktopMenuHovered(false)} + ref={desktopMenuRef} style={{ top: hasBottomSections ? NAVBAR_HEIGHT_DESKTOP_LARGE @@ -266,11 +321,17 @@ export const MainNavigationBar = ({ }} className={styles.desktopMenuWrapper} > -
+
{ + if (el) { + // In old browsers, the speed of the menu height's animation will depend on the height of the content + // instead of the height of the container. + const value = supportsCssMin() + ? `min(${el.scrollHeight}px, calc(100vh - ${topSpace}px - ${bottomSpace}px))` + : `${el.scrollHeight}px`; + setDesktopMenuHeight(!isDesktopMenuOpen ? '0px' : value); + } + }} > {sections[desktopMenuOpenedSection]?.menu?.columns?.map( - (column) => ( + (column, columnIdx) => ( @@ -299,15 +371,20 @@ export const MainNavigationBar = ({ {column.items.map( - ({name, ...touchableProps}) => ( - - {name} - + ( + {title, ...touchableProps}, + itemIdx + ) => ( +
+ + {title} + +
) )}
@@ -329,16 +406,16 @@ export const MainNavigationBar = ({ }; const openMenu = () => { - setIsMenuOpen(true); + setIsBurgerMenuOpen(true); setModalState({isModalOpen: true}); }; const closeMenu = () => { - setIsMenuOpen(false); + setIsBurgerMenuOpen(false); setModalState({isModalOpen: false}); }; - const disableFocusTrap = menuTransitionState !== 'open'; + const disableFocusTrap = burgerMenuTransitionState !== 'open'; const showBurger = sections.length > 1; @@ -347,7 +424,7 @@ export const MainNavigationBar = ({
@@ -359,15 +436,15 @@ export const MainNavigationBar = ({ className={styles.burgerMenuButton} aria-live="polite" aria-label={ - isMenuOpen + isBurgerMenuOpen ? texts.closeNavigationMenu || t(tokens.closeNavigationMenu) : texts.openNavigationMenu || t(tokens.openNavigationMenu) } - aria-expanded={isMenuOpen} + aria-expanded={isBurgerMenuOpen} aria-controls={menuId} - onPress={isMenuOpen ? closeMenu : openMenu} + onPress={isBurgerMenuOpen ? closeMenu : openMenu} > - + )}
{logoElement}
@@ -399,59 +476,26 @@ export const MainNavigationBar = ({ { - setMenuTransitionState('opening'); - }} - onEntered={() => { - setMenuTransitionState('open'); - }} - onExiting={() => { - setMenuTransitionState('closing'); - }} - onExited={() => { - setMenuTransitionState('closed'); - }} - in={isMenuOpen} + onEntered={() => setBurgerMenuTransitionState('open')} + onExiting={() => setBurgerMenuTransitionState('closed')} + classNames={styles.burgerMenuTransition} + in={isBurgerMenuOpen} + nodeRef={burgerMenuRef} timeout={isRunningAcceptanceTest() ? 0 : BURGER_MENU_ANIMATION_DURATION_MS} unmountOnExit > - {(burgerMenuState) => ( - <> - {/* eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions */} - - - )} + From 4851682f9ff8aa79a1c354a4a8707200319ca778 Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Fri, 25 Oct 2024 11:41:56 +0200 Subject: [PATCH 04/62] fix horizontal padding --- src/navigation-bar.css.ts | 1 - src/navigation-bar.tsx | 68 +++++++++++++++++++++------------------ 2 files changed, 36 insertions(+), 33 deletions(-) diff --git a/src/navigation-bar.css.ts b/src/navigation-bar.css.ts index 4a4ad5109..2fd7430f6 100644 --- a/src/navigation-bar.css.ts +++ b/src/navigation-bar.css.ts @@ -377,7 +377,6 @@ export const desktopMenuContainer = style([ export const desktopMenu = style([ sprinkles({ - paddingX: 72, paddingY: 40, position: 'relative', }), diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index 4c375c8ee..6c220f4cb 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -329,33 +329,37 @@ export const MainNavigationBar = ({ overflow: isDesktopMenuScrollable ? 'auto' : 'hidden', }} > -
{ - if (el) { - // In old browsers, the speed of the menu height's animation will depend on the height of the content - // instead of the height of the container. - const value = supportsCssMin() - ? `min(${el.scrollHeight}px, calc(100vh - ${topSpace}px - ${bottomSpace}px))` - : `${el.scrollHeight}px`; - setDesktopMenuHeight(!isDesktopMenuOpen ? '0px' : value); - } - }} - > - - - {sections[desktopMenuOpenedSection]?.menu?.columns?.map( - (column, columnIdx) => ( + +
{ + if (el) { + // In old browsers, the speed of the menu height's animation will depend on the height of the content + // instead of the height of the container. + const value = supportsCssMin() + ? `min(${el.scrollHeight}px, calc(100vh - ${topSpace}px - ${bottomSpace}px))` + : `${el.scrollHeight}px`; + setDesktopMenuHeight( + !isDesktopMenuOpen ? '0px' : value + ); + } + }} + > + + + {sections[ + desktopMenuOpenedSection + ]?.menu?.columns?.map((column, columnIdx) => ( - ) - )} + ))} + + {sections[desktopMenuOpenedSection]?.menu?.extra} - {sections[desktopMenuOpenedSection]?.menu?.extra} - -
+
+
); From a75ea6fe5c66c7f2b500d53282f359e847cfe270 Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Fri, 25 Oct 2024 12:18:15 +0200 Subject: [PATCH 05/62] code cleanup --- src/navigation-bar.css.ts | 6 + src/navigation-bar.tsx | 302 +++++++++++++++++++------------------- 2 files changed, 157 insertions(+), 151 deletions(-) diff --git a/src/navigation-bar.css.ts b/src/navigation-bar.css.ts index 2fd7430f6..5f701bead 100644 --- a/src/navigation-bar.css.ts +++ b/src/navigation-bar.css.ts @@ -391,6 +391,12 @@ export const desktopMenu = style([ }, ]); +export const desktopMenuContentFadeIn = style({ + transform: 'translateY(0px)', + opacity: 1, + transition: 'opacity .8s cubic-bezier(0.33, 1, 0.68, 1), transform .8s cubic-bezier(0.33, 1, 0.68, 1)', +}); + export const desktopMenuColumn = style({ minWidth: 184, }); diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index 6c220f4cb..380a974cb 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -196,6 +196,152 @@ const MainNavigationBarBurgerMenu = ({ ); }; +const MainNavigationBarDesktopMenu = ({ + sections, + isLargeNavigationBar, + hoveredSection, +}: { + sections: ReadonlyArray; + isLargeNavigationBar: boolean; + hoveredSection: number; +}): JSX.Element => { + const {isTabletOrSmaller} = useScreenSize(); + const topSpace = isLargeNavigationBar ? NAVBAR_HEIGHT_DESKTOP_LARGE : NAVBAR_HEIGHT_DESKTOP; + const bottomSpace = 40; + + const menuRef = React.useRef(null); + const [isMenuHovered, setIsMenuHovered] = React.useState(false); + const [isMenuOpen, setIsMenuOpen] = React.useState(false); + const [openedSection, setOpenedSection] = React.useState(-1); + const [menuHeight, setMenuHeight] = React.useState('0px'); + const [isMenuScrollable, setIsMenuScrollable] = React.useState(false); + const isFirstOpenedSectionRef = React.useRef(false); + + React.useEffect(() => { + // Close desktop menu when scrolling in the page + const handleScroll = () => { + if (!isTabletOrSmaller) setIsMenuOpen(false); + }; + document.addEventListener('scroll', handleScroll); + return () => { + document.removeEventListener('scroll', handleScroll); + }; + }, [isTabletOrSmaller]); + + React.useEffect(() => { + if (!isMenuHovered && hoveredSection === -1) { + setIsMenuOpen(false); + } else if (hoveredSection !== -1) { + setOpenedSection(hoveredSection); + setIsMenuOpen(true); + } + }, [isMenuHovered, hoveredSection]); + + // Disable scroll in menu content until it's fully open + React.useEffect(() => { + setIsMenuScrollable(false); + const id = setTimeout(() => setIsMenuScrollable(true), DESKTOP_MENU_ANIMATION_DURATION_MS); + return () => clearTimeout(id); + }, [openedSection]); + + return ( +
+ + { + isFirstOpenedSectionRef.current = true; + }} + onExiting={() => setIsMenuScrollable(false)} + onExited={() => { + isFirstOpenedSectionRef.current = false; + setOpenedSection(-1); + }} + > +
setIsMenuHovered(true)} + onMouseLeave={() => setIsMenuHovered(false)} + ref={menuRef} + style={{top: topSpace}} + className={styles.desktopMenuWrapper} + > +
+ +
{ + if (el) { + // In old browsers, the speed of the menu height's animation will depend on + // the height of the content instead of the height of the container. + const value = supportsCssMin() + ? `min(${el.scrollHeight}px, calc(100vh - ${topSpace}px - ${bottomSpace}px))` + : `${el.scrollHeight}px`; + setMenuHeight(!isMenuOpen ? '0px' : value); + } + }} + > + + + {sections[openedSection]?.menu?.columns?.map( + (column, columnIdx) => ( + + + {column.title} + + + + {column.items.map( + ({title, ...touchableProps}, itemIdx) => ( +
+ + {title} + +
+ ) + )} +
+
+ ) + )} +
+ {sections[openedSection]?.menu?.extra} +
+
+
+
+
+
+
+
+ ); +}; + export const MainNavigationBar = ({ sections = [], selectedIndex, @@ -220,33 +366,7 @@ export const MainNavigationBar = ({ const setModalState = useSetModalState(); const shadowAlpha = isDarkMode ? 1 : 0.2; - const desktopMenuRef = React.useRef(null); - const [isDesktopMenuHovered, setIsDesktopMenuHovered] = React.useState(false); const [desktopHoveredSection, setDesktopHoveredSection] = React.useState(-1); - const [isDesktopMenuOpen, setIsDesktopMenuOpen] = React.useState(false); - const [desktopMenuOpenedSection, setDesktopMenuOpenedSection] = React.useState(-1); - const [desktopMenuHeight, setDesktopMenuHeight] = React.useState('0px'); - const [isDesktopMenuScrollable, setIsDesktopMenuScrollable] = React.useState(false); - - React.useEffect(() => { - // Close desktop menu when scrolling in the page - const handleScroll = () => { - if (!isTabletOrSmaller) setIsDesktopMenuOpen(false); - }; - document.addEventListener('scroll', handleScroll); - return () => { - document.removeEventListener('scroll', handleScroll); - }; - }, [isTabletOrSmaller]); - - React.useEffect(() => { - if (!isDesktopMenuHovered && desktopHoveredSection === -1) { - setIsDesktopMenuOpen(false); - } else if (desktopHoveredSection !== -1) { - setDesktopMenuOpenedSection(desktopHoveredSection); - setIsDesktopMenuOpen(true); - } - }, [isDesktopMenuHovered, desktopHoveredSection]); const renderDesktopSections = () => { return ( @@ -285,130 +405,6 @@ export const MainNavigationBar = ({ ); }; - // Disable scroll in menu content until it's fully open - React.useEffect(() => { - setIsDesktopMenuScrollable(false); - const id = setTimeout(() => setIsDesktopMenuScrollable(true), DESKTOP_MENU_ANIMATION_DURATION_MS); - return () => clearTimeout(id); - }, [desktopMenuOpenedSection]); - - const renderDesktopMenu = () => { - const topSpace = hasBottomSections ? NAVBAR_HEIGHT_DESKTOP_LARGE : NAVBAR_HEIGHT_DESKTOP; - const bottomSpace = 40; - - return ( -
- - setIsDesktopMenuScrollable(false)} - onExited={() => setDesktopMenuOpenedSection(-1)} - > - {(transitionStatus) => { - return ( -
setIsDesktopMenuHovered(true)} - onMouseLeave={() => setIsDesktopMenuHovered(false)} - ref={desktopMenuRef} - style={{ - top: hasBottomSections - ? NAVBAR_HEIGHT_DESKTOP_LARGE - : NAVBAR_HEIGHT_DESKTOP, - }} - className={styles.desktopMenuWrapper} - > -
- -
{ - if (el) { - // In old browsers, the speed of the menu height's animation will depend on the height of the content - // instead of the height of the container. - const value = supportsCssMin() - ? `min(${el.scrollHeight}px, calc(100vh - ${topSpace}px - ${bottomSpace}px))` - : `${el.scrollHeight}px`; - setDesktopMenuHeight( - !isDesktopMenuOpen ? '0px' : value - ); - } - }} - > - - - {sections[ - desktopMenuOpenedSection - ]?.menu?.columns?.map((column, columnIdx) => ( - - - {column.title} - - - - {column.items.map( - ( - {title, ...touchableProps}, - itemIdx - ) => ( -
- - {title} - -
- ) - )} -
-
- ))} -
- {sections[desktopMenuOpenedSection]?.menu?.extra} -
-
-
-
-
- ); - }} -
-
-
- ); - }; - const openMenu = () => { setIsBurgerMenuOpen(true); setModalState({isModalOpen: true}); @@ -463,7 +459,11 @@ export const MainNavigationBar = ({ {topFixed &&
} - {renderDesktopMenu()} + ); From be5d04ee4b2dfe4f5e68fed5654b4dd55052f290 Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Fri, 25 Oct 2024 13:12:46 +0200 Subject: [PATCH 06/62] code refactor --- src/navigation-bar.tsx | 139 ++++++++++++++++++++--------------------- 1 file changed, 68 insertions(+), 71 deletions(-) diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index 380a974cb..6b58babde 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -11,7 +11,7 @@ import IconMenuRegular from './generated/mistica-icons/icon-menu-regular'; import IconCloseRegular from './generated/mistica-icons/icon-close-regular'; import IconChevronLeftRegular from './generated/mistica-icons/icon-chevron-left-regular'; import {IconButton} from './icon-button'; -import {RowList} from './list'; +import {Row, RowList} from './list'; import {ThemeVariant, useIsInverseOrMediaVariant} from './theme-variant-context'; import FocusTrap from './focus-trap'; import {Portal} from './portal'; @@ -142,7 +142,7 @@ type MainNavigationBarSection = { menu?: SectionMenu; } & InteractiveProps; -type MainNavigationBarPropsBase = { +type MainNavigationBarProps = { sections?: ReadonlyArray; selectedIndex?: number; right?: React.ReactElement; @@ -155,44 +155,64 @@ type MainNavigationBarPropsBase = { large?: boolean; }; -type MainNavigationBarProps = MainNavigationBarPropsBase; -type BurgerMenuTransitionState = 'closed' | 'open'; - const MainNavigationBarBurgerMenu = ({ sections, extra, closeMenu, + open, + id, + disableFocusTrap, + setDisableFocusTrap, }: { sections: ReadonlyArray; extra: React.ReactNode; closeMenu: () => void; + open: boolean; + id: string; + disableFocusTrap: boolean; + setDisableFocusTrap: (value: boolean) => void; }) => { - const renderSectionContent = (items: ReadonlyArray | undefined, extra: React.ReactNode) => { - // TODO: implement - console.log(items, extra); - return undefined; - }; + const {isDarkMode} = useTheme(); + const menuRef = React.useRef(null); + const shadowAlpha = isDarkMode ? 1 : 0.2; const renderSection = (section: MainNavigationBarSection, index: number) => { // TODO: implement - console.log( - section, - index, - closeMenu, - renderSectionContent(section.menu?.columns?.[0].items, section.menu?.extra) - ); - return undefined; + return ; }; return ( - - - - {sections.map((section, index) => renderSection(section, index))} - - {extra && {extra}} - - + + setDisableFocusTrap(false)} + onExiting={() => setDisableFocusTrap(true)} + classNames={styles.burgerMenuTransition} + in={open} + nodeRef={menuRef} + timeout={isRunningAcceptanceTest() ? 0 : BURGER_MENU_ANIMATION_DURATION_MS} + unmountOnExit + > + + + + + ); }; @@ -218,7 +238,16 @@ const MainNavigationBarDesktopMenu = ({ const isFirstOpenedSectionRef = React.useRef(false); React.useEffect(() => { - // Close desktop menu when scrolling in the page + if (!isMenuHovered && hoveredSection === -1) { + setIsMenuOpen(false); + } else if (hoveredSection !== -1) { + setOpenedSection(hoveredSection); + setIsMenuOpen(true); + } + }, [isMenuHovered, hoveredSection]); + + // Close desktop menu when scrolling in the page + React.useEffect(() => { const handleScroll = () => { if (!isTabletOrSmaller) setIsMenuOpen(false); }; @@ -228,16 +257,8 @@ const MainNavigationBarDesktopMenu = ({ }; }, [isTabletOrSmaller]); - React.useEffect(() => { - if (!isMenuHovered && hoveredSection === -1) { - setIsMenuOpen(false); - } else if (hoveredSection !== -1) { - setOpenedSection(hoveredSection); - setIsMenuOpen(true); - } - }, [isMenuHovered, hoveredSection]); - - // Disable scroll in menu content until it's fully open + // Disable scroll in menu content until height's animation is finished to avoid + // showing the scrollbar while the menu's container is changing it's height React.useEffect(() => { setIsMenuScrollable(false); const id = setTimeout(() => setIsMenuScrollable(true), DESKTOP_MENU_ANIMATION_DURATION_MS); @@ -353,18 +374,15 @@ export const MainNavigationBar = ({ logo, large = false, }: MainNavigationBarProps): JSX.Element => { - const {texts, isDarkMode, t} = useTheme(); + const {texts, t} = useTheme(); const menuId = React.useId(); const {isTabletOrSmaller} = useScreenSize(); const logoElement = logo || ; const hasBottomSections = large && sections.length > 0; - const burgerMenuRef = React.useRef(null); const [isBurgerMenuOpen, setIsBurgerMenuOpen] = React.useState(false); - const [burgerMenuTransitionState, setBurgerMenuTransitionState] = - React.useState('closed'); + const [disableFocusTrap, setDisableFocusTrap] = React.useState(true); const setModalState = useSetModalState(); - const shadowAlpha = isDarkMode ? 1 : 0.2; const [desktopHoveredSection, setDesktopHoveredSection] = React.useState(-1); @@ -415,8 +433,6 @@ export const MainNavigationBar = ({ setModalState({isModalOpen: false}); }; - const disableFocusTrap = burgerMenuTransitionState !== 'open'; - const showBurger = sections.length > 1; const mainNavBar = ( @@ -476,34 +492,15 @@ export const MainNavigationBar = ({ {mainNavBar} - {showBurger && ( - - - setBurgerMenuTransitionState('open')} - onExiting={() => setBurgerMenuTransitionState('closed')} - classNames={styles.burgerMenuTransition} - in={isBurgerMenuOpen} - nodeRef={burgerMenuRef} - timeout={isRunningAcceptanceTest() ? 0 : BURGER_MENU_ANIMATION_DURATION_MS} - unmountOnExit - > - - - - - )} + setIsBurgerMenuOpen(false)} + disableFocusTrap={disableFocusTrap} + setDisableFocusTrap={setDisableFocusTrap} + /> ); }; From aed921933511d2c03a237b1606ae83a59cf67e6d Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Fri, 25 Oct 2024 14:52:31 +0200 Subject: [PATCH 07/62] code cleanup --- src/navigation-bar.tsx | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index 6b58babde..49c31a1c2 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -234,7 +234,7 @@ const MainNavigationBarDesktopMenu = ({ const [isMenuOpen, setIsMenuOpen] = React.useState(false); const [openedSection, setOpenedSection] = React.useState(-1); const [menuHeight, setMenuHeight] = React.useState('0px'); - const [isMenuScrollable, setIsMenuScrollable] = React.useState(false); + const [isMenuContentScrollable, setIsMenuContentScrollable] = React.useState(false); const isFirstOpenedSectionRef = React.useRef(false); React.useEffect(() => { @@ -260,8 +260,8 @@ const MainNavigationBarDesktopMenu = ({ // Disable scroll in menu content until height's animation is finished to avoid // showing the scrollbar while the menu's container is changing it's height React.useEffect(() => { - setIsMenuScrollable(false); - const id = setTimeout(() => setIsMenuScrollable(true), DESKTOP_MENU_ANIMATION_DURATION_MS); + setIsMenuContentScrollable(false); + const id = setTimeout(() => setIsMenuContentScrollable(true), DESKTOP_MENU_ANIMATION_DURATION_MS); return () => clearTimeout(id); }, [openedSection]); @@ -277,7 +277,7 @@ const MainNavigationBarDesktopMenu = ({ onEnter={() => { isFirstOpenedSectionRef.current = true; }} - onExiting={() => setIsMenuScrollable(false)} + onExiting={() => setIsMenuContentScrollable(false)} onExited={() => { isFirstOpenedSectionRef.current = false; setOpenedSection(-1); @@ -295,7 +295,7 @@ const MainNavigationBarDesktopMenu = ({ style={{ height: menuHeight, maxHeight: `calc(100vh - ${topSpace}px - ${bottomSpace}px)`, - overflow: isMenuScrollable ? 'auto' : 'hidden', + overflowY: isMenuContentScrollable ? 'auto' : 'hidden', }} > From 05ee33386bda5a3e142af981afe90784b5a49c1b Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Mon, 28 Oct 2024 11:44:18 +0100 Subject: [PATCH 08/62] fix empty columns case --- src/navigation-bar.tsx | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index 49c31a1c2..20497c10d 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -235,7 +235,7 @@ const MainNavigationBarDesktopMenu = ({ const [openedSection, setOpenedSection] = React.useState(-1); const [menuHeight, setMenuHeight] = React.useState('0px'); const [isMenuContentScrollable, setIsMenuContentScrollable] = React.useState(false); - const isFirstOpenedSectionRef = React.useRef(false); + const isAnySectionOpened = React.useRef(false); React.useEffect(() => { if (!isMenuHovered && hoveredSection === -1) { @@ -265,6 +265,8 @@ const MainNavigationBarDesktopMenu = ({ return () => clearTimeout(id); }, [openedSection]); + const columns = sections[openedSection]?.menu?.columns || []; + return (
@@ -275,11 +277,11 @@ const MainNavigationBarDesktopMenu = ({ mountOnEnter unmountOnExit onEnter={() => { - isFirstOpenedSectionRef.current = true; + isAnySectionOpened.current = true; }} onExiting={() => setIsMenuContentScrollable(false)} onExited={() => { - isFirstOpenedSectionRef.current = false; + isAnySectionOpened.current = false; setOpenedSection(-1); }} > @@ -301,7 +303,7 @@ const MainNavigationBarDesktopMenu = ({
{ if (el) { @@ -315,9 +317,9 @@ const MainNavigationBarDesktopMenu = ({ }} > - - {sections[openedSection]?.menu?.columns?.map( - (column, columnIdx) => ( + {columns.length > 0 && ( + + {columns.map((column, columnIdx) => ( - ) - )} - + ))} + + )} {sections[openedSection]?.menu?.extra}
From 5503d0ab015fd90395f1f2c1147647640ca3a973 Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Mon, 28 Oct 2024 11:57:28 +0100 Subject: [PATCH 09/62] scroll to top of content when menu section changes --- src/navigation-bar.css.ts | 9 +-- src/navigation-bar.tsx | 139 +++++++++++++++++++------------------- 2 files changed, 72 insertions(+), 76 deletions(-) diff --git a/src/navigation-bar.css.ts b/src/navigation-bar.css.ts index 5f701bead..b540e20fc 100644 --- a/src/navigation-bar.css.ts +++ b/src/navigation-bar.css.ts @@ -353,16 +353,11 @@ export const lineHeightFix = style({ lineHeight: 0, }); -export const desktopMenuWrapper = style([ - sprinkles({ - position: 'fixed', - width: '100%', - }), -]); - export const desktopMenuContainer = style([ sprinkles({ background: colorVars.colors.backgroundContainer, + position: 'fixed', + width: '100%', }), { transition: 'height 0.4s cubic-bezier(0.65, 0, 0.35, 1)', diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index 20497c10d..5fedeaa33 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -246,8 +246,8 @@ const MainNavigationBarDesktopMenu = ({ } }, [isMenuHovered, hoveredSection]); - // Close desktop menu when scrolling in the page React.useEffect(() => { + // Close desktop menu when scrolling in the page const handleScroll = () => { if (!isTabletOrSmaller) setIsMenuOpen(false); }; @@ -257,9 +257,14 @@ const MainNavigationBarDesktopMenu = ({ }; }, [isTabletOrSmaller]); - // Disable scroll in menu content until height's animation is finished to avoid - // showing the scrollbar while the menu's container is changing it's height React.useEffect(() => { + // scroll to top of the content if the opened section changed + if (menuRef.current) { + menuRef.current.scrollTop = 0; + } + + // Disable scroll in menu content until height's animation is finished to avoid + // showing the scrollbar while the menu's container is changing it's height setIsMenuContentScrollable(false); const id = setTimeout(() => setIsMenuContentScrollable(true), DESKTOP_MENU_ANIMATION_DURATION_MS); return () => clearTimeout(id); @@ -286,78 +291,74 @@ const MainNavigationBarDesktopMenu = ({ }} >
setIsMenuHovered(true)} onMouseLeave={() => setIsMenuHovered(false)} ref={menuRef} - style={{top: topSpace}} - className={styles.desktopMenuWrapper} + style={{ + top: topSpace, + height: menuHeight, + maxHeight: `calc(100vh - ${topSpace}px - ${bottomSpace}px)`, + overflowY: isMenuContentScrollable ? 'auto' : 'hidden', + }} > -
- -
{ - if (el) { - // In old browsers, the speed of the menu height's animation will depend on - // the height of the content instead of the height of the container. - const value = supportsCssMin() - ? `min(${el.scrollHeight}px, calc(100vh - ${topSpace}px - ${bottomSpace}px))` - : `${el.scrollHeight}px`; - setMenuHeight(!isMenuOpen ? '0px' : value); - } - }} - > - - {columns.length > 0 && ( - - {columns.map((column, columnIdx) => ( - +
{ + if (el) { + // In old browsers, the speed of the menu height's animation will depend on + // the height of the content instead of the height of the container. + const value = supportsCssMin() + ? `min(${el.scrollHeight}px, calc(100vh - ${topSpace}px - ${bottomSpace}px))` + : `${el.scrollHeight}px`; + setMenuHeight(!isMenuOpen ? '0px' : value); + } + }} + > + + {columns.length > 0 && ( + + {columns.map((column, columnIdx) => ( + + - - {column.title} - - - - {column.items.map( - ({title, ...touchableProps}, itemIdx) => ( -
- - {title} - -
- ) - )} -
+ {column.title} +
+ + + {column.items.map( + ({title, ...touchableProps}, itemIdx) => ( +
+ + {title} + +
+ ) + )}
- ))} -
- )} - {sections[openedSection]?.menu?.extra} -
-
- -
+ + ))} + + )} + {sections[openedSection]?.menu?.extra} + +
+
From 229769dde790ae91633d5b438ba4bc990ff3be0b Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Mon, 28 Oct 2024 14:20:06 +0100 Subject: [PATCH 10/62] update burger menu --- src/navigation-bar.tsx | 254 +++++++++++++++++++++++++++-------------- src/text-tokens.tsx | 8 ++ 2 files changed, 174 insertions(+), 88 deletions(-) diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index 5fedeaa33..ed54b59aa 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -27,6 +27,8 @@ import {isRunningAcceptanceTest} from './utils/platform'; import * as tokens from './text-tokens'; import {NAVBAR_HEIGHT_DESKTOP, NAVBAR_HEIGHT_DESKTOP_LARGE} from './theme'; import TextLink from './text-link'; +import {Title1, Title3} from './title'; +import {ButtonLink} from './button'; import type {ExclusifyUnion} from './utils/utility-types'; import type {Variant} from './theme-variant-context'; @@ -122,6 +124,83 @@ const NavigationBarContentContainer = ({ ); }; +interface NavigationBarCommonProps { + variant?: Variant; + onBack?: () => void; + title?: string; + titleAs?: HeadingType; + right?: React.ReactElement; + withBorder?: boolean; + children?: undefined; +} + +interface NavigationBarTopFixedProps extends NavigationBarCommonProps { + topFixed?: true; + paddingX?: undefined; +} + +interface NavigationBarNotFixedProps extends NavigationBarCommonProps { + topFixed: false; + paddingX?: number; +} + +type NavigationBarProps = NavigationBarTopFixedProps | NavigationBarNotFixedProps; + +export const NavigationBar = ({ + onBack, + title, + titleAs, + right, + variant = 'default', + topFixed = true, + paddingX = 0, + withBorder = true, +}: NavigationBarProps): JSX.Element => { + const {texts, t} = useTheme(); + const content = ( + + + {onBack && ( + + )} + + {title} + + + + ); + return ( + +
+ {topFixed ? ( + {content} + ) : ( +
+ {content} +
+ )} +
+ {topFixed &&
} + + ); +}; + type InteractiveProps = ExclusifyUnion<{href: string} | {to: string} | {onPress: () => void}>; type SectionItem = {title: string} & InteractiveProps; @@ -172,13 +251,75 @@ const MainNavigationBarBurgerMenu = ({ disableFocusTrap: boolean; setDisableFocusTrap: (value: boolean) => void; }) => { + const {texts, t} = useTheme(); const {isDarkMode} = useTheme(); + const [openedSection, setOpenedSection] = React.useState(-1); const menuRef = React.useRef(null); + const shadowAlpha = isDarkMode ? 1 : 0.2; - const renderSection = (section: MainNavigationBarSection, index: number) => { - // TODO: implement - return ; + const getClosableInteractionProps = (interactiveProps: InteractiveProps) => { + return interactiveProps.onPress + ? { + onPress: () => { + interactiveProps.onPress(); + closeMenu(); + }, + } + : {...interactiveProps, onNavigate: () => closeMenu()}; + }; + + const renderSection = (index: number) => { + const {title, menu, ...interactiveProps} = sections[index]; + const columns = menu?.columns || []; + + return ( + + + setOpenedSection(-1)} + topFixed={false} + withBorder={false} + /> + + {texts.MainNavigationBarSectionSeeAll || + t(tokens.MainNavigationBarSectionSeeAll)} + + } + > + {sections[openedSection].title} + + + + {columns.map((column, columnIndex) => ( + + {column.title} + + + {column.items.map( + ({title: itemTitle, ...itemInteractiveProps}, itemIndex) => ( + + ) + )} + + + + ))} + + ); }; return ( @@ -186,10 +327,12 @@ const MainNavigationBarBurgerMenu = ({ setDisableFocusTrap(false)} onExiting={() => setDisableFocusTrap(true)} + onExited={() => setOpenedSection(-1)} classNames={styles.burgerMenuTransition} in={open} nodeRef={menuRef} timeout={isRunningAcceptanceTest() ? 0 : BURGER_MENU_ANIMATION_DURATION_MS} + mountOnEnter unmountOnExit > @@ -200,14 +343,26 @@ const MainNavigationBarBurgerMenu = ({ ref={menuRef} > - - - - {sections.map((section, index) => renderSection(section, index))} - - - {extra && {extra}} - + {openedSection !== -1 ? ( + renderSection(openedSection) + ) : ( + + + + {sections.map(({title, menu, ...interactiveProps}, index) => ( + setOpenedSection(index)} + : getClosableInteractionProps(interactiveProps))} + /> + ))} + + + {extra && {extra}} + + )} @@ -508,83 +663,6 @@ export const MainNavigationBar = ({ ); }; -interface NavigationBarCommonProps { - variant?: Variant; - onBack?: () => void; - title?: string; - titleAs?: HeadingType; - right?: React.ReactElement; - withBorder?: boolean; - children?: undefined; -} - -interface NavigationBarTopFixedProps extends NavigationBarCommonProps { - topFixed?: true; - paddingX?: undefined; -} - -interface NavigationBarNotFixedProps extends NavigationBarCommonProps { - topFixed: false; - paddingX?: number; -} - -type NavigationBarProps = NavigationBarTopFixedProps | NavigationBarNotFixedProps; - -export const NavigationBar = ({ - onBack, - title, - titleAs, - right, - variant = 'default', - topFixed = true, - paddingX = 0, - withBorder = true, -}: NavigationBarProps): JSX.Element => { - const {texts, t} = useTheme(); - const content = ( - - - {onBack && ( - - )} - - {title} - - - - ); - return ( - -
- {topFixed ? ( - {content} - ) : ( -
- {content} -
- )} -
- {topFixed &&
} - - ); -}; - type FunnelNavigationBarProps = { variant?: Variant; logo?: React.ReactElement; diff --git a/src/text-tokens.tsx b/src/text-tokens.tsx index 1eeae056d..21ac5d8ab 100644 --- a/src/text-tokens.tsx +++ b/src/text-tokens.tsx @@ -32,6 +32,7 @@ export type Dictionary = { menuLabelSuffix: string; openNavigationMenu: string; closeNavigationMenu: string; + MainNavigationBarSectionSeeAll: string; backNavigationBar: string; clearButton: string; carouselNextButton: string; @@ -291,6 +292,13 @@ export const closeNavigationMenu: TextToken = { pt: 'Fechar menu de navegação', }; +export const MainNavigationBarSectionSeeAll: TextToken = { + es: 'Ver todo', + en: 'See all', + de: 'alles sehen', + pt: 'ver tudo', +}; + export const backNavigationBar: TextToken = { es: 'Atrás', en: 'Back', From 277a240c5354d44256c462af1f4b44bf4552c002 Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Mon, 28 Oct 2024 14:25:35 +0100 Subject: [PATCH 11/62] fix tokens --- src/text-tokens.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/text-tokens.tsx b/src/text-tokens.tsx index 21ac5d8ab..865023cb3 100644 --- a/src/text-tokens.tsx +++ b/src/text-tokens.tsx @@ -295,8 +295,8 @@ export const closeNavigationMenu: TextToken = { export const MainNavigationBarSectionSeeAll: TextToken = { es: 'Ver todo', en: 'See all', - de: 'alles sehen', - pt: 'ver tudo', + de: 'Alle anzeigen', + pt: 'Ver tudo', }; export const backNavigationBar: TextToken = { From 55e00cdd21e0ff30c24528165ff9011e674baa54 Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Mon, 28 Oct 2024 14:38:16 +0100 Subject: [PATCH 12/62] add extra to burger menu sections --- src/navigation-bar.tsx | 90 ++++++++++++++++++++++-------------------- 1 file changed, 47 insertions(+), 43 deletions(-) diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index ed54b59aa..481175ebc 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -274,51 +274,55 @@ const MainNavigationBarBurgerMenu = ({ const columns = menu?.columns || []; return ( - - - setOpenedSection(-1)} - topFixed={false} - withBorder={false} - /> - - {texts.MainNavigationBarSectionSeeAll || - t(tokens.MainNavigationBarSectionSeeAll)} - - } - > - {sections[openedSection].title} - + <> + + + setOpenedSection(-1)} + topFixed={false} + withBorder={false} + /> + + {texts.MainNavigationBarSectionSeeAll || + t(tokens.MainNavigationBarSectionSeeAll)} + + } + > + {sections[openedSection].title} + + + + {columns.map((column, columnIndex) => ( + + {column.title} + + + {column.items.map( + ({title: itemTitle, ...itemInteractiveProps}, itemIndex) => ( + + ) + )} + + + + ))} - {columns.map((column, columnIndex) => ( - - {column.title} - - - {column.items.map( - ({title: itemTitle, ...itemInteractiveProps}, itemIndex) => ( - - ) - )} - - - - ))} - + {menu?.extra && {menu.extra}} + ); }; From 26a4b7a3fea8a4bd5bd7d4247080859c6ec2b14a Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Mon, 28 Oct 2024 14:45:47 +0100 Subject: [PATCH 13/62] code cleanup --- src/navigation-bar.tsx | 46 ++++++++++++++++++++---------------------- 1 file changed, 22 insertions(+), 24 deletions(-) diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index 481175ebc..076c57c09 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -274,7 +274,7 @@ const MainNavigationBarBurgerMenu = ({ const columns = menu?.columns || []; return ( - <> + {menu?.extra && {menu.extra}} - + ); }; @@ -346,28 +346,26 @@ const MainNavigationBarBurgerMenu = ({ id={id} ref={menuRef} > - - {openedSection !== -1 ? ( - renderSection(openedSection) - ) : ( - - - - {sections.map(({title, menu, ...interactiveProps}, index) => ( - setOpenedSection(index)} - : getClosableInteractionProps(interactiveProps))} - /> - ))} - - - {extra && {extra}} - - )} - + {openedSection !== -1 ? ( + renderSection(openedSection) + ) : ( + + + + {sections.map(({title, menu, ...interactiveProps}, index) => ( + setOpenedSection(index)} + : getClosableInteractionProps(interactiveProps))} + /> + ))} + + + {extra && {extra}} + + )} From 82f0c6e95371473836e838cf5f5af5dc254dc412 Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Mon, 28 Oct 2024 14:51:19 +0100 Subject: [PATCH 14/62] fix typo --- src/navigation-bar.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index 076c57c09..51f8b374e 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -297,7 +297,7 @@ const MainNavigationBarBurgerMenu = ({ } > - {sections[openedSection].title} + {sections[index].title} From 87768027abfc50ae704f41d6b388529969c45de8 Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Mon, 28 Oct 2024 14:54:06 +0100 Subject: [PATCH 15/62] code cleanup --- src/navigation-bar.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index 51f8b374e..dd4ee7275 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -258,7 +258,7 @@ const MainNavigationBarBurgerMenu = ({ const shadowAlpha = isDarkMode ? 1 : 0.2; - const getClosableInteractionProps = (interactiveProps: InteractiveProps) => { + const getInteractivePropsWithCloseMenu = (interactiveProps: InteractiveProps) => { return interactiveProps.onPress ? { onPress: () => { @@ -290,7 +290,7 @@ const MainNavigationBarBurgerMenu = ({ bleedY bleedRight withChevron - {...getClosableInteractionProps(interactiveProps)} + {...getInteractivePropsWithCloseMenu(interactiveProps)} > {texts.MainNavigationBarSectionSeeAll || t(tokens.MainNavigationBarSectionSeeAll)} @@ -311,7 +311,7 @@ const MainNavigationBarBurgerMenu = ({ ) )} @@ -358,7 +358,7 @@ const MainNavigationBarBurgerMenu = ({ title={title} {...(menu ? {onPress: () => setOpenedSection(index)} - : getClosableInteractionProps(interactiveProps))} + : getInteractivePropsWithCloseMenu(interactiveProps))} /> ))} From d0f1fefa246056e35a9f3edebaa9a813c1beaafb Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Mon, 28 Oct 2024 19:19:09 +0100 Subject: [PATCH 16/62] add burger menu animation --- src/navigation-bar.css.ts | 15 +++++++- src/navigation-bar.tsx | 81 ++++++++++++++++++++++++++++----------- 2 files changed, 73 insertions(+), 23 deletions(-) diff --git a/src/navigation-bar.css.ts b/src/navigation-bar.css.ts index b540e20fc..cfc351ace 100644 --- a/src/navigation-bar.css.ts +++ b/src/navigation-bar.css.ts @@ -316,10 +316,23 @@ export const burgerMenu = style([ }), { height: `calc(100vh - ${NAVBAR_HEIGHT_MOBILE}px)`, - overflowY: 'auto', }, ]); +export const burgerMainMenuContainer = style({ + height: `calc(100vh - ${NAVBAR_HEIGHT_MOBILE}px)`, + overflowY: 'auto', +}); + +export const burgerSubMenuContainer = style({ + height: `calc(100vh - ${NAVBAR_HEIGHT_MOBILE}px)`, + overflowY: 'auto', + width: '100%', + position: 'absolute', + left: '100vw', + top: 0, +}); + export const iconButtonVariants = styleVariants({ default: [ sprinkles({color: colorVars.colors.neutralHigh}), diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index dd4ee7275..7b6764903 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -255,6 +255,7 @@ const MainNavigationBarBurgerMenu = ({ const {isDarkMode} = useTheme(); const [openedSection, setOpenedSection] = React.useState(-1); const menuRef = React.useRef(null); + const menuContentRef = React.useRef(null); const shadowAlpha = isDarkMode ? 1 : 0.2; @@ -269,6 +270,8 @@ const MainNavigationBarBurgerMenu = ({ : {...interactiveProps, onNavigate: () => closeMenu()}; }; + const [isSubMenuOpen, setIsSubMenuOpen] = React.useState(false); + const renderSection = (index: number) => { const {title, menu, ...interactiveProps} = sections[index]; const columns = menu?.columns || []; @@ -279,7 +282,7 @@ const MainNavigationBarBurgerMenu = ({ setOpenedSection(-1)} + onBack={() => setIsSubMenuOpen(false)} topFixed={false} withBorder={false} /> @@ -331,7 +334,10 @@ const MainNavigationBarBurgerMenu = ({ setDisableFocusTrap(false)} onExiting={() => setDisableFocusTrap(true)} - onExited={() => setOpenedSection(-1)} + onExited={() => { + setIsSubMenuOpen(false); + setOpenedSection(-1); + }} classNames={styles.burgerMenuTransition} in={open} nodeRef={menuRef} @@ -346,26 +352,57 @@ const MainNavigationBarBurgerMenu = ({ id={id} ref={menuRef} > - {openedSection !== -1 ? ( - renderSection(openedSection) - ) : ( - - - - {sections.map(({title, menu, ...interactiveProps}, index) => ( - setOpenedSection(index)} - : getInteractivePropsWithCloseMenu(interactiveProps))} - /> - ))} - - - {extra && {extra}} - - )} + + {(transitionStatus) => ( +
+ {transitionStatus !== 'entered' && ( +
+ + + + {sections.map( + ({title, menu, ...interactiveProps}, index) => ( + { + setIsSubMenuOpen(true); + setOpenedSection(index); + }, + } + : getInteractivePropsWithCloseMenu( + interactiveProps + ))} + /> + ) + )} + + + {extra && {extra}} + +
+ )} + + {transitionStatus !== 'exited' && openedSection !== -1 && ( +
+ {renderSection(openedSection)} +
+ )} +
+ )} +
From ab105cbca6b9a91d3d2667bd0929b59152d2d471 Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Mon, 28 Oct 2024 19:35:11 +0100 Subject: [PATCH 17/62] avoid menu logic for empty tabs --- src/navigation-bar.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index 7b6764903..1ff0ae177 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -594,7 +594,7 @@ export const MainNavigationBar = ({ [styles.firstSection]: idx === 0, [styles.lastSection]: idx === sections.length - 1, })} - onMouseEnter={() => setDesktopHoveredSection(idx)} + onMouseEnter={() => setDesktopHoveredSection(menu ? idx : -1)} onMouseLeave={() => setDesktopHoveredSection(-1)} > Date: Mon, 28 Oct 2024 20:09:33 +0100 Subject: [PATCH 18/62] code cleanup --- src/navigation-bar.css.ts | 13 ++++++++++--- src/navigation-bar.tsx | 24 ++++++++++++------------ 2 files changed, 22 insertions(+), 15 deletions(-) diff --git a/src/navigation-bar.css.ts b/src/navigation-bar.css.ts index cfc351ace..34adf206c 100644 --- a/src/navigation-bar.css.ts +++ b/src/navigation-bar.css.ts @@ -6,7 +6,9 @@ import {vars as colorVars} from './skins/skin-contract.css'; const NAVBAR_ZINDEX = 25; -const BURGER_MENU_ANIMATION_DURATION_MS = 300; +export const BURGER_MENU_ANIMATION_DURATION_MS = 300; +export const DESKTOP_MENU_ANIMATION_DURATION_MS = 400; +const DESKTOP_MENU_CONTENT_ANIMATION_DURATION_MS = 800; export const burgerIconContainer = style([ sprinkles({ @@ -373,7 +375,7 @@ export const desktopMenuContainer = style([ width: '100%', }), { - transition: 'height 0.4s cubic-bezier(0.65, 0, 0.35, 1)', + transition: `height ${DESKTOP_MENU_ANIMATION_DURATION_MS}ms cubic-bezier(0.65, 0, 0.35, 1)`, boxShadow: '0px 2px 4px rgba(0,0,0,0.2)', '@media': { ['(prefers-reduced-motion)']: { @@ -402,7 +404,12 @@ export const desktopMenu = style([ export const desktopMenuContentFadeIn = style({ transform: 'translateY(0px)', opacity: 1, - transition: 'opacity .8s cubic-bezier(0.33, 1, 0.68, 1), transform .8s cubic-bezier(0.33, 1, 0.68, 1)', + transition: `opacity ${DESKTOP_MENU_CONTENT_ANIMATION_DURATION_MS}ms cubic-bezier(0.33, 1, 0.68, 1), transform ${DESKTOP_MENU_CONTENT_ANIMATION_DURATION_MS}ms cubic-bezier(0.33, 1, 0.68, 1)`, + '@media': { + ['(prefers-reduced-motion)']: { + transition: 'none', + }, + }, }); export const desktopMenuColumn = style({ diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index 1ff0ae177..60c99c587 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -54,9 +54,6 @@ const BurgerMenuIcon = ({isOpen}: {isOpen: boolean}) => { ); }; -const BURGER_MENU_ANIMATION_DURATION_MS = 300; -const DESKTOP_MENU_ANIMATION_DURATION_MS = 400; - type HeaderProps = { children: React.ReactNode; topFixed?: boolean; @@ -258,7 +255,9 @@ const MainNavigationBarBurgerMenu = ({ const menuContentRef = React.useRef(null); const shadowAlpha = isDarkMode ? 1 : 0.2; + const menuAnimationDuration = isRunningAcceptanceTest() ? 0 : styles.BURGER_MENU_ANIMATION_DURATION_MS; + // Close the menu when one of the rows is pressed const getInteractivePropsWithCloseMenu = (interactiveProps: InteractiveProps) => { return interactiveProps.onPress ? { @@ -341,7 +340,7 @@ const MainNavigationBarBurgerMenu = ({ classNames={styles.burgerMenuTransition} in={open} nodeRef={menuRef} - timeout={isRunningAcceptanceTest() ? 0 : BURGER_MENU_ANIMATION_DURATION_MS} + timeout={menuAnimationDuration} mountOnEnter unmountOnExit > @@ -353,7 +352,7 @@ const MainNavigationBarBurgerMenu = ({ ref={menuRef} > @@ -361,7 +360,7 @@ const MainNavigationBarBurgerMenu = ({
@@ -420,9 +419,6 @@ const MainNavigationBarDesktopMenu = ({ hoveredSection: number; }): JSX.Element => { const {isTabletOrSmaller} = useScreenSize(); - const topSpace = isLargeNavigationBar ? NAVBAR_HEIGHT_DESKTOP_LARGE : NAVBAR_HEIGHT_DESKTOP; - const bottomSpace = 40; - const menuRef = React.useRef(null); const [isMenuHovered, setIsMenuHovered] = React.useState(false); const [isMenuOpen, setIsMenuOpen] = React.useState(false); @@ -431,6 +427,10 @@ const MainNavigationBarDesktopMenu = ({ const [isMenuContentScrollable, setIsMenuContentScrollable] = React.useState(false); const isAnySectionOpened = React.useRef(false); + const menuAnimationDuration = isRunningAcceptanceTest() ? 0 : styles.DESKTOP_MENU_ANIMATION_DURATION_MS; + const topSpace = isLargeNavigationBar ? NAVBAR_HEIGHT_DESKTOP_LARGE : NAVBAR_HEIGHT_DESKTOP; + const bottomSpace = 40; + React.useEffect(() => { if (!isMenuHovered && hoveredSection === -1) { setIsMenuOpen(false); @@ -460,9 +460,9 @@ const MainNavigationBarDesktopMenu = ({ // Disable scroll in menu content until height's animation is finished to avoid // showing the scrollbar while the menu's container is changing it's height setIsMenuContentScrollable(false); - const id = setTimeout(() => setIsMenuContentScrollable(true), DESKTOP_MENU_ANIMATION_DURATION_MS); + const id = setTimeout(() => setIsMenuContentScrollable(true), menuAnimationDuration); return () => clearTimeout(id); - }, [openedSection]); + }, [openedSection, menuAnimationDuration]); const columns = sections[openedSection]?.menu?.columns || []; @@ -471,7 +471,7 @@ const MainNavigationBarDesktopMenu = ({ Date: Tue, 29 Oct 2024 12:04:52 +0100 Subject: [PATCH 19/62] update logic for extra content --- src/navigation-bar.css.ts | 4 -- src/navigation-bar.tsx | 80 +++++++++++++++++++-------------------- 2 files changed, 40 insertions(+), 44 deletions(-) diff --git a/src/navigation-bar.css.ts b/src/navigation-bar.css.ts index 34adf206c..c90775d9a 100644 --- a/src/navigation-bar.css.ts +++ b/src/navigation-bar.css.ts @@ -412,10 +412,6 @@ export const desktopMenuContentFadeIn = style({ }, }); -export const desktopMenuColumn = style({ - minWidth: 184, -}); - export const desktopMenuColumnItem = style({ color: colorVars.colors.textPrimary, }); diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index 60c99c587..9f060e0ce 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -29,6 +29,7 @@ import {NAVBAR_HEIGHT_DESKTOP, NAVBAR_HEIGHT_DESKTOP_LARGE} from './theme'; import TextLink from './text-link'; import {Title1, Title3} from './title'; import {ButtonLink} from './button'; +import {Grid, GridItem} from './grid'; import type {ExclusifyUnion} from './utils/utility-types'; import type {Variant} from './theme-variant-context'; @@ -207,11 +208,11 @@ type SectionColumn = { items: ReadonlyArray; }; -type SectionMenu = { - columns?: ReadonlyArray; - extra?: React.ReactElement; - small?: boolean; -}; +type SectionMenu = ExclusifyUnion< + | {small: true; column: SectionColumn} + | {small?: false; columns: ReadonlyArray} + | {small?: boolean; content?: React.ReactElement} +>; type MainNavigationBarSection = { title: string; @@ -273,7 +274,7 @@ const MainNavigationBarBurgerMenu = ({ const renderSection = (index: number) => { const {title, menu, ...interactiveProps} = sections[index]; - const columns = menu?.columns || []; + const columns = menu?.columns || (menu?.column ? [menu.column] : []); return ( @@ -303,27 +304,31 @@ const MainNavigationBarBurgerMenu = ({ - {columns.map((column, columnIndex) => ( - - {column.title} - - - {column.items.map( - ({title: itemTitle, ...itemInteractiveProps}, itemIndex) => ( - - ) - )} - - - - ))} + {menu?.content ? ( + {menu.content} + ) : ( + columns.map((column, columnIndex) => ( + + {column.title} + + + {column.items.map( + ({title: itemTitle, ...itemInteractiveProps}, itemIndex) => ( + + ) + )} + + + + )) + )} - - {menu?.extra && {menu.extra}} ); }; @@ -512,15 +517,11 @@ const MainNavigationBarDesktopMenu = ({ } }} > - - {columns.length > 0 && ( - - {columns.map((column, columnIdx) => ( - + {sections[openedSection]?.menu?.content ?? ( + + {columns.map((column, columnIdx) => ( + + - ))} - - )} - {sections[openedSection]?.menu?.extra} - + + ))} + + )}
From b5e76aad8bef09ecf5a03974e5172ca07872f0f0 Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Tue, 29 Oct 2024 12:15:58 +0100 Subject: [PATCH 20/62] add callback to close menu when custom content is rendered --- src/navigation-bar.tsx | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index 9f060e0ce..f27eacc32 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -211,7 +211,11 @@ type SectionColumn = { type SectionMenu = ExclusifyUnion< | {small: true; column: SectionColumn} | {small?: false; columns: ReadonlyArray} - | {small?: boolean; content?: React.ReactElement} + | { + small?: boolean; + // Custom content can be passed as a function that takes an argument with a callback to close the menu in mobile + content?: React.ReactElement | ((props?: {closeMenu: () => void}) => React.ReactElement); + } >; type MainNavigationBarSection = { @@ -305,7 +309,9 @@ const MainNavigationBarBurgerMenu = ({ {menu?.content ? ( - {menu.content} + + {typeof menu.content === 'function' ? menu.content({closeMenu}) : menu.content} + ) : ( columns.map((column, columnIndex) => ( @@ -470,6 +476,7 @@ const MainNavigationBarDesktopMenu = ({ }, [openedSection, menuAnimationDuration]); const columns = sections[openedSection]?.menu?.columns || []; + const customContent = sections[openedSection]?.menu?.content; return (
@@ -517,7 +524,13 @@ const MainNavigationBarDesktopMenu = ({ } }} > - {sections[openedSection]?.menu?.content ?? ( + {customContent ? ( + typeof customContent === 'function' ? ( + customContent() + ) : ( + customContent + ) + ) : ( {columns.map((column, columnIdx) => ( From d3a8bd085411860c3abb0c3c0b16c950746607af Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Tue, 29 Oct 2024 12:27:40 +0100 Subject: [PATCH 21/62] fix typo --- src/navigation-bar.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index f27eacc32..875e03e0b 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -214,7 +214,7 @@ type SectionMenu = ExclusifyUnion< | { small?: boolean; // Custom content can be passed as a function that takes an argument with a callback to close the menu in mobile - content?: React.ReactElement | ((props?: {closeMenu: () => void}) => React.ReactElement); + content?: React.ReactElement | ((props: {closeMenu: () => void}) => React.ReactElement); } >; @@ -526,7 +526,8 @@ const MainNavigationBarDesktopMenu = ({ > {customContent ? ( typeof customContent === 'function' ? ( - customContent() + // the callback to close the menu is not required in desktop menu + customContent({closeMenu: () => {}}) ) : ( customContent ) From 9e9538ecc83ee3fef5f208cbd528d1ec4cb6d031 Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Tue, 29 Oct 2024 12:30:25 +0100 Subject: [PATCH 22/62] code cleanup --- src/navigation-bar.tsx | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index 875e03e0b..f6cd36327 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -279,6 +279,7 @@ const MainNavigationBarBurgerMenu = ({ const renderSection = (index: number) => { const {title, menu, ...interactiveProps} = sections[index]; const columns = menu?.columns || (menu?.column ? [menu.column] : []); + const customContent = menu?.content; return ( @@ -308,9 +309,9 @@ const MainNavigationBarBurgerMenu = ({ - {menu?.content ? ( + {customContent ? ( - {typeof menu.content === 'function' ? menu.content({closeMenu}) : menu.content} + {typeof customContent === 'function' ? customContent({closeMenu}) : customContent} ) : ( columns.map((column, columnIndex) => ( From 1dbffaa83cf1c2718c9115a1b51f4563881bd269 Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Tue, 29 Oct 2024 16:01:53 +0100 Subject: [PATCH 23/62] implement desktop small menu --- src/navigation-bar.css.ts | 82 +++++++++--- src/navigation-bar.tsx | 271 ++++++++++++++++++++++++++++++-------- 2 files changed, 285 insertions(+), 68 deletions(-) diff --git a/src/navigation-bar.css.ts b/src/navigation-bar.css.ts index c90775d9a..0b250f803 100644 --- a/src/navigation-bar.css.ts +++ b/src/navigation-bar.css.ts @@ -2,11 +2,14 @@ import {style, styleVariants} from '@vanilla-extract/css'; import {sprinkles} from './sprinkles.css'; import {NAVBAR_HEIGHT_DESKTOP, NAVBAR_HEIGHT_DESKTOP_LARGE, NAVBAR_HEIGHT_MOBILE} from './theme'; import * as mq from './media-queries.css'; -import {vars as colorVars} from './skins/skin-contract.css'; +import {vars} from './skins/skin-contract.css'; const NAVBAR_ZINDEX = 25; +export const DESKTOP_SMALL_MENU_WIDTH = 184; + export const BURGER_MENU_ANIMATION_DURATION_MS = 300; +export const DESKTOP_SMALL_MENU_ANIMATION_DURATION_MS = 200; export const DESKTOP_MENU_ANIMATION_DURATION_MS = 400; const DESKTOP_MENU_CONTENT_ANIMATION_DURATION_MS = 800; @@ -98,12 +101,12 @@ const navbarBase = style([ ]); export const navbarBorderColorVariants = styleVariants({ - default: [navbarBase, {borderColor: colorVars.colors.divider}], + default: [navbarBase, {borderColor: vars.colors.divider}], noBorder: [navbarBase, {borderColor: 'transparent'}], menuOpen: [ navbarBase, { - borderColor: colorVars.colors.divider, + borderColor: vars.colors.divider, '@media': { [mq.tabletOrSmaller]: { @@ -159,27 +162,27 @@ export const section = style([ ]); export const selectedSectionVariantes = styleVariants({ - default: {borderColor: colorVars.colors.controlActivated}, - inverse: {borderColor: colorVars.colors.inverse}, + default: {borderColor: vars.colors.controlActivated}, + inverse: {borderColor: vars.colors.inverse}, }); export const textWrapperVariants = styleVariants({ default: { - color: colorVars.colors.textPrimary, + color: vars.colors.textPrimary, '@media': { [mq.supportsHover]: { ':hover': { - color: colorVars.colors.textSecondary, + color: vars.colors.textSecondary, }, }, }, }, inverse: { - color: colorVars.colors.textPrimaryInverse, + color: vars.colors.textPrimaryInverse, '@media': { [mq.supportsHover]: { ':hover': { - color: colorVars.colors.textSecondaryInverse, + color: vars.colors.textSecondaryInverse, }, }, }, @@ -314,7 +317,7 @@ export const burgerMenu = style([ top: NAVBAR_HEIGHT_MOBILE, left: 0, right: 0, - background: colorVars.colors.background, + background: vars.colors.background, }), { height: `calc(100vh - ${NAVBAR_HEIGHT_MOBILE}px)`, @@ -337,24 +340,24 @@ export const burgerSubMenuContainer = style({ export const iconButtonVariants = styleVariants({ default: [ - sprinkles({color: colorVars.colors.neutralHigh}), + sprinkles({color: vars.colors.neutralHigh}), { '@media': { [mq.supportsHover]: { ':hover': { - color: colorVars.colors.neutralMedium, + color: vars.colors.neutralMedium, }, }, }, }, ], inverse: [ - sprinkles({color: colorVars.colors.inverse}), + sprinkles({color: vars.colors.inverse}), { '@media': { [mq.supportsHover]: { ':hover': { - color: colorVars.colors.inverse, + color: vars.colors.inverse, }, }, }, @@ -370,7 +373,7 @@ export const lineHeightFix = style({ export const desktopMenuContainer = style([ sprinkles({ - background: colorVars.colors.backgroundContainer, + background: vars.colors.backgroundContainer, position: 'fixed', width: '100%', }), @@ -385,6 +388,53 @@ export const desktopMenuContainer = style([ }, ]); +export const desktopSmallMenuTransition = { + enter: style({ + opacity: 0, + }), + enterActive: style({ + opacity: 1, + transition: `opacity ${DESKTOP_SMALL_MENU_ANIMATION_DURATION_MS}ms ease-out`, + '@media': { + ['(prefers-reduced-motion)']: { + transition: 'none', + }, + }, + }), + exit: style({ + opacity: 1, + }), + exitActive: style({ + opacity: 0, + transition: `opacity ${DESKTOP_SMALL_MENU_ANIMATION_DURATION_MS}ms ease-out`, + '@media': { + ['(prefers-reduced-motion)']: { + transition: 'none', + }, + }, + }), +}; + +export const desktopSmallMenuContainer = style([ + sprinkles({ + background: vars.colors.backgroundContainer, + position: 'fixed', + paddingY: 40, + paddingX: 24, + }), + { + borderRadius: `0 0 ${vars.borderRadii.popup} ${vars.borderRadii.popup}`, + width: DESKTOP_SMALL_MENU_WIDTH, + overflowY: 'auto', + boxShadow: '0px 2px 4px rgba(0,0,0,0.2)', + '@media': { + ['(prefers-reduced-motion)']: { + transition: 'none', + }, + }, + }, +]); + export const desktopMenu = style([ sprinkles({ paddingY: 40, @@ -413,5 +463,5 @@ export const desktopMenuContentFadeIn = style({ }); export const desktopMenuColumnItem = style({ - color: colorVars.colors.textPrimary, + color: vars.colors.textPrimary, }); diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index f6cd36327..6d95f2177 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -109,18 +109,19 @@ type NavigationBarContentContainerProps = { desktopOnly?: boolean; }; -const NavigationBarContentContainer = ({ - right, - children, - desktopOnly, -}: NavigationBarContentContainerProps) => { - return ( -
- {children} - {right &&
{right}
} -
- ); -}; +const NavigationBarContentContainer = React.forwardRef( + ({right, children, desktopOnly}, ref) => { + return ( +
+ {children} + {right &&
{right}
} +
+ ); + } +); interface NavigationBarCommonProps { variant?: Variant; @@ -209,13 +210,8 @@ type SectionColumn = { }; type SectionMenu = ExclusifyUnion< - | {small: true; column: SectionColumn} - | {small?: false; columns: ReadonlyArray} - | { - small?: boolean; - // Custom content can be passed as a function that takes an argument with a callback to close the menu in mobile - content?: React.ReactElement | ((props: {closeMenu: () => void}) => React.ReactElement); - } + | {columns: ReadonlyArray} + | {content?: React.ReactElement | ((props: {closeMenu: () => void}) => React.ReactElement)} >; type MainNavigationBarSection = { @@ -234,6 +230,7 @@ type MainNavigationBarProps = { withBorder?: boolean; burgerMenuExtra?: React.ReactNode; large?: boolean; + desktopSmallMenu?: boolean; }; const MainNavigationBarBurgerMenu = ({ @@ -278,7 +275,7 @@ const MainNavigationBarBurgerMenu = ({ const renderSection = (index: number) => { const {title, menu, ...interactiveProps} = sections[index]; - const columns = menu?.columns || (menu?.column ? [menu.column] : []); + const columns = menu?.columns || []; const customContent = menu?.content; return ( @@ -575,6 +572,184 @@ const MainNavigationBarDesktopMenu = ({ ); }; +const MainNavigationBarDesktopSmallMenu = ({ + section, + isLargeNavigationBar, + open, + leftPosition, +}: { + section: MainNavigationBarSection; + isLargeNavigationBar: boolean; + open: boolean; + leftPosition: number; +}): JSX.Element => { + const {isTabletOrSmaller} = useScreenSize(); + const menuRef = React.useRef(null); + const [isMenuHovered, setIsMenuHovered] = React.useState(false); + const [isMenuOpen, setIsMenuOpen] = React.useState(false); + + const menuAnimationDuration = isRunningAcceptanceTest() ? 0 : styles.DESKTOP_MENU_ANIMATION_DURATION_MS; + const topSpace = isLargeNavigationBar ? NAVBAR_HEIGHT_DESKTOP_LARGE : NAVBAR_HEIGHT_DESKTOP; + const bottomSpace = 40; + + React.useEffect(() => { + // Close desktop menu when scrolling in the page + const handleScroll = () => { + if (!isTabletOrSmaller) setIsMenuOpen(false); + }; + document.addEventListener('scroll', handleScroll); + return () => { + document.removeEventListener('scroll', handleScroll); + }; + }, [isTabletOrSmaller]); + + React.useEffect(() => { + setIsMenuOpen(open || isMenuHovered); + }, [open, isMenuHovered]); + + const columns = section.menu?.columns || []; + const customContent = section?.menu?.content; + + return ( +
+ + +
setIsMenuHovered(true)} + onMouseLeave={() => setIsMenuHovered(false)} + ref={menuRef} + style={{ + top: topSpace, + left: leftPosition, + maxHeight: `calc(100vh - ${topSpace}px - ${bottomSpace}px)`, + }} + > + {customContent ? ( + typeof customContent === 'function' ? ( + // the callback to close the menu is not required in desktop menu + customContent({closeMenu: () => {}}) + ) : ( + customContent + ) + ) : ( + + {columns.map((column, columnIdx) => ( + + + {column.title} + + + + {column.items.map(({title, ...touchableProps}, itemIdx) => ( +
+ + {title} + +
+ ))} +
+
+ ))} +
+ )} +
+
+
+
+ ); +}; + +const MainNavigationBarDesktopSection = ({ + section, + index, + selectedIndex, + isFirstSection, + isLastSection, + navigationBarRef, + hoveredSection, + setDesktopHoveredSection, + variant, + isLargeNavigationBar, + desktopSmallMenu, +}: { + section: MainNavigationBarSection; + index: number; + selectedIndex?: number; + isFirstSection: boolean; + isLastSection: boolean; + navigationBarRef: React.RefObject; + hoveredSection: number; + setDesktopHoveredSection: (index: number) => void; + variant?: Variant; + isLargeNavigationBar: boolean; + desktopSmallMenu?: boolean; +}): JSX.Element => { + const {title, menu, ...touchableProps} = section; + const sectionRef = React.useRef(null); + const [smallMenuLeftPosition, setSmallMenuLeftPosition] = React.useState(0); + + // Align menu to left border of the section if it fits. Otherwise, align it to the right border + const getSmallMenuLeftPosition = () => { + const {left, right} = sectionRef.current?.getBoundingClientRect() || {left: 0, right: 0}; + const maxLeftOffset = + (navigationBarRef.current?.getBoundingClientRect().right || 0) - styles.DESKTOP_SMALL_MENU_WIDTH; + + return left <= maxLeftOffset ? left : right - styles.DESKTOP_SMALL_MENU_WIDTH; + }; + + return ( + <> +
{ + setSmallMenuLeftPosition(getSmallMenuLeftPosition()); + setDesktopHoveredSection(menu ? index : -1); + }} + onMouseLeave={() => setDesktopHoveredSection(-1)} + > + + + {title} + + +
+ {desktopSmallMenu && ( + + )} + + ); +}; + export const MainNavigationBar = ({ sections = [], selectedIndex, @@ -585,6 +760,7 @@ export const MainNavigationBar = ({ burgerMenuExtra, logo, large = false, + desktopSmallMenu = false, }: MainNavigationBarProps): JSX.Element => { const {texts, t} = useTheme(); const menuId = React.useId(); @@ -594,6 +770,7 @@ export const MainNavigationBar = ({ const [isBurgerMenuOpen, setIsBurgerMenuOpen] = React.useState(false); const [disableFocusTrap, setDisableFocusTrap] = React.useState(true); + const navigationBarRef = React.useRef(null); const setModalState = useSetModalState(); const [desktopHoveredSection, setDesktopHoveredSection] = React.useState(-1); @@ -602,33 +779,21 @@ export const MainNavigationBar = ({ return ( @@ -657,7 +822,7 @@ export const MainNavigationBar = ({ dataAttributes={{'component-name': 'MainNavigationBar'}} > - +
{showBurger && ( {topFixed &&
} - + {!desktopSmallMenu && ( + + )} ); From e2d98f08c529e09484051e60ef4e13471b95f882 Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Tue, 29 Oct 2024 17:20:52 +0100 Subject: [PATCH 24/62] cleanup cod --- src/navigation-bar.tsx | 129 +++++++++++++++++++---------------------- 1 file changed, 61 insertions(+), 68 deletions(-) diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index 6d95f2177..1866ccf09 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -239,7 +239,6 @@ const MainNavigationBarBurgerMenu = ({ closeMenu, open, id, - disableFocusTrap, setDisableFocusTrap, }: { sections: ReadonlyArray; @@ -247,7 +246,6 @@ const MainNavigationBarBurgerMenu = ({ closeMenu: () => void; open: boolean; id: string; - disableFocusTrap: boolean; setDisableFocusTrap: (value: boolean) => void; }) => { const {texts, t} = useTheme(); @@ -353,66 +351,64 @@ const MainNavigationBarBurgerMenu = ({ mountOnEnter unmountOnExit > - - - + {(transitionStatus) => ( +
+ {transitionStatus !== 'entered' && ( +
+ + + + {sections.map( + ({title, menu, ...interactiveProps}, index) => ( + { + setIsSubMenuOpen(true); + setOpenedSection(index); + }, + } + : getInteractivePropsWithCloseMenu( + interactiveProps + ))} + /> + ) + )} + + + {extra && {extra}} + +
+ )} + + {transitionStatus !== 'exited' && openedSection !== -1 && ( +
+ {renderSection(openedSection)} +
+ )} +
+ )} + + ); @@ -867,20 +863,17 @@ export const MainNavigationBar = ({ } return ( - <> - - {mainNavBar} - + + {mainNavBar} setIsBurgerMenuOpen(false)} - disableFocusTrap={disableFocusTrap} + closeMenu={closeMenu} setDisableFocusTrap={setDisableFocusTrap} /> - + ); }; From 6633955ac5a6ba70e402589625f88ec70f4b1d21 Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Tue, 29 Oct 2024 19:48:28 +0100 Subject: [PATCH 25/62] add a11y logic --- src/navigation-bar.css.ts | 17 ++++ src/navigation-bar.tsx | 165 +++++++++++++++++++++++++++++++++----- src/text-tokens.tsx | 12 ++- 3 files changed, 174 insertions(+), 20 deletions(-) diff --git a/src/navigation-bar.css.ts b/src/navigation-bar.css.ts index 0b250f803..95e14d012 100644 --- a/src/navigation-bar.css.ts +++ b/src/navigation-bar.css.ts @@ -465,3 +465,20 @@ export const desktopMenuContentFadeIn = style({ export const desktopMenuColumnItem = style({ color: vars.colors.textPrimary, }); + +export const desktopMenuSectionArrowContainer = style({ + position: 'absolute', + zIndex: -1, + right: -8, + top: 0, + bottom: 0, + display: 'flex', + alignItems: 'center', +}); + +export const desktopMenuSectionArrow = style({ + border: 'none', + background: 'transparent', + padding: 0, + transition: `opacity 0.1s`, +}); diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index 1866ccf09..427856379 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -20,7 +20,7 @@ import {useSetModalState} from './modal-context-provider'; import {Logo} from './logo'; import {vars} from './skins/skin-contract.css'; import * as styles from './navigation-bar.css'; -import {getPrefixedDataAttributes} from './utils/dom'; +import {cancelEvent, getPrefixedDataAttributes} from './utils/dom'; import Stack from './stack'; import Box from './box'; import {isRunningAcceptanceTest} from './utils/platform'; @@ -30,6 +30,7 @@ import TextLink from './text-link'; import {Title1, Title3} from './title'; import {ButtonLink} from './button'; import {Grid, GridItem} from './grid'; +import {DOWN, ESC, UP} from './utils/keys'; import type {ExclusifyUnion} from './utils/utility-types'; import type {Variant} from './theme-variant-context'; @@ -295,8 +296,8 @@ const MainNavigationBarBurgerMenu = ({ withChevron {...getInteractivePropsWithCloseMenu(interactiveProps)} > - {texts.MainNavigationBarSectionSeeAll || - t(tokens.MainNavigationBarSectionSeeAll)} + {texts.mainNavigationBarSectionSeeAll || + t(tokens.mainNavigationBarSectionSeeAll)} } > @@ -418,14 +419,19 @@ const MainNavigationBarDesktopMenu = ({ sections, isLargeNavigationBar, hoveredSection, + setHoveredSection, + isMenuHovered, + setIsMenuHovered, }: { sections: ReadonlyArray; isLargeNavigationBar: boolean; hoveredSection: number; + setHoveredSection: (index: number) => void; + isMenuHovered: boolean; + setIsMenuHovered: (value: boolean) => void; }): JSX.Element => { const {isTabletOrSmaller} = useScreenSize(); const menuRef = React.useRef(null); - const [isMenuHovered, setIsMenuHovered] = React.useState(false); const [isMenuOpen, setIsMenuOpen] = React.useState(false); const [openedSection, setOpenedSection] = React.useState(-1); const [menuHeight, setMenuHeight] = React.useState('0px'); @@ -469,6 +475,25 @@ const MainNavigationBarDesktopMenu = ({ return () => clearTimeout(id); }, [openedSection, menuAnimationDuration]); + React.useEffect(() => { + // close menu when ESC key is pressed + const handleKeyDown = (e: KeyboardEvent) => { + switch (e.key) { + case ESC: + setIsMenuHovered(false); + setHoveredSection(-1); + break; + default: + // do nothing + } + }; + + document.addEventListener('keydown', handleKeyDown, false); + return () => { + document.removeEventListener('keydown', handleKeyDown, false); + }; + }, [setHoveredSection, setIsMenuHovered]); + const columns = sections[openedSection]?.menu?.columns || []; const customContent = sections[openedSection]?.menu?.content; @@ -573,15 +598,18 @@ const MainNavigationBarDesktopSmallMenu = ({ isLargeNavigationBar, open, leftPosition, + isMenuHovered, + setIsMenuHovered, }: { section: MainNavigationBarSection; isLargeNavigationBar: boolean; open: boolean; leftPosition: number; + isMenuHovered: boolean; + setIsMenuHovered: (value: boolean) => void; }): JSX.Element => { const {isTabletOrSmaller} = useScreenSize(); const menuRef = React.useRef(null); - const [isMenuHovered, setIsMenuHovered] = React.useState(false); const [isMenuOpen, setIsMenuOpen] = React.useState(false); const menuAnimationDuration = isRunningAcceptanceTest() ? 0 : styles.DESKTOP_MENU_ANIMATION_DURATION_MS; @@ -591,7 +619,9 @@ const MainNavigationBarDesktopSmallMenu = ({ React.useEffect(() => { // Close desktop menu when scrolling in the page const handleScroll = () => { - if (!isTabletOrSmaller) setIsMenuOpen(false); + if (!isTabletOrSmaller) { + setIsMenuOpen(false); + } }; document.addEventListener('scroll', handleScroll); return () => { @@ -674,7 +704,9 @@ const MainNavigationBarDesktopSection = ({ isLastSection, navigationBarRef, hoveredSection, - setDesktopHoveredSection, + isLargeMenuHovered, + setIsLargeMenuHovered, + setHoveredSection, variant, isLargeNavigationBar, desktopSmallMenu, @@ -686,37 +718,93 @@ const MainNavigationBarDesktopSection = ({ isLastSection: boolean; navigationBarRef: React.RefObject; hoveredSection: number; - setDesktopHoveredSection: (index: number) => void; + isLargeMenuHovered?: boolean; + setIsLargeMenuHovered: (value: boolean) => void; + setHoveredSection: (index: number) => void; variant?: Variant; isLargeNavigationBar: boolean; desktopSmallMenu?: boolean; }): JSX.Element => { + const {texts, t} = useTheme(); const {title, menu, ...touchableProps} = section; const sectionRef = React.useRef(null); const [smallMenuLeftPosition, setSmallMenuLeftPosition] = React.useState(0); + const [isArrowFocused, setIsArrowFocused] = React.useState(false); + const [isSectionMenuHovered, setIsSectionMenuHovered] = React.useState(false); // Align menu to left border of the section if it fits. Otherwise, align it to the right border - const getSmallMenuLeftPosition = () => { + const getSmallMenuLeftPosition = React.useCallback(() => { const {left, right} = sectionRef.current?.getBoundingClientRect() || {left: 0, right: 0}; const maxLeftOffset = (navigationBarRef.current?.getBoundingClientRect().right || 0) - styles.DESKTOP_SMALL_MENU_WIDTH; return left <= maxLeftOffset ? left : right - styles.DESKTOP_SMALL_MENU_WIDTH; - }; + }, [navigationBarRef]); + + const openSectionMenu = React.useCallback(() => { + setSmallMenuLeftPosition(getSmallMenuLeftPosition()); + setHoveredSection(menu ? index : -1); + }, [index, menu, getSmallMenuLeftPosition, setHoveredSection]); + + const closeSectionMenu = React.useCallback(() => { + setIsSectionMenuHovered(false); + setIsLargeMenuHovered(false); + setHoveredSection(-1); + }, [setHoveredSection, setIsLargeMenuHovered]); + + React.useEffect(() => { + // If any other section has been hovered, mark the current menu as not hovered in order to close it + if (hoveredSection !== index && hoveredSection !== -1) { + setIsSectionMenuHovered(false); + } + }, [hoveredSection, index]); + + React.useEffect(() => { + const handleKeyDown = (e: KeyboardEvent) => { + switch (e.key) { + // close menu when ESC key is pressed + case ESC: + cancelEvent(e); + closeSectionMenu(); + break; + + // if arrow is focused and DOWN key is pressed, open the menu if it was closed + case DOWN: + if (isArrowFocused && hoveredSection !== index) { + cancelEvent(e); + openSectionMenu(); + } + break; + + // if arrow is focused and UP key is pressed, close the menu if it was opened + case UP: + if (isArrowFocused && hoveredSection === index) { + cancelEvent(e); + closeSectionMenu(); + } + break; + + default: + // do nothing + } + }; + + document.addEventListener('keydown', handleKeyDown, false); + return () => { + document.removeEventListener('keydown', handleKeyDown, false); + }; + }, [openSectionMenu, closeSectionMenu, hoveredSection, index, isArrowFocused]); return ( - <> +
{ - setSmallMenuLeftPosition(getSmallMenuLeftPosition()); - setDesktopHoveredSection(menu ? index : -1); - }} - onMouseLeave={() => setDesktopHoveredSection(-1)} + onMouseEnter={openSectionMenu} + onMouseLeave={() => setHoveredSection(-1)} >
+ {menu && ( +
setIsArrowFocused(true)} + onBlur={() => setIsArrowFocused(false)} + > + { + if (isArrowFocused) { + if (hoveredSection !== index) { + openSectionMenu(); + } else { + closeSectionMenu(); + } + } + }} + style={{ + pointerEvents: isArrowFocused ? 'auto' : 'none', + opacity: isArrowFocused ? 1 : 0, + }} + > + + +
+ )} + {desktopSmallMenu && ( )} - +
); }; @@ -770,6 +893,7 @@ export const MainNavigationBar = ({ const setModalState = useSetModalState(); const [desktopHoveredSection, setDesktopHoveredSection] = React.useState(-1); + const [isDesktopLargeMenuHovered, setIsDesktopLargeMenuHovered] = React.useState(false); const renderDesktopSections = () => { return ( @@ -785,8 +909,10 @@ export const MainNavigationBar = ({ isLastSection={idx === sections.length - 1} variant={variant} section={section} + isLargeMenuHovered={isDesktopLargeMenuHovered} + setIsLargeMenuHovered={setIsDesktopLargeMenuHovered} hoveredSection={desktopHoveredSection} - setDesktopHoveredSection={setDesktopHoveredSection} + setHoveredSection={setDesktopHoveredSection} isLargeNavigationBar={hasBottomSections} desktopSmallMenu={desktopSmallMenu} /> @@ -853,6 +979,9 @@ export const MainNavigationBar = ({ sections={sections} isLargeNavigationBar={hasBottomSections} hoveredSection={desktopHoveredSection} + setHoveredSection={setDesktopHoveredSection} + isMenuHovered={isDesktopLargeMenuHovered} + setIsMenuHovered={setIsDesktopLargeMenuHovered} /> )} diff --git a/src/text-tokens.tsx b/src/text-tokens.tsx index 865023cb3..641582036 100644 --- a/src/text-tokens.tsx +++ b/src/text-tokens.tsx @@ -32,7 +32,8 @@ export type Dictionary = { menuLabelSuffix: string; openNavigationMenu: string; closeNavigationMenu: string; - MainNavigationBarSectionSeeAll: string; + mainNavigationBarOpenSectionMenu: string; + mainNavigationBarSectionSeeAll: string; backNavigationBar: string; clearButton: string; carouselNextButton: string; @@ -292,7 +293,14 @@ export const closeNavigationMenu: TextToken = { pt: 'Fechar menu de navegação', }; -export const MainNavigationBarSectionSeeAll: TextToken = { +export const mainNavigationBarOpenSectionMenu: TextToken = { + es: 'Abrir submenú', + en: 'Open submenu', + de: 'Untermenü öffnen', + pt: 'Abrir submenu', +}; + +export const mainNavigationBarSectionSeeAll: TextToken = { es: 'Ver todo', en: 'See all', de: 'Alle anzeigen', From 35376e62a50fe7fa550a1106836fe528b3922c7b Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Tue, 29 Oct 2024 20:04:48 +0100 Subject: [PATCH 26/62] rollback logic --- src/navigation-bar.css.ts | 17 ---- src/navigation-bar.tsx | 165 +++++--------------------------------- src/text-tokens.tsx | 12 +-- 3 files changed, 20 insertions(+), 174 deletions(-) diff --git a/src/navigation-bar.css.ts b/src/navigation-bar.css.ts index 95e14d012..0b250f803 100644 --- a/src/navigation-bar.css.ts +++ b/src/navigation-bar.css.ts @@ -465,20 +465,3 @@ export const desktopMenuContentFadeIn = style({ export const desktopMenuColumnItem = style({ color: vars.colors.textPrimary, }); - -export const desktopMenuSectionArrowContainer = style({ - position: 'absolute', - zIndex: -1, - right: -8, - top: 0, - bottom: 0, - display: 'flex', - alignItems: 'center', -}); - -export const desktopMenuSectionArrow = style({ - border: 'none', - background: 'transparent', - padding: 0, - transition: `opacity 0.1s`, -}); diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index 427856379..1866ccf09 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -20,7 +20,7 @@ import {useSetModalState} from './modal-context-provider'; import {Logo} from './logo'; import {vars} from './skins/skin-contract.css'; import * as styles from './navigation-bar.css'; -import {cancelEvent, getPrefixedDataAttributes} from './utils/dom'; +import {getPrefixedDataAttributes} from './utils/dom'; import Stack from './stack'; import Box from './box'; import {isRunningAcceptanceTest} from './utils/platform'; @@ -30,7 +30,6 @@ import TextLink from './text-link'; import {Title1, Title3} from './title'; import {ButtonLink} from './button'; import {Grid, GridItem} from './grid'; -import {DOWN, ESC, UP} from './utils/keys'; import type {ExclusifyUnion} from './utils/utility-types'; import type {Variant} from './theme-variant-context'; @@ -296,8 +295,8 @@ const MainNavigationBarBurgerMenu = ({ withChevron {...getInteractivePropsWithCloseMenu(interactiveProps)} > - {texts.mainNavigationBarSectionSeeAll || - t(tokens.mainNavigationBarSectionSeeAll)} + {texts.MainNavigationBarSectionSeeAll || + t(tokens.MainNavigationBarSectionSeeAll)} } > @@ -419,19 +418,14 @@ const MainNavigationBarDesktopMenu = ({ sections, isLargeNavigationBar, hoveredSection, - setHoveredSection, - isMenuHovered, - setIsMenuHovered, }: { sections: ReadonlyArray; isLargeNavigationBar: boolean; hoveredSection: number; - setHoveredSection: (index: number) => void; - isMenuHovered: boolean; - setIsMenuHovered: (value: boolean) => void; }): JSX.Element => { const {isTabletOrSmaller} = useScreenSize(); const menuRef = React.useRef(null); + const [isMenuHovered, setIsMenuHovered] = React.useState(false); const [isMenuOpen, setIsMenuOpen] = React.useState(false); const [openedSection, setOpenedSection] = React.useState(-1); const [menuHeight, setMenuHeight] = React.useState('0px'); @@ -475,25 +469,6 @@ const MainNavigationBarDesktopMenu = ({ return () => clearTimeout(id); }, [openedSection, menuAnimationDuration]); - React.useEffect(() => { - // close menu when ESC key is pressed - const handleKeyDown = (e: KeyboardEvent) => { - switch (e.key) { - case ESC: - setIsMenuHovered(false); - setHoveredSection(-1); - break; - default: - // do nothing - } - }; - - document.addEventListener('keydown', handleKeyDown, false); - return () => { - document.removeEventListener('keydown', handleKeyDown, false); - }; - }, [setHoveredSection, setIsMenuHovered]); - const columns = sections[openedSection]?.menu?.columns || []; const customContent = sections[openedSection]?.menu?.content; @@ -598,18 +573,15 @@ const MainNavigationBarDesktopSmallMenu = ({ isLargeNavigationBar, open, leftPosition, - isMenuHovered, - setIsMenuHovered, }: { section: MainNavigationBarSection; isLargeNavigationBar: boolean; open: boolean; leftPosition: number; - isMenuHovered: boolean; - setIsMenuHovered: (value: boolean) => void; }): JSX.Element => { const {isTabletOrSmaller} = useScreenSize(); const menuRef = React.useRef(null); + const [isMenuHovered, setIsMenuHovered] = React.useState(false); const [isMenuOpen, setIsMenuOpen] = React.useState(false); const menuAnimationDuration = isRunningAcceptanceTest() ? 0 : styles.DESKTOP_MENU_ANIMATION_DURATION_MS; @@ -619,9 +591,7 @@ const MainNavigationBarDesktopSmallMenu = ({ React.useEffect(() => { // Close desktop menu when scrolling in the page const handleScroll = () => { - if (!isTabletOrSmaller) { - setIsMenuOpen(false); - } + if (!isTabletOrSmaller) setIsMenuOpen(false); }; document.addEventListener('scroll', handleScroll); return () => { @@ -704,9 +674,7 @@ const MainNavigationBarDesktopSection = ({ isLastSection, navigationBarRef, hoveredSection, - isLargeMenuHovered, - setIsLargeMenuHovered, - setHoveredSection, + setDesktopHoveredSection, variant, isLargeNavigationBar, desktopSmallMenu, @@ -718,93 +686,37 @@ const MainNavigationBarDesktopSection = ({ isLastSection: boolean; navigationBarRef: React.RefObject; hoveredSection: number; - isLargeMenuHovered?: boolean; - setIsLargeMenuHovered: (value: boolean) => void; - setHoveredSection: (index: number) => void; + setDesktopHoveredSection: (index: number) => void; variant?: Variant; isLargeNavigationBar: boolean; desktopSmallMenu?: boolean; }): JSX.Element => { - const {texts, t} = useTheme(); const {title, menu, ...touchableProps} = section; const sectionRef = React.useRef(null); const [smallMenuLeftPosition, setSmallMenuLeftPosition] = React.useState(0); - const [isArrowFocused, setIsArrowFocused] = React.useState(false); - const [isSectionMenuHovered, setIsSectionMenuHovered] = React.useState(false); // Align menu to left border of the section if it fits. Otherwise, align it to the right border - const getSmallMenuLeftPosition = React.useCallback(() => { + const getSmallMenuLeftPosition = () => { const {left, right} = sectionRef.current?.getBoundingClientRect() || {left: 0, right: 0}; const maxLeftOffset = (navigationBarRef.current?.getBoundingClientRect().right || 0) - styles.DESKTOP_SMALL_MENU_WIDTH; return left <= maxLeftOffset ? left : right - styles.DESKTOP_SMALL_MENU_WIDTH; - }, [navigationBarRef]); - - const openSectionMenu = React.useCallback(() => { - setSmallMenuLeftPosition(getSmallMenuLeftPosition()); - setHoveredSection(menu ? index : -1); - }, [index, menu, getSmallMenuLeftPosition, setHoveredSection]); - - const closeSectionMenu = React.useCallback(() => { - setIsSectionMenuHovered(false); - setIsLargeMenuHovered(false); - setHoveredSection(-1); - }, [setHoveredSection, setIsLargeMenuHovered]); - - React.useEffect(() => { - // If any other section has been hovered, mark the current menu as not hovered in order to close it - if (hoveredSection !== index && hoveredSection !== -1) { - setIsSectionMenuHovered(false); - } - }, [hoveredSection, index]); - - React.useEffect(() => { - const handleKeyDown = (e: KeyboardEvent) => { - switch (e.key) { - // close menu when ESC key is pressed - case ESC: - cancelEvent(e); - closeSectionMenu(); - break; - - // if arrow is focused and DOWN key is pressed, open the menu if it was closed - case DOWN: - if (isArrowFocused && hoveredSection !== index) { - cancelEvent(e); - openSectionMenu(); - } - break; - - // if arrow is focused and UP key is pressed, close the menu if it was opened - case UP: - if (isArrowFocused && hoveredSection === index) { - cancelEvent(e); - closeSectionMenu(); - } - break; - - default: - // do nothing - } - }; - - document.addEventListener('keydown', handleKeyDown, false); - return () => { - document.removeEventListener('keydown', handleKeyDown, false); - }; - }, [openSectionMenu, closeSectionMenu, hoveredSection, index, isArrowFocused]); + }; return ( -
+ <>
setHoveredSection(-1)} + onMouseEnter={() => { + setSmallMenuLeftPosition(getSmallMenuLeftPosition()); + setDesktopHoveredSection(menu ? index : -1); + }} + onMouseLeave={() => setDesktopHoveredSection(-1)} >
- {menu && ( -
setIsArrowFocused(true)} - onBlur={() => setIsArrowFocused(false)} - > - { - if (isArrowFocused) { - if (hoveredSection !== index) { - openSectionMenu(); - } else { - closeSectionMenu(); - } - } - }} - style={{ - pointerEvents: isArrowFocused ? 'auto' : 'none', - opacity: isArrowFocused ? 1 : 0, - }} - > - - -
- )} - {desktopSmallMenu && ( )} -
+ ); }; @@ -893,7 +770,6 @@ export const MainNavigationBar = ({ const setModalState = useSetModalState(); const [desktopHoveredSection, setDesktopHoveredSection] = React.useState(-1); - const [isDesktopLargeMenuHovered, setIsDesktopLargeMenuHovered] = React.useState(false); const renderDesktopSections = () => { return ( @@ -909,10 +785,8 @@ export const MainNavigationBar = ({ isLastSection={idx === sections.length - 1} variant={variant} section={section} - isLargeMenuHovered={isDesktopLargeMenuHovered} - setIsLargeMenuHovered={setIsDesktopLargeMenuHovered} hoveredSection={desktopHoveredSection} - setHoveredSection={setDesktopHoveredSection} + setDesktopHoveredSection={setDesktopHoveredSection} isLargeNavigationBar={hasBottomSections} desktopSmallMenu={desktopSmallMenu} /> @@ -979,9 +853,6 @@ export const MainNavigationBar = ({ sections={sections} isLargeNavigationBar={hasBottomSections} hoveredSection={desktopHoveredSection} - setHoveredSection={setDesktopHoveredSection} - isMenuHovered={isDesktopLargeMenuHovered} - setIsMenuHovered={setIsDesktopLargeMenuHovered} /> )} diff --git a/src/text-tokens.tsx b/src/text-tokens.tsx index 641582036..865023cb3 100644 --- a/src/text-tokens.tsx +++ b/src/text-tokens.tsx @@ -32,8 +32,7 @@ export type Dictionary = { menuLabelSuffix: string; openNavigationMenu: string; closeNavigationMenu: string; - mainNavigationBarOpenSectionMenu: string; - mainNavigationBarSectionSeeAll: string; + MainNavigationBarSectionSeeAll: string; backNavigationBar: string; clearButton: string; carouselNextButton: string; @@ -293,14 +292,7 @@ export const closeNavigationMenu: TextToken = { pt: 'Fechar menu de navegação', }; -export const mainNavigationBarOpenSectionMenu: TextToken = { - es: 'Abrir submenú', - en: 'Open submenu', - de: 'Untermenü öffnen', - pt: 'Abrir submenu', -}; - -export const mainNavigationBarSectionSeeAll: TextToken = { +export const MainNavigationBarSectionSeeAll: TextToken = { es: 'Ver todo', en: 'See all', de: 'Alle anzeigen', From 75cea2db12ab8dc397af7eb3c5a93dbae130b8df Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Tue, 29 Oct 2024 20:16:22 +0100 Subject: [PATCH 27/62] make scroll logic more stable --- src/navigation-bar.tsx | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index 1866ccf09..b0adc0ecb 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -465,9 +465,11 @@ const MainNavigationBarDesktopMenu = ({ // Disable scroll in menu content until height's animation is finished to avoid // showing the scrollbar while the menu's container is changing it's height setIsMenuContentScrollable(false); - const id = setTimeout(() => setIsMenuContentScrollable(true), menuAnimationDuration); - return () => clearTimeout(id); - }, [openedSection, menuAnimationDuration]); + if (isMenuOpen) { + const id = setTimeout(() => setIsMenuContentScrollable(true), menuAnimationDuration); + return () => clearTimeout(id); + } + }, [isMenuOpen, openedSection, menuAnimationDuration]); const columns = sections[openedSection]?.menu?.columns || []; const customContent = sections[openedSection]?.menu?.content; From a848552768a523475029c401aff7c16556249fb2 Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Wed, 30 Oct 2024 21:17:26 +0100 Subject: [PATCH 28/62] refactor main logic for desktop menu, add arrow logic, cleanup code and add comments --- src/navigation-bar.css.ts | 31 +++- src/navigation-bar.tsx | 371 +++++++++++++++++++++++++++----------- src/text-tokens.tsx | 12 +- 3 files changed, 301 insertions(+), 113 deletions(-) diff --git a/src/navigation-bar.css.ts b/src/navigation-bar.css.ts index 0b250f803..5ab49e293 100644 --- a/src/navigation-bar.css.ts +++ b/src/navigation-bar.css.ts @@ -117,10 +117,10 @@ export const navbarBorderColorVariants = styleVariants({ ], }); -export const firstSection = style({}); -export const lastSection = style({}); +export const desktopMenuFirstSection = style({}); +export const desktopMenuLastSection = style({}); -export const sectionContainer = style([ +export const desktopMenuSectionContainer = style([ sprinkles({position: 'relative', display: 'flex'}), { '::after': { @@ -134,16 +134,37 @@ export const sectionContainer = style([ selectors: { // Add extra width on the left/right of interactive area so that we cover the space between sections - [`&:not(${firstSection}):after`]: { + [`&:not(${desktopMenuFirstSection}):after`]: { left: -16, }, - [`&:not(${lastSection}):after`]: { + [`&:not(${desktopMenuLastSection}):after`]: { right: -16, }, }, }, ]); +export const desktopMenuSectionWithArrowWrapper = style({ + position: 'relative', +}); + +export const desktopMenuSectionArrowContainer = style({ + position: 'absolute', + zIndex: -1, + right: -8, + top: 0, + bottom: 0, + display: 'flex', + alignItems: 'center', +}); + +export const desktopMenuSectionArrow = style({ + border: 'none', + background: 'transparent', + padding: 0, + transition: `opacity 0.1s`, +}); + export const section = style([ sprinkles({ height: NAVBAR_HEIGHT_DESKTOP, diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index b0adc0ecb..bd6d2fa03 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -20,7 +20,7 @@ import {useSetModalState} from './modal-context-provider'; import {Logo} from './logo'; import {vars} from './skins/skin-contract.css'; import * as styles from './navigation-bar.css'; -import {getPrefixedDataAttributes} from './utils/dom'; +import {cancelEvent, getPrefixedDataAttributes} from './utils/dom'; import Stack from './stack'; import Box from './box'; import {isRunningAcceptanceTest} from './utils/platform'; @@ -30,6 +30,7 @@ import TextLink from './text-link'; import {Title1, Title3} from './title'; import {ButtonLink} from './button'; import {Grid, GridItem} from './grid'; +import {DOWN, ESC, UP} from './utils/keys'; import type {ExclusifyUnion} from './utils/utility-types'; import type {Variant} from './theme-variant-context'; @@ -211,6 +212,8 @@ type SectionColumn = { type SectionMenu = ExclusifyUnion< | {columns: ReadonlyArray} + // content prop can receive a function as value with the closeMenu callback as parameter. + // In this way, custom content can also force the menu to close programmatically. | {content?: React.ReactElement | ((props: {closeMenu: () => void}) => React.ReactElement)} >; @@ -233,6 +236,139 @@ type MainNavigationBarProps = { desktopSmallMenu?: boolean; }; +type MainNavigationBarDesktopMenuState = { + isMenuOpen: boolean; + openedSection: number; + setSectionAsActive: (index: number) => void; + setSectionAsInactive: (index: number, forceCloseMenu?: boolean) => void; + closeMenu: () => void; + onMenuExited: () => void; + setIsMenuHovered: (value: boolean) => void; +}; + +const MainNavigationBarDesktopMenuContext = React.createContext({ + isMenuOpen: false, + openedSection: -1, + setSectionAsActive: () => {}, + setSectionAsInactive: () => {}, + closeMenu: () => {}, + onMenuExited: () => {}, + setIsMenuHovered: () => {}, +}); + +const MainNavigationBarDesktopMenuContextProvider = ({ + children, + sections, + isSmallMenu, +}: { + children: React.ReactNode; + sections?: ReadonlyArray; + isSmallMenu?: boolean; +}): JSX.Element => { + const [isMenuOpen, setIsMenuOpen] = React.useState(false); + const [isMenuHovered, setIsMenuHovered] = React.useState(false); + + // Section that has been hovered. This state is used to determine whether the menu opens/closes. + const [activeSection, setActiveSection] = React.useState(-1); + + /** + * Section that is currently being rendered. We keep this as a different state from + * activeSection because when the large menu is closing, we still need to display the + * section that was opened. + */ + const [openedSection, setOpenedSection] = React.useState(-1); + + const closeMenu = React.useCallback(() => { + setIsMenuHovered(false); + setActiveSection(-1); + }, []); + + // Callback used when a section has been hovered or it's focused arrow has been pressed while it's closed + const setSectionAsActive = React.useCallback( + (index: number) => { + if (sections?.[index]?.menu) { + setActiveSection(index); + } else { + // If the section has no menu, close the current opened one + closeMenu(); + } + }, + [sections, closeMenu] + ); + + // Callback used when a section has been blurred or it's focused arrow has been pressed while it's open + const setSectionAsInactive = React.useCallback( + (index: number, forceCloseMenu?: boolean) => { + if (index === openedSection) { + // We may want to close the menu even when menu is hovered, and if so, we should reset isMenuHovered + // (for example, when the current menu is being hovered and we press the arrow from another section) + if (forceCloseMenu) { + closeMenu(); + } else { + setActiveSection(-1); + } + } + }, + [openedSection, closeMenu] + ); + + // Callback used to reset openedSection once the large menu close animation has finished + const onMenuExited = React.useCallback(() => { + setOpenedSection(-1); + }, []); + + React.useEffect(() => { + if (activeSection === -1 && !isMenuHovered) { + setIsMenuOpen(false); + if (isSmallMenu) { + // When rendering the small menu, we don't need to wait for the animation to finish + onMenuExited(); + } + } else if (activeSection !== -1) { + setOpenedSection(activeSection); + setIsMenuOpen(true); + } + }, [isMenuHovered, activeSection, isSmallMenu, onMenuExited]); + + React.useEffect(() => { + const handleKeyDown = (e: KeyboardEvent) => { + switch (e.key) { + case ESC: + closeMenu(); + break; + default: + // do nothing + } + }; + // Close menu when ESC key is pressed or when scrolling in the page + document.addEventListener('keydown', handleKeyDown, false); + document.addEventListener('scroll', closeMenu); + return () => { + document.removeEventListener('keydown', handleKeyDown, false); + document.removeEventListener('scroll', closeMenu); + }; + }, [closeMenu]); + + return ( + + {children} + + ); +}; + +export const useMainNavigationBarDesktopMenuState = (): MainNavigationBarDesktopMenuState => + React.useContext(MainNavigationBarDesktopMenuContext); + const MainNavigationBarBurgerMenu = ({ sections, extra, @@ -295,8 +431,8 @@ const MainNavigationBarBurgerMenu = ({ withChevron {...getInteractivePropsWithCloseMenu(interactiveProps)} > - {texts.MainNavigationBarSectionSeeAll || - t(tokens.MainNavigationBarSectionSeeAll)} + {texts.mainNavigationBarSectionSeeAll || + t(tokens.mainNavigationBarSectionSeeAll)} } > @@ -417,17 +553,11 @@ const MainNavigationBarBurgerMenu = ({ const MainNavigationBarDesktopMenu = ({ sections, isLargeNavigationBar, - hoveredSection, }: { sections: ReadonlyArray; isLargeNavigationBar: boolean; - hoveredSection: number; }): JSX.Element => { - const {isTabletOrSmaller} = useScreenSize(); const menuRef = React.useRef(null); - const [isMenuHovered, setIsMenuHovered] = React.useState(false); - const [isMenuOpen, setIsMenuOpen] = React.useState(false); - const [openedSection, setOpenedSection] = React.useState(-1); const [menuHeight, setMenuHeight] = React.useState('0px'); const [isMenuContentScrollable, setIsMenuContentScrollable] = React.useState(false); const isAnySectionOpened = React.useRef(false); @@ -436,25 +566,8 @@ const MainNavigationBarDesktopMenu = ({ const topSpace = isLargeNavigationBar ? NAVBAR_HEIGHT_DESKTOP_LARGE : NAVBAR_HEIGHT_DESKTOP; const bottomSpace = 40; - React.useEffect(() => { - if (!isMenuHovered && hoveredSection === -1) { - setIsMenuOpen(false); - } else if (hoveredSection !== -1) { - setOpenedSection(hoveredSection); - setIsMenuOpen(true); - } - }, [isMenuHovered, hoveredSection]); - - React.useEffect(() => { - // Close desktop menu when scrolling in the page - const handleScroll = () => { - if (!isTabletOrSmaller) setIsMenuOpen(false); - }; - document.addEventListener('scroll', handleScroll); - return () => { - document.removeEventListener('scroll', handleScroll); - }; - }, [isTabletOrSmaller]); + const {isMenuOpen, openedSection, closeMenu, onMenuExited, setIsMenuHovered} = + useMainNavigationBarDesktopMenuState(); React.useEffect(() => { // scroll to top of the content if the opened section changed @@ -484,12 +597,13 @@ const MainNavigationBarDesktopMenu = ({ mountOnEnter unmountOnExit onEnter={() => { + // Hack to be able to set the fade-in effect in the content after the first render isAnySectionOpened.current = true; }} onExiting={() => setIsMenuContentScrollable(false)} onExited={() => { isAnySectionOpened.current = false; - setOpenedSection(-1); + onMenuExited(); }} >
{customContent ? ( typeof customContent === 'function' ? ( - // the callback to close the menu is not required in desktop menu - customContent({closeMenu: () => {}}) + customContent({closeMenu}) ) : ( customContent ) @@ -573,46 +686,30 @@ const MainNavigationBarDesktopMenu = ({ const MainNavigationBarDesktopSmallMenu = ({ section, isLargeNavigationBar, - open, leftPosition, + index, }: { section: MainNavigationBarSection; isLargeNavigationBar: boolean; - open: boolean; leftPosition: number; + index: number; }): JSX.Element => { - const {isTabletOrSmaller} = useScreenSize(); const menuRef = React.useRef(null); - const [isMenuHovered, setIsMenuHovered] = React.useState(false); - const [isMenuOpen, setIsMenuOpen] = React.useState(false); const menuAnimationDuration = isRunningAcceptanceTest() ? 0 : styles.DESKTOP_MENU_ANIMATION_DURATION_MS; const topSpace = isLargeNavigationBar ? NAVBAR_HEIGHT_DESKTOP_LARGE : NAVBAR_HEIGHT_DESKTOP; const bottomSpace = 40; - React.useEffect(() => { - // Close desktop menu when scrolling in the page - const handleScroll = () => { - if (!isTabletOrSmaller) setIsMenuOpen(false); - }; - document.addEventListener('scroll', handleScroll); - return () => { - document.removeEventListener('scroll', handleScroll); - }; - }, [isTabletOrSmaller]); - - React.useEffect(() => { - setIsMenuOpen(open || isMenuHovered); - }, [open, isMenuHovered]); - const columns = section.menu?.columns || []; const customContent = section?.menu?.content; + const {openedSection, setIsMenuHovered, closeMenu} = useMainNavigationBarDesktopMenuState(); + return (
{customContent ? ( typeof customContent === 'function' ? ( - // the callback to close the menu is not required in desktop menu - customContent({closeMenu: () => {}}) + customContent({closeMenu}) ) : ( customContent ) @@ -675,8 +771,6 @@ const MainNavigationBarDesktopSection = ({ isFirstSection, isLastSection, navigationBarRef, - hoveredSection, - setDesktopHoveredSection, variant, isLargeNavigationBar, desktopSmallMenu, @@ -687,38 +781,75 @@ const MainNavigationBarDesktopSection = ({ isFirstSection: boolean; isLastSection: boolean; navigationBarRef: React.RefObject; - hoveredSection: number; - setDesktopHoveredSection: (index: number) => void; variant?: Variant; isLargeNavigationBar: boolean; desktopSmallMenu?: boolean; }): JSX.Element => { + const {texts, t} = useTheme(); const {title, menu, ...touchableProps} = section; const sectionRef = React.useRef(null); const [smallMenuLeftPosition, setSmallMenuLeftPosition] = React.useState(0); + const [isArrowFocused, setIsArrowFocused] = React.useState(false); + const {openedSection, setSectionAsActive, setSectionAsInactive} = useMainNavigationBarDesktopMenuState(); + + const openSectionMenu = React.useCallback(() => { + // Align small menu to left border of the section if it fits. Otherwise, align it to the right border + const getSmallMenuLeftPosition = () => { + const {left, right} = sectionRef.current?.getBoundingClientRect() || {left: 0, right: 0}; + const maxLeftOffset = + (navigationBarRef.current?.getBoundingClientRect().right || 0) - + styles.DESKTOP_SMALL_MENU_WIDTH; + + return left <= maxLeftOffset ? left : right - styles.DESKTOP_SMALL_MENU_WIDTH; + }; - // Align menu to left border of the section if it fits. Otherwise, align it to the right border - const getSmallMenuLeftPosition = () => { - const {left, right} = sectionRef.current?.getBoundingClientRect() || {left: 0, right: 0}; - const maxLeftOffset = - (navigationBarRef.current?.getBoundingClientRect().right || 0) - styles.DESKTOP_SMALL_MENU_WIDTH; + if (desktopSmallMenu) { + setSmallMenuLeftPosition(getSmallMenuLeftPosition()); + } - return left <= maxLeftOffset ? left : right - styles.DESKTOP_SMALL_MENU_WIDTH; - }; + setSectionAsActive(index); + }, [desktopSmallMenu, index, setSectionAsActive, navigationBarRef]); + + React.useEffect(() => { + const handleKeyDown = (e: KeyboardEvent) => { + switch (e.key) { + // if arrow is focused and DOWN key is pressed, open the menu if it was closed + case DOWN: + if (isArrowFocused) { + cancelEvent(e); + openSectionMenu(); + } + break; + + // if arrow is focused and UP key is pressed, close the menu if it was opened + case UP: + if (isArrowFocused) { + cancelEvent(e); + setSectionAsInactive(index, true); + } + break; + + default: + // do nothing + } + }; + + document.addEventListener('keydown', handleKeyDown, false); + return () => { + document.removeEventListener('keydown', handleKeyDown, false); + }; + }, [index, isArrowFocused, openSectionMenu, setSectionAsInactive]); return ( - <> +
{ - setSmallMenuLeftPosition(getSmallMenuLeftPosition()); - setDesktopHoveredSection(menu ? index : -1); - }} - onMouseLeave={() => setDesktopHoveredSection(-1)} + onMouseEnter={() => openSectionMenu()} + onMouseLeave={() => setSectionAsInactive(index)} >
- {desktopSmallMenu && ( - + {menu && ( + <> +
setIsArrowFocused(true)} + onBlur={() => setIsArrowFocused(false)} + > + { + if (isArrowFocused) { + if (index !== openedSection) { + openSectionMenu(); + } else { + setSectionAsInactive(index, true); + } + } + }} + style={{ + pointerEvents: isArrowFocused ? 'auto' : 'none', + opacity: isArrowFocused ? 1 : 0, + }} + > + + +
+ {desktopSmallMenu && ( + + )} + )} - +
); }; @@ -771,8 +936,6 @@ export const MainNavigationBar = ({ const navigationBarRef = React.useRef(null); const setModalState = useSetModalState(); - const [desktopHoveredSection, setDesktopHoveredSection] = React.useState(-1); - const renderDesktopSections = () => { return ( +
+
); }; @@ -570,7 +663,7 @@ const MainNavigationBarDesktopMenu = ({ useMainNavigationBarDesktopMenuState(); React.useEffect(() => { - // scroll to top of the content if the opened section changed + // Scroll to top of the content if the opened section changed if (menuRef.current) { menuRef.current.scrollTop = 0; } @@ -625,8 +718,9 @@ const MainNavigationBarDesktopMenu = ({ })} ref={(el) => { if (el) { - // In old browsers, the speed of the menu height's animation will depend on - // the height of the content instead of the height of the container. + // In old browsers where min() is not supported, the speed of the menu + // height's animation will depend on the height of the content instead of + // the height of the container. const value = supportsCssMin() ? `min(${el.scrollHeight}px, calc(100vh - ${topSpace}px - ${bottomSpace}px))` : `${el.scrollHeight}px`; @@ -641,35 +735,18 @@ const MainNavigationBarDesktopMenu = ({ customContent ) ) : ( - + {columns.map((column, columnIdx) => ( - - - {column.title} - - - - {column.items.map( - ({title, ...touchableProps}, itemIdx) => ( -
- - {title} - -
- ) - )} -
-
+
))}
@@ -734,26 +811,13 @@ const MainNavigationBarDesktopSmallMenu = ({ customContent ) ) : ( - + {columns.map((column, columnIdx) => ( - - - {column.title} - - - - {column.items.map(({title, ...touchableProps}, itemIdx) => ( -
- - {title} - -
- ))} -
-
+ ))}
)} @@ -813,7 +877,7 @@ const MainNavigationBarDesktopSection = ({ React.useEffect(() => { const handleKeyDown = (e: KeyboardEvent) => { switch (e.key) { - // if arrow is focused and DOWN key is pressed, open the menu if it was closed + // If arrow is focused and DOWN key is pressed, open the menu if it was closed case DOWN: if (isArrowFocused) { cancelEvent(e); @@ -821,7 +885,7 @@ const MainNavigationBarDesktopSection = ({ } break; - // if arrow is focused and UP key is pressed, close the menu if it was opened + // If arrow is focused and UP key is pressed, close the menu if it was opened case UP: if (isArrowFocused) { cancelEvent(e); @@ -830,7 +894,7 @@ const MainNavigationBarDesktopSection = ({ break; default: - // do nothing + // Do nothing } }; @@ -1022,17 +1086,20 @@ export const MainNavigationBar = ({ {!isTabletOrSmaller ? ( mainNavBar ) : ( - - {mainNavBar} + <> + + {mainNavBar} + - + )} ); From ae21da34b8ba5ac0959e4ecec0e6b3d096652966 Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Thu, 31 Oct 2024 15:32:19 +0100 Subject: [PATCH 30/62] add possibility of sections without custom interaction --- src/navigation-bar.tsx | 144 ++++++++++++++++++++++++++++------------- 1 file changed, 100 insertions(+), 44 deletions(-) diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index 334dd8c31..3dad6a81c 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -203,6 +203,7 @@ export const NavigationBar = ({ }; type InteractiveProps = ExclusifyUnion<{href: string} | {to: string} | {onPress: () => void}>; +type MaybeInteractiveProps = ExclusifyUnion<{href?: string} | {to?: string} | {onPress?: () => void}>; type SectionItem = {title: string} & InteractiveProps; @@ -221,7 +222,7 @@ type SectionMenu = ExclusifyUnion< type MainNavigationBarSection = { title: string; menu?: SectionMenu; -} & InteractiveProps; +} & MaybeInteractiveProps; type MainNavigationBarProps = { sections?: ReadonlyArray; @@ -268,6 +269,7 @@ const MainNavigationBarDesktopMenuContextProvider = ({ sections?: ReadonlyArray; isSmallMenu?: boolean; }): JSX.Element => { + const {isTabletOrSmaller} = useScreenSize(); const [isMenuOpen, setIsMenuOpen] = React.useState(false); const [isMenuHovered, setIsMenuHovered] = React.useState(false); @@ -321,6 +323,14 @@ const MainNavigationBarDesktopMenuContextProvider = ({ setOpenedSection(-1); }, []); + // Close menu when viewport is too small + React.useEffect(() => { + if (isTabletOrSmaller) { + closeMenu(); + setOpenedSection(-1); + } + }, [isTabletOrSmaller, closeMenu]); + React.useEffect(() => { if (activeSection === -1 && !isMenuHovered) { setIsMenuOpen(false); @@ -475,9 +485,9 @@ const MainNavigationBarBurgerMenu = ({ disableFocusTrap: boolean; setDisableFocusTrap: (value: boolean) => void; }) => { - const {texts, t} = useTheme(); - const {isDarkMode} = useTheme(); + const {texts, t, isDarkMode} = useTheme(); const [openedSection, setOpenedSection] = React.useState(-1); + const [isSubMenuOpen, setIsSubMenuOpen] = React.useState(false); const menuRef = React.useRef(null); const menuContentRef = React.useRef(null); @@ -486,6 +496,14 @@ const MainNavigationBarBurgerMenu = ({ // Close the menu when one of the rows is pressed const getInteractivePropsWithCloseMenu = (interactiveProps: InteractiveProps) => { + if ( + interactiveProps.href === undefined && + interactiveProps.onPress === undefined && + interactiveProps.to === undefined + ) { + return {onPress: closeMenu}; + } + return interactiveProps.onPress ? { onPress: () => { @@ -496,12 +514,14 @@ const MainNavigationBarBurgerMenu = ({ : {...interactiveProps, onNavigate: () => closeMenu()}; }; - const [isSubMenuOpen, setIsSubMenuOpen] = React.useState(false); - const renderSection = (index: number) => { const {title, menu, ...interactiveProps} = sections[index]; const columns = menu?.columns || []; const customContent = menu?.content; + const hasCustomInteraction = + interactiveProps.href !== undefined || + interactiveProps.onPress !== undefined || + interactiveProps.to !== undefined; return ( @@ -515,16 +535,20 @@ const MainNavigationBarBurgerMenu = ({ /> - {texts.mainNavigationBarSectionSeeAll || - t(tokens.mainNavigationBarSectionSeeAll)} - + hasCustomInteraction ? ( + + {texts.mainNavigationBarSectionSeeAll || + t(tokens.mainNavigationBarSectionSeeAll)} + + ) : undefined } > {sections[index].title} @@ -616,7 +640,7 @@ const MainNavigationBarBurgerMenu = ({ }, } : getInteractivePropsWithCloseMenu( - interactiveProps + interactiveProps as InteractiveProps ))} /> ) @@ -856,6 +880,11 @@ const MainNavigationBarDesktopSection = ({ const [isArrowFocused, setIsArrowFocused] = React.useState(false); const {openedSection, setSectionAsActive, setSectionAsInactive} = useMainNavigationBarDesktopMenuState(); + const hasCustomInteraction = + touchableProps.href !== undefined || + touchableProps.onPress !== undefined || + touchableProps.to !== undefined; + const openSectionMenu = React.useCallback(() => { // Align small menu to left border of the section if it fits. Otherwise, align it to the right border const getSmallMenuLeftPosition = () => { @@ -904,6 +933,26 @@ const MainNavigationBarDesktopSection = ({ }; }, [index, isArrowFocused, openSectionMenu, setSectionAsInactive]); + // Close the menu when one of the rows is pressed + const getInteractivePropsWithCloseMenu = React.useCallback( + (touchableProps: InteractiveProps) => { + if (!hasCustomInteraction) { + return { + onPress: () => { + if (index !== openedSection) { + openSectionMenu(); + } else { + setSectionAsInactive(index, true); + } + }, + }; + } + + return touchableProps as InteractiveProps; + }, + [hasCustomInteraction, index, openSectionMenu, openedSection, setSectionAsInactive] + ); + return (
setSectionAsInactive(index)} > {menu && ( <> -
setIsArrowFocused(true)} - onBlur={() => setIsArrowFocused(false)} - > - { - if (isArrowFocused) { - if (index !== openedSection) { - openSectionMenu(); - } else { - setSectionAsInactive(index, true); - } - } - }} - style={{ - pointerEvents: isArrowFocused ? 'auto' : 'none', - opacity: isArrowFocused ? 1 : 0, - }} + {hasCustomInteraction && ( +
setIsArrowFocused(true)} + onBlur={() => setIsArrowFocused(false)} > - { + if (isArrowFocused) { + if (index !== openedSection) { + openSectionMenu(); + } else { + setSectionAsInactive(index, true); + } + } + }} style={{ - transform: `rotate(${openedSection === index ? 90 : -90}deg)`, + pointerEvents: isArrowFocused ? 'auto' : 'none', + opacity: isArrowFocused ? 1 : 0, }} - /> - -
+ > + +
+
+ )} {desktopSmallMenu && ( Date: Thu, 31 Oct 2024 15:44:09 +0100 Subject: [PATCH 31/62] a11y roles and small fixes --- src/navigation-bar.tsx | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index 3dad6a81c..5d9a591c2 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -445,7 +445,7 @@ const MainNavigationBarDesktopMenuSectionColumn = ({ {column.title} - + {column.items.map(({title, ...touchableProps}, itemIdx) => (
{title} @@ -905,10 +906,12 @@ const MainNavigationBarDesktopSection = ({ React.useEffect(() => { const handleKeyDown = (e: KeyboardEvent) => { + const shouldReactOnArrowKeyPress = isArrowFocused || (menu && !hasCustomInteraction); + switch (e.key) { // If arrow is focused and DOWN key is pressed, open the menu if it was closed case DOWN: - if (isArrowFocused) { + if (shouldReactOnArrowKeyPress) { cancelEvent(e); openSectionMenu(); } @@ -916,7 +919,7 @@ const MainNavigationBarDesktopSection = ({ // If arrow is focused and UP key is pressed, close the menu if it was opened case UP: - if (isArrowFocused) { + if (shouldReactOnArrowKeyPress) { cancelEvent(e); setSectionAsInactive(index, true); } @@ -931,7 +934,7 @@ const MainNavigationBarDesktopSection = ({ return () => { document.removeEventListener('keydown', handleKeyDown, false); }; - }, [index, isArrowFocused, openSectionMenu, setSectionAsInactive]); + }, [index, isArrowFocused, openSectionMenu, setSectionAsInactive, menu, hasCustomInteraction]); // Close the menu when one of the rows is pressed const getInteractivePropsWithCloseMenu = React.useCallback( @@ -967,10 +970,12 @@ const MainNavigationBarDesktopSection = ({ { if (isArrowFocused) { if (index !== openedSection) { From 7f360416a2a17794804d881a0591fd9183617a2c Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Thu, 31 Oct 2024 15:46:44 +0100 Subject: [PATCH 32/62] fix aria expanded in arrow --- src/navigation-bar.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index 5d9a591c2..ac2577ba9 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -1002,7 +1002,7 @@ const MainNavigationBarDesktopSection = ({ className={styles.desktopMenuSectionArrow} aria-label={`${section.title}, ${texts.mainNavigationBarOpenSectionMenu || t(tokens.mainNavigationBarOpenSectionMenu)}`} aria-haspopup - aria-expanded={!hasCustomInteraction ? openedSection === index : undefined} + aria-expanded={openedSection === index} onPress={() => { if (isArrowFocused) { if (index !== openedSection) { From b2fe0bbd0e21d4de3049d10e0bb1be937605bd49 Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Thu, 31 Oct 2024 15:56:38 +0100 Subject: [PATCH 33/62] code cleanup --- src/navigation-bar.tsx | 82 +++++++++++++++++++++--------------------- 1 file changed, 41 insertions(+), 41 deletions(-) diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index ac2577ba9..d4c3b5bb0 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -277,7 +277,7 @@ const MainNavigationBarDesktopMenuContextProvider = ({ // up/down arrows to navigate through the items of a section. const [focusedItem, setFocusedItem] = React.useState<{column: number; index: number} | undefined>(); - // Section that has been hovered. This state is used to determine whether the menu opens/closes. + // Section that has been hovered. This state is used to determine whether the menu should be open or closed. const [activeSection, setActiveSection] = React.useState(-1); // Section that is currently being rendered. We keep this as a different state from activeSection @@ -430,45 +430,6 @@ const MainNavigationBarDesktopMenuContextProvider = ({ export const useMainNavigationBarDesktopMenuState = (): MainNavigationBarDesktopMenuState => React.useContext(MainNavigationBarDesktopMenuContext); -const MainNavigationBarDesktopMenuSectionColumn = ({ - column, - columnIndex, -}: { - column: SectionColumn; - columnIndex: number; -}) => { - const {setFocusedItem} = useMainNavigationBarDesktopMenuState(); - - return ( - - - {column.title} - - - - {column.items.map(({title, ...touchableProps}, itemIdx) => ( -
setFocusedItem({column: columnIndex, index: itemIdx})} - onBlur={() => setFocusedItem(undefined)} - > - - {title} - -
- ))} -
-
- ); -}; - const MainNavigationBarBurgerMenu = ({ sections, extra, @@ -668,6 +629,45 @@ const MainNavigationBarBurgerMenu = ({ ); }; +const MainNavigationBarDesktopMenuSectionColumn = ({ + column, + columnIndex, +}: { + column: SectionColumn; + columnIndex: number; +}) => { + const {setFocusedItem} = useMainNavigationBarDesktopMenuState(); + + return ( + + + {column.title} + + + + {column.items.map(({title, ...touchableProps}, itemIdx) => ( +
setFocusedItem({column: columnIndex, index: itemIdx})} + onBlur={() => setFocusedItem(undefined)} + > + + {title} + +
+ ))} +
+
+ ); +}; + const MainNavigationBarDesktopMenu = ({ sections, isLargeNavigationBar, @@ -936,9 +936,9 @@ const MainNavigationBarDesktopSection = ({ }; }, [index, isArrowFocused, openSectionMenu, setSectionAsInactive, menu, hasCustomInteraction]); - // Close the menu when one of the rows is pressed const getInteractivePropsWithCloseMenu = React.useCallback( (touchableProps: InteractiveProps) => { + // Open or close the menu when a section without interaction is pressed if (!hasCustomInteraction) { return { onPress: () => { From ea1a14864ad9599e116eee7d0fdc84e08e64af13 Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Thu, 31 Oct 2024 16:52:16 +0100 Subject: [PATCH 34/62] code cleanup, add snippets and update story --- playroom/snippets.tsx | 204 +++++++++++++++--- src/__stories__/main-navigation-bar-story.tsx | 71 +++++- src/navigation-bar.tsx | 62 +++--- 3 files changed, 279 insertions(+), 58 deletions(-) diff --git a/playroom/snippets.tsx b/playroom/snippets.tsx index 5d9f5662c..46b54e269 100644 --- a/playroom/snippets.tsx +++ b/playroom/snippets.tsx @@ -2408,33 +2408,183 @@ const navigationBarSnippets = [ group: 'NavigationBar', name: 'MainNavigationBar', code: ` - ({ - title, - onPress: () => setState("index", idx), - }))} - selectedIndex={getState("index", 0)} - right={ - - {}} - aria-label="shopping cart with 2 items" - > - - - - - {}} aria-label="Open profile"> - - {isDesktopOrBigger && "María López Serrano"} - - - } -/>`, + ({ + title, + onPress: () => setState("index", idx), + }))} + selectedIndex={getState("index", 0)} + right={ + + {}} + aria-label="shopping cart with 2 items" + > + + + + + {}} aria-label="Open profile"> + + {isDesktopOrBigger && "María López Serrano"} + + + } + />`, + }, + { + group: 'NavigationBar', + name: 'MainNavigationBar with large menu', + code: ` + ({ + onPress: () => setState("index", idx), + title, + menu: + title === "Start" + ? { + columns: [ + { + title: \`\${title} 1\`, + items: [ + { + title: "item 1", + onPress: () => {}, + }, + { + title: "item 2", + onPress: () => {}, + }, + { + title: "item 3", + onPress: () => {}, + }, + ], + }, + { + title: \`\${title} 2\`, + items: [ + { + title: "item 1", + onPress: () => {}, + }, + { + title: "item 2", + onPress: () => {}, + }, + { + title: "item 3", + onPress: () => {}, + }, + ], + }, + ], + } + : title === "Account" + ? { + columns: [ + { + title: \`\${title} 1\`, + items: [ + { + title: "item 1", + onPress: () => {}, + }, + ], + }, + ], + } + : title === "Explore" + ? { + content: ({ closeMenu }) => ( + + Custom content + + Close menu + + ), + } + : undefined, + }))} + selectedIndex={getState("index", 0)} + />`, + }, + { + group: 'NavigationBar', + name: 'MainNavigationBar with small menu', + code: ` + ({ + onPress: () => setState("index", idx), + title, + menu: + title === "Start" + ? { + columns: [ + { + title: \`\${title} 1\`, + items: [ + { + title: "item 1", + onPress: () => {}, + }, + { + title: "item 2", + onPress: () => {}, + }, + { + title: "item 3", + onPress: () => {}, + }, + ], + }, + ], + } + : title === "Account" + ? { + columns: [ + { + title: \`\${title} 1\`, + items: [ + { + title: "item 1", + onPress: () => {}, + }, + ], + }, + ], + } + : title === "Explore" + ? { + columns: [ + { + title: \`\${title} 1\`, + items: [ + { + title: "item 1", + onPress: () => {}, + }, + { + title: "item 2", + onPress: () => {}, + }, + { + title: "item 3", + onPress: () => {}, + }, + ], + }, + ], + } + : undefined, + }))} + selectedIndex={getState("index", 0)} + />`, }, { group: 'NavigationBar', diff --git a/src/__stories__/main-navigation-bar-story.tsx b/src/__stories__/main-navigation-bar-story.tsx index b570b2197..97a3179f7 100644 --- a/src/__stories__/main-navigation-bar-story.tsx +++ b/src/__stories__/main-navigation-bar-story.tsx @@ -7,6 +7,8 @@ import { NavigationBarAction, NavigationBarActionGroup, Placeholder, + Stack, + Text3, useScreenSize, } from '..'; import avatarImg from './images/avatar.jpg'; @@ -21,7 +23,7 @@ export default { }, }; -const sectionTitles = ['Start', 'Account', 'Explore', 'Support']; +const sectionTitles = ['Start', 'Account', 'Explore', 'Support'] as const; type Args = { variant: Variant; @@ -29,20 +31,75 @@ type Args = { burgerMenuExtra: boolean; large: boolean; sections: boolean; + menu: 'undefined' | 'default' | 'custom'; + desktopSmallMenu: boolean; }; -export const Default: StoryComponent = ({variant, border, burgerMenuExtra, large, sections}) => { +export const Default: StoryComponent = ({ + variant, + border, + burgerMenuExtra, + large, + sections, + menu, + desktopSmallMenu, +}) => { const [selectedIndex, setSelectedIndex] = React.useState(0); const {isDesktopOrBigger} = useScreenSize(); + + const sectionDefaultMenuItemsCount = { + Start: 3, + Account: 1, + Explore: 2, + Support: 3, + }; + return ( : undefined} + desktopSmallMenu={desktopSmallMenu} sections={ sections - ? sectionTitles.map((title, idx) => ({title, onPress: () => setSelectedIndex(idx)})) + ? sectionTitles.map((title, idx) => ({ + title, + onPress: () => setSelectedIndex(idx), + menu: + menu === 'undefined' + ? undefined + : menu === 'default' + ? { + title: `${title} menu`, + columns: Array.from( + {length: desktopSmallMenu ? 1 : 2}, + (_, columnIndex) => ({ + title: `${title} ${columnIndex + 1}`, + items: Array.from( + {length: sectionDefaultMenuItemsCount[title]}, + (_, index) => ({ + title: `item ${index + 1}`, + onPress: () => {}, + }) + ), + }) + ), + } + : { + content: ( + + {title} menu + {Array.from( + {length: sectionDefaultMenuItemsCount[title]}, + (_, index) => ( + + ) + )} + + ), + }, + })) : undefined } selectedIndex={selectedIndex} @@ -71,6 +128,8 @@ Default.args = { burgerMenuExtra: false, large: false, sections: true, + menu: 'undefined', + desktopSmallMenu: false, }; Default.argTypes = { @@ -78,4 +137,10 @@ Default.argTypes = { options: ['default', 'inverse', 'alternative'], control: {type: 'select'}, }, + menu: { + options: ['undefined', 'default', 'custom'], + control: {type: 'select'}, + if: {arg: 'sections'}, + }, + desktopSmallMenu: {if: {arg: 'sections'}}, }; diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index d4c3b5bb0..984f2cb20 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -427,6 +427,25 @@ const MainNavigationBarDesktopMenuContextProvider = ({ ); }; +const getInteractivePropsWithCloseMenu = (interactiveProps: InteractiveProps, closeMenu: () => void) => { + if ( + interactiveProps.href === undefined && + interactiveProps.onPress === undefined && + interactiveProps.to === undefined + ) { + return {onPress: closeMenu}; + } + + return interactiveProps.onPress + ? { + onPress: () => { + interactiveProps.onPress(); + closeMenu(); + }, + } + : {...interactiveProps, onNavigate: () => closeMenu()}; +}; + export const useMainNavigationBarDesktopMenuState = (): MainNavigationBarDesktopMenuState => React.useContext(MainNavigationBarDesktopMenuContext); @@ -456,26 +475,6 @@ const MainNavigationBarBurgerMenu = ({ const shadowAlpha = isDarkMode ? 1 : 0.2; const menuAnimationDuration = isRunningAcceptanceTest() ? 0 : styles.BURGER_MENU_ANIMATION_DURATION_MS; - // Close the menu when one of the rows is pressed - const getInteractivePropsWithCloseMenu = (interactiveProps: InteractiveProps) => { - if ( - interactiveProps.href === undefined && - interactiveProps.onPress === undefined && - interactiveProps.to === undefined - ) { - return {onPress: closeMenu}; - } - - return interactiveProps.onPress - ? { - onPress: () => { - interactiveProps.onPress(); - closeMenu(); - }, - } - : {...interactiveProps, onNavigate: () => closeMenu()}; - }; - const renderSection = (index: number) => { const {title, menu, ...interactiveProps} = sections[index]; const columns = menu?.columns || []; @@ -503,8 +502,10 @@ const MainNavigationBarBurgerMenu = ({ bleedY bleedRight withChevron + // Close the menu when "See all" button is pressed {...getInteractivePropsWithCloseMenu( - interactiveProps as InteractiveProps + interactiveProps as InteractiveProps, + closeMenu )} > {texts.mainNavigationBarSectionSeeAll || @@ -532,8 +533,10 @@ const MainNavigationBarBurgerMenu = ({ ) @@ -601,8 +604,10 @@ const MainNavigationBarBurgerMenu = ({ setOpenedSection(index); }, } - : getInteractivePropsWithCloseMenu( - interactiveProps as InteractiveProps + : // Close the menu when one of the rows is pressed + getInteractivePropsWithCloseMenu( + interactiveProps as InteractiveProps, + closeMenu ))} /> ) @@ -636,7 +641,7 @@ const MainNavigationBarDesktopMenuSectionColumn = ({ column: SectionColumn; columnIndex: number; }) => { - const {setFocusedItem} = useMainNavigationBarDesktopMenuState(); + const {setFocusedItem, closeMenu} = useMainNavigationBarDesktopMenuState(); return ( @@ -656,7 +661,8 @@ const MainNavigationBarDesktopMenuSectionColumn = ({ dataAttributes={{ [`navigation-bar-menu-item-${columnIndex}-${itemIdx}`]: 'true', }} - {...touchableProps} + // Close the menu when one of the section items is pressed + {...getInteractivePropsWithCloseMenu(touchableProps, closeMenu)} role="listitem" > {title} @@ -936,7 +942,7 @@ const MainNavigationBarDesktopSection = ({ }; }, [index, isArrowFocused, openSectionMenu, setSectionAsInactive, menu, hasCustomInteraction]); - const getInteractivePropsWithCloseMenu = React.useCallback( + const getSectionInteractiveProps = React.useCallback( (touchableProps: InteractiveProps) => { // Open or close the menu when a section without interaction is pressed if (!hasCustomInteraction) { @@ -968,7 +974,7 @@ const MainNavigationBarDesktopSection = ({ onMouseLeave={() => setSectionAsInactive(index)} > Date: Thu, 31 Oct 2024 18:05:40 +0100 Subject: [PATCH 35/62] fix role of items and add unit test --- src/__tests__/main-navigation-bar-test.tsx | 112 +++++++++++++++++++++ src/navigation-bar.tsx | 3 +- 2 files changed, 114 insertions(+), 1 deletion(-) create mode 100644 src/__tests__/main-navigation-bar-test.tsx diff --git a/src/__tests__/main-navigation-bar-test.tsx b/src/__tests__/main-navigation-bar-test.tsx new file mode 100644 index 000000000..36d80d1a4 --- /dev/null +++ b/src/__tests__/main-navigation-bar-test.tsx @@ -0,0 +1,112 @@ +import * as React from 'react'; +import {makeTheme} from './test-utils'; +import {render, screen, waitFor} from '@testing-library/react'; +import ThemeContextProvider from '../theme-context-provider'; +import {MainNavigationBar} from '../navigation-bar'; +import userEvent from '@testing-library/user-event'; +import {act} from 'react-dom/test-utils'; + +test('MainNavigationBar section with interaction is accessible', async () => { + const firstSectionOnPressSpy = jest.fn(); + + render( + + {}}, + {title: 'item 1-2', href: '#'}, + {title: 'item 1-3', to: '/'}, + ], + }, + ], + }, + }, + // Section without custom interaction + { + title: 'section 2', + menu: { + columns: [ + { + title: 'column 2', + items: [{title: 'item 2-1', onPress: () => {}}], + }, + ], + }, + }, + ]} + /> + + ); + + const firstSectionButton = await screen.findByRole('button', {name: 'section 1'}); + + // Section buttons that control menu should not have aria-expanded + const firstSectionMenuButton = await screen.findByRole('button', { + name: 'section 1, Abrir submenú', + expanded: false, + }); + + // Menu is initially closed, no section should be visible + expect(screen.queryByRole('button', {name: 'item 1-1'})).not.toBeInTheDocument(); + expect(screen.queryByRole('button', {name: 'item 2-1'})).not.toBeInTheDocument(); + + // Focus arrow in order for it to appear in the screen + await act(async () => { + firstSectionMenuButton.focus(); + }); + + await userEvent.click(firstSectionMenuButton); + + // First section should be visible, while second one shouldn't + expect(screen.getByRole('button', {name: 'item 1-1'})).toBeInTheDocument(); + expect(screen.getByRole('link', {name: /item 1-2/})).toBeInTheDocument(); + expect(screen.getByRole('link', {name: /item 1-3/})).toBeInTheDocument(); + expect(screen.queryByRole('button', {name: 'item 2-1'})).not.toBeInTheDocument(); + + // Section onPress shouldn't have been called + expect(firstSectionOnPressSpy).toHaveBeenCalledTimes(0); + + // Click in the section's tab + await userEvent.click(firstSectionButton); + expect(firstSectionOnPressSpy).toHaveBeenCalledTimes(1); + + // The second section has no custom interaction, it should control the menu when pressed + const secondSectionButton = await screen.findByRole('button', { + name: 'section 2, Abrir submenú', + expanded: false, + }); + + // Open second section's menu + await userEvent.click(secondSectionButton); + expect(firstSectionMenuButton).toHaveAttribute('aria-expanded', 'false'); + expect(secondSectionButton).toHaveAttribute('aria-expanded', 'true'); + + // Second section should be visible, while first one shouldn't + expect(screen.getByRole('button', {name: 'item 2-1'})).toBeInTheDocument(); + expect(screen.queryByRole('button', {name: 'item 1-1'})).not.toBeInTheDocument(); + + // Close the menu with ESC key + await userEvent.keyboard('{Escape}'); + + await waitFor(() => { + expect(firstSectionMenuButton).toHaveAttribute('aria-expanded', 'false'); + expect(secondSectionButton).toHaveAttribute('aria-expanded', 'false'); + }); + + // Buttons that open the menu should have aria-haspopup + expect(firstSectionMenuButton).toHaveAttribute('aria-haspopup', 'true'); + expect(secondSectionButton).toHaveAttribute('aria-haspopup', 'true'); + + // Menu is closed, no section should be visible + expect(screen.queryByRole('button', {name: 'item 1-1'})).not.toBeInTheDocument(); + expect(screen.queryByRole('button', {name: 'item 2-1'})).not.toBeInTheDocument(); +}); diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index 984f2cb20..171a2b13f 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -651,10 +651,12 @@ const MainNavigationBarDesktopMenuSectionColumn = ({ {column.items.map(({title, ...touchableProps}, itemIdx) => ( + // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions
setFocusedItem({column: columnIndex, index: itemIdx})} onBlur={() => setFocusedItem(undefined)} + role="listitem" > {title} From 0974ed59a444816786820ee330206c94203897ea Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Thu, 31 Oct 2024 18:37:04 +0100 Subject: [PATCH 36/62] remove animation from small menu --- src/navigation-bar.css.ts | 33 --------------------------------- src/navigation-bar.tsx | 19 ++++--------------- 2 files changed, 4 insertions(+), 48 deletions(-) diff --git a/src/navigation-bar.css.ts b/src/navigation-bar.css.ts index 5ab49e293..2e6206648 100644 --- a/src/navigation-bar.css.ts +++ b/src/navigation-bar.css.ts @@ -9,7 +9,6 @@ const NAVBAR_ZINDEX = 25; export const DESKTOP_SMALL_MENU_WIDTH = 184; export const BURGER_MENU_ANIMATION_DURATION_MS = 300; -export const DESKTOP_SMALL_MENU_ANIMATION_DURATION_MS = 200; export const DESKTOP_MENU_ANIMATION_DURATION_MS = 400; const DESKTOP_MENU_CONTENT_ANIMATION_DURATION_MS = 800; @@ -409,33 +408,6 @@ export const desktopMenuContainer = style([ }, ]); -export const desktopSmallMenuTransition = { - enter: style({ - opacity: 0, - }), - enterActive: style({ - opacity: 1, - transition: `opacity ${DESKTOP_SMALL_MENU_ANIMATION_DURATION_MS}ms ease-out`, - '@media': { - ['(prefers-reduced-motion)']: { - transition: 'none', - }, - }, - }), - exit: style({ - opacity: 1, - }), - exitActive: style({ - opacity: 0, - transition: `opacity ${DESKTOP_SMALL_MENU_ANIMATION_DURATION_MS}ms ease-out`, - '@media': { - ['(prefers-reduced-motion)']: { - transition: 'none', - }, - }, - }), -}; - export const desktopSmallMenuContainer = style([ sprinkles({ background: vars.colors.backgroundContainer, @@ -448,11 +420,6 @@ export const desktopSmallMenuContainer = style([ width: DESKTOP_SMALL_MENU_WIDTH, overflowY: 'auto', boxShadow: '0px 2px 4px rgba(0,0,0,0.2)', - '@media': { - ['(prefers-reduced-motion)']: { - transition: 'none', - }, - }, }, ]); diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index 171a2b13f..1bab1f2a0 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -803,9 +803,6 @@ const MainNavigationBarDesktopSmallMenu = ({ leftPosition: number; index: number; }): JSX.Element => { - const menuRef = React.useRef(null); - - const menuAnimationDuration = isRunningAcceptanceTest() ? 0 : styles.DESKTOP_MENU_ANIMATION_DURATION_MS; const topSpace = isLargeNavigationBar ? NAVBAR_HEIGHT_DESKTOP_LARGE : NAVBAR_HEIGHT_DESKTOP; const bottomSpace = 40; @@ -816,20 +813,12 @@ const MainNavigationBarDesktopSmallMenu = ({ return (
- - + {index === openedSection && ( +
setIsMenuHovered(true)} onMouseLeave={() => setIsMenuHovered(false)} - ref={menuRef} style={{ top: topSpace, left: leftPosition, @@ -854,8 +843,8 @@ const MainNavigationBarDesktopSmallMenu = ({ )}
-
-
+ + )}
); }; From b3e98f4d813c893d35d2fc6e581a16d736a5e867 Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Thu, 31 Oct 2024 19:19:34 +0100 Subject: [PATCH 37/62] add screenshot tests --- ...u-and-custom-content-in-desktop-1-snap.png | Bin 0 -> 32464 bytes ...u-and-custom-content-in-desktop-2-snap.png | Bin 0 -> 25710 bytes ...u-and-custom-content-in-desktop-3-snap.png | Bin 0 -> 19695 bytes ...-and-default-content-in-desktop-1-snap.png | Bin 0 -> 24310 bytes ...-and-default-content-in-desktop-2-snap.png | Bin 0 -> 22707 bytes ...-and-default-content-in-desktop-3-snap.png | Bin 0 -> 19688 bytes ...nd-custom-content-in-mobile-ios-1-snap.png | Bin 0 -> 53010 bytes ...nd-custom-content-in-mobile-ios-2-snap.png | Bin 0 -> 30362 bytes ...nd-custom-content-in-mobile-ios-3-snap.png | Bin 0 -> 39408 bytes ...nd-custom-content-in-mobile-ios-4-snap.png | Bin 0 -> 17743 bytes ...d-default-content-in-mobile-ios-1-snap.png | Bin 0 -> 43635 bytes ...d-default-content-in-mobile-ios-2-snap.png | Bin 0 -> 30362 bytes ...d-default-content-in-mobile-ios-3-snap.png | Bin 0 -> 37200 bytes ...d-default-content-in-mobile-ios-4-snap.png | Bin 0 -> 17743 bytes ...u-and-custom-content-in-desktop-1-snap.png | Bin 0 -> 34928 bytes ...u-and-custom-content-in-desktop-2-snap.png | Bin 0 -> 26918 bytes ...u-and-custom-content-in-desktop-3-snap.png | Bin 0 -> 19688 bytes ...-and-default-content-in-desktop-1-snap.png | Bin 0 -> 24553 bytes ...-and-default-content-in-desktop-2-snap.png | Bin 0 -> 22868 bytes ...-and-default-content-in-desktop-3-snap.png | Bin 0 -> 19688 bytes .../navigation-bar-screenshot-test.tsx | 52 ++++++++++++++++++ 21 files changed, 52 insertions(+) create mode 100644 src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-large-menu-and-custom-content-in-desktop-1-snap.png create mode 100644 src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-large-menu-and-custom-content-in-desktop-2-snap.png create mode 100644 src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-large-menu-and-custom-content-in-desktop-3-snap.png create mode 100644 src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-large-menu-and-default-content-in-desktop-1-snap.png create mode 100644 src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-large-menu-and-default-content-in-desktop-2-snap.png create mode 100644 src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-large-menu-and-default-content-in-desktop-3-snap.png create mode 100644 src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-menu-and-custom-content-in-mobile-ios-1-snap.png create mode 100644 src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-menu-and-custom-content-in-mobile-ios-2-snap.png create mode 100644 src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-menu-and-custom-content-in-mobile-ios-3-snap.png create mode 100644 src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-menu-and-custom-content-in-mobile-ios-4-snap.png create mode 100644 src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-menu-and-default-content-in-mobile-ios-1-snap.png create mode 100644 src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-menu-and-default-content-in-mobile-ios-2-snap.png create mode 100644 src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-menu-and-default-content-in-mobile-ios-3-snap.png create mode 100644 src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-menu-and-default-content-in-mobile-ios-4-snap.png create mode 100644 src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-small-menu-and-custom-content-in-desktop-1-snap.png create mode 100644 src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-small-menu-and-custom-content-in-desktop-2-snap.png create mode 100644 src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-small-menu-and-custom-content-in-desktop-3-snap.png create mode 100644 src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-small-menu-and-default-content-in-desktop-1-snap.png create mode 100644 src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-small-menu-and-default-content-in-desktop-2-snap.png create mode 100644 src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-small-menu-and-default-content-in-desktop-3-snap.png diff --git a/src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-large-menu-and-custom-content-in-desktop-1-snap.png b/src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-large-menu-and-custom-content-in-desktop-1-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..a9cdf3e3870acf652c9b630a84d094758e0d3a4b GIT binary patch literal 32464 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 XBc?9J1V7DitebtiEll%vxu5+X>S6TY literal 0 HcmV?d00001 diff --git a/src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-large-menu-and-custom-content-in-desktop-2-snap.png b/src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-large-menu-and-custom-content-in-desktop-2-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..cc03545a05eb27d43f1775eac491364975cc21ea GIT binary patch literal 25710 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 z z+j?d}!;?zxHkRJ6Zx2lDqSJp#xr;k2HA45*ZKZv#@*g?Eto+Q3c{O{TKDzPKwvh$d z16_>*L|2y<5!>^t18;)9yVtn=<}Q@5G`I~;ILfQxoMkfhL;&|PZ?Zbq%A^710!P3RDD#gV2d5yv*w!vli8ZjHd3HgTqr08lpOhVPtWFlJ z;kj=zJBOo4kp>#~*tkHGr_Yy}B+7K1OU4rn)RfQKS=f4BgK7d2AZC)FKKnt2vB(3) zU&);QmSOq=`{lI!YZFXw<(?;9l{Rn}fTkcODa}q@kn28REIq!mYz-AZvH#T4&FoEp zbSvcZ7w$^mGzhJ@g9vE-%j`9X2Y;(cD>gp#T>&E604Pp#jiqmotp=+A9S{ko?oeZa zBAIA*J1A^&^`b3&-+|0>*TpN$yUabBq8%E;(wivpJEv3=ox_g0nE@RIdmGk*Hx zzw02IO-xjLy0%3Y<~ymihb{gjDvsecVavF`dSyYwYN7!SEfOd-q=`Q zR~OHnZ1Y=!6$FTmFP(f_<3oaif^Y;vSWw^o*<yP%<=wX`v3B&J-+>0N$V>kM$pJuO literal 0 HcmV?d00001 diff --git a/src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-large-menu-and-custom-content-in-desktop-3-snap.png b/src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-large-menu-and-custom-content-in-desktop-3-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..acae5014aa82f44a4c22d796360396e9f13ce3e2 GIT binary patch literal 19695 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 i{mXj(_p%EDdfG)SVJZ-PLe+X`=9 zse?d7z%AjU8^plHKM8>YE(C7sum1v-!s$1FC)eHnQqa5sJp6B%hl4eSK-!h?c2 zUg`;&J3W2(^oM)&b|W-5s-xyz!jLnxv?y_HRUF~ts`4@pC)K`)!TN{)=kex^V8#aV zf1ZW+Y~+C6z54gT`jG>4|L(sJQj?n?x&OTKSJJiT|9K(iPTv32k66l#-oEqCI%71t zQJAG8-+in<=wXz6r2G;7u6W{q_eV-^#M_Mn%!Y3^*^8I zX!n<4A`c_XM1%#5>Ho@8YEO)d2so06REyE2`}3q&%gvrA)y!`0T6A~tm~E#qf7(V~ zL=UuMk!xc-=wI=sjY%<5sN_?gybq>l6eh=Qdc5XgnqM;Il)1Rkwf?kNn~N=OL)Nx1 zJWb)hvhI5X{KYxPZkPuN36t+lCl$xSVcIgK!-^-FpVd6HY$Ei*a_({gk%*H5jkpJzsN>fb&esif!OwC0riM+{hW-JBzsmzqPh`OW3B zg*YI9`^+Q&!#2Bm)klJ zX@Y+=Z&lW;cBa<|D+-9>XOG*s1nD3DEekL%u0pfyvv?`J0Rjs>RLHj%y4zlIu>Seko-jz)3x~4_Bk#m>c59SD zq$Q5(QqGRHDDN@`>Q6s$EhYU_YWGPTV#zAe<9-%iOCLR*Y-ptz3@39@H=lC zEnc)&q|C<3r+-fRTPOn6UXgc7B%9W7Z)zCFh9}I4(MLDShrAGdKnIc-FK!>N@8odG z9NjPC;oS7aaYKy?ndU z@8Bt4^+l8KUz-)*X@ubKYaMI7HrlVv;)hG)%EwFfwnvY(w!#@!%SNrGgcoemRoF+N zNx!qPZc|l0T#zz~;I`-TDk74{toNv>Lc3SmP?!ooH00obL6@6tfQ=I7Dd{30pp3?TuZj}*<4h6LqkGb~*H zIqD_pot0eA7V)?IdN#Bkf+T9uQkHsVnyka=lFsXMs-FXz%fDzm0OkGoQDF>6aHq&d zw`i9>Uf9^HZMW{&bvEWt>Jdu|?X>=F{cIV7JujkZm_1G7J=jqZto&6T5)zY<`~q9| z`A?xyrZAWGP=TJCX?BiEeH1e)TX4o==Z6;TNhmaA{0EGt`5CHi3*z0XwVloM+O4?e zU+X>3kCgw}bb23d=+|><(q$u?*1iEOWK_3lnNP%ic3^3M8|=u3^<*!kNnRCCOHw8V zJO-qUI)C(2_Xe%@3g=2GY@vPJ@w*#@Hl)eLG|5Rd9_-Ha>?e>;4Y%c%8Bm85w zAPtCZ&D+Pv15(%*STP7cJ;HYLdVeI{Qq(z#0hZS**5&`6`JYFpkLe$}!@8qD-&tST zoGz&QpI;%;N5w~5j3sxpGNIQL-NYEqWl*Amqa%}bHe|Ti zxLz-b9(ex~Nj~Z_l7F02>eNR-d3P|TUiJIlVDBb~D~3Ugo*a;4no53)PWDvC$P;LJ z0LD^EMRIGRRO`l5*K2*NcNTjMqWOmWd^~uY>=GSKzIM>_37v?k78pj5*R7`;OMege z*Mw(1+*&fs&5>V|)7urDpy3FVSx2zf1A`j=;>v2rFHK1y&u>wYjTr@yYk=(^oeRm! zEe~=?jK!CDV6r4s|4a+py?Hy^_FE2Gj$eFnkj@KMp)jGMlqn;~@BTDs%O=D{QbrId z!=F0%Q7;Nuy`b9#gG;u(iMKy7y(6_}B4z*gmv!m9u5NCH;1W*aoR}tDY=ME~QtmXD zYbi$@!Qwu7?V$Tvos$Vw%OSVdz^`sPUPhapB{xx!yF|MEY~3e9l2{iQ_?4WTdZo7V z=0s6go3kld#hd+u9rC)#}#z;Q7e96Djdn zSApTkK;LznLfJo0@^c04hSfdMGZfFOPv3%F+py0ZyuV5AULA0Ep=6`r=RU+-wU*@-i zcJ^gnuXxxaOW9?YJ*j<`r5TtAWn2k%QBt%p_EnK z8HKVWlVRuMj54APkI{1t(I;%ps+N{i$iB{djEpKOD!fxuQ@0rX`IHfM*IJKvB$I@! z7%$F_zPln%HRivJ8sevxF-(?w>k(yy&X5ZUIhm*5JkU_AGzJfD(^)YRA5|7dGI}4! z-y>|55H8BB0XcW2g;ZIOELQzt*kr@=$9?CEY};_vXpq<9wiF^!SMTlXMK1n?y^{af zwXDh!HcE4LZe6-H78RJkadHK4-j>P55f{%i?i5%ISPIpQ^W1P+NI388|B%tIx5u8! zCw9DWSioplUhViE%c?UmSH9~6CTHK8a9|Y@q6A`m|3(|qWd(zEhJhd6x`g4=9223Z zWiz*__UbQ8^18_YI8ik9Val`(CA{b?=8S8k=Phu9JGBVzeR+|j^ff8zONe>wy-vqa*)_w8*AKo$ovGCk2wE!#Q^d z^teK3E?2{Lt+A6^zh+ZObfwCznj=wNAhxV_ zym0v_BbcMxc0Fg%}61iv;Qs99d~phd+N}3uS;5V`{VJ6Z_~qDq3YEZ zm@jjUf=g!e-j^Ywh`g*gzx<_C9K!RC^w+dzk2^`UUlIMq7Jo$1^sLVx-(8IBSpMk)UAg-rmqU zgImpHwdkh@P^ZQ5OC1-vZpBl}Gw$s#l&O{Kuf8}Qg$~w%9UWnLI`2+N-WB;iP+}XU zu}ubqnntGo%%*iu&54+bm}3|9i@+<6u%qStR#!of`h>$zdh`Oj#Lc3kRYzM!v9FPU zt2P%@6K`f#$(KEC-!j^m*f}!he8XtZR{juFMv;jKo=`NFGcKEm=v_6U??7Qpp3(O9 zB3QU2se{{OzfC%xL{9?gz-c3dJl`r!bB0XZke9P|_pc&GQTij?*bsHsotY{^OyaqR zdN;;fN=kNDx|B&U?QnqG74rqk`Rhl~_+8))ZkJ=YN-+&fc;2Xo*DoumU>JFR=9@Ux zLL(?Xn9O(n&5ok)$nxi{f~gwG!3M+E`trR#QE82W6NJvH$Gsu;Lif^V8~9Uo_`clS zBo*_wA&>Yn(y({&W%vcsK$BlXsIO<9#rIZ5&(P{GxNSAyQsD6P1~K=i@o(cfsW{?N zQu_WdL6;ZXfS|2{vr<3O4^=OGG)=9<2grmV zW*eoNv1bO;Rj@k-bx{j}smiZjUDr9;^%yvN*(o||Mc}L)&HJZBD>xIyvz9+aR(JU` zyNOY!bfyDm6o?2dkpxVi^-n=pj@R7pPNKMTwkP>}yQ>`Bda#6nVtY=V;?~^VB&bQuUZSd(yt!6m@#j<+bz|ATS?L2qg=;i2&}jP#<=taSE=|%PKx9l@dP&e6BF25|jbjYp@#!g) z96+pP&jn(wdtJei8j9fKhj@>ioPx978TvpQa7DxidXAs3siBCL4|`~Hzh65um2{a1 zSz2CZ=4+KxZ!+4WX13Z^_V1V+4%b;eaK#+F>F<5Afb7~5GWMc#S&^*)j5LDp4srdQ zW28I_V>Cg|@SD1}pt+@GX*If*i-R6<8Lm=|`9UoXqZx14a` zPxhqc`nVw#p%g7Cz9Ze&9^%@}#~r7;m}LF`!gR5VXsP;IYA-f24Q3;Yd;*rO{12wd z4!377KYsDxbeKx+IeHm7TIA-(7DcCU#2Me)(`UL;lb)nxQ5vnEtiA@{t&dwL&|Qyk z@SIjwHai`mmoI^@#1?KSO}=wo4%8r|Pr-9mzf}cYAGe{@xsJmAH%{De_p=Z-#OH)vK>zXBK&Bjo1bY;PSP`EJ~Q$v zzW0;N4whl?Sz4oA;JF<^&W?DqowX7W5W%A&aI?Pw^UAXv>pN`tC4>?#?l;;Jx%M?a zP7y`mg_-U^SZmgbG}XJC_rvGF0?zzKm#2!0Vv0H?7G1L;=H^5Tg?dealtL(;1H={q zH{Op>XpPr=s2r6nVD;E=ruK(AR;(*OcO((Eec&mQH`nB3}`30%^s6cLcscuf|e(;^ZK#DFo#{*;CPonG&sPSoGHycIbF* zgnyI2wY&OmdKkSuC*;o>{5q1Ed*JQDZlakWEzIxq%`S8e`8+v*Bo@0g;p2aTu|Jy? z|JDxZ3)L;^Q@b5`35aC)kwJ}6xshtUr*(frCRFjnAav0=RKDzw_8_gBStjF^-iS0g zSuRsAQ2Tj#PRz3go;%1$dZNjuo7p!&z?PR6zgM-^AfQQYhvH=GB6~6*UyqHR@9i72 zhl?7KIA_PXBcINy?e-5OnMRRae!02qWAymrZ^mR{BQq{a$B1K5kuCD>{e zNL@bQY&jBK+LvE3S7cb=g{~ zmP7pNFq{z$f#f;G;5mVs+ z4z{f^t_&seCG?f%E!GyQwjIm<%l`><4~bc-$~_ z>!8RxDQ9=LP(YW`+CXx5qfg7| zPb3!Xp~c6k_4CcxPp!JkGrMGAKk^1obe>{jf5a{7z`gg6Uqt&IZML}~ntHay-E8LS zwT9fdbV}DQap)YE94MQ=wD!e!fY#b{a3^Q5spVd?t4-rCX0CMVfyJ59pH zclr_(va+Ecfm7f|vh*cJaHvl#-p%QO51Q@jps6KM6I_%smZQgp{y6x0E7NCo;stpW z-LAVwpz<~(txRl zWL=CqO~HSoWylW?>+22J&lV&jW1Iq84fv$g?CAoN@gznUhg=l%frNar*muS_7QV(V z;8)M_jE3v}8*=Y=7A~X`nPll-qdXn1%`o~pKGRy^5=3vEka9f~arKx`sX{|Z&;geW z6bnA1pE7eRdvIk^FY{|kXoOtuMMwFkQ!ga-01?#Zym=;E{ELamYyCR=2k7QQ_pI6- zjhDp3D>XQuz}Z(PytHz z{d1NRqD_Nx`zNa8uwX03ddYH!ZM<~Xf$$b~zZQGAIh)bF3p@GKkXIz~ptD+BYB@M2{K@L~mU}56#GpyseblBLK)4o;RYJ?OR zK1nEb(7(3?XXo;fg)vf$JJVT~QRj4rjqY@A9WVZdj?Qcen+hiHoi;uUaI`m}O5>&Q zQK7y|OqraVtjkU1FT)q&b|d30AQ?(0|3e}Q8QjgvW^d6U$%7r$7E|>5VE>bOJFri` z?1G`!j`H$`&VnW24`v-Hs%*jB@rR zMv2<=goo|ssTo40DJ~a^wx{DXS5H-MHK%`ZFd%U#f|MJhRttr&3*|UPd%xznwjy-k zZy>O=?(7d?MN;deX>bu}}ScHtljesr%#IMzP=gZxoIF z1-u~TIx$#ff2Nwp54_oSqCg&&WX+~@78+S>?+cmFKrzBZ*J+iK#Zy&VEF{uosy%i|Q7Q60+7vuoBJtVm z?Y8k#qthYfw3vml7v7}pUa?U zw}b3_&oSMrT{1e?_NGpRuFVAEE>r<~e2J#lwLeWvat{)ws~I}^+^?9n2iiYzLme)xulNvz&HITu(caEJO{aE)P*BXww8|k~;#w_b$ zH+JJ&A+1r2YFBgX0$r^urk%z6XinAVGRAMiS*?iqXigx@X^0=On?609rNRTmAIK+% zB>lbFE2uUtvpT*-aC(^tdoj}h_EmfL_rj`EYes6c+-kNb2d9+{^crlqaK4NL7(_J*0bHYBmlcvSpDqKSq+04_9qp*38iRW`8dr3ND^N{rA%AS z&Vj8v#_nw~(MazL0b$C-#3X6Z5=dQv8vw1CRZgkcoRSzL28qwxy%YHiyWYPHbAg?6 zU1aFw+?x?CH9;T1a`RbTUPOJaDpbqRAGZ7{ml94PY9d5?&FwlZKT#-1(vWeRoLWBT zE|8p!uH*r%2T+&rC*H$0PP(b=q`7Dph3vCrn)m*!_Sfehu?4blKGoACROq~cIbjBO>im=jIROGe&Ejq2xZz7sSRk#KOrhQCqb z9~L~h{&ctgJCmxkGdp#)eHWRN(kkG)R8Ok`@~4#U{Q3%efHFSA(EBjMV6vL;lgh+= zZ;hcJ2w$bzGJp>@!PE6GKPd89|3X*yYxGB?{}v%}^uq@QTTrKf);PYFUXP~w{e!(Q zfXxJZ&ZWP9FNQATXsm$mC?Mi!vB(+&0oucaVT1%!zs{QC3OCy@bm|IWK7Nxj=$_pV?_< z9uC;ogQpX^Nfx^1L?P|)CIxpoZ=5M0wmuZ~iRV7i~1s~ z>I&@U_L}OXK4^6yyxObvSg}Afz_wN(@BP%_`BmZ>WebpzBn|C)+i$CJaTEX(5bT@s zV3(wvPu!ab_FM8}$W3TibJCfRkSW%_?4LUJ<%-d+dN7Qt{p1~?NndG9|F97 z8YN(tl#~y8e_IrNKFsF4x_U3x5WJ5!iLTDxDSS7HLm2Z14L>(GXT|c0@_NaLM9@Tw z-iqM4Cbh9DKFjJiXs_ya*Y4=985s)#*}mkwB9O9ocDXUEQ#V}-q*y@NP9P<`OtTZ8 zI}t{)N279a5)NRF-m7SST(@^)p$6LV)ohUw2GSIXYEKyumeit=2x4`T~>NQ?0?@^}Y@7EGR z1-$Y%ehh{U<`MXCg{#5c4xfgNf^6d$q51h0?35Fa>jEWoRMT= zHZ>^R5Xu(>bqBvZ!GCa;kN^~=%)<-li!wWSwngz&dB{YDPgT!J_;0g-z0Jy5Zx65e z^Hr{0A6HgH^CfwiEaquIgArut_z5?-=JNxg<}8H^36OhZ!GqfpM@y+2m37s|tjY=~ zkDWD#;-pKWBfAOi2ozKx9M@~5HjgWu1Wf^bUPN-xBHu>7m{~{`z@cSeBn+bZ}8~a3&hJR5)qN?Rt z`Nd#u7f_JPe}mNs=>EyATkigZqtGTdH%|@up|mq0xyhOX(7YUQWXpunbjzA4x2BkT zZ7zzyG>1h2(Z~Bsnn$Q8iySX-izx2cx2f$VrqWFjqGs?G#5+A-R5Cxa#Q&|aI@ z-k*!$&wrq?m^Yb6p|h^ih{)vDY2_KvHKv}%=0%FECruP@>n%Y@)9kleHG5}Wudw}A z_c4LWh@Nb){a*F0%1!jQ@bEW!%V;9+EKLi_IP&tqe$Ud)>HWzN)yH<;VsL-_p}xaR zO{Z-Qf512xhy`}BBLx~wf=J5EJF|}rI{woOkeH%8mN&=&<)?Y6LX32<+=ehsd5VfV zii-16lP41J;je!t4t_kuk*l{7TD7&v^nLZ{>}IHRW`_8RJUQKO1cusejDe!Ur`wS# z;Kb$Af=&M5Svne;(VlV9yNaAqP*J!|+oo0kMda|kgV|oN$)pRW56*bS#KbG>w{5n< ze6UY=<-MLkOTiJn=Gk_*2*MdaX~3TQMCZ-!7VoCGBp~+=Pk)v&&iYn@m@QGEjb0oirmhBEIDqWm^e-S<13{Ql-LMif@&Xh_^oh{qV z3Lerld)wXD@!IOh1QFY+m=Slhn-N-~iw|Qny)?Ga`jG%NBse@g{2ux=iWm!%TMS zQ6aJ{wYlp+&@-RjCNf8^QW@lpc2fTWG{JM{c1E`eP{klZ7=fOH+wQD5G~h{X8C2N0 zCLAQbPmmf5(z^Ib)y;jMh$yZCs^wP^3lb=!m=_=)!FIduq5{w5d80?QlKQ&zeB8Hz z&D#d+&K-uP__PT8w++o9>E=COsuajx-JVwg>+LPpJ4O{!Exf0M!2|=A8bgS}B&9R^ z8j~3nFt3;KjW=NXHk`4}-tCAdTzFnjeD3NuW@*e7R{&z*z1iFVE#5LXg`9iAcqA#O z>bYY2qg{B&9zZJn8*(&}Kw)pSWq2ujoSVDzuSbh`?ulmQe#(?0ocYJsUDv6$_-Ui6 zn)j~RYL$KHw9oZuvYj1kVhF7Y{>G*Ag%;UAT(5H5SGYv(V$zv&a$u61n0bJ$Se~Ee zye*^G{N|zYGrEiR4_qBOzm55+4#f_aFg^kqd5H9iVYSBnS$+}6nclAkrCcui(RjZL z!(G2k=v5Idl4k!#X48I)X@A!%IYtlO7Co{==cyyFD`#FwvCy7xW@O%~rSna<`B|C@ zJ6q1(O7Tghde4%(;NDU` zKxlrdg-D$}ZDkQI(1<8xiezav^^rNBZt43qv(sh%jF_Pe^4IN*I! z`h$m7=7Sm6F8G>P0AMa?vKr?v;b>lw{^WQ22cbtm##i>}t7qLgYI_02S-b~^!7u5v z2RwfKeBkhbC3Jq5!?F$yV3KDSYtAt{-9=u1^%5-pCY0lIbm1ZjlSu6ETRg6AVx3N9^Yy>(cT>U z`9j~4iiDie)VL)>$^)N%E{LZnWjepkCnb?|`Wcygwk6e!^C7Q2ZsBwm{b3LmQK36< zjvl0V%0&0l-u;;q^h~S5fxATBgEFbwnKXyZ|5eLwVqALaYam6DEtEj8VLe|P%fvt% zDiHA>^-3D0mdpTW)Fp~;e7i$Cc4|M1uRBbcp*h_f9l#zmWy!j7jTfV0s39w7^EyDu zwA0OOp%aDKKfEiA`Kj~C3Uh3D6=g#`Y+V5M+WQ3K$NuO zE##u$0Hm5x@RYsjs@coBlR~_}-uJsw&(`H_H46up4sRut=&6>$cMA1N`U=HOtcHG# zZJoMK^MPl7ifeJ{Fb~*T%&j>@20GoNiby7LY$4dg!^g`E}3#}m2q@~!BCQF_XlK&rC8q!|^%4CJ|{x!C@LK57~^fY=7opwzMr zxl!H=7|f_Fhnx@sWMO>K`0x`*;F_#`y3s4m`x_iYO~?Mm{NAu~4=xdhxfeOp!acHe znJ>l3rD(#$%iZXNe`+$bNT=owfPaA*nTsu%4I%W5e2$6KMQ!2Kgv6D-vUsM;cSDOu zVSx~|?90>=kr^95LmiKeH=7GBX3~9!91BYLsQEbwfzyPoYcqnCZUV_)%F4#R(Nq>f zp2+Z5-51*+zY7q)VWUV>KzJ{TZsV&xSq5pxC^#Ez4fh5&o)nE!{ZSL;e=>+wrX{AT z;DVRqqs*+9WvBx1q<5FPy$lB|DS>46{;|Hb{?PHIbOUi7hlEG)acU+RCJYUhc3;`?IB(BuExvq@?1=c%gU$4AfPEFlEArJAvX(QlgQYTFX9Y49EM7 z7upda6PZT{9g(b)2Osr#8c(}$v&TJ^LHOOSsDM&)z%ZXV=q6^eHx1^n7@^J{U&fo~ zu&{WqmZoA`!qBAjwLmtZIe1n<(h|=Jk5CMho*i8DP{>uiltZ zE8Pls_0{PNL+nu{snq%TLxBEsH%4pfo92<-y1dlWS*d+xs0< z=EPS!U-|&=mwIYXnwg8noz~)Hc7>#Ub{SjuZkKiCwxa-FLj9S z=d(B*eF-~?u_BbdPBsP@DUf3#%=nt&OOZ-SY?Pu$J8hFz5vBfyDOUBrs%9} zW5=*$NJc&MP7{7*sRbl#JNDQHMb#RF01*d&3cbDQVv(pasYL9_`eSeKGtVnOhAQX! z9`U-&bQ_p?16a)e5~02%BBTakT4bI`z5vXw?T&H5L#VH8 z5&f2%3sBGiiUuhixrCZ!^oT7c|E}@$Pnz6DUoJ=})Jj}`s59j2$9u=dYMcga7y%eC zX)dlrq|Vd@#{l1 z!jQ6Ppx&YJL!HQ0vt)o;0}7l~{(heZ1<;2v8B<5Ghah0OC|m09pD4D%?KT1JAwf4? zkYZ^uy&b&^KvibGb#NtM3FPyu+0l_P8&sy9ZLhstwDnNyHQU19T2FC(Mr-}wC+viPwKR*MwCds9>5bzl|16^DmE_4#tGVNS)MCMT25 z_Ut_y8okvuq?&NEdd%)h2$)wCr$Me(=s(MW3*$pNOTc`5{uHR|MNr*0JI{6UK0t~l zpS9`Md(Ka!0_vf+)_X`{bn*vN?L<}?GmhgFh2@v{q3#X2yy zGJS4|RhWkXsFnGL96ZTj&qTadcfEOcX{occ_4d1+-;U3UQ(Mssf#LngwdZd+A1s?j z_*+ZPZ;@T!jQH}ImG`(K^b#P00WAyv@|jyC3+Ta(5wZfx*+AdeeH_?^npB*Do?LQ4 z_3}C^0PR!{XjD4uT)_)1d=7lDXG2#6#0atvlD{f^#ZCh`s6YQ1zHa|%j!CSB zy3H(%Nw!fo0lqU`?m4RMNON{e^4`f^N3t9!qV#aXlSWil>Kd@qzD*w~fz8{^mm50A zcwxzc(&Gzs7J!KI0>r)m%&;TF*)7Z^_-I0;J=m6`@4u>Eb}>kXV2xh0N?cW}f|aaCeCcr>~s6YhbveurcAMC!ZZT9*uW6sDZbLEg{mn*p0~ z%>_J|zrc~zbgj*U`^U-vv6d_@ertOMBb$jszad*2w8WS45D{b%1S7)R*4xw5yMT_) zn1sZLnJqIXPu?YB62`LV^A9F1ycClG#IEU%uJjPsG~P4_lVxRcc{x8bi@keGBjLrF z5p@#Xknx^ch3&Nx{b~ubGT2uHY6Z}0pfT!w>XHxEvk`)JS)iBwmhh#`_{MCwM}stw z2qt*D!Kwg2(}Sp`G^+3)GGz-PSmaWb9w4l}y$H}3#J8R>B9N|eu41=Sc_MEj-|q5j z(N4j9%*`!WPL>xT?x(76QdMaB`To>(+W_%Ed1Sg zA}Nn~KI&{MmkOWCfCBQo5~;7DPyYo_*c7lme{G+HlO`Q25)2#>jr7I6G&Re{`mJcs zLy=QLGZm;Xl0@3i2Z$yiH5h!ru)A+VbzyZ2D!h*j-BN zciW4kyPuL=$|=7U8aUGZp3!NV=No?-=SXpypLBMzx3~+ioZnmiG>0I9@L$F&8w zBUuo;j|Z0?&mr0RcRG+ic*BvTlh8v#Dua)rEy_Nq4Pv{{8sWLk;n>xV}}EkR+QwqN!RTy9d5TZlXR zHJ$oHn7QR+cgopkKJ}Xawyg$w5c!jpfD%!*nQ4+BQgU;w#4Xh5`z2(o0a&k9*_a)~-To>*cyNKxx8GcU#USQn%<5yOH~`X)ESx>Wqw;)Tx7^Q}%1q1fmD)EH4!b z^j4HwuE%`M`tKx=3RgqB%1AToC8RPoS{4_Zn|tvwe>ck$#veIG>()c9Qu6V-@5!!m z_wmlNS)JAU8lb2DZiM;X@2c&Rf6f9pjT`^lEB8VFo>F-DM}DIJ?46nUu@XVn|2ID( zg!7jH-NbXb<|ai`q;IgLdFlmo0@wfSHqDhdm;i)1-kAYLo1PE{g%Ba>kx>$(JYqXF zP78r~sgM4nAS0LQXqsEZ_-Iu_{C@_yUj3D@_W$k~um7>bXaE0L*qYE>(8`jtSPvZD zW?FHFk}|5z7}N@k+F`J7X8}BYy^m3E-kMtmf9@5~8810+c9}Y{#j}6Pod4I;Mk9cG z1qK6%${y!+T>Lv+m}_pq3{p~&>8aIdHk+y0d4K0IH+N*JBmMLK1Qcdf1MxL8(`fmU z2O*o;uv(Fa=AM@B}%BO`&FVyFx~_WnRIk;e)J zHv~^z-0Vw?Cd~RPwiYr}FU$&A!4PNYmp0lZ-_bU-;w%-o|2@2xhMJUeHvTzE<9v-?|4ra6iLSpCS z{5)P_ke)5X_K&6CJA z`Y(`x*ot(@^7Jb6CU-n9^($fn18}Aysh|JoHT#3#HAT@1uO3x6m7hk-ilZCZe#lrp z1~MGOFS;a(6!@-QiQG1th?sV&e270$JSR^!T5>x@wDW5w_lZ&^KCbXQi$|f%zT5CxC1~ z1LrFKy&mYId%_m?X>Bld_@|a4K+Gs6@&bPXcl?Cl9Y^yBDTBdk%bh-SViZx6C7p=1 zbKmB_j1^5R9%0`oD_a1c1Asxjd-M6X7MU0gj{6IIK*!ZU zig4IlpdY>7V@pFl{~z`0fn_UQ4+2HeiDtX3$kR(D{f-_DTrO+Tj){xwCp@9x9lP8b zcWPa79{TCg-&#Y)*BIonHD2l8X(YF%I8$jw!4zo(# zETq>@yZKyK_aSvPY_IOW+tf)vA~5#$7Hgn9*+a$t0Geq)_BH&x4ql|dloN**1GEGj zGHjhI7qKRnVK-ZMS4~aLexZ4#zymyo;~XzrXf2*{yASHqNGdvj{exFn5{{Tbb z^s*jg_x=N}|8E)M#^R56g?o1E;h58WCs^1WGZF1;T=#o;ww;B71bZxu$IT0G7JeK5 z>-y^#f5pqc2(>4!5G-6;<1Hu7eJJLf=I+CGlw;z&zO!^3VoIW&% z+9p)c`EaM5Tp_>3rzs;Bfqr*^&(JsuXl+o*lm$lR-z9-=02fdQY0%Z>fB4g*2#^@Q zaA7qWMRk1i5Slk-pEqoMc=WKG0Cx>oeX&y!1yH3EdaWucoGE@ZFkhLN$lD)3agpg> zsyD+fBz;+AbrA0a`O0#yx)B6o48Qun0MYc$n(#}e#G~F@dyd;=z}M`l7zBXqZESjB zLRRL-8~Mi>bM6y-2i4GXw9iG9mVti;hOdD$40^oUxEGdqu(k>32@IHg`1cYTHT;Yy z$~p2>Q|sGSEGws8$FY*2@jBSrhD$Hcc^7ca%vKrBp4^-7`09Tc=o+=$2y$z_m^(at zCWx!ja6ON#JlMvxsK%x_PfyVd4ac}y1wO%TR~tx76c5(&wn)@2oEX>p`MRz?CRw8s zQh|prwa2nf%=y1&^!0xsBWj@zhaKYd&JVc653?@Z<_BnemO2v!am)Rf25QK_$AE6s z2R)7|Qbe85^-&(7pPjdt_xG{Ua9XQ{ozVT@@n2uW69C~Ax4 zyJ6<1L*HqnZOv(;zLXulOIhf2oWv}_n zZYrttjnO>Ijb9JM(Z9GV-KRct``Rcp?0lIE)vYd%%Pg&F1Ig$MefV_1FGU?JGv5-${L0-VxLF7Zg=m-T)>Z1XJh z2jD!aJ&N!tue^2sK8!bKdZ5{)ungU=H8nM0-=k`}GzuE2rxdc-qWLVKb0H(38$FLZ zSCRap97|t^nBPi|QqI;V}NFD z8NbF0(tK7LDQ9DSeSKf1GMvv|)_bVuc%rCk&|q)#)dAGx7!kL6w0+MXUYDk8nc?** zD&o>$XNXVtd^n?%)27}1&$~*D0!=0+1#;q8Mdt&ZAbw_A3A_d|9GNnLl4vnr_H=P} zRoMpqD0!B$rV384K|e7=!?^${fkTGB6?CR1kOsug82BbnIr*C&3Nctm3Qg6c9=O_r zTR#PFFQ8EepUhMT!uP{0XFs+K`YgZ%OG1G4mJy0p!P!9|FFO$6Oq2wFwq$XP?M!@!rXa1BCJ_2q)dUYA123Up z-n}F9l@}-TLU_011ym5e3PqJpH2?QegV0rDB(1F2-Dt<2p1U*1%5M5O+-W4V{%K39 zmm8q!)pAyPRo)6~(r4z!^8pjL7zD-00x#?@XRvOSo;%Z00f?w6$H^fc35v$JfGbIk zPs~pc+J6S@&2g`eFBJ);KZ#LF6)Zg2FO}R$(sC+=Cn98Iqv24_*9^YzG6#u2{rxeK zKYZ5~)1089($Y}_GCSYsWmk%&aOdbaR`xVcPhxlX)!AgDUKzig1h}vrrlcPzwx38R z?Pg@q`}DlWc16YsnVy!j_Iije#Dp;#eMJB|<;HsvNY!%wmR#BzpC;-i5AojrG0=Q^ zaK0NtEo8E=4>KO05OnR>Q%-R@oyjz%<nP^G{TH51Ab_uapio{yr$yy>h0yInyOfhP6t+tQ_3Y!U{|?$@LVzzT-qyc ztzl>0$ntdPG4|AGr#g9o^tAu~+9#pCQsz7tf_)Za*fEnlvV9p1yJ@W0Kkso!voK|N zv{SPXyNWcM!msVIcTLZ#}PJu()RI<>fW4Z&2C)+G}#rf2}YR!RQ42&7nX{L7$Y6kTBo9 z704)My_lKqu)Rjw4>3&cWlv9_fLi0gxOB3S`T67bjpUQ}{uZ0P?%~TVF5eF`_nQ6IPLWbOuC_{?#~DAQsIar_uggfU}q?o(P6g{OhKope7UAwt!Pn zh^2FC5xsI|iissX-&C2B)4k{ubf?F% zCLbaB)+SmE|90tDZe6yqYL&2o-2dG_%bPhvvj1DMi;)*f_J{jBx?Pv<0(O4EeCOM_Wb^Eu0)i)H2GGfXf* zUs!yR^)w}>psnk)k~nC|hy|d*9Gzh3ZHCym=+s#8{LB;}cnbGxD@r6rAUtikffN2i#z%D(XW9$OEg3AAz#oISLFJ7G3X}o_@?YCRHz{m6$z&q=TI_9^q*?o*gQ+eq_y%&)&Xbw8)dR9*OI zng6V3&xc3eGiyIS{dt#LKkd-I$HfQNtWSN?@o=_D{PS5`BR789DzoGMz1eSV8+@T5 z3~c*WT;J1fob}{errG4h{I(X&YDsCo#eOx&74H@AlaD>sDA@UhaDq7?VZ!Qo}*5w8$@) zCe=JNp1e8h(5pGcCq*lZOVjHtzTf#iCle@JS@Caw>Ph+OPvi4;sNU|Em{Gr#71Ad!NDRR4? zy5B6mK6kRpe5-=}HE%YY{Q2>0`LiP{kE?i2+q=uie($44Z?=Dz^PH4EFM7uOJ5}X% zb!V4azFELLNu^tC|D4t9{zn3vpi$BH|GJ$#|EDZ5ZQl2{p!UYDUAsT?$Nx(z`*EWF z#+`h|93yI!msNWY^Z%=;E57ePS*85XqlG@dUq$|W{3*Qn;m!E}4)NkSe590|asS_~ zczw?7>od;(KR5V4o3a0A$hzGx`5c?;4iahr?mn6x_4Al?W^V4!)BhE75~0P*`+u#m z(K|OLyQzET?fH9e&$nZ%bYizD1>4o8fO;E#R>gkv>dF#-$Tb_Wiu7|F?d>+Km`!aU3;k_OGL{(F;Yj zP+bNrJTG6oH}B$Nw|&p=`X^>% zv@q@3m_dnhXmo1_xbGeDTYLSUN!#yLX~)LKzI^%8bMsA~%{Sk?-U$l9hVLtvE>+dl z)y>S#_I7u7XXBBW@U5?}PsKAkJ6o!^?FTzZ)!ztjZ||t+=*#!+%>znq;g>K_Si5%Z z%NH*^7GHev`X|_=`sLTIUAxC|nK1+`HKM;Sx zj8ef3d$)e|H)j$9*MkfCfOUcW-`gP&={48($$``{+^Au30MQyg3@kvZ;m{~|G&DvN z!)RU@Eeb|U!qJj&v?LrY2}eu9(UNeqBpfXXM@zy%TN3`0zk2Af@@ip*Twq3J@O1Ta JS?83{1OVM2RXYFx literal 0 HcmV?d00001 diff --git a/src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-large-menu-and-default-content-in-desktop-2-snap.png b/src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-large-menu-and-default-content-in-desktop-2-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..a0c4d62a2cf84c948b731951dbb2191f949637b4 GIT binary patch literal 22707 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 z z*ChlzN86*FSnVP6h2_P zS~C2;#t-}`eqz*ci(D6TDv&8727HiI69W1_TED#h^soUub&YH$aH4AatM_(G8N9SM zNx2rB4!7BxZq*mL$H*Ln6TJ0J<*uAhmZ*?{EA55M^#3cF^aVROz=N)3S1T$z` zfR5BX(}I`wxq%9`NW8GtgytWB`Xi(k0E7C%*p5nNFs52YGxKl4m+^l9kS{EO5#o+p zxZ_W8cXEDHZu_V0pQM0pQ%Sxp^N1<{HrbD`MZ#6Z0W+_* za2meWXYs1IJ6fnQ&$En+@V>;Mw5p%GQOx7>$3p^d2)FC#M zr4QTW+d`X8&DKkXoMHF-+B(;HL7v>$tu4y0@M^5UC zo?~q=&&2W7F`N<#P@H=tg66(kKRCK%@P~U(i&)N65v=f*5mQV5~oxlMe$9|lyO zSl!|_#lls$L#VXC%>AO>`b^cgruj{OByz7D<9RdX+Ms(5~$UZ)3ieM6381&B#XJK~2voV=}pJjfvEwcRp z->x%wuI;K1xP^f3|K4Ci-u=oS{soNY|LqERvg?PJ|FI5D;R74~>XtN~XAQzP`vzZE z94ngBc0hTBjh6z$!^1ltYzEZhFdIrWd|0~wjeP^H_@#cpC~x57vg`wjO91q*Tuce4 zXOX2Ahb~t(#qna0W+3Vc588iVT((nxj^k;})5Z2@7sI1sI`tIyw4UnW(ET|?40#DO zYTt8L!Ig_^ok+vG53S7wOB@Ie`n`sIIs3vNbtpfgMY16|?FZfCG3kxoH$n^D12a8E(CQ z_E&8Wj}-ii63~R$?niEHKp!c)HUzW&uSyXd}B zbSDME(6+sDulD_uZ-8N^gX$jK;zPF156s!x=WV%PA1n;}`bhu)dE&Fnt*og&u9scp z$SP(n*U~lp+%@zQVK?lskoPykmm5rO{d2efb6~Xf4(-L6KWSp&Z86zzz$R8mI#uQK zB2p!5>iPkOtxD(-^KtInef}3O2=5-aIgWXq=mL3B3scKv@W>w7{tLB!Ot@oEi!9^q zo2RbHr!;HQwI4XxK9ZC@6+rgQyD`FCvDrJG$)5uw&^FuN!qSAh&B0-n9D@jvBlqn`diu;OOQ<9GgW|R$iyFs^oqmT(>bYUj zNSDl7#sU`sx&G25BRZ*lO8Qi{a25PI7gYTrTfB@;(6}lv0p*&Y2F8lWLccuXclR(X zajdBqaMVLtU2AlGVd(=xN7_wBnjsd&t2$w7c$I|A3wC&VTVYH)VU5?ctACDF}C(G~H_Cn*nmrUz|p&ZlD2a5huHzzMdTO5GQrM4NWUZZQ~ z(huEbWm_7a!jUP;kA0#=;kf!n(oHsw1A0skORt?>38S%~2A%7vUIh}X2G`&cWKp(- z>$wMIYIzDR0{w`(Ar}Ti$~#VW$JBArcPC6WC#9s-mCWuI6yG&R!i*)lzw@|B{PcJp zLbq1C6Tg5yl&HC}No6+2cMwxD&$>pCz%994V?yFsOYh)gV=tIx+|4G*75xphwL6_B zpNC<@bDJ9%Kk{*P&lNNny5b;7Qi25!V19Qv>eUVRm2z9Wq^DW>? znmf>#b6Mht+ZKR@P(%%;C62{NhH|2zuSbD7LCWT&iFUb8XT(YdDtk#lwUb#o$N!8b zp1gyLu*P<0k#^;mj717=(UUpqy(oT0U=$|0Y0m;pt?PINPy{bZa$+wT(f^sM!V*md zvwmo6#)%l=o7QBd*SR|i&S!59%FRf8_h5-M-7^l;Jh$zIL^zYLv$OJOqU}_4Gb1Qn zxd<1K%#J1dfx6(ZGx?nNQmfBQBZS%pP-xay-3-!@w$;HVzcX!=!MO{`(NUEaaUu^; zpM${O9Rln2lunwhABCxx6e$9m1Agyk@T#+zudX$WGoNz{ZK>ZUUMeR{7Tg#ik(cNb zg%;z?NcXh4TP=x;LQ2}eof-=r2(#COn93{h==fEUIk3jxFSGD~OQtOBxnH>a(3}e9 z69fi?l6=r@o;gd}HQ*g<F`z4zfq8Yt%bAo*0eQqu z{7kKg8q{{du&QvHeNoqdUOk&%<;UKoC3-=~&pq;J=s!>e(^I+3!gNy%W8jF<-Xy8DDo1 zVAI8KJWP(lgw&+*9~%Ok%=hmd&%gMS^@Q`n!()n7D-suC6`Y}W$xb)9M4z2S6eVIG zcw73BS52y5#+`zA{gsxMTq}XNM@G0WUk4W>Y1I?3xLy^r5qDp!0?_XhaPW}tLnZoh zt)o`@SN*w&(j$A2>;gRv8rq8?@##3mcTK;rYGPvkIrJF;qRdz!5f^&DTiUJ<8cpru z9&WcWx%Wqx;4v;|eZ_?r^R2rD!rvMnl-R%}xSVuJ00i*5Us5R(CS~|~=6Ae0& zP2cw|>*Ge3Hsh8qMA)b`phDi_QCj0{ZAh}Z{APJIc5xU>e47DK1StFrSp`d3NJVRM z%ps2ue=MFj;sN@Y=Q2}+k%`C7*PST!+-`Ezw-plN!A!a@h}VdIuVVo=MPLLy3XLwE zq_UX@)ZrZ1{2U+^&NruScT+hQ;&9#L8|PmG(K{|`#nAwL9U2-c{tgwc5o~gr_Czl1 zt62wndB=D;DUh*egH}Z_Hq!zUR-c?d78EfD++t|$wZ9YM&Yra2^Z7VxOzarR0wlFs zo^BxfBH~Xx`UM_Yoolrhs9>tFC&QePK&Gd7WuQQe{C=B*Du$mTfpHF81n(pWNIT%L+rgwUNLm02}mTzT-ld z+sRB!JP&-t0T{^EV#_}R$m{Rr;%s66pG@xA)rEW&Gy1dg!L!Tgi7M$Wlri+liPB+g z(%Hc?Zy9pU)flFDHyJT8ZO~d1>gkB*V={?2H)rJKZ$WcQB;F*lBdT_VQue7`10{j97Nx`D(LoTx*m&pmFzQE3~zcH>oI59QR&m#utkp^1n*H7yLt@bQph~KjV|)q zR*Sm_C>}EtxawE{j4NYRNo>t7CzEG62mhyh0jJB$3|{g`wI0z(Hcs!Tn?*C#-vl)@ zPoGcR?Oi@F_nF*Q%}NW4flxRk+uv)Zp^j7V)G3McO6PCP`4DxvQll2RIba@EC!j8(45Dc%WK5*&&n66u|RT6yfyex)7=4d_sN)P zt`g6oLH!F=JngcIV(+q>pu*nqGea?q%}K=kH(+ zK6-hg8T0Pb&C%H)KeC;nXigln?{YiqBrZ!$l`<9rZi1Lr8BCr7g#jSy<<6xI#=gAa zzVKS7ZlVSXt5HRqkXUwL=}r*{WK2uzjAdRp!-dY3NAT3|pt@OR?3=Q*!Y6j`lt0qV ztZt*f+MB)T3DiT!Qk!BsM*NxBZHEL&=akgVG}IaHfP_xLCfXe{ixI^AT=&Byglu)w zeSO!+GLPDi6;lhEgKdJ)AekS0oVwA_2@ph9=0TOW=;i#xxgW3L{JSu()H!a4EPjZYRt=nA)Eq07H& zWh6sBi?KZ-!-e+L^&l`iMHP-_#{q%fKCfU?Jlp~h##8owC1ov%f|wbQMN$70lbop@ z;wuK~XtA8}w)xH%a%h;?lr-@LV>6&(1?EJbd*l#6&7C0{GGUc^UeJsxb;;SWr|{$G z^)OR_X?%1OC~^7R#%KvO;-~4CeQ*&dZQ6yBASJsy zwx@?dpwOthV=p7DLBPhPn1?|+XGI3_X?ej>5qYa-h)5CYqb5--9W z%S``ivQ@r|%96EjObDSIaOCy*f+C$@BC)aoYiZ_`ddcseKhlgk=z6m74*0A8PlO+H z;=swy8tk))M~f{|x%%rzPJvCm1IZZND4E6`0bD8+~NI>uPVW6kLxTx{RG$ zjZk+C%yIO{f{q>_&UICj+hzuqN^JkD_}FesxcA`$q1BNXqW5 zQS4K*yPwM)x1-elMQS*Dx0_SSF~;A3N>4}#kav@U_oF0Mk9=#!=rO*yNg)A^@XtX$ z<+#3GJP#tf*s`{9{yXmGZwSBcPgU0F{mcFAqJX11^`NXwm%x}{>DIEjpm;^O6*%I5 z?o^sQrmU=wo!E6*JkUOq{6;Gk|F&V_S4D{K+z-ru=js^_mkk)0h875CdM5!>d!2bD z{uM1H!&>+q*gelGOTM|X0`SRYMvFu(4zo1u&GxBqp^I=m=t;;2*JpQ|FB5~$E;xS* zllId0Q+4>nQ2G1%EMTI+3FeH()|e3guN-*h6tFKG#p!xp%1_l7T|jHPGXnL-N?N3G z|7S;ok`R6)>T>1Rur8-IA&Fp)Ijy)C0`4L@CL~zielJglbl#&j85efay+`toT}b)Q zV@0t52|)Pm@U8LBXR_T1#k+LS4}cQ;v;CQ=>YEwyqTrPz z?-84RI*$p-MX%}-jBSr`+mqy!IgSO8rB+PWv3rKy*B1p8cxgg%n9j#!@fDMvb>Pb? zoB6;jGNR>=I%LMpVe6aavlP>*X=Hru?v!a-BwfP;)?1YoJ&R4zTlfqOehY(F^wx(9 z+&XZIg`0Qm$caMES4!^tEp=tD8VrLZxGi1LCq|=e1YW3NKtL-U{AUw%4f_fv+s9w8 zJq=u=#WTH<#oAd6jvJ9~Z8L_(Wn%Q2CG$wEj-NTHCrK6at+-u;QIGoOxX0zt{bpNn z8!y#1I=9yr9#xlecPWZ;@S5DD!$yIIFWeJ3|+`yG@K2q?r^uNV9T;zjt>XJ=Mj%_*|7+_ZWx+U?0g(7R6K z%U``?Z4H1B`S}|EXky=OG1FmWJhnni%Zod4Fg<1wXnhnqJAb<0wm8>TGr7qKSIN-I z*GL2BRmkRm$2l3GZUg5JE?!JueT(Y9wQG(UE8agRxIiAad*j{zKvr?NAv_-xG}(0S zR+_se^6^*7d+qn?K|zuOa+$sy>Js!_JVcD~L^3OnKAT0kil_#+-=6GBV+~dN`|n(- zbsCG6@vR&kHd7L+JpTAnf^Cid!aQ8*=H4(H0YCU}fKLfGum{kR8$;eoW#3_w4}Il* zmOc|@a&qfKC3dgWgX?p&dTR-esSa;kuz$`re%ncz4@uPmM)R@}s*t<)YOc2;OT4J; zl?(5IFNgfQccM4=M0phz$yxd0MWq!vWsc9rZGWvW$@8uJ9r!`*ffXJ}@{%_8WXz>H zWJ+6J%<`=7J<^COpREefE;UIIevRC6WH~(mK_dI4w5v=@_tl&(X0XbeqoewRiz_jo zc#C~^%5E6OcqoHmj@5GjIdiA9;3LD5`uasxQwyuObT3P5>-Rcs(RyW|)`dVm zett@RYof$BiSOh1KWxsU;_u7e?ywb7_}HbKP5tENP~t;poMdj(!wB#As*o*f_AoTZr? zV0M6(t>z;@=Frg(3E%FoD1M3Q$#{q-LqsR^tF@JO&^xKhd<~DN>z{zCySvBS;RT+u ziq8smfw@^4OI=;v)Xenb@@PKCsaGW>Y;((sU@ac0)SWaE0`^~>TA!c9CK!Dzk|NVDE z-D2n3;9jkS?9;=kIQJpo5_uMSjL(pJ-PtE5k(`8jCu-|LgcO|C=J3Cv&?z_SElF~C zRaw-H#Tfsn$~UZJXTMAzL**wbno8Nd%9{`yZl(WGNB6ys$y);U$7_8<|kIAM+s4ire|YX5dMQYTs5RpmW)^cGRVkl8}}L+!QeHx zt0#-+eLnvga}jijxq6573yygpjzKJ{XQ;RkBE@}v9UgmV)Y$hZOD#3V)3pq`8l@;c zPc`6;>nkpgUTq>7uzV~*3UhO%jeFDaXQG@jUD3>!E7?NJq2){X+Z_wu>KZ;?web8Q zoks%?YMl4Q3RKhny@*unHQeF5{rPZxbK~^H@UJcba)QM}cZR=Gq{`I7=)|5P8nO@F zHa~Ar*%9+Q3o}GIcq?B5JzrThI1k5#bWQ^?XJVCoz}PB#^|r@z>g8k5j0^bSNQi(PpyX zQ!=NilD08t#lGgVxWorvc{mb%B|amXd{gCec^?ljgAnGFkBB1v?lTvdubP{|xRjus zDvivJ8NPgP)dapDdESt zpeaEJvgmvgoD=)qS)Cm;uJKf3W}ebM82D4Y6;zv7*VE zB45n$C?(IZ@SY(}(?05se{b2Fly$Jkdivv8GV{fLf|zq=!u0F45%yRgC0l>Cm5E zi=14ybj9r%?r^{<=hL9Sznaj}gJ2J5do*Q)dEV|q%pM10BI{$r=09rC&EV5@Ph0#~ z*FAy(fymyF_V2Ubr=6&U`TRbK)e4VR7AEa;Y;^Sy78Mm)c0~}EU3hX%d%bsrbrPjh z`hJ8?uZeIKP&~J#{-R3GO4)rX;Rq{`ddfB$Pux|K+4cboD}@iScQ3>_gW65H!<-gV$Lv#84`>y0y$htYaAY zhmT6psmyq6pbo{zxXLgYn|`mOp!_8reeQOS^u^MRbw=fG$s4#Q33%nrA6sL(1Mm&Y zfMpn`Vf|mLT_NvZ`6N2uS;?o~wR_!b?hVqYiu zRO1tM-n~{k&1}U-aeY-zk(YW2mVBp;`^{$5sS%y5?8#L}D6eh{UL&YAJbk)*?FbYc zU@!*k$FxV!L!s&BEGcB&!8FomU^pznGG(~DSgnp^42-YzElTl#XTRw6f;(bK@1%2r zB#!LC{l7GWdUuEuRT8i<$*p;DLP!@3pOItHU=BR*w)WUn8juTn=hCWb^-k2V!Ktv; zleMnSi}|tAW2MM1S=|C^97Ej##9?mB81cb0AGpu@zhM8 zo8+@Do}}?{26U(3@=4S zn0xw8gKPHN<`*Ze__E85)#gU&ex;;TecE7?GRBBnB~5ofCW+lO*Jq*1!D`IY8QNWA zrlXk@`0JFR$M|`zIW=^xdHFL!Opka)!W`CUvQy>yTuy|tn~&27`tqs9BMs)_xW1zD z=np3E2O?r<=9-IBFKu^V*Uj?=%Jt6M<7iu-HbNwHxGiQcJa%nV1pRXUS(o!tv*1mPlFM?-hqM-YMLLnc?VRb<#@_Ie>$UA? z*uGl>h^EsBh66P1)%Oi6@08>}0KlpUYKTy!4s)DtZn{JD?e=Cvn58kvh7^}O(BZOQ&!cF4`$hXnCLz4|SpWnn))>j&X6XYa1 zE3&N0j9WnEFJVe7`$yqJW7qcM375RCt1gXv`*tzv#f%8=P?gb)It=-qY_iYc z-~6*w-AuE$O4V?De)!yHz6`QC7Gd>))!{!p+7II#7K>Ld)B?D1ceXxj0n#e`gI4DO z1Bcbh6+_M8O`N#I=w1{0sFw-Nv(kZsMJa$_QLboCUcV&H5}ek-?TfY6OpFzYFh4oB z4+skSMVwvUgEAT%9GZLIOb)AebBxT}2ZYj<4xi`n@X$zjnsn(to1L$&^;)eZTdo))R;INFsVk!8k&b;&~h2XJql*l?5Ao zT5*}JrWQBI5X@+{^W{UFt7m4GHt&5A2d}`$O)f*fI8{*pZ&6`E2Mpymx#sn{`CQ8( zYudg}`&nNDEnNi(P>F739P3{v8Ys#YKBeq$A+Dg9R4EXwzud@WW=8oGgvb}JnD@@q zeDy~DmFhpGx-UO^62Hj2*hy3}g1w+57?T#KVSm(7Pxn}f2EwP60#Gn8^RCG3BA zb8kc@K&yd1qYITWc;=MBZs=Qz@07eu0`EC3@`A!5)F~rc%WJ)3`EB@??oSOXFTtZc;)uvyKLHRaHBl<_ zV=grap&(808TI4V-DclVE1?Mg@Vx!yctEx}hW_z!(!!L=mjmbv);?&{ykw$feDvUx z!P6t(u!XWa1U=hifq!v<+X#v@r~H+)zeCXp_sP(rfr}$pxTI{XFVDI(z#SVc1e%2_<&gXx08O{mvd~Fz z-Jp)A9nb--z1jx_f}1zNo}#kIR9Va8Zm`ju5TM{x?tPioIp8|z-fO_OOiVofFaYoH zq6_=nOM!|=prl=hc%14h@eria&-d`Y>OB@Y)$q`5b83P6{-ijhP_?h_l}d-g=c|u6 z`n)n|#WvzS9qs?{CU`%Fy15!fUi$t}>*X#j1&mPz(W4+!?b zu&&)t!+|-~(@D33U;6gqau@1Kg6j5l)%s@<_DwpI@8m2sjy*j3on8sPUTg+y^*VAY zMv`XtFE@FJ(Js^ATmdKPUUA!MK!9zzYi-nL_W;V(Y4%g|)q*C$LY9nIGF(Le9*O zU!gvx7c5IFX7r%Kv zwnp>bM_0d%(CAs*REbaUTkJXgG`-{`vHd3vRp0S&`XLY8*Rh$X#H~4CD)k>eG$)p~ zuodwq_~z{_traLN9JwmerR?|tT-+ydlDGVI|B%gG)?KfQbvhW+YPF25i3t1L?f}C) z9ti*4J0>a}0Y0$%(s_JgLG$;p;2Zz-AcysEnHlN&F9xnIF$Z%Q6gIV~On z3{N#{A_@J{qXqFr5_gTT&gTHsM}PJco3 zg$kQf<-+jlj+jqlRVGk}il@H#al@_;Ag78VB-lfYv_xjOIKCB7&DcbH;cvU~0QyYB z`}*}OKuA2V09>{W-%nqE@U_u-6r(BfR~j)Qk%o@`yQp`vk%j&Jd=VCwq%RJ_oR`gbx=8^g5iaZmxqmMblrr+x?qH4}kxVC6vfcY?C-wq6^Yr3wq#qvTqf%YhgO33O z2Qg3P#dR%APvYmE`c(WlE2;nfEH2u%&R9-PtS2x01Iv56*MUFui(z@2<`&CdEdl_a}rJv+H0n>%786ciM{l9LK|=Ya{a)BY1w6*_p8 zzZ6hu?yofCvZ!vSO($v|{V$Vez%tWz;sug&77(Ggg4-)i%hY%gb_t$F9FyHVKTfQ* z`gmRGNGJJtiE(hqNyGDY zn&c%4fAbvBjD|l3Wo>@N!}U%u--{&Z?0b{96ZJ~-#j$)AcpGkevz^^+L&bAV#6vu; zkKN=qY$ih9gzW6DInJ6W_lJdUll2q4*UwfgpADc_m&N$>xjl#s>n1N&E2+qsf0W@# z>zX;$@Fe*yWBl_+L_gEgIy>ItRB^CNLZ%Qe=xIIpcHYF+|=B)(%@vPx3$P#=gNJF#An zt4=yR*uXY|sw3V^3TPG93T->Ct(xnxfObDHl=q>i=T-gbL9oL@gy5VI%;VC?bt#C+ zKDYkNFQtA?i)!$WX+x7segs(w)+P?ctjT8tBqdeB0!={3?GcWEWH3Li9F7! zGG=;X@)nz4J#%z6zN;TH#6nA8PKie|Xs@qNZ=(ht*coL0y2i5H^pgkYzATvxm3jRX zb5W5-R<*tU)0N-v_M=+7%?Cg?gmlpvoJpyI850QGvc zwUphk7@YFOiM)nx_1k^?9~_o%dLO8=4urM_ug6h#{{HiRk7F*3pAny%iqSSb_4D%< z``zMb*nQ6M-ww;nPPEXDp7TE@;DOuFUNfXvaRpyzXiwA%(*s;twKH-o%H_AOW>Kt= zv$W;5%H%kL12`h$wLZYk$$M2_wSTZL|6=2EHhtzUC*BKi*=?m&fmW0Cqf5WVDsxov zE^ogFFf;LMizCx~Lh~?wxR0N(fu`?yw1`$ErMD6z;^~SL=F8!Um-Y#4xrIqWb z8yM;j&E#m~^MCbip4#4FH;U%zH@UFixaO10&dtmtAA_2A{V5}qEM&ba&A-x<-upb& zYXbA??;mF7mS*5dpK1{H?BFE|ThWXIyTn||vCZk)x*R+#P2kH}0!c%iO1#d_^@95W zzb08DS_@u!vbX!Y_>ZGQNC6WgW00IhF(BSBaj=o~+b*`-vcy8Koks9`W~L<452vf9 z93VfCLa+%vQv`7*ZUkw+#dRuU?+^O$XL00%{hh^Zx%N=5R?8pQICwu(vcB#%%2@~{ zO}~Gvlo4h1m>^Y-Bhd^?reNIlFS%a9+m7l7xHzc=O22cmTjs{RSorzF6`3#0=CA3hI;ynyu-!d0CuvukGn{(y35|z`jXWK@WsosAgZ+7WiCd>V%bz`;UX!h z<=4OvZ2(exsM>%A=M9M|MN+x%1=z2#R^ZSRQSyY!l28MI6CPFkgOxWw%ZHXMj>HdY z?AHA6;eGs-{Gr*LbKDqK%)wq*#;2?=Aped-9lZ94h*~a;_!OD^)vCaRb?niyF$9N+ zVv4wfUm`OC$)~NYy^ZsS`m8|6@q=1Se8y7S;-zsXv=aSk3%J_Eveli7iHbULvJtw!Yq+@xwJSyH8et5v+-qtY*IV_o_^e%YL|R{I zTOgZ!L7yWdp_<|J1YcjVQ4e&7ll%^8H~KVgkX-qC^Jc_q;cA=(q}K*o{Z3u)v^ZSv zwL9Bd{%gO^>m#ev1##yfW;ZLbvM7ut()AxEK9~y-zHp^0gZhqMgq)Q9(QK%XlqfB_$&hDT z3#fEkf(ATiWHhC3SUj`<247TCY_*xMTeS?1b@^CcR6q{325l6UKr1YGvi! zKOcL@yB#C_`|_o>mqm&{10iRJfSW{7Op9EiQbN62N%0RL_sE<`5`i7>8m0NFJ2dPb z9x;6?SG^q$Ln-46)Udfb5uDfaIdd~bh z+ZiUgj|ShwGF6X|_&@J!35Q_^swZX;L8@Goo2{&*GG^ztQKU^mJ3ZKd)Gl?l8_#qz)S9qsXT7?ZZ6UI zw(g1_f%vfF_Y3%~R9&x6=S})t!#<$bQwF{aqMi?gZxLuQn?FHsg8R+n>IXIr8m9Yn z|HEYmaI&UNNq6+DF&YQ|v3DNZ((DIKNxyL(v#rA!jnS$Wv# z+c;%Dfk0xCd4;+EuY{v&hgwp5BYnNf&eTVv1TGOSvve~NO3*j+G0jv9Gkq2S=I<>y zx>xgwuAEz>iQU|n$?4VkSxib15$_-KIUEl?)-s*B5_A+4%1tD>`mw}eH#9c#tian8 zTxne6+upnDP~q3$T`4(t00PxOh;w@Cxca2@7xVXDaMM3qS=^>8Ee^3Y{sB<@p7Xvy z{%k|DweHI*=gWQMzKKBD&-gBatH9kpu>S3MK-u;AO@vd4e6y+lPTZ7JO9AyvW!I5v zW{L6M?B7_3Q#8aI$^0qrY_16ux!=f48}}uV;6MqKkktFXYXL|TDxim~-A<8>YmXWv zC7#ogSfsIh4pn;oh*_95`oQE;jYP`xUb2-;7yi929$uovsx=bJz4LGYh|gyo=qzxH zx;*ufJfze$xr|XS#&7W%Ra-}F=JoyBETD)uqh82{Q7+lIat{hM*~{QH1k&#BZRZ;Y z+4jLSO!&C|^*csKQnyivl)f6)e^=rJZ~|aoV&~^`l+9^iGz*Z>wriPYm)gwrdG_f|jhH7X zwN6WC#e7dXbhE04MPA>Js(v@#Q}UBrT&h!It?_Dw?81?v?@v!62^@||=Epp4;3Zk-F&i{hi(2xewJ@FT(M8Eyvy*9}`mY+TYht6W!K6>)odH+>(=zp@K3UXgCDI zwB?%>04t@Y-I3`#)aSxrW=1zmv2QT5h6O>U)vwS)?L1HAjD1@pgj0N;Uki)gvKEnS!_0Ja4>tp%}vMtAJEoLVjS)Q?|h6&67 zNL$P+x8y&AXT3g)ZFe8a3UTl@HBlETH30}%eg3iMIOt$stT9Uo zQs@Z%Yn3OIze@HHcK|}P_DPeXX6^&s%a#0Qjm^!?Pw6ZLb_r?mZ^sYK15vA$iP_n4 z=BaXgjH;4HAOEe4O3u24ylxzl+AlS-{?v|jkZCx!c@*nc5|*?PAl+Kb$#O!-6QXl# zqTvfrJ=+9bu@W&Q=>`?8Cp4TSUxd@kbkG~Q+*8QVg<9YiDio5M)vWoTuOr`6kwvK!I=n}VM?x<*U18jM*xe3z z%O_B;2b9(&bb0s%hy)6PF>Y?0NrEct06|#pk*6LhUidb~N{-R;OBWHnz|R_pSh#st z1mDg2WdD#$K>aosTT*<`ASsnmYYK4@`#jY@1Y~f@=3=DnRV@&OYLwi?H^W*59sphN zgjnVDqN2q4me|WG5tfn}fM+w3I+_=*B{&(tR(?^vE$zyqKo@dPK(tt3`sWcLE)E{g z=I?MS{$Po(vXPI8@Lp5${5;B4;NuZj^%hZNHv37&)Bl%<5j#8-_btv~uA8#OLsfQ) zd7RH!$yVm+EFeUDt<#?>k(c=`z9&blKo0aZn6EZGtfh9mO{}jLP=e)gEmY&}p{jfM zKItNW#dF30I3;P{J@!$vePi^h(fe$_Ob&Eytf%0`ALZxwP7v(+ zwcyjq53qTCYahVO13~if*!--?RclzC`QHnmk$Z1?7&r`1vWQOZ9 zcI(wJ4kt()eXG!fOonB^g-`njhC>c3xUzB?lAM=%cTw3dsWkQ@`H9w|f5HKBI|5st zE!4&I0R^{>j~kZv$*{NTId$2cUh&z4{iN9kavsy-JRpB7a-hT zPg@(l06|WUufs!tZGpT*fU5dN3J4bs{{fImQ{T8NFTAgzC_IIG>Z9(_<`Alg12*?( z5zO0NDD*eo?9JSzprg?>wUyVYT%yovy{z$YfmpJoY>e7JT%HGb;rH(qk1gu4krR9s z+4>!Rv1^L?_w$9U|CX?`I4)3j5INJ+xS2J7vg7MKW_DW^$a0E?>zmxw_Na))j-)3I z={2nfJ^tqFUk7%>ZR70_j~$XF#e`RRi$0|v&y!tnEB@A}U&Ai1Bv410YT!irN#ELk z18mwJY~;70ZREe*08~;*p0(6R0@7w^_0Pgj-(GeHnEiA*P^_ky64m#K!}OTmL6@`3 zDXMIH4B6azK1kDgyU7?!o!Ob%`oOKP^VH1H=?A)@FA7EyanxhqVoqskW8=|drF#fJ z2uZmP453>tx`Y3Wj9>#NHNgy_z}|Y!o?pq1J#Mtg9ELqwkajt{Z7%tZuOihvH}5YxrKeWD6X0FshgN+J}rx1#^;u28hrINQ{1NwOB_2d!8hz76w#9t;i= zYixKr?*T-hKoSzY43umE$9yFO4=wri?1FT00I){r<>5T>yKLnJ6jgb0B5-$$nA-0` z)-ehL!hNO)l9h3B#H(7LpKBt%^r;1(?ame<0osCfM!|5GRP_8kj-l0MH;YuBU`GuN z72sLR_S41tGjD-R5I~}Jh-)lWjxAy*O$*Zcu8OYHiN#z$oJ{q<_3`&t4yfHrtW%Xd zkiL7(^HcLRx4R;)C`E?x!mull%+)pi0kgDlA->I~sYdG|wP8a_feW`OI61#m$_aH^ z$$cA|$aOBI1;LPle2?lXQW>#AFwmOJz!fXU*;a~Bivm^4+i;(wAx!h1ArmcNXnEqN zX&d%ed2rV?9^Ce2TO8-$*Kc1UObt8mhjg(2)|CCxLdGQ2MvwOLu|-_^47B?tf^hVb4I|`$_j4ZW z@?^;6WUAJn@uE=oXr(pe@KnF>6Q#U{hQi(GRnEm4@8+MDVlo0mu9IkhodqdmtKgzt zUv;Mysv>}NV*x|J@)5${-hk6m?%(};IvN^xCM!?nqP`c*TdO-gRdAqXdmzCsee*+O zCWxfNZZhr#D|_N=a+1vs-gkkQe!PTBnAFoALrOz|)}A_sa=np1q*8dK$(8yUZI}@s zDQ0?&JQq?bfl$IxvGTdPxRHRb33TGGsZIJtO(h?OzGT-$L2Nc_+I$K53+P9ZQi7R+ zFu*F+1g}{SvX>SWRlG3MKjH4TS$&Jov%79rK3Z9~bov$g>}a4F^18C5SAh5uf#7xQ zH)CP&e{KWfi_zqny%m0cHwkho5R^{4KdZEEObU2(fggb&*w0!=gfu3?ZZCPTFz7zh zBVfhu9YzMwFQ?G?*~DW=U3=;OPJUgb7JHy6%Y)4)+xWR`~(>1c_|kwjd`h{~xn zBGe*1z@bE3B*-6xLFXP==#LD2j3A}@;UtdrYj0Lb---h3YdGFm zyLmW!N8@{@4C7}S%#+eB6@8V?Ert5FE}1kP$q65$2lvWU<>M&jG1n5u?lr|RGd0JP zklCslqR0Eors zQD=AZ?fGyC7fo2%rk(?i=DaksYxcR?W~JBAv6jEATKO8D7CiN2(f@$Sdyiu+zhQCZ zM`EE+%Wb?kA}{3jz!bwv*B0VFmv7`Y&|YUpVpxB$ob__(HLXDCZpAeTe*xXdGWN|w zp{eSS(=QhK$E(s*!uFQYZ-7)6#`p4F#q|YeW5p27L12F($`o;(R+yK)CPG3geR}U_ z$w~-f8(+k1DoO`2asC332e~}f3uh1e$(SOn$++|hS^n*o^fPDagOfxPuV}CniOaP=sBa?5!57F67>Pa zC890pwVj;&u8ROoIgjlW2m~$hCY=B|gPao9B@F9Nd~Y@@sCcrQ7>{zQqv>yxC@@O}X{EDc~HT9~v59EX+X$!F$!V zNyP5VG&t!%*@_Eb3w{#p#ZZSh2dau8ftAgvZpI7cS5HqT*;2Ezv2s5vW<3PVR-v*w zDEKqx_O?MRh|6X)wGD#s1@%>H%p9L7s9ZR9S+kXteCz#mpCdZYsWAIld7NO&Xf;Qh z&$!?9MJ4HqAN|tJ9Cy>&0cQPQjmF&)Yc?`4P~I(PbJ#(c_^Vc*d}}K{HT!=)K1WdN z0^Q<+kn1LOQY5aQ=ysw3dVS!c6159Mt^f-wenQ=TezY-LKSCE0az7L>%U0VZ8co5Y z7}t{(a*>ctqBgI^G9B>=K&qlVg-!8%W<7i>OUgG&RJgZ_?Jf*}3McNiBcY!qyYyq+ z*?{S2xLjympalq|;^OFPz=T9g=?zXXvHHv#Ro7IXU7jD@qA`sZXYE*z2=GKN&T~aR zO}rpt;EO67CgK?S)U{c@;JdpZ8B6v+Z^0c-+O*|Rh)M~O>RE%d%cvPYfuMYS1_&07 ztHWT(fYiQ&TS;#`s+1-^JpeCs%@Kg-hw1JQm_nUKq8tnHG0mR4{Akz;L z4-VoCIll-wx`Z(tUhfk6t$x+Lo0?a^>t`ljbVDZosu>@FZi+kwK$3TmcS3;46pvik zQTP!7Gy!#8f(?Utxj>#8$;cE(jmLO@$w{e z{hUd2bi?A+gV4+}RnS#Crc=PM-e3W41zj9YKcy*->$!lo>YgvYLkI=5Zc}=V+ZGPj z)s{)zc$he!(PuaOUO{h1k;z87j_PV`YJ~Vb3Uw0q_V(qtYvC9jV+|9}8>HK0Z}pkA zfV3x=^nkpM1!7Y@6*DTXHk)i*CmE3UmJi~jVT_HWd!|2cFLEi$p+gPOv9~yr((SFw z#$3Q8pF%DICw1;o%8w>WZwfGU({Ko z(KXy4RMUk)GI_zqIdsdb9uP&$o``dF-vMTF#K>=3xPLgR*4J_3?HcUVASM_v`q!uE zb~C`SyxDnPU`&yeTF?oA5}P9}w8!2rrRx=h^h&oytfHxn{?lBAyow9tR|H>?(rb;$ zF?u4rRKJO%)}wyYC-Zmepu3gGj*Kxd^vm`g6EO)ixTRceNJo|b<70v@16?C$ zx&rpodn84efF&Y}Kif_eM79h;M$7?t$p`Qc>((}I=slVMf91P3GVUMe>$%-E_mCa6 zaQA%wZ%5bCe;bDW4|jC^f6^xQe_slimH*#v)LoOHllFV8X*^}>G@NEn^x~@vc&C_ zY?w#le_*k7M8nmw7k6#GB|d(ZCz76lVX8gUixAXPUFMvbD}-v03A%M zwnanI27Y7Tq{9Ko#CuTp_5Zo$D*TF&bI5X3`sPWS_s%y?WXSs51)S%uB5Y`OIv&&V|SDdA0nwT)}b{#e2U(luCY;;QbI%<{k zBXkO=v%Wb-QA+%l2FSv`AH@p%zGj%9*gB^^brbz_t|2M?p#mpZakTtEl-yQI%Ftm> zxF`U5G6NUh18KxFvDh^cj!W0qF5oM&?208tD{bNeJD%UB*pWYIx{4=b&HoeJq62RB z(Q|+O3~T7mmn6_ce2gnP*_gOOQ)UAO2k#}aL=w9re-Ps6A5HYDxhnRcr5|<*{PyRX zSVqu|JA~gOykxzW?9>>mGJYu227ug5v3*J)wQw|lH$DY+sZK9R<)J~ttR++>=Xzq@ z2*#Nd;V6P)h{cO0=uXg~v@WhQh3 z&C|jMn9P?MJFohyeK)I*h=ykZCX002$ua5BYSm33%pe22gnzds-Wj`@jo-UV-aa>9 z08U+WHnc5nLTB|&IypTsy|NmTON>RxQ2{k)%m(B<&LyxM$e9LTQnfel({HvnHTJxC z-vVIp&97Go_t_U~hC$cakWs`Y?7(VrWpUcd2AKV}zU5og5+uL2?9W_~@Xgj0XV?{?3&(00d!>{2l4-CHd2R&h1~^Xl5bO{< z5;0i^KSXX4YS7i^Pzf zJkaE6B%dA_4El_}ellz1pJ8ImhLU54TaI4re0yUbzN23V8e2U&`!&?sd?-mGeIs)h z>s}G<|1^*c_UjZcmpbbUU|4SSz+^pJ@(sua$~S?&q6TTB`PJJ?y-bD$k&FXV)Gj#U zOdimtt~AW8tn+1;aX=tEVZyk4afvFuqE@)1tYX6y(*Dmb#c0mn*5zd7SVQFE-%wFS zxyq8RiGCgAE)_9hNGr%DeuMh%bQ)OC-Ue}4)H9Uzo5EiHg5yq^If>dWLUXWf)HY?i zpGofeZrxN25${j$lG5y0gM}KouPiwM)V8qK24H@5(c7()eGd)krXH_5rs8sy^NJR; zfqUS3OCgYf>g!RXj>uWp46{Y@Yt-LUWw@E9PnC*-kAk4f@fG^BT2@t&;Ll>VunL(%(r zOWmdQ&qU77CX53Sh3yL#e1HU;cJd;8U` zPT#jLvYGDJBKbOLlH;V z=00gk-DRuz?d=1g7v~=ps|I}SV37{wccF&G$IlqJ+p4cBVM_~iJV~G?GB|E+^`jBe zCsU~FO&i_#q_np{u2H&W6}H_6FgJ|{@r8y)9^+7JzE)Swnk$lQS53t2opr`!gRf!} zODk@rZ$W7R2fyIN+g~5uQ+jYOM>n42-dlfi&F@d%%N?@+DSCD9lY%CPG{vt!4;1n9 zl@v-&6dy3Z_=>eXko+3Gn09f)EADe(ZS8#!!Rg^+3h4{SZ>jO|K5+K7SwuA3y4o6Ot~!+@r~2w)&m?+qg+(b>VnuafYJIWdH8BSKj{8 zPouZTaLy)9F^vtA`wfd|&6LiYNT`vaSAJ0M=A}iY1%;?sr%~5Njbw! z$&MS($@}5|T?^1RykM#ujJX#>&)d4w7v1xz@NxW02F^*V_DhQ%H}bx?>6?&?Iw6>+ z#X)^#wpTU1-=$yHVNx{PpfcCxK&9uQR0}&b-E8!0;^I6|Ea#e}kp; z-S)=u4|K^E5ZnfTQcN(}-i!6_;fgAT2Et1>Z+iA=G-xYB;DN`|!T8 zg03nT{anm@cq8{3A}cT(R@&kPzuqyDIgL%de}+zhA>-E?Df(_Mo=I;#0o(x?;e5I1 zXS2O(dR;%ck9x*A&ZHq-8Gg119y-Xa3_7hPXA}A^&q#K&ylYzW0GUv`6^`7!z{V<4 zSW73`7Y<6jl`Pc%P;9ihdlggZzeiW;B@iqUd=;-9=VxtF>Kx#ezsU(17nc)@Gf1$_K;5J*Y&K1bcA>ZJts zEvQCd-ln4o1PtAQ-_DAU3^vnkw3{w^81)dw<UJXl?xf8FrbzDs_4}9K{m%W4Fjj z!4|XKHTCX(0yDVwubOaMqs#%<5ZlujTiCbPS>QfBwTh!K8{>Ej!8$20fJhVL+MmlRDESQ%- z(Qr_=8%r%3n5t85hxEMSL`&%j0;pzBrJAmA^~@#P!@nUX$e2{(D7&Nqv;GIwLbN}9 zy?ZnWsRPK|EiLisMZ4h5ZwlMrmyAkP>rwKlAyQ|G%V2QkG*Tib(Xd9SqDBv zLwn<2HEyoGA_9@XU9zmOt03UUAMN16y0pQBHHU2D3Obg2&!J}p+Qci~ZAIKm)o((A z?5ql57(fi#gZzt~C9Ldwf@V(7Cd$;$QAQ&s26KAro0y6zAEaSfhI(2_kkGEaaJmD? zs6>!T7Yh2=PPelIaDq9SV_Bq9I&N2F`*6z{D@tCvW{e3%!_rZu!bWpayQa%ymIvn>mTlB;~Ax;ymxflD}ew+r22F=a4Y2^{6yo+RA z?#}P=Z#SK|YeVdnbA#Qx<(rSUVouY_l_43G9O@3)r8WU{c7vIL3N_J%h`KFtwAUAJ zChGY2PH83+vn;ZaBa{_g)gD!LnlFbz4{S=zDJHRj|rwSD(=TI_7T$;38WN+<_% zAfepnC@jn!u83l&cc4wnP@}ck34kue7CPjLFx3+!=UEc(O zKs~JygOiHD+SY30iC;0oJ4XopDtoW#XH+yUdI28MKEvG)CseXv%4b$reZQ$`KEN67 zV|6?qe-gJdM#bcLRhl2m>(f?mfH>fTu@$>T12q>IrGSZeWSehd)amvOHA|4 zuw6pl5X1Q!>A<4e%iv*eCa-N9wr4MNYnv{Q%L!Z2?b05yL5L1waCNF+T5Ig>WXmPw zT8Gog?Q}YXW30ST0~OmIGD8hNQ{J|DB+Pi(M>Xj=_LMH#&jY9~Ks9*OS~^)-$)$zl zhioR(Y;8^!uvsOUU~LdiG$8fM?&MeIz1UhM>a;z&f#jo*#~@ekOC=k4>lah3gkF`P=i}pANWx!>=cl%biX4mn`ga+X6HZ zrMq2;yl~&aCr)k`8P%wFaMUI>xV?8qzDvb#GY+GVq`Qi_Vf7@~PpG|^{Zb*}Z;^GF zGRSsc$v;TR0F!1~(zEoOYBF0|x`%K-;YqZzw77c$eL$f;=87lxr2`!t)k~fA*Wwg> zf0sbkx3Y8@+3W{LjgeC{a2vN(TMzYAEMT^@?44A63~uOVW;NXwb_7S*o<>Vns4&dv zT_{w!XBk{QPp4*sD6tXS?Tn_^C7D(h527DnVO`F28andE(=yTK@jwdJBAfqj#qB2k(`GEit=>C26?p0rnucKgXEB1y>MW3{(7=PdXIh zc1C&Ay$c%WwaO?|t$e^Ti_Gi5gsx%@hoUe`KP+5px8{;0zStXNVkNB*r*jfxrZeuA zBT6yFA*M;fb)9d%JfdV7&oz9a|H;({IdgIq{$z&zXZV_d`|^ojK!Zsj1adbzzBD9! zvgjuJ?17KM(mM%%CzdApRo0WnVrJ~S^A1yIWukdl&sH+-yxC5txF@HMJB~wn;l(GR zE};pXC&*>mV!oNx))xvVhd<38+)NO!^?CRDdYE<3PE4O7yUozX0q#`F1-P%oSpD4I z3&5%(@{3-hQQF-W(nW@wzSSe>I(v!q4VN*Wcb-;pD6YEk0)vr)Is^&zL0b{RNz(-( zuO?|&S&?mjIDNE#SbzR19QHD}KP6wMt1mJlR=dH!1b{*WVX&q?tB!8+;Le#OBOpD>D6bxU#eB}{r?ZIU~FWqAq5anyq zKsZ&_h$LO9uj>Uss+eTLhQH?d0lo1_XW~Ap_^XMFA1GK4p(pNR1Md6181V+EquYV< z16;t$yF6aOVhlP-R;_Lz)AslEFLlp8A0qr$1Ed)sklMps&W}@GZ!;g}J2*wHOfTyf zpDhEtqT}Yx88@PsNfT+nphhzFmV&2vdbPDOysCI8V(F%7?!a5K7uh)FOy=#v8oBHu z@c`vg8q%Kj{SbGLICOpVgY9Zgu3PS5(&-P*>boSqHqZg5mXclYzMsiZo^QEs_?59&(9nVD7bCrro?E`pW8nWR2!e*!+2*ey>I^} zjgE0z=gwv<=1=l7dMF`}aM|zp?OEyE6)gT@1sj>c$)Gk00BW|xc>Hdy{jx2}yLbI` zQ+HrARDrQzp;bJtMF?KC-mYuK8UMl8e<~u$JCF}I#=>o)ZsgKe$#vzTIOzP1j+*4- zT85Wvx8LXQuL<&Nosoy%cV>Aq=k_uik)@iPQEjQMqTjH>51Wwng=t9iu32+>0|dT7 z1*=P6+@p*pHSfGb6RK5z|FrJ_zLwhHIq@r$DajK&f0>wXgUAI!$RNXwOY7wlA4UgQ zFh2}!QpyX=J-V#&M-83Cq;st^DqbCQc^Yc*-!3Frz&Z&kP`Tpvu|Du~gN zVv#;nRj6?~L6THDS~nH-n>-kMlH1Fq9mLo7MOxU|IxYhbv2CsE4jO~S8(^na5rdl& zj)pEqrFx@Ij@8aigAlqz-~v1+Fk)A-9S z!O(5ts;nK>c#CF>j|DhE$W3F#r^pgGHXiiE1`s_V|K|_hD!gG0aa%Efu~k^7Cdv&XFDW@22wNmDeA zZ5bTw-QF7B@yDE;Tup%A&~@o$N!DMPf#LCa!uSs6v?nCsc%H^GsXOjM9M(>$-N7>0 zL24R#71t5@VZvZ|>)@8n4A!6%g@uJ}j`~{1ZLn8cm5E{YO0BpYq2D_8`wTR?9*l*i z75DoXZq>sFeWCOpH&*7(^b8$EGFMhlohL6gh$9{P5(IU7bPDon7TnH$4%K3)nsTNJ zA8|F%eE|bD32?1i={3z6v$LZj{0WON&L?)ttyqLwVdeTvD>9xR=yO%3)t`t$#~)qp z(5`|1NgKi+Xu}>h2-sCI2W*Hnpl5F=4F@fCtVx)PrLTA&!d=xQ(l$^am-WHt#-jM^ z3qmZ*6VwMmV5f{d9KhefN4)#nqt>lChhWJkr8GcK}<>3jxhHaM{n;K9e|T^CWlu=;_$9&?e+eN1xGme)ro{&;V5rAH~) zK7^0+p#iU+CGzBaq4@f#ckS}Bwy?5wjUb9eg?$e7&KZCm$+RXGDVY z2#1p%=KDsByfA-l{0_Rea#TNv&5jbu?HS}7Q_AfnR6A2}SXXIBDKJ*6ML;J$lc4hJ zSbXXi4@pwIsx(Qv)-JUkY&GFzSN(C>wGG|2Fy1lSBF|Y5Zm9r7rTEf!mbFUU`4oc$ z6|Kz>>DA~ZVaMJ(NwBVgiY&38ZN<4!qQfaL7n?E8JWE5^b3x2L!gS<(oayB9>Xg@_ z*UTv*Wn<=i7`ODbu)}^XKc1=biLhX%lDNiz@vhV56vvIjpFvtE;}yI;E_*O$hC#iW zMjSe~)O`;;!(2#bcHh~EpLBQ|B=sYY)c8lXQuu^Fhdf+<_f+Y$l{9hx^kft2|D|f~ zPNwdh8u#io_l+k^#>fJ_2fVtQca&;Zs=Exv7uSZw`c9t}YPxq@vxChdYmcsG-o2@L z4}%)b72iz%;pK7}7yIIyiIfd3_IogLnj(@7oSXOXQZ2h1JF zVYl%5=`gdoaBZ5oLnY%>@NM%y71El;KK8@IOy7azBJ(PSw4dT?Ls;>hEHAC2Bq?KE z<_4GSsxa)hWhy~?L*xVdZM&yfpBI!l^5T7cN7dL~!K(-#y8e!m** zkWtq^RbV?gq;om)6k{bi1Zall^o6RYsnem^v+{N958sb%@CDuJbP@L5^y@P`ZZw!0 z7I=P-0u0i{{EyPH#;U>jYdHS)C&*$^Z4@MdP?X0GEo-$Ga8 z>h4&>JGR3Yl+Edp-@arFP)`FLERZ@UOyfE@#}i_FvzidRvB@}-fH%3odGG{~w~!Vl z@OFXVwFG#hK1bvU-dKq)fHOfMG8g`H2iAW-`0wQWUp>b>RgE>rPrCT|)Ax^VzJKK1 zfcLtz%*{9Ggq3S3pW`lr-5~*`VG%=>iE>Y4XvyvKU^4g1YfWn#mrNsk03DqDf(bW4 z&wVA3Oix3CQ{Voe8L9A-*L>J^Cz4Y)aD7m8t*J{BfNflkbqj~+iW!|ms^&>@2mVG8 zWwplbGIpEYHc~=A5pb!zvT<=WKX(466nYmKnL&6st(~qw9>+f8fotuya3%D%mDecM zV_ee&*V2`3h*!^nf6O9Mq<*t9q2meJmFx@++>cr#s77tTNFbP^qBrQmqnOve(`9aJ zSl{)Gn^rz7bvuV>;*ARM|G)rUxbSBAO7EEAR(~8jQ}u+St*xR>@O4A$J~e zsBj4RcU$yLuWFu-sv^cDCxBs^W-x&|#Wv$@q~`9w*+@nu4}%a}BMFtfkr|p15-P31 z!tSTX4oA>$RB?P0<0)UVFw&J_?CV{$CgV&vA1$(L{GZL}re2<2N%Hu;kWkf?p?ZXQ zw*GSFWZt~H&b!aYDtQZSkYQ@<>6&dmAcZP_-~L>9z||O;tPApGtD00cn#JE>3s$WK z%rHS|=#-`zA*GUQ@omH(hwd<}MPY-5VM8>TG%gNx%Wg?8f1A+@zI*^T6}3Xtf@As) zdXhxb3iOeuPTX=+-&%@nT zs+|wZUK=ikMZ?3(+;+2` zO*5Y34KS>BHsWPfAz5*?0jvgOa6iDly%Y38C)@^C2R^go>$T5z z*4)_HsUht2egoVqlzsgm*b%w^`~_g_)*S?$k0bGgJm3^ny#9dhi*xbaba!12f8wY^o?1Y%@f)MH<9#&>2c zq4Y#(+1_x~??_>GjIIg51jpLbi%cb}MZ!&+gb_FeQ*8fLgHoR-V-Z{RD4p7!ydGhj z)^1uCmLn^DojX^Ao`XU&uzE|W&^;Ck{<997+F$4mx+5W{PY zT==hropxd(6eA-;t0^ZvskY2-GX{L(YdEC>LenYI7&m$}0L|~wp7mw%)-bJ}r&+c~ z)H&p@YYMsVvd0IdfpDK#FT|t9*s_!Jag95%o(NTheQwv~+t%%Q!akcZq81Y2$^IwqfF0Ai;SMIOd-}56 zP8r1z>kDdy;9Vlv zoSIT(5S88VhrVp3$OJ>fO6x9#$PBZO6jNSF{Q^VQ77hLRyh%eYrj6?SO=5_@8VqB2FF%M9_%8E?) zMP2@3gT0jq|4`+@z$)Y$~^d4&TljRwZ>=t0B18` zt~${wiZdAzO`6V!_LRw`t-bRAnJINcpc=Y2Y-h4{_~z&&nqEU`%bei}U3P=Vq%1yZ z#`2lwg8dV!pl78pHXsOsFv)*t*~EJ8C`w|zd&^Y)(hu;(FZ$y1EpBYicmTf#>iFu{ zm-T$&t8V!A*NDGE=a9q}?}i%!4m-8uuTVo+L^?LEbSAw%DZ85QHvTXUIb>xrSQeA- zekvM}n(f%68f!z0yC;iKiQ_n{X}t0xq=TIo+&7PVn^%C-8t8^>uK`yY$Z-@ zM6}5-fqfmH;JQrf^dc*^HYJcwP1vW!Unig}z6R~z+)xAjL!`k>zhd5baC~zQIh9r==%qc`LBR((Ky~+^j%lDKpU|eI-6m~ht|n1zURB?TRXpN zny1HO+v;NOHjz>^tTQ6fq<6a1=edTAGtRx5Ke5(J#y?^XKYJSV6!UQ5^bGK8h;(@E z^w*88nSlKkw6@=LlhQ#DpGd9=HXoXo$;+!WWd%=iJF3*xe(Rz1{=p4AwD#scdM77K zi>XfEUzS)+PD}A$wYv&RAkWBeEl){MEQ~#SW+F2lOb<&<7#o)+NP{58EFD4jY*Vd( z9TGQ>t@^go;h_0qDt%I|Dyta@tZMAuC0f4)13I9PXUn2Alm+LV@>IeChZU$4008l^ai%W@+GTsp`s$MbJIzR0W#mPPdLJ5De z+lPMa^u5Ro-4}i1QW26v%VHBt12hl_xrsaNG_d;&Rg8g@NJgZ%S4#I-_f5*_PD3Wx zHc)uRQ{cdp=bBRXXPb7>v_!M_PadE-w3I+5ECB2IN1Io-U_&m$pMyskwJhSZ8h6?? z>yK~&TZFHgIyzlIV-9GSpqfuTpURp=lU;)i@~>*@_vlB$K=XRliMy$U|Jamk9Lg@aQ&&~0#TUJGB>59OJMz!7tGerQ?F~i& z!PzxezMBobIh5;{Sy0NB*$QodJ2q@B9By*sh9?HZYewz?odQATl=7uER3t^CX4s_1 zwUHt+_;;N`d(c?X*=puQJ)G)i`XPsslDKnmxcccCw^O&vG_!wUvaP+McEh5&h)t_Y zg0NK)yUi12<&>n(T3{=Os`Ui#{L!d@7Qx|GPOgG6_ql_ z_I7R285Et!_K6qn-qNAfnfCqT%EpYk#ZYA+O?!z5bM^>XN@PBXVBs@-T7JvY z>1S$gX-@>&?l-!8azXoJ?mnlNdRc7}FKo1PT>kf3fVz!R268(MP5H;X4mNnwmF&G< zsVY@HvR-iHQAiO~nIYJSK1}7WVXw>_nMH(h>5`4dJm#pMpWUc)GQATQIhvTddiCQY z-_hHR1vQy{z7m(01#uMSnQ%k=7|5xjj4J!N_Y^lc%tHf7D*A zFr5$kak4Vl`5;b@XDXMwKTo(4=Rb$Dwt;;G0e0b4E$Jo;uVLD4Q!jlDn{z9d;l}wO zbrvCT()ZjiD`{{f?gfb`Wp1)9_cMzj##0c6Lc}g@*+)B%*^*()Pa4i%9K1}*JCbr{ z*+L;UVbwjSFJKdq>6DvB15n3a#Vyp)HJG}qHYT3dGzNJ%aF+$P?d$nBD+i z+iZubQA)w8wZoNTT|kJmHPDW@iUaTUcd z(=A>TnzhE@&89ex4@|tdK>18SI_3II<5f85oJT~42CKArQoy_>heO8D%^+p2v1wCW zM0daeQ0s>Canx(|K5wA*{Rx7iLbt?+thHAC7anY3%K1;tB8r;#-xZ@~xXyvd6BM@;X z+{fX36L^5>O*S`yX5kxy&3P$wyvMxa$aXN%uzV_S?hwCh+hBzd*(gmzb^` zaDsE&*QfO|-)eF>^AGWG2(lPaesi)MkTMoS&M?t_{5{~SwFC_#H~3w^YCkN zZ$hCOv&(zOYK(O8l8SW71fUs6D9-Mh+K^~D#_ z{g{!1nH0>UNVf?9@B!x7la@C7ZQXz#ZK&LoPW?8NQ`EF8;J=R0UBfD*48J~t4(jq@ zOW8TEh2^T>apSU^a?I~T@B2~ybk$9A`Tlt}dImb{7mW4VV@e7a1Ff4WUpSNd>@6sA z#1&wN1$A2PP3+jAJk`&9O{(9ls=F~gzxLj#ve?-wt_S7wO_;*m-{D(Ws)^@%!1E<} zOfS%j`dDNmvK<7J)TTWO1N?@(6YlxjjulJc)mGmr(yQTAJEON`OgH(a*($;jOGlDl8Sp>ysSiv^w;!)6IJb(s*mo`+F zx(-$H1nxjN0L8Ey`**!F>8mz14W8NjT{_}n9N>3c!ZEXpNLlO1hvi^A<|ff5dnfg@ zQ&9l;Px*S{Kfr=CdVR(NJ9y)?(Mg+>U5Y%Lb-3^N0skbm*tj_F!aIrd8dERA`lQFj z2q1yZVON5Gx_ue1s<;NIVvkOdh5+-#+UJ`>-iyaFm=;~&@wZs`MmAPnI1K*G*)dn} zJ@{=5P<(=*(<>cO_?;L<>vB#8yU}e5AHP{wS{@y6qS{AM#$qLg!qe8qsIQ8q} zDTWaUVi<;(f5~O(wRd9h;=rKrzq;A~TU6|jNofX)w1ft;!IVMVkZ)V5=m(1j-v6H@ zM{=)^=-R5;=jC~Dh4iPl7Gr5*Z-KV=2>4whnUMS8`2`N#iRIdNuH-TAt^D>xpA^(y zOCU13b0xapBBtNsYS_b=kj|JAmFthJ8}T|5IqQUbOeK@0tJw11SgVgze%+{q?Qw}C zEESLshxHFr!`H7bQ?tOYgtecZ*aMTQ5A2@Qmx&op8mT%4mTa1`7KsA5OVO&HZkBT| zhTM&`wU2f*p+6^vnhMlf5orKn2iLfhY1$C~}#Dy+%U3*`(<$srVp}=4XIG z*OzQopEyQPDeE1Pb?WE2hQOH=K+5`x8YSNePmEj28XJy{wWNP<7z=pwjn9hE6ftn` zQ@K(-EsjLZ{whleM|dZgjdotm(CS+~1x*@XHs698rk}NrDRDsPWJ$HrhPCH)BEq>5 zU|B$YuEmX_YD=0$FdVroJsvJA37~s{wQ-20o1a4#V{o~tMvi3~vlyFMZJDdb)9qojHLS#or8ecu z1ZVl+FTUISdPS_MC3%%t+nJx+lqS^h#k{Vy7(%DNiUh?i1eoaE3mUQuqS0J;h%KFu z!XDhnWNO_Re(Wb=#huvK<&p37><$U$D~dcX0YI)mpQ{!F-%>2;9hHlVIp7*Ow`FUIPW7|W9@JNqNoyJUQ{~QY z(tdm-@$OhfWWq8EyL&I*o-f)T3Z{hE;8Trc!16*u*8{&FLGDnE?8j`4Y%yB$T-U9K zb<)(;#iO*vqi(eUzjib8Z}qw12r~RZ>-8WKC0C|WyTArmY@xp0`K{ zQW;U#l;=_p@!UIKnI&k8|JFd+_a(DU$DxHJun?-Un^P={Pj0Tf^AgbqQ&Ylu<)Vq6 z=d>TZb0og_h_GsdmopfoE&H;`Vtc;$g=t zS?4W<&x#opQQ{^Bp#v-SmgQoTjwplDuMXT+2%~^=5J&@;qJA-p?;bI8i+|vQ8<%cf z&b-tJcyY}k+xbcnzi3^gYgKCy@T?M(*FwYF!+MudPl6X-Qw$@xi}svC-@SGff#n}H6C(I*W9==an4 zmL`)QC-Q!uk`^5sQ^(yN6~6TX@oDb=UA&K*nB_H^^|?M1ip`h)FLQf*B81%CzWDAn z?KqR@9BQW`jQQ-s=9_3}8_D&O`D$-5M*~2sh}SN%Gfd>Pp8Ds+aoxEQ>wG`%BjtOaL{>V;py_Vp{X+)?H9=4hGa9GIZE_ zDV4zth@W2_$}bT^0v(BL=oYNvgJ^b!7wIT&&MP=8+y>A**Fp~DC3PgHQ>C;*2ni&$ zAls~A`kPpM$mQ{;ms^;G+n?V9#sW)keHjJH}I5rd)0XR@K6U3E!;ndT$}X7K(-=(v-)74yy@QBz1F*<)^xTiw+N-40Vyw2 zP#?VJ2xD)xK6594P)ipjI>9#c8v>U*&t3B&Ymz$FQyKYWLl1QO^A~siDGWNGGnRJg zmu)$V8I%93Ire>ed_Zz`vMlEA5kf{2SxK5|w_DJcl=7m$^!Pvp-LPI{Wp z-&S7E3>lp3_N{mw6p^%?ePo7Y?W1k&}d^@<&^J`DJfd zrRhs;rq53E*^(ah<^m~l4NBy>pI>ds>8SroLF!L#2X*3w4WmwYGF!SqS}$=m^_h}Y`q6zJ+tq$ahh8j z{W^;3%y1;Xc6NAU^zX2XUaIb%$_z9?zN(khyBXDYFPt7C$Ns~-o+V<3?!)nuj#RV1 zv#E24npN3jtFp#1I_032Oif4*3Etp5#s1o35hdX*;d8d+kFnG&8QA~k=3CkjIvLr= zte88m+SKK^T2ig_nG!WXFiy4+LHzj@M+l$^l+SW*RGTaA1RsBOfK&Z)whQtSHC4A0 zPuDRG$#$TF`1vhMDM*nbdpDZZ6`VUiU4`?s^Kx%%Nx?$kD)KJ*LMS|FXo)640y!R7 zTfEA2x-43y%`%=?Q{~>TOVjs$Jp|GCBFk%=+DW3wzEfM-Fk$E?Wbl0PEhmxN2#Rat zyd(Ce`l8-O=lw2h21Y>JXfK{$o)T4buN1JTEBdXY+gIoyISC28;&rKQK;X&NPF$y2 zs`zUOb$MVYfv0&k1FL%`A)tKpp?`)iNh!tfZ*}n2GD7I+U;k#>U3!0OP>{%zHBgTy zOG^N}E>)vt`}xLPhA{xgT+1+wOR;IIcQpQe>6}l{JmtRnKc*dYrY>$2wDOEz)Z<`d zma(3!N-r?Jh?LFxLNoqqR@RwBnz%J2cStc0ASj{2N&rcs`Z$3N7pP=%h`c}SnNt!E zq7}(x_;=LoD0Yd!-jcuI9O({ZL*rBa`+&FZsZO7%1EoQ&sd9ivY*pEf!%pS>3eMWB z^aaS1k0JZT$*T8IUcDe+w_Qx--=QVmFWs#e2O|9|5tn69Tr&l2_nz2U9$b_$<)V7D zQRJ$lFILd`Br5-{40N%WVohP0n!gL_^0ge5(235j1mJ0(!%631bBkj1J^^7wljO6& zHeO9o@Fa8ESQdFl?i70Hb1>0Eh{i`+6hV4(>CyULW^pg-9Gx?f=d-|*>`G!L3P*_| z(Y_c04oEG{zDs5=?u$h{7zqf&SK>6G59)0SXDxpl^^>iS{Vd|H8`E~ROXL~Z&jMfm zD$TAzcbpU{gKyfqbJ2hFVUxCwBSE;--(Ih_^k!pjp4a8MhR21zR^4AV$lp@6FkK+P zRg9;obdNCs?_pv&9z{F- zrkCiB4y`hleo7frHgMSsx_iR(O2S!@ud*tyg*~(^69X@u*}zZwAad`DKHCN>0^YoZ z8Q2X{Z<&UIs&UZi@mMp?wMui(X|j0QPRcQ%!ik8O?X|?+3n%jR4hRssw{ZsfZdhtH zPts@4&U-JQI_G%qx`COHEs`vB*E5$-RYtv&YvIl|JD^-+kv+^mc8MXUOSrJvOszq= zqfw%~4YK~aiq5)9tjnqlzpF7EV@qeoBy(31eNH~wGGW&8AeDP(nR>2ty$=AgyXT0m zRwUW|C!GpjzkqC3?-b+H6%M*GzmFz(36;j(9)|yZzQ3G6Uv#EmqV;*zr8& z|0Dp{*qGm_4mOcMvCNPH{?`(L%=)5jamqHeTqGq-x>ZZDa+2I1F4P>5B8^_18)N{> zG{z0tX`cSc!P~YzVifh ze;bK|x0OUV{P}e_&#lWY`dP9e3NsgmxyFj8xrCMUNCrv3t$mFD32^6-fyqot#{I$$ z8IZh_OL(pmgSnr>k3$n=QVR`>nt=OO5-RT>G?5A@{ftoh4k11lAp$x5Xhvr%L=HUZ zC8MrBLPx}Eg8Z?GZ^PFoAqvIi4hl7g&9hM@%%V^9V<)MsE=N8$T&L26g z?En-JT$`4fZD#z9f-}&0VUk?t4jy*M-p5i8uzqdfUYqBK62k~CfC3me7;2cc7<=7o z|38J_PP}#PL^c%`AdjJIB4Wni` zXQG>CuUf?*RKQ@uNp8l}{0ywnxqGL8Ve!pdNrVdsa?Un}AezwO$C7Nt(nS9ERywa< zg}k}m!ql94IrIT2ATcU!gmKz`=MV^S+=1&VCM;MaC%1in;`kH>amJ(2LOmug2 z=Lg9%MbOy?_-yRcW8#DY{UUh(BxRH^H0Xc|Nj`QC0;Yp);4Zl^eGt8-QjMdDK4Md( zElvmNAm<0ELfu)t4PcxQ(~{iDsmWbSJ?oMfV1C_R9~<}DW^qcI=WksP`oDR?(?U-rZ|I2q6tOzYfqt)NcdarpUkR*O*%6_6V$!%<=gg z*AobET`2Q0WDo%&Wl;GK>^`52U0)%yePT6gkj*B&HmVQ(E)Lme0us@F*-IwRX@Lgp zR%VP>_KN=*+pN%YlaPo<=@_q-Mn190ulAzP^hC*T(PZx3Dj@t5Su!l3XPEgh*M-~p zj>mL8qiA7lRRzz8`X9`I=D9-R@3NpPUHr<+g#aRd6^!>3{6^YSflImqm#B<_p5p<8 z1JzE0Zcv%DnLleW5kT*okh`pa7HM?71uxpgf6~R07n`rYyq{Qsr?&5wZban~ZyROn)Di7&7knaJ$5|94Bs5~ z333O(t6Lm0dJ~L&loP;afwWN%#>$GSnD4dk-zR3##B!E*45qh84qb&1-(=1uU?ut= zK+nU*)vjNs-zBP9lfi(hDZ{jGqZelje^W6fnn`R!5{EuVs za`&)F(}eyI_;^U|bg-mP*gQ{@Y()XdxhzG2eB&Tz!*gv<&aW`EC}3F}_tp5~4uDbu zvqRr#Ak-?yDYB4MmY-GWUzhISWj{A4T`uGJQWj^A0D6I(B

9ZzN*za^E5C*a8Cr5e>k_sp`0OPi+$~IbqdZd1=u9g(e(gdMeD-%x{j7z^) z#9`K|*|Fi2SDqQS?ayUFNvw_G(a!W5(KN$7JeB$hq*Z%p2O*Z@Om{Lj6TAG>_dytd zU0~IqyyCFldh}U~;<+KInIlyo4bqeA!GO{Z z+WL<+D}PtSCdHivUYOMIs3O3vi=L2_8F_<8$<9s5^_29}C7s^L7M*+Gj{DQYfo{A{ z&GL3O23KGO^=dS?i&h^A%epzBPCQDpbW}?5=c$x5kRXO`ogvP6B#znTjGw;eE>5l< zu2;jLlTUkXo&!&|miT3%RI(W&JC+})bWn8wSjFtF+Dfet-{iv)QXWX4U)c#Q@^Zm8fY;|9^RI+s?+31rh+$al@9 z#UB8+K!=4W?f^i4g^n27J#JZW?c(%U?jRugZdFGc9FIOJ1`kQik|E|xzs-0FY98|# zTHU!5ss!V({Z^=Y(je_Pwnj1cxn&|ymCib2zw1{7Be!FUW5aPgl=+!2mwkArqw!gc zs7K42e8cuvK(`ot%dd6yB3qe`IU`M#l9Ar^Ac(h6&Hqa%`{_aUXZ(r_-Epj#k9wP# ziR|Mx&Z3J@=OZ`Vc=#GmuayHXI3wsT-j8)l0LnK)Lx3g;>Yy_TytNtl&~}y9_3>SC z0=DRQ$pXMiwXP|F)+*yJ&HU(c6|x^|aelL-O_N9c<_Ii_ewVvDFb=ywXwMzPn@%y( zn1cPVxvC>%sUKhB;HArI32gJwvwPPNf-ZmS5X?R#PDtRbC#*lPYyUV$-vB*D1rszk zZ3tvA6A?Vp6ssFLxu~a-?#9HaQ$v_Mp+e*j5zk8}|3<;CW)8)v%=iPQjG5N@Jdt)t zIt%(Cowui=Ea8G8vAjl!GTUVGcO%X>GD;mO?9 z96ODHTBvs4bl3l)ChCLe^DZ?DqS9?VXrTXro~b?ska<(D_}h+ z`r2GyzAvBtuNCMTWUu~SQSnQ>%usFK$M6DZJ9!6zr;Qga{5>V&7hX;aWdnmP1I4f4 ziG1JZX%MsDZC{Zxt6F(}wu34Om}I>0JpPoOTZeBy`kd26Fj9 z4C*U;W||knfbk7)hK#Mo(G%9OyWnfa3t=pB2O7wAyXS-A6^_|w`_|ziN(LZtj%~C8 z^hqe%hSNJ0LwqM+*xN#?^WM4~*^)rp2MCSxVEst^-Zh^OOM2&-mFjIKLhb^+DM>zB z`U>+F{&a7Z9=g5*odo|k0zd=2C4FU=e}=pGn4ILqbX24U@!hu)T#*f2fAGboD>697 z==63M66L(K%+@0xTO~9dEqsDV|Gk2n)wg6j+T3p)WP{`%1v2V#=-{0pey24`_|;#8 zpwc|o8kNP1iose0ln-b0lA6GXYiJVgR4pUJa#7D^&f z%>LTVfdEh{5MJYHy< z&dRlz4)!Zz;vYY89g^EJe(G0URv_Ez^~8s4Vcgz01LE@F6?V0mya1~;(851kHI z6F(ZXoiWDvxmWwyH~FCj3Zl&&Ot`1&@9u*Zx`Z|ZH8o+p2Dso@ralopYK7-rEUBXe zg_S^4dk}Ymt#QssOAwt)p43RZM-ZdKxy4c}!*MMP+dzmqWEt%P+ zamVnK!VX)i+qw90$9?mDyMckY0dj0e%C^28F0S`d2Gl{%{;qOqz-QCKKw{C`+%`tv z{|lsW+Was(iU;xD^SU5BZcSkS1&3bwpCm>vnyoRvcsn^~|4#1eg zm@69ps1e2b=s$=Pgj_J7aSj`Ct?51AJG~tw0DSA?pS}58G7;+*d{f8#kgf>o7}gZH z_53FEGGA!25B|n$)4hT+?Xrc}m?>nsXmH;DTNrO$A_)CzXdavNfS}Q9{k(Cii?7lx z!+PPo!Wq;5XI+ub?(JPIqf@N{mz9vghR_E?K@v^2C+&}av`!l0#~ zKV34ewrFddQvVc_3yt8Q>XJZchYNQJb&Fu(9l zJ~HPgTbKL7hv$ipV@J$%R6SZ5|frY+I zyVBUeF04Y#sTx#f^5(6ozZH@k5HzWe@X;5@bGu#`9sfThC^EP1n$^C^S4%*ExqM-u z0$p~QET$GJG+T@8TdUT~SaXQ752V)E@B&&ldVTw5145U=4ARl?ql6M+C=0zth}$kp z_|y~`GD0UGGUtahR6jse5#{5N{(TxJW zUw_a*Ih?rfkBW(eHrysj1k*OdaE^QD9)>U)B$-Z2naN|Tq5~K#!c^FN>6=heQNu^P zY==`0Oj0lt&wzIO6Iv7n!&{~Qptdz|GBO?vfBAlEfMa7IFqDMMRFRI!+4gv@1wFzr za5!;^TMlZ0{~#1&E@CBDp-g<2rv>D=;R?s>Rms~SvtjCpLBHLg8V+3=_rVA60IG*g zPkj!`L(^9<(Uxlu$_T&OtwpU1JdmUI!y9g4oe3(|nE-igkB~$H4i~W5u@gPeyU;<0 z>R1h8KI9HG4|a?$Jni@Q`w7T3lY3_~C(fS-VF#PT+r*on!-aP=)U+BB77TG>I=glh zz!O)KM81fF?_9PxctLeL*UR{0P)ylJN#DF%p^;r)w6c%gs#tp#SF=MW_6Ynd>EQ^^6hb$<~&3JiE)1+7!G^VQ05v;B#hvrr|A!l=Z#vF$2Kkxxr~creBB1W z0Dx!DEAgQSpc;Yd+3dwRBkQUUv7ciS*>z|7w*d*B1e=M?jQz(+ir5I)|AwUaia$p} zcHXI)=^Q^Dv6Be8H8zS3)3e`ZU+gLs2|&MS%|0bTA?U3%v(UwsW+#cYQN4Cu%o1*MFiBE zue<334K{{x3dL#*MS$66^C5x0MU5|u$NeYSTS^HRU8LRx9?IX{=Gl?2^o!@Bn}U-I zF4j_qojFQL(Yu{wHs0y{RFZB+ac%v0*D!sq-~UVfke_(KgQsKUl(yb21Hmb8&)v$d zGQdWpLKTe&J#CJ%QB0RY)7IHvcl*|kl66LpU+gbY*j;Nn9;RSw+8dx`yd!>v7M4Fa z!b?MgoVwkUSXG))?n!!dW>Kl>PhqZ~^R%r>8O$@qM)a`_bkpGC#Iu^zFbRwl`z;WZ zVpyA+76)h#G*6ISW3nH)XpA10JVPJ!EVasHb5)|;sfr@^x6C`i>d>Q;C$yz=8%i~_ z96U57JWE@9KDqB6Je7#KYc-|8C#{&ms6wLh!0yo zp3NtV`rVz#r!mfu%MFJgZD^6Thh>|h2utR>>;ht@s{AQE!Q30Y0XsPR+}N%KHRGR@ zh{_r%XMD6b`uzq=JD*$&lOSlP@ImV_okO`!@0uQxf=<+>Lhw5HQP$@OuT_O0Z4Z!8{RR0Co9X!M&X^o zi+=9h)Y|so&v|nX3tc=*Ey08aFTANDBk#SnMzINwip4(@J}HV`KLCdEe5ax&5m`*4 z<~!+x2nG3l?DZ+A8S*pO5#RG=>d+2Y%^`0R;Ow@lSM<=<(x-gPY0gdX(n+fu|24ag zOtBB}xt(40wN?=cD|6by0vF5s!HgwYn61IW^ojT+<1h)9ZwxDQpb8l>z(<|44||Nm zLb{Vn&t}Tq&ptBPJkg@9*?0c4hg!Ml%wO$8ey`gdlYBz{pjg$PRdbNNSdV4q6}9VZ zCy9oQJ&xM?rlt-P+>Z+8{oLSx{HJLRb?wRnbDWvidxx;`qg8}YlJN#FimhKCrDI+S zzFI=%a@2kbQz&oG@%TIqR|hUyw-3z$!gExADGC0`wcCr70`?u4>)s_)1ecU-ENS$@ zIR9GpSQt4Nw(ay>L-@4vm}zu&m8P6w6palYdX`S(8Lk-O2s50clCkMjA*P1R>D(i9 zyaCtn?jD5m3{-ZPlBqn?^^B(1G}-N%T#Zq=&XK%@q8%T;2HghB;l7D1#~Ah8Mo-Wj zY?ZD72Nr3}-%TdN@;l;2gl8IY$w_@4+WHh{NeR!Q*0LIwL}c|x1$yp~Td=zV>a)zp z5SFle(&NjlYugK4TvJ56XC7ppT~2*BII#g;zlTr2@MSc$D6^XIY2(f)BJz`HpOBYz z9??|R+&IgN6r0eyg{v2vm6crdlW_+UCGV&RN|oggJ+2?KORjkgL0xP?&1Xo?4YS?g zR<_amOSHjt6=O%hbQ(sOhI(rs;V5e8YjrNYgFm6 z;m4xgPGIK9HCf$xu}rgwJ(}(hvujw8Ph?8YKhm^Ml2(JrFNiyb8a$8f+cJ;GlCRt62q<*LS%k8YA4V6?f` zcE_lJ%2O2kVE5#3=5cHtXU7XYVFIJ6rJwkv5k0;?AJXi7jrQWo17r71u4 z&sU5N`fa5WDnnZf>)NNaiNiMKR&qq-rqNp~;MIzR^Mb1u4RapX4md`255+}g)Qt81 z2KGr*F^s4_=M!ytvJKI(bU)9!x;Ul5<3!3w<%4u>6!5#VLN)J z)Qz9KfsIIpDlZA;JdI%)4yL4afTOicjS5S8DrwcubZHVj%E>Q1o=m+#3qAZ6Nd?`2 zkA-}SQrW0v%8;*50Hs8%*Oi=7O-i8IFg=1#?m@;XQWaPtd56vY_))%bQ22h<7W0u7 z8%xex6+>!YK7@)-dBcE5G>xrei>cXn)?$uRnOf`Sn=M|V?M;H}QENX;7iJjAc0)?L z&)UL`rK@|fRk60};nf1GI*vf$=$m?Py<-CtDh-Jq!u9@Af;rw9+ z@Xh`f2TG4?LH+orp*m~qYjT?+5$Km%%~#yDp3=WA&R$a zr0L-n;GlCH6@9w5(Wrp?i_XzSSLz4f5hPov+;u5bXwKd-)qJbd^uk=a zvySIXpgXu__SAleN*|X5Krdv5Fb+g6Kvobgq1K|ha3d?rW47#EclNp4vgRXTVXUg2 zDLzE^){DgGe$Xng@^!qphEW^rt(dX3{x7-%poSLK*w3g0lJ2plA+5Erg?Vovz#I0p z6&90nQ0_ve`@#yY1&3$V?uTSXW-xsUjJPwJda(Z;E1RM-6&eBj^7^`;7?oZ1;9tEP zj2jdanduJ6$xe@3!9P^-0<8hb*v7d~*urHnN*XM-?Tp9*8uIjOq4Fk^R->P+1zG(h@0<>U@e{0Uq?jgso0_fOCOxls?yZpYjmP zTX}Jr4!2XQr?-E1Rh=Gqk;dkMx!(cIwSK}O3n|5&)XO)dwiQZ}`XqBTuh~X=&zqI_ zJuMQ_rR6}5fO11)H$us#S*2&u*hTwDbg14tHqebTe~Zn2#GQSEzTYaDAKj$qnhw8E(b6l3^&yo_p_)X1V@Dc)9$v4}Z(i0SLW@MlohdvPT zhLi`WVBlDB(gK#gnhs7Fo83i(BGFJa>fCunI~NQIF8m!9f?+BeRuQJwTT}C0B_&df z9@i;CAypndp3;F5umz>Zoldh(z#staCxIJXSixgnS`SzmkV~VAUgX$mhX~1 z%I%s-HQOd^@9WhV+=JjRp@LnLe99$p6sog|u=yRe9dk^^gqp)`EBU_rTihl>vH&{D z_c;K{&u(IUwfq^=Xta0i|EmijivUZrp-0cV>^|STsw{RLN^kFIPruq#-|S2zepWE0 z2}f^%$)Mz7sj=>B5a7FB%hw9lb_rc|FKV@?7s81xUMqOKGq@~q-w(X* zz4vUuvVT|satg4pGs<1?h9cWf6LUhUOG@&Q-6>Z>BtNHPpsMzq3j7SBzt>OmC){}q z2tE2Nt~RieM_fHfg=2OxHP4?mM>d1Gf~_CD8x$@sK9RvHNkxN#zY&Hn4NQd1_!PZL zWr1fQi;lfHMLq$9#YTY{e~kqtX?LynIJXjcTSbu^VOXXB5=)ahnUM+beJp7D+DW{c z)Y(%o{AZcz(uTGVbu(1@RO|mO#7Do5j!k(6{gn206C`ybg9Icj^ir73n!i@qP8riYum9+Gs_P7jsmXrUW zdxJ$UBQix>Cr6kX#UMf~3s57Sb+3y-ha5Q^V90f+gH;jL!zjt*E+Jj*0)$|pfSN$) zq=*=B3RD0Aric{$z))Zq+M0UKvJD_;U#=e5EkbUsTr^c27E}i*2DOn}AAu?@+ zVuQP;mVwwCG=CV}C)t6f4;DbMETbmo0OBc<(XkB}7noUr!w zQr$&kR9mWjQsR0SHXqqM&Amk^~(FR8e5)qUN;dpFuR1v%9 z(sm*9!o=Ic!L>v<_2MtYeS3}#usc|=?C=(W8}rQ&>hOOsB(Al7BHY=zF*2s3%B&$w zCB;e&4|fj@DOGp7f6nVPgw$GHU9D5bfb?-^pPwAT;(jKzy~^-g zNN5e%>-KYfwUU72p-PufcSuBfhJ>WFyMlbck@YDh6}Gv&=yv~7Vq|J+G!M%Us|eg+ zObw~`=o0`=PL0uRJOcwYM*TREA3Hkw=r$pB_R9V%L#YG+^oL8J40EPtSW7E1FkvF! zIyb-F)iXF4e9XhcgHi%&hsfM9x_8Tfk3-w8iHQkNPz)Pq6bR~=d+7EH>CScbs=U`1 zN;Hto)d^7*e`ux9=uMiYg^*U+9a)l6qyL6GM7E-P8yOh|ix6zOQZUcZt%3KQQ2b=C zDKS6Dv^HAkLyGMlnw+bJ<)k z(nP=)c5jMKG9hTnPqa014_n55-ftPFmyt9FXX-4)?l4%hcjDA&;8bRja7s%gy(Q$@ zh4mqD8Jwggp))c%mn$T5X9BpK_*v1Z;A_Fpuu%=h6~aqK*DFPvx^nBKNT4{tb9Pfe zeAs_wlK<)MjwP`Fz$pEn$NrB=sQ+_S|8rIUe}RR6<`)kKEZlhe+7UDdMci++kGj|P G&;JF literal 0 HcmV?d00001 diff --git a/src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-small-menu-and-custom-content-in-desktop-2-snap.png b/src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-small-menu-and-custom-content-in-desktop-2-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..eb52819bf626120ea38917827ad212607e6bdfe8 GIT binary patch literal 26918 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 literal 0 HcmV?d00001 diff --git a/src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-small-menu-and-default-content-in-desktop-2-snap.png b/src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-small-menu-and-default-content-in-desktop-2-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..2276be60bfa1b25eba82526a98420ff4a606f9d0 GIT binary patch literal 22868 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 literal 0 HcmV?d00001 diff --git a/src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-small-menu-and-default-content-in-desktop-3-snap.png b/src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-small-menu-and-default-content-in-desktop-3-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..02590d3be769be01c63f2c78703c794558c1ce5b GIT binary patch literal 19688 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 I*8P|N3!ag expect(image).toMatchImageSnapshot(); }); + +test.each` + menuType | content + ${'large'} | ${'default'} + ${'large'} | ${'custom'} + ${'small'} | ${'default'} + ${'small'} | ${'custom'} +`('MainNavigationBar with $menuType menu and $content content in DESKTOP', async ({menuType, content}) => { + const page = await openStoryPage({ + id: 'components-navigation-bars-mainnavigationbar--default', + device: 'DESKTOP', + args: {sections: true, desktopSmallMenu: menuType === 'small', menu: content}, + }); + + // first section opened + await page.click(await screen.findByRole('button', {name: 'Start'})); + expect(await page.screenshot()).toMatchImageSnapshot(); + + // second section opened + await page.click(await screen.findByRole('button', {name: 'Account'})); + expect(await page.screenshot()).toMatchImageSnapshot(); + + // close menu with ESC key + await page.keyboard.press('Escape'); + expect(await page.screenshot()).toMatchImageSnapshot(); +}); + +test.each(['default', 'custom'])('MainNavigationBar with menu and %s content in MOBILE_IOS', async (menu) => { + const page = await openStoryPage({ + id: 'components-navigation-bars-mainnavigationbar--default', + device: 'MOBILE_IOS', + args: {sections: true, menu}, + }); + + await page.click(await screen.findByRole('button', {name: 'Abrir menú de navegación'})); + + // open first section + await page.click(await screen.findByRole('button', {name: 'Start'})); + expect(await page.screenshot()).toMatchImageSnapshot(); + + // go back + await page.click(await screen.findByRole('button', {name: 'Atrás'})); + expect(await page.screenshot()).toMatchImageSnapshot(); + + // open second section + await page.click(await screen.findByRole('button', {name: 'Account'})); + expect(await page.screenshot()).toMatchImageSnapshot(); + + // close menu + await page.click(await screen.findByRole('button', {name: 'Cerrar menú de navegación'})); + expect(await page.screenshot()).toMatchImageSnapshot(); +}); From a08bfec5edb4ab7469ce1a6853a7995e8e7051f7 Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Thu, 31 Oct 2024 19:43:55 +0100 Subject: [PATCH 38/62] update snipper and add extra unit test --- playroom/snippets.tsx | 68 ++++++++++++++++++++++ src/__tests__/main-navigation-bar-test.tsx | 34 +++++++++++ 2 files changed, 102 insertions(+) diff --git a/playroom/snippets.tsx b/playroom/snippets.tsx index 46b54e269..0400b22c6 100644 --- a/playroom/snippets.tsx +++ b/playroom/snippets.tsx @@ -2508,6 +2508,74 @@ const navigationBarSnippets = [ ), } + : title === "Support" + ? { + content: isDesktopOrBigger ? ( + + {Array.from({ length: 3 }, (_, index) => ( + + + Contenidos + + {[ + "Destacados", + "Todo fútbol", + "#0", + "Cine", + "Oferta comercial", + "Mi Movistar", + "Movistar Cloud", + ].map((title, index) => ( + {}} + style={{ color: colors.textPrimary }} + > + {title} + + ))} + + + + ))} + + + Oferta} + title="Movistar Plus+" + onPress={() => {}} + description="Contrata solo TV por 9,99 €" + backgroundImage="https://picsum.photos/1200/1200" + /> + + + ) : ( + + {Array.from({ length: 3 }, (_, index) => ( + + Title + + + {}} /> + {}} /> + {}} /> + {}} /> + + + + ))} + + Oferta} + title="Movistar Plus+" + aspectRatio="1:1" + onPress={() => {}} + description="Contrata solo TV por 9,99 €" + backgroundImage="https://picsum.photos/1200/1200" + /> + + ), + } : undefined, }))} selectedIndex={getState("index", 0)} diff --git a/src/__tests__/main-navigation-bar-test.tsx b/src/__tests__/main-navigation-bar-test.tsx index 36d80d1a4..23c736199 100644 --- a/src/__tests__/main-navigation-bar-test.tsx +++ b/src/__tests__/main-navigation-bar-test.tsx @@ -5,6 +5,7 @@ import ThemeContextProvider from '../theme-context-provider'; import {MainNavigationBar} from '../navigation-bar'; import userEvent from '@testing-library/user-event'; import {act} from 'react-dom/test-utils'; +import {ButtonPrimary} from '../button'; test('MainNavigationBar section with interaction is accessible', async () => { const firstSectionOnPressSpy = jest.fn(); @@ -110,3 +111,36 @@ test('MainNavigationBar section with interaction is accessible', async () => { expect(screen.queryByRole('button', {name: 'item 1-1'})).not.toBeInTheDocument(); expect(screen.queryByRole('button', {name: 'item 2-1'})).not.toBeInTheDocument(); }); + +test('MainNavigationBar menu closeMenu callback closes the menu', async () => { + render( + + ( + Close menu + ), + }, + }, + ]} + /> + + ); + + // Open the menu + const sectionButton = await screen.findByRole('button', {name: 'section 1, Abrir submenú'}); + await userEvent.click(sectionButton); + expect(sectionButton).toHaveAttribute('aria-expanded', 'true'); + + // Close the menu with the closeMenu callback + const closeButton = await screen.findByRole('button', {name: 'Close menu'}); + await userEvent.click(closeButton); + + await waitFor(() => { + expect(sectionButton).toHaveAttribute('aria-expanded', 'false'); + expect(screen.queryByRole('button', {name: 'Close menu'})).not.toBeInTheDocument(); + }); +}); From d2dcb9a0b05d4bce169dfb202846ed4f1abca02f Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Mon, 4 Nov 2024 13:11:51 +0100 Subject: [PATCH 39/62] remove portals, fix focus order in small desktop menu --- ...u-and-custom-content-in-desktop-1-snap.png | Bin 32464 -> 32447 bytes ...u-and-custom-content-in-desktop-2-snap.png | Bin 25710 -> 25707 bytes ...-and-default-content-in-desktop-1-snap.png | Bin 24310 -> 24307 bytes ...-and-default-content-in-desktop-2-snap.png | Bin 22707 -> 22692 bytes src/navigation-bar.css.ts | 8 +- src/navigation-bar.tsx | 208 +++++++++--------- 6 files changed, 112 insertions(+), 104 deletions(-) diff --git a/src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-large-menu-and-custom-content-in-desktop-1-snap.png b/src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-large-menu-and-custom-content-in-desktop-1-snap.png index a9cdf3e3870acf652c9b630a84d094758e0d3a4b..920046b83537ed7250b384fbd4d8f1319b57d1da 100644 GIT binary patch delta 24152 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�|t)^5Ex_-sY%Wj)p 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 Oa>T~LnsLzoum1yHlD9Gd delta 24263 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 W1rSVE7|3%!2 zGK~gL*ssk)w{zSy*?0B6zsl9h7>Ks@xo<;g zcW$`BF(w-HV5>EsgsBzhWEL{2It4)kYp5=_C_uA06)yxGZ1&H=yFZSs5p-+T)*;;B8$x*r}9wCrRU7O zcUQk=s~+w*vq_#id;+=mPbYpG&YsT{M|h<+$Y>mO%n<$fJqt^8nVDG!04OuVUwjD7 z#7>+^WrYRGyw-%pT`AIdCA4e)S?7!?zbwbAXIxHy+>ti* z^L8QgL)&jM9r!Pq-gmV7xv+?YsP5XO4QQj9{y_LlBgUd1*VZ2okN$f8S-cwyBYPQ| zI@T<&M%7JZK-nCW$pfYhEDE|QMi5*-#l6K*Y{;96N|PUdWu73XXI9{r*7TZv-FNllL1v%ez7##JHvcS1Ga5 z5d-V`1;1H!+et*1fs;L}Ul1Al-~^Q=)O4^fjOV6+b53mAGbm~XYXd4h7Uv*lLm(B= zTk#E60nsT@I-LU>*)^6T?6XhBVC(ToXdE#?*VskjNrJyGiyK(kEL{ zd&o|+|HY48$leGzOskg;zp+2ShY>lU|GviJ5C_eWfx06m7-G%gXYu%0%c;Q1TTME9 zAXx!miRpzQDQFG`a&hp5niTs^#}lV`Q}pcGG4(HYPQY+N7q7B2CwMM<<|8bc1qAAp z{mZNC*<7^Ix-|f@a2_AOe9Bkm^;vZ8^S&crckn*;NlKI)yuKeLhF|B7{Nk?uutQ`= zqL*w^(KrQxX}6K2)MGd$fr`47f|5(PB7X5-$k7Nz-b4?)AK@r?`3RIK#r%m%#YV45 Y?U*(9D8mG4;&}a@vamHTJnnt-|2{L<E+ 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 z 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 delta 19596 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 diff --git a/src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-large-menu-and-default-content-in-desktop-1-snap.png b/src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-large-menu-and-default-content-in-desktop-1-snap.png index 1e0ad992e07c0da7c907448b16e0d28ad36d1fdc..f9859c263ffdd05f501e2cde47f4416c8ef2d7f4 100644 GIT binary patch literal 24307 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 JS?83{1OVM2RXYFx diff --git a/src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-large-menu-and-default-content-in-desktop-2-snap.png b/src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-large-menu-and-default-content-in-desktop-2-snap.png index a0c4d62a2cf84c948b731951dbb2191f949637b4..d7d6f827b3e6c2a0567b738383d9cab58b6ec029 100644 GIT binary patch literal 22692 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 Rx+EFiyi%4adSU$W{{aOBoqYfR literal 22707 zcmeHvXH-+`)@}d=5fK%oNfA&`>Afe?MVcVJ7X|6Pmxu^R6A=aJD!upK3B8JRLT{mk z&;to1cX9SUXN>#*-Z8%OjlKS?tRySzZFA0NKJ$4K{!&em{5sur5C}xB^juC81iA{m zBzka-7&!TVAI1VF0yj-X8Bp;M{U&g6#Z5*@>l$$QUwi!#1bP5cl9Sf*PT86Ba=)w1 z)U}VYS3;4JHc`jUXBC(c$jNt@l%ctwp1e1HS@z@cuc-j}t9Nh9OJ|{fXI;4_)#Q+l zj#1T-xo+HZ;6K#6|9X9QXHK7e2keGI(Pi5tef;md1mfAao2;j@2#5c?qef9fq(5)%x!{%U6|Yqy}PKbR@ohS01`uT)PE zr?@KjpN2oY<}Jx6$*BI|6rNyCGi5JqFDy^M!cJ#=%<|Wv{oN)>G*wMyw4>}TZJjAJ zCeier<-RMYM(hVco9AyEbUsu$$m?Mzyqip9WMp`6tmt_e%i&l<^+$>b{vIf?VxJ}x zBW~(6q(m`A%~ON*;d5ir<-f&8 zx*~JrUh%vL(fVuBR$CD6;`^(sU%;<72*RL`?8oEs_;yw8%lJNohB9U`M)d5<5G)3A z_U}3O9?=UUuzfp`Y` zg?zu}z7-othAw8PrN3!(lVs=@VWAF(j^AT&I)&l$ z$H(`D*s=`ncs5+*o&eL40V=)I&o6m|mZJ zC(+w3bw(W>-AgX@Q_T(>5?-iZCUeAv`b}RN8zoP6W>l-bzNQnhl|uz0{?xiyvb4iu zUbM)m2}<+1b8#(nuL`n@amP*F3U=EHVT^sYo1N(MEffj@-a}B`+cPQIfCYm8UTH+; zNo+%p)_6{rX1;e}f)dW4WqP^TA&!SPn+j(^zw2I$nIjFE_HlJa-0__H177J+87nI` zW@cvlh3dEtTcrNs#fJ(`2}p| ztEGzI)vvBScBRQb8h0BVkOUhe9(yeqazuQun;TRoTE6+@3Vqqe;`Lm$nbp;kc)BFc zzh+udR|&L%v4#c04SunNgPYhJ7HD;MabGOy^FX`;0&$RRd`}^5OPSfyod_c}D1?)W zUX4A}{E-AJWkY8~r$w8fD&Drsks`ZaH5MkX=E!aS^XKce*KxPf<$}AS_4%RTL4#@* zHu0@e>|YDS?`Xe&eGIe(ZMSU#8dt?X&o~K1#7N zQ=7Qs#Lje_<5r)dg5UR}8a8c>_*T%{)7y#M*I0EfW0we%$stP~Z~d3U;Z7hcnIwC+ zxo^Su^GA=8qcpS6S;)?8MVQawdYKRxc|yU*agO+v6Z$C?soPJAUJ$>tIRmGe8hJl+ zfEXjp+-*m2_jlKd#)u?N=Hsn>d*;=f{&u~w2a=)|cQ1&NO+x z68cT(S63W`MM>H~ydTq5)3acs7oS{eGw>@Di}#FPOQoniyn1cSt5SFv6W&Icu> zpmgd+6CUn_NZ#aoqk{Y2!Svh|CMEaNhZUt`DRV}ZVqqcuYX>neD)kcuusk^ZCc2V- z>8Wl?V zSoN*Qufs^sinsfBI76j#)EHtsyjCBaSDBG+3p;XqnX0(orA`UJX!y+EXYviL{r=X( zcXc4dk^T=!V(r4e)++J5zz5rVsk=!GG2MRU6 zHB+r!hh=H-V9ECq0nw?SwYQ9HTY4ax-^_$oJ9tbjOuHT)=(X6AZcjRxt*j5eeuG#( z_AQ&a0oaI9pubDVzqzPNsS$vkY_DV9>{8yP6!jrYxZFw?0bLiL3kQsjq3 zia}sMzuJI#kFrkTQoA9eS$DD2m`a|4k&2)nf5p_d*v=YMQ(t0JJ>eeW{81EU@s+}j zhSY5GPv>(<83E@jojYP~XIlkMpj?d%;wrmI@h&Oxa;qUsoKV4}GmLzaVY`^#r3P{$ z6GC7XEME1=03_;zQ85s4a@G38u*2pr5z>(EOPc_fy_gXyh1=UNRE5o+6MAxEzV&=u z)H}D)RiN^MoZXQnPHFp*afJT~*ff3Z#9(r%|8e~bI1upLXKL6Q6{#a|DTcPDI3{RC zJq(9ejoF$ED?KSHV_4s+=ZNR&M7qb;`#%yB69eM>EH{s13CXCSOT!#ZXv;}@|H_Fv z{@Au%G>#UiADQ2m9QHXZjwcsby=AC@sw0S@Y!t<`2L58_G@f%iqQ zx`x*3VhzuHh8sLS2uV9FriZ3e0DJB8XX9|x6!ZSa8k^lCVBEgNeB+r`LA;!T0vmKV z4JI#3%(TtTpwXX@Q|@TI#^jm*G^ShG)k5+Am_A-g2nGN!4$D^_^Nm97D2*SqLQ*mb>7!_U zAJl!cbnF|cNN=#`ElCp^G)!X7{L>p0GaNZ=39MtKkKt_Ml7u<^!QCs51SBE{25#Jm z%a5(FCUNwV-SNaSqXV2Cad4oVo>l^}$)b!tHqr4F6d#$6|328mz6;6h#`=SAz(jvE z7n-z$Q_o{QYp8>t8L1pGOD)7!vvVZRHWDsdT7Ha?0%PtDevF*3N}7MnpdEq$<&ih9j5y$cVpQ$Ah*e@;{B+N-0QD z-o716DGk^?jqvhuYx{$>ixl5|@>QbVVMxTIrw8w198{G~AZ(Xt5!R4b7l6G9AX3|^ zFJDqV^siCi_Re%M$ES^Yk#S+X98=`2))q-7{$N55LZIt~I{4)W*)|qsdObW(ABvQK zV0-G1JVnn1PJo{{I_v4_0~aZ(R-$AZ0uvUUbsE`P=hT~2>?6|#zBetFrVVc& zAFTFx)oo0ezg}C_eCfTH)w9lNpay(FWx@K$+NU|~fUGIZsC(T(Vk$M(SiiO9E*7a{eS=w`VYyM^rs=o)1hrzQJ(=oW8*ay>#BKnyexoB5wO0dI zJf$^01z?pX(vW>7m-3ByzX>Zb#T#2!ZE9LZ1$+0qZd5$h0W&&u;|0dqgQ0_)l9+?H z6OPY`7Rz+!*|^z~Ud_}jr)`&j7LO?)E0YjJxtlsMI9&-=UsZ=`4?2Q0DK3g8PS?#| ztSTG1?oP`o${!qj-|y&_JM54WL7`9EEO3N)h#(SPm0_TH=h9x>H(kX&?M<^C3}&n@ zU6TX68d$JODk`f{%>i$xN(n&I)6?g;Zk36Wg=ZQXxB2+^+_%PJi*wuwT9=&pExS;K z22FHfFs0+KuhpcgycYLCc9X>`Xo!_-+mFNNFEAnx68ToVCW^6PKPOG1=Nzq9vQ^Iy z`b&&l_is^g>h-)2iF9t5tF)hfPjG=Xub6(WYTRZD9k%L^FY;~zcQuMoy(aYsqbd9X9hYG>aPY$mzR+n>0x~4!3>tt`!Lb`oEJ#} z#^Tr`=+%7PZTl}oj8$DN{IiBFlh`PmQ`;wB1)5_4hyFaTD+`gB7MrJT%X=Udz=Xt5GvBqT%S( zFK)xjDc~kTI27v#wq)~%l^T}(3{b}R)SI)Kk}o)_P7oN!}# zR=}5p(XSMRD)fn@J=_#2gnw6X*LrAuveW0FYieX0aZq}@PkmKE7klCzhw? zas4`3?*Pw_9%P#}ov0+0_#1L@|TFF7X_*-~f_Y|{!+EVXL&hLS1$ zoej-vtDT>|`_|R4CD*zquA=(s)!!24FFtmo>dRD;AqXDx9Rwu>whmK@t3l;s$Y`xbX!6!k4p$ceAy)7f{I5=reX>~UGSl`I|goOl#L4%+Oz$2wPA3P74h zI>qpJ;|6P8x!O;(cXt@WH9Ub_@wbBo8;~>zShz47vs>*?L_|=c`;$J5h?m*x81THv zfB<0v(hz3YYIVwlz`1PG-3nGW?;Uw8P z10hlD7~|2_pR}xk3D=P#ii4K)K=R7z`T&vzwToz{!1Iv9;)dj?LVF9#UlbdFiM72C z87ndj%gmHBsIpb^_7(+VlyUZ4irAs|+IVbccJU9#RPjoi(WKm-=hfLcM4!{rhCU)p zmunUR*_pvKn&jb}=7ii(H*JS_)n38qAg z$7dg7B4LhbQ@ec^myYgEAo1~CRbO@4S!Ii!iu=}C1XJ7_&gOcDm!12KO@F=nMT?ux znHY2!UummjInI6=@`4PTU1S$!RXeFI41Ha&Ds%I)GJ~@(s9F6v zf{3mhBoom5&Y^A)D6if56hVKsYi0*o5ZckBUGBe1;k?(hk-? zq(auDj@v%sz0pa&;y8K%VL;n)deg zPd!ngzs`+RN+6|n6NRJz;_MuK8}I?{;BKoIXUD_P?vvw@r6D7z#H@2irs&}Z__d1n zU_MYuBGDH~!0VX2M%)(m}MamYgLeRZ8NwxH0%^$6Ol7w@+d&(&F zngUtC^_}dGTZ;e^BZc2r7;na8(702%rcz;lsb{Ily(_xSf-dG~07Xd8wK#&o%d6|%- z7;Qc_rS9W4OMOFpTad9~TLB1JgT1PB2Qw?^{VhKx0Vk!WUM7AviJR?lT}>KW=q0b& zXZ_8=z|0T^V~?Lyp^}-PYYkRY>A{Sgk>*RE8XU>*f&w?!bQ2| z=KM}RCnR*sQyY8#?k>6R`Q~-(Y_YxcdN`^@0sYCLY`V~&e@m=B6)H42kH69qfMeuo z!rpdE$mCzk5K+pD*V}T*v%{IMi!c!@_@??PI1w+nLxvl1U?<6Av$}v&n=Vs-987Ds zcKuEobYrOX1em4}Gz1^tc7bvBMGplb*Nok~!25TEzQmm(BhlBm(u7?d7v_&>{JBtp z2jpJHUeiC*Ggo^2cqCt-xRE|S1KzuS>)L6ILZLsY(}#&fOjQS@RVt?819g$!h&shu z*F77@H15TdOA-TVi~aHP3btv^PYXNYHcMVlBz)fEwFfg%m4x@Nz!3Y(UC>cDqQb1oU_S}WnH^U8 zQi8iCK_(&j8tjFd+D*>}hS4JpP1(KY_1pFRG{@t%i8U3GgDUJk7nB$|7$`ldXy3q48jncmpkDq!Q$CJN?jmalOF%XsyP%K}y9R zFO)_nL|ii2J&K-t-@UR{%x-GY+b6V2efKg@Sf|fK86g@GMf|Am9sm=+`BGd$UZ#L!BDfdw zCxBdLJ;&vbHb>UX7LqJ~^+kg?hslh8onp_uiN~Z4u1=GTk^eN&dYO`)k#86#ta7pH zUmNdOccfeYcKAJh-sHSVz+~xVMHL54?VTECKj@@*6&@LFB|9_0kHom6jGlfJ z)fh-OmAt44XlSh-O1(gspX@-l!9cL=SlRzwqn_>xYl(_dskWbf(NOKsM~(-@bDGFl zSXewbCxR|cWhjaOBy?UL$IVS40G=}M#pIgP2-=R_0=OPewIODPlBW@$qRcviy}q8= z=%E)j4*?^iLC?J6G_H&1*rgkaMEQ5bp=afWhmd{rsF}!N9-+a*!uh$ke|~T;T$~$* z1bo+PL{%5?a93SS6mSzh7CNBnGjX%ogzHz^av9H5Sqx%SISs4g-xN#$^E_5!9EXCQ zU9_tAxD4^$D6TaFDQ5@v;=3AU8mQR$Tz9Vc-fZ@4$>8L;Lrpoj7K|YYtbsesx}Svr z{+<9_ijPo;ki0PHNh@~^ zb=YV$Kt&=Bmkxa2j@1%SMP3~RjUFxaK+1(yWMp=t0@spYN#Ksh{9)i zH@R;tWT>w<>rF-1tjpk|S+A9E9SZU;YjZINYne7d!iQ8j{FW#F+>M)oEbZ;0$6r5z z&iUoSe$DwE-rmIos8<0lvtTc3nq0URe5;3JGU&| zwa-U)f7%POG?P=@G>ov^Q$_E?Dj~J_^#Y&0c)K&pA;O{NgX&iMjEJG_N{H2A3sa8U zA#B*iHBO<@e&Ty!iX^b=+lgw72FVjlT0^-uQ(VplgK!CwyMr$20=R9ZS?_5x;-k&p z`zv6?v`826Oyl{kcj!F+p@X5|$`U+G6G#dUi(7KWumO?aTZgMr3mgukxEu|tD%{Sx`E`UFD8GgkhfDR-52JTwfcSTV0 z989Aj8Uk5#0m%nOO-qlHY4wRV4sJMSQ&WXz@$St~y6XY5eG7L*0Vig-roIf>F_f1=e~m`~KgN!w4YNw*r7z9co%vEYF3=vEHBeevLiHcy&Pk zdXT{|C?Rzr=1sxm{`jhmk>uV$>j^`{$=*C!jLY=d#bb5%*H?fHXCDHW=us_4-g%Qk0TV{?g?ccKn0dop zFE1FcH@>sG_Gq@kJ75+ud-_{I@?;C%h}mdLflk{XJ;$>a~zcpZbP zZ+dq^T(*n$zDg2cE9K+c-yxf?0G$46w~p4?mx2y0p75k)=&6v~6Ood4B?|$Gd%RHE z{I!CK{fkOkNjH2EK-%yv7g5w6&M5orw!sN#_!n=KyB*K~eF(j=flW7Z3d`sVAp2N$ zf3+UZM`1C3VBErM1*!dKd1jdl+BId)XZid{SsAs)!$wb}_`$(JPk;YPGdAoS+-j{) zyYj6I|Lx95&NIot7@nc!L1O|ikj~x>|emqZg+eEUw^mKuF0o-Y=O!z{~ z9UwdXC5}aYv9juwTaXLj(oAg)9K#D!%Dtp2TwO`a;Qc_%v-rijf9Aisx|Wb%q2XG1 z8lZ!kM<;RU&-qPpO&;ty$oA9YdAFZ4p&gqJSQrD&xB#|<byGC?}P#Edid6CexnNbse4YfjqM6tu5)m+Sg8m-d#K)vQ3U}P8}1%JF6|2 zV4eK0gnS5Fd3umAx%DTDj9FMBF8d+^$o!Rj*~o3PKEEs>*!Mfg9r<;SRKm+_)jIB$ z6>LeM*Uh^J?cL+m;8IWSe}4ZlUFhvxj`@QgnC95OwE&sf?%SIsmWac|&e60OwZU5J z-Ii}m*5|!qlk>e>$I0K12gB}#N-U^jQ}Gv~se^FOmq5(|AmX#EoWIh{wy2B6;3j{K zY5N}?Kh(ij#O};W@<-~Da6jhEcjl|_1E2@3PQkZkDK%1iG77S_u~*`I*p!g0nY8Hw zyS#fvI>R5+b!|v0Lj=lW6fthQ1~~BqUlloT8aFB~vMcXi z;(Qz?moqh&Or_0lQ?lWDDibTFo9!r?mkG!u(67Jx8g0iV6SqU&DI9N=x@SSZuD8G8 zaA}YV;;oWv8LbystI;o1hrfs;UK=izFri=Ae=T-m9A&v6FYP;C%2f7XHwD8!u}q|> z84J4{vgc}16d#~Ek@yyQ><8I`35P2`&`%g%NHxF42IT_;#gEq*RMn)(;GoFd%PmBH z!8t1omnKE>&T8;H#0D{tsJmOHsre;5I@)~mPnIbCCs(+j!_0@HBZr-71jTZBR{uFR z`7ClgUWISIYI`BXRFaXx#wM9!(}Pg&22sf*^=TMRZuRht#up!Vm+BrL78_$T*GM`! zi}tR2^(^poEk?5iNaEX;@7ZnCO&VK32RotgBW^}Uh!18!GbUB*9Ghn>p)=ExO}-VI z^0jpgf@|k(wW^56h~4STjIrjJaA-xIT*-dd(cJ~QlCAmmyRkIsha-lDzNi5#keq;y zc8oB)I3UOQ(vpm=HmqQduDU-e>HtB#3IBpF?78g^g#e|f{PMI^xWFNZijV+rT?eGb z#Eug<-F8+>!blH2PO2HNoo90f<3I*p>7*66J-ihfTNhVbD{9N$G14sUKwO!tyfWo{ z2WJ0anw-U6M~2f(=)5g$+?G7btWy7c^gU%`j>KSFl%?f+F8mI99*T zk*LN*EVI26!U#QPa11=vulIZl>xZG1Ry2m=;lgZB%l{Yzj#>?^k3~8@5a)m2y;~m} zW8#+tEWnEP6O#5dSMw^pz8hVn!bFA3_h?a7JNy$}{(6VK(qQ_U6%dS7Z(0ERpv%}dxx>hKm*w14(&+npsW=QA4`Vk?&iNO$b; zbTi^<<*HF#44(Fvw&NAExwjlULdVsO^3s=Jq%(o`O*K`|G{LkxxZaw z;=dT!M(v-@i7cIXdoNDM0!2Ra*kDt9iZVQ&9a+P3j{*O3H=bU7)=@+`o;yP$Bh>w^ zX*Dr@Yhfa^+~4P^kB?7gX6ElELtPxkPZ$+*@fqNjZ{NEoucJfd*^s(EsBZE546#3Q zs!k)er8*>D!84w(o$;geUCIu9z5AvLKF~TYss25mCpoz4Ics1ab3GgRJxkYWCY!l@oVIy=4V?TjYqrQJD&GzOx;L9gLD%aE*IkdVm5TC z@ajx}SUwkA;aTV5YSFO*>ZQ7~LMb`B4Ix0E_-!yMmzgg>H*i(F8v*PzE?IDOImr3| zfO2^zT;XoR8-vxU4L&>HYOYa`y_qT^(Lt3+ry5Mz>og}xMw=Lm-?~Su=4v66XtNB2 ztAmC5<@W@Y8v@@sh{GsOC?R)}{NE)%{8F+KlIm@qKJu}*pw!>Fodn0855;{f3 z>J^x(Co^@?b7yLe)3o*rrJrWT3u05hDf+4r)H(9pW)^0d1E-iUG1kP~g1x68f>|9; z;$ckJ>A=tp#NmZRmDoeho!q8kH_Va6@Sg?JyiEVTgt$PfMcSsiwLaz`2Qid)=o$S%cBRnIN*mAn zo|qRmJDZsq0zt`b?h!&@w}9!A)|x^JYeLULFEjo>z}TZI@cYQIg^y9!5XC4Uf*;}gJe}~^yK&UYQK}tZ#Zep=m!U<7O z(riB9hx?UdZvHc6q=o{Ka)?^K8Xg{Q7v?<3unoX&u}KcpR)moBV=b`U8K(v z(goLEk%L7!3gzo2Pp12S-e&avqQT^EV0$}^nz1gjgiUoNs{fp$X#$`EN)~*=xse7} zXC!?Q0X{_EnkgDGJVHg3kDB~@4;!yzaKMQ#khW0%B zfdjN`d$Y-wVuuHYgm8Gu>{l|3Hn{0$er{Sy2Vl}s*sZYEk6MwP?N5*f`+&pP7|Xu8 z*y737h@;n?zj(XYg!D4-0@N9f#r24?)@yBdqPHiP06g!uFk12@HZ>RkEaivT{TWO2 zw@p}3V+$&Z2Cyzdl-g;M?gEx(Z!+U-F^-+0*2-4K=!TP|P!x$`)Gz!vjv{SE5&SP@ zKz&1$y_n@r$+);X=WX*Q z>s(4}>8gfr0gx2F@ACRJg4e2DM%~9vMOxXYtLykkg zl?vXC`?4-lV6_+1v@i$_N=gwM4I$y z=<(@AL0Rn_BT(^`weYu3q;Md?;s}FQK;^C+qap#>_`eZ-1kYnySnySW5Xh6G_uXdsPp+y7w=pVqYWHUB&^L4!&?$22`xed*NnjfQQ$`1T97OD?9$!u#M|lDxCqopVI-l{3E6poqk4s&9asxK z4;DXp{pMAR9TcE1xya&6Rsj(MAr7BD@3&OeI=I-*LK4$-K$Q+ipW0cVw0S@Y?raG* zX){sEn3Ljl52&v^8I8FNbrEDQS`;g&xmEzf;MAVaH7TN-g^p?)`HlDlIRLC|9U@Qn zI}S11diPMx!GQOo!mG@n2*}n7*3u@`5JqZ%V&d!oNlgTA{(dBYmb!TAb2S8aRc*I6 z4M-r<{M?%95tW}8XDmHQPWoe4G~;#D8R*5mOcuF!epy}^5`Px1WzD}ZFw5FxsF z!os51*Gv$rMeaxP?%N3VQhDU3th_LkLkZ1P%<;@>Zzf$(V`hh>_Yb4+>617(oT=ra zy*k=1g6J6$tkO(RMbam+@Ek|NPe!(Ps#3jr@0O$JK1L-XBIlyMX_1%wx)I|+D)_+I z(FjbLJa|b6$KEzi@i0&)CTF~pOa7LIO-X2Lq}aH#A`{1vZBrgF$p}zhL?SS=9q_GQlen79e)+q!_WVv~x)50AL*`cmRr|n|7r^{Yb0HG?g!L zcL+0{RJa`i)>h!`{zjf&jha?}`XM`;R`_Cx-1z3EiSIR;p-{<{k4W9g? zjZC;^iIaE09RsCtuN@{11;yf~mzDIEKBE;9TAsSfU6b%p%fa>04lO(XS zNJf3!gO%_wTGS*wadON3>7)0y=e7g|KI>`Cb>7xiR~%^f$BzVoE2s5~hE5Ng-@ zSj`hK_(7}ia&n(Y0NMXBrqqDz-o%Hvm6*wG(?JKQ2iGwUP|^0xU&f(fS>=t<0G#&?7F1}B)wF2`SOE4#>k*k$oZ z|M8J`ubXeF#VxC=Ol+~{%pYcU03TXf@jKWYD9PxCrOf&pq|c_<6*otH{>;l_VX-m4 zGRCUocP^*%Qm+FrbO3re`Fes+M)TG-^1l!~_*&dT@=~O)y)TlI!yW?cL?E$7=+-}e z?h_gQmw@_X4^AxQCR?EJ%@X+4(A%}Kn=TE#{X<<;bT5qjB?WT)hiApe0M71G`iEd; z=8u}%aK_E2g!fwmazRp3()~$-8!}2^O0R_D*sgt+(Fw z>2eNuCaUOdo4F>%*(c!NbcfI!6`CU=vX|c2Ui*7XMNbgC$&PxI9SZ0OyEN|*QjrAV zu1XfJBInz9(qk;WiYa4;!)!1gOAV)%-VOS213DN$nm>i~1YQ7udgD7yGY)f~PRQOl z%Jk>+ajiE*&-P-r{2Vn1#MI*Wnk;Gb)V&D)-Y4_vQP^mk`T|r|+EYP{;0NT&tYiQS znQqa~*3DnP*B%WonHzs18GQ$A{je9luTyXjs6fS8vG0#3nBJl;a5ZKL%YQ-g?l0qH zaXohtW#BX{|6ZkxFfaEyMNkk~tDT2_E_7HGom&-6<($@#%N~s!v;tT(puw}Q-E&4z zq;^NQHh4u{?rF|{_UL?yNJ*im8cLVNgpLP+oM)UWPHnb$jNCN|9ZO;u&bY0zsF#HT zfEpN}Fst2LR<1**HRS2$oRkHUvH-g2AAip#z4pzV;G?2VPUG^=6cAh#Kze;Z>8oGV zzT^~Ax2U02oAW)U5p{mhCpKaH_ZBCy^^-yL4cH$3I~|7o-@|*SQj6$+&xWr5 zY}k^M`>)@e_TSN$=}#UcH$#AAoA<^I*pw6e{G8B;n|)+tWD0q5JtiSJInta4NHi?V zzNSak8*v{T9s(3Xn-vFsEHOLWCTWckhBzenIs@!Cdg|XC08gNAVEL9B*N1u3raGy7 z_EenxYDmc4dsIM7Rs+_1NDTE~(K+vFz7a@ty{U}TH0?!!4p-e~*LJ_dinHjM&6d{s zP^w~JAi*NVRXX9ftqfkXKq29(8G2VrCGCJ!Ie{CtvJbj-=Z*~8(U?}!`{kl{9)}L^ zagL4s3uQ8UyO~N-A`JSH@XSi{>p0|Db_cc+Y_j(qZJ!}b+byd0_GBptd2J5v2I9`B zLvJ>Po*-x9;b1|*uUJ$|m}>GL@8c?sZ^U%6-1I7_c`0QFcyje^VKNnmDT!U!lb zKzd~sj{x2k7|#UTxb*blf|6(ppj(1=6JLcL3@B-7mDD_iw%s~|5kG$Zp20yfdQ=T<%OOCh-lnGR7bC*Neg58BoZ4`DSkmHs5j_HM zJZ}K;2j6e72z$cs-@l1`r5+6*PFtJ4tWjh5^5qVP{r&s*`?C^^?w($RDaE;n(i;h` zwzpOjli&a9tD>|3l;@s2efrBl^AEwX^84W8gy051XwC!dN&BHQm;|seU#fisMsx68 za8%UNes@^hEhgx*i@*1hip^`~ft;7xJAvH(YVgnsJbXa_iX&8mTvTd0u=!)e8oW?T z=Z8aCP79;TNDiBA*Sga^*#4=%$!`7O34g|y7nwOZhjU(#&tJZ@H=$>hUcY{AW{TdO zyVQ*O<2rQ(ZD%)1+X)i-JHuAM%kzG_T|h|$&ISg5a-6Ft4opAkcQ@kp%5%U*T#H%E z=itdPZm5>rTa*o(h2$jx(>8nj1^8tj#LXM$^ZDA!Mrzb8gQuz59J(V-el@bY6@Nv* zo-(bh>+M{6rJp-G&WXQik80vFsQfTHYvg;prEUJ5 zV6S@s0)QMN-i=00bK+B?P&eWu*qSRJ79|#TTu)3c9y6F+vv+}p&`-FWc=SC<-JGp^ z6;d_(uy)f|%zvL0_v25t-SfXfLw@N~O3?0fTw8Xf;7pAjV2SPMWoSpy$mHco`FbyOP4=45K zUlJ%UFGu4+u`f1&-f`#@TL2|t_uaABj*br*2lRhG4<7>bliR5DV@JmoK+;L{EOn+z zNlD4PtzACoo{}9CsKPv}cPC9P7+h~XQ9?59d&d*h&ml};@8 zMvh&*FZYZbZFrSVI{@3yxITo1F_l^Vy#E zKYxCfJW-^i3?De!Y|-`x3hgs@0K-Q?&oykM%G0F$%xH)y*#i}&r8hM+0bit&c)$u2 zaf*%AN$pE?OBip4WvDom1Jv-BnNgIv0aDVquV3A#y8ms}6ZYNpL|9NLJNQUV@$;(%fUy8 z_n7H!X|%qH4ROP~FDHtnV^WB}*gtEWmYPfy!?t*>`yQscE$A`?9PwyFO-&tUDuGE- zEZCZLqnem1v$P#SrRw(M4`vLi?R^H5get65AdLn^I!&eKvJSJgWr5flus$jP_0t1W z0{!LKxVc_$vH8uTowR$hfvu?^4T?LfM>k__&CHa!jJziphe@#GuMp#`G3P%VPx}@o zX6x9;zk0PaOcWdHdd+!wMKefbtAWol(|raJoRS5_dcIlK1P7thJWlhY>X29c#U>`f z!NEdayX?45We*UDM*i}D0k%fEadxLovNyrCpCk`H)*PJy{~*Atd4dJi`W`3E>@7zM zp>)-zx3Lvg!-YcXVEqD}qI}C3scZ}evn8O6%XMtH_~g476t=bBot~SYZ&jfmrk<>W zJQ-3>6GoQSuL>w{O*qZzaOmQ!rA`-RwYA6La6`BC6yEc*!}U~65+=#I<^V)QJ+fLN zKi@O$y11q9U^;$Z+@dQ=YCTch!`9e;U;cQ|X;zOz$KTpJ0CNP}9#}BitG`J}0}1r! zGH^FBb{niJ!Q!uIpY$7+*^Y0~(bE^^=O;VXzllLx4JJJS5dvMZ6{`31JJtCd#ARsv z7GAxDLY3&)p_(e-$cgpAlJYQqGd?x4_FTt(L%lD-3 zE>E{q{`$Td;e*S|E0iDt;Pl`-=-TCF+yCHOGgv^y=S$E@OZ7s!O+J$>I8rBPly;NP zjN*h0XnJYG1sLSnFo&6%rk+To4)pa#)_H7iV@l@qf(=b+V-uUvJ(eCL>6}IB$zmm7 zG@@VeHSyGa?ByR>oZ4UmK=y)k9@AesJvNz)L>oO1BcKJ5_@lm=%Cofq@bJC<79%%^ zPhgP`W}0q_zjhc8ZlwDA-lAB>#pBw=ovVJ0yPgfKf=c6xV0ZTmvrfo(rEJcG#5}&A zRhZ-)xC_k=mr+7AExV57F!q>lD7JldwoZ09iK9%l#JcEI^~tOAmE zI3(F*lGc>fT)I;ajHDjaYy1ssz~&y{B>vr&*{t!cyhA7=YNpvzF<|8cHKw1Ft`nvL z25j3AzuR<-qVR741nQ`5YHO8({QS6264jqX&yFzNhP#Ds)aM4;+C|X)EKI_7vtD=L zVt}^x@f2mjR=N{*5;LJ&QXB`7tjNz#14iq3tzPD@Lx$Am(sECbGK%RKOCCfb{HNY8>#Vq4Uq3y_`PPqei?W=SBW@R>0>x*3zp z`D)%@IcYm8b^2F#oEJZmzJu2|m84l!WaH2MPV`J&mrxT}9O}NBw)RR_RGvZx-?{H3 zYNhLw&-l!9#x#%<`@fdeP5KOe(C+n{65^>#RT-aBOyHrRwr%G=9#ekVQDbjQ7yf1b zi><;>nWlu+KKBBB9F*A2k4`o%_ShB~qh*3*WiyCZQ3YTQk2h8dfVmp$8swRb@Y^l< z`4h=1$rnZc*K_QF=cEaHsig*Vo!75M6xeRf*7j8$aGbdf{>IlwwF3 zBVLw01g_$4S;yE4--lpjy$**+FPuhKOHqGy*38abaX+|0xUn*?`o_(Pud-|?7tBU{ zThVcQB+qzeI4T#{yw57iyaV}{DTwk$Z~f(V8ml#Y$asP22kl|5y}LaB_qwV7&wjOZ zVy4Q@4qojbBq*pQ;klFRSYtTn=#`1M^!1?m9|{>7(Fz&9zP|Z$j=D}xPE|8VPi<|X z@nxpV??hPuUq~9Xsxm0Dt$~kkA(2Huz(jgBh^G!cA11l{N~8Rsm76GGHE{3o z(b0_s%=Z0vm+$lXBJ0V$Yn%wHKR_<8uT^jmRwoUnk`R!+yS)CKG4gijd|DfKdGSEU zE%RT$2AT)|e;$ - - { - // Hack to be able to set the fade-in effect in the content after the first render - isAnySectionOpened.current = true; - }} - onExiting={() => setIsMenuContentScrollable(false)} - onExited={() => { - isAnySectionOpened.current = false; - onMenuExited(); - }} - > -

setIsMenuHovered(true)} - onMouseLeave={() => setIsMenuHovered(false)} - ref={menuRef} - style={{ - top: topSpace, - height: menuHeight, - maxHeight: `calc(100vh - ${topSpace}px - ${bottomSpace}px)`, - overflowY: isMenuContentScrollable ? 'auto' : 'hidden', + +
+ { + // Hack to be able to set the fade-in effect in the content after the first render + isAnySectionOpened.current = true; + }} + onExiting={() => setIsMenuContentScrollable(false)} + onExited={() => { + isAnySectionOpened.current = false; + onMenuExited(); }} > - -
{ - if (el) { - // In old browsers where min() is not supported, the speed of the menu - // height's animation will depend on the height of the content instead of - // the height of the container. - const value = supportsCssMin() - ? `min(${el.scrollHeight}px, calc(100vh - ${topSpace}px - ${bottomSpace}px))` - : `${el.scrollHeight}px`; - setMenuHeight(!isMenuOpen ? '0px' : value); - } - }} - > - {customContent ? ( - typeof customContent === 'function' ? ( - customContent({closeMenu}) +
setIsMenuHovered(true)} + onMouseLeave={() => setIsMenuHovered(false)} + ref={menuRef} + style={{ + height: menuHeight, + maxHeight: `calc(100vh - ${topSpace}px - ${bottomSpace}px)`, + overflowY: isMenuContentScrollable ? 'auto' : 'hidden', + }} + > + +
{ + if (el) { + // In old browsers where min() is not supported, the speed of the menu + // height's animation will depend on the height of the content instead of + // the height of the container. + const value = supportsCssMin() + ? `min(${el.scrollHeight}px, calc(100vh - ${topSpace}px - ${bottomSpace}px))` + : `${el.scrollHeight}px`; + setMenuHeight(!isMenuOpen ? '0px' : value); + } + }} + > + {customContent ? ( + typeof customContent === 'function' ? ( + customContent({closeMenu}) + ) : ( + customContent + ) ) : ( - customContent - ) - ) : ( - - {columns.map((column, columnIdx) => ( - - - - ))} - - )} -
-
-
- - + + {columns.map((column, columnIdx) => ( + + + + ))} + + )} +
+
+
+ +
+

&GE-kxHRBM%UpS5c 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 z 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 literal 0 HcmV?d00001 diff --git a/src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-menu-and-default-content-in-mobile-ios-4-snap.png b/src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-menu-and-default-content-in-mobile-ios-4-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..44fbc84a4d136c0546ea6af2754b34d3b736f2aa GIT binary patch literal 17743 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

); }; @@ -814,36 +815,34 @@ const MainNavigationBarDesktopSmallMenu = ({ return (
{index === openedSection && ( - -
setIsMenuHovered(true)} - onMouseLeave={() => setIsMenuHovered(false)} - style={{ - top: topSpace, - left: leftPosition, - maxHeight: `calc(100vh - ${topSpace}px - ${bottomSpace}px)`, - }} - > - {customContent ? ( - typeof customContent === 'function' ? ( - customContent({closeMenu}) - ) : ( - customContent - ) +
setIsMenuHovered(true)} + onMouseLeave={() => setIsMenuHovered(false)} + style={{ + top: topSpace, + left: leftPosition, + maxHeight: `calc(100vh - ${topSpace}px - ${bottomSpace}px)`, + }} + > + {customContent ? ( + typeof customContent === 'function' ? ( + customContent({closeMenu}) ) : ( - - {columns.map((column, columnIdx) => ( - - ))} - - )} -
- + customContent + ) + ) : ( + + {columns.map((column, columnIdx) => ( + + ))} + + )} +
)}
); @@ -1077,6 +1076,12 @@ export const MainNavigationBar = ({ desktopSmallMenu={desktopSmallMenu} /> ))} + {!desktopSmallMenu && ( + + )} ); @@ -1134,9 +1139,6 @@ export const MainNavigationBar = ({ {topFixed &&
} - {!desktopSmallMenu && ( - - )} ); From e18fee2024227cf23f4be148bd22d1d6911ed0c8 Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Mon, 4 Nov 2024 21:38:41 +0100 Subject: [PATCH 40/62] fix issues with focus, refactor main logic and add inverse screenshots --- ...erse-with-large-menu-in-desktop-1-snap.png | Bin 0 -> 23591 bytes ...erse-with-small-menu-in-desktop-1-snap.png | Bin 0 -> 23794 bytes .../navigation-bar-screenshot-test.tsx | 12 + src/__tests__/main-navigation-bar-test.tsx | 47 ++- src/navigation-bar.css.ts | 21 +- src/navigation-bar.tsx | 340 +++++++++++------- 6 files changed, 271 insertions(+), 149 deletions(-) create mode 100644 src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-inverse-with-large-menu-in-desktop-1-snap.png create mode 100644 src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-inverse-with-small-menu-in-desktop-1-snap.png diff --git a/src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-inverse-with-large-menu-in-desktop-1-snap.png b/src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-inverse-with-large-menu-in-desktop-1-snap.png new file mode 100644 index 0000000000000000000000000000000000000000..aafd7f2020f71fd8151c590b621a4cd88f0edebd GIT binary patch literal 23591 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 Qz$*zoUHx3vIVCg!0J^nLZ~y=R literal 0 HcmV?d00001 diff --git a/src/__screenshot_tests__/navigation-bar-screenshot-test.tsx b/src/__screenshot_tests__/navigation-bar-screenshot-test.tsx index 228d924f2..f7f333283 100644 --- a/src/__screenshot_tests__/navigation-bar-screenshot-test.tsx +++ b/src/__screenshot_tests__/navigation-bar-screenshot-test.tsx @@ -216,3 +216,15 @@ test.each(['default', 'custom'])('MainNavigationBar with menu and %s content in await page.click(await screen.findByRole('button', {name: 'Cerrar menú de navegación'})); expect(await page.screenshot()).toMatchImageSnapshot(); }); + +test.each(['large', 'small'])('MainNavigationBar inverse with %s menu in DESKTOP', async (menuType) => { + const page = await openStoryPage({ + id: 'components-navigation-bars-mainnavigationbar--default', + device: 'DESKTOP', + args: {sections: true, desktopSmallMenu: menuType === 'small', menu: 'default', variant: 'inverse'}, + }); + + // first section opened + await page.click(await screen.findByRole('button', {name: 'Start'})); + expect(await page.screenshot()).toMatchImageSnapshot(); +}); diff --git a/src/__tests__/main-navigation-bar-test.tsx b/src/__tests__/main-navigation-bar-test.tsx index 23c736199..127f902e2 100644 --- a/src/__tests__/main-navigation-bar-test.tsx +++ b/src/__tests__/main-navigation-bar-test.tsx @@ -73,6 +73,9 @@ test('MainNavigationBar section with interaction is accessible', async () => { expect(screen.getByRole('link', {name: /item 1-3/})).toBeInTheDocument(); expect(screen.queryByRole('button', {name: 'item 2-1'})).not.toBeInTheDocument(); + // Remove mouse hover from section in order to close the menu + await userEvent.unhover(firstSectionButton); + // Section onPress shouldn't have been called expect(firstSectionOnPressSpy).toHaveBeenCalledTimes(0); @@ -87,7 +90,7 @@ test('MainNavigationBar section with interaction is accessible', async () => { }); // Open second section's menu - await userEvent.click(secondSectionButton); + await userEvent.hover(secondSectionButton); expect(firstSectionMenuButton).toHaveAttribute('aria-expanded', 'false'); expect(secondSectionButton).toHaveAttribute('aria-expanded', 'true'); @@ -98,18 +101,22 @@ test('MainNavigationBar section with interaction is accessible', async () => { // Close the menu with ESC key await userEvent.keyboard('{Escape}'); - await waitFor(() => { - expect(firstSectionMenuButton).toHaveAttribute('aria-expanded', 'false'); - expect(secondSectionButton).toHaveAttribute('aria-expanded', 'false'); - }); - - // Buttons that open the menu should have aria-haspopup - expect(firstSectionMenuButton).toHaveAttribute('aria-haspopup', 'true'); - expect(secondSectionButton).toHaveAttribute('aria-haspopup', 'true'); - - // Menu is closed, no section should be visible - expect(screen.queryByRole('button', {name: 'item 1-1'})).not.toBeInTheDocument(); - expect(screen.queryByRole('button', {name: 'item 2-1'})).not.toBeInTheDocument(); + await waitFor( + () => { + expect(firstSectionMenuButton).toHaveAttribute('aria-expanded', 'false'); + expect(secondSectionButton).toHaveAttribute('aria-expanded', 'false'); + + // Buttons that open the menu should have aria-haspopup + expect(firstSectionMenuButton).toHaveAttribute('aria-haspopup', 'true'); + expect(secondSectionButton).toHaveAttribute('aria-haspopup', 'true'); + + // Menu is closed, no section should be visible + expect(screen.queryByRole('button', {name: 'item 1-1'})).not.toBeInTheDocument(); + expect(screen.queryByRole('button', {name: 'item 2-1'})).not.toBeInTheDocument(); + }, + // queryByRole takes longer to execute + {timeout: 2000} + ); }); test('MainNavigationBar menu closeMenu callback closes the menu', async () => { @@ -132,15 +139,19 @@ test('MainNavigationBar menu closeMenu callback closes the menu', async () => { // Open the menu const sectionButton = await screen.findByRole('button', {name: 'section 1, Abrir submenú'}); - await userEvent.click(sectionButton); + await userEvent.hover(sectionButton); expect(sectionButton).toHaveAttribute('aria-expanded', 'true'); // Close the menu with the closeMenu callback const closeButton = await screen.findByRole('button', {name: 'Close menu'}); await userEvent.click(closeButton); - await waitFor(() => { - expect(sectionButton).toHaveAttribute('aria-expanded', 'false'); - expect(screen.queryByRole('button', {name: 'Close menu'})).not.toBeInTheDocument(); - }); + await waitFor( + () => { + expect(sectionButton).toHaveAttribute('aria-expanded', 'false'); + expect(screen.queryByRole('button', {name: 'Close menu'})).not.toBeInTheDocument(); + }, + // queryByRole takes longer to execute + {timeout: 2000} + ); }); diff --git a/src/navigation-bar.css.ts b/src/navigation-bar.css.ts index 8a93e401f..5fbaa91fd 100644 --- a/src/navigation-bar.css.ts +++ b/src/navigation-bar.css.ts @@ -398,9 +398,28 @@ export const desktopMenuWrapper = sprinkles({ }); export const desktopMenuContainer = style([ + sprinkles({ + position: 'fixed', + left: 0, + right: 0, + }), + { + zIndex: NAVBAR_ZINDEX, + transition: `height ${DESKTOP_MENU_ANIMATION_DURATION_MS}ms cubic-bezier(0.65, 0, 0.35, 1)`, + '@media': { + ['(prefers-reduced-motion)']: { + transition: 'none', + }, + }, + }, +]); + +export const desktopMenuBackgroundContainer = style([ sprinkles({ background: vars.colors.backgroundContainer, - width: '100%', + position: 'absolute', + left: 0, + right: 0, }), { transition: `height ${DESKTOP_MENU_ANIMATION_DURATION_MS}ms cubic-bezier(0.65, 0, 0.35, 1)`, diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index f9ee15ca6..2a4312c93 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -38,12 +38,6 @@ import type {Variant} from './theme-variant-context'; import type {TouchableProps} from './touchable'; import type {DataAttributes, HeadingType} from './utils/types'; -const supportsCssMin = () => { - const element = document.createElement('div'); - element.style.height = 'min(2px, 3px)'; - return element.style.height === 'calc(2px)'; -}; - const BurgerMenuIcon = ({isOpen}: {isOpen: boolean}) => { return (
@@ -238,13 +232,44 @@ type MainNavigationBarProps = { desktopSmallMenu?: boolean; }; +type MainNavigationBarMenuStatus = 'opening' | 'opened' | 'closing' | 'closed'; +type MainNavigationBarMenuAction = 'open' | 'finishOpen' | 'close' | 'finishClose'; + +const transitions: Record< + MainNavigationBarMenuStatus, + Partial> +> = { + opening: { + close: 'closing', + finishOpen: 'opened', + }, + opened: { + close: 'closing', + }, + closing: { + // If a section was opened while the menu was closing, the menu should be considered as + // already open. This is useful for example to avoid the new content's fade-in animation + open: 'opened', + finishClose: 'closed', + }, + closed: { + open: 'opening', + }, +}; + +const menuReducer = (state: MainNavigationBarMenuStatus, action: MainNavigationBarMenuAction) => { + return transitions[state][action] || state; +}; + type MainNavigationBarDesktopMenuState = { isMenuOpen: boolean; openedSection: number; + menuHeight: string; + menuStatus: MainNavigationBarMenuStatus; setSectionAsActive: (index: number) => void; setSectionAsInactive: (index: number, forceCloseMenu?: boolean) => void; closeMenu: () => void; - onMenuExited: () => void; + setMenuHeight: (height: string) => void; setIsMenuHovered: (value: boolean) => void; setFocusedItem: (item?: {column: number; index: number}) => void; }; @@ -252,10 +277,12 @@ type MainNavigationBarDesktopMenuState = { const MainNavigationBarDesktopMenuContext = React.createContext({ isMenuOpen: false, openedSection: -1, + menuHeight: '0px', + menuStatus: 'closed', setSectionAsActive: () => {}, setSectionAsInactive: () => {}, closeMenu: () => {}, - onMenuExited: () => {}, + setMenuHeight: () => {}, setIsMenuHovered: () => {}, setFocusedItem: () => {}, }); @@ -271,29 +298,33 @@ const MainNavigationBarDesktopMenuContextProvider = ({ }): JSX.Element => { const {isTabletOrSmaller} = useScreenSize(); const [isMenuOpen, setIsMenuOpen] = React.useState(false); - const [isMenuHovered, setIsMenuHovered] = React.useState(false); + const [menuHeight, setMenuHeight] = React.useState('0px'); + const [menuStatus, dispatch] = React.useReducer(menuReducer, 'closed'); // Item that is currently focused inside a section. This state is used to handle pressing // up/down arrows to navigate through the items of a section. const [focusedItem, setFocusedItem] = React.useState<{column: number; index: number} | undefined>(); - // Section that has been hovered. This state is used to determine whether the menu should be open or closed. - const [activeSection, setActiveSection] = React.useState(-1); + // State that indicated whether the menu container has been hovered + const [isMenuHovered, setIsMenuHovered] = React.useState(false); + + // State that indicates whether the current rendered section has been hovered or its arrow button is focused + const [isSectionHovered, setIsSectionHovered] = React.useState(false); - // Section that is currently being rendered. We keep this as a different state from activeSection - // because when the large menu is closing, we still need to display the section that was opened. + // Section that is currently being rendered const [openedSection, setOpenedSection] = React.useState(-1); const closeMenu = React.useCallback(() => { setIsMenuHovered(false); - setActiveSection(-1); + setIsSectionHovered(false); }, []); // Callback used when a section has been hovered or it's focused arrow has been pressed while it's closed const setSectionAsActive = React.useCallback( (index: number) => { if (sections?.[index]?.menu) { - setActiveSection(index); + setIsSectionHovered(true); + setOpenedSection(index); } else { // If the section has no menu, close the current opened one closeMenu(); @@ -306,43 +337,58 @@ const MainNavigationBarDesktopMenuContextProvider = ({ const setSectionAsInactive = React.useCallback( (index: number, forceCloseMenu?: boolean) => { if (index === openedSection) { + setIsSectionHovered(false); + // We may want to close the menu even when menu is hovered, and if so, we should reset isMenuHovered // (for example, when the current menu is being hovered and we press the arrow from another section) if (forceCloseMenu) { - closeMenu(); - } else { - setActiveSection(-1); + setIsMenuHovered(false); } } }, - [openedSection, closeMenu] + [openedSection] ); - // Callback used to reset openedSection once the large menu close animation has finished - const onMenuExited = React.useCallback(() => { - setOpenedSection(-1); - }, []); - // Close menu when viewport is too small React.useEffect(() => { if (isTabletOrSmaller) { closeMenu(); - setOpenedSection(-1); } }, [isTabletOrSmaller, closeMenu]); React.useEffect(() => { - if (activeSection === -1 && !isMenuHovered) { + if (!isSectionHovered && !isMenuHovered) { setIsMenuOpen(false); - if (isSmallMenu) { - // When rendering the small menu, we don't need to wait for the animation to finish - onMenuExited(); - } - } else if (activeSection !== -1) { - setOpenedSection(activeSection); + setMenuHeight('0px'); + } else { setIsMenuOpen(true); } - }, [isMenuHovered, activeSection, isSmallMenu, onMenuExited]); + }, [isMenuHovered, isSectionHovered]); + + React.useEffect(() => { + const menuAnimationDuration = + isRunningAcceptanceTest() || isSmallMenu ? 0 : styles.DESKTOP_MENU_ANIMATION_DURATION_MS; + + let id: NodeJS.Timeout; + + // If menu started opening/closing + if (!isMenuOpen) { + dispatch('close'); + id = setTimeout(() => dispatch('finishClose'), menuAnimationDuration); + } else { + dispatch('open'); + id = setTimeout(() => dispatch('finishOpen'), menuAnimationDuration); + } + + return () => clearTimeout(id); + }, [isMenuOpen, isSmallMenu]); + + React.useEffect(() => { + // reset openedSection when the menu has been closed + if (menuStatus === 'closed') { + setOpenedSection(-1); + } + }, [menuStatus]); const focusItem = React.useCallback( (item: {column: number; index: number} | undefined) => { @@ -395,12 +441,10 @@ const MainNavigationBarDesktopMenuContextProvider = ({ // Do nothing } }; - // Close menu when ESC key is pressed or when scrolling in the page + // Close menu when ESC key is pressed document.addEventListener('keydown', handleKeyDown, false); - document.addEventListener('scroll', closeMenu); return () => { document.removeEventListener('keydown', handleKeyDown, false); - document.removeEventListener('scroll', closeMenu); }; }, [closeMenu, focusedItem]); @@ -414,10 +458,12 @@ const MainNavigationBarDesktopMenuContextProvider = ({ value={{ isMenuOpen, openedSection, + menuHeight, + menuStatus, setSectionAsActive, setSectionAsInactive, closeMenu, - onMenuExited, + setMenuHeight, setIsMenuHovered, setFocusedItem: focusItem, }} @@ -675,28 +721,28 @@ const MainNavigationBarDesktopMenuSectionColumn = ({ ); }; -const MainNavigationBarDesktopMenu = ({ - sections, +const MainNavigationBarDesktopMenuContent = ({ + section, + index, isLargeNavigationBar, }: { - sections: ReadonlyArray; + section: MainNavigationBarSection; + index: number; isLargeNavigationBar: boolean; }): JSX.Element => { const menuRef = React.useRef(null); - const [menuHeight, setMenuHeight] = React.useState('0px'); const [isMenuContentScrollable, setIsMenuContentScrollable] = React.useState(false); - const isAnySectionOpened = React.useRef(false); const menuAnimationDuration = isRunningAcceptanceTest() ? 0 : styles.DESKTOP_MENU_ANIMATION_DURATION_MS; const topSpace = isLargeNavigationBar ? NAVBAR_HEIGHT_DESKTOP_LARGE : NAVBAR_HEIGHT_DESKTOP; const bottomSpace = 40; - const {isMenuOpen, openedSection, closeMenu, onMenuExited, setIsMenuHovered} = + const {menuStatus, isMenuOpen, openedSection, menuHeight, closeMenu, setIsMenuHovered, setMenuHeight} = useMainNavigationBarDesktopMenuState(); React.useEffect(() => { // Scroll to top of the content if the opened section changed - if (menuRef.current) { + if (menuRef.current && isMenuOpen) { menuRef.current.scrollTop = 0; } @@ -709,54 +755,56 @@ const MainNavigationBarDesktopMenu = ({ } }, [isMenuOpen, openedSection, menuAnimationDuration]); - const columns = sections[openedSection]?.menu?.columns || []; - const customContent = sections[openedSection]?.menu?.content; + const [isContentVisible, setIsContentVisible] = React.useState(true); + + React.useEffect(() => { + if (openedSection === index) { + // If menu is opening, trigger the fade-in effect for current section + if (menuStatus === 'opening') { + setIsContentVisible(false); + // TODO: evaluate if we want a delay in here + setTimeout(() => setIsContentVisible(true), 0); + } else { + setIsContentVisible(true); + } + } + }, [menuStatus, openedSection, index]); + + React.useEffect(() => { + // disable scroll when menu is closing to avoid showing the scrollbar + if (menuStatus === 'closing') { + setIsMenuContentScrollable(false); + } + }, [menuStatus]); + + const columns = section.menu?.columns || []; + const customContent = section?.menu?.content; return (
- -
- { - // Hack to be able to set the fade-in effect in the content after the first render - isAnySectionOpened.current = true; - }} - onExiting={() => setIsMenuContentScrollable(false)} - onExited={() => { - isAnySectionOpened.current = false; - onMenuExited(); - }} - > + + {openedSection === index && ( +
setIsMenuHovered(true)} onMouseLeave={() => setIsMenuHovered(false)} - ref={menuRef} style={{ + top: topSpace, height: menuHeight, - maxHeight: `calc(100vh - ${topSpace}px - ${bottomSpace}px)`, overflowY: isMenuContentScrollable ? 'auto' : 'hidden', }} >
{ - if (el) { - // In old browsers where min() is not supported, the speed of the menu - // height's animation will depend on the height of the content instead of - // the height of the container. - const value = supportsCssMin() - ? `min(${el.scrollHeight}px, calc(100vh - ${topSpace}px - ${bottomSpace}px))` - : `${el.scrollHeight}px`; - setMenuHeight(!isMenuOpen ? '0px' : value); + if (el && isMenuOpen) { + setMenuHeight( + `min(${el.scrollHeight}px, calc(100vh - ${topSpace}px - ${bottomSpace}px))` + ); } }} > @@ -786,9 +834,34 @@ const MainNavigationBarDesktopMenu = ({
-
-
-
+ + )} + +
+ ); +}; + +// This is the menu's background panel. The menu content is rendered separately for each tab +// in order to make the section's content follow the natural focus order of elements +// when using the keyboard or a screen reader to navigate +const MainNavigationBarDesktopMenuBackground = ({ + isLargeNavigationBar, +}: { + isLargeNavigationBar: boolean; +}): JSX.Element => { + const topSpace = isLargeNavigationBar ? NAVBAR_HEIGHT_DESKTOP_LARGE : NAVBAR_HEIGHT_DESKTOP; + const {menuHeight} = useMainNavigationBarDesktopMenuState(); + + return ( +
+
+
+
); }; @@ -815,34 +888,36 @@ const MainNavigationBarDesktopSmallMenu = ({ return (
{index === openedSection && ( -
setIsMenuHovered(true)} - onMouseLeave={() => setIsMenuHovered(false)} - style={{ - top: topSpace, - left: leftPosition, - maxHeight: `calc(100vh - ${topSpace}px - ${bottomSpace}px)`, - }} - > - {customContent ? ( - typeof customContent === 'function' ? ( - customContent({closeMenu}) + +
setIsMenuHovered(true)} + onMouseLeave={() => setIsMenuHovered(false)} + style={{ + top: topSpace, + left: leftPosition, + maxHeight: `calc(100vh - ${topSpace}px - ${bottomSpace}px)`, + }} + > + {customContent ? ( + typeof customContent === 'function' ? ( + customContent({closeMenu}) + ) : ( + customContent + ) ) : ( - customContent - ) - ) : ( - - {columns.map((column, columnIdx) => ( - - ))} - - )} -
+ + {columns.map((column, columnIdx) => ( + + ))} + + )} +
+ )}
); @@ -874,7 +949,8 @@ const MainNavigationBarDesktopSection = ({ const sectionRef = React.useRef(null); const [smallMenuLeftPosition, setSmallMenuLeftPosition] = React.useState(0); const [isArrowFocused, setIsArrowFocused] = React.useState(false); - const {openedSection, setSectionAsActive, setSectionAsInactive} = useMainNavigationBarDesktopMenuState(); + const {isMenuOpen, openedSection, setSectionAsActive, setSectionAsInactive} = + useMainNavigationBarDesktopMenuState(); const hasCustomInteraction = touchableProps.href !== undefined || @@ -931,24 +1007,28 @@ const MainNavigationBarDesktopSection = ({ }; }, [index, isArrowFocused, openSectionMenu, setSectionAsInactive, menu, hasCustomInteraction]); + const isSectionMenuOpen = isMenuOpen && openedSection === index; + + const menuButtonOnPress = React.useCallback(() => { + if (isSectionMenuOpen) { + setSectionAsInactive(index, true); + } else { + openSectionMenu(); + } + }, [isSectionMenuOpen, setSectionAsInactive, openSectionMenu, index]); + const getSectionInteractiveProps = React.useCallback( (touchableProps: InteractiveProps) => { // Open or close the menu when a section without interaction is pressed if (!hasCustomInteraction) { return { - onPress: () => { - if (index !== openedSection) { - openSectionMenu(); - } else { - setSectionAsInactive(index, true); - } - }, + onPress: menuButtonOnPress, }; } return touchableProps as InteractiveProps; }, - [hasCustomInteraction, index, openSectionMenu, openedSection, setSectionAsInactive] + [hasCustomInteraction, menuButtonOnPress] ); return ( @@ -959,7 +1039,8 @@ const MainNavigationBarDesktopSection = ({ [styles.desktopMenuFirstSection]: isFirstSection, [styles.desktopMenuLastSection]: isLastSection, })} - onMouseEnter={() => openSectionMenu()} + // TODO: debounce this! + onMouseEnter={openSectionMenu} onMouseLeave={() => setSectionAsInactive(index)} > { if (isArrowFocused) { - if (index !== openedSection) { - openSectionMenu(); - } else { - setSectionAsInactive(index, true); - } + menuButtonOnPress(); } }} style={{ @@ -1015,19 +1092,25 @@ const MainNavigationBarDesktopSection = ({
)} - {desktopSmallMenu && ( + {desktopSmallMenu ? ( + ) : ( + )} )} @@ -1076,13 +1159,10 @@ export const MainNavigationBar = ({ desktopSmallMenu={desktopSmallMenu} /> ))} - {!desktopSmallMenu && ( - - )} + {!desktopSmallMenu && ( + + )} ); }; From 7332c8bf7caf386855c379622ac33435e64e4d08 Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Tue, 5 Nov 2024 09:47:02 +0100 Subject: [PATCH 41/62] fix content animation and add threshold to inverse screenshot --- .../navigation-bar-screenshot-test.tsx | 2 +- src/navigation-bar.css.ts | 18 ++-- src/navigation-bar.tsx | 93 ++++++++++++------- 3 files changed, 73 insertions(+), 40 deletions(-) diff --git a/src/__screenshot_tests__/navigation-bar-screenshot-test.tsx b/src/__screenshot_tests__/navigation-bar-screenshot-test.tsx index f7f333283..d9fe83655 100644 --- a/src/__screenshot_tests__/navigation-bar-screenshot-test.tsx +++ b/src/__screenshot_tests__/navigation-bar-screenshot-test.tsx @@ -226,5 +226,5 @@ test.each(['large', 'small'])('MainNavigationBar inverse with %s menu in DESKTOP // first section opened await page.click(await screen.findByRole('button', {name: 'Start'})); - expect(await page.screenshot()).toMatchImageSnapshot(); + expect(await page.screenshot()).toMatchImageSnapshot({failureThreshold: 0.00001}); }); diff --git a/src/navigation-bar.css.ts b/src/navigation-bar.css.ts index 5fbaa91fd..c02e7fd87 100644 --- a/src/navigation-bar.css.ts +++ b/src/navigation-bar.css.ts @@ -391,6 +391,18 @@ export const lineHeightFix = style({ lineHeight: 0, }); +export const mainNavigationBarContentWrapper = style([ + sprinkles({width: '100%'}), + { + transition: `clip-path ${DESKTOP_MENU_ANIMATION_DURATION_MS}ms cubic-bezier(0.65, 0, 0.35, 1)`, + '@media': { + ['(prefers-reduced-motion)']: { + transition: 'none', + }, + }, + }, +]); + export const desktopMenuWrapper = sprinkles({ position: 'absolute', left: 0, @@ -405,12 +417,6 @@ export const desktopMenuContainer = style([ }), { zIndex: NAVBAR_ZINDEX, - transition: `height ${DESKTOP_MENU_ANIMATION_DURATION_MS}ms cubic-bezier(0.65, 0, 0.35, 1)`, - '@media': { - ['(prefers-reduced-motion)']: { - transition: 'none', - }, - }, }, ]); diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index 2a4312c93..c98f33b82 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -737,7 +737,7 @@ const MainNavigationBarDesktopMenuContent = ({ const topSpace = isLargeNavigationBar ? NAVBAR_HEIGHT_DESKTOP_LARGE : NAVBAR_HEIGHT_DESKTOP; const bottomSpace = 40; - const {menuStatus, isMenuOpen, openedSection, menuHeight, closeMenu, setIsMenuHovered, setMenuHeight} = + const {menuStatus, isMenuOpen, openedSection, closeMenu, setIsMenuHovered, setMenuHeight} = useMainNavigationBarDesktopMenuState(); React.useEffect(() => { @@ -791,7 +791,6 @@ const MainNavigationBarDesktopMenuContent = ({ onMouseLeave={() => setIsMenuHovered(false)} style={{ top: topSpace, - height: menuHeight, overflowY: isMenuContentScrollable ? 'auto' : 'hidden', }} > @@ -1118,6 +1117,32 @@ const MainNavigationBarDesktopSection = ({ ); }; +// It's not easy to coordinate the animation of the menu content height when switching between opened +// sections. This is because each section has it's own element where it displays the content. Instead, +// the contents of the sections are rendered without any animation, and we keep this wrapper around +// all of them, which "hides" the rendered smoothly by using animated clip-path +const MainNavigationBarContentWrapper = ({ + children, + isLargeNavigationBar, +}: { + children: React.ReactNode; + isLargeNavigationBar: boolean; +}): JSX.Element => { + const {menuHeight} = useMainNavigationBarDesktopMenuState(); + const topSpace = isLargeNavigationBar ? NAVBAR_HEIGHT_DESKTOP_LARGE : NAVBAR_HEIGHT_DESKTOP; + + return ( +
+ {children} +
+ ); +}; + export const MainNavigationBar = ({ sections = [], selectedIndex, @@ -1160,9 +1185,6 @@ export const MainNavigationBar = ({ /> ))} - {!desktopSmallMenu && ( - - )} ); }; @@ -1188,35 +1210,40 @@ export const MainNavigationBar = ({ variant={variant} dataAttributes={{'component-name': 'MainNavigationBar'}} > - - -
- {showBurger && ( - - - - )} -
{logoElement}
- {!hasBottomSections && renderDesktopSections()} -
-
- {hasBottomSections && ( - - {renderDesktopSections()} + {!desktopSmallMenu && ( + + )} + + + +
+ {showBurger && ( + + + + )} +
{logoElement}
+ {!hasBottomSections && renderDesktopSections()} +
- )} -
+ {hasBottomSections && ( + + {renderDesktopSections()} + + )} +
+ {topFixed &&
} From 601b11ee7423a8438f00a8831664c4923c2e41a0 Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Tue, 5 Nov 2024 09:53:00 +0100 Subject: [PATCH 42/62] avoid clip-path in small menu --- src/navigation-bar.tsx | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index c98f33b82..197d2a515 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -1124,9 +1124,11 @@ const MainNavigationBarDesktopSection = ({ const MainNavigationBarContentWrapper = ({ children, isLargeNavigationBar, + desktopSmallMenu, }: { children: React.ReactNode; isLargeNavigationBar: boolean; + desktopSmallMenu: boolean; }): JSX.Element => { const {menuHeight} = useMainNavigationBarDesktopMenuState(); const topSpace = isLargeNavigationBar ? NAVBAR_HEIGHT_DESKTOP_LARGE : NAVBAR_HEIGHT_DESKTOP; @@ -1135,7 +1137,9 @@ const MainNavigationBarContentWrapper = ({
{children} @@ -1213,7 +1217,10 @@ export const MainNavigationBar = ({ {!desktopSmallMenu && ( )} - +
From 7631a9be1ee553ee923805d6b577dddcae53a593 Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Tue, 5 Nov 2024 10:04:05 +0100 Subject: [PATCH 43/62] add webkit prefixed clip-path to increase browser support --- src/navigation-bar.tsx | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index 197d2a515..e33afbd3a 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -1136,11 +1136,14 @@ const MainNavigationBarContentWrapper = ({ return (
{children}
From 7c068e0afd26b934e34f85732fffce9f1c567e59 Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Tue, 5 Nov 2024 10:23:04 +0100 Subject: [PATCH 44/62] optimize unit tests performance --- src/__tests__/main-navigation-bar-test.tsx | 48 +++++++++------------- 1 file changed, 20 insertions(+), 28 deletions(-) diff --git a/src/__tests__/main-navigation-bar-test.tsx b/src/__tests__/main-navigation-bar-test.tsx index 127f902e2..9fca9f992 100644 --- a/src/__tests__/main-navigation-bar-test.tsx +++ b/src/__tests__/main-navigation-bar-test.tsx @@ -57,8 +57,8 @@ test('MainNavigationBar section with interaction is accessible', async () => { }); // Menu is initially closed, no section should be visible - expect(screen.queryByRole('button', {name: 'item 1-1'})).not.toBeInTheDocument(); - expect(screen.queryByRole('button', {name: 'item 2-1'})).not.toBeInTheDocument(); + expect(screen.queryByText('item 1-1')).not.toBeInTheDocument(); + expect(screen.queryByText('item 2-1')).not.toBeInTheDocument(); // Focus arrow in order for it to appear in the screen await act(async () => { @@ -95,28 +95,24 @@ test('MainNavigationBar section with interaction is accessible', async () => { expect(secondSectionButton).toHaveAttribute('aria-expanded', 'true'); // Second section should be visible, while first one shouldn't - expect(screen.getByRole('button', {name: 'item 2-1'})).toBeInTheDocument(); - expect(screen.queryByRole('button', {name: 'item 1-1'})).not.toBeInTheDocument(); + expect(screen.getByText('item 2-1')).toBeInTheDocument(); + expect(screen.queryByText('item 1-1')).not.toBeInTheDocument(); // Close the menu with ESC key await userEvent.keyboard('{Escape}'); - await waitFor( - () => { - expect(firstSectionMenuButton).toHaveAttribute('aria-expanded', 'false'); - expect(secondSectionButton).toHaveAttribute('aria-expanded', 'false'); - - // Buttons that open the menu should have aria-haspopup - expect(firstSectionMenuButton).toHaveAttribute('aria-haspopup', 'true'); - expect(secondSectionButton).toHaveAttribute('aria-haspopup', 'true'); - - // Menu is closed, no section should be visible - expect(screen.queryByRole('button', {name: 'item 1-1'})).not.toBeInTheDocument(); - expect(screen.queryByRole('button', {name: 'item 2-1'})).not.toBeInTheDocument(); - }, - // queryByRole takes longer to execute - {timeout: 2000} - ); + await waitFor(() => { + expect(firstSectionMenuButton).toHaveAttribute('aria-expanded', 'false'); + expect(secondSectionButton).toHaveAttribute('aria-expanded', 'false'); + + // Buttons that open the menu should have aria-haspopup + expect(firstSectionMenuButton).toHaveAttribute('aria-haspopup', 'true'); + expect(secondSectionButton).toHaveAttribute('aria-haspopup', 'true'); + + // Menu is closed, no section should be visible + expect(screen.queryByText('item 1-1')).not.toBeInTheDocument(); + expect(screen.queryByText('item 2-1')).not.toBeInTheDocument(); + }); }); test('MainNavigationBar menu closeMenu callback closes the menu', async () => { @@ -146,12 +142,8 @@ test('MainNavigationBar menu closeMenu callback closes the menu', async () => { const closeButton = await screen.findByRole('button', {name: 'Close menu'}); await userEvent.click(closeButton); - await waitFor( - () => { - expect(sectionButton).toHaveAttribute('aria-expanded', 'false'); - expect(screen.queryByRole('button', {name: 'Close menu'})).not.toBeInTheDocument(); - }, - // queryByRole takes longer to execute - {timeout: 2000} - ); + await waitFor(() => { + expect(sectionButton).toHaveAttribute('aria-expanded', 'false'); + expect(screen.queryByText('Close menu')).not.toBeInTheDocument(); + }); }); From 90f45935259d0d8ad100a0c199e155e73c835d0d Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Tue, 5 Nov 2024 11:17:29 +0100 Subject: [PATCH 45/62] fix focus logic and right content height --- src/navigation-bar.css.ts | 142 +++++++++++++++++++++++--------------- src/navigation-bar.tsx | 28 ++++---- 2 files changed, 102 insertions(+), 68 deletions(-) diff --git a/src/navigation-bar.css.ts b/src/navigation-bar.css.ts index c02e7fd87..2e829da01 100644 --- a/src/navigation-bar.css.ts +++ b/src/navigation-bar.css.ts @@ -143,26 +143,35 @@ export const desktopMenuSectionContainer = style([ }, ]); -export const desktopMenuSectionWithArrowWrapper = style({ +export const desktopMenuSectionWithArrowWrapper = sprinkles({ position: 'relative', }); -export const desktopMenuSectionArrowContainer = style({ - position: 'absolute', - zIndex: -1, - right: -8, - top: 0, - bottom: 0, - display: 'flex', - alignItems: 'center', -}); +export const desktopMenuSectionArrowContainer = style([ + sprinkles({ + position: 'absolute', + top: 0, + bottom: 0, + display: 'flex', + alignItems: 'center', + }), + { + // Avoid element from affecting hover status of the section + zIndex: -1, + right: -8, + }, +]); -export const desktopMenuSectionArrow = style({ - border: 'none', - background: 'transparent', - padding: 0, - transition: `opacity 0.1s`, -}); +export const desktopMenuSectionArrow = style([ + sprinkles({ + border: 'none', + background: 'transparent', + padding: 0, + }), + { + transition: `opacity 0.1s`, + }, +]); export const section = style([ sprinkles({ @@ -209,22 +218,26 @@ export const textWrapperVariants = styleVariants({ }, }); -export const navigationBarContent = style({ - alignItems: 'center', - width: '100%', - display: 'flex', - height: NAVBAR_HEIGHT_DESKTOP, - '@media': { - [mq.tabletOrSmaller]: { - height: NAVBAR_HEIGHT_MOBILE - borderWidth, - }, - [mq.desktopOrBigger]: { - ':last-child': { - height: NAVBAR_HEIGHT_DESKTOP - borderWidth, +export const navigationBarContent = style([ + sprinkles({ + alignItems: 'center', + width: '100%', + display: 'flex', + }), + { + height: NAVBAR_HEIGHT_DESKTOP, + '@media': { + [mq.tabletOrSmaller]: { + height: NAVBAR_HEIGHT_MOBILE - borderWidth, + }, + [mq.desktopOrBigger]: { + ':last-child': { + height: NAVBAR_HEIGHT_DESKTOP - borderWidth, + }, }, }, }, -}); +]); export const navigationBarAction = sprinkles({ border: 'none', @@ -240,18 +253,29 @@ export const desktopOnly = style({ }, }); -export const navigationBarContentRight = style({ - display: 'flex', - flex: 1, - alignItems: 'center', - justifyContent: 'flex-end', - paddingLeft: 136, - '@media': { - [mq.tabletOrSmaller]: { - paddingLeft: 24, +export const navigationBarContentRight = style([ + sprinkles({ + display: 'flex', + flex: 1, + alignItems: 'center', + justifyContent: 'flex-end', + }), + { + paddingLeft: 136, + height: NAVBAR_HEIGHT_DESKTOP, + '@media': { + [mq.tabletOrSmaller]: { + paddingLeft: 24, + height: NAVBAR_HEIGHT_MOBILE - borderWidth, + }, + [mq.desktopOrBigger]: { + ':last-child': { + height: NAVBAR_HEIGHT_DESKTOP - borderWidth, + }, + }, }, }, -}); +]); const spacerMobile = style({ '@media': { @@ -280,7 +304,7 @@ export const burgerMenuTransition = { transform: 'translate(-100vw)', }), enterActive: style({ - transform: 'translate(0vw)', + transform: 'translate(0)', transition: `transform ${BURGER_MENU_ANIMATION_DURATION_MS}ms ease-out`, '@media': { ['(prefers-reduced-motion)']: { @@ -289,7 +313,7 @@ export const burgerMenuTransition = { }, }), exit: style({ - transform: 'translate(0vw)', + transform: 'translate(0)', }), exitActive: style({ transform: 'translate(-100vw)', @@ -302,7 +326,7 @@ export const burgerMenuTransition = { }), }; -export const mainNavbarContent = style({ +export const mainNavbarContent = sprinkles({ display: 'flex', alignItems: 'center', }); @@ -344,19 +368,25 @@ export const burgerMenu = style([ }, ]); -export const burgerMainMenuContainer = style({ - height: `calc(100vh - ${NAVBAR_HEIGHT_MOBILE}px)`, - overflowY: 'auto', -}); +export const burgerMainMenuContainer = style([ + sprinkles({overflowY: 'auto'}), + { + height: `calc(100vh - ${NAVBAR_HEIGHT_MOBILE}px)`, + }, +]); -export const burgerSubMenuContainer = style({ - height: `calc(100vh - ${NAVBAR_HEIGHT_MOBILE}px)`, - overflowY: 'auto', - width: '100%', - position: 'absolute', - left: '100vw', - top: 0, -}); +export const burgerSubMenuContainer = style([ + sprinkles({ + overflowY: 'auto', + width: '100%', + position: 'absolute', + top: 0, + }), + { + height: `calc(100vh - ${NAVBAR_HEIGHT_MOBILE}px)`, + left: '100vw', + }, +]); export const iconButtonVariants = styleVariants({ default: [ @@ -444,12 +474,12 @@ export const desktopSmallMenuContainer = style([ position: 'fixed', paddingY: 40, paddingX: 24, + overflowY: 'auto', }), { zIndex: NAVBAR_ZINDEX, borderRadius: `0 0 ${vars.borderRadii.popup} ${vars.borderRadii.popup}`, width: DESKTOP_SMALL_MENU_WIDTH, - overflowY: 'auto', boxShadow: '0px 2px 4px rgba(0,0,0,0.2)', }, ]); @@ -471,7 +501,7 @@ export const desktopMenu = style([ ]); export const desktopMenuContentFadeIn = style({ - transform: 'translateY(0px)', + transform: 'translateY(0)', opacity: 1, transition: `opacity ${DESKTOP_MENU_CONTENT_ANIMATION_DURATION_MS}ms cubic-bezier(0.33, 1, 0.68, 1), transform ${DESKTOP_MENU_CONTENT_ANIMATION_DURATION_MS}ms cubic-bezier(0.33, 1, 0.68, 1)`, '@media': { diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index e33afbd3a..c2a51a50e 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -371,7 +371,7 @@ const MainNavigationBarDesktopMenuContextProvider = ({ let id: NodeJS.Timeout; - // If menu started opening/closing + // menu starts opening or closing if (!isMenuOpen) { dispatch('close'); id = setTimeout(() => dispatch('finishClose'), menuAnimationDuration); @@ -947,7 +947,7 @@ const MainNavigationBarDesktopSection = ({ const {title, menu, ...touchableProps} = section; const sectionRef = React.useRef(null); const [smallMenuLeftPosition, setSmallMenuLeftPosition] = React.useState(0); - const [isArrowFocused, setIsArrowFocused] = React.useState(false); + const [isMenuControlFocused, setIsMenuControlFocused] = React.useState(false); const {isMenuOpen, openedSection, setSectionAsActive, setSectionAsInactive} = useMainNavigationBarDesktopMenuState(); @@ -976,12 +976,10 @@ const MainNavigationBarDesktopSection = ({ React.useEffect(() => { const handleKeyDown = (e: KeyboardEvent) => { - const shouldReactOnArrowKeyPress = isArrowFocused || (menu && !hasCustomInteraction); - switch (e.key) { // If arrow is focused and DOWN key is pressed, open the menu if it was closed case DOWN: - if (shouldReactOnArrowKeyPress) { + if (isMenuControlFocused) { cancelEvent(e); openSectionMenu(); } @@ -989,7 +987,7 @@ const MainNavigationBarDesktopSection = ({ // If arrow is focused and UP key is pressed, close the menu if it was opened case UP: - if (shouldReactOnArrowKeyPress) { + if (isMenuControlFocused) { cancelEvent(e); setSectionAsInactive(index, true); } @@ -1004,7 +1002,7 @@ const MainNavigationBarDesktopSection = ({ return () => { document.removeEventListener('keydown', handleKeyDown, false); }; - }, [index, isArrowFocused, openSectionMenu, setSectionAsInactive, menu, hasCustomInteraction]); + }, [index, isMenuControlFocused, openSectionMenu, setSectionAsInactive, menu, hasCustomInteraction]); const isSectionMenuOpen = isMenuOpen && openedSection === index; @@ -1041,6 +1039,12 @@ const MainNavigationBarDesktopSection = ({ // TODO: debounce this! onMouseEnter={openSectionMenu} onMouseLeave={() => setSectionAsInactive(index)} + onFocus={() => { + if (menu && !hasCustomInteraction) setIsMenuControlFocused(true); + }} + onBlur={() => { + if (menu && !hasCustomInteraction) setIsMenuControlFocused(false); + }} > setIsArrowFocused(true)} - onBlur={() => setIsArrowFocused(false)} + onFocus={() => setIsMenuControlFocused(true)} + onBlur={() => setIsMenuControlFocused(false)} > { - if (isArrowFocused) { + if (isMenuControlFocused) { menuButtonOnPress(); } }} style={{ - pointerEvents: isArrowFocused ? 'auto' : 'none', - opacity: isArrowFocused ? 1 : 0, + pointerEvents: isMenuControlFocused ? 'auto' : 'none', + opacity: isMenuControlFocused ? 1 : 0, }} > Date: Tue, 5 Nov 2024 11:33:58 +0100 Subject: [PATCH 46/62] fix scroll logic --- src/navigation-bar.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index c2a51a50e..26bbd74ed 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -791,6 +791,7 @@ const MainNavigationBarDesktopMenuContent = ({ onMouseLeave={() => setIsMenuHovered(false)} style={{ top: topSpace, + maxHeight: `calc(100vh - ${topSpace}px - ${bottomSpace}px)`, overflowY: isMenuContentScrollable ? 'auto' : 'hidden', }} > From 981bbd38dfd81836eba20df90e284f7bfea9dc22 Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Tue, 5 Nov 2024 15:20:20 +0100 Subject: [PATCH 47/62] add debounce logic --- src/navigation-bar.tsx | 225 ++++++++++++++++++++++++++--------------- 1 file changed, 143 insertions(+), 82 deletions(-) diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index 26bbd74ed..8004df2ab 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -31,13 +31,15 @@ import {Title1, Title3} from './title'; import {ButtonLink} from './button'; import {Grid, GridItem} from './grid'; import {DOWN, ESC, UP} from './utils/keys'; -import {isEqual} from './utils/helpers'; +import {debounce, isEqual} from './utils/helpers'; import type {ExclusifyUnion} from './utils/utility-types'; import type {Variant} from './theme-variant-context'; import type {TouchableProps} from './touchable'; import type {DataAttributes, HeadingType} from './utils/types'; +const MAIN_NAVIGATION_BAR_MENU_DEBOUNCE_TIME = 300; + const BurgerMenuIcon = ({isOpen}: {isOpen: boolean}) => { return (
@@ -266,12 +268,13 @@ type MainNavigationBarDesktopMenuState = { openedSection: number; menuHeight: string; menuStatus: MainNavigationBarMenuStatus; - setSectionAsActive: (index: number) => void; - setSectionAsInactive: (index: number, forceCloseMenu?: boolean) => void; + openSectionMenu: (index: number) => void; closeMenu: () => void; setMenuHeight: (height: string) => void; setIsMenuHovered: (value: boolean) => void; setFocusedItem: (item?: {column: number; index: number}) => void; + debouncedOpenSectionMenu: (index: number) => void; + cancelDebouncedOpenSectionMenu: (index: number) => void; }; const MainNavigationBarDesktopMenuContext = React.createContext({ @@ -279,12 +282,13 @@ const MainNavigationBarDesktopMenuContext = React.createContext {}, - setSectionAsInactive: () => {}, + openSectionMenu: () => {}, closeMenu: () => {}, setMenuHeight: () => {}, setIsMenuHovered: () => {}, setFocusedItem: () => {}, + debouncedOpenSectionMenu: () => {}, + cancelDebouncedOpenSectionMenu: () => {}, }); const MainNavigationBarDesktopMenuContextProvider = ({ @@ -300,6 +304,7 @@ const MainNavigationBarDesktopMenuContextProvider = ({ const [isMenuOpen, setIsMenuOpen] = React.useState(false); const [menuHeight, setMenuHeight] = React.useState('0px'); const [menuStatus, dispatch] = React.useReducer(menuReducer, 'closed'); + const [debouncedOpenSectionIndex, setDebouncedOpenSectionIndex] = React.useState(-1); // Item that is currently focused inside a section. This state is used to handle pressing // up/down arrows to navigate through the items of a section. @@ -314,41 +319,34 @@ const MainNavigationBarDesktopMenuContextProvider = ({ // Section that is currently being rendered const [openedSection, setOpenedSection] = React.useState(-1); - const closeMenu = React.useCallback(() => { - setIsMenuHovered(false); - setIsSectionHovered(false); - }, []); - // Callback used when a section has been hovered or it's focused arrow has been pressed while it's closed - const setSectionAsActive = React.useCallback( + const openSectionMenu = React.useCallback( (index: number) => { + setDebouncedOpenSectionIndex(-1); if (sections?.[index]?.menu) { setIsSectionHovered(true); setOpenedSection(index); } else { // If the section has no menu, close the current opened one - closeMenu(); + setIsMenuHovered(false); + setIsSectionHovered(false); } }, - [sections, closeMenu] + [sections] ); - // Callback used when a section has been blurred or it's focused arrow has been pressed while it's open - const setSectionAsInactive = React.useCallback( - (index: number, forceCloseMenu?: boolean) => { - if (index === openedSection) { - setIsSectionHovered(false); - - // We may want to close the menu even when menu is hovered, and if so, we should reset isMenuHovered - // (for example, when the current menu is being hovered and we press the arrow from another section) - if (forceCloseMenu) { - setIsMenuHovered(false); - } - } - }, - [openedSection] + const debouncedOpenSectionMenu = React.useMemo( + () => debounce(openSectionMenu, MAIN_NAVIGATION_BAR_MENU_DEBOUNCE_TIME), + [openSectionMenu] ); + const closeMenu = React.useCallback(() => { + setIsMenuHovered(false); + setIsSectionHovered(false); + debouncedOpenSectionMenu.cancel(); + setDebouncedOpenSectionIndex(-1); + }, [debouncedOpenSectionMenu]); + // Close menu when viewport is too small React.useEffect(() => { if (isTabletOrSmaller) { @@ -460,8 +458,17 @@ const MainNavigationBarDesktopMenuContextProvider = ({ openedSection, menuHeight, menuStatus, - setSectionAsActive, - setSectionAsInactive, + openSectionMenu, + debouncedOpenSectionMenu: (index: number) => { + setDebouncedOpenSectionIndex(index); + debouncedOpenSectionMenu(index); + }, + cancelDebouncedOpenSectionMenu: (index: number) => { + if (index === debouncedOpenSectionIndex) { + debouncedOpenSectionMenu.cancel(); + setDebouncedOpenSectionIndex(-1); + } + }, closeMenu, setMenuHeight, setIsMenuHovered, @@ -762,7 +769,6 @@ const MainNavigationBarDesktopMenuContent = ({ // If menu is opening, trigger the fade-in effect for current section if (menuStatus === 'opening') { setIsContentVisible(false); - // TODO: evaluate if we want a delay in here setTimeout(() => setIsContentVisible(true), 0); } else { setIsContentVisible(true); @@ -790,6 +796,9 @@ const MainNavigationBarDesktopMenuContent = ({ onMouseEnter={() => setIsMenuHovered(true)} onMouseLeave={() => setIsMenuHovered(false)} style={{ + // disable pointer events when menu is closing + pointerEvents: + menuStatus === 'closed' || menuStatus === 'closing' ? 'none' : undefined, top: topSpace, maxHeight: `calc(100vh - ${topSpace}px - ${bottomSpace}px)`, overflowY: isMenuContentScrollable ? 'auto' : 'hidden', @@ -883,7 +892,7 @@ const MainNavigationBarDesktopSmallMenu = ({ const columns = section.menu?.columns || []; const customContent = section?.menu?.content; - const {openedSection, setIsMenuHovered, closeMenu} = useMainNavigationBarDesktopMenuState(); + const {openedSection, menuStatus, setIsMenuHovered, closeMenu} = useMainNavigationBarDesktopMenuState(); return (
@@ -894,6 +903,9 @@ const MainNavigationBarDesktopSmallMenu = ({ onMouseEnter={() => setIsMenuHovered(true)} onMouseLeave={() => setIsMenuHovered(false)} style={{ + // disable pointer events when menu is closing + pointerEvents: + menuStatus === 'closed' || menuStatus === 'closing' ? 'none' : undefined, top: topSpace, left: leftPosition, maxHeight: `calc(100vh - ${topSpace}px - ${bottomSpace}px)`, @@ -949,31 +961,43 @@ const MainNavigationBarDesktopSection = ({ const sectionRef = React.useRef(null); const [smallMenuLeftPosition, setSmallMenuLeftPosition] = React.useState(0); const [isMenuControlFocused, setIsMenuControlFocused] = React.useState(false); - const {isMenuOpen, openedSection, setSectionAsActive, setSectionAsInactive} = - useMainNavigationBarDesktopMenuState(); + const { + isMenuOpen, + openedSection, + openSectionMenu, + debouncedOpenSectionMenu, + cancelDebouncedOpenSectionMenu, + closeMenu, + } = useMainNavigationBarDesktopMenuState(); const hasCustomInteraction = touchableProps.href !== undefined || touchableProps.onPress !== undefined || touchableProps.to !== undefined; - const openSectionMenu = React.useCallback(() => { - // Align small menu to left border of the section if it fits. Otherwise, align it to the right border - const getSmallMenuLeftPosition = () => { - const {left, right} = sectionRef.current?.getBoundingClientRect() || {left: 0, right: 0}; - const maxLeftOffset = - (navigationBarRef.current?.getBoundingClientRect().right || 0) - - styles.DESKTOP_SMALL_MENU_WIDTH; - - return left <= maxLeftOffset ? left : right - styles.DESKTOP_SMALL_MENU_WIDTH; - }; - - if (desktopSmallMenu) { - setSmallMenuLeftPosition(getSmallMenuLeftPosition()); - } + const openCurrentSectionMenu = React.useCallback( + (withDebounce?: boolean) => { + // Align small menu to left border of the section if it fits. Otherwise, align it to the right border + const getSmallMenuLeftPosition = () => { + const {left, right} = sectionRef.current?.getBoundingClientRect() || {left: 0, right: 0}; + const maxLeftOffset = + (navigationBarRef.current?.getBoundingClientRect().right || 0) - + styles.DESKTOP_SMALL_MENU_WIDTH; + + return left <= maxLeftOffset ? left : right - styles.DESKTOP_SMALL_MENU_WIDTH; + }; + if (desktopSmallMenu) { + setSmallMenuLeftPosition(getSmallMenuLeftPosition()); + } - setSectionAsActive(index); - }, [desktopSmallMenu, index, setSectionAsActive, navigationBarRef]); + if (withDebounce) { + debouncedOpenSectionMenu(index); + } else { + openSectionMenu(index); + } + }, + [desktopSmallMenu, index, openSectionMenu, debouncedOpenSectionMenu, navigationBarRef] + ); React.useEffect(() => { const handleKeyDown = (e: KeyboardEvent) => { @@ -982,7 +1006,7 @@ const MainNavigationBarDesktopSection = ({ case DOWN: if (isMenuControlFocused) { cancelEvent(e); - openSectionMenu(); + openCurrentSectionMenu(); } break; @@ -990,7 +1014,7 @@ const MainNavigationBarDesktopSection = ({ case UP: if (isMenuControlFocused) { cancelEvent(e); - setSectionAsInactive(index, true); + closeMenu(); } break; @@ -1003,17 +1027,17 @@ const MainNavigationBarDesktopSection = ({ return () => { document.removeEventListener('keydown', handleKeyDown, false); }; - }, [index, isMenuControlFocused, openSectionMenu, setSectionAsInactive, menu, hasCustomInteraction]); + }, [index, isMenuControlFocused, openCurrentSectionMenu, closeMenu, menu, hasCustomInteraction]); const isSectionMenuOpen = isMenuOpen && openedSection === index; const menuButtonOnPress = React.useCallback(() => { if (isSectionMenuOpen) { - setSectionAsInactive(index, true); + closeMenu(); } else { - openSectionMenu(); + openCurrentSectionMenu(); } - }, [isSectionMenuOpen, setSectionAsInactive, openSectionMenu, index]); + }, [isSectionMenuOpen, openCurrentSectionMenu, closeMenu]); const getSectionInteractiveProps = React.useCallback( (touchableProps: InteractiveProps) => { @@ -1037,9 +1061,8 @@ const MainNavigationBarDesktopSection = ({ [styles.desktopMenuFirstSection]: isFirstSection, [styles.desktopMenuLastSection]: isLastSection, })} - // TODO: debounce this! - onMouseEnter={openSectionMenu} - onMouseLeave={() => setSectionAsInactive(index)} + onMouseEnter={() => openCurrentSectionMenu(true)} + onMouseLeave={() => cancelDebouncedOpenSectionMenu(index)} onFocus={() => { if (menu && !hasCustomInteraction) setIsMenuControlFocused(true); }} @@ -1155,6 +1178,56 @@ const MainNavigationBarContentWrapper = ({ ); }; +const MainNavigationBarDesktopSections = ({ + sections, + selectedIndex, + navigationBarRef, + variant, + isLargeNavigationBar, + desktopSmallMenu, +}: { + sections: ReadonlyArray; + selectedIndex?: number; + navigationBarRef: React.RefObject; + variant: Variant; + isLargeNavigationBar: boolean; + desktopSmallMenu: boolean; +}): JSX.Element => { + const {openSectionMenu, openedSection, closeMenu} = useMainNavigationBarDesktopMenuState(); + + return ( + // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions + + ); +}; + export const MainNavigationBar = ({ sections = [], selectedIndex, @@ -1178,28 +1251,16 @@ export const MainNavigationBar = ({ const navigationBarRef = React.useRef(null); const setModalState = useSetModalState(); - const renderDesktopSections = () => { - return ( - - ); - }; + const desktopSections = ( + + ); const openMenu = () => { setIsBurgerMenuOpen(true); @@ -1249,12 +1310,12 @@ export const MainNavigationBar = ({ )}
{logoElement}
- {!hasBottomSections && renderDesktopSections()} + {!hasBottomSections && desktopSections}
{hasBottomSections && ( - {renderDesktopSections()} + {desktopSections} )} From 0ac5085ad8f372d09e62a4531adaabbd9efec185 Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Tue, 5 Nov 2024 15:28:40 +0100 Subject: [PATCH 48/62] fix tests --- src/__tests__/main-navigation-bar-test.tsx | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/__tests__/main-navigation-bar-test.tsx b/src/__tests__/main-navigation-bar-test.tsx index 9fca9f992..12f131f42 100644 --- a/src/__tests__/main-navigation-bar-test.tsx +++ b/src/__tests__/main-navigation-bar-test.tsx @@ -91,12 +91,15 @@ test('MainNavigationBar section with interaction is accessible', async () => { // Open second section's menu await userEvent.hover(secondSectionButton); - expect(firstSectionMenuButton).toHaveAttribute('aria-expanded', 'false'); - expect(secondSectionButton).toHaveAttribute('aria-expanded', 'true'); - // Second section should be visible, while first one shouldn't - expect(screen.getByText('item 2-1')).toBeInTheDocument(); - expect(screen.queryByText('item 1-1')).not.toBeInTheDocument(); + await waitFor(() => { + expect(firstSectionMenuButton).toHaveAttribute('aria-expanded', 'false'); + expect(secondSectionButton).toHaveAttribute('aria-expanded', 'true'); + + // Second section should be visible, while first one shouldn't + expect(screen.getByText('item 2-1')).toBeInTheDocument(); + expect(screen.queryByText('item 1-1')).not.toBeInTheDocument(); + }); // Close the menu with ESC key await userEvent.keyboard('{Escape}'); @@ -136,7 +139,10 @@ test('MainNavigationBar menu closeMenu callback closes the menu', async () => { // Open the menu const sectionButton = await screen.findByRole('button', {name: 'section 1, Abrir submenú'}); await userEvent.hover(sectionButton); - expect(sectionButton).toHaveAttribute('aria-expanded', 'true'); + + await waitFor(() => { + expect(sectionButton).toHaveAttribute('aria-expanded', 'true'); + }); // Close the menu with the closeMenu callback const closeButton = await screen.findByRole('button', {name: 'Close menu'}); From 530e714fdf069abd29afc099b0b04410ee3edc2d Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Tue, 5 Nov 2024 17:16:44 +0100 Subject: [PATCH 49/62] fix hover area of sections --- src/navigation-bar.css.ts | 20 +++++++++-- src/navigation-bar.tsx | 74 +++++++++++++++++++++++++-------------- 2 files changed, 65 insertions(+), 29 deletions(-) diff --git a/src/navigation-bar.css.ts b/src/navigation-bar.css.ts index 2e829da01..1581b038d 100644 --- a/src/navigation-bar.css.ts +++ b/src/navigation-bar.css.ts @@ -256,16 +256,15 @@ export const desktopOnly = style({ export const navigationBarContentRight = style([ sprinkles({ display: 'flex', - flex: 1, alignItems: 'center', justifyContent: 'flex-end', }), { - paddingLeft: 136, height: NAVBAR_HEIGHT_DESKTOP, '@media': { [mq.tabletOrSmaller]: { paddingLeft: 24, + flex: 1, height: NAVBAR_HEIGHT_MOBILE - borderWidth, }, [mq.desktopOrBigger]: { @@ -277,6 +276,16 @@ export const navigationBarContentRight = style([ }, ]); +export const navigationBarContentRightExpanded = style([ + navigationBarContentRight, + sprinkles({ + flex: 1, + }), + { + paddingLeft: 136, + }, +]); + const spacerMobile = style({ '@media': { [mq.tabletOrSmaller]: { @@ -331,13 +340,17 @@ export const mainNavbarContent = sprinkles({ alignItems: 'center', }); +export const mainNavBarSectionsContainer = style([ + sprinkles({display: 'flex', flex: 1}), + {minWidth: 'fit-content'}, +]); + export const logoContainer = style([ sprinkles({ display: 'flex', justifyContent: 'center', }), { - marginRight: 48, '@media': { [mq.tabletOrSmaller]: { marginRight: 0, @@ -348,6 +361,7 @@ export const logoContainer = style([ export const burgerMenuButton = style({ marginRight: 24, + width: 'fit-content', '@media': { [mq.desktopOrBigger]: { display: 'none', diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index 8004df2ab..c016b256d 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -105,17 +105,28 @@ type NavigationBarContentContainerProps = { right?: React.ReactNode; children?: React.ReactNode; desktopOnly?: boolean; + expandRightContent?: boolean; }; const NavigationBarContentContainer = React.forwardRef( - ({right, children, desktopOnly}, ref) => { + ({right, children, desktopOnly, expandRightContent}, ref) => { return (
{children} - {right &&
{right}
} + {right && ( +
+ {right} +
+ )}
); } @@ -155,7 +166,7 @@ export const NavigationBar = ({ }: NavigationBarProps): JSX.Element => { const {texts, t} = useTheme(); const content = ( - + {onBack && ( ; selectedIndex?: number; navigationBarRef: React.RefObject; variant: Variant; + hasRightContent: boolean; isLargeNavigationBar: boolean; desktopSmallMenu: boolean; }): JSX.Element => { @@ -1198,7 +1211,11 @@ const MainNavigationBarDesktopSections = ({ return ( // eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions
From 638fa0555e02eed92dc800164959399b1216faa7 Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Wed, 6 Nov 2024 11:55:32 +0100 Subject: [PATCH 56/62] update chevron --- src/navigation-bar.tsx | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index 269d07b33..3b1cfd0ec 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -36,10 +36,19 @@ import {debounce, isEqual} from './utils/helpers'; import type {ExclusifyUnion} from './utils/utility-types'; import type {Variant} from './theme-variant-context'; import type {TouchableProps} from './touchable'; -import type {DataAttributes, HeadingType} from './utils/types'; +import type {DataAttributes, HeadingType, IconProps} from './utils/types'; const MAIN_NAVIGATION_BAR_MENU_DEBOUNCE_TIME = 120; +const MenuSectionArrow = ({size = 24, color = vars.colors.neutralHigh, style, className}: IconProps) => ( + + + +); + const BurgerMenuIcon = ({isOpen}: {isOpen: boolean}) => { return (
@@ -1173,12 +1182,15 @@ const MainNavigationBarDesktopSection = ({ style={{ pointerEvents: isMenuControlFocused ? 'auto' : 'none', opacity: isMenuControlFocused ? 1 : 0, + // We are using the same chevron as in ButtonLink, and that svg has + // some extra space on the left that we want to ignore in this case + marginTop: -2, }} > - From 7e2958978216159dc524896f255e3a685f510848 Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Wed, 6 Nov 2024 15:54:18 +0100 Subject: [PATCH 57/62] make small menu default --- playroom/snippets.tsx | 146 +++++++++--------- .../navigation-bar-screenshot-test.tsx | 4 +- src/__stories__/main-navigation-bar-story.tsx | 12 +- src/navigation-bar.tsx | 48 +++--- 4 files changed, 105 insertions(+), 105 deletions(-) diff --git a/playroom/snippets.tsx b/playroom/snippets.tsx index 31f5b22d7..5f439b001 100644 --- a/playroom/snippets.tsx +++ b/playroom/snippets.tsx @@ -2436,11 +2436,84 @@ const navigationBarSnippets = [ } />`, }, + { + group: 'NavigationBar', + name: 'MainNavigationBar with menu', + code: ` + ({ + onPress: () => setState("index", idx), + title, + menu: + title === "Start" + ? { + columns: [ + { + title: \`\${title} 1\`, + items: [ + { + title: "item 1", + onPress: () => {}, + }, + { + title: "item 2", + href: "https://www.google.com/", + }, + { + title: "item 3", + to: "#", + }, + ], + }, + ], + } + : title === "Account" + ? { + columns: [ + { + title: \`\${title} 1\`, + items: [ + { + title: "item 1", + onPress: () => {}, + }, + ], + }, + ], + } + : title === "Explore" + ? { + columns: [ + { + title: \`\${title} 1\`, + items: [ + { + title: "item 1", + onPress: () => {}, + }, + { + title: "item 2", + href: "https://www.google.com/", + }, + { + title: "item 3", + to: "#", + }, + ], + }, + ], + } + : undefined, + }))} + selectedIndex={getState("index", 0)} + />`, + }, { group: 'NavigationBar', name: 'MainNavigationBar with large menu', code: ` ({ onPress: () => setState("index", idx), title, @@ -2581,79 +2654,6 @@ const navigationBarSnippets = [ selectedIndex={getState("index", 0)} />`, }, - { - group: 'NavigationBar', - name: 'MainNavigationBar with small menu', - code: ` - ({ - onPress: () => setState("index", idx), - title, - menu: - title === "Start" - ? { - columns: [ - { - title: \`\${title} 1\`, - items: [ - { - title: "item 1", - onPress: () => {}, - }, - { - title: "item 2", - href: "https://www.google.com/", - }, - { - title: "item 3", - to: "#", - }, - ], - }, - ], - } - : title === "Account" - ? { - columns: [ - { - title: \`\${title} 1\`, - items: [ - { - title: "item 1", - onPress: () => {}, - }, - ], - }, - ], - } - : title === "Explore" - ? { - columns: [ - { - title: \`\${title} 1\`, - items: [ - { - title: "item 1", - onPress: () => {}, - }, - { - title: "item 2", - href: "https://www.google.com/", - }, - { - title: "item 3", - to: "#", - }, - ], - }, - ], - } - : undefined, - }))} - selectedIndex={getState("index", 0)} - />`, - }, { group: 'NavigationBar', name: 'FunnelNavigationBar', diff --git a/src/__screenshot_tests__/navigation-bar-screenshot-test.tsx b/src/__screenshot_tests__/navigation-bar-screenshot-test.tsx index d9fe83655..0a6a0f907 100644 --- a/src/__screenshot_tests__/navigation-bar-screenshot-test.tsx +++ b/src/__screenshot_tests__/navigation-bar-screenshot-test.tsx @@ -175,7 +175,7 @@ test.each` const page = await openStoryPage({ id: 'components-navigation-bars-mainnavigationbar--default', device: 'DESKTOP', - args: {sections: true, desktopSmallMenu: menuType === 'small', menu: content}, + args: {sections: true, desktopLargeMenu: menuType === 'large', menu: content}, }); // first section opened @@ -221,7 +221,7 @@ test.each(['large', 'small'])('MainNavigationBar inverse with %s menu in DESKTOP const page = await openStoryPage({ id: 'components-navigation-bars-mainnavigationbar--default', device: 'DESKTOP', - args: {sections: true, desktopSmallMenu: menuType === 'small', menu: 'default', variant: 'inverse'}, + args: {sections: true, desktopLargeMenu: menuType === 'large', menu: 'default', variant: 'inverse'}, }); // first section opened diff --git a/src/__stories__/main-navigation-bar-story.tsx b/src/__stories__/main-navigation-bar-story.tsx index 97a3179f7..1d632883f 100644 --- a/src/__stories__/main-navigation-bar-story.tsx +++ b/src/__stories__/main-navigation-bar-story.tsx @@ -32,7 +32,7 @@ type Args = { large: boolean; sections: boolean; menu: 'undefined' | 'default' | 'custom'; - desktopSmallMenu: boolean; + desktopLargeMenu: boolean; }; export const Default: StoryComponent = ({ @@ -42,7 +42,7 @@ export const Default: StoryComponent = ({ large, sections, menu, - desktopSmallMenu, + desktopLargeMenu, }) => { const [selectedIndex, setSelectedIndex] = React.useState(0); const {isDesktopOrBigger} = useScreenSize(); @@ -60,7 +60,7 @@ export const Default: StoryComponent = ({ large={large} withBorder={border} burgerMenuExtra={burgerMenuExtra ? : undefined} - desktopSmallMenu={desktopSmallMenu} + desktopLargeMenu={desktopLargeMenu} sections={ sections ? sectionTitles.map((title, idx) => ({ @@ -73,7 +73,7 @@ export const Default: StoryComponent = ({ ? { title: `${title} menu`, columns: Array.from( - {length: desktopSmallMenu ? 1 : 2}, + {length: desktopLargeMenu ? 2 : 1}, (_, columnIndex) => ({ title: `${title} ${columnIndex + 1}`, items: Array.from( @@ -129,7 +129,7 @@ Default.args = { large: false, sections: true, menu: 'undefined', - desktopSmallMenu: false, + desktopLargeMenu: false, }; Default.argTypes = { @@ -142,5 +142,5 @@ Default.argTypes = { control: {type: 'select'}, if: {arg: 'sections'}, }, - desktopSmallMenu: {if: {arg: 'sections'}}, + desktopLargeMenu: {if: {arg: 'sections'}}, }; diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index 3b1cfd0ec..907749285 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -270,7 +270,7 @@ type MainNavigationBarProps = { withBorder?: boolean; burgerMenuExtra?: React.ReactNode; large?: boolean; - desktopSmallMenu?: boolean; + desktopLargeMenu?: boolean; }; type MainNavigationBarMenuStatus = 'opening' | 'opened' | 'closing' | 'closed'; @@ -566,11 +566,11 @@ const MainNavigationBarDesktopMenuContext = React.createContext; - isSmallMenu?: boolean; + isLargeMenu?: boolean; }): JSX.Element => { const {isTabletOrSmaller} = useScreenSize(); const [isMenuOpen, setIsMenuOpen] = React.useState(false); @@ -637,7 +637,7 @@ const MainNavigationBarDesktopMenuContextProvider = ({ React.useEffect(() => { const menuAnimationDuration = - isRunningAcceptanceTest() || isSmallMenu ? 0 : styles.DESKTOP_MENU_ANIMATION_DURATION_MS; + isRunningAcceptanceTest() || !isLargeMenu ? 0 : styles.DESKTOP_MENU_ANIMATION_DURATION_MS; let id: NodeJS.Timeout; @@ -651,7 +651,7 @@ const MainNavigationBarDesktopMenuContextProvider = ({ } return () => clearTimeout(id); - }, [isMenuOpen, isSmallMenu]); + }, [isMenuOpen, isLargeMenu]); React.useEffect(() => { // reset openedSection when the menu has been closed @@ -1012,7 +1012,7 @@ const MainNavigationBarDesktopSection = ({ navigationBarRef, variant, isLargeNavigationBar, - desktopSmallMenu, + desktopLargeMenu, }: { section: MainNavigationBarSection; index: number; @@ -1022,7 +1022,7 @@ const MainNavigationBarDesktopSection = ({ navigationBarRef: React.RefObject; variant?: Variant; isLargeNavigationBar: boolean; - desktopSmallMenu?: boolean; + desktopLargeMenu?: boolean; }): JSX.Element => { const {texts, t} = useTheme(); const {title, menu, ...touchableProps} = section; @@ -1054,7 +1054,7 @@ const MainNavigationBarDesktopSection = ({ return left <= maxLeftOffset ? left : right - styles.DESKTOP_SMALL_MENU_WIDTH; }; - if (desktopSmallMenu) { + if (!desktopLargeMenu) { setSmallMenuLeftPosition(getSmallMenuLeftPosition()); } @@ -1064,7 +1064,7 @@ const MainNavigationBarDesktopSection = ({ openSectionMenu(index); } }, - [desktopSmallMenu, index, openSectionMenu, debouncedOpenSectionMenu, navigationBarRef] + [desktopLargeMenu, index, openSectionMenu, debouncedOpenSectionMenu, navigationBarRef] ); React.useEffect(() => { @@ -1196,17 +1196,17 @@ const MainNavigationBarDesktopSection = ({
)} - {desktopSmallMenu ? ( - ) : ( - )} @@ -1223,7 +1223,7 @@ const MainNavigationBarDesktopSections = ({ variant, isLargeNavigationBar, hasRightContent, - desktopSmallMenu, + desktopLargeMenu, }: { sections: ReadonlyArray; selectedIndex?: number; @@ -1231,7 +1231,7 @@ const MainNavigationBarDesktopSections = ({ variant: Variant; hasRightContent: boolean; isLargeNavigationBar: boolean; - desktopSmallMenu: boolean; + desktopLargeMenu: boolean; }): JSX.Element => { const {openSectionMenu, openedSection, closeMenu} = useMainNavigationBarDesktopMenuState(); @@ -1264,7 +1264,7 @@ const MainNavigationBarDesktopSections = ({ variant={variant} section={section} isLargeNavigationBar={isLargeNavigationBar} - desktopSmallMenu={desktopSmallMenu} + desktopLargeMenu={desktopLargeMenu} /> ))} @@ -1279,11 +1279,11 @@ const MainNavigationBarDesktopSections = ({ const MainNavigationBarContentWrapper = ({ children, isLargeNavigationBar, - desktopSmallMenu, + desktopLargeMenu, }: { children: React.ReactNode; isLargeNavigationBar: boolean; - desktopSmallMenu: boolean; + desktopLargeMenu: boolean; }): JSX.Element => { const {menuHeight} = useMainNavigationBarDesktopMenuState(); const topSpace = isLargeNavigationBar ? NAVBAR_HEIGHT_DESKTOP_LARGE : NAVBAR_HEIGHT_DESKTOP; @@ -1292,7 +1292,7 @@ const MainNavigationBarContentWrapper = ({
{ const {texts, t} = useTheme(); const menuId = React.useId(); @@ -1336,7 +1336,7 @@ export const MainNavigationBar = ({ variant={variant} hasRightContent={!!right} isLargeNavigationBar={hasBottomSections} - desktopSmallMenu={desktopSmallMenu} + desktopLargeMenu={desktopLargeMenu} /> ); @@ -1361,12 +1361,12 @@ export const MainNavigationBar = ({ variant={variant} dataAttributes={{'component-name': 'MainNavigationBar'}} > - {!desktopSmallMenu && ( + {desktopLargeMenu && ( )} + {!isTabletOrSmaller ? ( mainNavBar ) : ( From 0e749dcb23c8b9b709ad36764d8bb596c03c8537 Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Wed, 6 Nov 2024 16:02:18 +0100 Subject: [PATCH 58/62] fix screenshots --- ...d-default-content-in-mobile-ios-1-snap.png | Bin 43635 -> 35006 bytes ...d-default-content-in-mobile-ios-3-snap.png | Bin 37200 -> 32125 bytes 2 files changed, 0 insertions(+), 0 deletions(-) diff --git a/src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-menu-and-default-content-in-mobile-ios-1-snap.png b/src/__screenshot_tests__/__image_snapshots__/navigation-bar-screenshot-test-tsx-main-navigation-bar-with-menu-and-default-content-in-mobile-ios-1-snap.png index 3fca82036fd9fb7ebfa6ac3304bdc5d838931a9f..569adf6b430948fc6d3b07f02795e2a2a8a9899e 100644 GIT binary patch literal 35006 zcmeFY!2F;PS;X4?{tDjUp!{q2ZZ%u;P)aao+ZDGAC%Ycwu-m znasxYI^LS)!}K3jRkNlE>z_@R^s2vi=$o#4$)^-!JrfL~tfvzx^j}1wqcORoF=H{bXM1_y=#SM8P;bu@HcKzXMg=7mBQ^39YCMJGAf zLN{$`vf-7{)Y_Bhz_rT>hM6w$MMK9|JuS&Fk}aNNJ$<=}k)}mFt4yqmhlv=Gtl?@Z887NS(qA8-1QX+ZH33aEU zX?^;f$eIL^KY^C9FoIU@g$Htf|7XCHXqzWjV(&QdB9lKOV+z9qDt{T8Nk@YfHv;^V zjwcfImmSD3;$-utT#{BLx(tC?+#);`iIJk6psi&P(~&sOrm^ubS<|;gUFE>--l&wf zx3$u!=2I?fG+ri>KH-&PGg5$Dv1ngdZqb+89u;_91 zR#=kc>;BlVcbv@H6C9!xsqm@!L(9^Zl*$--vtKSt1Kn;`o$8WTdhE-J7WGv66(;ka zRz&*p$m#5B_;$h zZP8~{E2s(dBrk(U{8gRl#ET(^8|jR4ZUiFrct~VkrP6)>*FobQ+t+NrDnrC8=ebP9 z7>}&dJ#js!6qVp@V!lX^ym-TTsp3w}~hEC@y-v1gcnq<&q5G^;*=+}j49r4$qP1A|8c@>3Jv}(9u zSuxPkW@C&B5B?=#-K};iq0R_ZS4IEext!{5yynX`+VMPgRi(@DCUY;ZKMkUR7-+ug z%3ijXu!(0Tt#e3-2@4ze)>xi#-Q+)!VJK9uPI`D;ho>OE%pLu`rQ&^~LiXg#MS|L) zcJY|fNNx`cN&XReDJikTR_oH?J}z3*k3Es7VHJjJ@ck^RmS#IPXKNdm;xopYlv$7W zwfs$oLEdZ`gt;7f-r~ThGk2D-vaI{H2QIa)@@rnlMmyHAw=Tl>Ga$V&`czc?xy9Ar z(~ITF$;oBk5z%d8zX%ryF(nK)e~uH1^;Gglk0}oFywLaoRVR67O8tlj-D9^B7}eYT zO%^r`uQ!9HI0@3rTQJfEG;vuK6uv8=7F z9kuBIl#qQ@b@kp0kbY57*;_sB{;=oo=+vBM%XDSj-SLT&TEhD&-VdYj63jufU`3^J2xNHudXFH|cvtcifZ z#7E(V+j;SF-EmkM@(qNzKgfja-lL;?X&jWBKntSCLV|5lx3*z5PCcK7hCQID1*Rrx z^b^*J)_#dPem_lre*#7|T0ffc{*`F*=EhsBr?=0;?>H59iG`|9YUp>JG|d{4;kZYa zrF+dv;<2lLiUB`7dCBVS!+0rjMaJv4`=A{~siinr`K8_aUN;e!89qHf8q|`MqEJj^ zhS#{a#@Kx2i^4?X{c|XkdjD8QYZdG~zDl;d|JBy>E{RmP?o?8%%s|pYlNW<9{6`o= z{PZ;3Wb{Vm{lIX~-`C)<1ZPT?;a|=5ArV7NF9zwfI6iO?zJ7`Ir3Jsh<~i1ntMx1o zESYXakyF_hc-TW82kQgB3tsH@u8HudI;QZod{qU7YS&fhY4i^ml<4oRD*R@P92P=k z_xP3lsb!36PTVR!i4T)CzBpEgRIYDJkHY1$KMMK4vm19#Bd=$a)(+$6szPuNj_c4m z5Ue*3$ag3jBF7%?ckp|*34ATun|S4O8HAjsC1xX=B=}VxI8S-p2;Uu75Z(t z0@Od20MNj1d35dCGBW8rz4<-DSnqH0p>QLzOQxv21lqpjKb>2pG&OSO3`uu?dH&4U z<_HD1>BQ%ykt3e~n{a>+fo4EJwWNy;o9&`1>(0EsonA+B{!vHI&S<`GqwhQ3b5(<- zT(P*4?AXzm0v71s>8Ps`@8TQuChu?J1M#&cKn`y*_{E!LF}BgfKn`X#mo~dBLWt~ z9gm!?x&9fs=v($2oBN<%e;~{235tbyOV&-ps_l7`y9Mt&=;4#^R(C&#vkOX?6m8p= z8Na(l-qr?lPJKQH)BXCg){ZmD;;;LaBYh;%QR<3xYV*;O_R1vZczA!I*dKFWFXR%+ zEp_pTsMSYW1=^(U4&(lDkR`;`d5T7|VS+MTJuo=*>rYN#g0fheS&T6Fv%n8i3^Gx7 z%AiPLZTcC*+D$gh^W#O&6m)2>1*3mcEjXia+jY?MnLN?Ti$zqUwTZfIegNjt%=zDa zA!$8hHwy50qPS~or0UkSqGw*IoNs=pQpZA{e) z%&{TlQpz+ToI_NCGD1AR>(I)%)BT(vTLdljAzIJqHK*t-mI6a9^yuQT6<ZrVBaVxg;!uT@Li!3}GkQ5sBxvt{}V%^+c6 z=1ENEcWQEbW}LsO1j40o=G>eNDVAJh3*u8To+>2-nr?1x#2bNP7}QcRc2OM2dFT@8 zUSQiT<-P&aCdrH2x3HyR6qp`QL=Y_0no@;(QqI-sHdyk8OZ_Tb1N&L`8sb~~+r*Em zHVpT--5**PDp-;vD}B5alyf6t5;EwiZO&^%~egXahKya`XvO6fYXVk*2Aho;ra4CjXnj zm-`uo0i4692kGCRRjqIPS$!xhcs-3J3B;Eq`AYY58A?ts`HHK+DJf>S^9R7iHN0_q zfEJ{-RJ#;rinX$>O4lrOObQh)83W0McVYa7&t9g2aO0jm*{4wLm6pZTl0#8Ldc@%3 zjK;yDoP`BCvsU>g^qk_)pYnHLS4RVaVXi?O^v-u}daJRox93v}zJZqhCdg6F^**JX zLnjcK>-vfdlUwRLpNt7cd(++ZI@xBUne9X>UW!Xvl2*A^>=WSODfmHOmUh(0zwA07 z_J6Am)q@TvF0CEfpTXxw+k=+F8658pgj;+^_AS>YEX*#5pUJlz+5TD*`%_pO#Jn>j z7h~1zWUtiRJen64b|r(b=N{Is*gqENS_eDW_sFQw9}UCYzZy}+U2ePRm)7%VtE+_Z z|J7;nMn9i;FFfr2SzTRH2}I>qTGj-m9IB>I z^Sk_wGKlAsAB(a`8Xbws`bI3#AT7J_MmRK2d3c*PL-eorTVW`kSA$lKcLhgo-qC)& zr#LP83aVe@spmR0``1)J4?8jN<;2D1Tu(dz&b1ZLa3{^J8TN@1hz&*XQV|?6P+h)? z7CYrYx$(P{SKH^S_xke!`Dgj zFL0hZ+Qr;>N_tDLI5~-uF4b3oD5ki=3+)s!OZ%caqM;_~^dYcKZ+b8+ju=0#7PPlV zRsB|iWvcVs;E5K>Fc)?zecb0C)~(-kN>Tfr2BM^NntajU{r(h}ln`V=E>PcdQKnBO z`1PzSph&XQqw8*On0@HSr3_ep&fkrvl^@7)QVcmt5JU%($sWg*`4>8$)6G?Ni&rqY zS604pWjt@9=T{ltIEd%qm5bR=o<14bK}&h!cGk%V%mc+IeC803l&Y&N0-f72Oe$)t zi)HbXy|p8=NmD2a84rwPsJsb0eG_HKJEMi(A8q-$CK>>?XIEc+Bqe`FWta9M449ah z7j)a7E!8{Og(e=x%F;VgVR9TF9~830 z(me#1O8)&z_{1fiFWIs~$F7gY+^oeD51Ah1YVO@6Vr=>=(x|x@G2CTvs)kp>23Ilt z1IoT9P0C-S`cp`NeR?^C!&RY5#^rfd`-IKEYA0s{NMps?(o=>N#Vx-U_T9`JJ#;%b zT%)2PNlmwQKKou)yzkhUwb%EGQOp|25p1Znejp2%YTm9}{B5^SLfPN-b=gx-+gOD* zu3XzemJV3^IfUcNnY_2Uu#9X<1&^QZdLx^O2^k3(X2Dm!=>Gll`wv?06({8ye*9!m z`|y|0Wcd!ZJdjnPUoa2x=lFTOp} zb^$EEW>}RSy-mJtFq2;+F_x*LSwJ`he-%hJVf!ORm4~MhVE5#kn0iO0M5E(O-9=Rh(&;j2TL8soM^1K)J=)joa#{puAmn+ObHcd&Z&Ooz1R38p3YHZ6+E!JUKo281}yM)A)lsIKLM)^J=E>Br1fAZh; zb-v_Ix)+Sc1|O5Q1_l_>GWF_Ss$o*fU%up4u zrR5eF4f?yBsK{S9@ueic2>;=<+(&>5RsgwKK$pFf9fE{w#ao$cFYSTM)Mck;rmXx- zn?ckvfDj7SJS+iqSgOrRXb;z=1H2ScJvCd#->gV(x1P$7%hFat$oI?~1ClkhfwJ~; z9us)-%SX`x=McqWseWBZ*{snW8zbn)$BjO<)V^alPx&t&YB2QkOKgs6W9p!4+LzMb ze*|H?>3MD5D8&*}X<vOc&RSUCYi0{KkI)$Ea$iwo_2sf5QlVSW z(i)qc9NiW2VZXx*-1nN+(7ycVgDJ+EWK&*d!Hsix=<;XC{Gz^*r577foT^G`{>ceT z_EOE*VD>&J=QIdoPH_kxZ4(hTP&km-(~r1m8P;j{W`$)6)eQGVNzvx16_FfbWISml zEn}#+#s+fuzYA5*3fa;Z2FNLe$(h+nZ3jM77f?xGj6k{F4o1XAw=INnEY78lRq;axP_P=4Kq_d##q)tryX|6Lk zFf!yfB?E3=B#*c`-;cX23qJ}HrW65IvB6j+B@{^G-I_yhcoV7@TQ>k^$2{N>J##jC zv{G%|KMj(2@(l$b?xv{FC(n-rt+M3DbPMZ!6o;z;2CmIAsjVqQhlMJH0+yVVG2o=6PH5t+fX%YsqV>}B2ToW^WD)RHu|_637)uL zT~2ad)YQAwN9%D^_!~{sa{X^ibbkb)mYSeI&dGkq2;@L-bFRJ&64{$jAG|D zdh^>|)B1=y*=LP;I48^S9Nl`1V4bzJULaJ^UB><(=2RaP;YE>8dBFLLH-3{}O zX$vN4MurV6CEB6qJDYe_Bra}Lp#Wbp#LUF)b{JwBON75cPOtBtJau%K!rAt6zu_RK zwE)~&DeYvGs=*||vK{M)dytd1nv;HdY~YB8*25zw$d+vLh3u1MO%ar=F*?*HEj8rZ zxA0Jjq4R+;{HcKT51qDJ)zI%&@rtew;fI)0h2Mn_C{{Dx*Lt)C*F?M@R6241>l$ z$Z?Ra^OPJ`OFLX@Ky*j4*VI%;B!UvEr>HFYaGBPxs)E9`wbdGIg_BL!>4<(ZjTAft z-t+L#%{Ttej73MCdK*jhtNBfuQPrhLX5al0fW+|8<>;m|Gz|IM-tcV;tPAWqFtP-h zbIH9Xdkye0--0l{=xSMlcOeSYgXR!S4`Yuc8-fns7w3_3cTdvBSGVrdycB6B5g8_* zw$k@rzNMu#Eby{Q8(kV|-sauusKpAD3yrdM`loI@)oS<~<|Wl_N(p((&Y$v`L#k80 zBD$sMrNl5T*;qG1v3rBXZm#zU-%)vfJV%{*?kUCq^%j*&1k!x+)8((Urb1_LXE_D6NMU73Q~Osts2 zOf^flL}Y28^n5ketHAxuX2$q%jRMS;rP3Wy!!PEWjnt^aUp}Zlw*or}^-~A=V>TP7`tn(Gxm)t%DPazW>9 zTJPapBpo%i!~NyuWoEtUXMJ-u9pi3?^gh33wfNlXc*#OSVQHxagJE&+8p|bBAMS7W zqZ(uv`J9&C#3^#wn{%R7e=-qb#CUo3+wm_JM$*qO+6!8l&%Hd02qmWe;yzuV0_BLA z64l~sl`U^|gH=Uw0ZO$8U^=sbuCJT{Mmvpai3Z^D_^6jk8XvuA0 zXsjTol8_^Prh(tRlN0y*#^;ze2c;V+CP5u*ha>Egc)p^wd+|9SeMS0}a+o`g=7AR| z7grr{@ZHBXjXgzox-mk0Kk=2JkiEmpL3vn^YugpLmm7k3 z&+^{nZ{?fD&SO+`MKbm7)CsfW7uX+ly##oPrw>-6QX;rbI#F<(T^y-Wbe0R6`95)3 z5LGFDL`?{@c!B$2fQOvG{mC#7mJUg-3Ca`?HqV6%KSj%!xs}!P@E_cWuX=7C6be2c zCD1RGZTC0iagGi>a$dxZs$K?`%mCTIZrse?#cTu3$biVBKqE)fJzXo|=3hg6I#yg> zHoTQuE|OH&K+fUF;q%1D8_H0QMvY6x5%`uqnt@$7vQ+kmEvZ7m=&}q z%b$kk=YmpOa_~t?>ZZPiBIq3C@-S^t0@q%-Qb0L%acMmGt_$EK2Q86SIzuyflPCCF zXy}|y5H(Kld&XCTTj9`uYwX#cEJLTf`K>ki-;rx;BSgb<>Ux^}7p(g8?e^ z?J!h~J51bziA#K6%H<`B#frsU|OCVTrW?Q?hQGoxE^N z9|Ax{n}S|sw9EM014}xjo`uo#WGABlFo9xsIt4k|DfoU-<9E z8>?nl&;T3)jWiaC(zVKx8+S?d>a#I$yphZF*Won7+)|%pCty$e;v>zwea`vyh1_Pn zWDs;R*4Z)h>;vi)ok_X?wG8OB!Vz4<;^Eo z944n&nD%5|=ah3%O-_ujng=kHe(m|HfT`bRWZ=He7ZGbu;MLt)T%JCOnziz6-9Kl| zNveEd11ODG zmqn+W92$k)xO+-E*W)giogSeugx-&?NQ8^o!_A3H{>%lJWtff(H$EdgFI#FrRR@n&ySMLa0aXCU`$MWDg?n+P%WMgdFH7-SzBm8r1zMAMPUpRHx8MkVT?B ztF4E_WxQ$cPfD$2n7%mm!0F|hLKkG(oC*WKh)K%T>rTV16;RkYRS^noR;&&{rq zRcxUyGAwS@3g%5+4~=&fiB}eCEfkS$GJVejFC%XVQ%MVT;-zG&_f1x3K~=M z^4^}PHJnWK7dx3RX6hpWRWS*dxnN73x>NY;W?oULe%p7?)^7#QiD%vd>-hoo&Irc? z0XJdy%97%cZQ+uzW;ThQF83~X5w-HjeQ!Fdlph)R2le|VW`WO9&=h;#nvkW&y$*TQ z>pAg)S~KlJ2q+>f$X}8W=WB0?68tXOS#`k<{`iwpw7!3}ui-a|JLrY7Oi@oSVHPL zb&eZyxF?x;Yu)`^os37oj~1l9FAYJE69_2HrD8fi6ZGADicga|e7wx^G5H(J8^{4X zhjPWXKRfvFG-5D9{&L}UCriwqVWnX#bfGkL5dwd!ZpdiLmO7aoT6=Q3B(W^Fk1O6C zRk>cvXlTzJPGMA6{t1iw?G5=V46xFRId$a6I{xb^uRO)?=jf2p?57=#9@Nk3##nd%AY*oGi3>^(AayeD-h6LJFc&}XA zj^D#UuDx_Q-3;}b23`M1iZr&c(&XLdb=pf{jQ$|@GXS`7}(%j!)tia|=I{kt!p!L!8X|vyP1qTNMIE9Y6`z%5EEhT(0 zh)P(Y%MgFhWSc7iiLT@9ubR;>3@>8R(xSdPE~rnPX7B9Q4aO9C%t7;nafNqWzwZ4q z@Vk~C5pXAeB!XF&JUC!|N6v?H?Di+i04oy45BxYc;Yht^V15B4)0W3M-!gs1ba5&864MGZl_gAf{GZBdTGtE=Lj9xLv^WW$1U9Y9l zFt|+5WHEL^2JtY%pW;?O!O%^Xpfe$?d~N-~f_qeY_y!BA|sk4;)EAP6Hdv9xAE=o(~$wZN* z&jz-P`vYkqsCwS5v|GtdQ^2Z6W zDUkG;ipw`r4^46X<6+ovqQZeD5iN2d(1$l-W@40D`Z+Mx;yHHek0}y5cTG2o4_`*+S8HCmIWQ%~@d-oIz5>eEjZG2gkfo+!^3U)J zvzbUMpMR&=5fJCb7_nVO^A6CcujpuLo!^fH*gQ`$@R5u}(o^w8H-P;evteU?>#FvR zhhrp{O5&DG&uE$p^HwuS2vL)`)K@_Cm%uR^LA%=w=!6_^Ib;jarD1tiC4Rhas? ziPrCbhdoyj%(IKhatbxXCWW94R|8gpmRb;peUfa!2|!$U+oh2hA`No(w_?Q-2R>;z z%xtHes$B=UOSnPzETIA*5_y1EzLHHA+6RdNbNL69cV5Ze&A`?Wid;1s+Vn_PYcBiA z7^<=k?1#l8%PDCGc8jjz$Ui{VGqgc;Q52LSx(BG?hr#F?+6Rk;t8I*b3;8S4O+NJA z@Y;DJESUBv!t(9N?Lu!Fl|UlBeL@*|&rAq$F|eOb=C&1S&;xMDX>;TDBqqRQAoh*u z8AU_Z_m$Jp3Fm##|%As}bT)Eoe~RpDU;prXf{vA;^U2GHHv{6fvS;&ed{dfyyy zj-#Qc$8Q5HN)5wp1=>qNI>~9eUPp5kG}^{~cqzvByxkj) zF?Z#Mx$A6)T3Kg0MscgLLiqt7>UMw%W)-bH48cApnnqrS zZqZbky{X@^u=~5tO?-I9goQWh>@a)gYZd`+rm3mPz^zx)7plLOQ#o#oDZtbi2~?)Z zR*;mHSRndT=G*HMPpd%!(LIv{+9%W85Ot&W3{~_u(Trn#=ePzvCNuD-`EHB`bG_9p z&Mq#3Cx3S{eNP7gqZY(vgx^_kmZ>_DK31`<0a|BuS%&WM@<*+5gWj8S3P$#&zRwlu z5(^}EA-IKHJh7iUzWpTQ{0@x~2S5InmX?CS-i3_+=}_2Jpq|@f%^dLLJKzR@i{SnL zeDeR^_#@F&7BmObUcSUXM0p#EzuWaH{Bb#IjkEFLWx*G>%arzj zDkUnw{AdPo7yC6`egV0D8se>J&I=@u_^?2+nLAu&6_YW;^j-yMN%E#@54OM(}9HC&wuPw+ZU)&gc{kc4+I3HVL{{nGQWqNkO7h7Tjdk)D@5nkWawfA%Juc&{%;YaW?d6h*KAINSFKXG~!C zue}%REJWW|m?>KSixS z_#?PiefQXL4j)}4!?jo=p!_5gjXgAf^x^lk>w1=!%`OIuyj?0)|8|Bk?giBEsZTBT zmpvSjuj(Ibw~Ora;P(961t=U~W}g{jUIOH*^Un5MHNfSJ_~9HH!X~bF*QxP?1(46U zo6cIfxno4Hu5Q8Uvtre>rcY2y3Jc#n-nqM>POktxH+lnUC(9H#T{{p*WC(1XVA9otR*}EH0VS3VsPZ} zO%R6TiC|$v<3$xZyIQ>q>ARjt!J|k9v`W|QulE;cA7@kSx2Jcrp^v)o^1}{tShvIG zS<(!z#?0*VN|qZ^VlJ;u0n03|-!s>B7cFAQp?%+4d$c6py3_)RhwdjKc&|pL-x5F% z*hgN!#I1i&dI?PZ?#B=qRRq&k`3$hR+=g)B8Hl&R7i_1$jn_u00(_qaJ|IUSSEr>@ zC|Box1gBFEZKQ!T22O(F$Rod&dc}@o@x^Jcof`G%^}7E1)TTC@eRuk-8wZq3=Wb4s zyF%fsuCk8p`wp=6nn0 z_fAzsCQ{npz2DCh+~1=j+7r`(WMwI_NE|w}>p{bjO-2(lBitOpNVvGXj0Z>-#?0Le)^ef6S2Bx6zxmZsO*m)$c$3 z?*;^Y=DF3J@zqhF97(sp1Nn*}OIF!kYo}_XHz>{Pfam`F0(r2k*@bw}>((t)ba1*` zI|3(MUv~uDXDD9XcM+$!%ve0k76{s{R3*GqNKqHDM&UQO%gz*ny5LfeXPcO@B1y#q zL=>`-6i}I{Wro<6@?m3`X#b3OGv1t=m)oF^NYgPfn+W1r8Vm^iZ&gH}<=I}PjQGSl z{r*%dlu|(OxUFeL2R$;>GaRJQQ@svqsng}wW?DUv=vJB45a=j>k=VFWhKBe;ZSb#d zUlQ?qtM-#5#QRrTigc7irSKRsp&!`474!~i&C=+-c1p?-QpJI$!KRtljp49+}bg>s#_$wQz*=q z(xL-o?0~j3Mupw4;x}Xbuehu~gjR?{5e(-3Mjc+Zk^MNQ&I7ikKE@3;E(Jl+fMLrz zY`3VT4YQ@9=b`x|6l7;mCq(<)8!G^K5pBIRq0s7yw+pcCGJO_dUat4gcHN7zw>|{g6)(d)P;alzWOp~|n@21m}Wa*)LZb&5WUws2BU6Qrdtta=F zF$7RA>b0v4m8O0604OsI+!bu)|7}y**M#uV!tendKj(NgOD}Pdrv!U#Dc@L#yGH)5 z6N+dNX(T1yvQYlIlFdNc-VHfwj8WkO?T*{tZuw|`S>p4!+de`8Tr=memfuK}i+?{X z8vHld3OqE&mOArQhWycWN{*)dN6)kUr3$EBo8a{1ikVOQUhouJC!=~mL z7|9kaE+s+9(C_DYzCPf6EFQ}sQbynLGr$649`-ID`pZ1-Q3F473@|cK4_g&db^%5+ zFgVs-&BABD&^OuuSvey67T62oza>ra-Nn5>ZYcD;O(QKTiP`X?c3?H^(pS)S?9Zm& zIPrN19VF`aSU3WTaA_x>x8uRby*)epFS1yS+oF;7NL3Z3VIbqU*L*Q}hALNo=(w1V zys%!&#-z?(%kR4TFk8Czm)$=F{$K=baESP=Pv1|v-fKt<&`B1(veLd<&Dj5u?oJ3 zD+F&3Q3Ol`)tnZN*^Osj-ZHZ;y1Eylv$GDJxpZt!KGVlLL?PCkIV9(&#BtggWZ=4- zrSP=6?@4n~Xh=HgLk7@i_ zAO)WT6pTqTyc|8-@F3Y!t!c|8PQbz>)XDvyvlH1z3Kr?MI7dtwHXS=F=4>MS(|pF4 zNiL89%I~#yGySDHHRZj~sTe^a1VY^Smed7)Ee?dJ{NjRWU>BQi_h;Aol*6)|oOgIh z+b=Nq@AlY=zfQ8UBow`j84LKP&ffIBv=l4XgfOuBbVa1@n7ID%J*2kfcH1yu>svpp z<`k*|xa%$;IcLlOCe7(FHUIzx_5BD0`U65e1NVBwAFl6uZ1pS;B_Fw`FWXd;%sqNu z4lDf>^4BA}DJY*~Q-=Havj?B9)(c#UcVu8Ut=%uCTxVx=tZkmK2OvY!?0J1!t}>^t zryg!yv%P)-4s51Eq-kyLcJz+mG+}KuqX|TYarf-mpVFdUH$&&@n$*kwhwYdEALs1F zyN=PU9>Kz~t(qD(i_sgUG$iYAw^Jqw1n(&e_3fImBitri{5S*97HKC(Z>E9Gf>zeb zUsgXvJ*vF~5p%O_`6%3(56e!vUT|9WqYhYaXmCE?CXLG?UVv3G5;4^7*QMXCM+{#> zA8voB_Jls!4N7&_)-+4Ucw|a|%3YLxm5lC+fHO2@A$U#NKFjczv#>MXwX30P+^)Lu0X9Yu2NRE3CQm_Z8M{?)Paaq=<<{ zJXW~yNooL>2NIrM8jyH)CGuGKmbg>(fN5$%7TM%c_rTbqew<^eTyji z4J8hhYxH>)#{KoC?R5V|t&<37#|b#=gJGg=K^)-Y{RV(h%1WTbVYbZPcQCL7;F4FL zRlJDmLz%C%SQ0aHSZj(DzdtM@xwNp7ZUpjD0wMNCN1Blctui-DOoVdQa{S#0dJAf{ zUzjB$KHn`Mm%)Qreo(FmGjHqGrkU@Y96f)zts~;s`xIkmugzwX`KB@DsN8(ytmd*w z{006A%=qD_iwe@WrLUwUhI8+#MwV`AO>QST`!?3W$k{&pg^&4*3K6izhSpEP9fs-{d=7XT09Oma0&4uI*yh=XQ&~!(on>Sd-Tm*6-qI*dSTK2;4h#?CP7T z7&n)&3v$o`Q#@v8kl<1Twh1{qO7^PLb}Kd0mBB9qKZMQw1IU^tj|(MVnEd~GMs?G~%o zV7)|gfG0#H5UUD|ga~G3KdkSONYrzP#{d-5(8wV`zSNU1KR|!EEY)70U)DHSnsj`` z?U_Gv0Z`@9{h2%Po=17^3@qQ@5J8X`DT6 z$(IlI_Y{*}K(0MwsBSPKUVhVddjGJ{a`f-d(2p2shuqs>9{Cp^34e?~P5c#T=z91? zLRI2}G|PJ|I1XF6g_q&*7u|im%I`Tj|Cqvby1svWua?j7<_+q{*HP0pM>KCGL(+Z( zzTsB6@*mqcNEE&l8-xoYvoc^}{2(~e`|>yByj!2!58PXBKf7FUKB}U?1MOvSb6+#+ zH&?_SC3pY{@bE~fh;V4p__lx0Dj9{gMeU}^xVE}84&He8mB=gGc}ZoX0cZc&IfbNP z9uX4_84>TA3WjgbZ|Sm^#&q2ru@Clrco9vbkfjUT3kRP%kV<~3d*LFl!>!JW8_5aiYZ0)kn2);2;;JVx|Gd`_zQwi?N%=lyL+bgyIH*t0`vuXu;?ibuE zQ=4r?bI&}1j}j;mlDT+m(pbTE{0d%f!&UA`Ku~9GLI6o!)wY}qvspSD{RFYUGPMm~ z)laWj1<~@_ningFUH)9!wYk2zksVjIwKJx_Zl0)!3T%%h;JleO$^d9H8^s}pM#0*kBZZkn|C*DGXSWl6r)s-uL6?TDnXKnWjATwW{a zHZe?5$JbyG?`nxGAfJD$oZBUFntA{rwRQ#Do zQ+DW6-ItsDJZ*VD{t@CGP&3FaCTi!7dX*Ex=c~h;>8M-#m21A*js!F}f8cMg8NF*& z|JZm_AEnkblk31oQqtI6{@6BByu?dzqgl#`i zZQd1AJEaTNX4z+_746!Tv%maCeuPQ|pLthrSKhJaR|0Qy3j=$ZrGx#WyyfM9X+KeSO?YiMA!=jPEq+zUNdHiO|9DKzzM|B7tQ4>@Z zBQar#LNMVwxf|t>8k2^m$#3O zk4LS7nqw@__8#Bf?9ln#cVHQO(6gJ#CK`eZ@Ief6>EL?p-+)qfQ3n6S z*q0KnOHHpkVZuC3_d*iTiQnDwD+az9#}bGO7aG&WA{+yLgm8R z^-Eg0a(0F_dnRWGk13n>l)?62KADiYcXO|hXlx}L71$CayEm(t9UnAlTnwLjw^DFx z_N63l(ShVITM26`uLjtjmMIzCi}~?9=vU0qG+(;k-NE(!{C9LlD}VufW96CuW$VK? zmC?~S#`0*rmzhw#@*ALhTPtDrP*ADhMt3(qEr0JeAhbi@_Z*@z*I+pPJf@|*`hrTt zGUe|vdBc7pVfoR0<7fVs&hxaaUaf@(oj>$+1HbTD)30vrtShA%-bw$vG~8b8Xa9pd zAsApgzVj&_&7HEuxCoom6#aVtaU%AoDAc}Yq0SvjQZbj&+j}#=*bp(a_%LkHU{f+D zazk%w+WZjxoY$Y;3I-RVdC)2TBXrA}f{OCtj$G|f`48q!t#FA_f(^;5(hk??lPkrh z8HD|AoT)_Uo%Y@L>Af#+qgSy1P8J6#y)+tbJ=t>^8os|;7%IlU|2gxpxQ;-Wwy&|5 zmDb0^3Q>0yJFSF^y;dezvUA@)V*af5{Ybp!>hzeq;ywEsvc9`LIp`DwmiI5;}WjExZy z903s!7^O%@M8t@62vP#0^xkVA;8+-?M1z3zPJjSWAhb{vgoyMSAcP{#1d@mW0)&Kp zGQT}%cfW7HJ-h$xerJz=#ul@&yRdD z{(W9E7Lp%gr7*dlqFyeIX`Y(2UiEnHY2?0y`(zN{1?I^Rt%O}`GmrK>b#^J6US0jM z%zoN@O#*^{F0g5id2NE+du8YOj)4sdD=#yL8RaqJ%rSe}Wuo&YcucbuMB`Wwt7VSn5fV?&vsFQ%9`4OYj+-xP1jwnwejX5sb>3` z%(t+Dy|u^vS2!&ax<+V*Z|6o{@PogIp5fc<_0_Y(&55=)OB}Q$AD@Z#<+Qn_c zD#Kc?qwh~7Tw7mjp$tJFztYdjaNZQ%B>ZuPT3FmJTCV~{wP2JTn$=>>cl=l0cW6Y^ z`A1#6s4?ycV=M_FoemjTgjwjTKifZD@@4vrSE9jT9X^KoHtWc~~slidVjckiWM>?`Y;)PMuPkb^k$}^RFuPmQN1tu33u7f>LYTg+pW zVLM}ve?dvK?8m_l*n{Tc-n-d3=JUVtZ~kq5H|))GnN^!4^U4VsRya)ljT-u{s1-Y3 zalv9n@cqv5FN1OiKb~QoH=wnbRM`ler8VP2M~@_lmaK8E)J@%+Zy|y&E}Bv~FqvR$ z0Y!Y3vpXH9m()46v~dPKTzV#_j|dacs#KTc7%+OcJ?Chw848@sep+#6XNTZ`BNBQG zxaEQD4O67txu}*p8F`1eRP4~u%$T%#XzDIkNrW%vR;4ZGP_S`G1s}70>^Q4&fw&QG zb(D2u$nk*rl(|00x3=@kPVO+D2CrjiVI$(mi=5izFFDM>nm=`WT{DnS*1{v1!N^^b zR#g3ioNor+la^ki*fW(9zp?8)smJE3q+_|?hHe=elQ0$A$-J3}U7`;}7Y}M!M=b_O)X^`Z`-9uB7bw9V5?PV((0i37gqwrOJ`3tsAfEZ|w77d9ueaXKZKcn*XLB&js;a)hCW21dS zNGM-YwB9Q8DBeh&`Aunlcw4LP$T2PDnPjc7Z3yg-1tZ#Yb=?^4f|v*Q+&;dT9e>B1 zrHD&Jru-(6Rk^+DOZ?y$73Nv?)ReI?n2(`sm*R7%0lj8{$*;5z8v zHtswd@m2o>=n8d-LZP$T{*sjruSJSeir#xCTRj*J&3K+{>$K5em)~(glb8LczPh}8 zpY9*X4^s$^115F{U~r5*%g$|~P3{VHT6$=njvXaWwmzw)mkua^9Z^Q==|On_AI%1BG6cORW(AeghFn!Nay%^2gC*DgxJhkTpV0z}Ws z&My(Mv*k@zT2+G#$si4fUT654eE40kLpkBO1w%ygTu7#V0qjoI&{7LF1AF$~JmZ3L zW9h}jmc`e?qI`V9L4h-;Jx+xB8HJKu?o&fw7YWI)9xq512qMA&xzZbXe_HJqn*Xow zg+gosVg5hMrTlyhrPW%UR7pF7)$P9m&5;x#i{B1ptQNZRXU)D{eXx-;hk>hkwjG3M zAp@bY#XFRi%EmJNOv1$0$2aE_)a6Zcrlw6z@8gy!^9Rh=DYSD@M(Wft=^NPT0i)_$ z#buD&WS_*qKP9rSBSRonD#%64B>gUzYMDU&%8+G-rRf^tRPw8jF4Y+8$ntbTM=9(M zM$G16XKMVaFpqm^!jGI3I$f5s=C4+2&W}^;K@3+1yn2b#l_+w)<1ujqW=4{d>tsi( zpe!t^95ROMJbiWY(mOiJ;L8?zJNNb#w^%|g-M7#U9^#^I6hJks6Up* z&-acmB=(iLMG>q6`sASPt6$EQL9gT;4Jhc$55U(hT9pkgnLM~#GISoLExhlPPY4^~o(Y(D7boBY_g|gb z2R7XcJN$R)RdD3<(60xOp6|!=|NQrXU%*~{d@=hDg@VI7zQ^j|@F!o}IdJ%cZ|)d4 z{1)Q}5E9?d*T0|k|M!$!|GSmn1m zFnq0k(9gi^UW@(N7Ue#9HEMlO*wVscq`vpS35HdMvXsqwyYUW}{Y1ZJFE{r*(r>0A zFtxZCtWo35Jr=ILbbJ4$`wvJ`Da;B`a83Kn*D<=18+^h1#?<}iGSsmY5D z&vMjyH`c(ZdSax;{Z#~uYPrHd@2sIUIGF(f0n{2zFhxShm_savpd3ov`toTG4LhIw z>eaoK&1U$91;bub)1EySn=>_s*tB*ngR^{abjOZQ$*4keBYNJb=U7=;*&P`xZt<`& z!vTH8LH&!+lc!H3nriR2-)i2OJR6`Qyc0>+2&PTy-3R1@yR*`SY<*DVrJV73em<&& zVF2kuEG{fu5*NRz3D3@lR-hC^>4L#Km%)AYfGNyQT~2qMu5#{fzXgxFZQMUF-OLt; z2*QH$4j+ztm7H88VK7V;rndxv3rOZn>0+Q2(2&hzw3${1!wlsL?0uQbmn|M)@z5xC zHfY#53W1le353B$rvD*#4%bgE^DLybEGt!Sn`KnF|;4?O8`a_&(jZkHKxomdGQ!FdXL&twDt z`WC7QT11&(Iz_2?)`I7bfK^#!sfU&YJ4ACxH(B$#{R27vofI`-&d7*NaFKU;`EEwC3_jWfA6eQWFf%q#@LMLujoyD2sr}y@*Oo5!=;$7U;Tm^OExzGHmFLt z=|gt{I(8mLk0uC*$2~pP@UWT&Ml7+~7u?A)85|sJTwI!)Y>jSJ_MR-SAk~)E*WUxK zt&eLx6@549Wnu6N(UZKhA;MUu`O6x(<7{{#MQuKQ*mH{5niFC7`|p(wGf$76-B_|^ z+(unhxZ2#e^k3&C7QfIaW$xj@?>$*#jq)5#Dfo%??OQ;_9w(H=lyBWF8>2XIg|E@RIUG$tnHZlo)t{h#8{h|3HY&AHuD+1 zfn8Z31b8CftikoiY}OG$DLG{*2%s8$#SGvc4pAEkV-U8AI_Lceb@&$>JMS7<-qQc+ULP z*|P=t`440b4Teuy*+G|&7-EIP8pg`4WkBjs&Dk{ufz0yu?XRW@XLwIi?mRSEHTqq+ z2U*P;@FL|5*ujHOfMuYDDIoe~_Gw4Qh-9w6Go2Z5>-aP?<-m6gX1HVmJ{c8(hgM0+ z%9{K8lZi;<+qVZO95w{CNhf2#ih=e>-ghWD8^?6>JrVKqy$a|lK|xGY(+zOu;GiKg z;vnzpxmSKF`3K9)+Frk#%yU~4_3udMJNWxQ1h(ft%p6epGq5v6lQXHPr}uQ_{gr}O z0~*sax`)G##p)i5HGltJr|RBit_Tl4C+5Zc#CjiUI8aMd7l#0q!)-Gfy%m1*VV6(c z3MnU*N=9lCQ{zr|yHu}axk`F|T@>7byMYsry3DodJ&%vKXhlSEG++IA;+Hv}I#O~n zzMB(i>rzWpHbR>hTr?UhUZ*{eOB`zob@2N5`wr|@NMdns8k(iOeFG3+j;1ges@1yQ z@8weDH*Lt!lB}&# zD6ap)@z`BJZ!GcW?7)8mL+t}Cz(brckSv1l8d~mg6ZU%G@9Z*nKGv((&`HSTwQj-2 z`?GrX4D~D{?Re=wdUkeYSo7Rw_?Hby(IHB+@#Z|(@|$lL9lh5=C9)J*OqOfU2ui{o zA#B=y=x+r&e~kfTll9AfGq1ZfPaWV-e44q^!G@ZqsP*@*M|L%&!O44Pw01AjK6aTJ z8C8l~H5qt}xK1CCo|+@2V_jt~D~`;xgAX0LG*3tvWy&`NO?`mBdkm-3HFuoev#Lm| zYIV_~8$i~!gkp-LG>nU!7o{;Je!jN$rlo?@>6Eo?jQpA0+6vq4DOQ_9s^@f__N73A zk#z+$YoIZ?k3!TZ+G$+R%TwArjIe%d(+$O1MS8{GvV%Vncc*pA?#xynoJ6G+0j-t_ zi1@8(KOE|WZA7Fp&~K*MVU@~0-4@BCWr;MSfj2s-`2N?TKjj0q_0IO@%@6*k7^huh z?uz7m-HKkPt|P@E#)d-ZE7xXnK!&k4Q1Lg`wh^iOh;D>FvPV*8p^`)I*a72~+-oj_YQefu3v$#S(Am-WX{PEE6a8K1Ix+4YI-%C3u{q&-JU#Y9 zO7AGvH55QvS^L^M+XtVNRoMg+4j@YnG2-6i>6H-U=8~;(x2!=lI{onzkBRh|WDX%9 zH7O?=Mk5t(X@CMUU!t9%>$JIW_x zmAfEXtW*b+!ql0JqQQ3lm1oZ!$-|y^x<4s}t^dHO4=TzuLeuw%fs-v_Rz$mi7JK+- z(dWKT1g;zeOlz4d+6e0(4MGl2f_%kKfcHE@K93)0l}rfK2955R z8#n&a%!i@CVPosVmFI_iFF+>K(`X_?AxOIkJz0^3S34|meB`1>v z5-fNy+#~DNc}Tj#o~@;IGkQhXuY2|(h-jc3^kvBOnQR6=2U+ivt6w8JpdkkZR}a?i zpM2Zxc@_*Te2%EWN=;5m5`!ET5Fl>(J90G2c1{hLJ10Kvbs<)bu1G*+GYB#Y>iTID zs!BdNL(-?eF!4!nifBi-PSuLc*A3p}+ zx5}2fELFO(46b*bEG$Gr1(9)&ghqEmN`HOIrtdb>wc{2R8N=JxrcIao=~K<`gmv?cm-%!%;g6}fJDYe>5EW&V)yh&TG$$f2 z&xBn!F(JF0db^|sF4nG+oe%SPJSTFNJi^)fpxkAH`!hvUAArah$HlOF_~yo2q5d8L z4-7gKgR`9bKlTM<=fUmAbUN;=pCMS*82tDI{$g>~#GqT+BU8-h?Y*f`6C8<_uE|>Y z@eJ>|2z3fFTSta!oaxI1-G4rAch~&M;~xNR#gx@>k@%9G0LI5WdeK=)?Y(qmuU@wo zR{-|Oy`L32txC}Q=L{2*7k#V4!<@*G$6YoxP7Rx@GQ7FOIW5`%{mB5Z^e<)loej_= zsY}v>;Y8$+`CgQMhC*%koZm-EkVk*Z{tBB`2=;D9kxuBYA#gp!b_2LIKc_xXzwF9$ zLAa-6MGGR#mZ=FBI$I!T6y>yguF>g(W|fV%4KTaP`bB#r%PLyQ_S|IgZ4|vV@UgTs zW_^8yQCd@Ow-@1G#@+aA0UY}vKYy2tdi`JV9S`m+@sbPg7a82%#V~g@<9~GRITH$@ z5;3t$Eu8$uP@|0q`M1u2618qi2rzByU+YOYw@nK&P=8tEyIDqP^~pz%9tBgoB;Bd6 z^rr-CM26Q`t9i4tvyKQ}3RKiOjm`_*|EZ5$R6Yf(nxNfro4%Vxs;daD*Z|e&QwwBe9BYB{4}n3l<_19zorY{rL+GOvf$$_I3I;V z;fnCkzu!Hu(HU!HO_k?xe80W>9Hf@T75M?YkD2uE{4Qwzr`325t+Duyjf29eajUYS z>C3qYzn)7Hibxjg#r~m|wg420BbVi%6~}EZfjAH?a1=aPg2}tbY>=1T zNSo(Sg;Qj>BD>XmS0n$OsWXl`=;|=)I&;|!+9#Jo3Ze`c5n+hD&gp=H{0m}2VUNM- zM?L>Xgzf0BmSq$z(B@Nz(d*v_q8X~Nk4Ez7*cH&I1%DD!@~=`Z^0l%Hs#$7g=W9Qu z3d)T63^Y9Q#SGVWJ(JzoCdro=#D)+;Ou*oXD!;i4z1s`Xs6qs1$7AbF9zx__2>1Q_ z_l>?Ie;9^uz(5c*6pq3WmD$gqD|yn1s6rS2D@QeNwpNj79>0pB6^u0X0NAKpDEvVJ z=Oq_AoL8O+vw7q8R%>sGA5z&0wNnkqS;=`Y@oJi$nd}|QN})8*MxU%lMHJun;Ven}%)>B?kQ} z1IBi|f|wegm!3ZGAQ8Wip26w*i{V^15$v<4#Vb#jl|v2LVc7s$SwcasD+*7+%4{#|J_SmiQ z-xBIK4?~7PahAs?Y9tg44BOg9igeWzn&vztBx~2Vyh7-5&8#&$@2QkhkQvUAvU2Y~ zlCvU?oIq|`1>O7AFuh*1x(Xx$w^h(>tB9Dor@7Z=@TsdSdEt2|Bq3n(?zql`c*JyJ0+l7=rL=8ge_!~&gYaE*eqUI!6jULQ(z8b1HWO+G zO-)7mttw^;yM06oK68ptg**<|V-A5=s5L=0y95hr~5Z zS(%+9rhKHmzbPLO4$}wSOH^Vt{_^R#)AF`OyMNuVw618Je@GZ9wnQm=84?T8_7;&| zHGN-(%?;ab;JkVnpZbCgVQHW>z+*@H=-riwbKt znO^`#&h&3(4N678Q#>{M4!BNX)KQksV871bC8atyK+pkhTA{gK^c;{_hI=trJ}C)B z5`O@VgqMolU!@?lVBV-Cjav8UrNvJq+g$L~fz>C7Xx%fuE4-3zZ*Bvvd|x2>g-|3T z0U@iSJ=lqMoW)gc1npULJsLCq-=p}E5bqj~_vHl~%k5XS9$9^@YsVmFPB-fjd)yOp z>!3}HkgVI^q<{0~7mAeePPoMe+SEQ%&AU&-yKh_$k{(8swI7s&pjleh^4goB5VJL| znWlPhL;^cdMVLx%#uRI)OgkDyS~xxCYPx5#w;K&@PaQwL`YR1}^7!#`f@GrU&3eyc zJ7YawtS#yzAX+~r?9C$(>;avd0J^9cSx+JNFYE?2yT6*#@}yg##6hoysqT-X^<+!I zEc6)UCsd&-v(++r6yDgkukL4&OK}~aHzGg_Lh^W31AF`Ll^=JS{-_DJD~||eP!ZX< z0xmQvd^3S!^ETv>c&YaaG(Cv*F@kgrDvt9K!S<{QJG(58)JNUH++1A!WUgcStk%T^-kYVJYgH$w#1NCx!LwGA#e-MI z^EzoZlIQHgi{BI$j^z|op5`_J6iG3JR4TB|(Hi+6ti^7h1W{z(-wlMJVB#?k3nr=P z)^Bt?lhwF)8I{`FugSp6h0v$X9qS1lw}@K})L~atlFe8>?Dog^H0r!D=%j}bzxwa_ zVeOf1+LF|GE%Yvh17OALHmjOzou`}&!EkyKY%&s{%u{F2S$2hG{F` zpME$qq1qVqK@&KVJcO4MIF75Aw2|PK)N=2i6Y#9FB7TuGGBolkeO+8xy?SP%fgU_{ zHVzQN;6cNJ;0C$o@OVI}Pn{)OSfGy#EHaga9}ZMDyo22M0Pdw#-;-|EHNdzX*a z3iS+bEukgoZmEToz@<@2pk(kWuWBB13;e#-jRQYsE;H^csyG&Zx^32Kuc^qQ3628& zga`+OTIQ{u0xJ*<7)u~m>Q$quoeu@^3>RvU8hKDeSh(EWSPKGd{c}t1#_PmZR{=ns zM49v8k>{?xRau!gx{i2}g*UKnz&llwk_Vd7)ara~S8P^*#8nj->PZwKKFN~J=)eS< z{dJ)&LvgkQh~F^AYWRN&HJn$8f03O{XZ+54EU}|4QSerg z90fY~N6fyT3|K?MC*-p&*77&&Q$Uf;>~U_ z!=eSG&Z}k_Ez+k8qMqnUUy^<~>R}l)d@1WiW?|vu(_E2%q|2B8LD^t&+4&zW#l7p3 zlC-Q0tHIFh#*w2ftMZME&AG@m;MfV1ZBOD(o;gzrc*hR>($UU;G2zE#AFH_R15UU} zaR?ATMxSqshI!2gsVRAUcJjV6Q(6DTtryPHi~f1kR}LQ@kFaa3G9qj7mh|S2V8D9CeCurhIn~t4011K-rD1ip&bjQ9hb19I(rrAqdsJ!TLjmX1Xcu7G zpqNhpGcxd+C&TU5zm4ENNqv=+B-3?@ff8D*NsCFF*P2_~`!Y%qg`l$26^$HyT67%b z?8*U59-%OEjG~MLv&l2_IN3ASAP=|O;QizJ`)lsFv+$!A zRUw`&=@tChkvc%_pU1&KQ?h+{BVQd!0eFT1qJyU*;pWQrjj*ob+BQ>dOIw7o`Ny0DEE9Ew31Z95JbDX+P72+ ztJ?c&GmT+z%0YVqwyZ25p`yx6K%4n|`n9S)$lDl)emW4wZJNB2fniw!*&&f%#5@BE z0mulJlpSHZ_I6OMz}Q&nrz4|PO06=W2qf~epT7saJ{0wrlr$> zLsY(a@n@P#_W5{+V#3f+KNAJ>2MomM#2r29js2=v?{8xTv^|VM=l1bC8s*% z(p1%xUuKDQZ4|kDv`qc-B-+R#Ea^>w7QntS?#DElBA|r|jn<$nn~vt(3iqehs4{C* z9r5DspJ8=jdU)}yX|_}I?)Z!Zq=Rj+u{uIgqW91Fm4vb?)4$DzAywCS3%yu{{`6&l z&p<=L8-1|E1sp_jRBrt`XDAM_Rj4M$dNb~{X(e5?KBop* z$Koh>A&HI4swAs9O9^8xD&&Lu%AdU1%odgdAe&kSl zR4CV;m819V8;i1gmQliV4gI%-$;1AyE8+{YAsZZYMrEla6>w{r3mSI3r~cO=b+1c+L0=GSvxL$c?_1u29^-YY3Kh-Yr)^S&$Q`91;GG&C2~N=z zQzwEwh1P(i2QPm%qbNOuEa1gu*+AlSw_l^|52Pn)3Wk)z7EnI->Y3ffP0o z*y{6Q?cj6X5(CD#5WwGHu`5F4SDwDM^MIRblV01y*$v}S8c|&|9^3O5 zv~=LMHnV@?;42TPaCf)}epbe*z`oLQ;V*8`j7x`q*YOJZA`k-hR(SEe)I?Em{P(tw zkGbC-s5?J8e`vn|>_Yw{6N}jArl#i~UQ$se3UMLQWM3xn_j|WXOnv4jM3AJ|e%28z zgBBhZ?Z9Zx*%_Z0P2d;VUDDVYKLK{S4y1hOLOU=OklNuvo9Du2SDCTeU$d=StLS!# z2l@PTXpES;~RWw{A_S%YPl=%ZM6>2&mm4d5v(wVxj21`xu(c75uLGe=*l0F;D*EdH?*;DF z+TK2W7`=znad~^s?yL77SZ8OlMBo++$<@DBXN~r*OotEmZNIM*=u4!LxHNLIm7SKA&t%wU_}hCuQLHId?eMLE$n{4I zO?U=na&mIQ&B5M2+tw$HExfbCt&VonL^EgV15;8{_b?2E`wY37J!Wga@uk~Py)p-^ zucD~#wlkVnQ=oi&JEuLdEW_)|T`wI8%U$5Lo~BT}{Vk!IGg*Oc^yG|Csluw8XjSfV zQguy@qLo*ZSFIf`96AOI5J7WiDk>^^%_WWchWk0r*-`XuYg^k4!?V|VMl-JUKE2lb zO~RCqug19@)JNnlmKJ~xalg060nzw{*B*YJ$6l}V`oClT=>^}%Ev3L+&SUDDFsjP4p;qie$0Xa)?} z_u~D&KYzjZ{^9=Nb3Gogv5kvYoO7Pf^E~H8n3~G_2gG#5I5;>D6h6pm;NaXr;ouMm z-z5ZI8JrckeZck9c>fNkY?OWn_yOPZor2a~;0m~F^#cco8An0(t(I@v-jZK{)+q#g zI4fpbw|5UT*U8PnJmFycxk$S>duB_gxb|!rrc=5AJ3G^zT^OM%tVd4&)IoY6W^@o= z2`GK;bCmty`pW!nj{MF%Tb%yr5ymo>?+cE;f=Yli6B(0L!g0Fm_Ls|y{eafY@-@GV z&>y$giM@@h>KobHi&Uw@`1Y}z=<%Z5?UR5v|2JQ_1Chdg1YGtb$CC7Y9qwtv&d_5V zUJ|@6UYrW9`$JXy^?5-8E!%Ab&wy*fQ4-o!=S<(1m2)`EOTsnu?BU&)-Dpc<)a|>F z{$ojvLMBZtZu~!^x&kO3BR(MIC#e7JFbAW@tHUq2J|8~=lF-$gF+fKEm{%4A`^we5= zYeC(e7IT_!UFPwlCwTuI9Z?wE54g7u8hNwjYVW(<;{r}^x!>CT8QWAc4UYLByS4=X z@8XljCT#JU)O`7ga77()U|MCP(guGSx(rUW6+87}|IcT>O38rcr)O=1)6Raceye;8 z#m0Anq_g5QZ@151k0ahed(y=HdPItG0at^`IeYywRiHlAQ1z!Ydqeo`=Kt9aj!(HA z3#ddg|J5N{N8Jk}l?ek$nCqVtv!$6NbBi5m=k< zF^O&5RZ-Fmc;Qe4)XuXA7|91Rdp~}MjaX}~#e;BfW7};w-%cJuMYI`m<~@7cDd}!T zV5`hAt#@CGQnXKc$*#14d!p+1_;_K(Ax)=3A3c3*fnw3_l6B_lkR53~zclKGF*G-k3P`*=vyEZ~^*&1SYb3$W*UmM2Q-ClK?`Xs0f>0W9 zY@D_afltu*&*l?H#X$`tjQnqHZST}*>Te{djC82}i>zQtfk%&a_6->8Hszkoc`Oht z@w7Zo#zQK|B7<+f8e;x1%<2(w=v{mnz!`{%NUYl1-|8hy!!-B# z34C^HfLX~rS?7ACsF8Z|SHbsj$bE1-`ahdzJ~{Wa2=DOu_~F$v z#=(@U$sfh27AItho{s0c&`xr2SdG=U629>`rrOOwo|~(@g0Cm8F4KfpRyz?j`yg}k zn;gph*w)>Pii>GP?RXzNQ1{l}%grjw7#v*cw&0VGq8s`BJYT?O5kG{KNkx=?CvPR! zaY|cW+!_VqLm4sT2siGxy{`Tle6{P@sPx3w?KKl4M%F7)2WGf%R{Pe#i~3Ovx4qMq z6<^_}?X)s7JDP|VXYNJ;X`-m1ZEQozd5Tv$UD4)r0l&1ZwY3-6MT#Zn$MIUqbimc2 zznc+_4Szh7qwJdt*c zW7HM&a@-j>2%Jqp!A|gYB8zUr<@HLeNTTQLb+npc=1tJ_zehd4BVKM7!!zCv{8;CX zT;gvq^lQv*;+^@!d6S-fA4>3N_sjdg{;M%6(bijF4blbbU=Y~&Re9@)q@zw7G-Vp` zx2UWG=UL3dL)qAcCXX5Cs~=xmB$Y_k!$jHpI;yxFb{z^!idbWmEC}%M@o?XLVXi}% zrBHo&^8>x?AMVC7yxB#@HlFk+yCtnFI!Ps$Ea-R)z{~~Y&lg_lCey7J3Q{?qrHq9j zp2#MySBSwNQgmI>V7}n4Mr?7fA~2!(U{%SUZ0f|C1~xG9&f-PTdXXZ}rmjdpy`f1T zop8hCEa}Z?J$9%fLt!r3wni>1ty22 z9D5%Las?LV;PLKV?yLJQC$Bc_T_KINu-AtwBYAlxwC`(DEKMu@HvALXFjR(hzmIMP zr>BHv-JL^2WWQRy{AQlaLarbQ?df8n3XfCDJCG#n`fSGg&AEX00Rnl zPt;+KI_|%0M_=xR=;wLC7taK3Km7<*-GODc$jRo~4!7-_mo;yB?;mJSVs5ekBqkff2@LFeo+5m0=QZkF<_GJLFkhbwjMnV5WwP=s`qccS54jZ#p^Ir;baYR``Y67= zds`**G`23--Z$5Y8j3T?JDEs3HkQOpQ*oD&tFr?q!8#@`UQYcjE?b)Kv-eD%Tv={+ zyGVGwukb^td`gvy3ha7}N&j`69=hD`1p>j9haaBEX#Y;aAyqu9KT8c>i@`EvOXS(J zbtc`Q>vvR;10EAFh~Ri1lmvn=O|9_(VPUHANu!u-zUqrs3+?8z5$w7`@))VwRh;A5 z#o`Dykn&L55hmnfbvdPE=bB;aTD+*;AyLkg)zlQCoGM(2>N=eg>aK7m60oyaRi7RE zvC)vE^ZAecLw@Bnvxl?C70#)>zF+m8DR{F)j6Ys*hV>q|oUm$7vRK1Dhguu3#NJb4 zroUU|H`y1F%9~-{)5Z57bcD&3g;SzgHDTl=egAzfbQcwwS>Hl!X>E=E^f?(OW6l3- zS+6-a)e$Zy+bwOwAcgn&6>LacN`6Qth`8-=+S_zi^Gnkf{blDD*~$>Y-$rSRleDXzdDy|`njj0z2X!uDeA2TKv+bE#r+BE7cXpq-Hca4YzXjuxFmuwgBrB0SE3Nu-hnTOg znbT4MA5~rW_6|4A_iK|K9+S)5oB1gILGQiI?zrb9OhPGI937XnOm1^i_TY6q6@k)* zp}<$K5DOtw;OJC~o87W>kIU5%Uy%`;m5+#Y#-IlPz@&bZ57dAgEevS;bn%Kqc9)mV zjGXt8{K?TX<#`^nDn&&c`nCQKm|U)s22;e>6^QyyE4boH)NqU@ink)~X+%ZZ)6LZ> zOD1=_8!NTD8y~cLGL+=IWz;wu@m%YPK72+`Vv$T$h9FmEQDD&&WL=kiVxgryTVa1} zQ|HQ_$Cq#;-1d|%&k0j!0**f0Y+el*sIh4O+r5-`L(> ze8N?6Zm$P?yH7TzW`F8FH=yCu6xr0a4w2)mmZ#}y-Y)UPO*B%@#-BT(O zP(I|j$D^aOAZ73qpjHiMk^VP<9(^J~C!6_G38cM_0PS88I{v%Ua(PCKYQmc9lp+Fr zrPq?6ZkubNIJ~RPiE#@Rg-cJgn>qNw9C)oDzin^khyPBe&rTh6PV!qRi=xj%1r$30?p>y@1JyJ6oZrw%jq? z_wr9`JjQkp1+|5;hbrNi^|z$HY~D4{cp~C8s|9;ZFP-r8mH0YM$T*@H85zkZ46b2> zdIH?R!nTJSn0O_FMxD&Fh&(Ph~YbXnL zOz9@SXGF#|l>3^BjhytW<1b2L3mU>OtJvK1&N^eRE_}&5G`|7ZkZ^?z^vCigy~QJm zt74F#5e^W|Qfts%5jik-Yda0uSJ%|dytkPCU>_8677i6NE=Gd>m5uTcd5qt$EopRP z{+@LPzBJWH*me7pA;#6eqRQUiB5&Tmx~56oaB#7J7vl5i(Zz{_KDPj15XN)}-8Ss~ zHpmVU38UV(m{gg=^tSBvrc{vAmK0zLGTTd2Mc0-rW#C&?itpQ1Iw^@c`fQ z7SmT3+zoiiCPl!Uoxh)rp4cMyNp;-HmHmw>bIX=q2-LUCR#N@aB*ZuPewN@OB^+H) zr-eda0y*O(;pLGjB@m&qw@3ML!kHS1hc;>@e-HGJnE$)-(^?87JH?*cCic0o?+@A5 zb426b4Fv`D(3thjOnhPx z{QV|wMziFRtYv0v315~bX8KFB3Q}UKp-(~Rcyj2ggG;zffuu&1 zGMGzcP-RV=Gzu}6^rJej=JyAdhz((|*@4lnLs821Omo1K#jK4r<1C0P$WA70GPBIy zGp~(xhYt;*@hRQWbH-?ER*^Osludtn^k_b@^Gfn4^`r8~`b3|hBxi!1gBVR(@gS1| zyZ}!#Cg4diiVw_QgZJBc2}Fd8K4$!Wa9`*0jm)fav5@`OHM#6^BS%Eyt9Onmo+}a9UO7>_EEzY?3s+zu2|hY-`~(&Fg5-<%tM+*sqUy2DML| zNDlzvXD-%SkUNN}Ab?s0ELa^QBpS%2W5PXC(P1?r`gL!<&t`YdkQo0Cr1g=Ps*rYb zhu7hUa(`+n%9zx+NNfF_Nfr0hVmsc?oh8igm1#!K-8a~IU@H1O+;#h9`5hnDV#o&qSo~uYgco0ZQ$>JEl8hGi+JrXBY8gae@NeF_~{PPf(p&s}#gOl)ywsr^7~ zUq`KX;EC;@#L;MJ&8_iq4ee4$Euh(E9y%9Es|JO;&=6i+h&|rkUTd;eHecxCU9DLE zLLcN@;NF~k6S}Z<3zS|fNM!dRekwW!ok~yZzJ?&GuH#Hv2)6J;5@L1{6OKFm2 zrvd-NqkEwr@|-lH06=->K=bV@F4ttXQ=hleWT)U{*wQfxFZ1%>)#cJN%H>q{8lUp* z)_*ykuK>*gq3KM?lR-27pDBdf$4x%bs{f=JiD{KQn0w}c$kF?PqigJs8?|Ajvu5br zFzi&JR9aH0+~nQG+kY?A?Ll0r1SieGc6gG>&q%|e z!oSYUJWlFq)U5FzA1aEm(Bnzi<%|5ymz1P7>T2gz)`$wXPN4~jnRnV1B`n)8H(<>- zH#1u||K%Z7Roz8GFG+J?@O!UeHJOD%D#!x!<)nC(6cmcKAx18_9;Q9}=rM^&wWX$Z zn~(LsX?nUmRQ<8}@}Oin<13(CQoNEF;_~wptCkkYftgwYUNklH9#<5xIZqSvmiZw- zQ%u!gEzdP++4My*NTRR8_khga8kW2F>3y=h46&&9mD;+H_SF8u7i${P0enm1YFbe{ z=E%rs({iV*oC-TCxH^laC!zFYrN zV!eltXJu>4=i6__H8eOZaP2qnJbCYW6@@6{XIM*A%?{+Ve#1<$kh&xx5uM!SA4D!^q=ntY18-ANx+vLO{clCCr z-9_S`+3DkV>HB6Vh^Bo|HfAt?mJ~ zVVkRej~-KPl9PT1;7d7PT}StY-mG0!9jn}7H@h!4%Lq<~+BY?wBCDB?bv{ zqINNq6?YA(p5nO~8;QvA#|)mB`4~>M6evb0(a%0N(ZF~Z(p;hF!yjs4wxVBUB}sCl-;D&hTeZi z2g5^X#UvYEs~GRD2IWoZ+=JfG|3z;7C5?Ci=ta7o7lR25OKoqx)HRbyPOy~d4?5mW z-irc<5&3RTbP){F8G4c`DmucIy`mW#9w+DKN_3jtQNFE}`pUh(Sc1}J z7k&iQDN>oijU?DibjoqxusSg2BkAJ>3IEQbTxHsdeW;gV_ULOSP7+!pp*$bqQ16q} zuXqfC+Odva*5W`$t16f{=rnJ#jNIZ^Owl=nrwJAt_94Tc>F)&mDx=0)9S$E$65l7L z5wf7+=Jim+jq8o)b=ebbk^QQs!>Ho?qPE#*BX6CAPVmRqMS7#Y7gY6yh2b$u^RirV zYV9l*$@q8=`6Kg#)7$wU+)0poNz)Ew>dM!PBl%?lfIcewY;CwDMR#c_e&e1gDFxzmF1Gs_Kb!u1US!i#Z! zU7fJ!8?DLZseI+49loRc5;KNvZ0F()J}0tT-_cRYUZ1BCc%?ck{z@i3D)7(Zlgc(h zEA%)F9LOZeo1AZPSRAKODqp z#_Kk=Y69MG@9Ti%WI>WUL6{MaWvuSI@Q>&f=t)WJ*jr~ZKOKcWk;o~QGt-U0KWLx^ z`C7^avIg3OZ>t$HZJj8VTMVS8ulzO8)P-)%V!z7qa1TUW+dm`@rR8^$oqXm!i49J5 zSd#i<*N)SA-lLi1*}H=;6*^y#-sxA6(Oww(SRhdC^$WbCgIIQNtr@lPhdIJAEG`m) z;@pw!M12Zmk9n2vam~5AbM_11e5f*ZKT@(hx z@O~>L9aZ)m@MBf;Kt}X%b69v;YZM?$iESWs@puvco=XU-C>sk-$`MY8ZBJG#EIU~Z zhz|NV<%!W0aE?ilJYTYfFqh+qh>)?>#ibkiXqf81fAmYh7l(%1%gd`fR@iIcu{*U9 zlzB(AA>)hV=g^okMOPE3tDio9yNBK(Wou9wp;Tq7B$D24a z30lp)4a!_t|F0<0^mrk)mU8($8B=fM%7qPDsfOt#32nrn&^(YyP;ir z`3lTt9V@&mZ6ch_b6{s1syH@#Jqrytd(Jy z)&>=M{w4TV0I8#_d7z1nlD)HzyIorccx}5IHyET)HUQA`hAoJmk1Ef`ZkNPL;8ASY zBYC)iCX`d~PyD z&(g|mGhj=hq8H=2UHN=gc9*gX+cV)Aa3Kb_lrlcDO)8Inn+o*eqKPq$`ro+lpr;?i zNDqI@$P8w6oY{SPppg+~P513paK+9e{s&dTxE{ezf$tU%_+HN)@bN&-sANJ&pC`q4 zwIx8hj^dfrG&S3FpY(TTKa-E%ktjy~q4cp2t#fEMY&tsNa*<-KH?}mc%WX9jDJr4@ zkkG%2XaD>;AV(3G27Rogv%FNa;Pv3ZW$%e}^E>51Le@#i6jmlSB^>7r_CuU>?0 z#<@ggh(Ae}oq;npcZLC)6Nq?UVsgnZQSA8lZ{*~!PnBOv7LAH_a|BtPNubZo-puh& zq-q@g`1bX&O{hEH-$ z;YPgXhGyKG(8Hf^hz_Vi?9BKqZr+L~QbGOqd3Hj;@h6n%C2 zhQkNBnM@G9>W5-W)l6k_D$*}3EXnmpbCYns@pfSh4kgX_; z!XQY-cyj&h1w5lepABlWkhPPt1CE~wSO5~M-#O7($r{l@!KGh^6mr3Yd@e^>5vhV< z>uX*22!kI#pc~Gu%%M$t!YV?~LeASyOk<@_81wmU``16X+Lic}hb;N=q{uICaE7XQ zl_{Xd0613qey#esBzg63gFdi3;x+BUTcGf{^CsO=Je$|*;DDXLD9B3qq9clEpOXx# zVF%R1O@thL#s98&z%v`XQOFVl^rK%W!AT7O3NIRWAbPXQ9uj~MFExn;&y4TNPdZJQ zPm20)E70U8lOjjnC-{#rm`r3XdoATlcaY$VUH!96;uVeV@H4M^hx;x;j>U|eI0>I5 zcvmkrGX8;JtqruKp?;CX5hlzoA;%xTIarJhci+H_+Du6mYRNAkYYH5EYg>?$8Zel? zjcT5HqJ(aruNyd^4ZIBCbecB#b`kqLM(O|vD4S+_Kv9#s>9R=&tt@7B$5qk~YXVIV zTIn+K8A6t#QvIerQAxY$Mvsn1a}4?%OsogRe#}L8(S{r<^t(K&Q|`if&d@$&3Qi%L zDYJa9j8}*F3V)<3mg^Lq?jCA6?Qmgu*-tvIcM%g7@ZaztuuJ&I`YU&L$uc7E@d{8U->O z%_c|$AoH!qdP3*mHj^)0xoyY875^3%+b(3qofQQqs!q*L9}Rkj|1Dgs)rEjOf2g{e z33YrPj6}>`U50B33z93&3oej8a8GUW{i%E^tU%q)3@B)Kb7erDg-S0UTO4i5Tx>95 z+bhhw{C7lLq=DXzUqm9^jW+s%)#4dUf_jn#zwGhAJ_(7ptwrilmenq&m=cp4ssXEK z)eFllcUI_E8Tz(5LT?6rn~Cp7>kU3#YnWmqFM%->a3z?KD3#X{RdNYbAH6nf$0=($ z;^2myIDYF|Gr<^3yz4L)FJaxOtm20}^;&5E>@WhfIOV=)S$Egr4vIT?84=!mjQs~_B8aU$wEx2j#@CGqg|Y+SG6JnyYJMh!Hk#k_uHVA_|U%v5P<$WCbubEgm8+Am)VE6B(LdKxT=-_dKQMIvY$LON2G z?tMgPHk5^1>u+vvdt4m~h#huQ08U*^qqB$}vRKGoAyTK@n*SNlqeI-<-G{e5 zbBDMDfIbggOltr0&i}sfzw7b;%N)L_D!Y{z7Q>GaK^;GGRJJ<$GIx(gJs;OAP99Ki>j=M|d>)s01Kg0PQMYDR0=PUBHzmW10yUAiv#?orXY$ zMHn&iqET$ozYFc}u5;@K&lqN1gE6h|FzZApDK_I%@k1Vl{ z!6^RS11dS{U7?2u>BoT3FyKxvNv1T}E{H+FAq$r;6HU?gsUQvbLsg=m) zbiUoQls^n=yPz$XKBT@S4v%&c1DFLL^!BuW=YkopCC6<2*X>#vkwB zSGWnP)E>FDjrF12=ep!H&F~}+F+Vx`bi2p?-^znAgS7~;>xts|Du|>fu(W7DUvu$> zP?@K`!3S{)`m`AuFN!ugq|&2+HJr7euk>P?20}& z>*~Wv6UWd1>_3@rOO2FPw=)al?rZu$@9h~dY0WxM>KD($#o*y=cPau-4Q|dhErb(XHa3$pHvp2?zlgnT z=A3WvKtzbLT(9#E$@-?z2K!EVkU;$YFKnTK0q z1vm!?5DH#^1&QEDH|%Kyo~?jk7b`fTI}JI$ zN2>LQ!Kpz*kRUMEaoY0&C7Yd`Ae%$Z@!2`fsuma_Rp*itKV=%{ggOPjZp*LX-&3;5Ri zr8<2&t~-m%H0}1y%UdDOCY!HoD5BWdBsh=f`q#6DU;7hc{f~{kQAL~cL9aF<;%w@g zZuWgfhpw(xq_N7Z0oc_l#m4p6Ajetyy7+yo`J?#9WVGF0x;JcW&`Ww5q6aK6xPHvk9dJrUoU2(@n`f^l+R@h3dpj;Yx+-DuQ++b~3+(&%m(eGFUTB-0;%ny#b zormdGvqrMwXewSV9;kXdGnFZB6m(`f1Q14|)d&h(n>+rBjbig@;6b>b@0#aMY#f2= z@yg1jK|OS9IL?;oKr91(cteEnLoQJU)Yx-Q*LroYy8}AxV4VOoT&UO3*jArvrRAUG z4LX`^-H&nQd`-1+gC}T%(>AmBq9EwYI(LBCEw|aZ*LolI=U_R`Abz0c@4c1D9#e6t z>W|=+ocqmE4b+sI)+!E5iG9><-B8!&&}d;-Jecn(l5$wm!M}dwg$SE%TQqhTjqMw$$Krlg?^)9^l|ec%ybtfWCi#NMxDf`+P{0;L`EkuX&&04|Huy0g*ev zd%+ypgaW#UJCxg6?|*KSyo5r&VphM%C1VrQ?isAfu61O{VQFvY$w}?vhFG9vDHzkln+M+<{v{ zF6Yw>TC@3vdaRo4j3(#wY^I-R_4OaU>tM#Qrfl}JI8=1vDetdozS?34+H8GKT?OFj z-;%-};2;cpDzIptTL6Io7z*yoVdzE!lyQ8`?{=7<*t#4|Y>@AD%8XYWwiqTjyA1qX zVF2hJB@1xh`NPbUs9Y``f3F4UeijrcLgCSNUCVPUEfUx^yx#y+v$W+v=X?>o%;&TL8gwLr;qVW5F2uxtch~ ztJWAfOCN8}GY}(js53$G+qQk~X#cC$mF401M3Xn(I#%U<`N|nnS+fpj!9(0z(b!{( z-UxcqTr!IVW8+|Zy0nY$^DQ^sV0sBly0)8fGEtzZ&8DoHE4(siVm4rd6V9J2$F4dw z#z;aadfmO@cd;L&251&Q3YcYD)*#~OxCP$b43qT42K<)}W~u-!<6giCnx?Xhy$?xY zmWniLNh@3KB2EkM^m|;6JUwY7{P79=K(2bPiswd9MGo@OFP9OAfMl|_sIA~ExI}4d zW{ykI7sX0X?B(b3A4APECGz>4(&Vp#Sk= z{Jf>MKYpzI_pHy4^Uwb|s`TRr*~|YN{`ub*{&ziY?c@I$bHE3VlVLPg9&Sw6FK@(K z?;mu8L~6}UscUP7Z-_qLhO7U|9Qu(ZlO$=*)feO~-Zz}|5g_VF``eRjKThs;9ZQzi zvyE$LD>Jm6FEKS>E5CPB40xN0Sj;_K_C3P=Nqn>r5HLA|EYWX^NoYeJW~PsR?z}2f zX`G#}>xvaw$;;x)XmmaJ{46S&ua?>tD8K_~Qm9(mP;OBF#ghkvyG7Y75r8~9B3?Gd zJY}Olo`*0N0}1qBfwrbuqAzg9OQ}Ba_74?kefjwX5`6@dmK@t{rHH!V3copOHc5%O z9p|U|*A$CB0FPB%xq406Tnx0Rb6D3)ouP_IOP4XqJ9P{YDS}%M-Z2NWHedm|enz`c zK+pdr`Mt8O)*a(vUp7Af5ioOc7Roz%!++WM6t@ha zu0HRLywc?1-U>cts&Cpq&&l`v_pK5nRnM2PnjX(o;jlzl=fsm!l^+ERp3Z`=s=5k5 zD(m$*@_Z)YFp6l2pKdQdwTlUN(_O%i%f}vKaw9j`tE025WchHKi;6B_ap8WJ7atuE z*+w2W^xWbY!Syhf`x&5QJ3+$sKEwKbp|hy;=JSn}3_CAVZ=G*I6YTZpV?Z8=Ia3g0 z91@lTzIWZ1p%)jNC`0Htg{#m1aw&4}?sp>GItlwQ!xnJb8m-@&_a&P?oQ)^7d({Xc zGIA-)g#Njt9g*s{ZGwK^`Sj)rk?DTMp1D8fd-{N{mmUN(>h?(tES|+N9o>=@ua)OO z0cSVW<>^ee>gCO2%1!svwxI7!0SJvdxQ?07W>f+!8PJhSQJ{k}Q;$(<)y=RT9(Mq_ z0iI~hm@4k~Y=~;H59-n!ifzQSl3wZ9%Mel>9y+Reor?n-U=NdV)ji52bG~D?d%(5a zxP5?UV%f}?6Ik=LC@I*!eLGXt*3M)0Nk7clAD%n8X@UX)*_nFX8|1YLgj4)y-L zyWsEAdQFygJhBg*!#TTXsS>`NE^taEfVK|LVljQC?<77u7f2_&@|4@5jc&mUPA|0` z*Gp6EEqFAJ>c%bi^8-t1^AUZ9s`evJ$4K3v#gu8{SeemQTRgJX>BHks{vXTBxzT(; z*DK!D6_KumzH_;X^zo5nn#Un!0BTRM0de#GZ<$m>DU);G&XiYq%OR=s#mK(ICuM7| zS1T8Xl18&YVgN9n{tf|mwG&BHjI< zZby&dh{8oFG+`@v!^o)_*(T{Y6ErO3>AKO^));<&R5IQ*2ss4EG4ADXpagc*#o3zC zXsoR{lzG!?Rt`5l$(y9rm&~08zgJ0K+;*hi+~W7^)ay-*usR>>AbH8fOi%pC(aCD) z%p=3FDq;d@4KnsY%S0bRTm#~>f?;T$?R2zMKsy<$r%FoC5A)1n(AqK9VySneG(*6@ zo0nS>5nhTK8XAxX*0X6=E|a#u*>GYdR=PDi#ZiTO8ScqIonfSp_oiJ?)Yf49ZF0^D z84xjK#6Ltc2*q-`oD%>nvk40Cp-?~tIXyy4*ZsH;6_3xvt`6$Ft>cxB21KT#VI-L} zx3fS4wvWKJ-tic*4`1$I#r;kbQVE6UY6!1f@02cL=dvNFAeRCDR_~i-p)2S4shaT` z;P=aeF1T!%q=MIEh$x7^-wpkW6Rt34@Cjzp0bcwYQ@V_I8#!pHhiUqS z?$@pRA1v3=q!!0U(2jY>{R{$YCC>l$-_5#sY`qWSN$bzJ)N%_w8N?W3Ga;C$s3N6v z(VJ93jSo32Px0U0Rer-xJcm2WP4$=(-$_sH;UcAx(a=#-LQmC9tr@}Fx8vGsm0t<+ z6yr0#eZ#-|MNp#v5)`4tKg@zplI+)s_9V3}SZqWqcthv+7bVe+$IFuvOo93Em9(v6 zE^n`DIJnd`&>%aRM>4A#b0*Ge`Oz-$+_ft!>#6_Mjk`a#nxM+SnQ`Cw-Q4xf(0ShY)+M^*&enYj{ZKeZUzkJ>2^6t+uZYC3@Lut|MUVROd1w>zH3OZ zq903b+q8!*dqhf!sOzFnT$0y`LrwH*4CS`G(LH}+Pp%W5#lwp7_oBok#u4HDUx-6r z>ouxM7ch*CUVZ!?YA{u&Phsr!v1JtTILBbr>tk%f{>$+bYrlmQ!?IQ8a20!oLW$9j zYB0Li1NuSKFDfUlsTQw`!Qt}X(y(cS(DSRAWt?NRt}c@eo)o7i z+RnRIVnKHs+!Avu#?+QxUpYj!-f)01#~KhRxF)#K&OK7o?u`2J&XHjsq8V+fxsNh_ z;#;G=ZjtR}@zK#)VP);`^5$#y^985?*>$`f5l%aEmx{9qCCc##9MbHV62ZCHCG(1I zu}dHyowy+6aOn-M9;kj2IHyzMlek^zlloz#^@TQDH>ejGVeNN`7Ad1hhv)bHJ3b{y zxtdo&W6~+Qz#*8O9#iwR}Hx*q~CC zY!wuV8zoT851csXZ{A1Gvkzgk;Ot7M|eL*H5W zd&swbhiX6YXdpgyy}X?KKOWoDVyHPD&S%TLpK%*r=rode!*qkz99eyWcn1nNZJD$) z&&)DjnMy;AVOolCp*W|Jx##ZJL}7blm1LHk;WK5ShWBajf`d=4x8H$Vv($>KJ_@Zi zMjE&W`3MyY_w+jW_|tDl-}hMUVr3Z>xXk|42n>@i9NrxhN&Ts%5) zcOhHt>7K@Gn2S>R0x=;n_VW3>JsPdC#mHLsvu?Xujp2uJ4_Hh|d(=Y0r%Gy@E zs!@%8Ng09QrVKxDi0;DzTWdu4cWKZtwu~%Zr#Qd$C<x-v|_|^^f4eeh*%tUw zFH!7rR=2ErUl;9^&z@L!w(z>VJD;ywU=hmHDymOr^lLAJN>j~d_Lse3ttj&I*<+X> zs*41$`f14Z)hPkW&XwF^JhVQ4x3jDgg%*J)Al4H_IGZcBGl~N9vFmXbLWq3QpCq1O z+$xD&jP%Gvxb$937yHtsNs6%KT#m}5jr^(eQw3b6ecWn#D`PqNZ-}+SdPIC5;@&n%W=Oh)L0xA+&p7f&Qo%A2j_Eg*}f*_29s{;5Vrzp!AYA?*=%+y{?2;b z`r`gPy$a+4VWLo0y&7$juwJ|0JgPEQ$R?{0``W11^rDt)MHD-#(zI5yT`P|nPpS>b z#5CA?*%bvDCGGJgN^w8an|xoZt5<>OQJtlNahoXfhgnl&Vg zf8p@dNEg zlIt~8uj>`U?oZAKE$&S1{HD4xc{y;pwFw*fjzYSKj-dJH6TPC3FPb*RErZ5h2we$1 z?SEzrYu>%Db;>s@_ouI!Pt!U;K|y6=TM&Bx?fsuod+){;Hn)+pp{4LcUKd2Ors>*((e@4j;Fj%9~I zp&`KiH8j2jt{88FudbSyuzyMdR@w>{=*69F+@gJr$8)xM9zPhE6F>>48Y6_APyHeK zMkUduV9xTt*KNb6sr7y%Ij-bX`4|@_?G4*1A7tV2VRYWnVAqNVEe_69x%o8eo4=b% zbM=B?vQ13Kr6Qar8v0vbYCnOImg>`7&@|77Qf}e(x%4+&g(VKz2L{`bx|y0Lmwiwj z1N~D09js$86dHOF*p{2U@cP}Z@6}+h7u)4$Q7NbD`S^NiQ-yo2*uC{38P&FuMag{_ zF~)$DpMMcu-{ef2O!ukRUWhR#djhk5H+1sp|Hs~YKsBAU{h~OI`l_S6Gb#*788xC( zWTZ;hVH6_*N^b#`PAF2603pP&F^Yf&5$PaJz$DV8B-rRB^w2_t0HG#Qk^mve*_roz z-(Bl|_uO^vS?8Yn-Lqyb@t;Nbm%aD1pXc}de$U>2@UM+e(WDC+Y-{2$>UyH+g)97n;+s1WZ%b@o$UoR| zHl?Dh5=F*!bP35ppo!4NIAsN;Cm(~#hB&X?)f+pzt5t?~Z|ZhIR#>g2e(;|`wd@~B z#&AN6Q|;xE`Y@xRAWDaN50fs+|ENpPlcsNeV3HrXMUkm+{7=qX4U6;U?C7tE`=^Tf zi_1f)BMXO|(e(0R|El>+Nt3lGjQQ5V_{|oEamzY?C|oa-+$ckh9eTXijW`30Pm@Ub zrXK_?=4EF|NL&!SbIe~9zSSA?;;Q>he|-ai z@U3i=x#|A;yQ!!Ai>V{^$*Clluvsi)CCbtF&CjS2b&Mc7~g zKe>kFmc2R-j|v=eMVvo&Nv9sBhvt^NF1PkGp%AGI5XzMS{vi~R!_;1$LvdmP#}=Ix zjm{|9`k=nKIT(TuDag3~1`ff_(QPXvu{kq+u8LN6*lu|VWwFLI;|8*_8bw1mLmI;J zHPw|vjp;^UjZdDv#>}@DG<@FDq9$R-PcOLdFGt);aU}X_+K^ibAy4n4znoDrbOd-3 z-*vV>!;ViPNINFMN)k&jH)N3|?6{klz3aXy-%US7KP%wgvUSGC#&aiV^$VM4c+?Hy za5{k)LI;y~P}1DNpH_%hRx7RBpVD-@ce<=53e!9v?mv6VeXe_tLce^HsGx=!y^z4= zv%VRLFpTPOjDSHLWin=OV25f2TW`!#5{&6%ndwDMD)#XC;Kdio6)rI%SxJctC#ZP4 z2X&|F?eA{haw$W@R^d_2rH|0Z=6gS$VHKa?VQ>X|!!)ami>~R!+8iu``?p$+#c?R= zcncq(GMfw4#F%zWY*O?X8|xX?Vk@}@_w2G_wK+Pvcc)~6m^ zwXyk(){nUt6&A~EXn*RGTF~OsJ2j0?jTKS7{UCw1c38kSpj>#FILt_g(kn; z|EOkv>%TfTI-qj2I%q~auz(OG8&xYbifnj&{Dl9w_c!T`oJ|hN%Dz6uYBWP7yuVx@x~8?3q#hk4Ef*a?Rw0S{4(SIE%a2x| z-0@?VE)Q%Qd?z8nVQd+9ac(9s-Is{Vu(c67;qm0w*IC>63^Hu907+W4A-HXxalpYb zq39~Os(U>dMoQ#0Se{!*{;8Obd|C2ob|7A}Z=C&bmy7N8HAQG&oavZy&2R}@NBT@r z57;c{_qa<@>*a@uwUb@P?`y9$AFT5qwLg+PRuy3Om=Mtwmiv6I{>vM5>6OI#MtfA4 zNNTjY#?=a2<6>WL1I&^e`BK=P#8@BxDyuZ9czdhdkY|xncp#YRW~cPeU0-BSVA=)K zu@;9e({r+D`cyw?(^>h^`KE`sQKPTs_gO}0iE7FCrHV%t+8B&kIycVN#T>V zSvF1zB=%X*F-iKh@KeNPQ&ZFMkx1rTQQ|~j<_W@c2x)uHGoG}fe@QO%MnM0YD;!ox z->sHNt4b0UEu?wpk)7fv+_*r!@A|~Z$ zd|hKb%TVQ_+UpYMxto=x8>vexjj`+@K^kmzV;Y$Y#g_G%Bgr}K$qe(SZ z4=?Spb#zq)zwllu^H-2ALY~1V`0kQ*@2e=U0;va=)#2dl_{O=pWj^0heqiBOzC}l; zeblVwk(3w8#a{an(7>YiKeI)XSFCTX>`AbQcvNCOs%zNy5wPk<9srU#S zOJ$Mxwjix}|H`+Z^6K@(Zh0pk1qq3r!}8Y1TLnmIrz27UH+~C$r!`)7f5*~j zmP78obkoP@a{cKIv-3*zac@VRt`~oM_DfaZ#P7Y@*TPl`-i#C0F-P{5zaK&*8eV%x z)fxhMv{%^qK_%mBYUw(x?!B#d0D_nJdghnHc5sw)jQw@icsn& zPo1LHB`z%m2&$vvGc1c*7B61B_~gkG>(EmBs}{>SIloZYrX4SdJy}NR1w(tNZ1hM$ zEUobE+iRuvf%GT6k`!N3fN|)kd zHlTEDD4UHwPmiQ)U@yW`_EL9{{{P4BBX z&UZgzC%V@{!A<3mFxZ)nPNs?z4eoWEgG$KL+)m zc$?b7UmlIRyqvp(9L14^p_aA%`|_djjLNZPR*O$2;?X@-g65)5x4vj&9q6U? z=Jeo2!a39%IQ8tledQ7HcDR^L#Nz;+^faA#YqlH7Um&nG5e^h(*&&h0%xdtc7Z^YO zb5bbybO{Fmv7k|axQE021gDWv#HE|~;S`*v|nZLKc+acy+u7;*&mFIl9er&xutRC6hc8b@tFbIElf7rW?;pPs^<_@Q(BP zV-s(kG^+y9_bd(Yi4Z?NS8HZwMo^5Y@lT$PadmXuDB>dCw6 zZ@Yef&s(H|IDe2=A&PV}5v*76Uw3TH-Z@|CKNyUg&I;-Ww(X=U1?|I~><|tJm?)wvPiEtw6GK!8ULPI~} z`m8ZL+HZoe_Pn%}3Drc+5p4775tWm67D;+@l{Qw%)6P<%9WU`_m6X0d>p)tag}R7m zw@hbmy$%s>GHWSQVmFVqzu=k?b)8Cp4OGFUmxrGhXG@D-A5pPy_pkB?lX$e!FNu|T zC(*gmH)MccWWaq!V7hKHl`@i`<~lUU<&pGHxh%IEQmoC!!&{o?4|^FbFK$u5tdUrX?}N zT@gOAr%@WWS4*91M2NON=g&r}s-2jfg;_>cH;OFftGqhw)wU+hG9zbYu3o!#e(D@B zCkgGn8({e44K!$p9v+MYf5lP<;`1)=6i5MbF6U4Q?3FW(M^}FVDJb$ejbgi+A{hqTF z`NW>+mIo^F{b+TZh2A{=jrb$rCg*K0Jm8CG-^-V0q5JmkwGR)klsi}iT++BSwz;Xv zf8*U^g1_j}rAwoAh;&G?1ACO2jaqtDGCchA5h*FZ`EswirE>Fy=-m04`|5+ERg2Si z&TH`)qGC9e0Ip|Ta!zc4gS)&#V^irZR8;yrDwtxI0Nt|KaDKYNzb&*vpUmd9$WQd3i7 zH@^oLzpg9A?43|r|M{IWUKzLsC#PC)=Igw41+(?xgY!?G{6O95VWyHB+0Yn!_!|IBVAkBbf8VpraoY%} zViIzuI}Wi-*%@z^4UkuHq1>gx43Q;g?a%L$XhGB(6ZJu{0;evm_Oi>HI!3wH+hb1Q z@p{0CvYnqE#vPWCDUK0rZJ|#eQ2ON)EvQCC)2D{N$$hFy3sG&gAhf!3GwWujW$YH~r^ijKYo2|M>Hc zJd?K0oKSLvkc5qHP@ku~y5h<03@-`ugS!3Sro=Hq!LE4*L9rM~+O zh}-;?zJiW{bJ}(SzOGP{y(27S;WHzcx)p3KTHYA@&u6zi zUTcHx{leF(9Nxee9^>+PCa|x}8z91LP+Fhs`uZTN!IrR)+9{ZIp7ELjnA!B97$dV= zxw%4x-C(j`Nc}Y?BMU8TVkk}QR2mNhJ>RmQoI>-a)(ZGd;G&EHs?EP@;lU6-+_KTQZsF4(`wrkY z9lmw6Yde#@?@xJnXe}&sK%ipsho616XXxoQ?Y;YLQVuSMcOV>;^~wrbd@4ebi?qa9 zzkcoycFy>PVb=HYKZh3cpKd;&^olH+ zf!GS2ynR4kv&=GElZeRUQtn3zJl-}aMM22SYLxGQF}Q8E$9 zNY-ecP8-yjKPX2NeF5C$kSlTd({HAnRgWa?rPVkHRGqx`heGs%*T^!G7^s+fCst`9 z(jzmbaMTsqZ{%F*`4Cbj2LYjh0QTyM{8A5ze}5|?FOGLtkKuO1j}xV)1^Jz3P;@nv z7BI)d`{D8dw$B_WBehib-ngMaaR?rMYaS$53g9x%RT_~M>94+Pms6#`Knc?rkqT@R zsG&-8_##npsk$*`aRc0hP-bU4ms{jMv{*5#T;>(VSsZ~$#a)U^A=(3#P#JGeixK7d z_bWq>))e@yCaIq`)^YY(pD$LrmFrCAqPzrU<1;UqZZ`btGscMk8s9zP(4WeC@nYyI z)Nh&DJD7cUFUnmQiZl_-EXCmR8@9izG7$U(wRXK`qqZ3y6`!r5LhMoF32ZLyxqA4g zpWfDFWxYNoePDHXmTCvrUhjUad|G+veQcI3-KMS>Fq;&?%#8Fx0m=v7*_s;_-FKe1 zo`&nw00VWy~fxgm2k?D=+KjI*OYbcX6DdrgqU4inoMm!|W zx;d>54JM*b=289&hhh|*1bbi2{Ib};Ub|Lx5)%vY>&w)Qyi^a#oZx$s*5~Laq2LkM zJ1b?hS(M2;Z%{l!+SZ5f6ZKZW4YqjGD=g-sZm`XjEAPxI&8@*fAzjP<$4LtabWEds z9Pl&}7ck}T6?e5h{T9`K`ZI=WNUdXnp3aLsP#jXPa`xw(A?RLQeyw|S>D5wRc;@{e zS$#*TxTZyp0!&{#GQ71L)E~Hia_^_LG?jq6vzVy{D0CpW@ZCH{8dHcXuc$Z)ot&IZ z1Cub@%&zgfsFKd!cOy&U=>jSCT8r@V^inyYQs2C6<9t#XjUue>kE>EU(E(>|UnJEb ziX#=FdjVCK4e9;lxc}d30g7E(4r&Kc^^5&yQtwSoIb+34#z0qY?^!6-)hPc)S8$5# zt@rG2FPC#>2_bz7QxL9Fe08Hi+_BC4hXm5 zF%FGE;GBCSF>(jMR|(0CTg%)9Sz1$Z+hesO{R4=XMn)4PtgLuzy@!f? zdvQlb>rLFzTvk8MZV?brO3;P=yix@PwzGv&<2%Ql1bO@^5x=@RpZ)Cfy2#jY5((2< z2y(*f;OPw(DYWp!7CxMumUl4F1_I^L&Rv~3k{q>Ag%Yd!SkkW+qNrPG0GWxyWQ866 z7mqSW#{CLD?K)5!-PmFo`-@c9I7Lk=PC*u% zF4dJZ|6!UYHpd%Mz$!}!%zgeo_`DrFU)L?pY*=KA$#&N^`pi}~MQdZ6p~;RZNU!mMTZ zFMyD6>as;L=mv=dhrdDNe+tle_n%nFU)0pP=%!#)Bo3Bh_}myHW1oLfnT`M+_0#W* zzqxME{Wr_`pO?V}yyJ(9E`6xEVuvCXWer!!r}Fp*vnxUc>kFgq*Yjbuks$0^U%FI~ z*3?u2U=HvDEOxHgA^p7X)g8qs=I?>@G8^2B3LoO^HmW4s?C^O26^vFpRkqgCFSU10 zEQh6wHIX!P3iW+D!NJz^_nnFV1j*kmHP`o7oM z2PH|kfm)0UetQa&_#eUc*Tmedrgp?p1gpnou`)39wmF77w6@TfODmH<3>;3jD!6!< zi7*>d?A}P0)w}&Z+ic)hpvH>*6ieRdHyigzGZ1o+cjh8gExlth{In*zMoQKBErq;!5w}P@l0w&T>tIrBK{zr= z1nEYO5WvVfMRi!+HF+DG!A2~@WKH3pKI4+@!>M_NH=g_dsL15F0WdY18S@z8@ZRUF zQ%}$5wWIYk!q=}~ooiA>G_XdGwF9X1&_0nM@To9rto6~)K&QBHKmD9X;mflwtQg~| zN0af!6FdFwQjurcjPnE$sQ11p`5oN`X4C`Z9>I2c_Di{rV_<|f1_4rkgIM(Bt?|6O z#njpM`PUxmIiKXQ-8q_8VJ3w6!#V;8+6sA6$kh#9DG z@d0o-P1qZq{NiPCWy3fr&?)j^7B=i<3zOL3nj5UqXNVT4$Ew<(hvOz*byQCb?@>IwYD%DE5lLu-dmTn{H9_$+X0`DQw9p}dmgMX z*2mY>l?@Eca4HigwcGtPcWAa?raVNwDw@VGAVzwT4b2k~nPk`Zj;1Zw-u5$1Qn_!t zP3jw4;4b}|+6xo0l|lXX+1Y-{J--DTa{laIrnWHou-$G2ne|+;em)eVZ3fb>2DfZ& zD!d*P7?QS!JrC4x9|vM1J341ic9avco(3N?QyR~GjGAyP%AUVsw6+y)w7OJ^%QxSh z*@R02ljZ$&d;8fR+18AVHHBY&##NN@ZbVQ@_Xf?hh2lO>_OM<0Ay9yI^ou>viGg`} zuMM+^6Yrc-#?RXWtO^yoXa`jyrzh6Nk@J49is)=TLG{vqpfxwz9x{ zqU4pB#IH^b%!e`IpkM^rmv0cf`UDBpC-K_Eimf^B$-x(MseYRN}A?;H!hks!fEn4LLzyrBG4g#3$cmIXQJ*%KP>oz^|zgP#;)(6H3d)>b4g;p)|nb)t0Pyu13f zq^8?9?%a76P+fAwQ&r0RK7MzY7J1X}vBBs`zvl5x#MU@e-axFV=kz`Xfda@D+eS}! z`*hmMKo_W`v9l!3y*iX7CrTaU(-=9MZV%Xk8ba{l(%&%oKLt$w z#|lrPudi?0NUUmneFsESHkA?9{8t^u-KKfKtQ!3Td?QiCc=~sV#(&zXm48mLcgR%& z_AV<5QTO`zXU>P=-mAU}Z1%BT5I_xP7@?~gbFObbY$|ugKM9g8ID|`j@uKGw{WFN7 zAI|;s>!dMY97o9>MUXQ-6t}KTwyjCx>37==(N$Sd%P=*kD*KZKUZ76;s&8&?%JwDR zgbq#}P)Ip9T;AV#e*DCVL87}mRE`=#S}tGe|5;Y-mSU8qQOQ~qKBa}Kmb+<1?)HQsK%QUsbE@6<v>z>j9kwfl9_VTJZQAKY{smvkowG{`2KCEGD3}CgvDMIrhnZDYzxg(cI6M zL6N<0`s)x~cXo_$v81Xc^a_}EF`A*%2mERJBZ6&GYDJ}In}$ik-0=Q4cUrQkc$+;u z#_Oq{OcKDgzYYWXb3Eh-d&jvJSSTK{wsMc{RWpJJ5*dr@Zb5coA@U`IkYelX#+s-G zz?IUd*TGnGaMQXDK-Fq3TO3!x>Vxae-7sJ!`nd>|%zk1bq3%x3Z>DhJk?r!(_?N_y zoQ>h1{sj@r@-|o>Z%-sIMf>#vlNw9%@eP52G}`Sz3~V5+YItP8W534?x`i zx5~tcnLFphdt2){KzPCBQ?sM5d?q$*ypj_$#MfW^rBV!>XEy8sdBKyb0Eg!uJ0?c% zIF+kddYTe+A3z^a`7w0BQTZb?E76=sU3JsVWy<WjYJgazTlsb11+F2zjo#N zOn_~m*9QhpZ5x(s^`BO^%rr)k#gsF|qHaxz2=bVIboSd61wlQec<#dEtW=%6W&t1} zIIIaf8^u>&&z&+>*7!}7WjG;-7R&~Mf&%WJV2#V(y+a;J&C16c9z*;<_JEEy^DyI{ z6*DQboubQeFW=tzix$p`oFhhYRU!w>xH8%shh3(vQn~v=ig(KxRgx zXrfrg+mhDzrMjkoo0R0RX{M*ZwyAE)eL*#g6KAXz2h3yPVWYj+bK_E88RdRl-o;v$31c+NdpVE4Kl#Z(3;7$`Rlv)zgV zr7kIHyyq`+jL>DLNWx zIhK2oN-HFKlV7tk{S`pf%LR`+zLn;E+76O_wrgVrmw#rVSGlz!Ra|C+IfMys^46Y;rZy)!^uqpEea<@4zBpmtrHP0}G3<-+1cRdken0$QHOct{K4 zIUZ{Cv&~mD1JU(PKe}#({Q;^a;L<8~g;e+qZamvanRg;PJZ?-}yq8b!E z1ZlrZ*wTnn`s3PfQ789)Z~E-_@4maZ^Y*d#%Eui~zrK=m>HA%K>+i+wYn9x;f9^Y- z@4b%vQ|f!yT}M>E-~ZcBA9`G_oIG}*Z?TfD=(PLMVbd!bVM=V?Vls8nn3u&j^qD16 z4E1>9hZ2KE>sIb{5IU0%oeF-g7i1YWOIo*Txt6ALB2WE&{`|(D_vz^g+VVQgN(l+) zfgO7q(4~KJ^K-OWc6N3n*e_X|Yr}hzAg3}B7tiW5_m3=h85HG`k0ljRI$5T%`8F+S zPlqv%-3E+l*E=JL8raDxxo;~;p|jAI>35O}ua4bEUMa9{YuMbc!FZ@w%lo)@v!C8P zQzA0dCDozeli8uPgPZHp)(#HYg3C+KC+iQk@9ySSvwRLo8j8KUQ7F}$L; zjSm$%x360xFWg0xjM(Ynt`~vm&_t)?r*r8?=uSR%P zpaIngCDOw9+76x@1k<4id@ws}eyr52KLj+s)+bttHy({J4w>7NM((OCD=RxQT3T9K zK~V^98YX|piVi7IeOL13YPmiAK70rJRAxb=WF zNco1H_ks-Yw73-f?swv%@4r9(-4FkXjX>|9MB~5J0{ll)t%T3-Z5ZwI>R4_4oanha zea5N56Dlh!Yi(nbM8@zvnIG@3&FZpokjVLh6b(O*ynp#SVVCal4(e^`EJRW{>3^_w&3Nf zJ!y;_-`Jj#uJLYqa%53%t)Qaul|1t2S7_ljbsWQcMMVfpN=m#Zg`f6Ugwi;=TJn_a z#$Q_G`NfJjipW$C$Bd znd)%NGJ!5SW{RR|XB)3ld%&-tSau?)0z;^{qiU8lkMG>QPN^OX zNE`1ediQYuEmhbfn z26gwwgT0bW@dE|c(2$vHZ;8aCdgd~F>6X@lU zrCJlwCedP2NIEGvR$XMCxupu_r`Yqq+~FNlMHn zY4@wR29bc>kzl}j1*yd@z1Iz&xb^vwccKx}3U@7A82wV!X|-9YP6{5!h0G5W+Z_Cv zlU2w7<1#!=-7S$bQ~Bf$djM2vElImapVRc|9$%uOzkVD>QiWISySN z4@=Sro@mewXD!#Tsp}D7yo2Xli75yGl>;40|G|5Hf}Z8ckzHkPQ)f08-9;})M@PFt z@sA!oGF`PU_3M1tTY0)MJ0E?ogN*E4w_bCDCpfpP!XIn-z>ws^lI zlVp(r7rrII6kBP3SIu;(yOBxbHr-uY&2PjuD`qRT@T4kQ;Qk&p-&f$*l3K=S#+T6; zkDO~my|N;viXqTM7OkJ5t@wp^3s+98 zZc;LFnMh~BAMK#je#Q#S7b5Hqc&D}SkvFQG{^yFM;j8InFAa6{m@yyXL{gj9q!{w+ zx@!YQ$_@ETU!p~O9A*nr>_xdNWF85Xx!9{4ThH3UNU1r$faq;}l?>{I@057AS@i_w z<)#xb-1Eax9WCG=I_N9`S|Q@=$AO_C@1^08$c5sfP#_%TI}qKDVuYag3|CuEK+Bs6 zT4+|SnUGnSZsXvP!e=R_!+W_P50<#(0w4zfXRfz)2C2MjxNbdX{GrIUrTfF!Jfna77Fz z_V@HW1Iu)#ZOpK@<6NaB?y8mA(L%8J?o0#b14d#O?xgwZdOyW;DvaXQ`}z_Xw2sS} z?2jTBr6fqAkuX95y}ja1q@>nIxwMNL4h&{B0ku@q9VTF2qF<>;mSQnh#+$Y=+esoz z+_h9gulV}S^p1u|^;tBXe+!7sFU7a2q+rix8lWbQ1H-=A;XgQ;^>(5ry7gJ+8n`(a zI(SF(1ODnv$J)jrD=m2u3x&d?wlTa!Sn&H`FgY#UKU6Zag1ge`4dz*qvm@hc%tlX< zfc_i=g$9-$SwTE2k2plD@0U`&#$(Y!N10X@?1`g|PyYct34SmZjk}hqkDm{r5@Ye^M#7gz5fv~=iMua>`3hL)c=;|=f;h-{ zqxw@+op8YJOcl@p9Nf!XQ&bmn3^Do!uC=VxPeNZ#G{$5y9QeQChTr9;a|k995-#?o!*;VDZtU^= za90T4o>^R4O4;7r4@~@%mX1!LOHGj8w+}ZqSM}US=hU^LzU5-I1UtTs(mdTtt&2Us zOq8O^o$A7!q|`>g2^jqK`6K~XJ{1zV(j=`JI9iEaO`ry!XgmrU{0X3MF8nv$`@mXN zohwgwq!2-R17&uP1+E_il7G+3$`Wxg*bu=^Ra^@;WCawH3p>R1V28ykDgXZX|G$37 zftg!<^`czMN;4-k=w#|6TT`qI&S0XD!SiRp+u08s@bmS(29ihR|pn2CrsAKFSBGN zK1cyXX*54v=5aY88f|Xn6$fIXo4b3qpQewtyos*YmaGSO0aIAti1hS4)TSRF#vEVi zSE-&p>@q$*uNk_GM@?^y#Ux43cEac9B_t|eo%3L|;cEn7g<7i5so7zVgrG^8KpFh; zagcw8iIemxMWI&m)ssHiTl3n@4V8Cp1l0)uZ=^u03z$Ds{iavi6{kqw=y;j6TjE0L zb({XO`IX@^MtR4xVgu-hkObfzt!xT9Ev&wk220AJ+LOGT^OPi0cid3fUnSF-Xg=#jy8 zlij06tNio|3qDuP=zzpsd#`nwB4&9p*nck7juD*f zT+-pewI={hq?8{~NozjqUZ#;EnttTX7R_DE)A0Skg&Xl+@fBL-vD;yVhN9p6;qVH^ z-Q_jb^AoFOl25Plxr=~l7krG>6i&AEli(?GsEuP#oLP31j;?T_+t9$vxtivk{sS$t zC?jIPtiLgs?aj_K4zrIzb}UCO)SeMP0t`8Nu0@WUTWBy#j0GEfIoeoQblD$aCpX)d zM{K_h-gbzIpsC{^(wSkGEe(Wkwu3rJdaDB!I&*@?hAo3gdObIgJ6@4gH1l4Q(v@dr zR6oQEpcgsBM7M25Qd)n6V=!}X5@$B0y?tVZg4I@-F4LS|XXrq?vnb1`_M;oqMa_Df z)3K6QanZaYQ4-N@RWLxM63=nPbc9opT;oNP{w*<|5=s$BLLM*wvg0m(6a>}uCNxeC z#D_80hMF`3mWsn5Va1h?T-J!D9)sFrM|uuXEU)5h?d)dM>VF8*sSYc$>`FLgC=5Sn zEUZ*@F4t;XkVLQ=DQ?9jCDXYrS?x4lLdX8F*_qF$61ufhV$@=>-$-y*ELf^n%B&9c z>L#u8YZo55^w*#$PshUmfWFF-H#xR8tKJI8kBset{S}|Ng4O9SP(9{rl|B-j+2HXd zYXq6jl@YZbN)=+qU~XcjDx&8@l^Y1D)LOWp(!W|eRUn(Am$KCFHrnz7Vx-G6Hg()Q&{fBG!gbFR?V zFKXbb{exhQK#lR>It+)*1g_&0X7wE+f#1rPY`q(U!9i+-+(ak4`q|LTl*~KRxgZ?F z4IBAAus$$gg$zc*`AVnC#TizAm#UXL5&6PCW;=oK<(tcx+QhEJF&t z(91gEH0B)jR0Wg#3NjLyl1bGIy3pu=%yN1cu@WU-5unov&ohE1oZo(@Q$;rNyFY1+ zo`|y$scHC3nCpE5H0d|A`zs?<=Hvt(&P0&egB?CwyhT!X$nq#jgMb%M4@g`vcXX+& zX_EKC>HN&vFRktu+c=x+)@|%yi|s2FE>~hYhmvDV=x%7=P1v`Ge$xpK&EkXnXLi%fY=PKHPEXFp+7ZH;_O9_fap|5$W@G!opklsY&lEbdP>Tc`cP(WZM%X=y(KcU@}kl1$vP!u=v4*Jgf1%xz>hgjjBqnESBh_%N* zqvXq*;TSaU8r{t(EkPyuYPS(Xvz9qqy7t)Aq-Q;_Fg`xsqSp-!BZeDcP9SeI6iQYG z4Q;Y((Ius&x_ksEpF%6gKa4rlvz}U^5jgu6&_hL56onDQw;T?uid<5y13204x3z25 zpdTlU>U=IV8W+#MTb9ZI^1VDXx)$`iP}x>e)!^ zt@WjeJ{$jJH|KY!)jLyDcEw3~&9vLi_u}Ez?0yw6(*ov;cSyXGsY<(J0z%^I_y98r zqUl5F>N0u%{-Mu6)Y}q#7pTd;6~l=|YXmmGtxAxoTeH-gGG%wnpNc-7sXr7jDf68~ zfRjh_cv6DAf%kN4P0hM(^{cBu$M7(>dJW(-i7S^3v>r$s;r^bPkMxP*fNS78OMU)5 zLnA-`Is_}jASUXP`L(J`h8uH9k(B46x{Drs-g2h9dsyTnRzv@6=3$8o`(-p|v&N&w zL`qOG@J=wAos-Jyec7wbdhg)i!0b#)XlpXr_5)C(+nCc2e;VmG`FcE@&rX6E0aVau z6L5pW;mi+`TqepWE^FMHgI1y#OdkV~3)h)hZ+p|(1mHb>NIn8nOOPw)uH5x*9>u;EyZfYx*!uEV<3 zU_gCfzlT8wpfO<<78ZaSjyhYvUH^aN6KB)?wBh5Ft!C^@ELCtE8rrMpGhN9@Y-cx* zr=PGgg5RGIb(A(H@knqwAW{q>of8b!#tpXyD&QCj(9~vHQZll6Pvy#nsIduKj#=1S zNaP${J#icnMqbBvgbg03A)E_J=Ps`af-{n=Vm5LhZ7A%P$>zdIx)lZ^koBM_3Pv&z z?JGyuHA!xC^1^6_C{rZ~vPW^l(#8Kf373a69VxnTy!=2yWUw|0yv3{p#;D~kk9q+O z5(fbRIdWvjl_~sjC$J;@VmBWY!D`(3dRHooR@m>)dXJsljtlFuDCIGt zHxu}!q%4@%OQK_{zy$f5*dGCIh?xf7W_D|j{BS@gM$!m(!b(qNzm%F~%Cf%K5|Jpz z-r7esBSey3-EnI`Ku89>bVk(D^Uc|jB3(72Q(Zu0f+6Saw%3v=6em`n2beyy?h{qP zgzZ^}w3np-crq*3&bD)E1WHg1&mwt^$!@XzRM|6>3}5av2?@mk`6kvdgcoQ$w_hT_ z&JE2Z6&5O`xNhU6vIYzLl}s|C#A$hIn@tkLCp+|$Y;P8Xzf3YCqb9KssFa#hTCh8Y zrca>)&WjW)+0o>#Knt*lE=theq=a?*>c=e2KlY;%>YOT1LFIXe`g-)nA?97&u5wGC(cdb zgEtx^BntlfV7@Py#kw0&!C&(IG*_QvFG@FoX@ z7<5qwvXotJm1SJvr^u_G0`{~fw8~5aB@z%QIeN5l_LF)H;i1niiFaONe_vDLYqf75 zucTeY238l)q)+|RK{>flU9p5nq<}Yd#l&?6n{TvuSj`B`veN)xBrX>?Yan_Xy;+G3 zocG%y5pd&wD5YrW@&glb`aWkub< zJB?$kyA9`G$#FmK)b#8*2<$sm7kkmW;n!0<z!8-TSBjm$6@VNXVUExEubq7;0hBf>#n}P)5-1|0#({ zyVTeLZ;$OsB2V`c8s~~yls~#ou30Lt02#n&Mp|0hQ(43Xb1RQH74PC}xToWA-gr#c z5gGF0Gi|rUv3j2^?m}<4Yq4!8OD4O`NY_2nN)80-V9mgQfPg1lAagBMw77(FnwZ*{ z97IJomO`_E!AK)Sz&4NB_>CW?e?RbDAtfUjaEJv2vN0x#+X}!E9!2EXRaK=LhatVY zV1kd`|GOnD-+rwGOTzX}LVv$#`=6(PKh|aZzgk%If1kVnGF>x_JKj)v^Oo4J z097Y^f?$JOqN@wG*8S(_LH?3j`QON2>b3*7AGogOWzPs>71}^q301$)J=;xh^((e5 zHCt~;(OBX_y3YTJ&o2f%pHB5UWMOf!A5OUepe`tp(2uyTu)Q4L)hs3f^DER_`;!U_ zU6|dqj3S51FSah7Vz}1$6ytlp8M)Y}SK}J#C&q1EhAKdD4eoq}4qXfsr9))&R+sg- zuku_X{zasVxeQG!eI;qpw<0kD;15_4&&?J*j0^2wZnOeBiwt?0Ta`5p4h?w?KhyPU z{4u!81u2sOLX$~m&EkvEy1LG^wcA4B*9T&lT@kSPMAfnKyrO8_De_y5ZXrq%HL>Gv zbwOdFM?XVc9Fua)w46;26m_HjV)4&VD4obm{Xz#`5WGPrSa@%#lKv5DAIq=gv&Z}T z;WyOJI=;%H)e%sgVK&(mG{91`UGC2ydc3EUX><7IiGN7sgi~R>wWspB~Y=4@% z;y7+%&=*5}v8h3=WUhct+GJ~Z5Gc)b2AD#(I7>iMBnk{_>DGz}S9+5T0R>mqDpgit z_&_%y%-Nyz!QM?W5wNs{)zX$y6-o!T6e*?DTDsqzf5DQy*o*u2=H%RS&-s17pYJ*6 zb?rDB>fI#KPaAK6=~i|x!9BisTL1heDG_2I8Wy;WoWn0C;MA6w&I+O2HLN_8pWWtj zChtJz?y?w$C)4I5bC2NT%1-=ozT=mn?5@Xln!McB1?!v{iEfQ&6;7SDM-P zOws!)CU(Va_v#nj7NrT1!ff4UJ^rAsdS_p)s^l2Df9urEu!ffH z*r_bgF0fwx|FsK9kv)HnX&vqjsS=`m_8O13m`3Z(=?+_^%Z<%ft8!E^Y@P<`luxR; zhh1B=Jscw$3_IcR@{6f2oi~UXP@GKM8G2fDEV*L#Pv>deV0=1B2mifO+~5SbWJ25S zgX=c1Pe8q-bQ8o-&~d>8X!^>i0;AWR(G`OVsO zc`v*Z^=Qh{=VaCM*^Vzzqs2G)S)CdcF;}npAuiW=)dx)BIGn{tN>OG?4dY*h9{4vq zTE1tv`~3?L%0Q^f!C0V80n}NOLa8h@_jCgBU^exwPr7Xa;#5UUYvnRvJHLc%DIXlm z&leM3`B?Eq^DB{qlFbe&luvliddJ@LXk>IwE>i}P)@_xuIhlb@uus!*mJnL#uIAYj zFku#fB_u*IzQ?6%;0D=PhA`YzQg^V|({UkqxNy9tA7(O}5E%dCD+#ni#j2)((PCmw zFijIf<9$%rNGY9}(oBA$*L=kNh$50kXAGy>YvQg^ zGnOof;Eel0C|!s{9-I1=qP+EIxG4zP5ZT;-r6^1-%h05SHitxi^7Yv0+c-#(0kMD- zf#-sZegM+9BH|m3^YC)g5Ju%2gz>F6 zqQ{nsKblqqeEdAFo&HbHz_Ky@+x1kDlE2ayj(QXhP}Q4M@!;>&_ibPudSMX(t&lnH zk1g7EKn(mM$k&B6nD4BKXN;J$Do!yS0p|TP9Vk}L`F*V0x_dI-i(13CE_CGaX2O1& z(Y;Gk+LvPURK$GMyhZL&M4lJ{yzy%^M9l8?UOzaprmyF7p=`9kFjYcN)w_KrPYY(L_A;hzOo9Y23|HZFDxM$vkl zSa&bnvW0s5?3sT&$oW3*<|@bIIO3asW*l*~m8rtI&E9nEF}He<{y~H5kX{wH@~1En zf47Foi})^;`W$+!&c!M5Lf%~4QQn+~9_qb-wx-{c?QNgpad)!#AQ_mQL>6>82T=9p z!uZkdTlZm#BZ?R9z)OadZKX&H7x-Rdn9=bDzAsi{oUdSq?U85IwFn zagO9v&+gy9UplW-2aalT;7hO68-Ftqx%)qLAv9$X7`p(ZD_V`rt z;kb3-J&nVDyDxw?V2(c#k>y!J!HN%8@=0m%2R<;xqkGXukP0m`X#t0+Y)+ll+LU7` zb*(bNj^IA1jxy}ss|S-cO|7!1K}*ydJwsD#ubxBIH{~z9Nq7aX)if3tKi9I|?~TUo zXoodM(l%To*N1$4pvkjMLTLPIHqx5G12j&4)AG7gvJ&fWv6A(UAxiLk zNAweWkb+2is=xiwBAF9Iezt$#JeWn?H13PdkwtthLudGRkweA?e*_xTR+|j zwrEah8+OqT4>uw|H+`djU%gkNS%j{4EyIX-Mu3%(}Z=Ug!cdY;7w*y|< z=s~YmP1&wLx}@2txnEXq#}FPMr|Sj)Xhs(e8h4jdRhzeOPlPq&ten|Bv{xT03=u{y z-?U1N1o4#YXaP&HDo%TN%eT1kwkfsg*S7b#`c=+b2g5Cis^p3jmm%?ej`& zLalO})Cwdaw8%9Lmn90|BnOXP zr_a*vlH(N8dm<#Dp^!rzCy~N2XGv|FMumh%W)Ft;Tc-Ka#;n{Z3~E}e=35z=3&hbd zuWtvoznH&$63}+J3SFjh)B6+L{U=ki`iDA#S@)<@1EsE&0xjgbALWuUz^?@kt&C}L z^vsV|>Ou-~?4dCi8HMu#_f2K4Rrs+~`X=M$F)iFvF*xn)*s;BA)8dyW4LmQ}TYSL2Q8xcw zUP34;F+ggs@+|90lQL(pwl$I?{h-42&OFp~$JkLG{PF=pyQkvsNxmn!4{; zVk<9HR8)5gMf3csYLHZCE(h2pyUw=%G?7Y`Y|IXVLUM&zFT(|Dq0SFX> zd)as5sNv01$8FcB_0jLeGuwB_hNgP=4v9^uU)Y95D@DrPZps(#d_SY+Bq5u|JEy}8fw@>m(!KRv zP4up?N%s9Cq=P)FtH{ z!}|tes4{@*&wobh88LdqID%?jd>5;6vW;X`DG!AW>jwk$mhyB$w!=3j@vSv;C9UeP zVDL6XYiXa{r2K*}i$%}9r?v7{D)xreVXk@&Oe9>+!ulgUd2dfv$3Z1O_nzr4+7U3fCm=fkr_O%k(8uCXugDq; zTeF1dsf2TUP9o{rmSXv*X(pk`>n?m-k!2+0ylb@)4k}C zG;Zx4A#Lw1+HFw_8v@36b)Y--DBn`NJOR_2f&+Qh+>P&XiL6FDJ9AU5ro~0Ib_G@J zfPQBpJc58Fb#7c*|IWvvx$B`k)lfV-7B68{rr|OM=W9)TEHm=wdQ0L-f0xG$Uu$bj z+VhM>uIVjZ9gB}@H1{Bu`sD4iSZJ*9;P=Xd+eVxgAj|&F;VfM39gJI8(wlrwVE9@_ zYF+;o=bHT|FAcsg%n}nGzKH%z&35n1c79nhId|d#jH(ET=y+)034XX{l)4=%9|xe;jU(%UL(8 zB6<$MBl6W@BWf3w^y7Iv#l;b3?^wAMqzU?wb^H*A?bkxOc!6*rflj`vYBVATg(M|< zYFFg|@6qk7p!?c&!C=Q#Iuy;Xtglb3<(JC^7Zj$QHLSj-ge?3tV8J{V-G&$z7CDoo znhbx1$(Eartfy?b7dJkoi2NJO;68A~hiA#W)8TB65F1gy7!ECSlF~*iM$LMj?=iIZ zeme0C;J3Tbl{YyL^xJq3f7wBKE%_inD4&zoQBU@`CAd8bCrwevKvmzcFRVeY|6<<6hsu4IA6AYq=e zy~(}@@kTXY0^p}I2T=O*7n&{%wRjfC*W~)v^k{+lO)jFQJhmu|yAZBb423hKOTP&S z;<0O4p2y+4;o3e~EcS2(h-*z3Ya_~=ONY_G^De(Qc8sh!WcT!ByHu%E0*hP!4r$L% zsUh~PIFs(Z6%sBrE&rZE#A1h*A0L87Hz}44a*&0ubt}H3a60CC#Auj5rHhxq`7r%< zg2+Kre+UVhPFPb&t^1>$c=HN|k1i%P`M260f1w}Y>HGRRbLXAam+qS(%m)-KE&!lP z>$@^6dF|Yd)dQ>wU4ZEL6sgL_lcy8(mgt5)u9!IM*R~;>ntn$zO`HSjf^0Ej_0+OJ z|L3uHc$lZh;cN)dy@nmi4$Gis0p^m1qVJb0@zp49djw#zccC(M;R&Qp>&brKqHsn5pLbk{ zk+@vD?y&##liuBr@TRs_Ad!l%7v-o-23Cv6wwF69yeU*si<<*59razO(~4neI(8Q) zlGM~DTsU?2;DZG1956gSE`{T*GgVy^;oTqN>JjXK0;qO*E1DhqxS$jo8IMy78PZX2 zyk9-w=H^C|Y6t9|EXHBrf*lHta$(%-#%SE}x@=I2M2{+dg`UF}S|!+31X z^kL=>`~-fz@n+ZgytvlIb5Qa7tx2L-vD67WR=R{%2Pyyp%vl0gzF%D&P1@h54%i3q zo^}xsth%xiRy2I(8UyEVC`p-84)jIorRseHa)YFFfK=pz$#L`_@+no>rJc({Iq#%Mzaw_epmzWQrs& zpV&v?T=|YQGG-U@DucD~X>?qlkn?Jx-xqrVK7kq*r(YdXL+nm5rMG+yM?%>|2iv z3k$Q_nD#Tuc)xuj;;pKIxjizR^qkrKSOT>XiW-4+=f$Oa;YWexQS=bKw`~s1x9&Ei ztB@1dm~P}*j5p9nJBm9^HPLG08u*7Mu2XKI``lqAdM23abloPsFyv!f1)nx>Rr8$_ zailj5!WjuON8)QX@{y^mW#z{D}vAZTH(mJvX8CZz*c5y!JwQ)U1 zwZJDcu2jyAcmwvJmw4aZC7RvW2Qo%KO`3f?@NsS_Y2jEp>r^D~XIpq#nlU7MK-p~mR94=R2xvr7xK+Tb@*c>f9* z#x@N~#&}Eut*crh{HPZZvD8<-SEUx<7yG*srYe2T#dQc&A=v$cY4IhcM;I3HFH3U)}FKz#dRtaK7{Jq5w=m!hS^|wOa9iU zjqNUXT#^w@{X%NZqm?I5#($i10hFsUBWV0Td3~{(2#6jnl36`dW|zH@d(iO^h*@=? zW4($WKW+c`qa=J*f15wlNg+7OtlmGHot>S&RK%AR035=gwHFv~r>|==Mfs-jYcAXv zg7U*LKZZpe=1W| zJi;8BXS<`OTvFzCu;{;{No9qR6(m~;Hlq=S^62^hI z*W^ASn~#r)I zFrvICdwh$6CGCzo3@z)%ajO`4u#n}%d!RwT5vBP8adgpuD(L*7KvDuhEi$0@M$%Sp zUGfQUq}z}3E=g#^52g~=ZY!1z>5q=$QK}FRYHC&cmrCxy>0?`25(1i*j^hm^u#M@> zlX0_`)X!zroU*E{Ifa*O?FUO3UeR_Gg$|0$ef zkC0~Vab&E1%8vKh!LS)QG#y<)JY@K8UBmAe^cc52E zL7dy#52B3lg>BPPWLjgXQ~S`}^&so8h!Z`zT9`dpn4>wC`NW(dQ*sy~Q~q0X|6~i8 zaQZ#qTHZ*1Nx@HXxs#ngW16CEf)i*x``zCLqsMWQx{GJa6D0TvApP#^y(*9+y3#d0 zz#J(+osi?adNWz#k5xQ<5#9T43r2z`0lepa1k?8U2nFBNy0;VVWG$J%@<&FSOj=#3 zX^g6_gO3dkVs4D`bHV}6>Z`&HAW00r)OZaM1S&3ePQnUX#wmcX6VdIj9 z%MZ}Bt}k!^OVe~+Vyi^S4IfWs`}Q#;!^FsS;Fi@kSHY9rRUwQUx?CpkCD8IgWz>KY z0!P;;!U{kvrs_zQdJtV?q_{rRVUb+zz6tUe+Q9eOdI>CxTx@z2OpD(VNK#eTk3JgY zRK|vQu{(gA%sp0*Ylxol%JF6>j!&z?0R6gW0feI*G8z@H9dA~wB$hN^Oif&q%&dFw z8Zb0C=(~pHko|I}G!r89>PwjAxmjvTbw5<4-E8F|;LJV0%$64Q7T;ThJHZYcSVQ9$aJg}n=3`Uw&E^7;k9X=Jn< zY?~Ri;B;~HwS9|YO`_+mn*bi^p55=^QxQJ+v2$^<+(Wsx_$Ygue)k7U$KbGWQeA!h zspnnZeLKS5MT*s*R@GMZC^f2x?&jboC(8=UO}KgIRrqVCM?pls{gpsAS=eZ~1XWlj+qfQD^&(;Qs8;kHbUBA0}~O&sw`u?LIAFp%P`Shhx` za6T&Um$lk?1lV1>Ov;&P0EEMyn?C~!n{u#`88=2pXEfXNmlrEM1hS7cRDWL)S^EBsK_!g_bIn-o)~ZBQ|E^q9_#q}t zeyPH<>~W{Z;}@~4y2WW?K=XJ~Rvdl$L$YYHNszd0vsO9@nwvKat8teIFdGkqylC-? zXKx*K7m_H4KyFmVQf6?oo{s#LE^L@P8BQuoI8J=HLvt1PYD zo4`>FP?*FU;>Airk6(c96q-Lk)PAHKrAlbQ1AxnH_$6r2;-6`+Mub5kB>x#`L(%!->f7jfzsOwvT zqCvBjFtOs&INC%+Ep1?F0$q%ZWX-%8CPy+)1UA?egeq13xzYW_zhjlFi>(qZpeOxs z%OLXgkDns)%F-qgU=Y@nry7Yp9-rtL_J$8%W#2M@{dzd(bX<0qt9D~g>uLjooT-qS zA;1eGPp94*CM9q|esWE#{

M?w=9NBA>)1eaER^=^Bk`f3Dun&mYt_Pkq^ekq_h@ z@vw;$Pu(|mwj#Alzs;JhIG+wcbs9Lm7rdr?vrR8bW$SwpU>&xA_Q(51uI6NZUr*L- z7hi3vH8WLo2Tnu?YlGX*f#whhg>3ECm`>?li#)sRcw|zKMEVHq`;Br>`1%9~=kHdv zS6)?N5!W?mCZmDThwR#>S%i2HnHo{=9qf{nNUuTqv5?d?QnWl{>m) za!p*5l+l$D-4Be9=fuXv^|hxH&&?KC20z|m-QEJ7G)R}chOWMsSA=!t^#7M%)d8F` zVI37Xl(o;Y_qJhZ9!W*@=+rw9c__-XIfgC_QHUf~C|NxO(l}ye?S-9t=$>!JPH=2V|J#lAQmBz@ z#`#grfddC*R1bjbGNgTNfPc7k*El@}05cPphApP!ozp_K8(p#aW@XN41BNi&MD-xv z4AeOmha*SpDVz*U1+(y>8FcQ!E%e9*_r{;W)>Lh6KN$5TK3=d>h=%Jkzh6T4r^ITv zw4cG>koKr$gf#jQiC_N~m82vAE91(Fya5}k$f11{Foi(cX<#pJ$3EahclU+od1i0! zO7cV$u9a&>vUi@#@~c~ZxkmOe$ra~|^2{cpyRLw@H-N&?G2&K7i_o&GNh1&48>3CI zLw0#M9g#mwNgy0dT{sjwrJI&;sObZWS#Ou3+dB-K6$e>kXY`C8^gFQa5J}T(j@O1> z^dwATYI}a(t!h;8f$fl2#ZA=fz-oOL*l;MEoSa;0nSD7jHWpD3!1se|-{uE4T#N2J z#jH!cun>w7wfalsOK9ei=>0}qZ0_`A=G4MqSTUb!U`q3FO1_~9bf-!{?WSMv12uXMsQlRQCEn6aL2VQO9yW{PLt9HJNvGq(8xBT`E*@f z-Qu&ZJ9q9h1^Fk=Cn6f+78{zJ0G3yobFEWqAUh|dIc_xh(P%DUYn-+;IB{(@JKqdw z=e6;;Cn1pU9;faV=fb2H^L#tVi@k~&g!I)dOZVvj?{Bp6}PrQAR>3_b`Vo5 z=jN+CpTD-IyVwJ?`LTU~KY@*7PRlDm@l>($nAjf+#8_G@FF}vuv}#5FaPs6;;wX;@ zmo1@DPQ0Q>0!jopu8J{lSI#^G@o;bKJ5o;_@FuN?D#r!n&HbQf((7gbAL4~=fn1bNo^5e-aNrHP zgJN#xt1YSk4Ve)mB$Hqv6_HFlbmPO;e7g|4jKQ-7?c(mWZ{OU}2O})5?8TxN!Ex%k zPu8H?9{O?lO`ctUEq#ts(46sl@ndHedgTZ`Hndmz^Wj~@LSDn{%clSW%nFa~xSeZF z=AOl+NAa1*5jM#S4;;#71zx9TTH;z}?jZ7165w)et{&v_bh@Uqi~Gr@Q%#_GW(Y6U ztE!1ul55bkoQ_k`X` zlW+oGet2|$zx{DQA>`ViBZgfzKpt`oBMt-We ztTiXk=D4w1B=J;HF}QX6+C}a7Y`UB(_Zs@_gQ;fWuBQ@H;4&>R9W-nuzV;BD``^b(uZ)n$T7Zc7&B z1;@8q%J@uX3TyfSn9QCE>Q(LhY3R&Pv(+%rz=YDZr?#6>cC9C`yj4~Q@CK;bzvw6oC`99&By~m9`-e!nqcKr3WjsedHcO(ty znAj3849Kx8@xqZRAJ}!lF~uAm>*982>ASV~iUV;czj8mAc(HRGr%}$637Yd>P{oV5 z=81~EOxEaVIKz_CO;hDW)pt}>nBO%`je^N10JKfq`1^bE8Zeio-qPdmG1WzR!4z-z zd3;A3TW2Q}kZ|)J6KJOEP`L;Ho}3G&B88ei(2vI~aRjlAohFziJjjqv+&w?&O29KS*IBDO3S^JhhP=?gKva9Wfp?NhRjjP1S;}=JXX@FC5lxtf6 zzyvWeVsYrm;z$*GESLn08vKK_$*e)L$gm)_=haQORU{B#u_>pHLm&y(3Bv1okeiep z=pzuw6Ugtz5Xk@dVrt7D_z3*L=l-n6fd7}x{|TD_{+QYRgq8n$Vc`F`JL9pn?KO7b zyozE*7g{WyZkvlGI5}@s%0pO{BVtewc=7bYEkWpw884B{J5EQIj`VVky|J20RMTevHCNPw=n#jd=tPvp#B)xZDP_2Ysi{IBlvZ z9+++mXS&KSvMQyIqYY<5kx0TXJ{1md6K8GtJ?#Di2hi&U1B~v(Jwug|O!XoK4p?|6 zmSMm)LhI@zd|uAdK&`zAt##gD;Fh(5=!X`iIGQ2OWt-#=dpoBX69$8yhx~*ABOZoX zkA~_1TnU({GZ*)mR*y%nw<~~F0grBm0J|G&{)CTCDdKc^-)*1;7ed$u`I`E^DVD+` znPx6OjU%s(fk02ubz`Wlr`HbfGwqmaQE~eXE&(mQAgR3p&Nn3*m-?x$k9txZfezO4 z6~(BWhELPyCK}^+LteF!S)rI~OxILU%~ml;-CGS@8h0@lfZ9Q;b5jA6nX~$=wPTGQ zV665nc9|9#lqDyFi8#xw$27hjWlY!$z5%UVH0^%TlW&_Y{ngBK1wV&!m2&ESFB9OE zjM2rB`q?&^KICTV{1h5iM$j%9N(yfzIL^SrC+}ZMW5d6vKZB{nO|hvaHm5h$nsS!< z*bYO$a^Tq!k79X9`?Y9X>fm0>960a2hCFfZfG<|$EC$Q~B|F3jzBqpZNpmTQZ#;8u zsWmpo^_nhuXgz zo9*d+T{OG!7+hL^fBKcBjT2yZnjHtwqP?8OKl66Wnhs5FfgDc}O|BX5mDp#Cu1PmG zg$f0Mp)E91Xakr%l>;tN3MVnaOa0c6ovdD?D-fHS-9Gj?`sq`Vnd@BH>W=3`6Y}eu zYe_Q(^dhW$s!1SYi-0)u4j0RkxYJ*GPvcT(>JGv@E8tRaJ+d;#7?3d}IC}}eeTv9K zs@HonHFxRf!9>?d5x?4EhS=nzpdPSKwZ6pZ=$t)@H!ga^RQvMi z4JQ%9XUjnS4^;q?{ki(c&~CUG`xWTSMe?$gcq{E7B}sin&%a&Q5Y8wbKrIfbRk^q# zBr*}Tt&R)Fh+XW!;;2ZsNvl_SniqN8+SsO91*k48wbZT|b}K zS8D56LKiNZAqb(a(pT9akD3BG2YSqq_DDfGasKYEl-3P*{(Os@K~z0clk56u4_w>X zS4RJWpp{D^bIa~r%h%WQ!*+mUDf2&aLmqjT;;w3C9)x&&DEa!}$I=bp7i%8D0QMM^ z6f;XOYge3F))>dgTI2OWDKmk8foj4#^M^HYe^7dDd9h9ovuFHNE)GgOMsoGZCKgtFZmVzOCX}sE28nLPm5gAlk#486j(v! zrQW1jaz)pYGez-W~L-yRXia`BzhAjuD@5-idj$JRBJf#^fr*E8&;oH zu@lc0&7nRQ%l5SosZ&6t&5$qA?sNnPT?kjadlVDPb|7{a3qjV9o%Vg>(S$eGCDUYg z87nxh;R?P55LKt#Z~!Z~K+g793Q3GgOBCGM%JL?ecs^gUrrDLJ8>c}a9GDe#Nt)){ zc=XfT7*v0?Pe@A?f{1<_8xvD3c@hLB4Pt_p5uAhrUu3V%WYnfFKfPOGO5gL$_1IV7 z{sj+r84L2js@IZ1CUMR-6*EgyVq`_MwqEM8ved1X4iS^4+~EW;3hMGDJ0Lfk(66+r`Hk6}9w6HEwEfY8 zT%{|96MwI5Gqd3A?&4Q^K)n5udH-PkVfaSTJ|;X}H98SP1}jqJ#<)>nLvkQ)gUAh^ zdDf{IU;_CPwb~KP%7~BV!|(@O|hnR*4RsUkmQXo^i)BO`NMrs5lMyV4Ol|C?K}Bw})WeEgs&B_(A7)nzO# zk&ZH_yKAkoBsb-x*+h^NnihU2f$x@eCPk@Z+|TS{Re;l zS^)YF{{FQ9^dJ2FzaIe5(Wjlh*aCq-{;{e{asDLa(8({v5Xc|<2mHb3{;bDi&88$Nvc%z()Q6 delta 21119 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 Date: Thu, 7 Nov 2024 11:45:43 +0100 Subject: [PATCH 59/62] use imagePlaceholder variable in snippets --- playroom/snippets.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/playroom/snippets.tsx b/playroom/snippets.tsx index 5f439b001..64ee5a871 100644 --- a/playroom/snippets.tsx +++ b/playroom/snippets.tsx @@ -2618,7 +2618,7 @@ const navigationBarSnippets = [ title="Movistar Plus+" onPress={() => {}} description="Contrata solo TV por 9,99 €" - backgroundImage="https://picsum.photos/1200/1200" + backgroundImage="${imagePlaceholder}" /> @@ -2644,7 +2644,7 @@ const navigationBarSnippets = [ aspectRatio="1:1" onPress={() => {}} description="Contrata solo TV por 9,99 €" - backgroundImage="https://picsum.photos/1200/1200" + backgroundImage="${imagePlaceholder}" /> ), From dd61e23f70e4fa53c5b73b9954e8af2bb832a001 Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Mon, 11 Nov 2024 11:30:07 +0100 Subject: [PATCH 60/62] use requestAnimationFrame for fade-in effect --- src/navigation-bar.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index 907749285..e1f0df5cf 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -837,7 +837,8 @@ const MainNavigationBarDesktopMenuContent = ({ // If menu is opening, trigger the fade-in effect for current section if (menuStatus === 'opening') { setIsContentVisible(false); - setTimeout(() => setIsContentVisible(true), 0); + const id = requestAnimationFrame(() => setIsContentVisible(true)); + return () => cancelAnimationFrame(id); } else { setIsContentVisible(true); } From e8aa2016b7f5780e28cd7a70ea39b0c90a58caf2 Mon Sep 17 00:00:00 2001 From: marcoskolodny Date: Wed, 13 Nov 2024 12:26:51 +0100 Subject: [PATCH 61/62] fix initial screen reader focus in mobile and paddings in burger menu in tablet --- src/navigation-bar.tsx | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/navigation-bar.tsx b/src/navigation-bar.tsx index e1f0df5cf..5fc78f82f 100644 --- a/src/navigation-bar.tsx +++ b/src/navigation-bar.tsx @@ -32,6 +32,7 @@ import {ButtonLink} from './button'; import {Grid, GridItem} from './grid'; import {DOWN, ESC, UP} from './utils/keys'; import {debounce, isEqual} from './utils/helpers'; +import NegativeBox from './negative-box'; import type {ExclusifyUnion} from './utils/utility-types'; import type {Variant} from './theme-variant-context'; @@ -362,7 +363,7 @@ const MainNavigationBarBurgerSection = ({ columns.map((column, columnIndex) => ( {column.title} - + {column.items.map( ({title: itemTitle, ...itemInteractiveProps}, itemIndex) => ( @@ -378,7 +379,7 @@ const MainNavigationBarBurgerSection = ({ ) )} - + )) )} @@ -404,7 +405,7 @@ const MainNavigationBarBurgerMenu = ({ disableFocusTrap: boolean; setDisableFocusTrap: (value: boolean) => void; }) => { - const {isDarkMode} = useTheme(); + const {isDarkMode, texts, t} = useTheme(); const [openedSection, setOpenedSection] = React.useState(-1); const [isSubMenuOpen, setIsSubMenuOpen] = React.useState(false); const [subMenuStatus, dispatch] = React.useReducer(burgerMenuReducer, 'closed'); @@ -428,6 +429,19 @@ const MainNavigationBarBurgerMenu = ({ return () => clearTimeout(id); }, [isSubMenuOpen, menuAnimationDuration]); + const sectionContainerRef = React.useRef(null); + + React.useEffect(() => { + // Make screen reader focus on back button when opening any section's menu + if (subMenuStatus === 'opening') { + const sectionBackButtonElement = sectionContainerRef.current?.querySelector( + `button[aria-label="${texts.backNavigationBar || t(tokens.backNavigationBar)}"]` + ); + + sectionBackButtonElement?.focus(); + } + }, [subMenuStatus, t, texts]); + return ( @@ -489,6 +503,7 @@ const MainNavigationBarBurgerMenu = ({

Date: Wed, 13 Nov 2024 12:44:15 +0100 Subject: [PATCH 62/62] fix snippets coding style --- playroom/snippets.tsx | 397 ++++++++++++++++++++++-------------------- 1 file changed, 212 insertions(+), 185 deletions(-) diff --git a/playroom/snippets.tsx b/playroom/snippets.tsx index 64ee5a871..5a6e16ad4 100644 --- a/playroom/snippets.tsx +++ b/playroom/snippets.tsx @@ -2409,10 +2409,24 @@ const navigationBarSnippets = [ name: 'MainNavigationBar', code: ` ({ - title, - onPress: () => setState("index", idx), - }))} + sections={[ + { + title: "Start", + onPress: () => setState("index", 0), + }, + { + title: "Account", + onPress: () => setState("index", 1), + }, + { + title: "Explore", + onPress: () => setState("index", 2), + }, + { + title: "Support", + onPress: () => setState("index", 3), + }, + ]} selectedIndex={getState("index", 0)} right={ @@ -2441,70 +2455,75 @@ const navigationBarSnippets = [ name: 'MainNavigationBar with menu', code: ` ({ - onPress: () => setState("index", idx), - title, - menu: - title === "Start" - ? { - columns: [ + sections={[ + { + onPress: () => setState("index", 0), + title: "Start", + menu: { + columns: [ + { + title: "Start 1", + items: [ + { + title: "item 1", + onPress: () => {}, + }, + { + title: "item 2", + href: "https://www.google.com/", + }, { - title: \`\${title} 1\`, - items: [ - { - title: "item 1", - onPress: () => {}, - }, - { - title: "item 2", - href: "https://www.google.com/", - }, - { - title: "item 3", - to: "#", - }, - ], + title: "item 3", + to: "#", }, ], - } - : title === "Account" - ? { - columns: [ + }, + ], + }, + }, + { + onPress: () => setState("index", 1), + title: "Account", + menu: { + columns: [ + { + title: "Account 1", + items: [ { - title: \`\${title} 1\`, - items: [ - { - title: "item 1", - onPress: () => {}, - }, - ], + title: "item 1", + onPress: () => {}, }, ], - } - : title === "Explore" - ? { - columns: [ + }, + ], + }, + }, + { + onPress: () => setState("index", 2), + title: "Explore", + menu: { + columns: [ + { + title: "Explore 1", + items: [ + { + title: "item 1", + onPress: () => {}, + }, + { + title: "item 2", + href: "https://www.google.com/", + }, { - title: \`\${title} 1\`, - items: [ - { - title: "item 1", - onPress: () => {}, - }, - { - title: "item 2", - href: "https://www.google.com/", - }, - { - title: "item 3", - to: "#", - }, - ], + title: "item 3", + to: "#", }, ], - } - : undefined, - }))} + }, + ], + }, + }, + ]} selectedIndex={getState("index", 0)} />`, }, @@ -2514,143 +2533,151 @@ const navigationBarSnippets = [ code: ` ({ - onPress: () => setState("index", idx), - title, - menu: - title === "Start" - ? { - columns: [ + sections={[ + { + onPress: () => setState("index", 0), + title: "Start", + menu: { + columns: [ + { + title: "Start 1", + items: [ + { + title: "item 1", + onPress: () => {}, + }, { - title: \`\${title} 1\`, - items: [ - { - title: "item 1", - onPress: () => {}, - }, - { - title: "item 2", - href: "https://www.google.com/", - }, - { - title: "item 3", - to: "#", - }, - ], + title: "item 2", + href: "https://www.google.com/", }, { - title: \`\${title} 2\`, - items: [ - { - title: "item 1", - onPress: () => {}, - }, - { - title: "item 2", - href: "https://www.google.com/", - }, - { - title: "item 3", - to: "#", - }, - ], + title: "item 3", + to: "#", }, ], - } - : title === "Account" - ? { - columns: [ + }, + { + title: "Start 2", + items: [ + { + title: "item 1", + onPress: () => {}, + }, { - title: \`\${title} 1\`, - items: [ - { - title: "item 1", - onPress: () => {}, - }, - ], + title: "item 2", + href: "https://www.google.com/", + }, + { + title: "item 3", + to: "#", }, ], - } - : title === "Explore" - ? { - content: ({ closeMenu }) => ( - - Custom content - - Close menu - - ), - } - : title === "Support" - ? { - content: isDesktopOrBigger ? ( - - {Array.from({ length: 3 }, (_, index) => ( - - - Contenidos - - {[ - "Destacados", - "Todo fútbol", - "#0", - "Cine", - "Oferta comercial", - "Mi Movistar", - "Movistar Cloud", - ].map((title, index) => ( - {}} - style={{ color: colors.textPrimary }} - > - {title} - - ))} - - - - ))} - - - Oferta} - title="Movistar Plus+" - onPress={() => {}} - description="Contrata solo TV por 9,99 €" - backgroundImage="${imagePlaceholder}" - /> - - - ) : ( - - {Array.from({ length: 3 }, (_, index) => ( - - Title - - - {}} /> - {}} /> - {}} /> - {}} /> - - + }, + ], + }, + }, + { + onPress: () => setState("index", 1), + title: "Account", + menu: { + columns: [ + { + title: "Account 1", + items: [ + { + title: "item 1", + onPress: () => {}, + }, + ], + }, + ], + }, + }, + { + onPress: () => setState("index", 2), + title: "Explore", + menu: { + content: ({ closeMenu }) => ( + + Custom content + + Close menu + + ), + }, + }, + { + onPress: () => setState("index", 3), + title: "Support", + menu: { + content: isDesktopOrBigger ? ( + + {Array.from({ length: 3 }, (_, index) => ( + + + Contenidos + + {[ + "Destacados", + "Todo fútbol", + "#0", + "Cine", + "Oferta comercial", + "Mi Movistar", + "Movistar Cloud", + ].map((title, index) => ( + {}} + style={{ color: colors.textPrimary }} + > + {title} + + ))} - ))} + + + ))} - Oferta} - title="Movistar Plus+" - aspectRatio="1:1" - onPress={() => {}} - description="Contrata solo TV por 9,99 €" - backgroundImage="${imagePlaceholder}" - /> + + Oferta} + title="Movistar Plus+" + onPress={() => {}} + description="Contrata solo TV por 9,99 €" + backgroundImage="${imagePlaceholder}" + /> + + + ) : ( + + {Array.from({ length: 3 }, (_, index) => ( + + Title + + + {}} /> + {}} /> + {}} /> + {}} /> + + - ), - } - : undefined, - }))} + ))} + + Oferta} + title="Movistar Plus+" + aspectRatio="1:1" + onPress={() => {}} + description="Contrata solo TV por 9,99 €" + backgroundImage="${imagePlaceholder}" + /> + + ), + }, + }, + ]} selectedIndex={getState("index", 0)} />`, },