From cf06110c4524f539d7af2fa58659f801ae5a9c99 Mon Sep 17 00:00:00 2001 From: Enrique Moreno Date: Fri, 7 Feb 2025 12:56:15 +0100 Subject: [PATCH 1/8] Reimplementation of the ContextualMenu component with new CSS variables --- .../src/contextual-menu/ContextualMenu.tsx | 59 +++++----- .../lib/src/contextual-menu/ItemAction.tsx | 107 ++++++++---------- packages/lib/src/contextual-menu/MenuItem.tsx | 10 +- packages/lib/src/contextual-menu/Section.tsx | 21 ++-- 4 files changed, 90 insertions(+), 107 deletions(-) diff --git a/packages/lib/src/contextual-menu/ContextualMenu.tsx b/packages/lib/src/contextual-menu/ContextualMenu.tsx index 98b3c6a629..983538840b 100644 --- a/packages/lib/src/contextual-menu/ContextualMenu.tsx +++ b/packages/lib/src/contextual-menu/ContextualMenu.tsx @@ -1,6 +1,5 @@ -import { useContext, useLayoutEffect, useMemo, useRef, useState } from "react"; -import styled, { ThemeProvider } from "styled-components"; -import CoreTokens from "../common/coreTokens"; +import { useLayoutEffect, useMemo, useRef, useState } from "react"; +import styled from "styled-components"; import MenuItem from "./MenuItem"; import ContextualMenuPropsType, { GroupItem, @@ -13,19 +12,18 @@ import ContextualMenuPropsType, { } from "./types"; import Section from "./Section"; import ContextualMenuContext from "./ContextualMenuContext"; -import HalstackContext from "../HalstackContext"; const ContextualMenu = styled.div` box-sizing: border-box; margin: 0; - border: 1px solid ${({ theme }) => theme.borderColor}; - border-radius: 0.25rem; - padding: ${CoreTokens.spacing_16} ${CoreTokens.spacing_8}; + border: 1px solid var(--color-grey-200); + border-radius: var(--border-radius-s); + padding: var(--spacing-padding-m) var(--spacing-padding-xs); display: grid; - gap: ${CoreTokens.spacing_4}; + gap: var(--spacing-gap-xs); min-width: 248px; max-height: 100%; - background-color: ${({ theme }) => theme.backgroundColor}; + background-color: var(--color-bg-neutral-lightest); overflow-y: auto; overflow-x: hidden; &::-webkit-scrollbar { @@ -33,12 +31,12 @@ const ContextualMenu = styled.div` height: 8px; } &::-webkit-scrollbar-thumb { - background-color: ${CoreTokens.color_grey_700}; - border-radius: 0.25rem; + background-color: var(--color-fg-neutral-strong); + border-radius: var(--border-radius-s); } &::-webkit-scrollbar-track { - background-color: ${CoreTokens.color_grey_300}; - border-radius: 0.25rem; + background-color: var(--color-bg-neutral-light); + border-radius: 0 var(--border-radius-s) var(--border-radius-s) 0; } `; @@ -46,7 +44,7 @@ const StyledSubMenu = styled.ul` margin: 0; padding: 0; display: grid; - gap: ${CoreTokens.spacing_4}; + gap: var(--spacing-gap-xs); list-style: none; `; @@ -79,7 +77,6 @@ export default function DxcContextualMenu({ items }: ContextualMenuPropsType) { const contextualMenuRef = useRef(null); const itemsWithId = useMemo(() => addIdToItems(items), [items]); const contextValue = useMemo(() => ({ selectedItemId, setSelectedItemId }), [selectedItemId, setSelectedItemId]); - const colorsTheme = useContext(HalstackContext); const [firstUpdate, setFirstUpdate] = useState(true); useLayoutEffect(() => { @@ -94,22 +91,20 @@ export default function DxcContextualMenu({ items }: ContextualMenuPropsType) { }, [firstUpdate, selectedItemId]); return ( - - - - {itemsWithId[0] && isSection(itemsWithId[0]) ? ( - (itemsWithId as SectionWithId[]).map((item, index) => ( -
- )) - ) : ( - - {(itemsWithId as (GroupItemWithId | ItemWithId)[]).map((item, index) => ( - - ))} - - )} - - - + + + {itemsWithId[0] && isSection(itemsWithId[0]) ? ( + (itemsWithId as SectionWithId[]).map((item, index) => ( +
+ )) + ) : ( + + {(itemsWithId as (GroupItemWithId | ItemWithId)[]).map((item, index) => ( + + ))} + + )} + + ); } diff --git a/packages/lib/src/contextual-menu/ItemAction.tsx b/packages/lib/src/contextual-menu/ItemAction.tsx index 3435b2bb60..fec27683e0 100644 --- a/packages/lib/src/contextual-menu/ItemAction.tsx +++ b/packages/lib/src/contextual-menu/ItemAction.tsx @@ -5,100 +5,91 @@ import { ItemActionProps } from "./types"; import DxcIcon from "../icon/Icon"; import { TooltipWrapper } from "../tooltip/Tooltip"; -const ItemAction = ({ badge, collapseIcon, icon, label, depthLevel, ...props }: ItemActionProps) => { - const [hasTooltip, setHasTooltip] = useState(false); - const modifiedBadge = badge && cloneElement(badge, { size: "small" }); - - return ( - - - - {modifiedBadge} - - - ); -}; - const Action = styled.button<{ depthLevel: ItemActionProps["depthLevel"]; selected: ItemActionProps["selected"]; }>` border: none; - border-radius: 4px; - padding: ${(props) => - `${CoreTokens.spacing_4} ${CoreTokens.spacing_8} ${CoreTokens.spacing_4} ${` - calc(${CoreTokens.spacing_8} + (${CoreTokens.spacing_24} * ${props.depthLevel})) - `};`}; - box-shadow: inset 0 0 0 2px transparent; + border-radius: var(--border-radius-s); + padding: var(--spacing-padding-xxs) var(--spacing-padding-xxs) var(--spacing-padding-xxs) var(--spacing-padding-xs); display: flex; align-items: center; justify-content: space-between; - gap: ${CoreTokens.spacing_16}; - ${({ selected, theme }) => - selected - ? `background-color: ${theme.selectedMenuItemBackgroundColor};` - : `background-color: ${CoreTokens.color_transparent}`}; + background-color: ${({ selected }) => (selected ? "var(--color-bg-primary-lighter)" : "transparent")}; cursor: pointer; overflow: hidden; &:hover { - ${({ selected, theme }) => - selected - ? `background-color: ${theme.hoverSelectedMenuItemBackgroundColor};` - : `background-color: ${theme.hoverMenuItemBackgroundColor};`}; + background-color: ${({ selected }) => + selected ? "var(--color-bg-primary-medium)" : "var(--color-bg-neutral-light)"}; + } + &:active, + &:focus { + outline: var(--border-width-m) solid var(--border-color-secondary-medium); + outline-offset: -1px; } &:active { - ${({ selected, theme }) => - selected - ? `background-color: ${theme.activeSelectedMenuItemBackgroundColor};` - : `background-color: ${theme.activeMenuItemBackgroundColor};`}; + background-color: ${({ selected }) => + selected ? "var(--color-bg-primary-medium)" : "var(--color-bg-neutral-light)"}; } &:focus { - outline: 2px solid ${CoreTokens.color_blue_600}; - outline-offset: -1px; + ${({ selected }) => selected && `background-color: var(--color-bg-primary-lighter);`}; } `; const Icon = styled.span` display: flex; - font-size: ${({ theme }) => theme.iconSize}; - color: ${({ theme }) => theme.iconColor}; + font-size: var(--height-xxs); + color: var(--color-fg-neutral-dark); svg { - height: ${({ theme }) => theme.iconSize}; - width: ${({ theme }) => theme.iconSize}; + height: var(--height-xxs); + width: 16px; } `; const Label = styled.span` display: flex; align-items: center; - gap: ${CoreTokens.spacing_8}; + gap: var(--spacing-gap-s); overflow: hidden; `; const Text = styled.span<{ selected: ItemActionProps["selected"] }>` - color: ${({ theme }) => theme.menuItemFontColor}; - font-family: ${({ theme }) => theme.fontFamily}; - font-size: ${({ theme }) => theme.menuItemFontSize}; - font-style: ${({ theme }) => theme.menuItemFontStyle}; - font-weight: ${({ selected, theme }) => (selected ? theme.selectedMenuItemFontWeight : theme.menuItemFontWeight)}; - line-height: ${({ theme }) => theme.menuItemLineHeight}; + color: var(--color-fg-neutral-dark); + font-family: var(--typography-font-family); + font-size: var(--typography-label-m); + font-style: normal; + font-weight: ${({ selected }) => (selected ? "var(--typography-label-semibold)" : "var(--typography-label-regular)")}; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; `; +const ItemAction = ({ badge, collapseIcon, icon, label, depthLevel, ...props }: ItemActionProps) => { + const [hasTooltip, setHasTooltip] = useState(false); + const modifiedBadge = badge && cloneElement(badge, { size: "small" }); + + return ( + + + + {modifiedBadge} + + + ); +}; + export default ItemAction; diff --git a/packages/lib/src/contextual-menu/MenuItem.tsx b/packages/lib/src/contextual-menu/MenuItem.tsx index 0c4eeab9ff..47d8d3cfcd 100644 --- a/packages/lib/src/contextual-menu/MenuItem.tsx +++ b/packages/lib/src/contextual-menu/MenuItem.tsx @@ -4,6 +4,11 @@ import GroupItem from "./GroupItem"; import SingleItem from "./SingleItem"; import { MenuItemProps } from "./types"; +const StyledMenuItem = styled.li` + display: grid; + gap: var(--spacing-gap-xs); +`; + const MenuItem = ({ item, depthLevel = 0 }: MenuItemProps) => ( {"items" in item ? ( @@ -14,9 +19,4 @@ const MenuItem = ({ item, depthLevel = 0 }: MenuItemProps) => ( ); -const StyledMenuItem = styled.li` - display: grid; - gap: ${CoreTokens.spacing_4}; -`; - export default MenuItem; diff --git a/packages/lib/src/contextual-menu/Section.tsx b/packages/lib/src/contextual-menu/Section.tsx index 07d8029f50..bb4f1f8e6a 100644 --- a/packages/lib/src/contextual-menu/Section.tsx +++ b/packages/lib/src/contextual-menu/Section.tsx @@ -1,12 +1,20 @@ import styled from "styled-components"; import { DxcInset } from ".."; -import CoreTokens from "../common/coreTokens"; import DxcDivider from "../divider/Divider"; import { SubMenu } from "./ContextualMenu"; import MenuItem from "./MenuItem"; import { SectionProps } from "./types"; import { useId } from "react"; +const Title = styled.h2` + all: unset; + color: var(--color-grey-900); + font-family: var(--typography-font-family); + font-size: var(--typography-label-l); + font-style: normal; + font-weight: var(--typography-label-semibold); +`; + const Section = ({ section, index, length }: SectionProps) => { const id = `section-${useId()}`; @@ -27,15 +35,4 @@ const Section = ({ section, index, length }: SectionProps) => { ); }; -const Title = styled.h2` - margin: 0 0 ${CoreTokens.spacing_4} 0; - padding: ${CoreTokens.spacing_4}; - color: ${({ theme }) => theme.sectionTitleFontColor}; - font-family: ${({ theme }) => theme.fontFamily}; - font-size: ${({ theme }) => theme.sectionTitleFontSize}; - font-style: ${({ theme }) => theme.sectionTitleFontStyle}; - font-weight: ${({ theme }) => theme.sectionTitleFontWeight}; - line-height: ${({ theme }) => theme.sectionTitleLineHeight}; -`; - export default Section; From 20bad76327ebd7e9f2386186cb1e1396841b577d Mon Sep 17 00:00:00 2001 From: Enrique Moreno Date: Fri, 7 Feb 2025 13:16:01 +0100 Subject: [PATCH 2/8] Fixed gap styles --- packages/lib/src/contextual-menu/ContextualMenu.tsx | 5 +++-- packages/lib/src/contextual-menu/MenuItem.tsx | 3 ++- packages/lib/src/contextual-menu/Section.tsx | 11 +++++++++-- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/packages/lib/src/contextual-menu/ContextualMenu.tsx b/packages/lib/src/contextual-menu/ContextualMenu.tsx index 983538840b..a768c064ce 100644 --- a/packages/lib/src/contextual-menu/ContextualMenu.tsx +++ b/packages/lib/src/contextual-menu/ContextualMenu.tsx @@ -19,9 +19,10 @@ const ContextualMenu = styled.div` border: 1px solid var(--color-grey-200); border-radius: var(--border-radius-s); padding: var(--spacing-padding-m) var(--spacing-padding-xs); - display: grid; + display: flex; + flex-direction: column; gap: var(--spacing-gap-xs); - min-width: 248px; + min-width: 240px; max-height: 100%; background-color: var(--color-bg-neutral-lightest); overflow-y: auto; diff --git a/packages/lib/src/contextual-menu/MenuItem.tsx b/packages/lib/src/contextual-menu/MenuItem.tsx index 47d8d3cfcd..1d431c0c27 100644 --- a/packages/lib/src/contextual-menu/MenuItem.tsx +++ b/packages/lib/src/contextual-menu/MenuItem.tsx @@ -5,7 +5,8 @@ import SingleItem from "./SingleItem"; import { MenuItemProps } from "./types"; const StyledMenuItem = styled.li` - display: grid; + display: flex; + flex-direction: column; gap: var(--spacing-gap-xs); `; diff --git a/packages/lib/src/contextual-menu/Section.tsx b/packages/lib/src/contextual-menu/Section.tsx index bb4f1f8e6a..b2d9c5e5a9 100644 --- a/packages/lib/src/contextual-menu/Section.tsx +++ b/packages/lib/src/contextual-menu/Section.tsx @@ -13,13 +13,20 @@ const Title = styled.h2` font-size: var(--typography-label-l); font-style: normal; font-weight: var(--typography-label-semibold); + padding: var(--spacing-padding-xxs); +`; + +const Sect = styled.section` + display: flex; + flex-direction: column; + gap: var(--spacing-gap-xs); `; const Section = ({ section, index, length }: SectionProps) => { const id = `section-${useId()}`; return ( -
+ {section.title && {section.title}} {section.items.map((item, index) => ( @@ -31,7 +38,7 @@ const Section = ({ section, index, length }: SectionProps) => { )} -
+ ); }; From dd70b44949b2661c6a5de735a6935c0eb49a1853 Mon Sep 17 00:00:00 2001 From: Enrique Moreno Date: Tue, 25 Feb 2025 15:32:03 +0100 Subject: [PATCH 3/8] Minor fixes to tokens --- packages/lib/src/contextual-menu/ContextualMenu.tsx | 2 +- packages/lib/src/contextual-menu/ItemAction.tsx | 1 - packages/lib/src/contextual-menu/MenuItem.tsx | 1 - packages/lib/src/contextual-menu/Section.tsx | 2 +- 4 files changed, 2 insertions(+), 4 deletions(-) diff --git a/packages/lib/src/contextual-menu/ContextualMenu.tsx b/packages/lib/src/contextual-menu/ContextualMenu.tsx index a768c064ce..ead2f98797 100644 --- a/packages/lib/src/contextual-menu/ContextualMenu.tsx +++ b/packages/lib/src/contextual-menu/ContextualMenu.tsx @@ -16,7 +16,7 @@ import ContextualMenuContext from "./ContextualMenuContext"; const ContextualMenu = styled.div` box-sizing: border-box; margin: 0; - border: 1px solid var(--color-grey-200); + border: var(--border-width-s) solid var(--border-color-neutral-lighter); border-radius: var(--border-radius-s); padding: var(--spacing-padding-m) var(--spacing-padding-xs); display: flex; diff --git a/packages/lib/src/contextual-menu/ItemAction.tsx b/packages/lib/src/contextual-menu/ItemAction.tsx index fec27683e0..f6fdd1707b 100644 --- a/packages/lib/src/contextual-menu/ItemAction.tsx +++ b/packages/lib/src/contextual-menu/ItemAction.tsx @@ -1,6 +1,5 @@ import { cloneElement, MouseEvent, useState } from "react"; import styled from "styled-components"; -import CoreTokens from "../common/coreTokens"; import { ItemActionProps } from "./types"; import DxcIcon from "../icon/Icon"; import { TooltipWrapper } from "../tooltip/Tooltip"; diff --git a/packages/lib/src/contextual-menu/MenuItem.tsx b/packages/lib/src/contextual-menu/MenuItem.tsx index 1d431c0c27..304ea76ecd 100644 --- a/packages/lib/src/contextual-menu/MenuItem.tsx +++ b/packages/lib/src/contextual-menu/MenuItem.tsx @@ -1,5 +1,4 @@ import styled from "styled-components"; -import CoreTokens from "../common/coreTokens"; import GroupItem from "./GroupItem"; import SingleItem from "./SingleItem"; import { MenuItemProps } from "./types"; diff --git a/packages/lib/src/contextual-menu/Section.tsx b/packages/lib/src/contextual-menu/Section.tsx index b2d9c5e5a9..6a1004a074 100644 --- a/packages/lib/src/contextual-menu/Section.tsx +++ b/packages/lib/src/contextual-menu/Section.tsx @@ -8,7 +8,7 @@ import { useId } from "react"; const Title = styled.h2` all: unset; - color: var(--color-grey-900); + color: var(--color-fg-neutral-dark); font-family: var(--typography-font-family); font-size: var(--typography-label-l); font-style: normal; From f2f1794c5ccc52317662a676b33d1956af9ee6e8 Mon Sep 17 00:00:00 2001 From: Enrique Moreno Date: Tue, 25 Feb 2025 17:16:55 +0100 Subject: [PATCH 4/8] Added documentation with the new structure --- .../pages/components/contextual-menu/code.tsx | 19 + .../components/contextual-menu/index.tsx | 8 +- .../contextual-menu/specifications.tsx | 21 -- .../components/contextual-menu/usage.tsx | 21 -- .../ContextualMenuPageLayout.tsx | 12 +- .../code/ContextualMenuCodePage.tsx | 2 +- .../overview/ContextualMenuOverviewPage.tsx | 143 ++++++++ .../images/contextual-menu_anatomy.png | Bin 0 -> 73094 bytes .../specs/ContextualMenuSpecsPage.tsx | 335 ------------------ .../specs/images/contextual_menu_anatomy.png | Bin 59928 -> 0 bytes .../images/contextual_menu_item_specs.png | Bin 11072 -> 0 bytes .../images/contextual_menu_item_states.png | Bin 11603 -> 0 bytes .../specs/images/contextual_menu_specs.png | Bin 45873 -> 0 bytes .../usage/ContextualMenuUsagePage.tsx | 133 ------- .../usage/images/contextual_menu_elements.png | Bin 29176 -> 0 bytes 15 files changed, 171 insertions(+), 523 deletions(-) create mode 100644 apps/website/pages/components/contextual-menu/code.tsx delete mode 100644 apps/website/pages/components/contextual-menu/specifications.tsx delete mode 100644 apps/website/pages/components/contextual-menu/usage.tsx create mode 100644 apps/website/screens/components/contextual-menu/overview/ContextualMenuOverviewPage.tsx create mode 100644 apps/website/screens/components/contextual-menu/overview/images/contextual-menu_anatomy.png delete mode 100644 apps/website/screens/components/contextual-menu/specs/ContextualMenuSpecsPage.tsx delete mode 100644 apps/website/screens/components/contextual-menu/specs/images/contextual_menu_anatomy.png delete mode 100644 apps/website/screens/components/contextual-menu/specs/images/contextual_menu_item_specs.png delete mode 100644 apps/website/screens/components/contextual-menu/specs/images/contextual_menu_item_states.png delete mode 100644 apps/website/screens/components/contextual-menu/specs/images/contextual_menu_specs.png delete mode 100644 apps/website/screens/components/contextual-menu/usage/ContextualMenuUsagePage.tsx delete mode 100644 apps/website/screens/components/contextual-menu/usage/images/contextual_menu_elements.png diff --git a/apps/website/pages/components/contextual-menu/code.tsx b/apps/website/pages/components/contextual-menu/code.tsx new file mode 100644 index 0000000000..b14b45ee01 --- /dev/null +++ b/apps/website/pages/components/contextual-menu/code.tsx @@ -0,0 +1,19 @@ +import Head from "next/head"; +import type { ReactElement } from "react"; +import ContextualMenuPageLayout from "screens/components/contextual-menu/ContextualMenuPageLayout"; +import ContextualMenuCodePage from "screens/components/contextual-menu/code/ContextualMenuCodePage"; + +const Code = () => { + return ( + <> + + Contextual Menu Code — Halstack Design System + + + + ); +}; + +Code.getLayout = (page: ReactElement) => {page}; + +export default Code; diff --git a/apps/website/pages/components/contextual-menu/index.tsx b/apps/website/pages/components/contextual-menu/index.tsx index 616e6a7067..b9167af3ce 100644 --- a/apps/website/pages/components/contextual-menu/index.tsx +++ b/apps/website/pages/components/contextual-menu/index.tsx @@ -1,6 +1,6 @@ import Head from "next/head"; import type { ReactElement } from "react"; -import ContextualMenuCodePage from "screens/components/contextual-menu/code/ContextualMenuCodePage"; +import ContextualMenuOverviewPage from "screens/components/contextual-menu/overview/ContextualMenuOverviewPage"; import ContextualMenuPageLayout from "screens/components/contextual-menu/ContextualMenuPageLayout"; const Usage = () => { @@ -9,13 +9,11 @@ const Usage = () => { Contextual Menu — Halstack Design System - + ); }; -Usage.getLayout = function getLayout(page: ReactElement) { - return {page}; -}; +Usage.getLayout = (page: ReactElement) => {page}; export default Usage; diff --git a/apps/website/pages/components/contextual-menu/specifications.tsx b/apps/website/pages/components/contextual-menu/specifications.tsx deleted file mode 100644 index 0c92317af0..0000000000 --- a/apps/website/pages/components/contextual-menu/specifications.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import Head from "next/head"; -import type { ReactElement } from "react"; -import ContextualMenuSpecsPage from "screens/components/contextual-menu/specs/ContextualMenuSpecsPage"; -import ContextualMenuPageLayout from "screens/components/contextual-menu/ContextualMenuPageLayout"; - -const Specifications = () => { - return ( - <> - - Contextual Menu Specs — Halstack Design System - - - - ); -}; - -Specifications.getLayout = function getLayout(page: ReactElement) { - return {page}; -}; - -export default Specifications; diff --git a/apps/website/pages/components/contextual-menu/usage.tsx b/apps/website/pages/components/contextual-menu/usage.tsx deleted file mode 100644 index d2d652977e..0000000000 --- a/apps/website/pages/components/contextual-menu/usage.tsx +++ /dev/null @@ -1,21 +0,0 @@ -import Head from "next/head"; -import type { ReactElement } from "react"; -import ContextualMenuPageLayout from "screens/components/contextual-menu/ContextualMenuPageLayout"; -import ContextualMenuUsagePage from "screens/components/contextual-menu/usage/ContextualMenuUsagePage"; - -const Usage = () => { - return ( - <> - - Contextual Menu Usage — Halstack Design System - - - - ); -}; - -Usage.getLayout = function getLayout(page: ReactElement) { - return {page}; -}; - -export default Usage; diff --git a/apps/website/screens/components/contextual-menu/ContextualMenuPageLayout.tsx b/apps/website/screens/components/contextual-menu/ContextualMenuPageLayout.tsx index 000323545b..1d50e8da02 100644 --- a/apps/website/screens/components/contextual-menu/ContextualMenuPageLayout.tsx +++ b/apps/website/screens/components/contextual-menu/ContextualMenuPageLayout.tsx @@ -6,9 +6,8 @@ import { ReactNode } from "react"; const ContextualMenuPageHeading = ({ children }: { children: ReactNode }) => { const tabs = [ - { label: "Code", path: "/components/contextual-menu" }, - { label: "Usage", path: "/components/contextual-menu/usage" }, - { label: "Specifications", path: "/components/contextual-menu/specifications" }, + { label: "Overview", path: "/components/contextual-menu" }, + { label: "Code", path: "/components/contextual-menu/code" }, ]; return ( @@ -17,11 +16,10 @@ const ContextualMenuPageHeading = ({ children }: { children: ReactNode }) => { - The Contextual menu is a powerful component that improves user experience by allowing users to navigate - through page-level content or choose from a list of actions while complementing the general disposition of - the main content within the interface. + The Contextual menu provides quick access to navigation or actions related to the current context, enhancing + usability and content organization. - + {children} diff --git a/apps/website/screens/components/contextual-menu/code/ContextualMenuCodePage.tsx b/apps/website/screens/components/contextual-menu/code/ContextualMenuCodePage.tsx index 01259eab52..3719dee499 100644 --- a/apps/website/screens/components/contextual-menu/code/ContextualMenuCodePage.tsx +++ b/apps/website/screens/components/contextual-menu/code/ContextualMenuCodePage.tsx @@ -90,7 +90,7 @@ const ContextualMenuCodePage = () => { return ( - + diff --git a/apps/website/screens/components/contextual-menu/overview/ContextualMenuOverviewPage.tsx b/apps/website/screens/components/contextual-menu/overview/ContextualMenuOverviewPage.tsx new file mode 100644 index 0000000000..2b01e1b15b --- /dev/null +++ b/apps/website/screens/components/contextual-menu/overview/ContextualMenuOverviewPage.tsx @@ -0,0 +1,143 @@ +import { DxcParagraph, DxcFlex, DxcBulletedList } from "@dxc-technology/halstack-react"; +import DocFooter from "@/common/DocFooter"; +import QuickNavContainer from "@/common/QuickNavContainer"; +import QuickNavContainerLayout from "@/common/QuickNavContainerLayout"; +import Image from "@/common/Image"; +import anatomy from "./images/contextual-menu_anatomy.png"; + +const sections = [ + { + title: "Introduction", + content: ( + + This powerful component improves user experience by allowing users to navigate through page-level content or + choose from a list of actions while complementing the general disposition of the main content within the + interface. It also allows a wide range of possibilities when it comes to placing content cohesively and + comprehensively. To achieve this, it's important to understand how the items in our Contextual menu behave and + interact with each other. + + ), + }, + + { + title: "Anatomy", + content: ( + <> + Contextual menu's anatomy + + + Section title: a label that groups related menu items within a contextual menu, enhancing + organization and readability. + + + Container: the structural wrapper that holds all menu elements, ensuring proper alignment, + spacing, and visual consistency. + + + Group item: they are nests of other group items or individual items that are related to + each other and show indentation as they are unfolded. + + + Badge: a small visual indicator, often used to display counts, status updates or categories + within a menu item. + + + Single item: an actionable element within the menu that triggers navigation or an operation + when selected. + + + Expand/collapse Icon: a visual indicator for nested menus, allowing users to reveal or hide + subitems. + + + Icon: a graphical representation within a menu item that aids recognition and reinforces + meaning. + + + Section: they are a collection of group and single items within the menu that share a + certain relationship and have a title that describes them. + + + Divider: a subtle separator that groups related menu items and improves menu structure. + + + Scrollbar: appears when the menu content exceeds the container's height, enabling vertical + navigation. + + + + ), + }, + { + title: "Contextual menu and Sidenav", + content: ( + <> + + Although visually similar, the Sidenav component and the Contextual menu differ significantly in + functionality. Our Sidenav is designed to provide a consistent and persistent navigation structure throughout + the application, allowing users to easily switch between different sections or pages within the app. + + + On the other hand, the Contextual menu is more context-sensitive, and appears in response to specific user + actions, offering a set of relevant options or actions that can be performed on the current page. This means + that it operates on a page level, so the component may appear or not depending on the specific needs and + requirements for each screen or interaction. + + + ), + }, + { + title: "Best practices", + content: ( + <> + + + Use meaningful icons: Select icons that accurately represent menu items, ensuring clarity + and intuitive navigation. + + + Align properly: position the Contextual Menu to the left or right, avoiding placement in + the center to prevent obstruction of main content. + + + Enhance navigation with hierarchy: structure menu items using different levels to maintain + logical organization. + + + Use badges for status indication: incorporate a Badge component to display status updates, + counts or categories for navigable sections. + + + Default selection: when pre-selecting an option, try to limit it to the first menu item to + maintain intuitive user interactions. + + + Avoid deep hierarchies: limit navigation depth to a maximum of three levels to prevent + excessive indentation and complexity. + + + Restrict icon usage: use icons only at the first navigation level to maintain readability + and avoid visual clutter. + + + Don't overload with icons: too many icons can create confusion rather than improve + usability. Keep them purposeful and minimal. + + + + ), + }, +]; + +const ContextualMenuOverviewPage = () => { + return ( + + + + + + + ); +}; + +export default ContextualMenuOverviewPage; diff --git a/apps/website/screens/components/contextual-menu/overview/images/contextual-menu_anatomy.png b/apps/website/screens/components/contextual-menu/overview/images/contextual-menu_anatomy.png new file mode 100644 index 0000000000000000000000000000000000000000..46a3d0396e091e0565490bf36f2c3b399ea2a681 GIT binary patch literal 73094 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 - Contextual Menu design specifications - - ), - }, - { - title: "Contextual menu item", - content: ( -
- Contextual menu item design specifications -
- ), - }, - ], - }, - { - title: "States", - content: ( - <> -
- Contextual menu item states -
- - ), - }, - { - title: "Anatomy", - content: ( - <> - Contextual menu anatomy - - Section title - Container - Badge - Menu item - Expand/collapse icon - Icon - Divider - - - ), - }, - { - title: "Design tokens", - subSections: [ - { - title: "Color", - content: ( - - - - Component token - Element - Core token - Value - - - - - - backgroundColor - - Container - - color-white - - #ffffff - - - - borderColor - - Container - - color-grey-200 - - #e6e6e6 - - - - menuItemFontColor - - Menu item - - color-grey-900 - - #333333 - - - - hoverMenuItemBackgroundColor - - Menu item:hover - - color-grey-100 - - #f2f2f2 - - - - activeMenuItemBackgroundColor - - Menu item:active - - color-grey-100 - - #f2f2f2 - - - - selectedMenuItemBackgroundColor - - Menu item selected - - color-purple-100 - - #f2eafa - - - - hoverSelectedMenuItemBackgroundColor - - Menu item:hover selected - - color-purple-200 - - #e5d5f6 - - - - activeSelectedMenuItemBackgroundColor - - Menu item:active selected - - color-purple-200 - - #e5d5f6 - - - - sectionTitleFontColor - - Section title - - color-grey-900 - - #333333 - - - - iconColor - - Icon - - color-grey-900 - - #333333 - - - - ), - }, - { - title: "Iconography", - content: ( - - - - Component token - Element - Core token - Value - - - - - - iconSize - - Icon - - - 16px - - - - ), - }, - { - title: "Typography", - content: ( - - - - Component token - Element - Core token - Value - - - - - - fontFamily - - Contextual menu - - font-family-sans - - 'Open Sans', sans-serif - - - - menuItemFontSize - - Menu item - - font-scale-02 - - 0.875rem / 14px - - - - menuItemFontStyle - - Menu item - - font-style-normal - - normal - - - - menuItemFontWeight - - Menu item - - font-weight-regular - - 400 - - - - menuItemLineHeight - - Menu item - - - 24px - - - - selectedMenuItemFontWeight - - Menu item selected - - font-weight-semibold - - 600 - - - - sectionTitleFontSize - - Section title - - font-scale-03 - - 1rem / 16px - - - - sectionTitleFontStyle - - Section title - - font-style-normal - - normal - - - - sectionTitleFontWeight - - Section title - - font-weight-semibold - - 600 - - - - sectionTitleLineHeight - - Section title - - - 24px - - - - ), - }, - ], - }, -]; - -const ContextualMenuSpecsPage = () => { - return ( - - - - - - - ); -}; - -export default ContextualMenuSpecsPage; diff --git a/apps/website/screens/components/contextual-menu/specs/images/contextual_menu_anatomy.png b/apps/website/screens/components/contextual-menu/specs/images/contextual_menu_anatomy.png deleted file mode 100644 index 82e7d1d5a8768227314ff20cb9cb5ca91a8c0b83..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 59928 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 T>jC2}C3WtU{mBv=-`M{H2b|B? diff --git a/apps/website/screens/components/contextual-menu/specs/images/contextual_menu_item_specs.png b/apps/website/screens/components/contextual-menu/specs/images/contextual_menu_item_specs.png deleted file mode 100644 index 13344874e738dbdd5bc6474ba327772902cd9037..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11072 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
~ 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
  • u(vYQSXx>nP=K>}tdJv%B_vYEu<2v> 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 diff --git a/apps/website/screens/components/contextual-menu/specs/images/contextual_menu_item_states.png b/apps/website/screens/components/contextual-menu/specs/images/contextual_menu_item_states.png deleted file mode 100644 index c02d0814f368e2b9c9c02f29127e869ac7a00744..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11603 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%0D~AZyKk{780C(pid#)a7f$Px!pH|q{oWLHQnm> z;W18zT)o_p(tGKTKTe!|s<*0Wy#Czi(T{F1lbI*Ix%DW)>Tb3mixYX@#b9k6f?4rw zywkrn(%(GNKM#2Q$iE^{7Phm77c5WtpvLFk+{}P{85q=?1H9tJvL? zcAo^(1EfORG$&$q*g-Ri7$f1sQHzK`IFn$2q)`XZOwBQ*k4gNhRCwDfDM0PCY}ChN zOz-%)K=8RYg2e-RrAOh`GfizwuTn&+B+k!tfMQ&_0{QwYTHiI1fg4)WZz!q{k#Z0C z%S2vnqDlHihxnM)?GL_^rh1D+{w^_o+#acD(hQkZB*rXzI@DuiO>i#WMD2xw=#B*I zNkvLp>DKeo{NAcA!}(Dp6gYm!9KEb-Gj!-yw>*&ca>EoxF(6S}i9BF}gQT9A;o4Q* z9~;|5Sf@e2(ggH|a_Y;DQnTC=u5?JJsd*Y=zGI_YZKYl*-3t>3{MYR8i_-apcG`M# z1OXA!t4+SoDrh2(<9Mua3^r9oUH15p@y08$L5~Q<27p%NZByZ4i=yakF74g0drt*n zKu5_;4b*2DC-Ppn5(JxV2gV=)AGLc5)T9^l(XGt{{TfV#p*@_bIXwBSCOernR1*ybYn8{pGj0#>0e(mk7Mz=lDGGTLl`iZ#r#1qWpy2p5BWJi;T zZ>9;{>d7DtWb(a^)F1O%A~1G(0lUAwnP`le4loveq~~m8ODO#2>J|0rnkMb_4O5Z>xoRzmCL;)$KY)e1@r|5B|&bvT6{PmpZ~ZKP+_Xex2ysgtQ_x zByM{!qQt9HZfDw(%2=NU)J@eXP=dF;yPg;NEQaC~#ZTGv6$9fUW=v3=XGeYvTB zb3(1F78hZ>|M*-J{oAH6SU8Ics`XVb%i7Mk!rx_L)C<0T;&GfzB{iESs&|mu#!cx+GI4wRj9)B_LP1kL+6P%@Ickt#TFA={N5T2XA z-AyvtN~d`KU6MgeE}K z;|c6OTWAxeg7-lzY4`)fV2l#<^Nro;uTdpUD*{qcx>%~UR|cMFF5|o}z(?lTZnnvG z_N+JY=X}KO=ZILoO}-VVrYvV0@yTJ1w~5O0E$7}gQ>C?#!NSSt3f?2bq+uWvGfL4j zos!~07zULq{`lql|IBpWbCE2?QZOT&sQI^x+1?XBj<0EC<$p>%K2$vwiFB}0co@}r zhTj37-!%J8v)UD9U0&!%4|5Oo*&JNop%9n}Mbf&;L{VM|_n3{T#|H=F30mw|$8c@O z&Cz3+$M1q0^7OlE<$f|A;!sW^Pji`yrvr9^ohpM_tjeJ=O47Jn;!lLSBUKA{#7w$x2q|9S|_X$|1Nq=IKHN0`)@-oev#xYiU5R5m~}r8-*ich9JWDgKK;IMJIlLwI}L>* zWq-{{l%a7S38yewYZrb$I=5Bw4gDp!>EH*j-0wl28{$8ocYRWGwK(yv0`Z(jk03(Oj49*T|x+-r{?(^N78fU^fGrRPYDV7_Hvo`Z5$ViXYCM^>%992FhBDF(25 zU58+CWeUOXRSZRTpzEc9&zAr8NM;wgC>aq{hK^7#i%lv6I(b_L_JGTByL&fA%Aq9J z*$6c9`PbWtFY{vBZ7USXyc{jh7#JQ*5`&Kq4SQ9(U&`BXRAX^^m!SO+Yw6QK|46+` z--;W$4x9F3W1IsAM>)qer-SqW8~zgsiGs2A-N5c1VKMGWy*SpFLLhs8(&uU&SJBLa zb#i3Hv(`rCW-YJQXzaMUgw{2!fXf~N_Y@bw*0xx#!cc^%!IpP%@U%%d6xV*22By^0 z+38M+=5EG7*4M|_ovl$H?&xeq?9sCNHwB63#oe)5NJaBax@|8|)W&S8@bOpPYn@3H zAhS^G>dv&HRb}Q#X?S5swTRGVXlvN?nDvQUWv`7jEXz!Q_f7*pbj2yCe zM6SM}fFj$6=H9rp`veA(;Gg~&x=M{GHT6hnjGdj0E#xmgtK7DYW6Tm0L- zQ@>mYyco3lyw={V6+GyIzY9A*u{_<>YrV9>;|UK}p<-8zToQi zN2RyzUVm>Qb2-nC+}UGDyleQ2ZHZq^aV>%FPyxZg)zhjX8#D1F2>>P-;AI~ ziT$|F=wi}vJQ`UX`dz%8JN(}DCz#onGg@TAzr--0fKIXdLWJ8`1&nq({CW=68uaFA zJ5)GUQrWFY9_}YOOytfGfpQyqJ>VhrUbI7c<--h0khK4vtgb|_Q(3Z0TCMgr%`i!M zJ^Echup^=LTbW?a(?bWn3^+^^d>!OySIyvUt6Uyv2zsl=#k4T~2n9 z0YJB_4qnLapcp02B(-I{Q#}3%M$Lm(O`EXd`duIZd@!Lj&W4-T=jq@Kuzp`Ro>SFs zs$`a(0D>ogI;{So#{J$TSAJ6UZ_e?1SETSz?UmN|@Xq(>FO7^HFlTvXhUMA4yE^aR z55Gk2RY+H{1oobJs**6Ba{Pk)d1=u(&8$q6W%s>i+8jJcwF)# zCDDj~$$1#7LxgTN_p2u>(VjxVt%Q=!*eF1~>C)p$@44cHZ3&Zv;bqdYIsgQd#K`w8Mad_f zTOK_3o5e(7)Zwg#j3^O7V<(n%0u`(*$p1Nc|A{c*r%JLAnO}W&BM=r|tlHpTb{iV( z1`Tze9T-Zzv3=|u!qp&tRYkql3uDTc%Gz%M?=H{|!Qav+_XN_Gr8--h#=Gugf|#Mh zo3(x}|D=iDc)FvAJ%p`!@1V`U2-#5F`;I%Hmc`wLR zXfgKtYErv8nq>hf_+$y1j2thB{-hgVa8^}6h&&}ENGR!@frF3xZuF0>;5A<4F&LeR zrB3xbw#20pq`%u-UKN!}{YnoHbaGEqi?W^n`7-I~lI)kWGRHtFJC=G&ie-T#Bo5kGE~LI2Kha*aqXz_d$nFEYrNh_mN~=OpP!vmpj}P*@&4h< z|Da#2#RY=Qe<=~hKR6*F!9~LNm&PJ+y=E}eOxDeGwD+KeGcxvU3PVmz1>Q6e{Hj({ zDF-m2>)`QUQ&KvrDkP+EcevYuT!0zNN#qAAd6X7iY;X;f!PI!h4iTc)2mJo{vtMQO zZ7%uAp)9L+UYao2G#|Q1NkjD1?|sp_n1MLVFuR42%mzsrw9+r8o3uAC-*3t(HaHn~ zivFd$0zXBO(Q;UH>3oF|>~4HAB3W1EuSe4rPsekf%9dWF*-qOzXEhC|n^vjNQ|0?U z-g;I9^?cwT6c<`5>~A}$)l_P*6dGCW2_zP%ek|VJEuMW#xb-uStei&jR^2{mfKQjL zRcXEgV~;p)&nSf8BTOQD|IQ;rqSDWu2;qo5Hc!rGWFK3xL#=SGpX;{h@i2YoGGtvC zcw?F4(^1yJ;m;`jOX<+!2sy=*UkgK=BefdfWRg)-BB*EGR`?$-XhF_!6nOokwt`{P zC3B6&xNtS~cV1-%W&VWhX)XKHa}Kukp?XsrYoXZ-te*7EU$hU(5Mn!t<@=FM$3xtp zgO~l*_I&8Yo5$4(o^J7L$M2}61UI`cOJ?rIZJqfIUJEa+8wPxmc)CcNcnW+hD-nKk%olE*R8*gUsdaoj?Qm&v9010s}+wp02X9 z4Den@4JN(?T(s-+FYAM))J>>(V^P)#Gd*IzA&8_OjBhyPO7OwW_ki;w4a>k(>b2mZKXE&_M2b2k@GJ-HG2J%xY`y^K+p{p zbCRXPf0~-=hE9A5%Z5a!rQ8o#3Y{yY&!BlUBo4ajS!+y{fi7fj$imPa>!rA$Ro2ve zv1#AS4J{Iehx3x(%9T|cd9feyU#no zHl9z?wsd`#yy?2mn{i=!X04EKm_kY`h-Cr^L(wU?H8f(5G3eDzAEn^pP@g5TzyFjo zsW5bp17iD;oLtytcEZXr{xsdBsmB9&mh`sMS>n~AyLttF&!NpcRHd!1lj{Wu# zLF*(_=QjNCAWbAoDk9||t2H6f{%zi9KWDgCtu_00+{a^PvDd=S{L;0>7mtrLtxzjV z=YGR%`xk_mUP(9MZH03LJYs;Vv?{#OPm0k`C z!dje7%M9{O>X8A5t-1$Dii2R&BopsW&X;{&-DiisZA~NQw!=*FxrsAdRH=Y^O7dzu zqZicd!;JA_{1t1mn`}h0<7}W-%2Q zu@yMmsFqLtOV)WMjJQ6e>?L>tK$1og5N5F#V=)-X?p07FXQI!1gv)J4W>nw$o=NaWYE^nUBXo$8Zm7-fW?o;jq4?Crmdb2IP zVUq(iBm&!tU{VsAy|96S<5qd#RRcV8wbYq}@Mii+;cONKL@7p1CrTg&=VWFr$j zw>-t14z9 zp?`X=CLk)VD0bfS@{KOf%#vN(h@+7Bt0AyCYXJTr)F+`>L2j`Hg{gPVm;Jf3r_}VX zSzXbj78Aw{wm!5?TCh(;w{7U4gm?2_D=T5-1RBH;q3R^1)>4a$Tx?nTOYQbp4 zYozoqNmJWtrlF7^QEYXk#=%slP4$`0?#x9Xr5NcP1&goxeSnC>oOCG2rs>+z5cP|LYS|8BGm@U0>IOwlC|OajP9B_mPX& zec@m2T{s?uT>6q$l~p|c;09P(bZl0_Opj0SbdP;}Vc^b84rK><9_XhLQk*<685p)ZzQOQVu zqP<#rMWbtrc9-g~s{)_!$GGHvO-6oIxiFkXySC&w+HRX0nZFW)^sD$h#!)%3*%Ven zX>)r}38njs=4xw=g()b%s~6}n=`o5bi>|`8dM;jlEpr&X<#@X$nE%5^wV`<@S;0x? zYQ_NN?d02)7G!BE+5280cn!9ct`nCEPas)VoWr)idYHuoLn_$2CC!1bbl!)nzH0#QwjYYYfx{IwfibfC8nzNL{d)Li&PTm!4bes!~gQ-nFfM%^qn z&5cpnzy?k({-nroV#^lMsU|%=YnhGf?&!=3@#8y0us2;I(zRI(O@W}}w@}%70Su6&*_p{W*$6bW z)yzaO+Fo5@5Ms69!5Asvm6L~NLcV;yQ2t7j?IXY3`G7s8yv8L^Q$&4v{o%r^`AJA4YbcSzIX_X4jyR-u+Ky%}lavC32kW}P#nx;@&D zIdFe-P{D|bh6Oe@h1H)iVxf~G_@hR%uslx>qg8ukD%TdvJ;K@)5W*%mu!hF}YW0_I zyXe;qJ5Yw@L}&8aSFZPX{B#w;dLtt`V^E&r#EB+=r5>YKq2HbxN&6w7IOGO4$Gq2+ zk+bt9@Qt~EQ4Clfw_fUFe>7)iI!l)9Ic`sHrgmOQ?B)7JMm;CDwMH?PA;efxjc-4r z6U^sTp2CJD#4sNg1z9Gsv);t(*8C_})K}h+`IGvb*hJT(+ta)IAST_ba!EB?mwH-K zvnh2_;jf3(0o*U?azor*j0j3CIFYsafzuOQkAiJ1PBv*ls6X&SV0f7dpIyrDdfn=x zrq%(gT};^KZ@rMCLXSGY*_DmLS+&LoHOxQES=nbi#!6Jm3yVmgel;w4J?EO%U-b%% z|8<3=|6ObAlddO^+GlI-NxKreN%1=s1~~K&Kf=RQYTa~gkNVT3K+dYRO8d8DK}M*- z7&El=d-7c-VFC{?bAW;a*-W1>XHau&DUUW;vEtTKKZBYcZR%LZDfO$&2Ff8WnJBx# z*?(pD-<4rVmt`GMBvZc0DJjs=W^(?HS+A^Qw4BC_BLE^_M=J+)I!SDwqe~wa1o>X% zDK#<~!UtKSm*yrvvwzheD3`;@G+Dzp;9Z93iMTk)6%& zuWpt0`Oz7&7(uU+%W3L%RFXV*HQ*+Omg1V+%KAl=Og2JXCO5goqvj=lU<0U@%UZL5}x{Z~#mL0j_7Vw9PncH0HQC0P><9m*IG;}AaFg}=Waz#fL7!m6?-rKn_puupY7|_|Gn%= zr2L=%Q7AI}mtb}N-_)}HOC$=|j|Owo|1U~r|BpGE-H7#Mm$3EF(Lcjr3{~B}*I6y}@ z;72c)c-Aa*lTvqJlgU+rBL{&7^y_=2dQQO;ANvk2& z$lW0OM;r!SB+>j1m&(P*m*aD z)izDs*Q&PUTcFZQAUgV-=^T7--o)UX!TA>@=Xl(^NJ$DrQ~&Cg`?h=e8R)+#RJGlG z)RJKT$~rQ9<<~l5=Y?fV*!z_=Qbdudo$Tgf;@HS;<6mrgMVL?sB8?I~yV#F2@R8bF zJkxX1FiE|)jUi-X-K}cQs1@M{??p@VqbnT^E76xK(CWGoUJUc3oj3iW^3;WwW(QSE zRq8oy>!4?Q-AgJeoRJ3L+Fx`j=z+mOPA@4qT!dkU`m{5q?3`a$l6aJ0Dlm?Sp?=60 zxB2S=aMkJD<*^SE>~;uPshTozX{kUACfP{}#$^_})}DbUSR(7U-6p-IVX!KO8!*l+ z2D-GgPu?2I5-#V1K%k9*kvX6D&61qyQ}g#`+4{-OT`WfsK{pC`k(n#;osiV8#F zEemB_@`Rp^ebg{tzTG`eZ_iK1!XZ+&Ko8o<$M-qru7D~9FL4UpNUR~&rS^ZqFbRnE z4#PpsPdA6DW4!U_p9>V!6=oH6z0+_l@OHV=xa%$$q}d%dEbtO~&gT_uW!Z|~?rPnQ<+RxLyPF?I98#s^E=1?!&1)EIdS zh0f1QKOR` zx$G0lCQoH%kJyEHwiAMFza{24N78dMUV%yq{bzVfPucDZq=j*fgq%#Cjeh<1uJ_RO z55J!OXld`7B0FVg&MIll2E13p)WNg=RMw@77F=C46PN`C*?2P2_Tfq|Aw%B9$VV{P z3gJ2Ar>@+d`+#|um7YWBh6h_agZLo4F;VXZDC#8&FVJC3JUarvGms^wU6^;NGbo`c z^TMesW$I&WXr{SWbv!Ergw9VTk$LVzawls$wM)E%aVeg;+#)F^RqsKXU`5^ z+D6s$##|Q?!&dB+pB>=Z;DlvW1_Gm6VA-Y zKOf0UIupLD+M_Z+)rE|L&e=jG8{aQSDmf&CK5lGR# z?y>P)c5RVlf$Rum%C@=5zqhlP{~TiDPm@|i-Q?NZfuy?oKq@Edkg*Zu2^=nTU~Q3q zW(PlkdN|l=Z|!Cr%^Mv8s|_02p+e%Qw2;g>N9}IZd8>uJ`G-Lc=3H?j0;_SW5{kLy z{<#cyRYCN}3i4oQTpSa%+8zd$;e65$4ErIq?2}Z*FLaAR8BP{*@W9I}Ki)qa?WLri z|K3lHGyEPxZL*JOb3<2O2`J;sdv$o|k6){h82sWWHL>WF^ouE_yisyu5jSMVOMx6h z4|+OMvQWE=8ad6v3N%L(Q52s7{FSJdmX^=b#SzfPE3Ew0$$hKXTJjXxdgrI&_tNIy z$Db=OJU+(xaw4U}XCA%G-8Qj5U1>(85EVe{t#fye8vIeeKc*%t1QZ1S^?)I_Q5i-M z%jAx}-^y@WA8~0Q8S5^{0rL9~b^wZEXn!y?PeVbY!F#?aVxJfE<$l4`x*FRaDQS!MB@V(Ocvcc);6c8VNQ>1&z5(H6D}^uitk6{q5D=V?x6tF?{m%Sy@>M zcoQp3?EJyb;)&CJbf7-*qd7an8*i-9( zr{~B#VZe}$Z>*7Uz#7O3CCX>x2k?F%Y&7T?^cq{9YU(N2bcu5~{ku7#@g=1|NO6pI zD#L^75ycXA2N`R(q=R--ze}ZixM#L+OOOuw$OOvc$b&sD5Ipb==opJ;gA>$%_%1@e6^x=B;aHa`?FJQ?JP5J#jVzyATDD{Rm_~04EuQ);{_+@pKZCBDQ zz8OqFRU>*s>!Vz2DhmXY39?-sE+wpA$^TS{Gxf_^d%0)EbMl05B^W5HNkai#nkH5s zFyq%xT=ZX28Hn}CK+#7D$O=I(0NC?>u5ukyJ#YIeQH{Zjt$>Tez8M+%1-l~47Ed5; z&9*HbyFe!5k?a{&u8cC+;iV<}#u9oK$fm>mH65c*8%Q(8-88v8m-DxM*UEzXSAn}( zNVF>1w?vA?w`UVbbg3@-<>h}FoyjIvX%XyRytoxoY68l#t#QK%&@%1}17C}bt0Dm{ zL-#aLVjPUwB744x>3nIaV`{kVx1q@|wCapv8t8C-$;iO^ROZH6t=rqZhh$8{^{C8} zH;j@`yX10gukUY0%~e^Ba}#8pg7Y7x7vT|7XB~@etIUTpE!#SzM6)#?RtVi4JEv3` z9s6Qz(%-g#L-%)J$(Ugz$;|tQOPvQJK@;u9PVlJYWaOh z$Ct$bT;4rV8|zi=Q}x`6!R?OMIIkZB_XlvrUnaj_D@F%1>i?8FOH3m@X#@MOt@-Pc zSV7RUQo!uQnlNN5mkRKXibXvMjbz%AOY9KbTv==A6yiCQJ-eqsu_gNl(WD&pU*wD8FX<=6eQ;a1?+4-h^$)|8vvSBZn&P z3+BR|vFURP!ypjnX#nb^_zuB8>vDL`cP8H2?^C+P3EyW39MYNNUn1M>jJH;&%iY5N z*xSfed$k3U0%`*%Jx~fvpN0oDIDQDhI{9xnJ<(6+os_phIZqnd&0unaKdcADY^1m< zdK?0Eg6W_Bc?syBpPxZwYKMlBICUP!L~wm1C)aW{=+`eb%{7m1d~!Yf=1sHY@6_2R zQa7bVtAi>?Or_%zF007#YT;`VZba|vu;9`O^S-cKwAWEFd%F51CBDM`H$h)Dm>JqL z@eMT#9}iEDz#C;3{Y2qOHyBRE-Q41_lPg9*Ob+aro>`^N5tb zzCM9q4=w%mgMs~yjvI2Mq_os(3{?7E@Q&L=?M;cs;d|qKdt8l6evG$Cg?sow9C@Xy z#H>c5r~PqD^|0IO@HC}`S+JyLXs=3upc=eQ7GXWP*7TflYDK*qS^cQ%qA=MJJ?^11 z9v8f3vsG@|TZ1B$zG$Edhl+Qm|zFhD9LY3#5^qHjo(h>F^)nB zlBX1=L6yd$q_(KTiyZMN$=HStOZ9T13L6yeeL9b@#}wm z{~tR2ea`J)eNE{9urC4~5ExXS?El74Qv!jHF4&eR{#JYbb0XoRN22MFPuKQZbhZ;4xLS=IxsLJ4*uQ<%(89 zcaIuo^c|p5O3YS?5(nmrUF(zFIB;xk25Pfy_bA1a_jHBmGxvd$9o+`_qZc;M2ZIB* z=kGEKqWGlUYVn%EH6E9a+WVi&U=!W(a3M7iojVOJ-PBU!^ORZOfw7{Gq1I>3*xG^K zKaPf>8-UjS-8Vcu+!d3jR2bMM~0)OF6xPq#e6K*#L+{qk`lYn8><(_&>GTefhO!^381n!64E?G1lvo#lzP#1@J%YVK)@k@z^=65i>82~ zBe(%T4ark4%BLXi)6nlIP}AKpcCHsS<5q|BI~(#4zhA+J_aF<@Vs@q3g;j0pA*2p= z;09g^f6+p7EkI4ACX|P(xN|`-S(F&D55kE*a@Go<6U|p4KYvm^^hlk-V>+ zFINp&!B?F0T~!^%(zy%&#(GNmGL~LLvH*F<&Qi*D1O0kD2^MMILqrLmBSw_VZRg!( zZXE2`JhUM>f*YwU#m@TaZL&Uf#G7<_m&x4@IecO6m$m$mRQEWXLyMy5wV-K^%znD> zvpQUte%r4nHP04PBa^7<(u;stxi$FVr*1XOAZ@33cPN?LDRye6oag z9rc5JdSK24yZ}T03_q^IBdTCf(9K#tL zn*7~v5=lie&-&8Hc$yPYo=8Q{!oMFz!6>&0grFTsL|lFdWu1n{)j28E5krBJ`U=W) zOevq#Kksovms~o-x@i;hj!%7O^Ko z>2`io7!%i5zADU3{omwjm+^(hvgU7PE4fhhb?-*;*(|8)Zaw;Xyt+4QTX%9fryzDy zS-$qE?V)+gt1u46DiB(L zq00c*bh*cK5TQ<|fwRMT&x=TBLxtV;Y&wvQ3jr;x-04+h(;gIc^x?>(j_G^O@#i1@ z0YZafj>6J+l7@6P<39^2kDanrI|Saz*BA@zbljJb?do;5cT9?P@H_x$#!vn7L94P~ zuZ*snED1Y1$r8D7Ar~^jfLUKUcm+~UEewd?UJ8#pDjsiY3(RF+X-plAWTbrH0;b@? zt0NT20`1eE`PH`Q*2=heR>r`}YJ-$xolVME5=^qKSl-5NFF1JFJ|LB8|CGJ#uSLU} znfDK&6qbL|Jbz3Qr1_a$ior2r-8|hX1wf> zyjC^xp6>p8M#mzuy~=9;UPjP%#~?8={Q^i?jCA&fhM9hT0zv2Xy-?M&C&0fNvaM%7 z;zGbZuSaFXY?VI=?0k87G_`)vQkTTt4D3#{H$|%+-eJAtEjk5gp|9qHk;WFSW|~zO zUB}XG4I-zAGnK_bp7U#5l`@P@Cg;3@&Fb0je;hN&DG4nbl9b_fuL)6qbMgY{WO_C2v4$_s)9`s zS$UQ;CK@9D%=goZ0dLFC*0UzTaO{)ZpE((?xDwJGjD@u@^%mY`h-)%P*T(^ibt_=s zldX*Fou3K{_}BZL`*0o8-&ceUrb{ErPj|LYi1F^OzBA%`s$Yxcy1ZQLn2yaDP7UIK zTZ3PBikVtmE}M)OJd~scP^uvHyYqw9*Y4J6MkHZ&i~X7?Z}tx&GJ>vA5AZZ#Y6g|g zu|9@gct@w~_NJUu8ez)A9X~E3HhH?~uO_*xV%r-B$+JTpbB9ZK>C8dkH$W^Yt1lwA@uq1V$9>?RE@W znS}`0iGc$HZe)ZJfTDwFl@;pHjNl1b(k0?(E4Vjdv3_bTZHS*p%C9(@!J(IXYbF_= zjZ4(h^{B^2Vkxs$x8|m38-ngJB@*mEO+G37BNiyBD}VFe)tNpG(H0dN3BG&nqj7Kb z8~VgF`6kEbc29-QHpx?>CVqUmz$mEAdHWV--f?~EoDm``&;_9I3IYkmYBQEPf}F>e z^%{+Y$`)683-$BO8%Bi#e0VHN$74f7jGxc#E@MvFCvIeAwLSLPU^@l( zVLnTn#O;d`!|~MBE%LQHBXWc^+Xqtzu~%mZCn4T`RsyEqh>AJ}xrK#=XCEcfw;IPv z38uLk?v%Z)O0f?Zn=7_)ZB-YrpL(piR7^_49dBw*c+kfa!nVPuWmnF(dyxFyC6Q^{ zRC~C3E!bjvxc628to~tQHF6}8aKF04)Nfdk>#@jE`Ai79DfZ2jao}XMj!8;ow!aYj z5P*LDyA7Ro(AV8+ME745K!icM)yA?ykc3Of)4`BOCp8ln&2FMJH zO}acjBYCLRfR^$BJ>q_O^oP@c;&A~WLoJ0N-l<;1}!R&gFePQ)WWS3@oU|P8L0?eb<@tv8<=|?W*NFQaLJj%VvJP*qd(Y zk8E=Udf8Z25{`@N$$b|6qdKvk1<>^$qwIeG^3qP^i9u+0X*=fePL|+rCs6anElSs? zKw&GUXDcqU@;42<#Qv7Qj^zbOlLW~|Jq`@=Vm(ck9-uEGOXQ8`DEyt^xFk0z#uH1& zj;L&Ia&Z~0>QjuH3XKD1hox)I2B;_B0X+wBWp%$n-k^W{w7@@1ws3rQXKf)eUJ7*2LZFUtwh&6hgk`ve+=^UPw6ED=Z{}@ z;2oBCh541Pe58Oi?;x8L*GU2>ugD{#h~_p?H}-V>YeDy{hPi-g^!OM(F`nWng7^t^9A42UFSL#0t5G6b@IzVODT~9+k1Tu z*A57&n}}7n=i7T)5=il|Mfs-NfoK^(yLFn{=`gMB#Whlt_M1A>@!#}FI|HR@s|_Ze zUaqT(x?b}lDFs0{Xp^o;}p+Xm2a`0`1^SVOYv&ActiT|>Lx{84UTkQIH1%P@R z*C1cZGw5`UK9i=F2uSU^fhgVPhQ_%fZMIr0Wqyo^zH{34arX7D&2+EUEhoGQZ`Fkq zWw%*Lz){X*@VE8fOOxITb+R2J? zz5w)DMv+AAQtzQ9e=E*sKk!PZABH*3>NFZyv7tIw_&f*w(cA-=@lP+y221_Z zo|b0>K><@*$l;vh!1Pp~Y)sUStxXjvuuu3JDJ@9dA!t}EW7Dakw?r-C!s0}v^>j1u z?lFXBvhcG+Z!lyFT}~d!fh~FePQH2`^b-Gb9W+vSJHlEPbkMgUj#(29(o*Su-SR z5Y|cF@2&Cj{KNC!=eUZ9O}F^1e7ca#bOHRoWjM}FGJn4F7iD{8y=xBT8TfYS(tHC# zGKQK(cD3E>yx~AR?m(!M@N@9v33=MFW-ECwB;=|@J#+J^X|PaYw-`R4bQjX}yXa$bZykH&iV{F({<1o_hBC*Glu#z(VMgW zYt5WXyXl%macz0o=PLhK3;{wXqiRjOjYAbpI8EN`!O)c1oWQR{Yy}h&8^nl(i28=iS@EdGZG1sG| z>NAVdL5P9++erU72!o5cdZH-d_D`SgC8XQW3kY==?BD5eUTTo;bREq08Rx3l4RHAm zZQ8h(ylJt`=T=`tpVX*d3y@_npeB0%blx7iSu=BqUB<0MI+GRbZTt+xlDICz#=8IYQhEGKB z0MY*7`C^`mA%vIlUYu@MXzP)-4a~>^nrY9^`nMRrJbuu1RuZb=og}EAxb&W{%*Nn; z&!E_Kqr>^XC88@ZhERt>CY6!4kz92j+mwrXF>eJxeWw5~;t%t=mn?c+w)TW`1(7={ z$q{ux)*EA{h`7YA+BYQfR=9NQOOdBwyvd=07 z`u_m#ApJIAz}TYXrKDy6UuFTTx~ez*6)%$dM?>ld@A!p9I*$4OkML@xfr{3tnTK@s;PeBfru4Tx7mWYnS?X z+QFD%nQ@gl!(VV|yPn#~2ET^cwm2LiBP1d;#6PY#IV6Q@V2B>0jO2zvV9-g8Yk-!%rN2M>r;<_R!g- z7Duo^d@8-r@nz09;8N9>Z>nT+)u&*}*C}*oQy4qj&qTH_B`tgFZVlF<#F z3+BYXBtNx2W_Wri^!ZFngjVriL-zZ~@$ZO*L@uF|r%wIkVYkBW-Z|i?9lYaZS3cT@;f_+R#q*|n_pH_F%SpVl;p5v4D?zOZ>?_MN~iC7?2;A9}fqIR7T!y>)f;i%iBh;cMWyRW;Wd!@rqdnS!o$_|#M7NJnAk6}<-gbR*;U zpEIHCv?imsQy8oxtI_*mWQ5es&U%r1*%aGrXF-|99PrFOPLQU0+>6e^7vd=T;ZK2K zD$4gV9CQIWPbBASz}}R=8y^v!)Jp+wByQsdOD-Jqv&@A6X&6R;^)8k_DDv(1M4$U7 zpq$Xpj6xkHky6q|oOq3f1SF$S((x?^#Uz2wZTkj*N&Km@&AB0cXE<*Z?B!HDKiTmZ z{~DWZRsslQGAGWkSZLP*9x2gpT&CN-`WhZA8J(QI(0e>iAMafr;rIvnos?NyO;M?5p1Nj)|0 zIi?<%`SNzx66smA#`T70I}^n`+@HuxY7WR0Hw6-V3Z?tyC~H3fQEvsmnw6=Vd>{-c z|4YKhgjg&~p?3WZSwP)q+eExYF%54T_GxDDo}g_vf{RD&^Gwzs<~y3fRl|>@oFgqA zqsJDxa2K8729^Qs-uXv9KYF)4rgQC+J?Qbt-C(~|1RGijd zSyWkQ1_He-kdc)&^a6$HQi>nQQ`b+|kSy5cfc7042b5atceQfTW(?apJ10J92HX9L zVbf|z#Mk%I*-PeG(}iXMwCZo0?g*g(2_hkef3$XhDlPF|2?4t20az$*Qx;_X4!}Ur z3qX(mU)a;X?T`P#zWC!nz)${Zxj-D@H7^IK{XhQv9}}hn_wSD|9s6G_ng5-L!T;@b z04U(UFO}!tS%m)z1pTpv{wG`KUxWTcI!2H2WNSxgbJd(u;o(&RW%BP@_*L)*BW2up zfv4mNJf)K?0cy*HA~CJO1qwLe*NJ}U?*ma|l}nc{Z4BgUY|X9=6}y5f*8nMavdU>> zqDk*1nDbR^Xl!c`xcAld6QHQmJRF>9^lwp;+O>MS?p+T7opSqq@!?v0@uXGk_!0#$ z(Qy7WD%kj-qlH9{(mImx_y1bV;PHO7vsNI+%P0_Wir8xNdQqC5rD07rfu_7iF_%b&aCX`?^32x#9$%6y4M<& z_Wl3h63J6{^l(fIB(dl~Dlb zjE}mRmP+=6dZLS)!qU{bOgMJ8+>zxHaNC#(vF?VST(85brO_^w#JUs0@d-oE8<+q7-0!p`E7L)%1b&NHoL zjE4@04U~0}AuJ=4m)%y9L~B{?5sxds_z@#^K4DA;q57i;SOv9i%OT(aC=hfQj>oEqgJ#TM0`KKrKP17Qq9k3K{5wYGHMjv zFIl#PzMF$itY9FQql1r&b(3lb?27S<*=))XE*#Qq%#ky4Xp=Sl9rANMle+YT@-+lM zR*^sDMleQnFJtmogNJWU)_UaJizr~ayqHJ;@<3N>za0OAlaE)mk!IIkg+-!}+O5iJ z?^*l0bg$%`Wjs^m*Gpl}le^=Ga+5W+T7Gr=Rb<-F`71?b=WW$yp!3uzij~dRVfcPa z1d|8vvDK5ox5GI~)x)2%h4}cIhYweZK0FH_<$)0%Fs!QSJ68&@-KW&Eisy&cz^cTn zFyv}i%Aj?|t8Q>WeuOOR{a77JC={ zK4xlA@S|luRCBjsPnT@B?hM(TU_az+7LI#G8r_HvrS)tosf%fH1>vH zlPz$BjxpZ%CpAKH<==`K)!D-&7uHte2vk{1@7Lq(U}un>zTK{AL!Qmp?m4z+T<1hK z`|B}z(hgr7!snh>@ybDgs(}c5)@7E}z|_SGSE01)AC}o-dWz&thw%**=U3<;%MR-3 zV#;-I<0Q4~1(i0*)sQr5E}E^uF?r?10Cu@H&-UfQcSkShPSf`kaS>=gE>7wW>AL6= zp8o#;jXJRYw}`u6JS%aGSI2SlxpHJL`$??fiKliIt$Elb*)EaM3E1jK`x~wdi!ySN z)rF5b)Ho;&Tej_5!n~v@VOruOP9N@0H36bxeBzqYMS4-9|)#=*Z3O zF{iWeg4nC;UiZy>QHP>N4@iw`wc`fzj1`^3^9R@IgpL6avT~qGr2YQ^e4X$c5J^bF zGyDZ&o8V1vderr(GHST=WV8V9Ez{77A)b_yWz(PZSBH#cP9!*!5{C0ziqn7hrl}>! zNA`^c5R_8;zhLO7`6b#!O0lR-R`g3(nOhUE{QGx0ofFE8v)lHat!ID` z;+msL(eY)7!e83I-;R8J;&A7chCz_PNX&$5F>kyudh5BlS9WvWh`V6?#t!p7?+@}A z2gaE-DLv8n%4NL4dA>$$`d9^hd)cFbO!j~PH8-Hxsk37Bt548OkAgVkH7_9WoS9SIbS{VmK)UDIPJRe? zO(%>%^{be&E4F;uW1f9fbDqvf65UGHDr>7A5^>5#IViv$#wR^^9^=eU-7D=89_wKm z?HKt$l-!cMH!g}T0~T%aupi`{0X!Q_YWwzf^aE#!NWu0M(-AcK z0XEpY_sDxml!#>$diKb& z2wDJ2LysQXTS11;ap0Ket^lQ75eV+GXaeA>UI4YA!qEJ*`DnWTPf?_Q1NHyUv3x!_ zw7JrpLCVByqlv-wdC^K>96XoG0s392x~1lmw{T5gwx+RjkUf*-Xm3ZQDT7o~k;*2W(2Jpm-7)A= zTxm*l`9%e+J_Eh?sjKvVKB0FY(ZURG&BAxTEpB?i#^R3r6C$l*`s|&a%?^sXhbz|I z^tgocJEEwH5&s0B0oHXaFOfGMJF7AA3#5M%bp4bx9@va?X~^8p3P{f!eUL@dNmi&I z@M`h%Tw4jtX44jbhxP{yP@p4YJ^g5d z#UCpR_*F-A>b^RV-Z}{|?xU<1+#6t8tx(|UF&pyn1+>jtKA`!!L+Az!9^#&P6a1h7d)nzn7#pf1SctC~AYNQLcdY z1)7^w{vMr3<5Bd_b9d7aTt8t539#!k2SQJsXznWirWr?Kays9JS7LY64k8B75&QmP z%ah&I<~3KC0~2OpU6kEe^!nXwieX>k)n>gLyZJERvEait@XbY^raU6*u#NT(bc}c& zV6Qg;fnz_rL``aXGch|e=g{m@*|vUo+1|OGJ+nf(mcz!KH-2^6RC!oeOl)ku8_Io% zLgl8Gl9Lf+@fy#0Yn|{lD;k2P%W2NGzzU^O1P?RF>-w~D3%W@93UxvL*x{`Z<_V|2 zZ*tf-v6vBapIhW>TESMI+^Yx-sV(XNlQ9m)>x~czqQ(IpS28jTgB`8q^gYQGEG2kL z*nwiZYmQ`i(D`DY!9^={V0s+V<)&W+l=G-fJc3f=>hA8|;~7ASLv0Jro(#n{?QB&Q zVhT&r=`+*?g9j~5Ot$>nVCPoBH}AWSTSBr;&SQ2$-~Gd$o%yR64ItvPBkNz36uiVr5S)?O_b{;EEnVr z`|bwYbatUd{~ws@7A zJm#zWx-Bn#x#`*K?|HdnA&n48I|hxSW}UI4oMjI=BWrurLp3;`8Gye^^>`a(?*WmFy3Tx~AF@}a5vX3m zHAiTDFH=iL1zr;E*-hD*r8%9y5wxaGTiw6jbf}vkdeA*f)0m(x`qCzEb!CR4uvF4J z*qlJ{i`tN%G-=uJ=5u&WkcXghxvr&Ss0Z7%LuqWV2@4X$`|_pWU7KW7*BWZ9xjhav{F)B$nvXn z35F-$>mRTb0 za_u#eF4J4A0-PB}`rvTt|CskFSMkEiY0!Ty54 z4ib~?#+7c?$f<;f*b1Ny4iD)$iZMEQ)0PiiY40KgV_?*2@&Xe()(SzeQjRRYq86If z=t-`n1HA>TFD3CFgNZWsIx(l;L!p3z{-#{S&rxwE;N6g4`NeCB_$c}$KtiwgG-vn3 zeVPwEE-RFtZ!MIe$Hge%`|2vXcH9nA79^+h2$gK!wzT97-)g@UH`O$i=!cY-G;>2% zXeMYQy6?uaeN+3VV9O2pElml0_oEv4yv8jT8P?<*8fLGl9~_Fy@90;A%X8%tmj{}r z3`-y4Qhamsuhp!oUGvEDC#c)y3$*qc61UEX*&#m@JX??Al-E86da-D;-CuNwchY~k za4$3>PrEg={gR($jp<(}RG66UU|`yzJl-@S&u`wAt~Y(1y{a+x;@8=nLQ^WIR3;A~ zjy|2{%@Jv&;&_03?6l7a4bpU)X7Kd@&>M=-$YtZI`Cx+Fe6M;-du)~hPc*h6xt{vr zQUx9;RmDwy56mxJyaqI9oJ$&HQjv+P zf=m!#H842yyCU;0{=lWwsFirBriM2EV^4TYj;B#Z8dslS^!Vl>p4Ni*u?=KVH)q&3 z6*eBPWtw}<&`0+Ss^hH7ag!2NY?rSYGomN?osT;c=4dlH23|Y?Q z>lTZMrRPjP7->=glr&<9EQ+&KN-W8u!?Cz)z6frn99}Aqa_flw9Uv$hZ>-xWP_f!6 zFj|bGR#O5qyuV4VlMRXOivlskE|MEL-Y|~g$T7U<;COA3uml${1S`xG@g@EA)37@E z&dMv})9?gams8K!aTyDmTOPNYRG&;Iu6hkzKJ@2tgxpni# zdZ*x35FIu~^f8O&x<}6jU`ul{9&MyCa)fez>OSe7`T!JlB)S8z1=ygp3>K2lfkh@O z8VA>|frPw|0Q{d#F{KmCpLZwUu3~DM8_t7{Nut>A_Y92egZ}{DX|ln%mcuO`*!#_cw& zl)wL&Q2=bpFf26i)EJiZ+6X*Atpe~;F~SQ0@QGr&!dt|ER&l;-ZE>iOh1(1)QS@=! z@86qwz;^lN^*&Ojx-OK_)pht?>^uJK2yp8$%(wz6C~Y;G5ZbR<++>&=0up+ROO2I8 z{m!tTN&pNIuX8R(m$AhAhq08>dHn4=>{D%fn%?839s}Jv9SDN4{0ah`ileO_z-2Zo zsUIQTd0vk0H%#zWD9%rQn^6eZg3HF7$?!jI==fi)j(=GL|B7S%w;S^RrseUg3DmdK zgMi=xb9}gRa-sXG;t?+Ei>ujb`o6l7)>_%*q=Hdb+}`JyUNih+%cz#T86 z1F}XImL6KAl6w#*^r65Zr5EnFX#mbb?6#`Sk8`uK&$6LGN)YIhGOi*NV=F>tt zw!w*j=DP9Y%^BBqY!!hpwkzpE9{p;=pE{FEumX|^G11Yx=AaotNrDw}`5a*Ji-%Nx z07n5K=f5U|J~~2OjdIr9cJhEnA^!KH$W$fot$+Nmr33$B({{>lsW0o+8H_979((pG z5kIXOc1}FD&a?3WOubtIr>~Cq*Mj9R z+PeGFyVS37wR3D?%i)6>?JI{Mco(%S(R?0gB=L@>}{rX58! z#gJ-eZ2hizxSzP4{-+YKDi1SlbbRqi6}Mx4S_+_b4~--bGY2OPtD%cyri{@9o|QT& za4FM;YAt^03K)(0BE2Jci(C-!S5^PspkURI;+oq-&e8prcd_ZDLLrr|C45gTa*8Nz zWSUHRLKjsvUgczbct0fM?C!oS6v!UD8OfO^U}Bd;8JN$r!v7AP!<#3%08{f&CR0B% zi|!-ig^4}`2975<;P@dHo6rvE{tB=o`=S+Aklw(`%I?0Q6Ww7K^ zal)q9@;P^=V3)nh!6Je4%n~7jGGDY${V3hbH8e`uz$42qVv}5YNd#y6`fuuUsR)m zK2&Z@>QA`9wn3q*q-TH$9)d;s285=P<@dj2w$RhD4SrxC&DF21Jne9Cm?X4xUjtS1#iIsrw zg&Q!QE`3zhKRsBk$~)(ZLn#pxKk-`ljuyappA|!={DAG10h!soU8Kz5zQu&K@I8%H zo!6@2+eWPIvZWoPTwmUY`<-}H8GM43bN6zg_D)B=%xxnhtL$DOp54y`VewG|oqWxA zvF~EDGW@o;f2A=0$5_@+Aj2<9UjRn(0IRKJK+6iPW*RAde%Cul=CNV*w-s5ePpT=~ zg6#gIQ_X}41nWo%JMaBfsqbf<$2c#axWTuT|0Y*g=ri`XuC-0LFS-Edt@zP8mD>ty zmsSl~`Iz@rG*Z|10gRm9ct?8S&kpdTvc?ItHC}HA=y12F2ydmSmYUeu%U9b@+`NoJ zCIpb8QK!`73uvbOow`ng_gs#4THKDg?7(l_6>ms0$?%bXI+i*&c#X2|9c2N9l8Y#2 zER4Q#T#u9s!^9Y$h=7i+ZOIGNr#uM+)}CA1eIoQto7hohq19xseV^0m)^@Awnl)_p z6kY~E)#Te^-tDkmyhrykkF%P)+~8pz7B8}`Icec9*U|k z!*3t`-vpv}+1i_|?Pg^y)a($lnL{Q4>8fsvnR*FNwwR|_!If;VqFA75ys)x3sS6gNorpq->#fiLPfGYfqB$DWRuydP_yyvt@&mx*q#Wb%E|#2|@9>Q8Ax z=h_EPr61Hc){8H>fj*a7;g!#L7wFVM&pW@?a%!36@j>gy{Z%KLGB&GbKyj%?Hj(PA z5~W!kHKE0}o$nbFiofUUO+-vSic|6s{!4_orDjKL(=bFkruY{je)DJcx8C|;Kq4E_ zEJCUo6)(v9!}(yJw82K~1bS^S4HIZzt}`tLVB`io?OZ3U_<#lS@-9%I^uZD`fRq4~ zC9HTkX{yht00B70AmP+>kox+!CU>t?~ zrmEHI+97<5A!RHB4?mNOm~>KTW-IW%fjUQ))Q$jD?r_<;9 zoD22lb`#2IgUfi7J`X2o-0d$17&D5ywMiq_QdF8Zr8Ym3(Iqi{EfC`cGzz&sN>&D} zj#|`EuQuq{#L`Q!Ez~l)b>orz#8n$Uy6K!*AkLb#m-fuoT)0ztgLN&i#eKlAWikUB zhr)I_zdnyZF;R`APDZzO3ud_Ded%?|>eJ9F}+r@XRxm;S~@K1nuI6?MrlYp|X z3~evP-WxN0zgO)^<$?*h2_eleMspPTlgQ63-}tnQupF)f0j)*my5Ng+pqs^Je1;0M z6eNWwD0QYLi2(2Qh5ADhPuN)xQEBU&LtPi{e|dG>uu9t3@eDGi%wn}}Oi4r-6WE@l zy68pM8M?AMz;Gd`x@OZY)FXqIo@%XLomUnR9#ZYg4lP_BCcf%4PWaKn7_*Et{^(aliMEzPb!rw#4r4MdB2pfML9Xa)lXrL;J#e1u?_! zC52x3-}qMMSELf69rzNiP-d=%91(=|3#3_Dp0o_HckZO^B;l0KW$M7K2qimp%G4}g z*qe~8W*rVUX?Y{NUWGji2aC%7lBV6@>Hbnjy^VuEn77_Oz_Z269S(|Zx;pzyS`_Cx zHmS|hCl~dG3`t+tM$V|<*w_>eV1q~sGG{$QYm6o=SMzJ=L6z9@D&#*4LpVUMOu_M#Nns4M0h zO4Z{9V-$+}=9CYcbth>rWIDPmIT>`HM2{^MG^}2jGpfrR*K9%Ym?=%prVq}X9db^; z8pRlHBlCG%1libo4ltFGFG6a94)Hc2lwtAXBn!H1kab@8JVpy?4TPFoi0VsOiWz1R6f2 z<>@Cv(rs9p{gKKDn}f}q!ubxm)tdIUzUOY*nZaHv5L&X;GO-^6^c(X;>WiaDG?jpD z(9aH?zP*aj8vHN|&C(Gs&HHM|V+tBJpTrcJ$g%)c=cOFCeC)nfQ5>j}lc>5T=~5aP zWbu-)sx$E5K^IY8^{V-UYrY>545En2@>l_%udXex%eP(MEh)(nJ#i8VU&eSZguOj; zgoocpTRk$)WGr^J<8xPAFmKL#Yb=SRp6 zmfY}QRF)*_&a8*s5TS)UXdk#RO7avNch;7-Hyx9{d`$(p!K%+g6a{;h1^1=M(=7U7 z0}GFm(89eQ)#s8r7pTr=qTg%}Rb>>p3Z3-^o~l$u zE)gOpt5|iHTe3#B8}o}<>Oad#q{?_7+L*v$O*PQTnZ$gD=+$#BiLU9nC`Lh9RBW7K zLUio6qHr~O;~BZZETSQ->%w1P?o#lc?U%>)H;(-6Wdt&qHXPM!{;g&oCXy%3cxUrR z3*3&~zd7qT!(WItzobXjiXKN~+5DK;;?6+B@)*#Cm3%duL=~X6H>`a{hmONF`at<* z09y#aVxXe2C~_L>5?b7xCPf@g7Zk+e_aR}=!a(?5vr^F&kZ!kmVk@)-S{Y?;7U1El zT`T!`hG2^G&p;cPm;gZ(_7l-bfdHBgpRFS~Sj_)nb?#92{R8cQtp)u1lX(JP_NQ9) zUsBYw^d0{~PS6{?k^dHx{_My8DQ|_8qFYgT|4JPBi=x{S+WwnbGQe{FgNr)28@hrG zM0ouxPwO8qfg0rhfp32WmHg`_{*CZV0Co4zuLmyhr)uCo_o;nY!=9=j=F#41;g#B$ z*QQ!IOlWv3=ln%SPFT_H4yYh^U>&A;9G&vgi9sl>vGmx4PQTfqLm&sh!RDvnfoO%H=)Es;T;#?6k@3-cg$qcEqN4AQ}v-`EGUNytv_sdQjS7D zDIh~$xKm*AZ!yN>B_O$B-ILm#dseFJ>4!54R|mE`s>|1zcbIn9Z+v*R-^6aL+#?xo z1$9-ns60U?kZ8#0aLvc3rH9{B*XXpjhFc*kOrMoPac7`vFk+56!n?IKpJm;9k|mG2 zQz&V`V}LI>!=2}BS?!CdVQXs|+^xjZo)WYBPTJKT;^yuvvU^^hD)!5{%&T+P?Fh2O zTC=P~$;&1o-F~b>9})H7AOm5#Da%M$L`P)5N-fZjCQ{b$4(V&Jm@_73NAky%1tFVC zU+l(tw?t}LFry`3w70Lbv$H}p-Zl&6pQbigLVqs&Hs%r}K!DgSv9pS*$1T4Ht;}@Z zv(MKgAkBKd0?KmH3+bZJ-&5Cv$Yj{Kohs;4NFj)6z(<_SSGs)VI|x%NH{c;5ATVt) zR?7SfO=@O0UEicx-h!x!j~fG${f%lwpKFn?qDK1!r2ee6Lg?1V_s(%&V=s1U*wBAn zjVBg4d@XM;d#f6Es( zqXyA1!`!#y5N~~ZM_oF;nIJCQ_u$&ku(@xE41VR@dkH>1X+MY>t65P4YFjrsSp;F;xRbF@JF6&r=4RSsKnplvSHHJuIgp0%6W zILXzq7dn*)1|lDqNSdmtOcX{u8ud7O?|Zg5ifTAIWo>z~eaeeaP`X!Fuv~M1}GTyGUQV*@2Lv-ca9?R z76#S(uOvzNqT+jlEEoOHSf^=LFfzn$sc{VupDP#oelA<>%>MQ?oWt?xN~MKhdXLoW zx7wP|dvm3nQ7Sy%cpF;L{E@q|Y&8!1(_0Q@&{WX(D=GUTG|qs3Hz?zDNmwWX5xe1B zAygipN`3AAlD7c^~9s#4E^EcD{lV z+QEZWSnqqgWH7qkR(LhjO(#huExQMv(W7M1`wQ)aapY~}5TZk08tBSI?VFz!eV zOGMy(-&*KnOIq^3wkl7i+Bdds%thy$g{06J&RrP${PFjQcUFoRHhEAow9^seqixsj zL%hLEg*9`Y;1abQ*zT~_&{5@9SwQ>hXin{lImIdrMkTf)x?Iz153Be})3LZl9)fkH za*V+H<7>t~C;ZRsHH&a3h@lqdRGH_$$?0|x2{t18fh^f$joC4l%z0}_ht)myEXtuw z(i`Wm*I^StOdSmCN|bX>w_dF+rRN zQE|M-{zn-1;hZ8JY?&{0LS=Mu*V<>f_V@6?A}kH#qn=6G!GBAwcmfF`1f_E{X1cU;Xmnfn2j?RmFK*b zWB@m8MGcT+|3Dc+U@Hah|C!_oO8$Q!6+klpP;>whS!mtWO^pHl8Vj#;?iXf;0})PW z(6KwcUbh5=ARkN0sa#~bx_5B6C_&rN--x6x*YF=7{#TqDbnN?|xOc`uzU_Z~{eQxu zf4t;>Q`A@aT0u+)w2YnG-k}EFTjLexyK_z4fkT%=qi<_d0V$2d3Sjm;6jT5jhdAr< z!kg6)bOLsXs@4Rh>IXsx4?Yp)ajFvNa1p&2)~y8vm?8Q2_C;{O1d%^`XSaW*ti4^3 zTJI+XmRn2Ura^yi(J(z!LsLJUR^Gs7F()u0YC-)nzj0wqcg`ruQVdW^`L%P*9x#1DYl}aW7PN5 zwd>_K=em?*B#l)c^`yI~La-GysXSLNU{*|qVj(9DrJ`HOx~OE@{>(40% zuDWg1_U8Aw#mDrooD^Oc<`NCiKX?$+K$HUMc8g0^<(%7j<)tl*G*ZPr^sk(u+p&6m zyZa#4&0Xpof%ng+31XnZk;gwU>SH{ws+rGx(^TPWmpg@;B*)XzFTTscTpbQZOm<5z zW_zH{Im*d@?+djJdl=VQ8X$}DPv+bv<3WpVu^`KH@1v#}3AQ|jSR}J}&zJu6A!onnM zpomiZ>w>l~plmmTNZ|e(aj&?6g>LV8}cXTG5A|{a(Zy9DLG3B!Mx4yvV8A`wUaO$e;x(_ ziP>Q$bau!zZ)4|uTXp}X+twhc;IZ-UFWkbuAEe0a3+5lMiDgKdQ=bi@LyN`;yR5ZM z-mFxOEHunSS5_%KEXvDJJ} zh&YG%;W(}nkvx5XgN_Et`PW-Hwrfv)j1dl8%nEE75_KE3aOO0H-whd%i2<3fy2IMe zlRXB05`AI;wXdHOd}gu{E6uJmd&_ywMh_8#CB0H;1K6`G@mxFs`U|M>wb&Gaq8ncw z^y6-WA{0{!lrT_r-UXxnm)j|5H6ELU6g<}D?yWs$^^n0*WL_2P4q8r&@QQ5k13~RC zjrQWtP-?l5lhVl>6}#2tzuR0EoCNJGKT_6b9{6mpgv}JkK54m#03nI5(3Vm9z;FO=T#TiTE57c=0UiPfT+IA zN5&xn-j>NdvLS&0cs*g_eEQi`)@_o`5+^6o1EhS%o0z1-H0IoVca~DG;1{eut{Q7T z;Cj0Hb|!TVBa}RdR`2QE94?Jgf!W`L_8yQYnUn*9h=pG8Nq^g01Ic5O5N<*_58v(B zgS1t+OmB~ql1h`bYJM@3Drw!&&_GYoYUz)y$0865Y$E^JoFdn0$|~U`p{F67k6;SRY9CznoA?;%348fjD+kAUddO_B zcGlyv=7ZjaH9h(nC_|)=U!8ubv8OjX89=oplMA=!h%`xwE=7SDu~UrN7SA2F;I4l* zS0KFOU50oM?3v>^^)t72XhoYhbb0Y!jX-SpXRk=OeCPhC9A#yzaNKgGmJ=cTZiqh} zux_8oA<@jNX*SUy>HITir+Yn+i*X{fVU+txZ zAu*MF#b0SzQC1&aEu!lmG7=6|94|-HHZZPsltI)`zzoYwcB&dMZf9TJ)U>?oKbIYH z=sl;B%I^{Db(($OYu)|#0TBM!u&1B==)hDT3&_?Y(%Kbk1#H)<35`lewPxa}YFpK-m z+G_}ulFFRNeLv)T0y&TNo%eTK@UQKR?zW;GFAJnFKiuM9gKJB4%?aHZ^8S@Rc=x+(kawct)W+ zKzi@ik#tKl2LitmyjN{GLJ`lK&(7p&D5dg-bNXjiP`mxih8 zz_pRVEV(c7w~i=&a8iSh%k#Jd39X-K`NMFmL~T|987>1Wl{E0(M5fo~k5CNNMb!Ho z?EsIqqxp+VF^)Z_K)@(IXrZb``yB3-t(GqG0LPTYlp%%~H6O9*pBtixY~y2eC;zy? z(dzohyN18N-?O-7AG6!sM$NpjWqu@eTo1d%yD9K)P@qs6eJey=d#*S5xcYIf^Eg2g z92PGHCWUyuM2m_2mmEPKulzlH*ljt*8QV`a?AyCvO=o#qX8%Xxa7E!9c_1e~4-7WAI=2d%He~NmgI zo`gR?zTa0)3pTT(J+j@Pq1jXJcWTICzloOYk*;hrV3qv94{F#5NMC}j9NKygFU3tsH$zF>~);KMtZEEXzLrF{%vCFNZ?ksRs6PRBkohj__?U*+6+xP}%XP z@Z{8M&KLWR8+_iOxDtODgm!oV^{>~ZZ0UMPo1CSea0sSk{a>9)!6xuf=*6n?o$*i* zS#p6@8NOE)%FI>-9igY+mZn-f;{YbAi2O+ntnfREL8)2JVqIBU;GlU@ZJ7+>wEK2c z`_k@0NQHZ~33jo_(k6UVZ`BYInv}4sS1*}Vm2z$)dC>5M;1E7WXan(J-EeVqKHUUl+yY4lSsaqc86LsQ+spE7n@@#pHU!l%oW5`D1VjTlScrA`!gI`V` zzfj)Z2~Y}I(~dUbBDhn{ zYrKdVTa5C1Ki9(`)EpMNBZYn?7%K4?;8epyFc%v;=3pO{((YzohzVg(k_*>#hPv2l z^llS6dxj9QWXRUts9m+2D{a?ft|pLwB+%_IW9U_@jf@PndBB3JCAmr|#}Q?NPo+-L z&%{&QrICpdRSUY;c9%!IyEjLaTFsbVGcH2=V{O&A_OsQfWu_e| z6K@n~`i;iPWHOSJRd=PuRX9%Ino5Xj6ZTTw7Q%1&&Iu_+E^Z!JJK%U!{xLq+48mXg zg7C{HOnD9z%wM?g!o@pSs~&19%mrin(r?_ia@-%pJ{Z!u;5t`MVZ``@Z0^pw!K?#6 z@FF4hV<%*a9CCe_MMsCk?M$>k*nJddV%|Qx{XNAYwN6Ht`Nc!8(HbN0_;%-M-NW1} zM4rbRtO_uq<(=aWHNltQ!04_F69GBz8irjd*ZJ>BoSM1#{THDE*E=VhuZoxLHPcIh z{VqBqq`$nFd+dmA{lnf=TF&NR7Gh0TNMepP=__cpvq-Z#OHHz(OCtmfIm&J9bUof} zm{1!-RB!5Y3r$`tYf{#3j<{XokmmNNol{DMIB1?wm^CKc^8p4^zQ1*X0S0ugUlb#= z_rZ0!4kvw6C=F|M8L>n4ul6L+e2#Em zggf$HRMxM5+@snb>T~Cg@4c=Zwfff}lLK{G@p5mmb9O!aC!qBu{zxFFP~>BPA=t9IrpjzVDQ zj`KV&)W)Q?AQ4B7m80`SY*a-S*k9y`W!Rgqmj?P+eAEO%L0q;0h9;%Tmxf9(v#G3J z!=9|$#vK{KdAKuYiS537I3_~017=iN;!FiYBYiEWp!1rH62r#~!gNd77bzK~g3fcANw}GX{gXRIb&eTNtjNu!J;m{-BDfsj5EB3Wsn}6Wuts{fw{d~H0s=%_J_(f zC32-bZK*=oPLUROp41G&&;UD>`Znj1v*2A~VnmyI#B>5*WRTUt?yn-BWWDQ>%hmlE zqpfIH^)9-RUqF4v21`I2l(VqF@@ZZuu|cWU!0MTvwjH@ zwS&V1pYZ97MT|9>!_Tnicbv zICJpPp@lag_G>o5#C_vI!hF~tAo-&Atwv9%^u&#AzEowJOa_ zH7FTuq!G%YbvuJ_)Hu~-uhBZCV~I@iu|r#-sgyO_U0_TO+vlr2MAU{XoPpW_U~nMpMHEzr!2uZjn*pEj&sLE!_dhx>;56~u-&qCQ zZ)-qr@CKjo&-PCa{2x*m@E~YGvXl%U0{+jyo_{e@_T3!+kmP{7P5s;N#`zab^)J!S zDJtwAk{oci9Z;WWcI%n@DW3tK0NuogEkN{R$+6sXLR(2*eo{*g2$jKHw*w2)K)Nyl zhSr4-8*bZj$3Q1mFl3MLIz8mZBQJTNQAKyEe-yR)d`IC5p4 z)#{1*ZjFb7es)Z17#&J(39Ub~pXVa~iy7$!W&QEd_W+tVGHTRkEt8^PRMrODAY9tA{i`+rI3=V z54L(Q2t`3;6YZAC)1_^q@xINOEtKZujhD zx)!lYgDvdnN%WD0bP&JNS36r)P9K_Un#lHLdtUDS;xZCoGgr)_EP$~uPnfYW!$p&) z%W?xF84m&{8>B#&@$P{Tzt%`xVWsIVjcQ|mo^4L2N4P=mDgX^IHQ<^m>wXo1cFvA=?WuZf~hdciB(p28Qb09a*(dcT73SD>~6eRMaw3>3~KLnXw)de zj8rKE+sy3?v|%l)%hF9S-_Fjg|7bZVB1m8P^Ey4ZcM3J{I0L=Xe*F#<*umNz)PWsS0fJtPnw&$Rk zRBNk`^)94l#G$iyQrPi`f*mVCDW2NEfm8H zOK4jcJ$F~!eZtv6-bEeDSa}x_$|&@iIs1c|N<*thV~tcq5+3m$hJ=ulbjzWV z>ngk&8&%+Ig*^`5FLFV@eR=j?9v?M*(?5@|Nm-D0y9_$L)}@-U(@j`c=lNk0+Rpnt zeLMYxi|W=G6R=~;y$0f}^1=r?G2EY2Nk^|2ixjuOkK zi^KU<%k>7WL<=za(I$!B1>J@!`-*%{h+W>rz!~~J9J5oyC|?tr3%NTYcyHbE@GHTf z$Bb{H#}f)O>Ff33w&kBM9f{j>C0I?_wh1Qp;~dq)08<*y*Yf75x;f4|8C_P(QFlud zJo;B>6vTukf7CxJ5qsZeg=T!#YF9)jDwh?xJyCMJ z96=?Q_n=)u2!>58S4R~^TwW(L`W@A2$Zgdx>?GJ)p^z-GQ>kOz7w_NEch;3!B8pw~ z*+F|py=Cs-C4a1Sp)b@X?8ylHg16alR=~Q%n_ws z*KKsovNTz)F_&ESOC^E6(CuF+DP5&XO=}OVo^x*P;Gnvsa0!JDYM9)=fs|*3)!H?@ zycG7x?)l5t#PoVh@A&BJ8|4VLP>^-;O(m173Bd#-v*j0u3am$T%^s#Cemfv}U`c^@ zmvCoEIrdY)Sm7rGF!yXVrK|ZaXXngo!LQgvnaij2jGL;*KG}`LD}*xsRk>xrRtf)cxbX_i8 zQg^kAuDQ^vl#qeR%egVvBar^>E*^!Q;ZIP^c6%B1i0h(%)vaO|YhDq=CO=f_WBiK~2 zbN2~!W}Yvo4=VwK@@Fu5%xnjT`Zt`ij5QDYhu<90U z?_KSpqigytb8=e6& z8YX^Tm@85#zm3(gv^87d37D_RK6`F=$_S{Zpt^%WcEGvuA7v>-qky(aWlLoa;-XjD zo}E2cy_c@N*D$24CDyLp1@mZ^io8T@Q}zL+?Qc$dKwD|xThuJ<8en(+gD?s~t#x92 zjS&v{BP-B;z5Z*Y&oLtfv6i#@Iqdhm$!Y5i-6?N~i6Ec*`q9j=+LUi>8iwEh|10G3 zbMo#1pMPREfU{h{Uu7#B3JSglf1WL6$v@x|gcOb7rRxv`0aJF5nOhS~0_}}|ro%$0 z6#oI5+eZrY+vr%Z1pO;B55FR?bDSes!J}o(I68g>M(xX~DHq^$(2-I+G@N|i|BQQI zq$Y_=Wo8#P3lg}%p!@_5&OZ^dUt3q<8b}sskUCU~0k-u-^$@jXEb^KXW^l6V55V+5 z)~;P6o<9-C?%mk2*+5xt?DJ78!?)5MJ8nGOzdgcL!&Ub6JK;7+u3Xf5cI}t&7t%by z18JI)YX9Cj>~OdaU(!BmzB>&Bh?Ro*fH%2QT0yM@z%~QdTVyB7r%d78 ziA*X(WC-yu^p_mj#Uo!lTI%?$8Z<&!3J!2LeOy=FJwUa2S|h*p^imDwHOw`B8O%D& zwzsAMpPeY*8^SK(@i~IDYd%Ln>Bmb$y|s>9CvQ=@@G`1+!{87MFg$V8Fwpfc7#WQq z|8ydl>eGp4FA)ty0!8*=bXq*X&)7Dd>L~p}_gZLb`|tkA&%$|CPOc8*6bZVxV3mo3 zaZ%vgu%Zrco#g=1PuYQtR&b%0?GQSI?x+IP)j9Z$bdEv<4nig5EV)e{dHD|2;EnZn ztIF_@@wzaES7K_PhBe$J(cfGYFQVFYMo>sTU$$uts9K7eK8MnEn6dA)v+6FsT{Qz1Wj&tOFu9j)o@WCu5Gxw0-l-gg8u?&>`B%JR`|YvDJ{ zfoN^{-G+q?j5yQA6i4~ThJpk6A%fc`V+FS7@HLI=6djd2Yh~Ncnn;s=v?^KY&ZX!2 zT5x?TGxYetag_H5xj)YgP`eFeSFVETI}Fx93kX-U2GN2U95EBTgRwOA#&M!JI1pUcJUhLQ}wZsQpLtCWMq zawKL?amx}l8!?;5hsxNGs8oz>Div#95-;1Q8&Ay4z0DIZFE9u7PUZ7$HNTfU{>wWt zX%F{t+zzsguICkKRwbqyCj5HanMTQSACclI#2YrBwW#+y!eiF0J@5)IX-2cR(jB&Eawtu_Y_*CVqBTNToTBdAEDv0!&~g#*EjDx=08*##GKugCA( z=~7&vVf% zeCC~cDn+eEYcPMM-Plcmf@=ay*1$0Fp95tOQrfrqyhKCFXU^U7J)uF)$IMN7LL+d6 z=YHo)VL|8!oV)!8VvDXbUzV>Qnn7*xYcN0=Fhj+TS0_K=d~UW7v}+~9Yyti|c6(S9 z(8`5ga;-I=;Dp)#0(phxuwKoPpz2)%F|-n+f-*HgxcIF5rZNrMMM zygo5j~%7DAj z`b!`S3j04`7WBQKQvavz`+o(m15NS04!;(7j?w6IR>z_BL9HOmVIx(baQ}^J-&QbU z<&#a7cP?rOGUR~6?KxPE3G$P$!1O4&00sW)-Eo)3GWk@1{1E(okBtkxXn8H$Sl2eyeKW>U($vUNeF7 z7e|NEQM;U%FJInxd$_Z9)iuROcBZVAxpp%wC73FAn!#+@cW6|q3EMr^1uFdruz5p~ zJtDASz5jwV2}0iP6l)XpCNhGnXCqdD^JgMVR@u;U8?s-(-c>m{n7UjGB%~XbE7v-* zYo+c0HwVeOTdn36$clZm=+`&gPmQ+*PmeIvOdBcS=!D%c2`SCGaC$18#2=KRvQm!w z{3wf=soz5-NQbjUGmkYxoA$QXwH#U$FmWPrM{mro9+3=34iLN7$uov~q1z zyD~b#UyU+Zi?YNboN7aaF%(zi<=Q|&P8X0$1zS$j90t9yFB%s#AFCHr&;f;#Cn8-H zv>fisCW`b8I3bDhbtW=RVEiMsQKyIxOkcTgEpjAZ?f}R~k{0g+!$G_VNuQw- zm`3$wETr?r^>pUQLa8-t%d4%3`ax&?9n0Kwo?qqln_R`^zxQ50hO-{RcyHiEMAWTM zR<={~ZTl2s62Ct$vsD3NUy`g)Kh+0g5|ZzlU4JKu!3VVe$>%8rfTi&*NLKzh=)72V zbg)rG#rHEReUD-yDlJLHNA$md2~_S=@kwuwy9Ku&gvRD=>xUo%@o&bFEDo{0}R?9iWq@nd!1-zwj3H9ygunce2 z^^Q4`?I8>^IwlU+G2Tk$iiiqp<3yiwgG(d(H^S25I>pTHm*8O+;pYf_?b@1&Sv;0@ zpqZ9Nu$g;KOqITpt~H6T9SDfVQci#8&P&5~`0{UG$Ck*=L?YhuNUVG>$I&ynb}D<# zFWhIOmQmxgoQlwaJm)vsFEFzlSt(MH#J7GLZYG52p-#mW+a-&9T!=J5grFCEQmBJD z01p{KF*8{D!G|Mf7MeVY+V!xV0nuHnhK*Lq&sii1w769^R~UON8XMO{Mslh7_Ebe} z(FV|%5@RqU<>Yi4l<{Q?LuPoJnZS9Gt6Ds2;^-;^D_B}sIpT)U*})4mZ^YTTg6dIo zl|%)1MG5zd@XExt!UqUx;S{fv7V~yHC8FlKJ&9|tikQ+DUJM@>0cUQ*p*UOXPqAYg?Z*}rdptHh zdP}t}8*!au+I=TyQWmN`CKJpv7dofxrj=_njzip?7vDVmi?bGVuXE94McT*yaeWSp z!GpI$jItbQ*Xo752Q=i`LzVQBCUEs>>LSPVrLcO|uiKogM>O&`FweL|QTxvr)%89m zM`fIEw8Y?LTl-Va;hy^j#oI*GGbnD!(Q|ak{;Mr<@@eh5mb_e9Z0AJ31d#5dem{0K zIGr5%fUW+5cS|b)l!w+}WZSr=^SkPULH(>VLdc-1+ySg$L5D?HWQgbvWKFek#E?YG zEicyoE+rNcNLO<2;fnP}U5DbYIKew_8++RZlUjrN@f9^)M2AM@_HmK`D$F>aiJ}V) z8ulC?aKY2MdVzSFPdF`WH|a6%P37Uf;BkS^4(!ck|)55|Yv}O!&Z$ z;3UNvL*atyCb$0URUm#JJCADoWQ+ELMf+a0A|0HXYI!|D@Be@h!l@KFX(s4j`u3IN zHJ`RnedzVL0Cajx-ij00QoL0oCT)$zZ@$i?KdYrhr`eDSvUND#5EGquPxJlWT|3}- z{StiS!Oq>RFW>OB8IH)MRosAL^qhYB8cR{AfEfMY`@n!NmuVBLsmy>kOJF#QrTSxT zBV@2T;ec*4Git)nuYInz!Tqr>=2Eflo#MKeexCde%TB-Ee!?aBP=Yh)`!6+zz8!*z z1{H@sGpwtxl`il&eW!kZ-Rt+C?7?XEeuCDX#YZvz+Xo zl|wC@r{&^;zcMv(iPXZvzAWZu(ew}XOn*vK5mL$8TO6mEq3*!2-jv-b_vPK#uUS(! zK5wd6k)trSzvoTdZaj*^^Kt_;5v#FZT1@_R3L?Wz@pg8Vjb%qBimRDt+asivY#gzE zo^BtO?X$#=}cq9->pNI!(WrcZCy4}h#Vy+~ssKU@`A981vz{Q~|g1&2R$D$C?=kmy>?$%FZ zqQZpSu``5LKo{$e7C98ASPm_e`?|;osA7kr36+16HwywQ5BD+X>P9gGrroEZDZ(!snllP|PHUz=R z%-PD7ISPf+#Gv2E@40e#FbmQQpzGtll31%lugHYR-f*uGpT48Z)R(rkaZ-w1JzZVV z3GwlFli4fTeGk933UTROYUN>XaJt|ctt9bmFiYwfN4n3^D;`6AwW|cJp|2EW!mifr zDHj#@ia!u*Q?eoFyn;I!ELzuM7sw%S8)2(uzRvvNtBuxo>hy}mA1n)toSiNaVl0t*lVL&Y@(?bk;auO_QkPd|#wpCYe~ z1~xfgWu{MewbXz^jS@&LbI0j4YKNfD`6lm|>HFFeV8^(Zt?m~<-u%&5!uWlEZSkrt zb7LUjS&*VORSDf+;6j% zEjRbbVvXZ%s?sqdAI0$NWZ_+Dk3JZzfw`xw1VzC%MH{d7(jlJ@?%ekH$AE@%11$pB z0UkhF9fjJ4PP|}|))@gvcOp!1Hw^YMlzQyC1AbO%4j!rxT-ASe8M&dC@BYbp-39Nv z&iNPX<+ioRdAHiAUEu%x$$DvmR`ZUFKhg4`t(W|TmW83u>fq!AG+7FSx1rMs?9b2q ztEstlIq2@T=2=1B?j870@OqfU-%ZUwKl861<<{lEXKfuRN&#}a&M6}Xz2OR=NdG_m z3O3+$28P)L9A|ru*x5VLA0#~siSQWy`tY=pQlDQE=q?@OgH=odCQ5Ut(y(nM(G-N$ zU)`_?cmO|jOB^tXSMoUgzm+r&&lQnJ{c7RdyDHLko*&!ftUC(DRqhZMgCVlw_>PJK ze#hXjKbUhg0Uj@bwU5Fc6@d$+J|uOx(yQr+l>b4XbY20}P4)70dv&8|$nb;7Ya)g) zjW?G8J0gwE`$N#+QlU}y37-q=pT66{uc#dk`d&ZW_gqvxNnDJ__EG8@c;0O0pBzuR z1IWdJ?}HF8Z5y=s;d7rYmfjvBX!=mYexeZ%`IZFbe=Kpn$l8Nl`BZ^ZgEUM5RoT%8S|8!y#6Z6~2*5%)MWh;Qqv>6%} zipEI<7_8U^+TvxXjMyG7eVYcn8gFPB&mukkYi9uK2R<0r=aOhuUZoDiMO48lKRLak zzEw(*Zqp!fMfq8W?~~C!4}a<|kYto|Y^GC3RG-}&JcFGbJV?^9`8FD~+)9`(B(oW} zlL?{$kA09}PGNg!=d?x(y}gWRK9m#2|4lBHK6fLldf8FLge(=`c0cimb(ESpdzuec zya)VrZ_c1Kn(r*PDjnZEFA^cv+wt5ea0dh#l-tQ+Wu8ZaU5D23B ztA`mO8yoo4-+i9uZs0jduZhd8Gi@=l&#N2UyCMaciImm)RntbZ7I5sj zxqKVbm*Oo=zzv$S(2Z9%PyEs4tUZ0H(R?TkyV713MIf3?TP&1Jq)e~as#|t0b~!g9 zj5~;PUJfmtORS66TROeETdwnOZ5>>^+pk_$5KFV~2-h_(&LPuyysDnXB}W|4mkPz# zU0Wy#9mo#t3fIL^JS=x_Ua5+6#>t_Ac|+MGFs7_`?>_72quKO+qN~l7oduU}8d(vE zt#QsF%tkF7oTme1!I*}Gh;lnVc|gmLoA%S`BD08SBO#mC-nrwh3~Q#-w0_at4d3r9LLV1i z$$r+xC!!p)fyQwQ-nPPA7HrL4V>Vs2s^X23F)=66NUKI-@w?p1o{rI;R^r;jZ=gqX z$?EyVwW8K>RT+*wA1qof1gN_)!H?W**mbo^;L^0#98uhjpMjkHmONc!wVS!|X2o}| zVuoZn{mJFdHY~d8U)&buP}$*b?F>di5uCwr_w8(gGaQ#-bF`CYASgq@h$b`>4cUb)tE zAIsCKA7Ov5m;nVbMV<~^`DpyMP@Zo+BTg~cahcrWlM1sZ&3fC_(d#x+7KZBTmtP+t zDdk&JiltMVs~_pU#L!GXVQ@QnzT;Nk&*$EitVRs@O4_&QCF%-K9vbk}J8s^vD{`(p zW~xLJaY}oujBeYuUH=KVT6i?qj}tr1KseE>(#{v!AEIHxKbohxS7s;QQ{^|L24;Wp zXO<{G^!BU}c+c0o_t&FtY+nf!WyyPI?@2ql!LfPhGeAp{8>5ki2_0+Nt$H+=7R z@7%xl$DO$|H~-GenUiz&UVH85S!+FOA5!T^36K_SXtjTK=`+5|st=`s5wh+JTsJrs z9eek8cix2AaU&JjhjN_o9YwvS(mr7t)4ebqJ^c{2Zif~Uc@?#7d|<|FH8L8n9q>o^rNcrZ}B1k6jL7jh62XrI`xEl(8Hc-tQgO)rDau4Rh|?jJSDN}8d`kQ)Am|67RnnU$SHs90oON!6pZ#>?)p*58`&_7#{NY>v1N!NY5t@4 z+70{4v8H{bHawqU!upRP>_!k$QMp0dcmOHtN?B#KhQ16@#5uuu%e=}7dF9C@n(BR( zsq;QRIja=kCzFR2_S%zsB%TbpZdSpBrvNbP7>|8(T$~vC=EBi8R?+dARcrRIh>v?3JEhM%#4MGP6Q^!<1g!$E`Kjnf` zu>gS4yEhH8vbjLL1ChA4jiUhO$(;r2iBJ7oIf-o$_kRy2{ZEjd8&h|{dzH+~65a?V z)Jm&MK|BSRjjW(DoJL5zx30eQX&2R(;ajLrPFUc-@Tgl*&`&kf%mCJ^Xg*g$JX90X z|95Deqeqon1vM>2xo)Tq$TBa-ih-gKqORiu%J8XvpLKVkE;cQQ5908+k-pMk6W(|Q zu>m@sxTtQ)Aq>ug=pSk#R)g6EI&B|8jDF(cgFs{eG>h=vWUtlL*4AEJ)?v+7%rA^J z0R?S1@Ce_3nCveO`rDTh^?jqd!hjSmx7ah0?BH#5IA}PO<+U~*t&9WFJ!ebqthEl3 z&CR(|g25i`qz%k*<@hcV=ngpQEGtGl;9Pb#y zhlU!n9}2gfJW8&=;A)p;>hjM*PjLb%YAQ-05Fgk zo?qA3@(>`-#2vpETcr^aZyzt(07z-jO;M4Wl5uK}5RunS)ePeVm*X`?f>j0h)xiO} z!Fi~~4|_noIiTrFw-)3WP`g7sxdfX>0EGFq_(Xa`=AMca@x!cHR&~u z3w=a~an|qJm*4>;Z6}3g2hHPX#m7BX;Btj0^lb=+Ha{6}c|RbhXP7rkwO`k1gCg0x zKZM)%e8nDaXyvB6X9k_HOMdL&g_b>vlv7!#tERGHMWyU=uhO+$O^G{s7dU}1ZTnoQ zD_-chc(3YAB1iru86KMW&UK((vx>?tW%q3~%vk%^2Mo68qPNI8hg4g+?6o<7o2$>| z(_QF}lyaB7g_MwewABG;>1{F%{c5Ei=@jogB_RsP&K5(^bNN=tRUjg?aeCD9Onw6H zK)-^AWoa>uaA&pQ8GdR6K_7fad9J4Tql-f^mYZz88 zka(IHS-4yf0H^qSo^7rW5jI)V+No)+$royo<%gNV?$NZljOGooPO2X$tGa7ICmFP- zaefBs&i^fq$mP5(Y-r(J45%v1fIrn?q=((uPK>BiuJ6!6(rO+`A&kt>|f2v zLnSqK`UTSc@F1kA^->lgZDSIiUI|UNc~rp(1-M?l&?b^3^SL-V`}wNFqiR`qu;=hN z#B1j< zJgX9R7;K_?Du9FXM=)B+a#zO@iWc|tpX!w;ys>;&gcl8`g$R~1>J^)~p}hHm-vby< z%e#H=7#2-{3QRa9S@f;DtSU9<%j04H`*5esDDP zcR+4{{FhWkm{h?P*fFx^{}jY8Q>6 zj1rPaEUWbE=WQSfFzuO?k2^2v7ja+aU2m8dEF>KrAEgtkV@hVrfd{1YmR8r zk@&>;tf_{Z!m)8>$r)CcbgqjRIvag$sT#D^PzuRS+JX7-y(Cs22n4o65s--7QIpSE z+#%Wrl4icu6z^29y^bLMJT2%^5mDS($EvQn@u-mZJ9r^&q_7WWO|E}ll;0iO+&?t& z{1)XEiT7T=w-L_52fObw#nXw1BxtI|CyL7ooNDg6rc-XO$P7{PY%cRpskjx7);Xlv zYR7Wr*|$q8r;NZNS-1%(L1d%__`~1JKeYPtKKz<~ZA1;JGXL3U&S75K;n$%rxUbgv zJnO_LU9kIHV(*c3_5+V&fP%&CtjRwbr4=ZXKa^Y9cPGt1VUiDop^{z-cL>gU<;aIg zKX+}J>`OZ~;G^v`)EeVly|2P^C~!nX>YDZnQd56{rm*2PPkwF8qMh_iyGcpiJ7|xr%$#0MKX^B~%hPdm^%}P^5 zJ!ZOwKeqNTdzWq>Gm#&)49{pBDE8`8mmgcWXL(ZgIyE6?B@{bvyNDH4Si|wXz`+W% z;_%wY`P(p_-rMiT?z3HC(uJ(5G}17K`9Gts&~6>ho*AZ}$^*VK_CMP25do(Sem% z$^^TihmES5A7oVAf}($H;uqI?O%~VLq!~oY{IeW-Q}0Sun8Sk`D7X@{b)LwWSe)8? z(lu}-x;X7VL0@SU(j)^u)spBl%ZGV1@r)$>z3?8pp_e-RhPG+F|J6E){5;h;sxL1L zKgiblb&q#SJ;Y6R<6ekcvh|_Psj5#a8_3dBN3}gc$gXtfs4p4L_962Pt4zc#MR$9t zOZEjvS6bTC#xLctQxEdFJoE>(nAuwIl{Za^oxvaVsvm7el}vk;h}S8cfy8LVhJUy; zfunB6a*KXeVc2YDMh~2haGanldrx9ee}#_`08n$I<_eIRcE1Fj(8Tx!(O_Xn|55+4 z$)VR5E0j2{zr>W|2Lt(BdL=;k0~F@Daq33<889ySb0>5lG1^z#uRDsJB_0@q9YHPM{tQ0tDGry1)E z?3wj9ADr3eq(;r+iTxg=#qtc?RP##JWFvlG zbzIGp{l$U7^4|IdbxhV=4hpn|(`L}soI;A{tjBkpuyfu(PB<(VvtJJ>;bLeV`RXEj z0iZTdrxK7N)o#7r%>pg{ooddwmzDSB?oAJ>@87H&7PPPt`lj0|U|3%Wz0loU7BuAs zFAkx2UZ5AkgO>~8&5H6kl`N6uX;szZ(h@?!#*aYA_EJcSkU8j$dSpkb)ii4!ciV87 zdDtuTwjWNLB!=rK!dJcN4a>JOh%}g>OeOwmt|Y0!)e;Ca%^kz@p932Oi39QM*c?Lx!y}Sv9XSrFiFbcV(HT4sek?8)#*@HX2U_vJDMG8sztA6faE<&&D^W}~*n+mWJXynt~) zAg&fBR|b~|3yBfOQ_tpraOXxaU-sk|Sa49+~reu9$;K#$?zBemVz; zCI7Ci?lOPLj_~EAbV*SLo2#cXZm2LnN9Me7WXR0Kxx(m$#|>wYPVHCOE9DOBc~0%{ znZOU!N!03bqU1bcTx)9Rn@ymX++DtpFSeMIHIIlPZ`4V^q)J~qMoGTZ4j|W#HKjbY z#Fv$8-Yve|4BH$kgpZV|4B6Fs^%>fj94}E&F<&a{<1Uvdl0DYGv>W=BK9YR=tRCqB zbw9sl-B95E{Ts@=Ax*Y+kq*+5`->-(;_Q!Qb)WTh#?<9^w^`xPSAQ=bq<5r?=S$k_ zh3hFQDQQAJjV1+8n^Ok$OT!hTJF@j$64P&F-1jc{c|GxEYU*K<3^3h(V?l7Pho%%c z2CsXvB*QmDSHaSx`ur;S)x3k=3s{jg+;6^|XEZS%Uo|@8gB|>)CR{xTtBus{8|<~* zFkqg<{((7fJgla?m%$z7++u}LNL^ov(y9K0D>$beFg$Hl`Y;SB?~BzfRN8cT+y5Q$ zI1|drq(c!L*cZ|iH(F;1+V$XXcBGL_7)o}QTHSZ$z|2NxC1#UlQ9}&Vo}AhIIRm{; z9$(fz_x$T9Y~vb@}h2f!dbH;H*P{IQ!lZmQG3ip0dl2 z1=TuOYpk)u(ko&{39>8h8d~o~U~}Zx*EgV>hMRS>X%CK;*VLuUU03pF9XL&o8eI9A zmVV(-t0Tje4D;tHDL}3fYyK2(_=DE9V`jozGzNCkzWq+` zGWVyN3D&;+od5?wWD#xJ&ZBM)(FwF3^ubSJU)GM@r-F@_D{8l?`*4s(5oiCrD7OoI zjJ2<3WeX`EH!#4>O9is1j!kr;9pdR4tjkR@02yEi_F0=DpCp_}_#7$hB%GM;t$4W|ADg07^K~t4 zkv1n>LWU~(*ye`jP>UfhgNtl_%RL~PAKnEP?;p;^rEELm9_pI-1SW(C2e(!ZZh1AG z=^E(91Z`aUSENs83A+t;eIxQu)Vt89vb7igylT04XOc(n_4cE{YUd_Aq}F3HoQ*;+ zWE&8RL+(~c0Yn=5xxBEsq5_T7C){?LcU6k z#OtXgeBqgxe*#@*jkq09< zdF&r7_akK6YLEPLxwR7lBmV!(?ScE>9*y;|(y~s!n#capTeDzf2)$H%(dF@f09MJU AH2?qr diff --git a/apps/website/screens/components/contextual-menu/usage/ContextualMenuUsagePage.tsx b/apps/website/screens/components/contextual-menu/usage/ContextualMenuUsagePage.tsx deleted file mode 100644 index 013b2eba16..0000000000 --- a/apps/website/screens/components/contextual-menu/usage/ContextualMenuUsagePage.tsx +++ /dev/null @@ -1,133 +0,0 @@ -import { DxcParagraph, DxcFlex, DxcBulletedList } from "@dxc-technology/halstack-react"; -import DocFooter from "@/common/DocFooter"; -import QuickNavContainer from "@/common/QuickNavContainer"; -import QuickNavContainerLayout from "@/common/QuickNavContainerLayout"; -import Figure from "@/common/Figure"; -import Image from "@/common/Image"; -import contextualMenuElements from "./images/contextual_menu_elements.png"; - -const sections = [ - { - title: "Usage", - content: ( - - This component allows a wide range of possibilities when it comes to placing content cohesively and - comprehensively. To achieve this, it's important to understand how the items in our Contextual menu behave and - interact with each other. - - ), - subSections: [ - { - title: "Do's", - content: ( - - - Choose icons based on their relevance to the items they represent, ensuring accurate and clear - descriptions. - - - Place the Contextual menu aligned to the left or right, but never in the center of the interface. This - component is a complement to navigate within the page, but it should never obstruct the main content. - - - Use different navigation levels to structure the elements logically. - - - Use our Badge component as a complement to the menu items to show the status of any navigable section. - - - We strongly recommend only selecting by default the first option of the menu. Any other option may become - unintuitive for the user. - - - ), - }, - { - title: "Don'ts", - content: ( - - - Use icons on items that don't belong to the first level of navigation. Keep in mind that icons are limited - to the first level of navigation, as having icons in the subsequent elements can interfere with the user's - reading of the content. - - - Use an excessive amount of icons. While they can enhance the visual appeal and usability of a menu, - overusing them can lead to confusion and clutter. - - - Use more than three levels of navigation, as excessive indentation can be confusing and distracting for - the user. - - - ), - }, - ], - }, - { - title: "Elements of the Contextual menu", - content: ( - <> - - The Contextual menu is composed of different elements that allow the user to navigate through the interface. - Each of these elements has a different criteria and behaviour, and they are as follows: - - - - Sections: they have a title and are a collection of group and single items within the menu - that share a certain relationship. - - - Group items: they are nests of other group items or individual items that are related to - each other and show indentation as they are unfolded. - - - Single items: they are items that carry on a specific change to the interface and don't - contain any type of nesting. - - - Divider: its purpose is to separate sections within the Contextual menu. They only appear - at the end of one section and right before the following one. - - - Scrollbar: only present when the scrollable function is available. - - -
    - Every possible element of the Contextual menu -
    - - ), - }, - { - title: "Contextual menu and Sidenav", - content: ( - <> - - Although visually similar, the Sidenav component and the Contextual menu differ significantly in - functionality. Our Sidenav is designed to provide a consistent and persistent navigation structure throughout - the application, allowing users to easily switch between different sections or pages within the app. - - - On the other hand, the Contextual menu is more context-sensitive, and appears in response to specific user - actions, offering a set of relevant options or actions that can be performed on the current page. This means - that it operates on a page level, so the component may appear or not depending on the specific needs and - requirements for each screen or interaction. - - - ), - }, -]; - -const ContextualMenuUsagePage = () => { - return ( - - - - - - - ); -}; - -export default ContextualMenuUsagePage; diff --git a/apps/website/screens/components/contextual-menu/usage/images/contextual_menu_elements.png b/apps/website/screens/components/contextual-menu/usage/images/contextual_menu_elements.png deleted file mode 100644 index 5c576ca7f0bd030c27527ccab5150b45f3464311..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29176 zcmdqJd0f)zzc-9!)6io5a%@vGD|JRIE5}`-bf#QVTHH4@Q^piEaYF^IOlPK2%hcQ; zC(T^3aLEl^Dk~RCQ&dzk7gWR@P}cime&>E(=YH;U&U2pgoco{Wk6si6U*Ni~&*$^r z_~VlOg`L|DZi7G|JFTsLxdMS~o`pa*z5f0?aL@NonzF$SG}Ou!1A%N;l>L!|KzoE05pv8->NsW8vn<+mm&pz&maUT)1EYZoPj<3X=RT|Crh4Xw>AyqG-vsG<-dZZ$nv?+E%nK@`KS)Uk975y%!)6y&YKonW?O{uG< zqf{whN|8o=WD4Bl%Y;QpK~Zo=is~prGKq+Uw7laEwkPk(*zmr4ERO|$QHN$|=56kL zlpy(lz`v44S?gr1DQek=hhRJ11s_cyRi~~0QFWWbZ(fXmbFacRo^I~sHByC*q-`?~ zPbN$W=A5Y}5u89RDjU4GL^qNznL(g}SDzbFDZ*|R zlP>r4kpiTpG$yF^gyj0I-Mgx?Uw~Jwx`ChA;P-gMuW@J*5Rp>Ge{rXIk2YXf_R>v| zga;N@$q%gto5H4SqImN|3%y0QqYsn~2aYFrQSr@;x)7vvwI)&`+F1D7dS|r4y>9Oa z@68{I;@YZ*qQO+L%T`E`S87yC;K}jzu53M$8zq*%u<-5ey-}Nwb_vfeq(+)X&OfOW zNyNfYw~xywJzjq@7q9h=4pg|aDwN0aUgLz3QJmqLg~<=;szKo)F@3qu$DYP^x{rbL zqMU1Ea{sJ0>)}~R+jiY>={Kb49;{l;B>aWDb&0*!{8)2r)Yytx$me%-(Q3k0r@JY- z?YWzw-)3!tFFn40>OHUO!2A#ybxq&A6E9)KQ#L~k3^Kx_AM|7TO`{g_wm&a9j@Z@( z9fFoC1?^HXS}Ns~&gBsw{)yFQL8lMc9IF2*ZOYg`SpNENIE&EX8|}*$9i69N!O)ZZ z>U1>wN&5{PBY5^;Fq~67`u@j+{XBBU1d4d@B=r)~J7|U0&J;Js z*9n`M!sZ2K=K6WHo~xdSXtfj*If%g_byY84XzIqU#l#u;&VX^fg4(u-+7GoQwOWsz z-kP7=SYMtHzmi|7&TS#2I$A(wBSB58Ft?npF5}vwaxO zb!wJZObL?6Inw!R6hkvNJnc~33Kzfd{l!tp_CLEtIvkl96gBz&A-=IWmVdHT_tg0f zckx@K=q=d$af#vkZ~1nla2*%q=My^<7Yt5m#XWD!OBhS)21kv5&g7Osr*<{bG%EOH z;WTc*Z$H)|W>XNJ7^!#omEGv>-%_(AjtRkh#CvKCcg~~6grTwDIRgKqxD34_tk#ao zWc?#Six?NSz;_L6GNCryeCRvrQhz#)y#oUAoz4aqm;czArOR(M%$P|0D8E#yqV?NA z+PeI=CYsK;vAUV#yr`=o=&GD~=2dh2^4onvqLPGxKfe>MI~%23jT(ix*wx?K4R$WE z@x0?*(zp~HLVxYqQ+uHFk{`70vxeC6U81g62cHu{&33$hc-YO7?tINEYE)&v)9W(M z9O6Ld>X^RzSjp95ubSWr6lp6YVQP1;&-EKFQIxu-3i%6~!JVs9mX4QGGroVO^o|}_ z)%_x|Apn$j_8(~qq?a-NaW8g`AShGNj_B~SA9(a8GXPbVD1|FiWTX?mNT8W{P@X(-_JlGLZK19Ap!wulSDW8FD?%xGl=~%2@Le8^L;RP@@qbXnL8Wdi2Fmc@r9ydoic#qmLWM~OG$>|Avm^sBfp7d zK5EL`=m~CKpEjfpH48@<7ZeVe4dSNth_f!l6=SdFm>Q{joUFh$PpB@=jBzWYxKvUt z4bLNwf;|uVLQjO6;8U`R_ef&6x4pzSlGT$xdTaAm%}Qz{$1RFIP@$2$CNJeM>Y_j& z&aE>;tHSY3vEz65nIvR9KD#!)EB>{VKYR=+70~I&R4NijJl1=nD1F4MY(?VwFY)a@ zG=jP6L}pqZwWA;|k_MN?)jbN!ON|#zkOaaW=I$!k_p>c#vc7S!O|ew&-ANx_NikuL zviu-qO?}2!P3R)kQ`d0pDo5(dnUAf%GmKePpQ2hhjh)nYF_S=D0al@TdB!R79?HZm#hp1e4s=hOq z5YAbxOQ%){;^r`&r&sFF2XC7Uc_#6HE`D$_yva45oL!k!kM6Xm+fM1nBQs|)#`kO+Z4|; z)P@*TI{bK4Y3*(tzmdt=jJR!6x(Gc1J*xBsK`=888H^j4!j%qc`22+4k^D@{424bk z2hx=@*c(yj4JTg9*lJx%rc$wghpbywW<#>f%5 z2C;it?&j08A=N3)xYCK5_7!%BLFZgZZAv!vC(9Y1h!=(JCJu7A#j$3wP((OvGCdb+ zv3hF%F0B`_ydjkEaK7}%6o>ZJ{M_xyocETs{P7+Z4a0sA=zN9M-Y1FL~tm-*kxje;#Ihi3~98u!=B~ z!cGiT;tZt4@q%I@`!Vmveq72!XNhXVFpUy2N&OIKzacG+Q`m?V^drUnSh`+(Zb=-A z{GNGU?CICm;vsc-O+M~p%$Qz0&G|yne{_V(!gMc^VWb$3Ytc<>q@>O|A#3q3v3m)1 zNaVTSPfiD+p*oOl@D%l&+q5Da)R}`a9XCky(Ay1Q?3i_wUVeyCCOF6H9Z}*o4MPZg z4dFB{c+asXtPDS8zcslaSn7!zW#eQ@iG!BQmq3@#7p<%l(3Vk->548k7B%w^QG)HOfBDcJIGe zJH2s2>67hUZn^FEs?QwWD1JeGSmIeHDe)a>?&u$p7jtKA34zJo^Fwg6UbKUL^=mFd z@&P`3$3ID4>)1{^flckU=j|;_7^7LGZ`l2h!yYX20L|rsfbo;hc6e=9-UvCfVwm~I z#Bj)=_q5|>G+2CYx&&6{c1Y(mn7Z1@-6(YzDr_ge65#{?qxv`Ap+Jz=x|pn@9dqi@@X!rec2o~rsHyxZ2hbiVax zC7$!O=ZiO8uT7UH^h5L8L7pi)?N)OW9 z>Rh0L0|yBo`sXrGEsQ?~ooth+r~#h*>RjjD?fa$)&B&Ay@AnY_7xov9ntWHa{3VoQ zwz+BWshPDSUGL3nN6Wj+<&>y3xXw~_M`^)_^c~52iW``R7B7D}HMyf7v0sJa65D4H z5vy1ftl3ZBtbiP<%})p}cuKjnUP&DtXI?Wu>0@NtRO`@t3mZK0`ZIOU{lIHA@@ogZ z;BhH&8vVb7WPdhqHSsa&JXEty(xpdRlfEP84fwdUTCd#7;`@b@5gsb2-LT{4elfKYN>uvio9cJx?&>-Ww>h#deG-q-ItL#guZp6t=g21DOzt5E|*^IFkj}m=8 z+!sLmH!dI$q?xG4HTK);X%Wpa8tj4X_#PuJ9 zC})i?Kp=sK(;G)AxW>&1t`7eO6Vs+Q3#qy#5?n>jFNi-A0k0q^1o&I|qwn_M<>!VW zvyg7xvGG6*#pu#$P&yN-7Z{2k$yfJEVp)Mfxp%}D1272gK5t0gKA#l}! z?HS?Tgsa8&+;cHMcG?rnhECA$=~4z&jY6O9>MwbYnu*m>7t0XpgM>tO;tC*J))tR0 zlI=E0Dm@zo1}l<}89HKt{92IO5ZnhQ1jIHvy_1v02iAF zC-|>zb6jCqf8tHfDXx`QJ6_08bn2{W$n5*7k%$ z@r4!#C@Xc(r=yDRb|#lx$o$pxmWSP@eb5=`aCT7TvB!0c!W)FhRU4NOYP`7^|9A*| zwy!mS11c}wagLT4ntt8lb>yacd45o?`T}$?`%PuD^(ER1R{iRGy&0O>>P2a6>3m5S z%C$NEU!HroaC4cqIxc5?bp|@?n)zq6_Sbgp=rJM;*RX2|ThqTGzrLe{bVE=TwhJKF zTWJdSdo1K)uOuMnDKfxJu>PC2ykx!gygIW3CL*j2C?d>G^P7wzkRS&OlT+Kag?Zs!IqqQ8L#E`r|j&oXvD>VHb7=Iu<4{ItSpT_Dj zs5%e*H#l%YF`bd~gQr7s9fI|`%sLpa{A|^xlNr@lI6a@%25SQ8O|^leced_okfAET zpydxseM~Le@v>7EqSL9j=P=9h=%!v4;NN)Y>5P9sjPU{kjz^_OeJ_dR`-S(=FTfYz z>eZf*=#=zQL@82zN8ddriN}DG7uiCCK%oPD_2u&AI~1aS0}}8 zx~YI#x&P3{WJz1;Q`x~Brs5A-?w6_2%h%LkiZOkEZ%f@l0t^?kz<2mfF>!SVx5`3g z_ChUbHv!fkD%gjNdr3M-uM)WKabRoyqH0*stRGaYJ!u@N{TWJahY`%MVPp04j5^Y; zSAC_ku3otJ5g*9HdanpP^d0nVjh$eW5TEiejS!g2B*W-W1rPmZSt`8sMW2OZrY};D!__oiponIT`G>RrL=PKBEsS`$mk6d`W2gAr z@Rs`Fl%&UW3f2$X<~wXZXx~E6pEMEfx-(UH*t6A)L%-?&!Jvj#{TWiRhJB$*ATZf6 zlL7}nY6jof-y*#BKqbxU)&=NnfGPdCIe*0Lh4S75-w3(e(P?0Hv0!zlt)qiC$4v5% zcQ#yj2+7jEc{{+dLQ!<4$y^TB8ZtnhNpFkgSsQiHn!@xB(^9m`wTyZW#+b)BHR6bP zKj}dmBHpeMd+E%Y8SBv{ch;**muQixHwND=9aNxUjQ6~8uZLdYI2FMSy~DZ{=S<|2f^dGv#`d%v_X>`_ClLs%vk|!?rZ?G`G!Jp-XpA3Ux6`Cu4Lo{4|`Iz>K@GDXO zOhF|!*x`C~T=1LnH#@(FBy^wGPT^IPEI#vRBP@ZiM5<@JJ5ai0ue|3aR#z_T;# z0U7b((^}4ZQV(uGpT;w`ugPYT5$DY&&H9{1cYMIiaVD`4$nkF9U23qn`pr&n0MY9- zxxsw!qO^iLzh21g8?d{g_|9&)I7L6uN>r5}z&QDZWG&R?dSv<*;B~7h?*8y%4*79l zPZ0UM{x6lwwP=RP;EyR3alM2^j*l+feAX&iNuzLcs*M$j{EuF_>D7z>-K^U`i~O4j z)v9U9H{FJXSSeL4Jbw93W$eZj7(0DqMI`e9@!&v5qnhg-_X(=x%f80g__boaI&5Dq zk|~~EU1UQNmM>c;>t`lNP*S2=xKz4GJ^r*^bNNoPE_H<_<_qH`&P>^ur?ovX8uZ*} zj}!vuX=`8LnfaTiyWJ=>DB%Gf8p zx3C>48eOR2Rlq3>u^~-LAH4%_X37P!bD1K4{wyNCLAaC*AHjW7B+gLQigdZ19~+tC zg#~m-tb5(TO0VYOy8H?Fp9tLC)lr0W4H0D+GBytxGy_AABR`h~|14gW3gNl2QbXxG zMnjYs5g8@@x-Na?zEe8Kr;LcZkj$}WDNY(tw`b2QDz_qpD<;%*QzeGT#W8M*)^w)E zQ)w1WtmZY_8A5YcD6f>!hd3j(VKNHA7p>Cx)Z$+A$XQ>YV5`{*2@kBT zwhnZ`;{?898hm~D9?79WnmWoxQj3HcNC~asrI2$^DqNUymhe*vlJzfWNq;bB&bc;+t}N|rHli3FBzGqt45X)iK7=_D-W@j z(^oxdcHgV3$~3!M`sttC;L>g>xZV{{DM^^-)!xRG!lejdm5@of0+q&+99pm9?C%Pw z8&ombxmFs(|Jo{Ei07$MP?h;BB>dvEj!@Kz7c;SQ@Hs#enuLfKMSZljbH=yo$MDO<{-BaNqH8>Dl#R7RaR3O^2?qiM0v414z)PahOHBSrA$S7MGtTo?!u zUDEDm0`{{Zin5xIJDZv~vI{q3xms%)G3TJxt26I!wZVe%>la4qG2&BP5{?rn7SuIO zoxr*D&>o@V*>(89laqC9|GTVlyqf6iR%AcPDQO1T7+JwQ$$At@;9owv<%Vahf_{1Y zAil<#wLYaAj~$EbmsGEQ=Z%imRE@R^!WRAMwZ~sEOuD=wMI&n@19epWx&^p2S^5;o zw@i(YuD59kovo`R>(Xhp<~{fjzFY%S>K?^X)e)k;kJC}F_snDs_5}+bO-%ZqJ7$C$ zk_|y{d=WBU)WMADub+HwF>ry}jpRv5ZNfX$7^%(g(seD#W$Jt@5jK;GU2}$iAzB`L zgL17!lgTeiYJZ5@>FcN1@ zk-my2nC)q~itahJQL0jWCI4&gws36@JZ?HRmQNLSP)D81F!!HHzb;1EF1L^KsSG~K zsL;H_9zM2_BAp!x6&J*ZisJi|*($Na1{$rR#b!P{+myI@QTkS*qIVI-dT5{^{>bEn z9G(=dV4`>So^O-bm}6+u;r|=?2;;p><=)b3UHzM}E~5&{F#XeakHw*WjJu8B#0HeF z@Nn+eoTc2|Dl+asz%Myld?X*O_cQKMxot}i54rKtc{+)tbzG}SYhKrX@A?iVBEHwl z+#QMM(D4-^M>)<`v<*~roS@(74SAGKm2f5eJonm8zv&CaE~cQ+D)4s zTXRN2>ne8KBqbbjw39I4QbN5SH`d~2+YJj2bA8v?z}B_*k^`lbAE2$vw$v&E%l8cH z$um2si>pXNl(_uBIQw9s8}ixrl63|E%Blv$j=dw_o~em{Q*%=6Dr?L8G~`4mww|eM z$s+=woA=sN7#C|XU(RAEMk-2}K>dh7iszh#d~E-Ngtu#fnboeAqE+%RDb!r$@+XB` z@oabIu(XSU-cPzL7qBa#rU+oNY=_39t<@G0WvZLt@f!oqVgjmebuJ6w<`+5mHX_!W?vBc$*BbW>YF;l3yreiQXPf>h-`k66NH{C}@z&3d zg7^(xsUQ5l87b%S$@G^ejxqes)E3lgQ&l2h2ZrG#YN^98NML7Zly^0LcAsL*OUg3Dy(hMyb)){xc#GXsC>lu32n<&^%{#y3>*NTk)vM zQBt}Vq9^w!{0q$|w!inxFYC{nqpyE^UG!pnJ)$e7);xV`>bqYF%^?h0{pKpl{so2d zhWPN632|V~jtR*=DV>?ya8i$0=g4syL*aHJiEHJtrJVlrxA_)~9jU7lzF1e_vsCYT z3cX*vwEy9v4Xtbk^TL*;fh9KwhH=N5&#*BBp7;HUf|{M(SfbB#pFa{=TAh_Ehpkyr zLiHsz7Y_q+At*-;X;}-o`ZsR^3kT&2(PtgYGbg`C;aum-d64@Z|9U(G;1h*_ zMM{CDqA=K0D@jEfV#EM(`d2amTLcu?+Ti-RGP;4_&CL>RdLmkft90!^B|#gvMN;|^ zh1DK}j&u9{x7R2R;p;QRH+*~RD}E6M29QN|n~wj@;*B56s|-I|k=>_{I z!l%^W-c#attBV{+0@qgK|BNy0+p@w}-O+zjGB(tl4e`72KAXTZX}*& zOoYcv9@32Ea7C5M5Xi()nc(3wTJrH^#ORYkH=;Lg?n_C%pN!?qVmY1>!B}KKhe&{Y zbX_(Y2spr_)VFoKDIORt6Nqa(DO>>3B-}~x zC@n8S#^=zBLQ2wfr}Gd**r=*mbm#)+;32J}`{zWMyu7O^xvL+R!xXr&!C{3Dj(0|s z@WOCMaEHc%K13RiExGikR%b-^;T=VorZwHL$_TK6E~=U-cOo=f4QO|F`3-$Y*J|V* zIak#db=@fLZtJ6QzGE}u_lsMM$MuAMjKtOVi=0q_eCG~*#Clil(8BwNM^_0oG~s*} zcee8nMXl)phP7KQ8U~sQaItr_iHzqB(rVQt&G^`(v_hHf4Ns!JT(iBc+OmyXtz&W^3 z{78X)@pg351Fgr-E;L$ViG0ON8}D+6TY3{%%;3+UNITptGimySS%zllH^CVG(nLvV zmDbniuRPg`b7eVsXd+%P>+JYmF|Ut*BkCvZ?~8AHX3UK57OT_+EBvx4E~TFkIN-NY zxEhk&;_PV7@Dr+-S}rm^%hzXLX1Vl>c_U%X!|YSF(9OX0bVMC!hz`bzueD!X*s@kT zY+?Y-Qd-&b{nZM4;y!mV;;9|iuz#ky&uLuiz<2YdCKnvj7`X>$uR6ZPl&|R))T?R| z*}0KtuA9^23ksOf4*jO);rt)E6eVPI_Z6mF(5XXSscZEWAB%}-Kl9Ec%#Ix-S3%BP zY@5KwZe{D=aIM@DeJS5%_2ccCp{ z(>j?3VP?~do1@yMNy0iG{zG^;4B`I}GV9cDPSC|(cbZJ6oi zFS%F_WF0{(BuDO=G72zNnlz)1+3(Jppzjtq@KKImibsEW@yE)rx|DXbBZRDDVC zq^lEu?Ws8g1;;z$iIKv<%kiKYodSPBkKQo%W1>Ij(rkv&d5g$R-dyBMzTHE17jNBA~*~e5(r0zjWGH^ZiQbe`(%U?s5G@=(Ol4v7u^% z`a1`75I`+;>zu3AJYsv6#A521;f(j});Xp*hP8vB2)^6b{R8OOgq{8H?r}Q8J}_@^pBg-I#ByXVYdUdm$P4=XrJ}% zU0SuiQbUU<7th5G?tA3J$6kC|8Pa2@wCvi^_29AK&jycV!JHWc;zaw`J#2a>%`0Tj z$GOHjEpyBKOZA^lEnmo(xL7vmR1>SA)8J@#NWqpEQ63;X&R_2|CQdEXeF=Phke)ZR z_u%D+)JD+bBC0N{;Di`44JBQ&+M1B2pmU=+Is9vlRv~!^;QCdp=Kq=M{ommeKD3w+ zG4bw!@+dGpHVXNRh|y_a${Ype%f{2z@vFn2jT@ftr|u6_>l`F$Kp?5-t&$@qr@M1U z!PMWld8@)jk9e6G6Bs;f6=tE5p}L^ah8hMC_oCKjJ}W`*I9Gbi3L}=ky$!y&CsG%f zIhmsO#w;BEkZEMl&xR&41Rg)FL39*E3)W^8fV=bpxPWE>)-B=UZm&xDzNRCsOTb}@ zJM8g?cfRBhkfoG!CpuF3a1x*_wld%Amw({VAjlMI%U_TZ~cHzum(a?z`ejTMW=M zl$ZH=wtlMxytM}#9PzObB%2X26h*J}6u<1v0zS|+_5u*SNVd!~+TK4h3XwEGr#5}c z_RhP@oSymH&v{$y*$MK%~i0%>n9)_7LHQPkr-~3V zves_qo@h*=7-5A_GHpH0@NYbNA*CyJ0Jca*4ixKZ+2=iRC#uiYob*`%WO&(Z;HH5xN*LQk~6V=M+77gkJe5 zNMw!cr&edzvR`kQlX!YI$d!#R21CWeFEC}W!uY<*0}x0VAT?(+-Z+Mq{qX_piMkmv zIiz&RvA}aCdqKYKpcfHMj^E_xIH+h7_#`S*C znql_kR#Ti67e+-5#<}0Jhmc^kv_?dr9zBFf!C`QnI=Cm?Xv<3L^P9ii?0W}nRYJCd z;iloh1Ny^HgLh0C=~u@Gr7LWL1Q}SEe6sZ}OK?&w)rgjH^_PWOlSS8ZOQVMmC~Q$X z2ztX07aX55{tR^=?|#`!P5cu1B(BYW*xJf&f2I0T=R=?I3ZJJmct z267dIar+2^ar8?|qM|$zJDrV}%2VX09D*H3IJoBD144IiKB}4>0py$#rHQFSM}1DHS0&l(LK)K*Il_#*pyNQ7 z8e z&3u-xWTvj$s+XSQ2(f=_tXGV>Mm}!)BbxZq{`c;kcXH-~j9iDVR3q;=?Ky^_7)NH( zPp{~S-|MKGuy43vEkX$;M5j^vSZuAiWfME_UTOWI#^x)DeHExW zfj^%;FL%BAT%~7^@49|?Nsv}TalA3zC&IMjLzOh{q|z6%XXXhf%0br%L*H9{nc~cKgVb+Ux=8Ti*C(9%^cbmWs+pR5fTv3I=~Z3yH6kZpg?3 z2*5JGRzzB{YCb20yPz#hav!8AoFbzB>1Z%ZSEx!bTZ9E>#)9eeCkvC7O*fKce?=!X z{wD(o|F)|7-zV<2n}mV>1lj~{G#vpm=0*S;Wy(em!JIKlji<&|Ok!dm)26@#4|;5F zJK+6;WlmQH5K^PQw%q!IEmL1d8zRaWzy@3Q1N7zp+Mr~)kbA*e=Zr{2^W?o@!Nys6 z^q=d4J5tpa0VUq>O^kRiizoaA%WBBJgzJ{k4NBgS5DZ!R&lpN-d{6UH-fWGn)b>P4e^wSZjAXBFyD0pe#T4V zR+WVhP~%T#jeKvF5Wn>GoZ2yV(z#4zeOM855mZ$%&0*py)PBisi3x<@I)J{im8NRN z)h|Hqm_OXYs%(45w37c_3 z9tF{!t27%W$iy*9@jSaCbI!nnOi>rNTZi+!yS9N4d4o7-+jF$DFZno)i=5xN7Xo?L zss|)$Xgn0py%^r+vnlZQ%{C+`fQ}h!+a4eIi)io)m#HO>C|h@4?}{9PF{U)nS-V4f zp`CrhokIBqH=-D|6O$@aR^t;7x0)D!mn7~q_WvEavMF?v1x<9lF6_fiJDpo7wDMH5A@ zRaiUIwzTE|A^#)hwojX%yJxCsjDmPlo@PE94Gb|ryLh9BShHM6X5<0s_gd^Msx3_D zffeK@nA=(`^&#M+Qoi z9y`ELX;sw4vus~-%b2ucIQ~kg6&F&bTpXu*9wbG&epqoDqu)#x6ZF&LHsNna??lmR zE`}oKF(TdOwca;}36e?7$L>4j$hpZ|K;H&tJg^`i(E3K>uadA@Ew$sg9EX>IuOm$p zV;?!RDxOjNg??jG!@(HB_$=1%`q`9x%5f*{i32w%Pw*(*rtqD=(h5TzA0Y4Z-nCSX zR%av-#wGPBv-^Oz;~vnee3jOm0>i502jzQq93ZhiGYTf5vn7WR>1j{4#h5O8+@7y~ zn(dwEGZ6vn+`uoXko3z+J%Lw+8hL`w{ZexE-XRkLyVr@dPhihWT&X4!>-XB0#1vnH znRPgsd!+>ua}{jsfll8N__sGSXUI%xE@lclJAVCo>JfE)#VW_&f*o5bKaCxSx#P|mCkiz) zI@7o&S=PwAPG`)_SbEke<^h}Pty2z}4Bw+Z{~2cuA6^93IHHe`Bk4Rn-|pt}@ifL)!w|Z1&~2WZ6W&z%ob+~8RGxD8eCQ;3 zv=;5YRr&4bIyhY#$J><}4*7nz>MtkLLh{YR+f00g@(=3y-RG^gKB0w1CFnnzi%$CH zT;qNgSOcuAwz^ni2jJ~}&VlFgz?@_V^sxuW@`N@&Lm>XkN!-Kv99VBrB-SAulU&AI*t@cXOX=ui{GIbbpyME3=5!FR`!(s|R)|v|$Fz7ST6=LwOI(5r6snX}bg^*S^EL4)M9I!9=XjX~4w&|X z!k|^qI_S71blB0H7TLZ;;BxcUfpveHU>d@x#A!diU=gj&am^Czcpyy2MjNA8ToN$( zGUkcgo3bp!92K-7Ja)MACV0hWVEbwSj32MSP~FgRQHv0L?POE&p8O9pfPT}{Ekv!y zelWm#!EPCi8#yjF5e<&RmAIu8z*m4CMXU?CyA(Fwc2}0^!!W+k5~U7|N|8_`8caZ%&G% zr?XLl8~EEX!>abT!9x0K0`?^{t?8iBL?X*IV|j-mEsb|Dj56Xg6>;@&`&i%fwJ*-C zc4ceyd44@KEqCWVG^n5NS^!1dbIc6&do)ff=K5;^2>doqSrr*u(gLT~s)@CM7O$;- z?7@sXo>p^u8MvoDQke5g@RhfX1CFuTcbi8IlbGbOO4^DFSulvF#=7^DTxG_^W-!a; zf2dk&y7IwZ$z;#4UcGzaHp&m&plFBJ_TL9P%F&KafeFc}wp$|PadO!hZB};LNy`z8s5+hxQ{H1HX4$&n|jZ%u@(V1t!N#kWx>hS#F3&>R9&Fa#-}QQr|=>J z|B~(7tH()CF+}H%pZ2fW?pyci=<$ulv45}lY*r?w_4pqx+}wrwW(4ZU|LY7iaMeLv zl$fGvLm^QX*=^{aqZ0+!q83vn)tkLapX#Ot@YV@*Yyzb60v3iUDE8~i^Iao4^zq~h0} zjRMc$^ohUS7$^F}ctho~;8rB$I02{$K~~U-MciVn@Xsi1Hc>RG)hP2+h=sJcX*~=> z<|szi{?IwJ6|%Se%}o#ydtAWL?-E<82`=%4RH<;(ohcYtAQQzwQ6QaK&w+`?ck$(5 zF!3ycznI)UwF>Jb!|d}-^y_G$xiT?YDAT9msf3B08Y9KMM9zu{c4cye%to8KX5yb$ z1Z{1Z2F6ZEu7!nAW^s`4X}ARprc-g4DszEQr66`4B!!Wj+OU~_J4=`-D;!4=`UToM zq^WL3iV1Gc;NTZn_{tDn!`;2bBFT2@(sm4E8a4c3r8@hmv(4TZkXBEyn=oI* zBBbOBkGj7}cb37Mjx4HZ3g%FJ1a7T80i~-+*EL#*Dr5dKClPwKx^Dw zRS$yeNnZR0I#)MgJ)b1~Se6MeN#Hb0Ca?gP)WFMdeRYpb{PF_!Llj-_hh~Dl8oo|& zY51ZQ4b~q?(4)PoJwkX&eKNiZ!qWh9RjC*4AwZc&+PhY5G=$rM>VDhugI=|{Tr(vM zU2r!4V_aJl#e^dhwUJ6BoV%KEuwxpXH8e>D@jjlo>om%dEjOt0_ujri-EQ9gSr6*2 ziE-~Dk3m^)_0v_KCv%v#s0+DRE1q9 z{1;Q`|89iRctaSycn@Wx0^PIS6DyYF3r zW%6{U9~F3hX`{!i+>OtVUfj>~1GaIo-R)uiA6kSN88Im(M9d z=c(2z8&j*ZxwFWg;^F~Onb-!Is=)$A=meU#|{f5=yr+B>@-L-uGZ zT9rwmSh8n(o6H`o3l(| zj(NNn9H;3Br_AIa`?WH{UAAgJb)GVyY6Vr){TZ`mArB!S@DE75u57X2-Ls()>eSy@ zA)4m%aE=AZmNV>OhiIHE-p$TR%L~o*)#{r5?i`l`+)NlDYY=TksvW)zF^+^K9}m=F zx(*PW^AUw@&4693hfT)ykxC!4M#4tqXMs{5dGF!s`(;hBd7&;=lafM2howJN^#NEV z`uo{aVd%58i|mI)w*HF?ZPC`B>=NvM^PK}K z6zj={jWgx(PK+UZNe57a&>+qDUL(|Qn*(%?Oku_umku`!4$-r;m00p@`Jsb*#}t$R z@2nA9(l;rc^}1w?PM+$|GE4S4s(5Au=Y+hGJ8zoz z1^rX+yQ&p0#rJl40dLM#`Xtq`0vE!_>MVEG6~!(&$SFJsX@`;9`fcP%IR|8jP!$#z zJ+^z{LdFuYDvwp3+%MfWn67D6X8max4X|$EoVkt_OK@!7|3$1hjpzp~>610(4vi6Z zd#}*?>%;^D2Yk+sRs`|}F{Y=P(g@?wtJbfik7gKD(|JI;{pI>hT;NZ@hwY69+Ph{} zOP2GdK)cAy1h;m!&he9urdMOzB1?y51iwdrQ<5hu>14hS~BuPpz(LO|JG-nUjW*~C{Ub1={10X zNYhQgdT|JGDtuxQO)$a+o7ZDk{i8svK_(<2thPG61;x2xpI3B2e7+g> zRU=*;6E*cQW1%K9f$;HXz@dBwgkgz{NMtlbupiM+yai)!BM3o+18>8ef~v{Sb!G+T z1=!Ba6XF%n3f4OHs!cnAD}N|t6$}fM2LN5t0u31+jgjbJT*_s!ow6=v{TlT+x^NE; z=wFn-h|Ed#Sr&k%f=HQ~#2Ia@TePj{ya{ZaYbApG2n|DxFt4o&Dl`0UVYwP1 zaQH(+ii%z&XP8@xLHh}-4NG=$8dP-9HS{eYRCd)m*=_+8(@}tKy=u%lugD>Pf;OQq zb)~H*_9n8A!^0-uk6`G~&-+e#%+y)GzxdwnMX=7-A-*heMF}`6XM}e6YNsq?G3)-Q zzKpYqwtHdMqH3cSHd2mgtSL7SPI(w%{O)guLD8-uL&GgMm^-+%SAYLLNG7aWcd#=B1wH9%z0ss|5hVxw`b<IJ=pP`@3r$Z}!m25z0fFdz>&Q z(T*nL`e;O%L$ScCf5CcKd0&99Oc4Ty1GLI|E>{%GF$^H)#m1g^WoC%bMb_@o6&PiKM+;DAwr}g2}(wa`IVL{aXNDR#Qy!K#3Fjp_Bf5Tcy zxK=ibiq2o91cz1A58tqgi{-pRds5eo4NuK|zCA7hTP+vRbsm=x5RX3+4ncn}QEY>R?4Svu9DYGdfrS+ygVR~(cX?3U{!Ee-jZ&}OO7 zz&Fj!AOv{IACb5wj`-&h+h0V%jfRrVeUHl3DyIe)OAb0Jy{B{w-P`hD0r)=RyZOdL z#gDm-BXZT5QJTF%H-1q8(UD*D*k&mb3397I5~P}b?~`8bp zzw#1KtBLs=7mQRvUm{WY7I4=K_W*Vu-e}M?COZtgKJQ}&4O%wnTU^hPrHo>Z#QopL z?|mzuDU>w3s~UsZWWS=>eq6u5xoFTVcfarFb}j*!jqYp9fu2ovGL5i#Yg_k$$r}^u zhpV++m7x;f8v_y9z*(IFF(e*Z11b*E{^?Y1v-wK?{^mdqR6G+zL)@u^H!YA5#BA$J z@*1b`U@Ta;%zH0HxvmvEVoSctM!-Y60%_n>&M?rO*mFL5@mJ;Ch{SgvQq~|$4~yA& z+@2ggaa>oF!)5ofRyS6oci$9#VUj7e+om)S0AO?m?`jo7?W>aY&HzjF+n~7M-GY3R zLcD98{bEI+Xk(cx5=e~&ys(UoL+)N0qYSF%o0-eyW}a@NQ~H?zu@d>SkY z{y51sM(oxyw%-hEBWO;STGH8hjPq*L@9AE**sqP(2IL~xI}b=)X1pLAbY>{4cj_1Y zvBrm@ot~GEEu0*yPr5?mjIAhq+v2P+GE$eW!uz;qQNuCI@eUFx>HMx~B3eiB{JFhu zEg-ygKWu_Ey3A;#&)FkmuxmI*3-S%$Y0$y9A>mK8fhqqC--{6%D`jZresb}1^TXC# zBy$l-%%~GKyHU>%oB8{+m7#t^Pm3=zcT`d!^$f55rXAbpfx#OSi*qVuS#odOyd|Gr zo$KHFNL+;boBRmWV6R~vVJ!(G`_(dbT^k28K=3LID4XF85EgSOqt!T|C|vft|7y9noCBV)Y4mRqem0DtxxtFM^2;qLHX_x_WO#Pnq3m)o z3!vyzf^n#oZW{N^5Ju~H9#J=t(@{Apq4Y1j(AU7F1PwHa<=H$Cn7;m6^uw*&q8qBe zdCs9pt8~<~x;CJNuM?Qb51G3vwZW7<4zMU!q(EN0K705-i2}LlfvRH$Zg&@a*{|hL z)HBp2Lb9^?h&R{~f-&|a;GE^dK@s%Tx&|3oSYTf|=-qHH;ED)PFXTp08j&t$gd3ov1omLruEA&IwAF z_JcLB2oUREd0@zy^x~Mk+Hcs_;4?^0V3EZoh!ivl+wnB634|Q5!h2w%8p+M$&XC~3 zD+W5V9!&qM+$-2U0K@~rKGY6V*mV1XR4J{z2;LM?wLd`$7f@RM!-bOfC*?WuE%EJj zmOeenLGXM%Y{}S4v2|gT4|VptXZJnYx~i7U_=PP}1sh_hwkqM)npM-mBanMUE1erZ zR0lQ!oc`*~GMh=ZEha?qk`cEqxn6(9pPy;FO2LYRls?&1;BumaQSirvm3A~=&#{~F zG+ugSBNvaEuXlZV`eH1}zU!qhO-X5xyyXH8Z+AyhSGATw@%6iF&4JL^w9+Qo}P`lw{WAN#uTNx_sv_-mZ>V5)DvW4=M}czB3q+ zue38PBrU1mg(z2{wtHnP2KE#=>S*K_651E0kYt;+qQKN6QXHa&j`3!#-`}Z+4pbwV z@JIHVAZt0DI!Y=l@7BCvdAp=rs#ot)L&9Y>88wNnsBf`O5yXnk)>qc}@_gjH3j^zj#YCi_io5<)J-jg>8CgScv?Ur~6R=mfRf z-ReEh&2UuFh2o_rY1$Sj@=}R+yEQq!W&?R1IRt4`xye;@?lH$fg zEq&vVo^*#rddgY}WuH1z53x}*?%x8I&FGQ%JGEHZ1x=|xsM2Wl>os)@N_MLzY>OR! zt_Cx(b>pRQ#346R|CK3fyNE4~wf}*9$Z&h;^6j!bK0+e=@WBlX8v*Hz{0#N^Cqgqsx9AnJW=`Fp?ZS%!7wdz~1E5I37U& zhhKE9yBRKi;9-&}&&}=%UqfK{g*AJQR55;|LRl*Q^Kc&&1@EePxe9<9ZJ`3ZnX#;;E955CE-yW~@ba=2AxL zE~s4vX!APQo|eS{F~L^_f)z@sU2Y%HTb`|o%3I8u^sEb-S)Cu|fQ>0;qyf})t18<7 z0Tt^9sL?({vJT2d_Be2a#DYCBs2{cHi0UZb} z_O%>5TnOMxei`Gg(;H-_{VcDN?(tPXB5tRr%!aeemE`-$xhO$P#T9SbW@jyUKpuwD zsHxAh?qr=GfD-?Iwc<`koSqw0%l~PCgC)%abQMr^`cegeeV@1T#~eQ<+P7;RI2VM1 zL9I7oJ*ZiCLR|u*&{0wLa*s<=I$ACXLQlw=!GN14hUgzQ3@uo&^TtVjK@;Mqf^@y$ zR=uQXr`YPUxJY5@xZfZoC^>*1MYOOrxi|{({cpffoB^e}^@`VD<@ltJO178G)q$sA zAiz_N$Qolh5A+{UWIq);67U>V6@8J*%X2C*;Lt&-G`|f_g12=F!PLCD|u2;*jUvbA8Sr1CySVie4Qax>Ki%XcfH9@Z=!ohJgIX2 z&!GxAgv-WdotZVMwvkRvBTa`uKVco>pQpku$^F;ss`ynU^C8z z$Hxp9zwWm$2_*BFwx%>6vArOYz04j|wd$2CLrkw1tY+MBN^ww9rS1X&Vo;j8z%1v# zjJJsn;G`D{&f*8&^{)r}4L}~sP^}iQf{nFL`s|)*x%X`4? z?=%6rUf_NyE0OGMS_%@@w0crIInVJ2yxzoA9rSvn5?-ux*tD(b&e+>he4g^rQrY&j zghnlxU#X)p|L40i7hubXKgsBIQD_oQUuP%CG=OCHUKejmzqiXZ`QuVgv%fzhKNsI~ z5w?--kDtl-fzen9sNcNN%!7-M#B}?IGT{VO`IVJg%9O@JCZ_2bPF`vn$^o}^`_>+^Bxn zYX@jwfpPWzJQ2TL!F_{$1oo!H-6}^uX-#e{jD=?dg1`d^hZ~glr4jV2Kmk`K4}Sxh zwEyod!~b zwABo)O~Efy(APE3zoE~~rssj6$n!Boen9jC06p}Pk!+)w&4@Kf1FWvX=MPlfoX1*v zcNGqSTG+e|8uH_8D(ot@!85HeBu(is0M)ZGptKclEi1X7RYW)?=NHIPW&nR(9{s_5Tz!nGHnelOVedJv*jDm`4adnk*ujfv%qf?Lqv+UwK z;5i-E!DBwjwL0BU{9N_yJg8?!3@5EE5-gy{A>4c>!IFK^_nd{U`FMA}6^chPY0F|- zV-lU8laRs`wC<*n{0KyS&`LuI`tay4?A(u6~qW7i_)hY*A&r1^q7OO-#dT!acXFT75u zHfdqq4L#Glb>}CGI-2a`2AAON5;(OE9GcJkd#+D79Wg^qb(UuM4@N1!&pQ?Yxo_4a zUr83_B8wOEDl-Ke&6ewzcb9A)PAHXWAuz3v=vtiR$@SP;dJ3~9-2tNVhT@pYcbcIu zii;j2^RCurt|D+Y-x^t$jLgJ#6$?jwUes+Hg5-?*@nZ)s%X#_l?jAFo*z*<|LzeIb z_0BD!^Zi6&Q?*I#i~dY@VKXz*oX5U}^?oA#G3-cBNYW_YH7RqMAq>hC@N3&^!6U(P zbhN32Z#3G3WRRJ=B+5>v-}}B^@{5UDu7uNdQ**hlSG$?oS%ha?YIVhQZ(fO? zYBeoJ-b2f$=^Pnb@W8461G)?o-S2E40iCngIGZ>e8j= zQqUQ3L7*Jm;i6Y?sgW=Tt8b1RXKBa_XJb#(f-f>gTPwHg6MFk(AGjY3;h@?V+%rX0OG&k2zSaSeh9B{#Eb}rFwO93c1@38MOepl+??^yD{I}p`l+Z_d_{$`hb;~$ zl&1vG4uw)8k5a^k!9eqI%D&^Sun*F+S9V}K89WEY54qjUuDUHyzX~1{HxH&fPv^7! zU&{S?a4|!dvsPJ+Uj^8EjH6p_K~nZ(bRF$1&xNhHudt%ku<1dM%k-maM%m38vExM~ z5-p=fd*Uwl{*1Lyw<+>6w=Zerb}}wzN^F@7msuY!BeGZpxgQY?%0-6!QHa(J`bEE!GX<;AOfsp(R<-q2*bE_ye~p zO9_-i>h^%$`ZF#{Oi>Js5PCdJlV0MVK)%FZ4|$}fmdGrCtLGodFg4*yzV+gwe+z?o zeHVzzm-={A@I7_>cSSxJhCLuVXKX=k)G+bS!|# znQJNACm*X~r|_rOgQ#`v82^^ANw^vDLjP)Qo;_BZji~M0_&yZ%rz$}`EXHtjv)QrnCL zz-M)m8BtrrxqsPN9|XcxG_RYc#ntLYk%473lx_RB;L={wt;U+{ z4(2R^6}nlIoAPQyL^v4r=fngj=hVM_;5rj^JzyrR&{8yRtuNw$aVP zM(QaW#_eGY(JIOYr>_0G2OB{Q!{3E>b_-U1l$+`wwH#sOyo>3%yS(PD+szu6%g%36 z)#~)W(nAhv8EN@^K*BBdpK&7c4aR)M!%Lqt4mdHQ$t6)alL&2@*CkohRu_5tJF{P# z`uLATu-m~RJ+C^q-mZWiG|kl7eLj*gJ6?mRK5Xa^A`JwH->7dXoGH}Oo>_k)?sVz3 zG*Iq=a>rqya5zywmG(daNZVGaC)*w*v*;kY3(mo>g8foWYA*s0c*9p<3hEXnHKVTm z{Qm=k_CGOw+%YE9-vjc@m0M_891O@;)nAN$NE+F>ZpYM1!Ierq183zt-27uT3(lVe4&vM97FEF%%Q1xwH&S5bBX?fEU;YssdlEz=gYY1nzY%a_*eKGCWr#rl0*tWPa`C!B2r?bc!x*fF2~ z`aO~{z+G3c#@_)FKFnL+4v|bFqoF2MWebD{2;^8H(^k3KdtzY5N_Z8Eyl||5F{sb0 zwg;@;lT`6i*7+p3$bZ73mQabKaEGcX32R!fMpJny;?h`wJET-=NeFwPf(Gh@CWwZB6IzT}i-QT?#aPa)q zAGAlGk~j88=lAYpoh?N{*p9hlxU${)L7RTI8x3YXuZ$%Nez8cDS&k{PqX_ z_((s^zQP~ypL|%yTDZCjs{r62Mb6iAr&h~(Rapoyi+ds0b6w8%lkMVD#o43sY`GND z=1d_0PljiljAve6A3Hm(UwMID^4xogQtnK)qP{r2n984>vS_3<*H@;@;Z%mDRt*_r zmp5*UGM90BxUGWK!j7;@?;89n;SSyQ?aCzxx8uq^F{Rdae|V9i{c4dhguW2Eeads6 zSx_FA$x?^G*FRsnnC|+pO>xPGp-0Zwkzb4-jBk=`jRNw4$H54v0sGdFU7rik9=*){ zzs{72um0$Go>BQFUVzTps$`J-dI`*}p90k7`Ce@@=8P(J4K1=*kwQ3@7iNd`iDt_F zW&?gB`9=Ud8oJc}Ya1C=m^IXK#o0eZ%Nn_-6N{WPAK48!P&E z$EkgCwj7)JA7}|M5woDuohslNF3iD$HOaA0uE6+*jTsmy!FBafkJhU=IKiD`{q(V0 zq7ip>>Jo?LM(6DS(PRjl&`S$HJt+7vaf_caF!gI;ZZ(e_K%X)GOhJh`3tG(XTlyE#KQ{ zb^ghse%G>e>36{w9V6_Nb-axG`I61juSo?@oqd5RK5-es@?a z2jL;^s$3ciAJ{)Rq+=Bm($~i-JtIIKV<98#b!~rW@sEgMGe)h;Y5up{jU`&y|FZh? z`rb=Q;b`9TzL-a0#S2?qOSOu4FIfL%G!hLXWs34R-yFf@3%)tBeWfcnqwb(-F@N%? z0XK~iQ)OW6CkS>jCNZlTz7>9G+$<0J$0|_eh)cKaqkGqu0lIh%^#8|u!JSl{B3KY;q>L-D#dTJoUB_OIu#&5dc{I~Hap#m3!+n68y*!d+p56?7U@vm0YgLbA7l{M?b8~ z9dxPg<$}R;TVg};v&k7ar)^B&Ijz`7&(?s#Rk4YimvH@~t43$~Mx(z4-prSD8_vYK zyRxAJ8_5E9@HBv+U1!?!%(I!-GM-0(cCy~TP;QIu{|V~m%zmn)Es21{p>OXB6ytr^ zQ3;MxTC1nOzhEBulBkwcq&)jnQ-pzjd_K|T>lC? z%b+-9Qr?#HDMtbcS^D-%&CNmv1P(Utp`zL&Clz6*7)MvcBRbCVqi=mUST|W}+ z^RCtvqdo`^>++TqSCzrh4>FydX%Z0-TCr9<;&RdPj-6Wtw@B{itH0YH=ww{H*eQ%} zduO(0#>+Z6R*Q`>-ch|XAm)`Y8q^l`5;(#)ru$OvUi+9)&d0$YA4*hPG{nDdF5FihO0)ezgX)P}R%EkxREm+v1nw7tqrYmTQ&t zC>OJXHxTV#*Vm|`kCL=hG2$FHiLJCr~H=Az@fS z0#eJ@spe%7_s?aMd$22V1A#wO8KDI)D2kf$Lpg_n-RSnaO^MEBa<|p!xs-10?{org zV=Py1Oj=v*L<_H2b;&*Jov#@ax)WlUe+3VQ>OOwsE3HTbdKWR& zn>Dl6HW<3xChF)D*%_+JDrH0#q+|h$*ABaU>2IZ{k#Q)>xN%8Nv$ND4Dz_XSG4_xW zm!q^piX-)>6fyX9nLmz1iE+%LiQ?O(XEsdv1#fZagC>QrTRiva)hxS6RpT}W=?niB ziqCp`rtWDjCZR%YrBEw7{!AMA<#0o4iZ6e8nkqG4Z6-PjN>ODB1rVVzqh5~!Mq7N^ zy6Bk=d(yhp()kSzR75uJ*q~Zl;))ihHjRJgM67>*jQuA04>6Sb`{$7#W}<`YA(bd~ zCvB%ccJD@+${;QMekRK{+8hl-e;0^&ndHu>CEk*ch}aiNIJ*h-^qoB9!&&_S&DG7D z+N^8Z+_h6c8(Z1KN_ppb`>$WN%>LJsBXOY2|G~2IY^k7Z(RNSGyM+04qbb`VH@70X zbN2EjVZlvVwP;Vjalf{j#^x%Ut-v zoV`N=2S6J2=`U@{3o(EuxhFvrq?vD|U1j}G!oPvlTmfhtO>hKX-WnHzdu@^ejVgnn zn{L!xdUc(+g)y^*4a(bJlotRY$g2W-0?N=1^(n^I9HYT}d)a(Vxwo~td1;$I+#(9! zu4tLbytBpHV#9e~g_{5p&vOshE5S4eU%OWK{CSDW zFJRXXwVD4gV*melk>9#9n|Kq9%O&D1Rvm+%9_a>uKV}JK#{V;aUIW)U?#)*?6QKbM SUjd&~!sZu;pDQe{#r+RmDW9eQ From 87dbcf1d2a1d4bb32b3c8282fce1306faf6bdc5b Mon Sep 17 00:00:00 2001 From: Enrique Moreno Date: Fri, 28 Feb 2025 11:55:54 +0100 Subject: [PATCH 5/8] Added scrollbar mixin --- .../lib/src/contextual-menu/ContextualMenu.tsx | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/packages/lib/src/contextual-menu/ContextualMenu.tsx b/packages/lib/src/contextual-menu/ContextualMenu.tsx index ead2f98797..f5f8767144 100644 --- a/packages/lib/src/contextual-menu/ContextualMenu.tsx +++ b/packages/lib/src/contextual-menu/ContextualMenu.tsx @@ -12,6 +12,7 @@ import ContextualMenuPropsType, { } from "./types"; import Section from "./Section"; import ContextualMenuContext from "./ContextualMenuContext"; +import { scrollbarStyles } from "../styles/scroll"; const ContextualMenu = styled.div` box-sizing: border-box; @@ -27,18 +28,7 @@ const ContextualMenu = styled.div` background-color: var(--color-bg-neutral-lightest); overflow-y: auto; overflow-x: hidden; - &::-webkit-scrollbar { - width: 8px; - height: 8px; - } - &::-webkit-scrollbar-thumb { - background-color: var(--color-fg-neutral-strong); - border-radius: var(--border-radius-s); - } - &::-webkit-scrollbar-track { - background-color: var(--color-bg-neutral-light); - border-radius: 0 var(--border-radius-s) var(--border-radius-s) 0; - } + ${scrollbarStyles} `; const StyledSubMenu = styled.ul` From 877dec37106319e75b0e3e5cf2cc78bc42bc957d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20G=C3=B3mez=20Pinta?= <44321109+GomezIvann@users.noreply.github.com> Date: Tue, 4 Mar 2025 12:55:08 +0100 Subject: [PATCH 6/8] Design fixes, code refactors & more --- .../pages/components/contextual-menu/code.tsx | 18 ++++--- .../components/contextual-menu/index.tsx | 18 ++++--- .../code/ContextualMenuCodePage.tsx | 18 ++++--- .../overview/ContextualMenuOverviewPage.tsx | 41 ++++++++-------- .../src/contextual-menu/ContextualMenu.tsx | 47 +++---------------- .../lib/src/contextual-menu/GroupItem.tsx | 16 ++----- .../lib/src/contextual-menu/ItemAction.tsx | 38 +++++++-------- packages/lib/src/contextual-menu/MenuItem.tsx | 27 +++++------ packages/lib/src/contextual-menu/Section.tsx | 24 ++++------ .../lib/src/contextual-menu/SingleItem.tsx | 6 +-- packages/lib/src/contextual-menu/SubMenu.tsx | 18 +++++++ packages/lib/src/contextual-menu/utils.ts | 36 ++++++++++++++ 12 files changed, 150 insertions(+), 157 deletions(-) create mode 100644 packages/lib/src/contextual-menu/SubMenu.tsx create mode 100644 packages/lib/src/contextual-menu/utils.ts diff --git a/apps/website/pages/components/contextual-menu/code.tsx b/apps/website/pages/components/contextual-menu/code.tsx index b14b45ee01..265615d2ad 100644 --- a/apps/website/pages/components/contextual-menu/code.tsx +++ b/apps/website/pages/components/contextual-menu/code.tsx @@ -3,16 +3,14 @@ import type { ReactElement } from "react"; import ContextualMenuPageLayout from "screens/components/contextual-menu/ContextualMenuPageLayout"; import ContextualMenuCodePage from "screens/components/contextual-menu/code/ContextualMenuCodePage"; -const Code = () => { - return ( - <> - - Contextual Menu Code — Halstack Design System - - - - ); -}; +const Code = () => ( + <> + + Contextual Menu Code — Halstack Design System + + + +); Code.getLayout = (page: ReactElement) => {page}; diff --git a/apps/website/pages/components/contextual-menu/index.tsx b/apps/website/pages/components/contextual-menu/index.tsx index b9167af3ce..9cfdf09f6a 100644 --- a/apps/website/pages/components/contextual-menu/index.tsx +++ b/apps/website/pages/components/contextual-menu/index.tsx @@ -3,16 +3,14 @@ import type { ReactElement } from "react"; import ContextualMenuOverviewPage from "screens/components/contextual-menu/overview/ContextualMenuOverviewPage"; import ContextualMenuPageLayout from "screens/components/contextual-menu/ContextualMenuPageLayout"; -const Usage = () => { - return ( - <> - - Contextual Menu — Halstack Design System - - - - ); -}; +const Usage = () => ( + <> + + Contextual Menu — Halstack Design System + + + +); Usage.getLayout = (page: ReactElement) => {page}; diff --git a/apps/website/screens/components/contextual-menu/code/ContextualMenuCodePage.tsx b/apps/website/screens/components/contextual-menu/code/ContextualMenuCodePage.tsx index 3719dee499..c7e80cc18e 100644 --- a/apps/website/screens/components/contextual-menu/code/ContextualMenuCodePage.tsx +++ b/apps/website/screens/components/contextual-menu/code/ContextualMenuCodePage.tsx @@ -86,15 +86,13 @@ const sections = [ }, ]; -const ContextualMenuCodePage = () => { - return ( - - - - - - - ); -}; +const ContextualMenuCodePage = () => ( + + + + + + +); export default ContextualMenuCodePage; diff --git a/apps/website/screens/components/contextual-menu/overview/ContextualMenuOverviewPage.tsx b/apps/website/screens/components/contextual-menu/overview/ContextualMenuOverviewPage.tsx index 2b01e1b15b..af4ba6e0b2 100644 --- a/apps/website/screens/components/contextual-menu/overview/ContextualMenuOverviewPage.tsx +++ b/apps/website/screens/components/contextual-menu/overview/ContextualMenuOverviewPage.tsx @@ -10,11 +10,11 @@ const sections = [ title: "Introduction", content: ( - This powerful component improves user experience by allowing users to navigate through page-level content or - choose from a list of actions while complementing the general disposition of the main content within the - interface. It also allows a wide range of possibilities when it comes to placing content cohesively and - comprehensively. To achieve this, it's important to understand how the items in our Contextual menu behave and - interact with each other. + This powerful component improves user experience by allowing users to{" "} + navigate through page-level content or choose from a list of actions while complementing the + general disposition of the main content within the interface. It also allows a wide range of possibilities when + it comes to placing content cohesively and comprehensively. To achieve this, it's important to understand how + the items in our contextual menu behave and interact with each other. ), }, @@ -73,15 +73,16 @@ const sections = [ content: ( <> - Although visually similar, the Sidenav component and the Contextual menu differ significantly in + Although visually similar, the Sidenav component and the contextual menu differ significantly in functionality. Our Sidenav is designed to provide a consistent and persistent navigation structure throughout the application, allowing users to easily switch between different sections or pages within the app. - On the other hand, the Contextual menu is more context-sensitive, and appears in response to specific user - actions, offering a set of relevant options or actions that can be performed on the current page. This means - that it operates on a page level, so the component may appear or not depending on the specific needs and - requirements for each screen or interaction. + On the other hand, the contextual menu is more{" "} + context-sensitive, and appears in response to specific user actions, offering a set of + relevant options or actions that can be performed on the current page. This means that it{" "} + operates on a page level, so the component may appear or not depending on the specific needs + and requirements for each screen or interaction. ), @@ -96,7 +97,7 @@ const sections = [ and intuitive navigation. - Align properly: position the Contextual Menu to the left or right, avoiding placement in + Align properly: position the contextual menu to the left or right, avoiding placement in the center to prevent obstruction of main content. @@ -129,15 +130,13 @@ const sections = [ }, ]; -const ContextualMenuOverviewPage = () => { - return ( - - - - - - - ); -}; +const ContextualMenuOverviewPage = () => ( + + + + + + +); export default ContextualMenuOverviewPage; diff --git a/packages/lib/src/contextual-menu/ContextualMenu.tsx b/packages/lib/src/contextual-menu/ContextualMenu.tsx index f5f8767144..2285398aa6 100644 --- a/packages/lib/src/contextual-menu/ContextualMenu.tsx +++ b/packages/lib/src/contextual-menu/ContextualMenu.tsx @@ -2,28 +2,25 @@ import { useLayoutEffect, useMemo, useRef, useState } from "react"; import styled from "styled-components"; import MenuItem from "./MenuItem"; import ContextualMenuPropsType, { - GroupItem, GroupItemWithId, - Item, ItemWithId, - SubMenuProps, - Section as SectionType, SectionWithId, } from "./types"; import Section from "./Section"; import ContextualMenuContext from "./ContextualMenuContext"; import { scrollbarStyles } from "../styles/scroll"; +import { addIdToItems, isSection } from "./utils"; +import SubMenu from "./SubMenu"; const ContextualMenu = styled.div` box-sizing: border-box; margin: 0; - border: var(--border-width-s) solid var(--border-color-neutral-lighter); + border: var(--border-width-s) var(--border-style-default) var(--border-color-neutral-lighter); border-radius: var(--border-radius-s); padding: var(--spacing-padding-m) var(--spacing-padding-xs); - display: flex; - flex-direction: column; + display: grid; gap: var(--spacing-gap-xs); - min-width: 240px; + min-width: 248px; max-height: 100%; background-color: var(--color-bg-neutral-lightest); overflow-y: auto; @@ -31,45 +28,13 @@ const ContextualMenu = styled.div` ${scrollbarStyles} `; -const StyledSubMenu = styled.ul` - margin: 0; - padding: 0; - display: grid; - gap: var(--spacing-gap-xs); - list-style: none; -`; - -const isGroupItem = (item: Item | GroupItem): item is GroupItem => "items" in item; -const isSection = (item: SectionType | Item | GroupItem): item is SectionType => "items" in item && !("label" in item); -const addIdToItems = (items: ContextualMenuPropsType["items"]): (ItemWithId | GroupItemWithId | SectionWithId)[] => { - let accId = 0; - const innerAddIdToItems = ( - items: ContextualMenuPropsType["items"] - ): (ItemWithId | GroupItemWithId | SectionWithId)[] => { - return items.map((item: Item | GroupItem | SectionType) => - isSection(item) - ? ({ ...item, items: innerAddIdToItems(item.items) } as SectionWithId) - : isGroupItem(item) - ? ({ ...item, items: innerAddIdToItems(item.items) } as GroupItemWithId) - : { ...item, id: accId++ } - ); - }; - return innerAddIdToItems(items); -}; - -export const SubMenu = ({ children, id }: SubMenuProps) => ( - - {children} - -); - export default function DxcContextualMenu({ items }: ContextualMenuPropsType) { + const [firstUpdate, setFirstUpdate] = useState(true); const [selectedItemId, setSelectedItemId] = useState(-1); const contextualMenuRef = useRef(null); const itemsWithId = useMemo(() => addIdToItems(items), [items]); const contextValue = useMemo(() => ({ selectedItemId, setSelectedItemId }), [selectedItemId, setSelectedItemId]); - const [firstUpdate, setFirstUpdate] = useState(true); useLayoutEffect(() => { if (selectedItemId !== -1 && firstUpdate) { const contextualMenuEl = contextualMenuRef.current; diff --git a/packages/lib/src/contextual-menu/GroupItem.tsx b/packages/lib/src/contextual-menu/GroupItem.tsx index 95cad49611..ebf2c79f9b 100644 --- a/packages/lib/src/contextual-menu/GroupItem.tsx +++ b/packages/lib/src/contextual-menu/GroupItem.tsx @@ -1,19 +1,13 @@ import { useContext, useMemo, useState, memo, useId } from "react"; import DxcIcon from "../icon/Icon"; -import { SubMenu } from "./ContextualMenu"; +import SubMenu from "./SubMenu"; import ItemAction from "./ItemAction"; import MenuItem from "./MenuItem"; -import { GroupItemProps, ItemWithId } from "./types"; +import { GroupItemProps } from "./types"; import ContextualMenuContext from "./ContextualMenuContext"; +import { isGroupSelected } from "./utils"; -const isGroupSelected = (items: GroupItemProps["items"], selectedItemId?: number): boolean => - items.some((item) => { - if ("items" in item) return isGroupSelected(item.items, selectedItemId); - else if (selectedItemId !== -1) return item.id === selectedItemId; - else return (item as ItemWithId).selectedByDefault; - }); - -const GroupItem = ({ items, ...props }: GroupItemProps) => { +export default function GroupItem({ items, ...props }: GroupItemProps) { const groupMenuId = `group-menu-${useId()}`; const { selectedItemId } = useContext(ContextualMenuContext) ?? {}; const groupSelected = useMemo(() => isGroupSelected(items, selectedItemId), [items, selectedItemId]); @@ -42,5 +36,3 @@ const GroupItem = ({ items, ...props }: GroupItemProps) => { ); }; - -export default memo(GroupItem); diff --git a/packages/lib/src/contextual-menu/ItemAction.tsx b/packages/lib/src/contextual-menu/ItemAction.tsx index f6fdd1707b..642bcd0d50 100644 --- a/packages/lib/src/contextual-menu/ItemAction.tsx +++ b/packages/lib/src/contextual-menu/ItemAction.tsx @@ -8,13 +8,17 @@ const Action = styled.button<{ depthLevel: ItemActionProps["depthLevel"]; selected: ItemActionProps["selected"]; }>` + box-sizing: content-box; border: none; border-radius: var(--border-radius-s); - padding: var(--spacing-padding-xxs) var(--spacing-padding-xxs) var(--spacing-padding-xxs) var(--spacing-padding-xs); + padding: var(--spacing-padding-xxs) var(--spacing-padding-xxs) var(--spacing-padding-xxs) + ${({ depthLevel }) => `calc(var(--spacing-padding-xs) + ${depthLevel} * var(--spacing-padding-l))`}; display: flex; align-items: center; + gap: var(--spacing-gap-m); justify-content: space-between; background-color: ${({ selected }) => (selected ? "var(--color-bg-primary-lighter)" : "transparent")}; + height: var(--height-s); cursor: pointer; overflow: hidden; @@ -22,50 +26,44 @@ const Action = styled.button<{ background-color: ${({ selected }) => selected ? "var(--color-bg-primary-medium)" : "var(--color-bg-neutral-light)"}; } - &:active, - &:focus { - outline: var(--border-width-m) solid var(--border-color-secondary-medium); - outline-offset: -1px; - } &:active { background-color: ${({ selected }) => selected ? "var(--color-bg-primary-medium)" : "var(--color-bg-neutral-light)"}; } &:focus { - ${({ selected }) => selected && `background-color: var(--color-bg-primary-lighter);`}; + outline: var(--border-width-m) var(--border-style-default) var(--border-color-secondary-medium); + outline-offset: -2px; } `; +const Label = styled.span` + display: flex; + align-items: center; + gap: var(--spacing-gap-s); + overflow: hidden; +`; + const Icon = styled.span` display: flex; - font-size: var(--height-xxs); color: var(--color-fg-neutral-dark); - + font-size: var(--height-xxs); svg { height: var(--height-xxs); width: 16px; } `; -const Label = styled.span` - display: flex; - align-items: center; - gap: var(--spacing-gap-s); - overflow: hidden; -`; - const Text = styled.span<{ selected: ItemActionProps["selected"] }>` color: var(--color-fg-neutral-dark); font-family: var(--typography-font-family); font-size: var(--typography-label-m); - font-style: normal; font-weight: ${({ selected }) => (selected ? "var(--typography-label-semibold)" : "var(--typography-label-regular)")}; text-overflow: ellipsis; white-space: nowrap; overflow: hidden; `; -const ItemAction = ({ badge, collapseIcon, icon, label, depthLevel, ...props }: ItemActionProps) => { +export default function ItemAction({ badge, collapseIcon, depthLevel, icon, label, ...props }: ItemActionProps) { const [hasTooltip, setHasTooltip] = useState(false); const modifiedBadge = badge && cloneElement(badge, { size: "small" }); @@ -89,6 +87,4 @@ const ItemAction = ({ badge, collapseIcon, icon, label, depthLevel, ...props }: ); -}; - -export default ItemAction; +} diff --git a/packages/lib/src/contextual-menu/MenuItem.tsx b/packages/lib/src/contextual-menu/MenuItem.tsx index 304ea76ecd..4b3fcfb1c7 100644 --- a/packages/lib/src/contextual-menu/MenuItem.tsx +++ b/packages/lib/src/contextual-menu/MenuItem.tsx @@ -3,20 +3,19 @@ import GroupItem from "./GroupItem"; import SingleItem from "./SingleItem"; import { MenuItemProps } from "./types"; -const StyledMenuItem = styled.li` - display: flex; - flex-direction: column; +const MenuItemContainer = styled.li` + display: grid; gap: var(--spacing-gap-xs); `; -const MenuItem = ({ item, depthLevel = 0 }: MenuItemProps) => ( - - {"items" in item ? ( - - ) : ( - - )} - -); - -export default MenuItem; +export default function MenuItem({ item, depthLevel = 0 }: MenuItemProps) { + return ( + + {"items" in item ? ( + + ) : ( + + )} + + ); +} diff --git a/packages/lib/src/contextual-menu/Section.tsx b/packages/lib/src/contextual-menu/Section.tsx index 6a1004a074..a8a09e47d3 100644 --- a/packages/lib/src/contextual-menu/Section.tsx +++ b/packages/lib/src/contextual-menu/Section.tsx @@ -1,32 +1,30 @@ import styled from "styled-components"; import { DxcInset } from ".."; import DxcDivider from "../divider/Divider"; -import { SubMenu } from "./ContextualMenu"; +import SubMenu from "./SubMenu"; import MenuItem from "./MenuItem"; import { SectionProps } from "./types"; import { useId } from "react"; +const SectionContainer = styled.section` + display: grid; + gap: var(--spacing-gap-xs); +`; + const Title = styled.h2` all: unset; color: var(--color-fg-neutral-dark); font-family: var(--typography-font-family); font-size: var(--typography-label-l); - font-style: normal; font-weight: var(--typography-label-semibold); padding: var(--spacing-padding-xxs); `; -const Sect = styled.section` - display: flex; - flex-direction: column; - gap: var(--spacing-gap-xs); -`; - -const Section = ({ section, index, length }: SectionProps) => { +export default function Section({ index, length, section }: SectionProps) { const id = `section-${useId()}`; return ( - + {section.title && {section.title}} {section.items.map((item, index) => ( @@ -38,8 +36,6 @@ const Section = ({ section, index, length }: SectionProps) => { )} - + ); -}; - -export default Section; +} diff --git a/packages/lib/src/contextual-menu/SingleItem.tsx b/packages/lib/src/contextual-menu/SingleItem.tsx index 447a2c6a41..df86ea61da 100644 --- a/packages/lib/src/contextual-menu/SingleItem.tsx +++ b/packages/lib/src/contextual-menu/SingleItem.tsx @@ -3,7 +3,7 @@ import ItemAction from "./ItemAction"; import { SingleItemProps } from "./types"; import ContextualMenuContext from "./ContextualMenuContext"; -const SingleItem = ({ id, onSelect, selectedByDefault = false, ...props }: SingleItemProps) => { +export default function SingleItem({ id, onSelect, selectedByDefault = false, ...props }: SingleItemProps) { const { selectedItemId, setSelectedItemId } = useContext(ContextualMenuContext) ?? {}; const handleClick = () => { @@ -25,6 +25,4 @@ const SingleItem = ({ id, onSelect, selectedByDefault = false, ...props }: Singl {...props} /> ); -}; - -export default SingleItem; +} diff --git a/packages/lib/src/contextual-menu/SubMenu.tsx b/packages/lib/src/contextual-menu/SubMenu.tsx new file mode 100644 index 0000000000..f7d9269b70 --- /dev/null +++ b/packages/lib/src/contextual-menu/SubMenu.tsx @@ -0,0 +1,18 @@ +import styled from "styled-components"; +import { SubMenuProps } from "./types"; + +const SubMenuContainer = styled.ul` + margin: 0; + padding: 0; + display: grid; + gap: var(--spacing-gap-xs); + list-style: none; +`; + +export default function SubMenu({ children, id }: SubMenuProps) { + return ( + + {children} + + ); +} diff --git a/packages/lib/src/contextual-menu/utils.ts b/packages/lib/src/contextual-menu/utils.ts new file mode 100644 index 0000000000..a77c213b0b --- /dev/null +++ b/packages/lib/src/contextual-menu/utils.ts @@ -0,0 +1,36 @@ +import ContextualMenuPropsType, { + GroupItem, + GroupItemProps, + GroupItemWithId, + Item, + ItemWithId, + Section as SectionType, + SectionWithId, +} from "./types"; + +export const isGroupItem = (item: Item | GroupItem): item is GroupItem => "items" in item; + +export const isSection = (item: SectionType | Item | GroupItem): item is SectionType => "items" in item && !("label" in item); + +export const addIdToItems = (items: ContextualMenuPropsType["items"]): (ItemWithId | GroupItemWithId | SectionWithId)[] => { + let accId = 0; + const innerAddIdToItems = ( + items: ContextualMenuPropsType["items"] + ): (ItemWithId | GroupItemWithId | SectionWithId)[] => { + return items.map((item: Item | GroupItem | SectionType) => + isSection(item) + ? ({ ...item, items: innerAddIdToItems(item.items) } as SectionWithId) + : isGroupItem(item) + ? ({ ...item, items: innerAddIdToItems(item.items) } as GroupItemWithId) + : { ...item, id: accId++ } + ); + }; + return innerAddIdToItems(items); +}; + +export const isGroupSelected = (items: GroupItemProps["items"], selectedItemId?: number): boolean => + items.some((item) => { + if ("items" in item) return isGroupSelected(item.items, selectedItemId); + else if (selectedItemId !== -1) return item.id === selectedItemId; + else return (item as ItemWithId).selectedByDefault; + }); \ No newline at end of file From 44ee986f0f5b393399706034653db9a30c74f321 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20G=C3=B3mez=20Pinta?= <44321109+GomezIvann@users.noreply.github.com> Date: Tue, 4 Mar 2025 12:59:57 +0100 Subject: [PATCH 7/8] ItemAction optimization --- packages/lib/src/contextual-menu/ItemAction.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/lib/src/contextual-menu/ItemAction.tsx b/packages/lib/src/contextual-menu/ItemAction.tsx index 642bcd0d50..083d8bb35f 100644 --- a/packages/lib/src/contextual-menu/ItemAction.tsx +++ b/packages/lib/src/contextual-menu/ItemAction.tsx @@ -1,4 +1,4 @@ -import { cloneElement, MouseEvent, useState } from "react"; +import { cloneElement, memo, MouseEvent, useState } from "react"; import styled from "styled-components"; import { ItemActionProps } from "./types"; import DxcIcon from "../icon/Icon"; @@ -63,7 +63,7 @@ const Text = styled.span<{ selected: ItemActionProps["selected"] }>` overflow: hidden; `; -export default function ItemAction({ badge, collapseIcon, depthLevel, icon, label, ...props }: ItemActionProps) { +export default memo(function ItemAction({ badge, collapseIcon, depthLevel, icon, label, ...props }: ItemActionProps) { const [hasTooltip, setHasTooltip] = useState(false); const modifiedBadge = badge && cloneElement(badge, { size: "small" }); @@ -87,4 +87,4 @@ export default function ItemAction({ badge, collapseIcon, depthLevel, icon, labe ); -} +}); From d42e82e67b568059e88bd8165f1938580f2ba56f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Iv=C3=A1n=20G=C3=B3mez=20Pinta?= <44321109+GomezIvann@users.noreply.github.com> Date: Tue, 4 Mar 2025 13:07:45 +0100 Subject: [PATCH 8/8] Remove empty space --- .../contextual-menu/overview/ContextualMenuOverviewPage.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/apps/website/screens/components/contextual-menu/overview/ContextualMenuOverviewPage.tsx b/apps/website/screens/components/contextual-menu/overview/ContextualMenuOverviewPage.tsx index af4ba6e0b2..b2a4d6dc58 100644 --- a/apps/website/screens/components/contextual-menu/overview/ContextualMenuOverviewPage.tsx +++ b/apps/website/screens/components/contextual-menu/overview/ContextualMenuOverviewPage.tsx @@ -18,7 +18,6 @@ const sections = [ ), }, - { title: "Anatomy", content: (