From 4c1c68fafde37ede3ebaa1f56b109c7e5b3de16a Mon Sep 17 00:00:00 2001 From: Fauzan Naufan Date: Tue, 15 Sep 2026 17:08:27 +0800 Subject: [PATCH 01/25] [MOL-22399][FN] feat: add submenu rows and columns prop types --- src/navbar/types.ts | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/src/navbar/types.ts b/src/navbar/types.ts index 945e15ab93..55faa1bf6f 100644 --- a/src/navbar/types.ts +++ b/src/navbar/types.ts @@ -11,6 +11,20 @@ import type { TypographyLinkProps } from "../typography"; export interface NavItemLinkProps extends NavItemCommonProps { itemType?: "link"; subMenu?: NavItemCommonProps[] | undefined; + /** + * Number of columns to lay `subMenu` out in on desktop, as a grid instead + * of a single vertical list. Must be set together with `subMenuRows` — + * if either is omitted, `subMenu` renders as a standard vertical list. + * + * Has no effect on the mobile drawer, which always renders `subMenu` as + * an expandable vertical list. + */ + subMenuColumns?: number | undefined; + /** + * Number of grid rows of `subMenu` visible on desktop before the panel + * becomes vertically scrollable. See `subMenuColumns`. + */ + subMenuRows?: number | undefined; } /** * Props for a custom component slot navigation item. From 299a2a40f5494b455ef3474c327e26fb7d301b17 Mon Sep 17 00:00:00 2001 From: Fauzan Naufan Date: Tue, 15 Sep 2026 17:10:42 +0800 Subject: [PATCH 02/25] [MOL-22399][FN] feat: build submenugrid internal component --- src/navbar/submenu-grid.styles.ts | 44 ++++++++++++ src/navbar/submenu-grid.tsx | 114 ++++++++++++++++++++++++++++++ 2 files changed, 158 insertions(+) create mode 100644 src/navbar/submenu-grid.styles.ts create mode 100644 src/navbar/submenu-grid.tsx diff --git a/src/navbar/submenu-grid.styles.ts b/src/navbar/submenu-grid.styles.ts new file mode 100644 index 0000000000..6b0a629f7e --- /dev/null +++ b/src/navbar/submenu-grid.styles.ts @@ -0,0 +1,44 @@ +import { css } from "@linaria/core"; + +import { Colour, Radius, Spacing } from "../theme"; + +export const tokens = { + grid: { + columns: "--fds-navbarItems-subMenuGrid-columns", + maxHeight: "--fds-navbarItems-subMenuGrid-maxHeight", + }, +} as const; + +// removes the wrapper from the layout tree so `Menu.Section`'s `
    ` becomes +// the direct grid parent of its `
  • ` children +export const measureWrapper = css` + display: contents; +`; + +export const grid = css` + ${tokens.grid.columns}: initial; + ${tokens.grid.maxHeight}: initial; + + display: grid; + grid-template-columns: repeat(var(${tokens.grid.columns}), minmax(0, 1fr)); + column-gap: ${Spacing["spacing-8"]}; + row-gap: ${Spacing["spacing-4"]}; + + max-height: var(${tokens.grid.maxHeight}); + overflow-y: auto; + + &::-webkit-scrollbar { + width: 14px; + } + + &::-webkit-scrollbar-track { + background: transparent; + } + + &::-webkit-scrollbar-thumb { + background: ${Colour["bg-inverse-subtlest"]}; + border: 5px solid transparent; + border-radius: ${Radius["full"]}; + background-clip: padding-box; + } +`; diff --git a/src/navbar/submenu-grid.tsx b/src/navbar/submenu-grid.tsx new file mode 100644 index 0000000000..617f296376 --- /dev/null +++ b/src/navbar/submenu-grid.tsx @@ -0,0 +1,114 @@ +import { useRef } from "react"; +import { useResizeDetector } from "react-resize-detector"; + +import { Menu as DesktopMenu } from "../menu"; +import { useIsomorphicLayoutEffect } from "../util"; +import * as styles from "./submenu-grid.styles"; +import type { NavItemCommonProps } from "./types"; + +// comfortable minimum per grid column, and the gap used between columns +const SUBMENU_GRID_COLUMN_WIDTH_PX = 383; +const SUBMENU_GRID_COLUMN_GAP_PX = 8; + +/** + * Recommended `Menu.Content` `maxWidth` for a `columns`-wide `SubMenuGrid` — + * the default 24rem panel cap is sized for a single-column list and gets + * cramped once more than 1-2 columns are requested. + */ +export const getSubMenuGridMaxWidth = (columns: number): number => + columns * SUBMENU_GRID_COLUMN_WIDTH_PX + + (columns - 1) * SUBMENU_GRID_COLUMN_GAP_PX; + +interface Props { + items: NavItemCommonProps[]; + columns: number; + rows: number; +} + +/** + * Lays `items` out in a fixed-column CSS grid, capping the visible height to + * `rows` and enabling vertical scroll for the remainder. + * + * Why DOM measurement (not a fixed row height): items line-clamp to 2 lines, + * so row heights vary with label length. We measure the offset of the first + * item past the visible cutoff rather than assume a uniform row height. + * + * Why a wrapper `div` (not a `ref` on `Menu.Section`): `Menu.Section` doesn't + * forward refs, so its rendered `
      ` is read via `firstElementChild` on a + * `display: contents` wrapper instead of changing the shared `Menu` component. + */ +export const SubMenuGrid = ({ + items, + columns, + rows, +}: Props): JSX.Element => { + // ========================================================================= + // CONST, STATE, REF + // ========================================================================= + const wrapperRef = useRef(null); + + // ========================================================================= + // HELPER FUNCTIONS + // ========================================================================= + const applyGridLayout = () => { + const grid = wrapperRef.current + ?.firstElementChild as HTMLElement | null; + if (!grid) return; + + grid.style.setProperty(styles.tokens.grid.columns, String(columns)); + + const visibleCount = rows * columns; + if (items.length <= visibleCount) { + grid.style.removeProperty(styles.tokens.grid.maxHeight); + return; + } + + const boundaryItem = grid.children[visibleCount] as + | HTMLElement + | undefined; + if (!boundaryItem) return; + + const rowGap = parseFloat(getComputedStyle(grid).rowGap || "0"); + const visibleHeight = boundaryItem.offsetTop - rowGap / 2; + + grid.style.setProperty( + styles.tokens.grid.maxHeight, + `${visibleHeight}px` + ); + }; + + // ========================================================================= + // EFFECTS + // ========================================================================= + useIsomorphicLayoutEffect(() => { + applyGridLayout(); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, [items.length, columns, rows]); + + useResizeDetector({ + handleWidth: true, + handleHeight: false, + skipOnMount: true, + refreshMode: "throttle", + targetRef: wrapperRef, + onResize: applyGridLayout, + }); + + // ========================================================================= + // RENDER FUNCTIONS + // ========================================================================= + return ( +
      + + {items.map((item, index) => ( + + {item.children} + + ))} + +
      + ); +}; From d5d6f039c83178b8e58b3d3e19a54ef348f52541 Mon Sep 17 00:00:00 2001 From: Fauzan Naufan Date: Tue, 15 Sep 2026 17:11:17 +0800 Subject: [PATCH 03/25] [MOL-22399][FN] feat: wire submenugrid into navbar items --- src/menu/menu-content.styles.ts | 6 ++++- src/menu/menu-content.tsx | 3 +++ src/menu/types.ts | 6 +++++ src/navbar/navbar-items.tsx | 43 +++++++++++++++++++++++---------- 4 files changed, 44 insertions(+), 14 deletions(-) diff --git a/src/menu/menu-content.styles.ts b/src/menu/menu-content.styles.ts index 5c26d08aa6..12afe632b9 100644 --- a/src/menu/menu-content.styles.ts +++ b/src/menu/menu-content.styles.ts @@ -13,6 +13,7 @@ export const tokens = { panel: { availableWidth: "--fds-internal-menu-panel-availableWidth", maxHeight: "--fds-internal-menu-panel-maxHeight", + maxWidth: "--fds-internal-menu-panel-maxWidth", overflow: "--fds-internal-menu-panel-overflow", xSpacing: "--fds-internal-menu-panel-xSpacing", }, @@ -43,7 +44,10 @@ export const panel = css` } min-width: min(15rem, var(${tokens.panel.availableWidth})); - max-width: min(24rem, var(${tokens.panel.availableWidth})); + max-width: min( + var(${tokens.panel.maxWidth}, 24rem), + var(${tokens.panel.availableWidth}) + ); max-height: var(${tokens.panel.maxHeight}); overflow-y: var(${tokens.panel.overflow}); diff --git a/src/menu/menu-content.tsx b/src/menu/menu-content.tsx index 10d47df3f5..2e86b2b068 100644 --- a/src/menu/menu-content.tsx +++ b/src/menu/menu-content.tsx @@ -23,6 +23,7 @@ export const MenuContent = ({ "data-testid": testId = "menu-content", overflow, maxHeight, + maxWidth, ...otherProps }: MenuContentProps): JSX.Element => { // ============================================================================= @@ -33,6 +34,8 @@ export const MenuContent = ({ useApplyStyle(panelRef, { [styles.tokens.panel.maxHeight]: maxHeight !== undefined ? `${maxHeight}px` : null, + [styles.tokens.panel.maxWidth]: + maxWidth !== undefined ? `${maxWidth}px` : null, [styles.tokens.panel.overflow]: overflow || null, }); // ============================================================================= diff --git a/src/menu/types.ts b/src/menu/types.ts index 0f9c59f391..92d7c3320a 100644 --- a/src/menu/types.ts +++ b/src/menu/types.ts @@ -45,6 +45,12 @@ export interface MenuContentProps | ReactElement | ReactElement[]; "data-testid"?: string | undefined; + /** + * Maximum width of the panel in pixels. + * + * @default 384 (24rem) + */ + maxWidth?: number | undefined; } // @storybookSkipProps diff --git a/src/navbar/navbar-items.tsx b/src/navbar/navbar-items.tsx index abe86eb02f..7b9a74b784 100644 --- a/src/navbar/navbar-items.tsx +++ b/src/navbar/navbar-items.tsx @@ -9,6 +9,7 @@ import type { TypographyWeight } from "../typography"; import { useId } from "../util"; import { Menu as MobileMenu } from "./menu"; import * as styles from "./navbar-items.styles"; +import { getSubMenuGridMaxWidth, SubMenuGrid } from "./submenu-grid"; import type { NavItemCommonProps, NavItemLinkProps, @@ -133,19 +134,30 @@ export const NavbarItems = ({ // ============================================================================= const renderDesktopSubMenu = ( subMenu: NavItemCommonProps[], - subMenuId: string + subMenuId: string, + columns?: number, + rows?: number ) => ( - - - {subMenu.map((item, subIndex) => ( - - {item.children} - - ))} - + + {columns && rows ? ( + + ) : ( + + {subMenu.map((item, subIndex) => ( + + {item.children} + + ))} + + )} ); @@ -276,7 +288,12 @@ export const NavbarItems = ({ { From f80009f9c7836b344a00fc084969db1ad2204c3b Mon Sep 17 00:00:00 2001 From: Fauzan Naufan Date: Tue, 15 Sep 2026 17:20:52 +0800 Subject: [PATCH 04/25] [MOL-22399][FN] test: unit test for navbar submenu grid --- src/navbar/navbar-items.tsx | 9 ++++- tests/jest-setup.ts | 16 ++++++++ tests/navbar/navbar.spec.tsx | 76 ++++++++++++++++++++++++++++++++++++ 3 files changed, 100 insertions(+), 1 deletion(-) diff --git a/src/navbar/navbar-items.tsx b/src/navbar/navbar-items.tsx index 7b9a74b784..08f59f6c31 100644 --- a/src/navbar/navbar-items.tsx +++ b/src/navbar/navbar-items.tsx @@ -170,7 +170,14 @@ export const NavbarItems = ({ ); const renderLinkItem = (item: NavItemLinkProps, index: number) => { - const { children, options, subMenu, ...otherItemAttrs } = item; + const { + children, + options, + subMenu, + subMenuColumns: _subMenuColumns, + subMenuRows: _subMenuRows, + ...otherItemAttrs + } = item; const hasSubMenu = !!subMenu?.length; diff --git a/tests/jest-setup.ts b/tests/jest-setup.ts index b7c980f84c..511a66f807 100644 --- a/tests/jest-setup.ts +++ b/tests/jest-setup.ts @@ -8,6 +8,22 @@ if (typeof globalThis.PointerEvent === "undefined") { (globalThis as any).PointerEvent = MouseEvent; } +// Polyfill ResizeObserver for jsdom (used by react-resize-detector, e.g. SubMenuGrid) +if (typeof globalThis.ResizeObserver === "undefined") { + // eslint-disable-next-line @typescript-eslint/no-explicit-any -- globalThis lacks ResizeObserver type in jsdom + (globalThis as any).ResizeObserver = class { + public observe() { + // noop for jsdom + } + public unobserve() { + // noop for jsdom + } + public disconnect() { + // noop for jsdom + } + }; +} + const getFallbackThemeContext = (): ThemeContextValue => ({ theme: "lifesg", mode: "light", diff --git a/tests/navbar/navbar.spec.tsx b/tests/navbar/navbar.spec.tsx index a4ee8a2148..54684b6f48 100644 --- a/tests/navbar/navbar.spec.tsx +++ b/tests/navbar/navbar.spec.tsx @@ -1,6 +1,7 @@ import { render, screen } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; import { Navbar } from "src/navbar"; +import * as subMenuGridStyles from "src/navbar/submenu-grid.styles"; describe("Navbar", () => { describe("Basic functions", () => { @@ -178,6 +179,57 @@ describe("Navbar", () => { ); }); }); + + describe("Submenu grid", () => { + it("should render all subMenu item labels even when the visible cutoff is exceeded", async () => { + const user = userEvent.setup(); + render(); + + await user.click(screen.getByTestId("link__1")); + + for (const label of MOCK_SUBMENU_LABELS) { + expect(screen.getByText(label)).toBeInTheDocument(); + } + }); + + it("should apply the grid layout when subMenuColumns and subMenuRows are both set", async () => { + const user = userEvent.setup(); + render(); + + await user.click(screen.getByTestId("link__1")); + + expect( + document.body.getElementsByClassName(subMenuGridStyles.grid) + ).toHaveLength(1); + }); + + it("should fall back to the vertical list when only one of subMenuColumns/subMenuRows is set", async () => { + const user = userEvent.setup(); + render( + + ); + + await user.click(screen.getByTestId("link__1")); + + for (const label of MOCK_SUBMENU_LABELS) { + expect(screen.getByText(label)).toBeInTheDocument(); + } + expect( + document.body.getElementsByClassName(subMenuGridStyles.grid) + ).toHaveLength(0); + }); + }); }); // ============================================================================= @@ -210,3 +262,27 @@ function MOCK_COLLAPSIBLE_BUTTON() { args: { children: "Uncollapsible" }, }; } + +function MOCK_SUBMENU_ITEMS() { + return [ + { id: "sub-1", children: "Sub item 1", href: "#" }, + { id: "sub-2", children: "Sub item 2", href: "#" }, + { id: "sub-3", children: "Sub item 3", href: "#" }, + { id: "sub-4", children: "Sub item 4", href: "#" }, + { id: "sub-5", children: "Sub item 5", href: "#" }, + ]; +} + +const MOCK_SUBMENU_LABELS = MOCK_SUBMENU_ITEMS().map((item) => item.children); + +function MOCK_GRID_ITEMS() { + return [ + { + id: "guides", + children: "Guides", + subMenuColumns: 2, + subMenuRows: 2, + subMenu: MOCK_SUBMENU_ITEMS(), + }, + ]; +} From 6a570ec6be5c442a4da3965275cecd3bab8d7f65 Mon Sep 17 00:00:00 2001 From: Fauzan Naufan Date: Tue, 15 Sep 2026 17:25:54 +0800 Subject: [PATCH 05/25] [MOL-22399][FN] feat: add story for sub menu grid --- stories/navbar/navbar.stories.tsx | 273 ++++++++++++++++++++++++++++++ 1 file changed, 273 insertions(+) diff --git a/stories/navbar/navbar.stories.tsx b/stories/navbar/navbar.stories.tsx index 96dd96443c..d4d966e62e 100644 --- a/stories/navbar/navbar.stories.tsx +++ b/stories/navbar/navbar.stories.tsx @@ -388,6 +388,279 @@ export const SubMenu: StoryObj = { }, }; +export const SubMenuGrid: StoryObj = { + render: (_args) => { + const [selected, setSelected] = useState("lifesg1"); + return ( + { + setSelected((item as NavItemLinkProps).id); + }} + /> + ); + }, +}; + export const SecondaryBranding: StoryObj = { render: (_args) => { return ( From 0ef1afb4e198d683b4b5b163727a7792f051e6b3 Mon Sep 17 00:00:00 2001 From: Fauzan Naufan Date: Thu, 17 Sep 2026 10:31:04 +0800 Subject: [PATCH 06/25] [MOL-22399][FN] test: add e2e for navbar sumenu grid --- .../src/app/components/navbar/common.ts | 19 +++++++++ .../components/navbar/submenu-grid.e2e.tsx | 16 ++++++++ .../Navbar-Submenu-Grid-Open--state.png | Bin 0 -> 26594 bytes ...beyond-the-visible-grid-rows--scrolled.png | Bin 0 -> 26655 bytes .../components/navbar/navbar.e2e.spec.ts | 37 ++++++++++++++++++ 5 files changed, 72 insertions(+) create mode 100644 e2e/nextjs-app/src/app/components/navbar/submenu-grid.e2e.tsx create mode 100644 e2e/tests/components/navbar/__screenshots__/chromium/Navbar-Submenu-Grid-Open--state.png create mode 100644 e2e/tests/components/navbar/__screenshots__/chromium/Navbar-Submenu-Grid-Scroll-reveals-items-beyond-the-visible-grid-rows--scrolled.png diff --git a/e2e/nextjs-app/src/app/components/navbar/common.ts b/e2e/nextjs-app/src/app/components/navbar/common.ts index 1e8936f1a1..d3b2b9a622 100644 --- a/e2e/nextjs-app/src/app/components/navbar/common.ts +++ b/e2e/nextjs-app/src/app/components/navbar/common.ts @@ -72,3 +72,22 @@ export const navItemsWithSubmenu: NavItemProps[] = [ ], }, ]; + +export const navItemsWithSubmenuGrid: NavItemProps[] = [ + { + id: "home", + children: "Home", + href: "https://www.life.gov.sg", + }, + { + id: "guides", + children: "Guides", + subMenuColumns: 3, + subMenuRows: 3, + subMenu: Array.from({ length: 12 }, (_, index) => ({ + id: `guides-item-${index + 1}`, + children: `Guides item ${index + 1}`, + href: "https://www.life.gov.sg", + })), + }, +]; diff --git a/e2e/nextjs-app/src/app/components/navbar/submenu-grid.e2e.tsx b/e2e/nextjs-app/src/app/components/navbar/submenu-grid.e2e.tsx new file mode 100644 index 0000000000..0ea9f12c82 --- /dev/null +++ b/e2e/nextjs-app/src/app/components/navbar/submenu-grid.e2e.tsx @@ -0,0 +1,16 @@ +"use client"; + +import { Navbar } from "@lifesg/react-design-system/navbar"; + +import { downloadActionButtons, navItemsWithSubmenuGrid } from "./common"; + +export default function Story() { + return ( + {}} + /> + ); +} diff --git a/e2e/tests/components/navbar/__screenshots__/chromium/Navbar-Submenu-Grid-Open--state.png b/e2e/tests/components/navbar/__screenshots__/chromium/Navbar-Submenu-Grid-Open--state.png new file mode 100644 index 0000000000000000000000000000000000000000..4cd1151ad17716d4bf99c883084e51052f827c9d GIT binary patch literal 26594 zcmd43XIPWV7YB%m;+eEBfRF3(I+y#}DtB1ZQu~a@d#z9y4}i8wKtPc+0z=d-+OW z@^r;R&}qr~Pm{+V39^o4_GY09+gS_v=&;A!Qf#aS4ux*20sp*WF z+{NijccNtCGvw#kc+X8RG6cTyL}$63#7^ve?}+xtg~hDXR`)b`~Kt!{y**Cr%&Gg)80LM z>iM7c)usOi*#DbFSy55-IMCn!;-4NC8%_8^J&gy^a-yj;ii)hMF|1#9__wEB58m8Z zBG6=gVv;8uJ%gdj20s7O@y&GMucBLEFt{6401;@yv&>{dO}T;+y@lPZ|9x=V)AymF z&OWKySRzQCm7IUFLK{n^hU%~djYa$sGYbn=Mh9)4(4J_qp>Y}MKU>DaK?_7BuHgv; z>3{p1rrq7$uQ*tsb2vBW&}>;90U#cWe|v^FRAhz;$DU=OK76j-FTefSFP2w!-#!?% zz{0)2RVRXG9OLlNf2Gv+(4fv8Ecxv^C&*xGwPbM`}mRtWNwk{W~{XUxwJsESl3J{FvhO`E%gQm$OrE{d`Cj@AInWLfi3;_ zWoCm}ZKTKPy-wE$tir2F-}<&RRON15gWBRh-%80^)sGMJ19c}j&+UxW>+>~D@`jjC zpkFW!Mt8ik)d>plRr$SH4#~^H?U~$G<*FfSzP}fAg2u+`GYm^AYf+x-+>V+y04mwt=I{N+o_G#P~Ri)_Yd-X}1YS5YzHvM%A6KHWmx zy`nyTCp^^2)YKgFEOB$jvQ*wZ$z#^Iw8`#y$I&50sOY`KX=GNcC zffTl;cLB#2AJnHno>-sj3w>cwsx?-|Xjrzyf0$+08Y()U)AUrPwY){eyDcfx$~;_c zJwc?%%v-eo&G7U#Pww1et)JQjoNbtG(4sjF-?1gyyn>3E+YniFW2%CL3wd7If=;-)Q8n6*@_%?7Pc=m8gHl8m$J+S*7PRX*Qt(FvZlMO?b zldE$a?@zSf87V&8sf(ogRBlDcU|GyluDXt>5Z(#vRMfrZY`9@>I7czW9$kC;#;grFVS<8y!~ERH5JHg7St4%wQJ*Og)MAaAOBcDyEMJ*>yFgE^6yTc}-%upgYCpPp?&7#arB4k$l=jvcMY=6K&r0Ag-&eUKY1)*BO^Le@oI z$ajP*G+xp|9FwK3=p!>bY9-&lH1Lh)&Q$+a`eXsm)yrxN(*Z?!F^a|govu$857@Rl zkT!p%uk?#6;y=K9J$unC;_5CQ_q4bJu}b&+NlNZ*6ls2z>{f7|&Vt-Kmohu##}=?$l6K zHZl+SIkQ9j6j{C`p${oWJoONY5-QDQhuCenqC69;D$t>R$uMTtmJcq)nD-<(Xt% zrK#u)aHycQz>n)x$rZ@v)`?CVD;u}JvJ|Bs-IPY;o&8cz@BES(>XjUTg~Nk_Da#UKxX&&O0qdad+vptWXW1esJNI zxQq@Ah*sjYhSlz*_X-`CU&O5nL&}?ahh>{LCfw!;o( z)a*YB?bzhaYJgjxH)~!{)j5zu?e!hGG~B$1Lsc&}2ZygCIrt_s!BTm&zVYew6>IR; zF`mO=rJN7$6?^{)1#4CzuLG!a!$hCHD4ms?*|scPH>zgp;Gbu`GcyzGh`T^)8UI_qYvrXxiPys03PM7E)21~_`#b_L?ejnjVyaiRBV-Z%)URyYkF6-WemduSc z99(|AvXzd>*6v(aP#YHf@q^P@arM^0!hlZw)ejCAA8@YOX>l_SmWF8%9$|S4unoLsnu%$1H`Q28h0FxyY-bdr?Z;Yj0HMbmir2=`eBpM=!TYaj;9pGg zPW0xrL$%)1q``KOfAG{7PEPEY&AYb!AlMyEN=GZ2psH8i>k3t7W%n3zutDd0#|(=X<`uJ2%* zi=(@WC!YbC-tScq6@7l~1cQ#{y4<^-cT_~Jf|;VwbKztPm(Uo$4S4x&b@%hCEUyg@ z`s(3cyx`vf4J`G6m|U@)rRg`<2u+7*>jz43Xb4H38-@HPd;5;_LGs>Gw~)--Co`^| zI;XC3hY{HL%ptt4vFyalkF|SnM?!^oFW;07zrh)K3ujGq_H9n%TufOiEZ~6SZAoW$ z1*XB6OEq~j&CfkvZcr-I(^|sy*zZf&_-^BY$sC{4*O@)4KF??^g7(jYhetD9m|G>P zY?2_-(jsmEIe1_N7jHN9NJlwFwdqR}vs~-DWNW>b7JXitUP9!<12sd<)?a{+FFJL> zEgC&hfjyUUkTc_v$XMO6iv`7~fdhQNn;$moyYYHEjj~FhgL>bM{Xu9O=Hb^iT& zRaD!>4XQ(tyj<@17sPcue2LR>rT~4>r5s}X08y^oG2qo!s5TnBhE3^$HD;^{I7mWs zZLP11K!eA2tv&Mev0Mk2C7;5M3<%(oUV zFC@p#_XyF!h2?5w$PJIu$ImsrOn#@aV-;FdBIXI0M>LlAMuD8yjExo+{97YMG zs*)4UTehekYw*6nkCp#^S>V-P zeyZY5d>+D;RB<|m*62A~@7D3L`Ff2*VAzmWoGU4MwZ*{=vBA+ zb>+HxF*1NpyXn^IY*s1?0Uz^F6qQnpt#*6T>$h~>wmxw(bg1m-+AXlUw_g7(2lqSE zu%BuexyR)bilVQO*vOSmjED&1_2^ENsg)<%8uy?vxHjo(gk6@z(jc#X>(Ko>Tr`L>&JGpyvF4C%zLRvq~_{!U`9di7BJ9KjLBRx!Ep>SqSqafR`qb%*ZV?1uU zc4JUNfuIm;UC5RQ2n@pwN4w?X0K5Cgh?EW*5I?DA{FMK0{1w@EL{^6PAcP zhV5c%wuOqUjOX-Wpm-wl;zO-6e@ZbCY*OTe5fEAeeD&r&UqMcYpyOPZQmjrcA&Rx6tRx(34+=deeP z-E=s(x@jwtf_ECy%WQFQ={pw2D77Jp&6KLj+=j4@caMBSpc@S{9;J7J?}GXpx@bp# zr)|x}1;=w8i0tS2LxA3s)&xqSAwW#K8D(f@yIeZPDe6~_O=->V!2i(o_V(-{N9*mm zP34sEYnbdMcwZp^)PkQK0;RmeDs8~E8)Bl^v0+=7iu#@Hi{4k_Ae|S}DOjP$ROS_S?I8-uW---<+4(`6gWv(wN8t;rc#Mg;^0ov}00|8*S)bs6CGv|} z?DjAk4m;$z`4c_b4%MEo{6ZeaCeofDo*I^i-pAxrqQ-&0@~=#V7lqh%+8|3-4j!y7 zda@(rbW>5)&krhYCU*%T^i!U6hHWnfj{TEApyU{ojcTe^M9f)Ln4RiAy&;}^}k~r(wu>f4mct&w<|aC1_G((ZC?Mf zEhgArV&klyv^m;r;}vDMz95Q zK^IOZfvO08v#S^efLH#d5onWNBFHPf#S`~oiqHL<6~k@kgHW#3ZQAeM=DHt8pLR8^ zl|AkxS)VU8Lm`pel}KX6PI;bX{V&+}LIXzvzM!f31Tnh3BW{~ zH>OJJn;Tn^TdQ9LrXbaO2h!5EhO{f+*7tM1qxkj}QwF7XtBe|pKY4|^C8sxprN+4< z#%q=fPER){X$z+8>d8uDOS4d3wk_6oOHY3j-|6({>rcdLg2uxyCJ2rWn47nT-d^h# z`iG7{4uDLLJ`* z&EnMqKlBoeks7z~xoOj=!cSt>e0_Fa2{zk(GqKZ)Tv-R{2)R&Cyy)5NfvoS0vkevG zxA#hy;IY>2g0{fm*9J>ETh?|LStlO4XX#d`ZEXo=U5HEBW{*xfxG>jsLOJ({+OO9C zW7y6URBcC$44WCquAoqhCft!Yy&Tvd0mP9(b=l==g(7 zAwS!nevW-}s{6sKSraS5e45>E`0@uLyzGieFAN#W7jq7i@SYPheSJP1XT~AN$lzOL z=()yUO}?%zW2LEn{VPO#-m-ThmRA;Tz1zVj)%8nsFb7^S>6Yh|t^j*{RG<~t4%Biz zDVh#czFtuq_*eb-Z8x)4uM%V;nqTSVI7c~d4)=?Ke7t8aWyp+Uj0cKDT9gKL=4`iT z%Cx^!^YiboMcbvugdYyrwO^ZiX(sp7s@`k#Czqt%Y<<{q?+<<@=;9_&Di$^9Yv_S% zF;4O;Aj0*cr$%M6xQC|tfk+JVgEsmqfq#HYBl?1sf_Ytx#uzXy`a<9<6^rJAiFZ!MmJ0?RQv6{ z4!T*N2!MG2FzZ|z&r+Ow$#wDdW?>?|wSfU+3lC$&X$gg>vYm86)%_jnMQ??{Jr6*uGOEYOVETMsNK#_(%w)*v$@NDf zqu|<^x5H2#fN2$lGt+s~?6ClIt2I}~mv;?6>W`h?z~hAk1uv=R=u3pkfwZGZ6Q~2) zx&eYbhu8GXT=Tqy$w|#(e=4an&P1i8{Yc1WVIB6p#F9n6n|sP_mqu53yP7_RPWzupqRb$SwaZ-Vd@L;UXV>kM?$rt%wO|#)j+@t_>hH-JNPi7; zBhB2Dovbue(moERyrV2Z0=0ydu=*VtVA(ucN8_hhpk3{oBS~R=vlb}v*gHpQWq1KA zJdHh;VPerkkp0H1Lrkf$usq%m_$vTd@jv`|NaX((Z&qP}K=$4~`Sa*Ev!Z`^^6!e!eny!Bg`^qOIb8ee2iH1GKrL%eVoPkd3iY-zBei2|22s)8WF>VVjdR zt*sM#dwb>O<-*3VUw4J!)WPD{0mZ|vKY7uU7O=Hvgkx?zkXEsPchVzqiFCw3;;*a+ zI#pj+81vkI?pwNX?#kC=2$TtiDqBf$mFT}is*%4(&c<;1D)YB?&CK&&smKT@p(#%S z{!G-ymVTAR+|-o!^5rrH6sL~eA(Q#imibT?KHKy6y77!7oEWM1Ilsu|%j3}B%GfZc zm7bJ@goJ^MNmo=WpgDl>)zXsO3+CFR&Hgy0)g0`;^U{PpxIW&+r<&Ym*e-_+6b0A> z7<&>ZaF`}}I#00uu%JJ?D_H_9OL8fnZNsz&8sx3ZvjLPaOH};7yu-d?IDkb|GgLt} zBzMZg%)ZKw9%E16n1T?Sb@rcWX=#C|o}_VWZv^)@^`K3Q8b>W1%v4L`BO3vP=%!}d zT81_)X)2alTU)m=u>lOm0%x}*_B1M+i}zN_8;=q0opA{z`mw~XRpx0`0}RZo!@~%F z*y8H{NR9lhwLNge@$6P@pL9)idpmS}1UHzgDH-}}Vxp1$5N?KXerH9ZcZfn|)s$Lk zffKpUf`}@VWXAd(y4}#E#UAUW-zIQ1>Ti$=QPbn^Z_qW9Lg2=uO>q3#(=~PK(fKtb5~*Z- zNsC95e6%-MWt&w8-kM96FqjM5>v#Xu);^n3`SRsUf_Z#=_61(vz<$MvcwzPNj*bU5 zUZ%3`H)Pf&jL@Q*8=+ZKlIROHhtBRm>Z3n{-^G5n&ClWzxU*bZayg*Auhduq^OUJH z=E-$Uj+p~FiE4+;)nGtNUJFP@D@N7O+7SI?jtY$)6h#{l}h^m?V@2&S(h!IF6Rmu1yD{E(p ziM5T?28I~0y(m6sT%u;z5&{8nvh@pJ3`3Fa1KGLF=ulGv5vK0!=GCIt|J!ril(ml3 zDBCoX##BnEfyTNo0RcBwNWQLWHTPXL<*cp$esSEi*a>zoooSb9S|@8 z%JTb8$4WR{Sjl5@d!b{ib#K6Jw3tg2a6ce_cyUq2Y+8LQpt*XY$@f8>xuOZQbd#Ef zBNZwp+eifw5x`Q@m4i|CBk*hNQQo_A!E9{jejnM+MzFd}w2i#bT=KeoI1o?rBgNnN zGvze|)3MBjf=0KXWc6-*jygE(nBsz;z^PTPn=XN#^b7(56gdy;1_9QMUbgtg?j+Hq zq$IFieraiGe*WJQF8#xCvfcEa%A%s>l{EXrIEcc{o4bVT&(y$Pb1ksf40u|^{?|FgN*Bx zOJeX38Air#p(I)MJ%9qAXqBdzLSaHAvE8$8CdNBkp=gg(*4TO&6gn$yy_(c)H|n)& zIcktMZK&Zy#c-cn5r_|uz-cDU?SvK?^fq#JC*_1QzSYctliFal-Qd8su?O3Fp^J&) zPN0dZqj^4deCLYOUt9xukObn81b2l-Xp_27yQ9u)-ErL3$?#?mtlj((0hb4BhcTet zAjCHQ4!wa~61P=evD#mfOQkG!uIs2b38Yj@EKk^D-+$U~nnH`k&BQbvVxvgPy)uLb zizf^EhQ_1L1u?@aYZ>;;==;jMXkoIwpatg*p#r%k3|dz@^9-gmfKo*5q}rq;;d0M4 zzm@ODk*{Mwt%@hshO z4WiYGDiwLaA<2L;@U#-j(>%cZ@D?OqL>dW4=I7HNVgi5UwsJ9}y|N!QIno!U8LZ~` zWXIs7Re6(qVOOBHXI_hFJK4*Zq^O{zS$mX6OUe#rM6qjg9`G~;aK-2XthWa&A;VpJ z#c$`$m$>}f`I@$RYk@FO;JkMVZJUKoh@9d6Yd`2(UgfM`FT8O!$Qu0a8<0A@1b3rQ zaCvxVYM@Hs##rr30ok_tk&pshy3kAvx3>ngwg1N--Gc4uk$U|%EvkgNLfK9Q&-#_G zrdq!#t^;O|L#vsdIB$*p6bnmJ<|ShXFXw^PHgR4v+q-MaIvC0UwwCiHEc)rVPd|Mk4=(ULjo z#LVM^jt6a8q*NSZcNB?XWB^t}F|E_BBiO{KC(()$wX2Cp@@bwvfM|D4m#? zflzMcr?BmVm)wb0rqn>V_LtsS$CTe0gHfwpuRbJc@*j-;5{b_=8{HzOwl#*3`8Mz^ zxl|#6!`)Kg_SSC7=g2f{kpbskIL%g(7cv(>BLPw1HQR}E{3hmf-_GANs1%&p7{_45 zV_=KtVv#aL7+iTv+=Iyw@ zHgYo|j;~?Da+_>eq%60vz44;^Q3bNE&sVY_n$rlYip|=lkl&~{hq_WelgnkL?u5;d zB#EN#>iUM{_0NT<>21rs1GH0C09|$qjfKLK4*Ht8xkaq^l6o3ZL3HKU=aNR{hC+Y- zrc_ybwUDV9PT_1hKr#_{t{+COZ?+4NGY6cSuM7zeJ|co;iPH$sQdet|4D^sdVw%vP zCRxRf{nV+3cC*plfgE*=hYK_Q0vQxzKjr;LK%Ep&0=#qI_PL!^(|}F-hwRL%IP1(b z0mqwt`h!pGZj8G~MBD7hWw;Es(jOCkWw9cWa`%r5C8jg#kJ6vYR$|j! z+1Nlz!e88izrM7~VsCrUJ;kd?18B;g4EGkr!!<3+56`udtuR>=kmaGQ7-7wA z1V6D#Xi2GC?Znd0t-Jsktpm(6TVj-n7|D;5o^SGk`t}LjPu@#wxTK!?GnZcxqc&S<7rEt z0foBR?t~N&(@ac*(d}N+GpY=rmN*Tpi}n~|@hO@XGhm}0G{mKxU?<{~Fn~z6PJ-)C zfxm@mm$Z-v@-f=MfKRr^4v6y6$zfl$)pLSW{G0FNPUB?mu`-vXxyda1N?GXsY~2&^ zYR?;%8EGPs_~FBcFJHcRp7gnU_Zv6tu<)R_v6>Pn|aWCCS zvvw~lQ~R(T*)>|CrE@?ipF;*tZltyS=wcoahib|Sg>X-2CcSpQKJSLXJ44EML4|jA zYYT)UlyBMC^QN`C_lhk%=6el-2i@-(*)MGnFOXR4=hiTM{^)makksud*92YZn~FC- zr@qb((_L%b{8SoY#lxT0FlLgP-cobppupP4mM0M1JrIj$Ww(pYGC}9|(c&II%{(e7 ztcNV6@9Xq?Gj^-P$1|j}ZUI{4Jiv~3tF=!JHu(pxV2c?m^F)XQR`c0gf0v}#2w(0w z70qYxd$gx{4(W4*@P=_{WJ2WG+!p()y-K+E5mtC*EJ8M~OMcu+5wsp4n1daX5P7z= z)=ZL&^L%OdxfwTHJs}pOvGZ-a(OgtB>=$)~4xONKw~mj7&cN0@kOH~rBu5$5wPH5k3P&E<5Q>PO%@@u2%qgt6N?nj4ry91w|s^X6&p z_qjNi6NKQ5uM@DKCEH^v2K~zxt{Z=4QF;JwX?r9|Lyn5J5zxPawqmH$WDejc74H&1 zc4dy-dD6Uex9_uosFiIi!$K2E4)Rd2QNnj~Vf*Ac4a-r2B1k_2s}wtriEiNZxEx8>iRNlR z8M&Cgeatg~h_4+#g}oE7-JIOn?WsJqt0cH30u7pqYq6UN-wlAT0dV^*{!^SCe|sw{ zf1uU9-7+{M#h_MXMxX$;(moVU{?9`4kKn6$$No`;Ib-|59`-r>3Vz%C_6~53=B;@C zW#HlU99+Ls;KaMkaB&Il2{)#%0&SBJyl)1x!^yqlA6f!w@8F4BpDwy^m$%s(806rz zPUuXm6Eo2h>PBC})p0;G`Oj%BK9Qc2+JPSEE;URt zR(?vCLvKGfjq7R%LF2GMp9XE$uK2ZiF9+c(E*yw>kHC0$C3CAebK{-cvz{FqEz0Kq zn7oojDXp6a;&Q;u8$~PqBLL8DT%u1$F=#+sEHi4MRx?2|Rs+4DZGT<-MNxHHH$w6B z=>j3u*7d#&W0Xa{eI8zQm96^{I4AD&K*G4Za0M3r)!y9f7W0-@QZMM_6Z~e6HR%%S zLS(~N3Ic5P{2(W4e7!M#>r2^-9ae|9 z9J1(h-?<^)#V-P-Je?_M_aOws*Y=_ks0YG>Se*II2eS{W(8*FWw-(dTK6l_V-8A^? zgvf@r`+#X)C46=#rXK+Fv2z%zQB!1ryp0e`(`3xgZi(2?sTc!PezUsc%xJ9goaWEM zy*5NKR&L@@b)?D(+0v4g8IgjFR>m^2)wWmW0grI-y0!%nsI3)k=hjcjl!r&Y8JrL? zx2FZ4GpZ{mZ9-B4<-JE{0}0<`y|+mXA`sfpJl1W zC8U)TCk$%SP{-sTQ+I?yKzek9GN*e;$CzrBH3nJfXBQ58mz(spTDW9{sDjv# z`??cYv;&ta+#6BLX`u>Xh}`DFA}(=V@@PJ&cDZ0(OfxrmbJZsH{3}S2bc*H zXJlm*)fJGT2OoPN8}((TQ?oZuGQIsa*JMw#yFgRf#{CkjQh1qBy&AkB=Cf%znzDX$ z-=%mkZb%)z;lkOxYak?|vQK2`-(Z9p292w@<$L~^=ZS97`ODXA*-gWSEU_WzK2~)w zswn6^>_e>|O-}Y$Dkmt;od85CX5QqU%YbI>B{V2Zu-AvF`wZ=~Z)G1pKXhp!Yc>?z zAl7#iqm=Ei>xC&I_7qt~`kd<+-G4o5AD{0$-+CGhr2a@$J|M2ihuLu-{N&Xq$IC$E{3Q^~WiRwmd_d>6&y8G>E3p{Pu0| z5nUcNq935w#w-I#-FTrtCV6VUcWbP)!N6qNNdnpJC`974u(wO)7}l|DK#MEsdZKZEs78 zhG4cc6lR0ziya2uXD2_Z`1#N%f=S<5HQe=0C&rZcDnN;%l7JP*2Xm3^QCwcXXhUIA z?)gra_SgN4cibExnlIL7wRha%29wg2LB0{)q+~Dq@R=|&)&OcIsmA@yK65ZZ_zPr< zA|MvibYnZTsip0B>=NSBHaR?HR!D^1Jd6#n+cs~XNV*`=ZsnifW#g^sbALv|Z%u5e zl}so%e1jt-M`MZN16R~Ng@mL8Q5Dr9l|p`_lb_$2&$hF=z)7SS?rcpcZoZ}KthZrZ zRY9?i6BRC@hRxvzIBx5;FZO+wg_5EPAD_cfFvs3}$CWpvZ2{koU!O-=6}B+MC-7#~ zfNeyj*Xx(olOn!|T+OB*CYlZ58#P>`t_Hc#mV&q+MiSjq_aTEhk=>uJsM~A-R--@2 zN1yRsJc_uOFquU+{e0|(6Zo>fkjgV5RW14meQ|x78}Rk!B=i`r zN8mF)rbGQ%%ot#Q8leZs2pQh&>dFLjgtgP2(|Bif68C9tJz81Q%}XXdgMY5A@c~!m zah+av=^rw$8eO=~-`C<-S9_N3DDQG`G~Pe`el29!`f~9X_m3Ah`A$lv?%t{Mb$0yO zxP7hYLnHQh5p2-q845A#Y$`$D_F&+t>pkxljT5aZ4JH#md=vZu^M!h zs7xiOy>U;AO>nUwx^h68x}E^&{U;27q37*Spj57Jp0JQtAP&E3#S%lGzUgo4@3t0m z*Uz~L(A=(J_e?S?E3L4gJ9HGqo=A=!OQqv{sP_728FD!#_UHo~aVzYEBCEHJPvhOB zkoYrgP|7duNEERW6z*XyFh{bhgvRf_0ZDZW(amPrQ zZkdw=Ifp-d@7IaBz>>Lg6EV=zPET^opb*h0i}GfrtqP)Ya(KFvIA8%vU2+G zVZlfLJIOMH^|t7@^@#$oDV#S)s&l-9T7V5+Siof3K3prKHT z4bVnj<(rE9-F~3RcW!+n~o8R+FDA>dz)N=ah4yxNFe_CI>R&L;^Uy?CGKhe+!X&!Y!rlVv-O zJRqu98(RHM0>a7lT^+P@nkM$NtSt&A3BGU`o4M32WskI~sax_0^3sh63{Hox-j>A> zz6XieZ8wgN69-b>TBn)n1x8S*)aYoo&ViNw?8<_-Z-09hOIbH;s$(;xLT><$hhGmWFml$EpUg}ba5IFx_uxPGq2 z4f+HzQoU{Ui><#p_Q=w90_?m=QO3G9rcG#Q+bs!^zpmNvZHfO2GoypgZLcUh{5VA# zq_LBRI$B|F0MKouNQpyKBiLuSz-8=5TV{r_ zk&#H)HUlwGrXF0~|FSzl!XVc&+pE84Ki9AEy2gy8Ykarjgo2sr&6cy}jh^L_bJ*kO zt*AX=oHx^DUvY)y`q0Eda}aZiPu?JX6ak)FUmXoQnN>D8amk~Kf&*qvulPHlc+&nz z<`tkolxiuv_HOjBb< zSGRXA1ShIvB_cI8H1s|tB@i1R6ZiYOL;ax}-N9sT(z|64nhg&)h8`uh3wVAe|{DN?8bI7)y7Xb`EU;D0k zISWZ=QE9Ww%cSmo(arOg563is$Ep&?jpVnP(CF^Tc-hk zKW%E}f&!M7TN$P5K6k?|=H^2Ep;CVqoS(F|H^D+XJbb5HP~2~jQ<;vghn#zFhB=V4 zx3lw18+KI-dx(t}kau(vy`bsaEey6%xQ*%eoJ5)jx^c|1ab3_&$T)i`y(OZ-w))R)IFHW>6unc8Zn5x?llPwNNz@8yuTw;LNc50AOum`Nga z`WqwDG?Z_<>AP@*gsek%_TTf_?{c2w(OdvH{>*n7IAEr75UeP4%$I@@Ls=i zf)F@)O{pAhWn{!89rMEIqzU)Qao74n?F8gPw9wck_yk@n=_|p|&d%P@(B9CFynZ$C zbvLtAr%(sv)iS#mE%XNS1yE^j=zf+1-}6MsAlE~~A6bf=4*zvN$sv@xa2Veuq}e^U zwhD}MMG5FgL0;s50%+yw@73VP%4_T{LB(Badu+h!lZRsaQzG{*#iv7& z^*`eLk2cr@FSZY#^cmrvyYRmfF`2%<7e(g1^{M5E6z|QNnH8uTw}_S)YS9g zS0?_K13@jywPWqW`u!P$<^OqM-v4(w458;=&CbmHF>)WdMs|B%KUZq6)5*KCqlNj? zaFz|5g{SiHByIwpgDqQ^t8o{JY$>(^qaHXerZ`tZ=cX>cPRm%!>r`6M90i zprOlD5gF7RHo;NKp)ifcC{C7QgIw@TN75^Ixx z!D1fQyN^HQa1KoHJ2-0oj=X1=D`F>@Ai)~O@-3E{_8mDrjig2!kIO^bS;JZp@CnwB z5fSABJX*r2q(sgcx_y^dl!Xpo&#;T%Q7=~wOMV)N9*lan>q+4U+S?jqCvV@c;$wML zc}3oO40w?m3{elozy+E}t1A2NBE0SKQOE&Q`Yh$;rWbExX_QadwZB;IdaoRPCfLw4 z&24QbhJq6!_BmK)Noe1?%!u&tux$LdOUxO3rCY@JTAm1UB|O^EJ;&0PxAXvGcG!;F5&DY_|16kSM27QsZ$1TwGL}tM}2}eD7m$9tztpst- z20Qe1IQR_9U2eD5)(xQzYxaqHXqTVq-$RW|Wz2{9nY^;DIu-O{o>{w@kfzPt)<=cI zV-w0Mz^93{A1A|kn7Kbx)OePPf`U?L@b+(R7R}Z5h2h{GVTTj@TAEEvI~$5oArD$@ zon%&ZVqYy)o*gi?fA{S!_C5>SD`?`A(=0YYVf81&FR?DL8iNDe@$~QsSh*iSZKVf_pUr+ykLKA zyNR^&?r>FYb~xpQj9uO(o(ms7VoAT(PP=v=T=L&pjbEO;LHhJYN1|xigK>a;sHv^q zP?-BM`%}}`?N#{;B}y+sw!9y)VAYt(Jo%v2AALV3RV|~Q+V-gSS}wUak!IFZSNzbVQdk({F=QoZzJb#2UE@P?lxti494&|)QOb?Mh7 zid>wFAFlP(=DpROohg^U&FpNxAyJaAWTJT$G+xp7G?wG*ugA9Owlg|V#S>u={*z2) zVm^!4=`Ew3Vl^HZhs^h|NCcM@AJ%uhFDE{O<_%t!@Y$Lapp0)jp_G&ZdC$GbsT)uj~ zcXx);Y7*e;M!imtW8=tHPijTZ)+IzebpzBVDpgkU3#VCH)T?Sgj*fq zyx9AtLU-*Su&}WN^jOt2{=9QbLv7~ocGbOu{i6Dl^d(gc`O>PUI{IUp?K9ucI1ib= zNBXm_XY_h8Ojh{2MeVJSg;47%Te%gNB3$aas3kH4H*iF9AGF^pAvD>8-ahId2)p)8 zR$&FcI5IL)P*EDKujFNJiu82|ZGZb@;Mdcv4fBtR5;96ka)nQUV&e3vrn`HoogC)P zS5_+IqfZ?~ZA-d#>tlv99B-9>9XZWUYLi!eJe;_grSt{S>O)_QZ=+5Yt<70>vHS4K zof2djy4mSiHX`^sA?>qJ>8I5y>GOuVd3yEaxsC#yc$$YnA1K4x?tQZNnVhtoJEnv> zwyrPIiYel&UQ+M$xRuka>mv-$)bKRayQK^A{S#WYl%O-o>hUk@695_12z@j;E~R z3HecZoYww`^C=%*!xK!Q>-jHyneL1~>&7#YOq;%uT5G%V&$WMw5C&x&>F1}dT3A_BOS$ZGc~-qWqSm@=bRaNNu|Yc;QDj;mfM7P{#C5moWBUR$;#tp_Y@E=lkOg zM=zV;8`9SiZm%1<>Opgf;{|dpcDDT^_?N`jJBR);cfwK6lg?b$`al=s;e_`KHc zaaGhMsGoaS&a00ZJ)1M<_N+vEKfK<_obWY$cXU+g)^LX8MTqYafkBvT&Cvxt$&tG@ z<68bmr(68`vPAb6mzD0-{gIZ86HQN;j`fxP`pL2BzSV-)cR;~SnwQt&9Tv0^&8?ud@*1lG(bFDa| z!R3pLO{&MR=RhLi`1X*#@|=VSmX} z-?+1!XCA-qnsZ)sEZq0st@SGyFN$ti%X3#$%W3E_GR2Gxnmm2^^75DPG-Ev9`2zD@ z4&DA5ZJn;$X@pxfH~K>!h-yrIoi!@w=HlLJ;;T^9*RyoLm4LBuG*ZL+V2JcG3oXz@ zqqWc$*0np)GEUx@&r7*@St@}*>byT)lXXcqq*QB-HTbU!ui|)^A;k9f!#-Vu8;|X> zE?Hkr+yAwEH>XYB+U}Xr%9<(uD_iP`mxqD7VtgViG~9L7`a;n72&vRyIrDnaHGb)r zTB)n0g5f?ETdf_+gtd>&x5X6Ae-1!2)cW$%pXfH=Uc5+IbE+%kXK>Ct{*i4OCy!eQ z#gNk6EacCJGqrG!%7cEgtKvv}dv+Xz&h?ua*{>bj|M?5y?(x@OIp?!>n?ANpbOzO5 zJtOI_ARqurE|w`rpL!?`%+hpnvWgh>8h^3DS1g@fH!gP%c-3M3DJB%bds?*_G@3Xa z4WgcYny70KM+|HIB6myt%WXxcg+l8$(5{}w+G0VqnWl%XI(!u`h5W&#?EB=G21m1Q zwb=L+n7>AK3Hh_I?a=ALx94nHd>0<9ZwTxN@m{$in9>fosuYj8%j((zFD-q{{685V zuB(%@3UjE)&z+A!rt^UlXIbtJroeVqp5^4}{2%R|cT`i^_QwN`ghx^{N74GWPh{wk7*=rDmXc2sL)dMEwUzZygZ0_cZe5&as*>9eF9CEzoDVl2x zT_9IK(G@k{ck*OKMvJNAr&kEMdb&L_;77FyZ)9+w3MC$*-=($?qj|fU=;ZX)69F1i z6b9CjvJ4LK`x=%OW%v2G6V8guC>5k5u|VYv3ttJCR4LY&Sl<+;RB~Tkq^ul^d6YbJ z+CHXg>Crurr`E@O#*6QSB$2<19gV~I7F8D`<%C_V%$0BVoVzs1bKo@7GB-lrewN`k06@wM#Ac-~Z@f{=C$6wKN?!@b8GidbscaKW1 zy%)PSnqVsoEiH^aFt+c*$I?5>cD_~B544%KRd%}%m*9~{nosdJ2m39!Uy{STFt2j) z@?dl=trU&NKf8K_lNCg_-6Qd9UdglMK^;a}DF+zQKXTyU1hu1m<6<}WcdtUZxHPkL z#I(|83)+UF-J{iCh$OrYQwV&S$>yEW?=Y+_|BhC^cppXqaGOM7XWpH48$+dkS~AkI!dz;J%B=)e6d6C9 zfP|Rm`p2d3?AnW`q88mrn3m-G3Aq;eH?GdlZdB#VL`#zjsJ|9OT z$#hbZP_Bcen(VmKoK0-N6$zz52_7qRECmN+IMl`B-AwED#O!e(G0S@2=}bvi6PQlSK7DragC~%$ z(4$z_TN_UyYQ0&82BpTaWQ0P)c?Fm}*@hFV8!QDa5BV_G8MJyo9~3fN2&f{m_<_ZZ zWC}Z$pYLXf-w&Gq40K{~AJaZ=x*E4n>~03jJw9Y(5L{PZPF?ve=M3W5Egg^f^W8QP z$*wK{k^=f4=*E@k6c3DbC6cKliU)5vBL*2xIF1b7VRXx#blzh;Jh^;Xxfc4zAx9|d znbli0b{{Z7qsiuRCMS5g>6x>{wJ?KF<7vT_QhnB4*I0lvBpGTMW}Y>KHqv+4>py~4 zcjV-dE+#qRm2iI72knT#i%(#W`kf;U?Th@(DYV`GWEa0s*=OX8`49X|-3_aYI2`9A zjyoFKcQv%d-FuOiwW33L!`YDGjj5se)`n0_v53oF*TFuVaS>|kO~|KLPY};(yG}Re zrqLGFEh+J@Mq{j%$_*@Ris}!v1|@8c#iwa3I!dguX{GevMOl=D77Vz22fA=_+q#bF z2ae(IC#9tvA_@)+Y#0-Hb96267cxeIlz-_!%=C4rvD)Hnug$ z6p>nc-LB3^HNWl@aK_(jfVUuDR5GR2UGy9@$FJ61TEeh2PqNw9byC4L``#0W>&;Q4 z)kJytDcorZF)^6L>2hgswo{vjp(wXKFj>kg{8RTjx9vL;aY|WrZKip7?gGMV1Z{3s zcH|JN&=za$o^7Mf#v@CY-N|R{|Dno9@MI~=m>}4YO$tnx%II^ zvyRTL){Gdg`ejC76!9Sn*UY3*^1ft`9OQZ#Sf}Z@M=G}Q%Sc4wlzz^HBd3IK?R%}K z8D%HWcD-g!ooab}HKnZi2p`udM_V_&FTU(DR@zgPizQrrC9-hVZm>1Gk^eecH`#!x zTV;nhn*8dtZ2J#FFt&dLh1#wDO6oX#mhOK)&q<5>nGnq}6;jR% zPt0|cjFu~h#HI4NFEAW*@ZO*YYM8viD;qy4HNQ|$VE7`Tf+jKfL8A71U-BdZF>Nq8!c8fVt zf08km2^00RuMYJxr)BR>Ei#^coiRTYKdiAM>`+a9z90)|4w1P;<%z>AEJlOR5RAhI zEk%IbQq#?rG!?(l<6!}B<<#2iD zN=<+}a2&DD!48It&={>w5n`-WJjVBu0(7xI(bj!d)xDM3O?q~e1-)}y(6R)MPKpWj z)#!^d!u(epyu)lT&?0BZYgW8IpzN#l>{%MBL0Z0>rv-UcYx2<9^ zzAZp1aB?=B-}Z!_9_2DtYBs;O;`T~LMY!n~$DQPYZNplYgJ%m#?mk8{GfXEtE$j2L zQs;;ku8Yk{Pnuh5ngS8AMUTq!gq6_-^-bmPlnUN<4@;+E$&U&T+d>@ye%{(lL|otp#Sw9%oTS8zvCw3P#dzwn znc>6)DK)Y5RW${2v3`o1%XS*aChFZ2WEdwD>)#0i9=CYys7%P-R_a2V|k|)*41F@he5a(+k ze-fAz{pbK^G2~qr(zI7+ZHI?}sC`3+nue-|Yc+YN_MU+nrj3}uPJ8|fvUzyd$KugH zC91~KhjL5dy_U6S9fONjDM6JG&yn{eYo!3!7QMg6Hw^8r6oXz{BFs#f8x3uM(EIG= z=o4l=uyZow^T`>9sHe28M>;)syxQh|Wt5A`1f?HW?0r1PNsjx_A)l1OIsJ=qx}6H; zAavxm{)#dujp{)O7kq!0ia(@d=>w`4dSrDG% zw$x(jzU?bjU`Mz%oL#rGz5EsY!Z|2G$Vb=PJ6aKrlOEkw|CQSSTqcJ19nHe^cTeL5 zuW+(a!T2`z=XXZGSg^fz+1?Xm@f`ZD;#pYsj?(e*j}dozj(|Okf_stS>J~HJ+`nSC zy1DjCv{c20UsS7y{tFdrMU(GDNeDldo?p45GuP!5- zcy)5d`#Q6q^l{l*j$W}N*7+?g>D-$k+A;|y|0aPfHnb`*Q$#w;@@Wh6CBG`V>1>;E z>uMBugQ~BOZ`&im@RPcrR{Opwdv?@V!uYcdg0T*9c_Y{0_H9i2B-q9h7T(>Hq z!M|61JjIimX%`o7bLA&;Q;AkIBRudZ8n_jG%YTG}_8W53J7HX!N6e)X;;ec5%SKqW z-c44JR^}06fWQTf#V;r``doy?FRKN>A+msqi6sVf7Dp7nOGX5(zZD4cg!~tRny1+$ z3RyD?j(Nu{B5f>N0~V(@6(W><#Hl*@_|uV#CCKGUijPkC-QFdFv;=VG%1Z~X6n?oA zYHZ&iHFMQdN>A5chI){<*;@i11;Eme4!xQi4VmLn4%Dg0 zE~^l@C&)AjxZj%u#OF`xU>30Iaw~o+*d$tU(_$GnC@fcGYoha^?8Uoa4-bzwm<3U3 zIhF^5I6!{}p5HGJ`!gy5Vo_LVY@0U_DSz%LO6K{saJGT|+C19iYxE8{djrus@zcHC zF%4N3Dk?ajWBS)sZZ-_7WzU`m^UjF?FMzzCh-slS+kxz%}FCWtB<}0VDfk?#t zDo~I(5dUKO^jJ#x`+ushm;L&Cy{vx$9sZDK4!8aPi!!rT2&VDY$_g#_f}c4MjhvgB z7hga)t)C>HzVg5mI2kEj9HdgI=8yGN${(Ao1JPDM?#f!LC<+ab-AokPLsGH^B#*Go z_Jm*y*Jp%ABJX~pxTD~X9ZEHP;#mqKk!$1gGwd}tcdda#omn27@D8b#mT`7-a|15k zR-vq^RGNthQDygjN@lRjafS!15Hu*MsK&Fnxvk?pg_&B(n+b>PpD0iE|bE;^Y$vFvS4fs_3K>HWc$ zPfrabC8UlG49XxrV>8Jbj6X7>cyh;_#dd6Y?U@ura#l{+zl!tdkuZ5#&B`7<`Ge?B z9L(#$4y?rQ-qAR+brd8!5pv=OsY5JGOJET94A%GG*z^a1_AyYfI-WUcz_UOUIIs!6 z;9#1fcW{Cplfo#s^usm0s_(nR0NLFq}LFN^b&fg35WtxkA+?ZrB^9|00~G_ zdP_nLO=<`&gg`=)8_zrMmpk+SaPQp9WM(JqWVhccdp*xu?_cR@aa`cLz{JGF@#632 zhD=On7;jIFoIAy6o(R8WW@5U?^y2wbfn#Xpoo5G>ls8YX2g&rMF=V=RM-X&u-4XIV^4 zmv1n!{As^FVLJP#{X3G0{ZISPDduZ`+8bw1J^a%?xp3O{PaARNT>GDvN%Ud_V=GKd zhW{O4B#~)$a&r9y)7h#1r-R9xSpRmsN^7F(>_U&zCN4Vq>}Yn(zrQ(>Yxs@bc3O}) zW9xii;s@$SPDK9OVfIeupR&g)DmnDHD#wK(7H@5`2})T38BpZ;Z+|;X7=?-3s#pBjK-<~L z;CS&W%D=~UaB*(13{c6$CUo-e*VgUeSB+aP{pUp1+sGbFRa0#(AvjawJFs^R9ZF5x zy}SA6oFgWbkZk_deh_L%Kb->Y-9b=JqB%I6hwjm7q$yc7TzkIhvL-RNOK7nNG&CS*ysL=i*I;1%G8)T3-I&sT&ft4 zv*~XQA061B*P&l0WWmCY-)!7m6(1hVZgxpCIk@?9g`Bax%!79q84VzxZHn`cT<)w- zY3a}88VCsjXJ|~6(B;-FaEk!e=Re;*%xTh*Xf0P(1gRuvTAD$W78AX`ngZ1Zn?6kc zw8J8nzWXX(#sIz9=B*uJ#4(a}ep7_;BzMKvjm&z;dbt(N%Sm-edK-D#`N!Kb z-K+^-n~-pPuW%?k-(Qa(drVESNXsZszr9U+tCJ_#=#at}Q55sGUat<#!jIWu%Werg z9*{b;@bU2()y|tS^qo|)tMJ+y;O&XC8Gwf$`|(#A*-Y*K_$!J^X=>W=ad*Be0d;j) zn#{P_rhoyf7lR_o`z}h`B?KNHcA__Ko(=shDOwkunEc9U$Ijh4e@N94oN@UY@1>yQ zB=`!T(l}0acvwyL7tq>(H*oZoXL&jLn7&@cJo**LkYbQ_UKx{owh}7nu!5RWTuh3+ zGP=vLF-VQF1j6;M`2$;;K~#b8KK zzaeG+=FOXSKKfO2Yu263r42aV!R*U+!amgBW8yKA6AoEupMi|FlHdn{;~xfW;Qozp z!-G#d>4MGS8y=MQ)tWt@I$lr3g{mTVEX*+`SZ8VAe01uIX(=E5p(M14kQ@xDywYCQ zwP%#;D#|^hwWwLX*6|^2dInT}`vGVzL6O(0;V`3XJvMf|%UNz)xh5R-Y4e!ve0(l# zLbJDNHYsq_DGLpVU%D$kX(t*={2*ob-ks|nAe^Os-g{0tqLG92yCCtG%T-$+Os$X9>?X4<9svgr< zp<|De;Iu;Vyffm8fp#~1P|d;Gs#&2;i)wV5@88qTibc_Zjlojop6CMgUlcdN>S5$z z4=?wsu)t&bZUQn##T*wBWKyjthXP@XxouPrqf567P_Voq$Vy#Ja9)D>!SS2@X|$H_ zh#Sy}lo1@SDoAib@%C17o$PIIHkta`F7hXi z-dXG}Fh@a|K52C)Cn=C&k^eEsyU?!c&`XBWDbdgqhlTHs&Sq5yhBCX@woQL7eM<7w z`U+|xp%?Gllef3b!r`#R?1D>bG*jK|>AIu$5J~QA>eApRnKaJe%33jMj+V$% z?y!aQs_Gl0opiGK^@>^LWz4m5VALB;(?7S@n4;7>-%d$ZT6zO*DJ|pCI`7$Px3S-= zH-ZLRVB6f6e3tR${`El2ZGkcDb-xFV#ND^f69S4xu;q-dE?!Q3%X%MN7Tc`~tF-EA z$L%0q&&E<6^BPA=flK(L14!te)lS6{c#&fS()r#?DB`#v+N$9sLxHF>WJOMDM!6bW z>lLz9-n{k0*3_YD>DqRfIX{n}l8d$Ur`R5E@5^=DD4P07G5Y~6C zK_nHB=jP$!oP{r`gy8jyMAUeUwuKwLrrYiE@+|%89T%sO2)htpp!)ANb%OA90RT8~ zd$XE8{k;@Ut_&UGibt&GZA2o4EJ(fb16J;msvj4H4!a-Gw0UQ}7cL=j(VH~dNum}+ zVSQ*Mg1>wS8C);A2?cnG^FWdl_T6@vggG%NwER#AwcPZ2(-(siaBeB$iC$Y5>oNGu*oDS&WeC0|BYYwW2H~OQb06apBo>IVwz^ zQ*es+Qo8BQ7s_{iP^mSETQ{y{z zNK^Osppeqj*XWf8~2Nfte-+Ym2KI;x6uU$+;#z zu$2g}lUu~MB^%X+RJg#Ghh}gUhfk*j<8|{C9TSvP_Ii!vwx7(WiG5JVxT;^$RT$f57*&t&r6MY0S9B zEeRPBz5(UF&;MjNoKmm1o33o(v?}K3+>zkES*JdsIXPw*@18K8XYr_dBWBbh6KfC| z*Ijn)mQXHa{#w+vI$P9H#wK>+6@GiLrcisQBULXmDxDBf=eIK-}l#P-*U=8g9!BLhol zEgzE9?uLY7mArOu7uF-5QKHf#K~;?q|L>4E1OGm-3sNgV#B94HM7B8rGZ>H-VG>sYs@XAU+fsT(~5KQMCK^x)lwZPh4t%YxIDoOcJXM@L=Z8*-e#phn(mH(EbJ>5c1+KlZDkms~e z`UQT{FNaiB*%6lgA*4Did_^_+T2@_N-d*3fy;(6SGH&L?(dUW#HbyqYP*6?8;NnIA}iln}Qkj9%muzkbAu zOQMMeKX-6ghPK&{kqEb_j9An^U;oTPU32r$0Z!4wJgU0@a;%qOZ-ubVSyB#gqkq1# zlb?TxY3$9rtZng&)Qgyw)~)LfKNUD~HYqVnC9vsEAFD7IQDOU{22EVV4mKAHMZkERml$)IA>7&Tp_v!9Adnk z{8ZlVkSyp!X#~w3ZBDPPBH(U)W5oW#?v>+GD?&|i-v~rpcE)XpZ`7cXcorYrkMSD39=| zU;8=2{DEH6y4UPG_hLp1Lfg2lO!p3SS`fi1r0&L*79sZFPcL5U*ZnURfE7c?XCE*^ z$&pCa0FIjP?rDT~J8dL1w1ro^|6VgRV8ZR}IUR-E@ZJg(UTOu)ws+_B_QBx5Ex> ze7c(;>jt==5_jC*jVsZ3k`vywmHx!X&fTr8;d$k`r1R+Jshw*L_e$1#b-ceP|3vYz zdvaP-25aItE5hvxm(i~*)qhT&=k8e_xa#Ej(>w~XJU3OCb#Ll>01n+5y{_O)!*4>6 z%#xk!+Sqq36ks!yCH9bi`!b{l%~33XMXcno4DDF!IoJ|hJ?aoQZ#{FyQisr;mZ5j1 zYc*ugWuZ`+#s0p3bZ=|kI5VZamNXdVMNIce$3o#*u0(xb^YGU}BKGz{KpoWzA#nR_w3th-j2-@RcU4}%Vay-WerA{BQ zmsh%4Ajq!+Mll?NF~w~|#RlhhlR5Fu^b4a$=wNoX-OGTHUo07CDQeQ+eTETrR;pDd zo!-2{3152vvIj{5Tii-I>SP8cux`wVh(fPt#?=h1QA0NUr(3r9j()J&U~FbK;JPq+ z_5@tr0U}TL; zitb#FV{gAU%)Ky8YsNXci>lzYJiEqodU~Q#)R7-JeXr<2&UTSyWq?GpZEoOU;i%>} z`(MU}lx)l^e6Sf&H(oGcw#@-8{&AP+?E~GHRt-=-lxhdHqRc)$-i+p0ZKT zj%nhphkK<(3+NT9jZ*a`BdCDcNE^VV0nSv3GPbK?zj9W+|Hc+4mMP`E4_?li1l6o` z@7&Pn?%_?{=7e}rze*i0c8V8|j`;G;)Bw*uKqDHod8yX@8A8HE01BBCaA4T`SueQ{ zPWjfjb8lrgHCQIivT#jBCbYHjHMM8X$urw#Wl<;Lvd0s$x%>WVwI-TF zU=6c7N=d~$r=v!vi!PTBky?6seqX+`-|^*k_}l8*`9u*Uq|Q_Z`c)stSCPENq?Rlr zQjS#Jkn!-2nehl^S7(9PKBoT8($Ye6@T~!m0ln{&H@hO(Vw|-hb6*p$D>&9Dn1?Ny zt>hBcP8adb47W>Y-BMcORvZGhLfjH}Atz7qPex7L)(0U$C4b-?UIx;!mG}8~*twdR zm*s*-W7;$sCx1_ql?Y4Pcp_54e-iZe_2je?bFT{QWo+|s>q8RgnFD*)L)DOuvJ9V_ z05N8LAl&o;)D>SKjIfo`qz4`9I39EM3Ut10j=#+Nz`X)tzHxXefG#@6Ussxqj2BGvC#FkzLt>-c5+ zM#$=z#(S^2IJ+Nj8u)vwfwaw@Z+<|Yp4i%DXPTYCQut83y)rf@$n()aw(p{~ ze=sslBA?RY0-qovUf8KY{HU!(c0Ga!=KIb=Ud4+N8_xcUpZLNjC->@j#nZ>ac04=Z zDo|V}?r6g3snTzC_zJ__TQZ}v;;Z2QoWBXjh)L>f?3UC=j>;7CH`YV6N^65h3p&|y zLsvgw+~1C9JyrmXdJvPDXXf%?Vw2x(M!9SVhIlhI+W4r=1@k=%62@-!n-JD~jCY7Z1a z0#uU*%ZTv{gw)6?dRaXesRS)bP&{j z#UbrwALCK4OC)Q;l0W)?k$7chW(EXSE3Eq~jYe72eXl^$0^0SVWo;yzc~PV1`h}A_ z^|Oy`Efre>R|hIb%h5w#YD(!awUnkO87+I?n)Iq4_M}YAMYp_Wpb3}PQgwmIK&PK8 z^9mtNWqyQIVe0yjyFAPfEWwzy-oC-Ifz!su28+cCsJTH>9P>!?^(H((_~; zWDI6FSK9Hg43H9MuUg}H?B~vP?N$%#N52p_sC01)v+89*+&9Hdc8Ru%y&m6f*qG&~ z*PJx;k+fhgeSnW|UGAhG(g8{QE=BIuP8$}S zDHPkRp#<^`wYqO?2_wEG(Dw>7egikmhsDjq51{T1uF0I#?FGak_yq$<$}Ozsi2M)m zT+pJPPq97oFX|l8_&=e{|Anc)%rH-4(zJ~Kpz2Ijs^zHZ%9YapS5WqUC;7j|!v8-F z5D~g_vep#`4Ws=U^+T5_FJv;FI4~*|s5wzyV+_cUDIv@Sy4>0Y$JYGF?zFk8&Nc%s)ev@5! z6>mhm>Tc={CV9nh@f^&TLBdNxEj?B{O4n^|_8HhV7}KY}JvglV#DUP!7RO*|4VJ#4nk<-pP?H-QUXQ zkjTxQGY!JfS=-u)JS9;#cNJF71A#|B$8C472Sn++lsNs!$(^^Q{Mnm#0P!7@N8MCh zT-*c{NyynbefDge_I^BYK-qgCfT$X+&TPG4p50 zV5F6kSJJzHfPi>jHR$1%#i%ZgM)MSLYnV1Qnkd^5rtOA~BEA5sTLNRgJ5YY*o#+>D zklsW`Zz6fKgC3MFn@p^S-X%;`6#>%{^Fr~m+V;;JNW(IJ&fHpqvA>FMrO%}xjFqYRU`zsAL-x+Yhp%*pmf~C=gR97SI}N#I zs6*|b2~uuotJd6zOC2hlW-<5Sb{{hEzB0Jca>RL}q;aN#f%6PihMLrOuA!|Oz~Q|V zIPP%(%O>JzmKLyUI~XI}2pIF*{STeg#>(8p@8*uP)IHD1$zx`y`{I3xd)s&<8}G4R z?p7Fn5mzpC?GZSEK*vH+LJGDNYF{RR9yl~M8<>^($*QvatP>6d^lp)y4|O<|8#IQS zcDE{WxvS%iC@C+gskHv$F~1EDL((&E{yD*X(hVly?wT41f~$lj2`UHn3NEh>WXRZe z#im+taB$Gc7^Et>q#ku27`E3fR(&#hOorn$^}L3@RZd_qJ5zPeGmVvbVZI~wQkaPe z_UqEG*GIm9vB7JfMUA341@BIe+WPqMis5s>aKNPVKzfIw7)}gn97yY@kUwOe_u^3| zP3KLN`Oa)mY09Fu+xi;Htx-{|j`XTPI<3wf=vtq<_vqS5aW|zYRP)N8B_EidUbqWt zYuE!LDLDjUlHiOQ{iH4cx1WtUDBF`2$2$wd`OltAIpDvJXpwg;G zZR9kTW8qBgBuw_D%nv=x;CVT>!`t$D*CzHtOtOGs%5{gSgMM0oYF8OT#YVBdr)040 z<_s6d>h*-SNRmo2b}ytJNPrQ0lXJqM^x9T%avSvf3^<@|LVZ_1cqvJv&>dZQw7|={ z*|p+uj!Qf}JaKzLgsVy+q(qD#VXyT@8;#pJ72fPIW4cbpGxP!hnpa(OZ`j4jQ5%WH z@jK-etAoY4WzxURwg+X#R4P(}2Ot z6{L+SEMx%B|Dkcd(k8J>Eo)xkWHllt8M)G(r$7Bj{??*q^?q`)V0r0||4L*e%d;4_ zFxgY#JsB4W(NJhZFg;j9-qvy;5k%c@1jbO@H1fU)%7sxsz6Z_CAi3xX;Vf4d?iTCA zAOhPMAQT_AxVU%|UQ|@1$x%PFGMuMY-80?S*H={$bhNw3xW&Yjo3?E!ZCkFW?86(` z#OM$@j#7N2n=`#Lx)YixAPTQ2tEs_1rv&`KwsJ5rwafdGKe3!gs(3588UE6LV_DWT zZr|hY>4|I+ZYFv85K;1vhRn&s;W7HH^dC{3XUXTS;bir1d4r*A6@@O#;YP;mV)mWxWGp%War>M?QxYFM|$KeB~9E+Vg}gwzjn6t+dZ3G-?;@#`0VHa;q> z=dLr`!a`a5{+iF;Iw&+4)`~k%WxiP&E4<}m zJ&-U_|NHN#BOYTsnGy-0zL67Q1?)7+82UMxtj?#hXExzVanZ`f*(!(Q#aQw88RWy; zQQ;b>)iwJ5`1A}tLvb^N(n{X{0UfphzoxiKN&i#`B?m~bOm6mr@q=N6cob%W6tc6>QiYe#Z`@qIEkdA~egJ>f3nJ+sPkF|_ z`J*7aysU0-VLNonsHdcsOSzb8_%1kwf_p1*@2D~_Q6ON85Mw6LLfup5;iw&;Xc6(? z_2RQrusT@%{_&vJJgkvp62DcIA>qBwO=8t+>!3$7t1gA1uq;~8mePF{=T{{3EH^J1 zS8`MS2m=Y;J=!z`FFT_gixMq_WLzT1L&w;rVWdcx)Oe>h7Xlby_u-2}6%azVrTD~6 z>vIWFQRLyw#%iINw>W5UHSN%yTJJm*9<(sI2{lGg8z{(2^`Y5Ak?2mnq3}81nKq0* zKVE*}q!~>2@!oDJ9t)VzO_2|U!_j{_q^eb$C@_~m{>{r5US)kqqdagXRdR=Rhu zX{8}E6}&Y$>ZZ)_zm((QJosWX{|S}Ku$+VjcVIA`N&@gs!a(y3Yg$++(yX^d?-aI3 zd;LCeLhx}3L^ix|^hh^%Oj2}eW^O#0ue=;JIqOz1JO~S7zqSzAPt;1zr6W(K_kBl4 zR^>-JI~h)ga_2Aj+$Ba_!!zDE@b%!7r}2;MibpxVUtK!;4km6-mCF=L{AFe}6@8qs z=$1S9^3_ZE6^X2r8rQe4-Z*?5lP*r-{k%01zL5L@oH)uC|m6>@~%)H&Amj< z)A50_RIIe`h+tuKh4|wu#CRkxb(NVRlm=#0NGWkZSKW(m9J-!FfGev5^&hcc?dzrJ zZwVK);O;Ju-GBmydKI~lpKE6e0#q%P;0a!T+tGI5HYjUYL}uv7==rM29F|CP-H*l7WW}21YWvG zWzDWZgg&=c4jI9N-&TytK5l)MIE#hNDLdh*QDG?mHu~1}99r7^cp0cn#uK8tf~yNn z-VnOB9niXjBi+Xhg@y0;TVjqOTwT^;Lz7swpw;P77Oy7P-(w2y9=YAKz8(#ISn8^b z(p(!jdRA_LvX~vmRX&^3bC@))2yR~hig45m)gh2bO%;Ap&-{rm;8)>Jt_fV)?C$9W ziM@k^grp=1F){b65m9g6K#n?v8vqDYcYE1rp;oo|heA!@8tluLFUaG;vH26HU#a3& z*1Y}0!=S4XRN>=X2A(-~=-TdynlQe4qD$ROJEGFma`8TUiQoAiq&B(-UDs-wGb|ho zytTo~QLG<-xHV_h;Mo6OalCgoK};**Y3Dl_flVR$o&t*DfEdvgX};^mS!Tfj8Zy{_fYb)Qr#G+IC)% zcf$1arhnU3p40nj?r~p#Xy%mwbX2^lDt5ZeVXceUL6z*(EpyXbrFZ{zS0`-LV!F-8 zc(rg91`Ylxg&SB+)KYDcvN!X6RigP;)qAb152;J-j|7nPT3e78*M@|+soX+vAGaFI zsKYFBgq>R&Y08koALnr@Ik%^|b`J?SS%grWnQl(kMb3LS4PI;+Z9 z;pbggv|4F({5uyW=BqTf?*n`fZUB9}h-Dvvis&5jx@WZ}ELd#<)e1bwkb6aM_a6Mx z1|0B9yFV;&ae&wOf$NH!zL%8ovm6=<`ULXdTGvQHaa_dLNgz z`*dzsU^3yYA0n;c;K^1ej%&)YjID#pfv4 z9WO+2Sr;E29ldrGcYT2r&kfuE)e*(oqIW#Zi11Kmzy?c?SLn<0r2slR?;4uEvlp}U zIY*<4n?dHn0AuPn8r=x>Zbs=PQZFC?%?o5)IrG)|s9p6}%Q4O7)UEnU;>&M6wO;B@ zkCg1D`c|6?U*|59O-XH`Z7AKiCtab~(ypo7v-~s!zr4&oRwK^Mcw!57~E#yBCAi z;>onH3vt!MW!H~z<0hxl^pSRO1C|Ll+J>62PvfUdp=5mJRhDQjffdP$6cJMHC6-gH z*slacaQ(KWK^yGg_ZLe%zL3g6qaD84&8XXfOiBB~0zvOl$2q=BTQ?hEID91mac^N= zX%_GauH;vs2GZ-QKc<7{<}g>V0YWntz*7Y@>vE>9qkoxUY~L)?T>Wg{|BUl<9hVK9VMJGY&Yf3)zh;WRx-=IeS@ezBNmk(gy!I|Dv1h0AJ ze=|ltSJ7{imvDgFXT)a<*-NEHoolAnjYea^3h>#dZIbgZBaHXKdrxq8ciY? z${U7PZTjmD9;$ilQ=)JeSdvg>%#+#&!ie9;G20MQdl_aPLOwG%XW)>lhuGVGY9qK) zd54+=zuTSx$r)EsQJG+`m_Q?sX=@XalB~nbO28Z{2heDFx%}{D`LJ1@>-E3F5UWk( z>EY0bOhBdce0fDq;HT{>cM3E(3Rz8@oMF|!-+SuQo3mJfdlOATt3Q8Hd8_s-m2FV_ z@TU{-sakYzOW|Cp`+0r!e<0|#NF&fXv@>E=UZ)ZVmlem|Uqg|K*J-gAC_eW+lZ?uR zqWFL@{PUJh{s7Bjf-%%#=47#KZrKCvU9|aQ*u})*@Z#_nEFfF#(kXA4zbKE8!iW;j z{g=c)K_&i&lOOKGFRdg2pO&vAjzU%mi)mZAJUU@@({pB%GyJ|%(Y<15!xK8Pnyojy z`LU#gtg>uV=;6mc@cxyVzU-tbpyLc9bny9Oja(d0Oi^+$6je!De;8& zqN=!`-e;^MipgOz1v>3b?*Oy9no`%|_v?DjQ}NtqIb~*5bYkmn0hd=0Y6e!oN=QRa z)#yV&Kh4a``B>c2IsmK@K}Sc+8r*Ct|asm(NyYFE0? z7qrW%n8{mm)}Y|?aspTDU0>0m`Fv;P%M8mS1#Yz;CYCd+u-0L zOLYL4`vK)gQfxVKyXR`rW-Z<%*)vu%bpK#ROG)%WfOqy_J!w|a+jyf^Js`Kx>l&^7 z;!VBmd1%2GcfUK&n6{%OY*@l*C&7Ch3D@kl`s{_M6!$`rQXm}o7(nP?Wq8FQWJ4|9 zz7IJMy3oE!_wqslj@Q&AGv`KLQN6y*gN5B%3f6WPnbmY#T#S?(^IlRi7?2)5-B{go%Q1zhU}x-iM-Aq^sc|?I=j3U=l|4B~kQtLLeUZc#c~x7Zc}hWCanma3 z^4RVS2)frI!YzkTS^Sw^jC#0rgd=bC-M&+t-C&K3<)@e-X}`+!tE_zEfy7dWavL>c z!x?|jTKs|hUtR1rDP||*{M6Lv$Kj1QwTx=0kB-8r8Yk}`g-?%>bI0ki>ET&<)tbh6 zN=CkLx&zmgaHTOI_%$kq$lb%Ld(GI0mZzQpRTMp?6_5=vnaOQIE}xlTZ?(hDotj&f zy?;Xf*2&Kv32&())|u%J=ULPue(Y`KeJZEhAw)(W-rjSX({-*?MS$lngqX_1nx!HPO+_DI#1s^0VLM2mlt3; zf&FpaHotWMO;=wM?j~ZoXm)HV4^d-0jJA^`y{Jq1VLgXTFZD{}&4w-8rOa zRr5j6Az1h}NK0+&V9BRk7Tj+}QiTl4lwN|RStesH0EHQz*IpeP*(#_1Y;!@uioMBo zqHHRP>pVTw>%z4gUB!2L4=p86tCIXy)c?o_Z3Q%vuMIub4giO*v8o+Cg_&Nmv2p8a zfX?~!ZX92)bV6t8h*yV;%*`n=vDt+Nr_580lpzs}N`NL`_D?dHjRb;>w9sH(nwD1A z*Hx!t>*?`O4uk9Ebwq;9>agWJvLR+5+XEv4X&rKm`clj4(#}tmX(_;rRKf>lbdc~H$yvWkn8wYuDSQ@Fd zy9}KC`uY||&)G?rKRNt4NZ=ZQKu$ zthUyQEN?hu-k{zVg&nWFC#fkkhNOKvo}P=QYOo45o|Ozgm}cFs2T~!c{ne{&ko6x? z!Hjf3@YnmnO+cbl!xJ~4Ms4m~XaP+ETD`2LC$t&(t@P8JMY6Ffor|tP;><`3_1zWfNei6;vdCkb{N>5bNljGwKYgkqB%+p9*P~fCEapHI&M_qbsaPWw_5)4B#tCdHZ6{bv4Kj zUHQ2QH+wvdDl5FT*L=*=0GZj~d60Z}B0OXyAWr{z*FUn=3PAa6)$p**a8JouJSj@J z{{A8So5wulep|qqpd(h{KWx;2Mkl?PO@FD&WDTFU-z6BYiK(#K>yYG}2mpDJ1Sy>= z1tN-&lO}XWe?Nm4nd$VQ7jnL0W{4?gBqs-lr|h@JMl^o;jdH+tgW8nMNe-bQaH)$q z19>PgxhN~?nK?sT9o~e~#+MifoMu*A>#FPtAN{SCMz2z^{0B-H*4XY{ClOwjFPrCw{bL zW{i)G35BfF8wSc$yz^0xy$r{jYmx2>NX08}cSp zn_Nf7m7P{Xa_1lyPg!*}u+d{GoHVzCn>jfhm_yOJ_GsF}#EMo1c|R1yDOAziMr`P% zI@9$%gERK4q0LkK88T~hP!#zNTr(5{{!{A`QC_kgw!IVh+h*GO_-81`E}LZQ#p{Y# z+w~q59{!dSCWSVeyj&WgJ3bF28;(PRC#nz8j4beGzcovS8#polP&DLjuFNu~_Ch2;(Ng2m#a9i5Moz@o~I%LD8T-peh|zAI$lW z=?qy4sH$3-HtI4R{(PQ=>+wZldd)gR6`Ga{BBz9e)X|8t{`4Iw+lY0BkM28r`}-HppLabzL|cIZa>`d1 z{{YLV`!{cPR2C%&saV!aii>-0&*p`Mf=dS=q&cvpO*Sf|EGCA2pcRd1Xr3oQZ`50k z%DN#0o7S5dfwhw5&t5H3d@*a=(MPaL`a0*ZUFX@yS*}42g?FVH$S7F43J)pwwFB9=;;Y!mJNmOgwnsAUEq{=Kt3TcvIEQj=H_NT<|`z|K-15|1}=9C8|na8)QhKh_!^J*I=hQC1>X-oJ2n^>kZyhsbVPQh{&FRZ9Qrx zk7X9eQseztv!tYCeX_P1j_B)pZ{QgZW3Y7Ot-9L`*07Z@q)Z{=FjzQ)z@2U(buu_z z*Man`=V=y|=&`XeebwXNxN4+nXQO7Jpp<Oe0W(!Aj@;{DbM=!n=@fjf5vS z_HjK1&HJxjMF>4fED`rHNvz6|m_L5Dd5VKGfRo6%2?IKbH8r4TKQZF9?LwKKroq}yp$rR{npUfQ6Fv3L_b?-y?yLTQX?@XB6)X8UEK99t z*vteYJHa*1$RNm<=^fx94!?yU5JT8N?XzCZikxls3o{tsFI6~6Co{J)KgE)!UJY2oNO6uz$iV`uwA(Crp&YKYZ{SbsbqNa zk>$zo+Q~>@DwIDHg~4R$=U#wsTQW1PC&fu31ms@V6tj(5pDqHiTZ@Y?*5i=TfN=JY zO$x7Bm_nr2=v>)!rJd=8YzP7#@-zQw7-KXr$Mr|Mv&Ur-H0txLu}}Fi?ACYEcFTMH z!kP0yzJd$mhOAZPpb?j_(@gnUk5n_^WO8bUtax6n_0@9+5{&$l^{nix3#np}IoF%2 zs`T)k=b4_!yUOY^H?0i4ndRkKPh=$jjF1{;yS^a4bo9sTLzvd(h@Ewa=3Q+R?|K{D zhvOkrKCcfxuVMC#B@+{Zc@1#Yx*TyOG7|fap_s9ROe6?m_ z49XLAz_ie}D8pD@$^V{bbaR9$Lc%~ttTmF9LWx)mdd%9LI zuGw5g>P77#568|i{@lWh7Gu35ihc%%+#Bxq54ar)J{EmDyK%+HVs9uXG%opWmzMwc zGE-iGD;^vpF5OoHN0UB(pZ)B3>$b?9t+*Y`kafLudHY|FItrW%1?S3Yr|NIpufG24 z-9|R|Bj%?a^L_klmq(NEHL1UgR6n@$%RB1@YBt)KKlm~EY35S9$y0{u^M8gnE^G7j z(_!%Bld0RUJ;HoL($Hv)q6hI;=1*Y+MT^D?Za3cB!#@OBrJB4>NJR0Z#tS6`dc@c_ zOuoG-egFPWzK7zs#nItX z8d57F8a=N)S{{wvHpkWYRdOt6RrLlPo3U`PdWt|hgoh9nX>$q66ZNp zdS2>-o!y7p7uRudgS_ZIJ#Alh61&;jS4ZA@!EaOFZ#O(n{n+ZA{LO!=^U~qy7gyaF zG`0tI)q(qae4M=F-R`$B?|T3Gy26ujrQBiTUhmt4lgs5Uq!UJ!YK4M=tfwWHBz-Ii z-&km08y68_V|agyfWIfvAUfEc756z^QB-$>mudDkLq3#Vt9&n>kiI1?x9@w!XkbR# zNcsXXdChAE@R`2#S{tIb_<>Eu+0Ve#jeJ%+NR!s+sraI2ETxoynF__nmEI7OskT;g z*eeoLzJM-OfrdvkQk(2!Uk?Auy>#Vb?xE=m3k!?A@4uos<+g3bW*(~5J?Z-Dgy{_pY=q=%#H5Z z^QdKQt+#1)4ZRSbOU<5t3@dmDYrm{2BI5a-?`{;gG*4FFCxYCSUT4iru?N!&>0ggZ zY#SOK(z7q#g_lzkwG{g_WT$;x<7EU@2$Mb`ged(hd}I4rRp#0MC2IZ#lz+;<8@ZLe zG&0e8jd) z)aeun7waZOGpoC(_ygWAwFZNL&>X4%;QXR)&Y=Z}TOiuWtf%9ucKLce(r1mt{Pe@1 z{FBR;ITAP86})EOIYx2(2r+hTbM7`y&jIjd<_e9wd)2Ee!(FxP(iNQdmb%4Et8Los zeJnlxG5nlz;!Q4!6S7wRBSG-_&vEt*qR)g0TX6$#f7(V#-I80L`n>Q&&LH5wSU{XE zRB~q#nt5v1v+xxAAGo`k>s4Qp`ISY1-{ow&zifD|3eB|%JgbxN2GMeq(|oq}&K$P( zs+ORnAl1xj;|J?)9(Wb^YlF~cc65gelElXhDxH}OpymV$#zYPOFx{Z4Fz26Dh-|}A0QBy_gm>7rzm-^Xx}$}tWl=oZ2ZGE!&k;mN%BhNk5>0{zVUo3 zwJ+q#ahdR{8jaBk^yW3I^zogxH?sHB~Pl--OzCybs*E)$RLrwt$0E_Hf`kLsL1`U5wLz&KetE%364kl+_=1 z|B8d*#T6hE@6A7!#x6GVQ-*OS{O%pZUA8%eGFArWZhnVl0Z*3``o6cGjJ@CZ zaJJj}BT~A$Rr4)u?jH#c%P@1=_jhca0oQ9ojO?)AQ_k=NP==bPYbF(Iv(}uyx*L8H zz?{9G8s}T*W9j?3%H9fMpnLQ?{ajl^Mbi!WYU9&jYp=2E&k}DTZ&W|LD{EbR`dSnR z-s|KesL1_X(!-|5$A6!{2PjpxXHSgVid=RQbkQPJ+{u#r9G7of81ig_Q0u4e1*uiN zDc^H1?&Zq+fi@26y}=+FL{ ze_#*kvEMXLuWPLn;UgvKui8xUq9PB59_SD2B-z}4M9$y!*>g=6Qw*K;(Be<6zh(9* zrQxpQ{zpFDS2~+@id-H)@A*#+ZhBBp5{~Q83L@*hcf@m@fYqyi+j(I#6ABL(Gnt=q zb4$zED+_^K6JBVGy&TT`U+rCYR8w8H4=A7@e$owyib#;&gLFkY1e6jaKu{nA5)c82 zN*577qaZaHB1j3nL+FAU2}%zobSyNfDn%45yc@nZGw*#f^JeC)x8}`T&-2$^D=YV& zbM8KS|IY8X&%WDp9+}}6XpS8akK?LqkBM_$^#{l@^qo=nwKPW<%+c(G#-hX%5j{gHUNM{A$)!Ba(UPWAY zMA)8pjF%!=WN`q9=d8t8r47Q;RNp9!Xt#cuk}a}e>W~u8>#HY;QSrF6u-UcejdTXn zvjV{E>z#Eqfvr1A=S=&pZ(hL{0O``*Iy7UxNpVdFyCSaroHgv8lu6D;Ph%i+uw6Mm zK9Ltk+ra*6;ank~IZNG5L!{O!4)KEdj|NGP_KIRnErB@iqi=Mn+aNp8>PP!h@qk6> zkIFXo-ZQ9<>Tz$UTLx-cX=Y-Ra#Ed^)9b{lKjbI%EL3kYc()|W7-lB3(274 zqrEyb3i^KA!6!kMAyG{;t~M&gIeY7G&CIq%A0|csmTD0UYO>&5AN-*e~IY! zF&ju+lU|^fU&zTis`5{RR_YBr|Y5`xdcf^oJQciTGKBv0z_W9qn zz%weYB)I{v(lpOaDjA<9g2Vf%xCUXG?%=%3M5|eZt3!Ofba`q1Eyu1jfJRpqDA{$C zTuN$(1zvZK`h}}RNx9WiYGSQqKb4)%#msmYtvozpg8}n^MXqZUUYzwIN`Y@}y$GmX zmTwQoRZ8gPeSCTAeL?*R8MV-x658V7V>J(tyUn)`Y%VS};b^vT$wd3oM-|ulV@25( z2hyMDo*E0&Rx-$W=ial2bB|SU5xKaycvvH;x+z9$xE^)`#lZY_d zqOyv*6rW8(kf)dn9>*(p^1 zZ7CERmea6v5}hd8^!e9eje?x9gf-GTIRC8RdFs1qG7Nq<|Jh#fUD!<9brJlOig=fR zpjysxnlW2ZW{aYRn8g+QuOj#TrymM0*HLK1*!1g5C!02(Npf;~ZNltjEmaYGeddf+ zYjWvCVg_LbYPb7^p2#aV4o3ht*Jg`J%W27pqr$eHcSO;nbkh?b9cI{U$B6;x?Y(*q z^yKOdda_J_x&@cj9r|9Z!?Si2sRL^erw?Mk%metqh;A?W#}q+yD`kAO?z$5ys+r86%E>zKgD<)A_9hRP z^U&VP{3a)7gRKTwJZW_m-rY_t+k4;C3}*hT>XmGlvEJ4+j;xIY=N*`4{=}ibZLotA z%8!M}r+Y3vbM^sZDUL#z25fA9*UPTT*9s>!B(hHi!!a0wu3nMkEB1yRtR|l+RsF2O zf#j;vC4hol+{ZNt%q!RPT{@e!yiXa-xNyZph&<>46%Zmgii?Y~fzyTCM@6vEuw;1Xs7x{U~iz2|FJR6WAKg3tpOevY+Cn#owQv263ZS$;|{iyHoFd z?9yP%nQhZiWcmCZ_brza{btWQyH++s!SBpoyZ>?to8`!V>G}p$n!Iac? z7@TM1%aDj8_s%yJDEf}Hv)*k8 zedqL_G*;}cKWMCG_7!qZ@*yGq7E!MdaHlwuy>z6Oy!!mUOrv<0IQxT%!lgE>_nt-L z)PHbeL(E2M9=q}oHR|(Rewb_3oDn&sBCf4qKH+YJuqMBPBg$n}dicM6p`-_$Q5mh! z!PjR|1uyI?PyR3-N2+SmR&w(T>Dg}D{n2M%yHg-7)Fk`nR@SrAq0X0G#?;h1~w`A!q}+I?fpn@T*nUe6HEl=eF@mE2dr}B(u)6QuHeV&k+** zg7tV8(_I@uii^&+s1Lo3Ej=F4){vB6o==IqYZdJ}N=Os-)pL%okaA!{!F$E&vCHp= zL$z?qi?&|mjLo@xyJ2wRjDxZN|jK3{M{W%|8`ag1m%IwGn{V^ zNH;NgZNSccoOZwybV{;VqTY&Jru4$yxBZ?P^fSqADzU$jQX{X7av*;Ztb1>wlq@J( zVR%QT(^fGYPLP5G1bV*x<}?Hbh@Pue0GiO#dKK0>DH)C7>sx~+)5ykiEew6Fn!E|z z(&fS5u3A}Jtbh}fznu~2GbERd5egZaJ#cRe_p@fyN|<5paMT-_AGbjuo&5qAK&M`G z(nMCxcjcnUz#h}Z;Ezn&8#Mw(EO0cFxJ)1~+iNYkp`2;j7Ai0xBYK;gls{ zzNc;%8xM>_0dlSHXtTyzO=r?Q{qIxtV>qE1J*|<1M>f}{^%Vx3l9E%KpCM09)W}J; zoo`SM{Gl0K=3J8JftpQTM9aRSxEVjwtbSMa3%$mr{`XMr8sJbkM6Q-6`#gB$aMabh zs!|2Qkpv{RA2{;pp+Rq05loZY)rLHsER(f$~wsz3%ZQD5q z`SA~EJrJ#+4?GnC*5xrPIStZNAz`EF4pZYfM_!@wVa%n2|r z>GqB?Ma$rz$(b)AtP!tna{`-@fK)Dp5*ktIVi#{ifQtyty17a}%J5e8x)wk{&k0{x&y&iv7n=&hOCPo{7U1bsrG?p* zD;ms~ALq3f#-|n8@R{E2NRaoH^=UI)!&`E zzRq)WdZ%a918R~g1*(BCvykih?f33H(=h4_hbdpmzoEEb7dFxYsxMXqxT^Q`m<*928l~K}vH~+6 zQjpRb&Uqoi73fY+f;Z z=$7f+ZmXWk9E*Xmc6Il%f<2awhj4ahM3#ru>9G?Ya*ioK4AQ-v5DC53NN=yy!rt3P z>-kzCyT0IdLX@%rYFem;e|pB}rQ?I}7He_Vb@BBeXHQ#;d}Pr^5}zQNkcWmCm!12X zbo%YoWdC7%|BbqlSg5R*VJSog3u~X2P)p5tFn|s?JREm!u9CzU+1doJp-cQM>G#bM z+Fi}au6XMBV>Phx@^iIakr0TxM+?r$LamjYBanmc3cpfC*DIeaK_xP&x%RVHQ%HPC zP5us;bVgWKdY9>)Um8b~B}XfKGejF-AezN|^MZ=QT~=FOJ3~0M%O`!i(aJ1wcw>MO z02FYsnEeZP**QK1hE^rQ9X|#Rae_{LwhLLAx!@dOuL20YRvdwZ+c!b_5T?c;>rz{`v zOi-jZ?r4fwZ*T7c`+Tusm!j_rbq+vBEWQuh>S?EioAO5?Gt>bjed_geXOmp@Yr$qj zOv)%xCGiGJhIuTp3wc=o`^R;lD#__xO1#DaP51AQ&G#eBP<|IMht0sO_$csL6AetREi z*{|vTg`zv4AZDO=nZJBnZ(9ol%Bzt|8RuFD1C|8>ltg*`NwzKNQeZLB89hLhfS<2(0y=C^z)X>tPRR2QczX2011fl={ literal 0 HcmV?d00001 diff --git a/e2e/tests/components/navbar/navbar.e2e.spec.ts b/e2e/tests/components/navbar/navbar.e2e.spec.ts index 7014ad3f6b..44f2a5a086 100644 --- a/e2e/tests/components/navbar/navbar.e2e.spec.ts +++ b/e2e/tests/components/navbar/navbar.e2e.spec.ts @@ -22,6 +22,7 @@ class StoryPage extends AbstractStoryPage { mobileMenuButton: Locator; servicesTrigger: Locator; appTrigger: Locator; + guidesTrigger: Locator; servicesMobileTrigger: Locator; closeButton: Locator; drawer: Locator; @@ -47,6 +48,7 @@ class StoryPage extends AbstractStoryPage { mobileMenuButton: page.getByTestId("button__mobile-menu"), servicesTrigger: page.getByRole("button", { name: "Services" }), appTrigger: page.getByRole("button", { name: "LifeSG app" }), + guidesTrigger: page.getByRole("button", { name: "Guides" }), servicesMobileTrigger: page.getByTestId( "link__mobile-2-expand-collapse-button" ), @@ -257,6 +259,41 @@ test.describe("Navbar", () => { }); }); + test.describe("Submenu Grid", () => { + test.beforeEach(async ({ story }) => { + await story.init("submenu-grid"); + }); + + test("Open", async ({ story }) => { + await story.locators.internal.guidesTrigger.click(); + await compareScreenshot(story, "state", { + fullscreen: true, + }); + }); + + test("Scroll reveals items beyond the visible grid rows", async ({ + story, + }) => { + await story.locators.internal.guidesTrigger.click(); + + const overflowItem = + story.locators.internal.submenuLink("Guides item 12"); + + await test.step("Overflow item starts outside the visible grid area", async () => { + await expect(overflowItem).not.toBeInViewport(); + }); + + await test.step("Scrolling brings the overflow item into view", async () => { + await overflowItem.scrollIntoViewIfNeeded(); + await expect(overflowItem).toBeInViewport(); + + await compareScreenshot(story, "scrolled", { + fullscreen: true, + }); + }); + }); + }); + test.describe("Mobile", () => { test.describe(() => { test.beforeEach(async ({ story }) => { From 4dee769840dbaedfdcd06a4e94aab193a58e687c Mon Sep 17 00:00:00 2001 From: Fauzan Naufan Date: Thu, 17 Sep 2026 10:49:07 +0800 Subject: [PATCH 07/25] [MOL-22399][FN] fix: address code review findings --- src/menu/types.ts | 2 +- src/navbar/submenu-grid.tsx | 15 +++++++++++---- src/navbar/types.ts | 4 ++++ 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/menu/types.ts b/src/menu/types.ts index 92d7c3320a..3b9b216c7b 100644 --- a/src/menu/types.ts +++ b/src/menu/types.ts @@ -48,7 +48,7 @@ export interface MenuContentProps /** * Maximum width of the panel in pixels. * - * @default 384 (24rem) + * @default 24rem (384px at the default 16px root font size) */ maxWidth?: number | undefined; } diff --git a/src/navbar/submenu-grid.tsx b/src/navbar/submenu-grid.tsx index 617f296376..74d2401f59 100644 --- a/src/navbar/submenu-grid.tsx +++ b/src/navbar/submenu-grid.tsx @@ -41,11 +41,14 @@ export const SubMenuGrid = ({ items, columns, rows, -}: Props): JSX.Element => { +}: Props): JSX.Element | null => { // ========================================================================= // CONST, STATE, REF // ========================================================================= const wrapperRef = useRef(null); + // ResizeObserver target: the actual grid
        , not wrapperRef — wrapperRef + // is `display: contents` and never reports a real size to observe. + const gridRef = useRef(null); // ========================================================================= // HELPER FUNCTIONS @@ -54,6 +57,7 @@ export const SubMenuGrid = ({ const grid = wrapperRef.current ?.firstElementChild as HTMLElement | null; if (!grid) return; + gridRef.current = grid; grid.style.setProperty(styles.tokens.grid.columns, String(columns)); @@ -68,7 +72,7 @@ export const SubMenuGrid = ({ | undefined; if (!boundaryItem) return; - const rowGap = parseFloat(getComputedStyle(grid).rowGap || "0"); + const rowGap = parseFloat(getComputedStyle(grid).rowGap) || 0; const visibleHeight = boundaryItem.offsetTop - rowGap / 2; grid.style.setProperty( @@ -83,20 +87,23 @@ export const SubMenuGrid = ({ useIsomorphicLayoutEffect(() => { applyGridLayout(); // eslint-disable-next-line react-hooks/exhaustive-deps - }, [items.length, columns, rows]); + }, [items, columns, rows]); useResizeDetector({ handleWidth: true, handleHeight: false, skipOnMount: true, refreshMode: "throttle", - targetRef: wrapperRef, + targetRef: gridRef, onResize: applyGridLayout, }); // ========================================================================= // RENDER FUNCTIONS // ========================================================================= + // guards against callers bypassing navbar-items.tsx's own columns/rows check + if (columns < 1 || rows < 1) return null; + return (
        diff --git a/src/navbar/types.ts b/src/navbar/types.ts index 55faa1bf6f..0d9bbf0a41 100644 --- a/src/navbar/types.ts +++ b/src/navbar/types.ts @@ -18,11 +18,15 @@ export interface NavItemLinkProps extends NavItemCommonProps { * * Has no effect on the mobile drawer, which always renders `subMenu` as * an expandable vertical list. + * + * @minimum 1 */ subMenuColumns?: number | undefined; /** * Number of grid rows of `subMenu` visible on desktop before the panel * becomes vertically scrollable. See `subMenuColumns`. + * + * @minimum 1 */ subMenuRows?: number | undefined; } From 9309d1829367bc01080742f23b00a52c27b4a419 Mon Sep 17 00:00:00 2001 From: Fauzan Naufan Date: Thu, 17 Sep 2026 10:56:01 +0800 Subject: [PATCH 08/25] [MOL-22399][FN] test: address testing gaps findings --- .../components/navbar/navbar.e2e.spec.ts | 24 ++++++++++++++++- tests/menu/menu.spec.tsx | 27 +++++++++++++++++++ tests/navbar/navbar.spec.tsx | 19 ++++++++++++- 3 files changed, 68 insertions(+), 2 deletions(-) diff --git a/e2e/tests/components/navbar/navbar.e2e.spec.ts b/e2e/tests/components/navbar/navbar.e2e.spec.ts index 44f2a5a086..50abedb5dd 100644 --- a/e2e/tests/components/navbar/navbar.e2e.spec.ts +++ b/e2e/tests/components/navbar/navbar.e2e.spec.ts @@ -63,7 +63,8 @@ class StoryPage extends AbstractStoryPage { page.getByTestId(`menu__mobile-${index}`), mobileNavLink: (index: number) => page.getByTestId(`link__mobile-${index}`), - submenuLink: (name: string) => page.getByRole("link", { name }), + submenuLink: (name: string) => + page.getByRole("link", { name, exact: true }), downloadButton: page.getByTestId("action-button__download"), mobileNav: page.getByRole("navigation", { name: "Mobile navigation menu", @@ -292,6 +293,27 @@ test.describe("Navbar", () => { }); }); }); + + test("Keyboard users can Tab through grid items in order", async ({ + story, + }) => { + await story.locators.internal.guidesTrigger.click(); + + await story.page.keyboard.press("Tab"); + await expect( + story.locators.internal.submenuLink("Guides item 1") + ).toBeFocused(); + + await story.page.keyboard.press("Tab"); + await expect( + story.locators.internal.submenuLink("Guides item 2") + ).toBeFocused(); + + await story.page.keyboard.press("Tab"); + await expect( + story.locators.internal.submenuLink("Guides item 3") + ).toBeFocused(); + }); }); test.describe("Mobile", () => { diff --git a/tests/menu/menu.spec.tsx b/tests/menu/menu.spec.tsx index f831d8a0c7..7541e4f7fc 100644 --- a/tests/menu/menu.spec.tsx +++ b/tests/menu/menu.spec.tsx @@ -2,6 +2,7 @@ import "@testing-library/jest-dom"; import { fireEvent, render, screen } from "@testing-library/react"; import { Menu } from "src/menu"; +import { tokens as menuContentTokens } from "src/menu/menu-content.styles"; describe("Menu", () => { describe("Menu.Content", () => { @@ -16,6 +17,32 @@ describe("Menu", () => { expect(screen.getByText("hello")).toBeInTheDocument(); }); + it("should set the maxWidth CSS variable on the panel when provided", () => { + render( + +
        hello
        +
        + ); + + const panel = screen.getByTestId("menu-content"); + expect( + panel.style.getPropertyValue(menuContentTokens.panel.maxWidth) + ).toBe("640px"); + }); + + it("should not set the maxWidth CSS variable when not provided", () => { + render( + +
        hello
        +
        + ); + + const panel = screen.getByTestId("menu-content"); + expect( + panel.style.getPropertyValue(menuContentTokens.panel.maxWidth) + ).toBe(""); + }); + it("should move focus forward with ArrowDown", () => { render( diff --git a/tests/navbar/navbar.spec.tsx b/tests/navbar/navbar.spec.tsx index 54684b6f48..46280489ef 100644 --- a/tests/navbar/navbar.spec.tsx +++ b/tests/navbar/navbar.spec.tsx @@ -1,4 +1,4 @@ -import { render, screen } from "@testing-library/react"; +import { fireEvent, render, screen } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; import { Navbar } from "src/navbar"; import * as subMenuGridStyles from "src/navbar/submenu-grid.styles"; @@ -229,6 +229,23 @@ describe("Navbar", () => { document.body.getElementsByClassName(subMenuGridStyles.grid) ).toHaveLength(0); }); + + it("should move focus between grid items with ArrowDown", async () => { + const user = userEvent.setup(); + render(); + + await user.click(screen.getByTestId("link__1")); + + const panel = screen.getByTestId("menu-content"); + const first = screen.getByRole("link", { name: "Sub item 1" }); + const second = screen.getByRole("link", { name: "Sub item 2" }); + + first.focus(); + expect(first).toHaveFocus(); + + fireEvent.keyDown(panel, { key: "ArrowDown" }); + expect(second).toHaveFocus(); + }); }); }); From aeb12932a86af2c4b3a00e2159db4fde0f36fc7f Mon Sep 17 00:00:00 2001 From: Fauzan Naufan Date: Fri, 18 Sep 2026 15:56:00 +0800 Subject: [PATCH 09/25] [MOL-22399][FN] feat: move multi column grid behavior into Menu.Section --- .../components/navbar/navbar.e2e.spec.ts | 24 ++++ src/menu/menu-section.styles.ts | 40 +++++- src/menu/menu-section.tsx | 55 +++++++- src/menu/types.ts | 11 ++ src/navbar/navbar-items.tsx | 35 ++--- src/navbar/submenu-grid.styles.ts | 44 ------- src/navbar/submenu-grid.tsx | 121 ------------------ tests/navbar/navbar.spec.tsx | 9 +- 8 files changed, 154 insertions(+), 185 deletions(-) delete mode 100644 src/navbar/submenu-grid.styles.ts delete mode 100644 src/navbar/submenu-grid.tsx diff --git a/e2e/tests/components/navbar/navbar.e2e.spec.ts b/e2e/tests/components/navbar/navbar.e2e.spec.ts index 50abedb5dd..d2dadc832f 100644 --- a/e2e/tests/components/navbar/navbar.e2e.spec.ts +++ b/e2e/tests/components/navbar/navbar.e2e.spec.ts @@ -314,6 +314,30 @@ test.describe("Navbar", () => { story.locators.internal.submenuLink("Guides item 3") ).toBeFocused(); }); + + test("Arrow keys navigate between grid items", async ({ story }) => { + await story.locators.internal.guidesTrigger.click(); + + await story.locators.internal.submenuLink("Guides item 1").focus(); + await expect( + story.locators.internal.submenuLink("Guides item 1") + ).toBeFocused(); + + await story.page.keyboard.press("ArrowDown"); + await expect( + story.locators.internal.submenuLink("Guides item 2") + ).toBeFocused(); + + await story.page.keyboard.press("ArrowDown"); + await expect( + story.locators.internal.submenuLink("Guides item 3") + ).toBeFocused(); + + await story.page.keyboard.press("ArrowUp"); + await expect( + story.locators.internal.submenuLink("Guides item 2") + ).toBeFocused(); + }); }); test.describe("Mobile", () => { diff --git a/src/menu/menu-section.styles.ts b/src/menu/menu-section.styles.ts index 6a3d3eb854..fc468aefe4 100644 --- a/src/menu/menu-section.styles.ts +++ b/src/menu/menu-section.styles.ts @@ -1,6 +1,11 @@ import { css } from "@linaria/core"; -import { Border, Colour, Spacing } from "../theme/tokens"; +import { Border, Colour, MediaQuery, Radius, Spacing } from "../theme/tokens"; + +export const gridTokens = { + columns: "--fds-menu-section-grid-columns", + maxHeight: "--fds-menu-section-grid-maxHeight", +} as const; export const section = css` padding: ${Spacing["spacing-8"]} 0; @@ -15,3 +20,36 @@ export const label = css` margin: 0 ${Spacing["spacing-16"]} ${Spacing["spacing-8"]}; color: ${Colour["text-subtler"]}; `; + +export const grid = css` + ${gridTokens.columns}: initial; + ${gridTokens.maxHeight}: initial; + + display: grid; + grid-template-columns: repeat(var(${gridTokens.columns}), minmax(0, 1fr)); + column-gap: ${Spacing["spacing-8"]}; + row-gap: ${Spacing["spacing-4"]}; + + max-height: var(${gridTokens.maxHeight}); + overflow-y: auto; + + &::-webkit-scrollbar { + width: 14px; + } + + &::-webkit-scrollbar-track { + background: transparent; + } + + &::-webkit-scrollbar-thumb { + background: ${Colour["bg-inverse-subtlest"]}; + border: 5px solid transparent; + border-radius: ${Radius["full"]}; + background-clip: padding-box; + } + + ${MediaQuery.MaxWidth.lg} { + grid-template-columns: 1fr; + max-height: none; + } +`; diff --git a/src/menu/menu-section.tsx b/src/menu/menu-section.tsx index d4c96837fa..f9f54c5ced 100644 --- a/src/menu/menu-section.tsx +++ b/src/menu/menu-section.tsx @@ -1,7 +1,9 @@ import clsx from "clsx"; +import { Children, useCallback, useRef } from "react"; +import { useResizeDetector } from "react-resize-detector"; import { Typography } from "../typography"; -import { useId } from "../util"; +import { useId, useIsomorphicLayoutEffect } from "../util"; import * as styles from "./menu-section.styles"; import type { MenuSectionProps } from "./types"; @@ -10,6 +12,8 @@ export const MenuSection = ({ label, showDivider = true, className, + columns, + rows, "data-testid": testId = "menu-section", ...otherProps }: MenuSectionProps): JSX.Element => { @@ -17,17 +21,66 @@ export const MenuSection = ({ // CONST, STATE, REF // ============================================================================= const internalId = useId(); + const ulRef = useRef(null); + + // ========================================================================= + // HELPER FUNCTIONS + // ========================================================================= + const applyGridLayout = useCallback(() => { + if (!columns || !rows) return; + const grid = ulRef.current; + if (!grid) return; + + grid.style.setProperty(styles.gridTokens.columns, String(columns)); + + const visibleCount = rows * columns; + if (Children.count(children) <= visibleCount) { + grid.style.removeProperty(styles.gridTokens.maxHeight); + return; + } + + const boundaryItem = grid.children[visibleCount] as + | HTMLElement + | undefined; + if (!boundaryItem) return; + + const rowGap = parseFloat(getComputedStyle(grid).rowGap) || 0; + const visibleHeight = boundaryItem.offsetTop - rowGap / 2; + + grid.style.setProperty( + styles.gridTokens.maxHeight, + `${visibleHeight}px` + ); + }, [columns, rows, children]); + + // ========================================================================= + // EFFECTS + // ========================================================================= + useIsomorphicLayoutEffect(() => { + applyGridLayout(); + }, [applyGridLayout]); + + useResizeDetector({ + handleWidth: true, + handleHeight: false, + skipOnMount: true, + refreshMode: "throttle", + targetRef: ulRef, + onResize: applyGridLayout, + }); // ============================================================================= // RENDER FUNCTIONS // ============================================================================= return (
          = 1 && styles.grid, className )} {...otherProps} diff --git a/src/menu/types.ts b/src/menu/types.ts index 3b9b216c7b..b3ea1dd75d 100644 --- a/src/menu/types.ts +++ b/src/menu/types.ts @@ -71,6 +71,17 @@ export interface MenuSectionProps extends HTMLAttributes { * @default true */ showDivider?: boolean | undefined; + /** + * Number of columns in the multi-column grid layout. + * When provided alongside rows, renders items in a CSS grid. + * Ignored at <=lg breakpoints where a single-column list is always used. + */ + columns?: number; + /** + * Maximum number of rows to display before enabling vertical scroll. + * Requires columns to be set. + */ + rows?: number; /** * Accessible group label rendered above the section items. */ diff --git a/src/navbar/navbar-items.tsx b/src/navbar/navbar-items.tsx index 08f59f6c31..4ec8fbb507 100644 --- a/src/navbar/navbar-items.tsx +++ b/src/navbar/navbar-items.tsx @@ -9,13 +9,15 @@ import type { TypographyWeight } from "../typography"; import { useId } from "../util"; import { Menu as MobileMenu } from "./menu"; import * as styles from "./navbar-items.styles"; -import { getSubMenuGridMaxWidth, SubMenuGrid } from "./submenu-grid"; import type { NavItemCommonProps, NavItemLinkProps, NavItemProps, } from "./types"; +const SUBMENU_GRID_COLUMN_WIDTH_PX = 383; +const SUBMENU_GRID_COLUMN_GAP_PX = 8; + const getLinkWeightClass = (weight: TypographyWeight) => { switch (weight) { case "bold": @@ -28,6 +30,10 @@ const getLinkWeightClass = (weight: TypographyWeight) => { } }; +const getSubMenuGridMaxWidth = (columns: number) => + columns * SUBMENU_GRID_COLUMN_WIDTH_PX + + (columns - 1) * SUBMENU_GRID_COLUMN_GAP_PX; + interface Props { items: NavItemProps[]; selectedId?: string | undefined; @@ -144,20 +150,19 @@ export const NavbarItems = ({ columns && rows ? getSubMenuGridMaxWidth(columns) : undefined } > - {columns && rows ? ( - - ) : ( - - {subMenu.map((item, subIndex) => ( - - {item.children} - - ))} - - )} + + {subMenu.map((item, subIndex) => ( + + {item.children} + + ))} + ); diff --git a/src/navbar/submenu-grid.styles.ts b/src/navbar/submenu-grid.styles.ts deleted file mode 100644 index 6b0a629f7e..0000000000 --- a/src/navbar/submenu-grid.styles.ts +++ /dev/null @@ -1,44 +0,0 @@ -import { css } from "@linaria/core"; - -import { Colour, Radius, Spacing } from "../theme"; - -export const tokens = { - grid: { - columns: "--fds-navbarItems-subMenuGrid-columns", - maxHeight: "--fds-navbarItems-subMenuGrid-maxHeight", - }, -} as const; - -// removes the wrapper from the layout tree so `Menu.Section`'s `
            ` becomes -// the direct grid parent of its `
          • ` children -export const measureWrapper = css` - display: contents; -`; - -export const grid = css` - ${tokens.grid.columns}: initial; - ${tokens.grid.maxHeight}: initial; - - display: grid; - grid-template-columns: repeat(var(${tokens.grid.columns}), minmax(0, 1fr)); - column-gap: ${Spacing["spacing-8"]}; - row-gap: ${Spacing["spacing-4"]}; - - max-height: var(${tokens.grid.maxHeight}); - overflow-y: auto; - - &::-webkit-scrollbar { - width: 14px; - } - - &::-webkit-scrollbar-track { - background: transparent; - } - - &::-webkit-scrollbar-thumb { - background: ${Colour["bg-inverse-subtlest"]}; - border: 5px solid transparent; - border-radius: ${Radius["full"]}; - background-clip: padding-box; - } -`; diff --git a/src/navbar/submenu-grid.tsx b/src/navbar/submenu-grid.tsx deleted file mode 100644 index 74d2401f59..0000000000 --- a/src/navbar/submenu-grid.tsx +++ /dev/null @@ -1,121 +0,0 @@ -import { useRef } from "react"; -import { useResizeDetector } from "react-resize-detector"; - -import { Menu as DesktopMenu } from "../menu"; -import { useIsomorphicLayoutEffect } from "../util"; -import * as styles from "./submenu-grid.styles"; -import type { NavItemCommonProps } from "./types"; - -// comfortable minimum per grid column, and the gap used between columns -const SUBMENU_GRID_COLUMN_WIDTH_PX = 383; -const SUBMENU_GRID_COLUMN_GAP_PX = 8; - -/** - * Recommended `Menu.Content` `maxWidth` for a `columns`-wide `SubMenuGrid` — - * the default 24rem panel cap is sized for a single-column list and gets - * cramped once more than 1-2 columns are requested. - */ -export const getSubMenuGridMaxWidth = (columns: number): number => - columns * SUBMENU_GRID_COLUMN_WIDTH_PX + - (columns - 1) * SUBMENU_GRID_COLUMN_GAP_PX; - -interface Props { - items: NavItemCommonProps[]; - columns: number; - rows: number; -} - -/** - * Lays `items` out in a fixed-column CSS grid, capping the visible height to - * `rows` and enabling vertical scroll for the remainder. - * - * Why DOM measurement (not a fixed row height): items line-clamp to 2 lines, - * so row heights vary with label length. We measure the offset of the first - * item past the visible cutoff rather than assume a uniform row height. - * - * Why a wrapper `div` (not a `ref` on `Menu.Section`): `Menu.Section` doesn't - * forward refs, so its rendered `
              ` is read via `firstElementChild` on a - * `display: contents` wrapper instead of changing the shared `Menu` component. - */ -export const SubMenuGrid = ({ - items, - columns, - rows, -}: Props): JSX.Element | null => { - // ========================================================================= - // CONST, STATE, REF - // ========================================================================= - const wrapperRef = useRef(null); - // ResizeObserver target: the actual grid
                , not wrapperRef — wrapperRef - // is `display: contents` and never reports a real size to observe. - const gridRef = useRef(null); - - // ========================================================================= - // HELPER FUNCTIONS - // ========================================================================= - const applyGridLayout = () => { - const grid = wrapperRef.current - ?.firstElementChild as HTMLElement | null; - if (!grid) return; - gridRef.current = grid; - - grid.style.setProperty(styles.tokens.grid.columns, String(columns)); - - const visibleCount = rows * columns; - if (items.length <= visibleCount) { - grid.style.removeProperty(styles.tokens.grid.maxHeight); - return; - } - - const boundaryItem = grid.children[visibleCount] as - | HTMLElement - | undefined; - if (!boundaryItem) return; - - const rowGap = parseFloat(getComputedStyle(grid).rowGap) || 0; - const visibleHeight = boundaryItem.offsetTop - rowGap / 2; - - grid.style.setProperty( - styles.tokens.grid.maxHeight, - `${visibleHeight}px` - ); - }; - - // ========================================================================= - // EFFECTS - // ========================================================================= - useIsomorphicLayoutEffect(() => { - applyGridLayout(); - // eslint-disable-next-line react-hooks/exhaustive-deps - }, [items, columns, rows]); - - useResizeDetector({ - handleWidth: true, - handleHeight: false, - skipOnMount: true, - refreshMode: "throttle", - targetRef: gridRef, - onResize: applyGridLayout, - }); - - // ========================================================================= - // RENDER FUNCTIONS - // ========================================================================= - // guards against callers bypassing navbar-items.tsx's own columns/rows check - if (columns < 1 || rows < 1) return null; - - return ( -
                - - {items.map((item, index) => ( - - {item.children} - - ))} - -
                - ); -}; diff --git a/tests/navbar/navbar.spec.tsx b/tests/navbar/navbar.spec.tsx index 46280489ef..29dd9c7ae8 100644 --- a/tests/navbar/navbar.spec.tsx +++ b/tests/navbar/navbar.spec.tsx @@ -1,7 +1,7 @@ import { fireEvent, render, screen } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; +import * as menuSectionStyles from "src/menu/menu-section.styles"; import { Navbar } from "src/navbar"; -import * as subMenuGridStyles from "src/navbar/submenu-grid.styles"; describe("Navbar", () => { describe("Basic functions", () => { @@ -199,7 +199,7 @@ describe("Navbar", () => { await user.click(screen.getByTestId("link__1")); expect( - document.body.getElementsByClassName(subMenuGridStyles.grid) + document.body.getElementsByClassName(menuSectionStyles.grid) ).toHaveLength(1); }); @@ -226,7 +226,7 @@ describe("Navbar", () => { expect(screen.getByText(label)).toBeInTheDocument(); } expect( - document.body.getElementsByClassName(subMenuGridStyles.grid) + document.body.getElementsByClassName(menuSectionStyles.grid) ).toHaveLength(0); }); @@ -245,6 +245,9 @@ describe("Navbar", () => { fireEvent.keyDown(panel, { key: "ArrowDown" }); expect(second).toHaveFocus(); + + fireEvent.keyDown(panel, { key: "ArrowUp" }); + expect(first).toHaveFocus(); }); }); }); From a783cd839e43742c7e1aa5082ad64412b12ed89a Mon Sep 17 00:00:00 2001 From: Fauzan Naufan Date: Fri, 18 Sep 2026 17:19:29 +0800 Subject: [PATCH 10/25] [MOL-22399][FN] fix: address code review findings --- src/menu/menu-content.styles.ts | 1 + src/menu/menu-section.tsx | 17 +++++++++++------ src/navbar/navbar-items.tsx | 1 + 3 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/menu/menu-content.styles.ts b/src/menu/menu-content.styles.ts index 12afe632b9..e71351e630 100644 --- a/src/menu/menu-content.styles.ts +++ b/src/menu/menu-content.styles.ts @@ -26,6 +26,7 @@ export const panel = css` box-shadow: ${Shadow["md-subtle"]}; ${tokens.panel.maxHeight}: initial; + ${tokens.panel.maxWidth}: initial; ${tokens.panel.overflow}: initial; ${tokens.panel.xSpacing}: 0px; ${tokens.panel.availableWidth}: calc(100vw - var(${tokens.panel diff --git a/src/menu/menu-section.tsx b/src/menu/menu-section.tsx index f9f54c5ced..223ab8d5c6 100644 --- a/src/menu/menu-section.tsx +++ b/src/menu/menu-section.tsx @@ -26,6 +26,8 @@ export const MenuSection = ({ // ========================================================================= // HELPER FUNCTIONS // ========================================================================= + const childCount = Children.count(children); + const applyGridLayout = useCallback(() => { if (!columns || !rows) return; const grid = ulRef.current; @@ -34,14 +36,17 @@ export const MenuSection = ({ grid.style.setProperty(styles.gridTokens.columns, String(columns)); const visibleCount = rows * columns; - if (Children.count(children) <= visibleCount) { + if (childCount <= visibleCount) { grid.style.removeProperty(styles.gridTokens.maxHeight); return; } - const boundaryItem = grid.children[visibleCount] as - | HTMLElement - | undefined; + // Filter to
              • only: the label element (if present) is also a direct + // child of the
                  but must not be counted as a grid item. + const listItems = Array.from(grid.children).filter( + (el) => el.tagName === "LI" + ) as HTMLElement[]; + const boundaryItem = listItems[visibleCount]; if (!boundaryItem) return; const rowGap = parseFloat(getComputedStyle(grid).rowGap) || 0; @@ -51,7 +56,7 @@ export const MenuSection = ({ styles.gridTokens.maxHeight, `${visibleHeight}px` ); - }, [columns, rows, children]); + }, [columns, rows, childCount]); // ========================================================================= // EFFECTS @@ -80,7 +85,7 @@ export const MenuSection = ({ className={clsx( styles.section, showDivider && styles.sectionWithDivider, - columns && columns >= 1 && styles.grid, + columns && columns >= 1 && rows && rows >= 1 && styles.grid, className )} {...otherProps} diff --git a/src/navbar/navbar-items.tsx b/src/navbar/navbar-items.tsx index 4ec8fbb507..dbb5a306b8 100644 --- a/src/navbar/navbar-items.tsx +++ b/src/navbar/navbar-items.tsx @@ -15,6 +15,7 @@ import type { NavItemProps, } from "./types"; +// 367px max content width (Figma) + 8px padding on each side const SUBMENU_GRID_COLUMN_WIDTH_PX = 383; const SUBMENU_GRID_COLUMN_GAP_PX = 8; From e13a6ea0c595f262d767bbb2e3b81bca759baaa0 Mon Sep 17 00:00:00 2001 From: Fauzan Naufan Date: Fri, 18 Sep 2026 17:22:42 +0800 Subject: [PATCH 11/25] [MOL-22399][FN] test: address testing gaps --- tests/menu/menu.spec.tsx | 107 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 107 insertions(+) diff --git a/tests/menu/menu.spec.tsx b/tests/menu/menu.spec.tsx index 7541e4f7fc..5b3c25ac94 100644 --- a/tests/menu/menu.spec.tsx +++ b/tests/menu/menu.spec.tsx @@ -3,6 +3,7 @@ import "@testing-library/jest-dom"; import { fireEvent, render, screen } from "@testing-library/react"; import { Menu } from "src/menu"; import { tokens as menuContentTokens } from "src/menu/menu-content.styles"; +import * as menuSectionStyles from "src/menu/menu-section.styles"; describe("Menu", () => { describe("Menu.Content", () => { @@ -234,5 +235,111 @@ describe("Menu", () => { expect(screen.getByRole("link", { name: "A" })).toBeInTheDocument(); }); + + describe("grid layout", () => { + it("should apply the grid class when both columns and rows are set", () => { + render( + + A + B + + ); + + expect(screen.getByTestId("menu-section").classList).toContain( + menuSectionStyles.grid + ); + }); + + it("should not apply the grid class when only columns is set", () => { + render( + + A + + ); + + expect( + screen.getByTestId("menu-section").classList + ).not.toContain(menuSectionStyles.grid); + }); + + it("should not apply the grid class when only rows is set", () => { + render( + + A + + ); + + expect( + screen.getByTestId("menu-section").classList + ).not.toContain(menuSectionStyles.grid); + }); + + it("should set the columns CSS variable when items exceed the visible count", () => { + // 2 cols x 1 row = 2 visible; 3 items exceeds the cutoff + render( + + A + B + C + + ); + + const section = screen.getByTestId("menu-section"); + expect( + section.style.getPropertyValue( + menuSectionStyles.gridTokens.columns + ) + ).toBe("2"); + }); + + it("should not set the max-height CSS variable when all items fit within the visible count", () => { + // 2 cols x 3 rows = 6 visible; 3 items all fit + render( + + A + B + C + + ); + + const section = screen.getByTestId("menu-section"); + expect( + section.style.getPropertyValue( + menuSectionStyles.gridTokens.maxHeight + ) + ).toBe(""); + }); + + it("should apply grid class and set columns variable when label is combined with columns and rows", () => { + // Regression guard for the LI-filter fix: the label element must + // not displace the boundary item index in applyGridLayout. + render( + + A + B + C + + ); + + expect(screen.getByText("My section")).toBeInTheDocument(); + expect( + screen.getByRole("link", { name: "A" }) + ).toBeInTheDocument(); + expect( + screen.getByRole("link", { name: "B" }) + ).toBeInTheDocument(); + expect( + screen.getByRole("link", { name: "C" }) + ).toBeInTheDocument(); + + const section = screen.getByTestId("menu-section"); + expect(section.classList).toContain(menuSectionStyles.grid); + expect( + section.style.getPropertyValue( + menuSectionStyles.gridTokens.columns + ) + ).toBe("2"); + }); + }); }); }); From d166d9fe33a1f7ef0617ca1d39e8679e93f5ed2f Mon Sep 17 00:00:00 2001 From: Fauzan Naufan Date: Tue, 22 Sep 2026 11:50:48 +0800 Subject: [PATCH 12/25] [MOL-22399][FN] fix: merge columns and rows into 1 props, utilize useApplyStyle --- src/menu/menu-section.tsx | 32 ++++++++++++++++---------- src/menu/types.ts | 15 ++++++------- src/navbar/navbar-items.tsx | 15 ++++++------- src/navbar/types.ts | 18 +++++---------- stories/navbar/navbar.stories.tsx | 6 ++--- tests/menu/menu.spec.tsx | 37 +++++++------------------------ tests/navbar/navbar.spec.tsx | 32 ++------------------------ 7 files changed, 52 insertions(+), 103 deletions(-) diff --git a/src/menu/menu-section.tsx b/src/menu/menu-section.tsx index 223ab8d5c6..0377e5d22c 100644 --- a/src/menu/menu-section.tsx +++ b/src/menu/menu-section.tsx @@ -1,7 +1,8 @@ import clsx from "clsx"; -import { Children, useCallback, useRef } from "react"; +import { Children, useCallback, useMemo, useRef } from "react"; import { useResizeDetector } from "react-resize-detector"; +import { useApplyStyle } from "../theme"; import { Typography } from "../typography"; import { useId, useIsomorphicLayoutEffect } from "../util"; import * as styles from "./menu-section.styles"; @@ -12,8 +13,7 @@ export const MenuSection = ({ label, showDivider = true, className, - columns, - rows, + gridLayout, "data-testid": testId = "menu-section", ...otherProps }: MenuSectionProps): JSX.Element => { @@ -28,13 +28,21 @@ export const MenuSection = ({ // ========================================================================= const childCount = Children.count(children); - const applyGridLayout = useCallback(() => { - if (!columns || !rows) return; + const columnStyles = useMemo( + () => + gridLayout + ? { [styles.gridTokens.columns]: String(gridLayout.columns) } + : undefined, + [gridLayout] + ); + useApplyStyle(ulRef, columnStyles); + + const applyMaxHeight = useCallback(() => { + if (!gridLayout) return; const grid = ulRef.current; if (!grid) return; - grid.style.setProperty(styles.gridTokens.columns, String(columns)); - + const { columns, rows } = gridLayout; const visibleCount = rows * columns; if (childCount <= visibleCount) { grid.style.removeProperty(styles.gridTokens.maxHeight); @@ -56,14 +64,14 @@ export const MenuSection = ({ styles.gridTokens.maxHeight, `${visibleHeight}px` ); - }, [columns, rows, childCount]); + }, [gridLayout, childCount]); // ========================================================================= // EFFECTS // ========================================================================= useIsomorphicLayoutEffect(() => { - applyGridLayout(); - }, [applyGridLayout]); + applyMaxHeight(); + }, [applyMaxHeight]); useResizeDetector({ handleWidth: true, @@ -71,7 +79,7 @@ export const MenuSection = ({ skipOnMount: true, refreshMode: "throttle", targetRef: ulRef, - onResize: applyGridLayout, + onResize: applyMaxHeight, }); // ============================================================================= @@ -85,7 +93,7 @@ export const MenuSection = ({ className={clsx( styles.section, showDivider && styles.sectionWithDivider, - columns && columns >= 1 && rows && rows >= 1 && styles.grid, + gridLayout && styles.grid, className )} {...otherProps} diff --git a/src/menu/types.ts b/src/menu/types.ts index b3ea1dd75d..bc13173813 100644 --- a/src/menu/types.ts +++ b/src/menu/types.ts @@ -72,16 +72,15 @@ export interface MenuSectionProps extends HTMLAttributes { */ showDivider?: boolean | undefined; /** - * Number of columns in the multi-column grid layout. - * When provided alongside rows, renders items in a CSS grid. + * Renders items in a CSS grid layout on desktop. + * `columns` sets the number of grid columns; `rows` sets the maximum + * number of rows visible before the panel becomes scrollable. * Ignored at <=lg breakpoints where a single-column list is always used. + * + * @minimum columns 1 + * @minimum rows 1 */ - columns?: number; - /** - * Maximum number of rows to display before enabling vertical scroll. - * Requires columns to be set. - */ - rows?: number; + gridLayout?: { columns: number; rows: number } | undefined; /** * Accessible group label rendered above the section items. */ diff --git a/src/navbar/navbar-items.tsx b/src/navbar/navbar-items.tsx index dbb5a306b8..636d60298c 100644 --- a/src/navbar/navbar-items.tsx +++ b/src/navbar/navbar-items.tsx @@ -142,18 +142,19 @@ export const NavbarItems = ({ const renderDesktopSubMenu = ( subMenu: NavItemCommonProps[], subMenuId: string, - columns?: number, - rows?: number + gridLayout?: { columns: number; rows: number } ) => ( {subMenu.map((item, subIndex) => ( ({ children, options, subMenu, - subMenuColumns: _subMenuColumns, - subMenuRows: _subMenuRows, + subMenuGridLayout: _subMenuGridLayout, ...otherItemAttrs } = item; @@ -304,8 +304,7 @@ export const NavbarItems = ({ menuContent={renderDesktopSubMenu( subMenu!, subMenuId, - item.subMenuColumns, - item.subMenuRows + item.subMenuGridLayout )} triggerOnFocus isModal={false} diff --git a/src/navbar/types.ts b/src/navbar/types.ts index 0d9bbf0a41..afcecc36dc 100644 --- a/src/navbar/types.ts +++ b/src/navbar/types.ts @@ -12,23 +12,17 @@ export interface NavItemLinkProps extends NavItemCommonProps { itemType?: "link"; subMenu?: NavItemCommonProps[] | undefined; /** - * Number of columns to lay `subMenu` out in on desktop, as a grid instead - * of a single vertical list. Must be set together with `subMenuRows` — - * if either is omitted, `subMenu` renders as a standard vertical list. + * Renders `subMenu` as a multi-column grid on desktop instead of a single + * vertical list. `columns` sets the number of grid columns; `rows` sets + * the maximum rows visible before the panel becomes scrollable. * * Has no effect on the mobile drawer, which always renders `subMenu` as * an expandable vertical list. * - * @minimum 1 + * @minimum columns 1 + * @minimum rows 1 */ - subMenuColumns?: number | undefined; - /** - * Number of grid rows of `subMenu` visible on desktop before the panel - * becomes vertically scrollable. See `subMenuColumns`. - * - * @minimum 1 - */ - subMenuRows?: number | undefined; + subMenuGridLayout?: { columns: number; rows: number } | undefined; } /** * Props for a custom component slot navigation item. diff --git a/stories/navbar/navbar.stories.tsx b/stories/navbar/navbar.stories.tsx index d4d966e62e..c3cc797eb5 100644 --- a/stories/navbar/navbar.stories.tsx +++ b/stories/navbar/navbar.stories.tsx @@ -402,8 +402,7 @@ export const SubMenuGrid: StoryObj = { { id: "guides", children: "Guides", - subMenuRows: 6, - subMenuColumns: 2, + subMenuGridLayout: { columns: 2, rows: 6 }, subMenu: [ { id: "guides-item-1", @@ -618,8 +617,7 @@ export const SubMenuGrid: StoryObj = { { id: "lifesg-app", children: "LifeSG app", - subMenuRows: 2, - subMenuColumns: 3, + subMenuGridLayout: { columns: 3, rows: 2 }, subMenu: [ { id: "app-item-1", diff --git a/tests/menu/menu.spec.tsx b/tests/menu/menu.spec.tsx index 5b3c25ac94..731e039b4c 100644 --- a/tests/menu/menu.spec.tsx +++ b/tests/menu/menu.spec.tsx @@ -237,9 +237,9 @@ describe("Menu", () => { }); describe("grid layout", () => { - it("should apply the grid class when both columns and rows are set", () => { + it("should apply the grid class when gridLayout is set", () => { render( - + A B @@ -250,34 +250,10 @@ describe("Menu", () => { ); }); - it("should not apply the grid class when only columns is set", () => { - render( - - A - - ); - - expect( - screen.getByTestId("menu-section").classList - ).not.toContain(menuSectionStyles.grid); - }); - - it("should not apply the grid class when only rows is set", () => { - render( - - A - - ); - - expect( - screen.getByTestId("menu-section").classList - ).not.toContain(menuSectionStyles.grid); - }); - it("should set the columns CSS variable when items exceed the visible count", () => { // 2 cols x 1 row = 2 visible; 3 items exceeds the cutoff render( - + A B C @@ -295,7 +271,7 @@ describe("Menu", () => { it("should not set the max-height CSS variable when all items fit within the visible count", () => { // 2 cols x 3 rows = 6 visible; 3 items all fit render( - + A B C @@ -314,7 +290,10 @@ describe("Menu", () => { // Regression guard for the LI-filter fix: the label element must // not displace the boundary item index in applyGridLayout. render( - + A B C diff --git a/tests/navbar/navbar.spec.tsx b/tests/navbar/navbar.spec.tsx index 29dd9c7ae8..1da9a27902 100644 --- a/tests/navbar/navbar.spec.tsx +++ b/tests/navbar/navbar.spec.tsx @@ -192,7 +192,7 @@ describe("Navbar", () => { } }); - it("should apply the grid layout when subMenuColumns and subMenuRows are both set", async () => { + it("should apply the grid layout when subMenuGridLayout is set", async () => { const user = userEvent.setup(); render(); @@ -203,33 +203,6 @@ describe("Navbar", () => { ).toHaveLength(1); }); - it("should fall back to the vertical list when only one of subMenuColumns/subMenuRows is set", async () => { - const user = userEvent.setup(); - render( - - ); - - await user.click(screen.getByTestId("link__1")); - - for (const label of MOCK_SUBMENU_LABELS) { - expect(screen.getByText(label)).toBeInTheDocument(); - } - expect( - document.body.getElementsByClassName(menuSectionStyles.grid) - ).toHaveLength(0); - }); - it("should move focus between grid items with ArrowDown", async () => { const user = userEvent.setup(); render(); @@ -300,8 +273,7 @@ function MOCK_GRID_ITEMS() { { id: "guides", children: "Guides", - subMenuColumns: 2, - subMenuRows: 2, + subMenuGridLayout: { columns: 2, rows: 2 }, subMenu: MOCK_SUBMENU_ITEMS(), }, ]; From e00a844b17fadf4c325031a7c0a71a27bcaae43b Mon Sep 17 00:00:00 2001 From: Fauzan Naufan Date: Tue, 22 Sep 2026 12:52:42 +0800 Subject: [PATCH 13/25] [MOL-22399][FN] fix: change orientation for the menu section grid --- src/menu/menu-section.styles.ts | 23 +++++++++++++---------- src/menu/menu-section.tsx | 25 +++++++++++-------------- src/navbar/navbar-items.tsx | 3 ++- tests/menu/menu.spec.tsx | 18 +++++++++--------- 4 files changed, 35 insertions(+), 34 deletions(-) diff --git a/src/menu/menu-section.styles.ts b/src/menu/menu-section.styles.ts index fc468aefe4..5f324102c9 100644 --- a/src/menu/menu-section.styles.ts +++ b/src/menu/menu-section.styles.ts @@ -3,8 +3,8 @@ import { css } from "@linaria/core"; import { Border, Colour, MediaQuery, Radius, Spacing } from "../theme/tokens"; export const gridTokens = { - columns: "--fds-menu-section-grid-columns", - maxHeight: "--fds-menu-section-grid-maxHeight", + rows: "--fds-menu-section-grid-rows", + maxWidth: "--fds-menu-section-grid-maxWidth", } as const; export const section = css` @@ -22,19 +22,21 @@ export const label = css` `; export const grid = css` - ${gridTokens.columns}: initial; - ${gridTokens.maxHeight}: initial; + ${gridTokens.rows}: initial; + ${gridTokens.maxWidth}: initial; display: grid; - grid-template-columns: repeat(var(${gridTokens.columns}), minmax(0, 1fr)); + grid-template-rows: repeat(var(${gridTokens.rows}), auto); + grid-auto-flow: column; + grid-auto-columns: 383px; column-gap: ${Spacing["spacing-8"]}; row-gap: ${Spacing["spacing-4"]}; - max-height: var(${gridTokens.maxHeight}); - overflow-y: auto; + max-width: var(${gridTokens.maxWidth}); + overflow-x: auto; &::-webkit-scrollbar { - width: 14px; + height: 14px; } &::-webkit-scrollbar-track { @@ -49,7 +51,8 @@ export const grid = css` } ${MediaQuery.MaxWidth.lg} { - grid-template-columns: 1fr; - max-height: none; + grid-template-rows: none; + grid-auto-flow: row; + max-width: none; } `; diff --git a/src/menu/menu-section.tsx b/src/menu/menu-section.tsx index 0377e5d22c..b1b1473833 100644 --- a/src/menu/menu-section.tsx +++ b/src/menu/menu-section.tsx @@ -28,16 +28,16 @@ export const MenuSection = ({ // ========================================================================= const childCount = Children.count(children); - const columnStyles = useMemo( + const gridRowStyles = useMemo( () => gridLayout - ? { [styles.gridTokens.columns]: String(gridLayout.columns) } + ? { [styles.gridTokens.rows]: String(gridLayout.rows) } : undefined, [gridLayout] ); - useApplyStyle(ulRef, columnStyles); + useApplyStyle(ulRef, gridRowStyles); - const applyMaxHeight = useCallback(() => { + const applyMaxWidth = useCallback(() => { if (!gridLayout) return; const grid = ulRef.current; if (!grid) return; @@ -45,7 +45,7 @@ export const MenuSection = ({ const { columns, rows } = gridLayout; const visibleCount = rows * columns; if (childCount <= visibleCount) { - grid.style.removeProperty(styles.gridTokens.maxHeight); + grid.style.removeProperty(styles.gridTokens.maxWidth); return; } @@ -57,21 +57,18 @@ export const MenuSection = ({ const boundaryItem = listItems[visibleCount]; if (!boundaryItem) return; - const rowGap = parseFloat(getComputedStyle(grid).rowGap) || 0; - const visibleHeight = boundaryItem.offsetTop - rowGap / 2; + const columnGap = parseFloat(getComputedStyle(grid).columnGap) || 0; + const visibleWidth = boundaryItem.offsetLeft - columnGap / 2; - grid.style.setProperty( - styles.gridTokens.maxHeight, - `${visibleHeight}px` - ); + grid.style.setProperty(styles.gridTokens.maxWidth, `${visibleWidth}px`); }, [gridLayout, childCount]); // ========================================================================= // EFFECTS // ========================================================================= useIsomorphicLayoutEffect(() => { - applyMaxHeight(); - }, [applyMaxHeight]); + applyMaxWidth(); + }, [applyMaxWidth]); useResizeDetector({ handleWidth: true, @@ -79,7 +76,7 @@ export const MenuSection = ({ skipOnMount: true, refreshMode: "throttle", targetRef: ulRef, - onResize: applyMaxHeight, + onResize: applyMaxWidth, }); // ============================================================================= diff --git a/src/navbar/navbar-items.tsx b/src/navbar/navbar-items.tsx index 636d60298c..fd3e9c82b5 100644 --- a/src/navbar/navbar-items.tsx +++ b/src/navbar/navbar-items.tsx @@ -33,7 +33,8 @@ const getLinkWeightClass = (weight: TypographyWeight) => { const getSubMenuGridMaxWidth = (columns: number) => columns * SUBMENU_GRID_COLUMN_WIDTH_PX + - (columns - 1) * SUBMENU_GRID_COLUMN_GAP_PX; + (columns - 1) * SUBMENU_GRID_COLUMN_GAP_PX + + 2; //border interface Props { items: NavItemProps[]; diff --git a/tests/menu/menu.spec.tsx b/tests/menu/menu.spec.tsx index 731e039b4c..d95bd2add2 100644 --- a/tests/menu/menu.spec.tsx +++ b/tests/menu/menu.spec.tsx @@ -250,7 +250,7 @@ describe("Menu", () => { ); }); - it("should set the columns CSS variable when items exceed the visible count", () => { + it("should set the rows CSS variable when items exceed the visible count", () => { // 2 cols x 1 row = 2 visible; 3 items exceeds the cutoff render( @@ -263,12 +263,12 @@ describe("Menu", () => { const section = screen.getByTestId("menu-section"); expect( section.style.getPropertyValue( - menuSectionStyles.gridTokens.columns + menuSectionStyles.gridTokens.rows ) - ).toBe("2"); + ).toBe("1"); }); - it("should not set the max-height CSS variable when all items fit within the visible count", () => { + it("should not set the max-width CSS variable when all items fit within the visible count", () => { // 2 cols x 3 rows = 6 visible; 3 items all fit render( @@ -281,14 +281,14 @@ describe("Menu", () => { const section = screen.getByTestId("menu-section"); expect( section.style.getPropertyValue( - menuSectionStyles.gridTokens.maxHeight + menuSectionStyles.gridTokens.maxWidth ) ).toBe(""); }); - it("should apply grid class and set columns variable when label is combined with columns and rows", () => { + it("should apply grid class and set rows variable when label is combined with columns and rows", () => { // Regression guard for the LI-filter fix: the label element must - // not displace the boundary item index in applyGridLayout. + // not displace the boundary item index in applyMaxWidth. render( { expect(section.classList).toContain(menuSectionStyles.grid); expect( section.style.getPropertyValue( - menuSectionStyles.gridTokens.columns + menuSectionStyles.gridTokens.rows ) - ).toBe("2"); + ).toBe("1"); }); }); }); From 320db909ffe45c3e99a7458a06af369756a43588 Mon Sep 17 00:00:00 2001 From: Fauzan Naufan Date: Tue, 22 Sep 2026 13:25:35 +0800 Subject: [PATCH 14/25] [MOL-22399][FN] chore: move max width calculation to menu-content --- src/menu/menu-content.tsx | 29 +++++++++++++++++++++++++---- src/menu/menu-section.styles.ts | 7 ++++++- src/menu/menu-section.tsx | 7 ++++++- src/menu/types.ts | 11 +---------- src/navbar/navbar-items.tsx | 18 +----------------- tests/menu/menu.spec.tsx | 28 +++++++++++++++++++++------- 6 files changed, 60 insertions(+), 40 deletions(-) diff --git a/src/menu/menu-content.tsx b/src/menu/menu-content.tsx index 2e86b2b068..0ac0bc2362 100644 --- a/src/menu/menu-content.tsx +++ b/src/menu/menu-content.tsx @@ -1,10 +1,17 @@ import clsx from "clsx"; import type React from "react"; -import { useRef } from "react"; +import { + Children, + isValidElement, + type ReactElement, + useMemo, + useRef, +} from "react"; import { useApplyStyle } from "../theme"; import * as styles from "./menu-content.styles"; -import type { MenuContentProps } from "./types"; +import * as sectionStyles from "./menu-section.styles"; +import type { MenuContentProps, MenuSectionProps } from "./types"; // ============================================================================= // HELPERS @@ -23,7 +30,6 @@ export const MenuContent = ({ "data-testid": testId = "menu-content", overflow, maxHeight, - maxWidth, ...otherProps }: MenuContentProps): JSX.Element => { // ============================================================================= @@ -31,11 +37,26 @@ export const MenuContent = ({ // ============================================================================= const panelRef = useRef(null); + const gridMaxWidth = useMemo(() => { + const gridSection = Children.toArray(children).find( + (child): child is ReactElement => + isValidElement(child) && + !!(child.props as MenuSectionProps).gridLayout + ); + const columns = gridSection?.props.gridLayout?.columns; + if (!columns) return undefined; + return ( + columns * sectionStyles.GRID_COLUMN_WIDTH_PX + + (columns - 1) * sectionStyles.GRID_COLUMN_GAP_PX + + 2 // border + ); + }, [children]); + useApplyStyle(panelRef, { [styles.tokens.panel.maxHeight]: maxHeight !== undefined ? `${maxHeight}px` : null, [styles.tokens.panel.maxWidth]: - maxWidth !== undefined ? `${maxWidth}px` : null, + gridMaxWidth !== undefined ? `${gridMaxWidth}px` : null, [styles.tokens.panel.overflow]: overflow || null, }); // ============================================================================= diff --git a/src/menu/menu-section.styles.ts b/src/menu/menu-section.styles.ts index 5f324102c9..dbdb19e42d 100644 --- a/src/menu/menu-section.styles.ts +++ b/src/menu/menu-section.styles.ts @@ -7,6 +7,11 @@ export const gridTokens = { maxWidth: "--fds-menu-section-grid-maxWidth", } as const; +// 367px max content width (Figma) + 8px padding on each side; matches grid-auto-columns below +export const GRID_COLUMN_WIDTH_PX = 383; +// matches Spacing["spacing-8"] +export const GRID_COLUMN_GAP_PX = 8; + export const section = css` padding: ${Spacing["spacing-8"]} 0; margin: 0; @@ -28,7 +33,7 @@ export const grid = css` display: grid; grid-template-rows: repeat(var(${gridTokens.rows}), auto); grid-auto-flow: column; - grid-auto-columns: 383px; + grid-auto-columns: ${GRID_COLUMN_WIDTH_PX}px; column-gap: ${Spacing["spacing-8"]}; row-gap: ${Spacing["spacing-4"]}; diff --git a/src/menu/menu-section.tsx b/src/menu/menu-section.tsx index b1b1473833..953aa83ed1 100644 --- a/src/menu/menu-section.tsx +++ b/src/menu/menu-section.tsx @@ -58,7 +58,12 @@ export const MenuSection = ({ if (!boundaryItem) return; const columnGap = parseFloat(getComputedStyle(grid).columnGap) || 0; - const visibleWidth = boundaryItem.offsetLeft - columnGap / 2; + const visibleWidth = + boundaryItem.getBoundingClientRect().left - + grid.getBoundingClientRect().left - + columnGap / 2; + + console.log(boundaryItem, columnGap, visibleWidth); grid.style.setProperty(styles.gridTokens.maxWidth, `${visibleWidth}px`); }, [gridLayout, childCount]); diff --git a/src/menu/types.ts b/src/menu/types.ts index bc13173813..65bcd2d3bb 100644 --- a/src/menu/types.ts +++ b/src/menu/types.ts @@ -12,7 +12,6 @@ import type { } from "../popover"; import type { MenuItem } from "./menu-item"; import type { MenuLink } from "./menu-link"; -import type { MenuSection } from "./menu-section"; // @storybookSection Menu /** @@ -41,16 +40,8 @@ export interface MenuContentProps extends HTMLAttributes, PopoverRenderProps { /** One or more `Menu.Section` elements that make up the panel body. */ - children: - | ReactElement - | ReactElement[]; + children: ReactElement | ReactElement[]; "data-testid"?: string | undefined; - /** - * Maximum width of the panel in pixels. - * - * @default 24rem (384px at the default 16px root font size) - */ - maxWidth?: number | undefined; } // @storybookSkipProps diff --git a/src/navbar/navbar-items.tsx b/src/navbar/navbar-items.tsx index fd3e9c82b5..a013e03c74 100644 --- a/src/navbar/navbar-items.tsx +++ b/src/navbar/navbar-items.tsx @@ -15,10 +15,6 @@ import type { NavItemProps, } from "./types"; -// 367px max content width (Figma) + 8px padding on each side -const SUBMENU_GRID_COLUMN_WIDTH_PX = 383; -const SUBMENU_GRID_COLUMN_GAP_PX = 8; - const getLinkWeightClass = (weight: TypographyWeight) => { switch (weight) { case "bold": @@ -31,11 +27,6 @@ const getLinkWeightClass = (weight: TypographyWeight) => { } }; -const getSubMenuGridMaxWidth = (columns: number) => - columns * SUBMENU_GRID_COLUMN_WIDTH_PX + - (columns - 1) * SUBMENU_GRID_COLUMN_GAP_PX + - 2; //border - interface Props { items: NavItemProps[]; selectedId?: string | undefined; @@ -145,14 +136,7 @@ export const NavbarItems = ({ subMenuId: string, gridLayout?: { columns: number; rows: number } ) => ( - + { expect(screen.getByText("hello")).toBeInTheDocument(); }); - it("should set the maxWidth CSS variable on the panel when provided", () => { + it("should not set the maxWidth CSS variable when no section has gridLayout", () => { render( - -
                  hello
                  + + + Item + ); const panel = screen.getByTestId("menu-content"); expect( panel.style.getPropertyValue(menuContentTokens.panel.maxWidth) - ).toBe("640px"); + ).toBe(""); }); - it("should not set the maxWidth CSS variable when not provided", () => { + it("should auto-set the maxWidth CSS variable based on gridLayout columns", () => { + const columns = 2; + const expectedWidth = + columns * menuSectionStyles.GRID_COLUMN_WIDTH_PX + + (columns - 1) * menuSectionStyles.GRID_COLUMN_GAP_PX + + 2; + render( -
                  hello
                  + + A + B +
                  ); const panel = screen.getByTestId("menu-content"); expect( panel.style.getPropertyValue(menuContentTokens.panel.maxWidth) - ).toBe(""); + ).toBe(`${expectedWidth}px`); }); it("should move focus forward with ArrowDown", () => { From fd235fbd361ca3f5c6867fd67d063f5c4e196617 Mon Sep 17 00:00:00 2001 From: Fauzan Naufan Date: Tue, 22 Sep 2026 14:36:37 +0800 Subject: [PATCH 15/25] [MOL-22399][FN] fix: address PR comments --- src/menu/menu-content.styles.ts | 16 ++--------- src/menu/menu-item.styles.ts | 2 +- src/menu/menu-link.styles.ts | 2 +- src/menu/menu-section.styles.ts | 19 +++---------- src/menu/menu-section.tsx | 47 +++++++++++++++++++++++++-------- src/navbar/navbar-items.tsx | 4 +-- src/shared/styles/index.ts | 23 ++++++++++++++++ 7 files changed, 68 insertions(+), 45 deletions(-) diff --git a/src/menu/menu-content.styles.ts b/src/menu/menu-content.styles.ts index e71351e630..389c3336d4 100644 --- a/src/menu/menu-content.styles.ts +++ b/src/menu/menu-content.styles.ts @@ -1,5 +1,6 @@ import { css } from "@linaria/core"; +import { scrollbarCss } from "../shared/styles"; import { Border, Breakpoint, @@ -56,18 +57,5 @@ export const panel = css` outline: none; } - &::-webkit-scrollbar { - width: 14px; - } - - &::-webkit-scrollbar-track { - background: transparent; - } - - &::-webkit-scrollbar-thumb { - background: ${Colour["bg-inverse-subtlest"]}; - border: 5px solid transparent; - border-radius: ${Radius["full"]}; - background-clip: padding-box; - } + ${scrollbarCss("vertical")} `; diff --git a/src/menu/menu-item.styles.ts b/src/menu/menu-item.styles.ts index 6bfd6ca835..5a0402d799 100644 --- a/src/menu/menu-item.styles.ts +++ b/src/menu/menu-item.styles.ts @@ -5,7 +5,7 @@ import { Colour, Spacing } from "../theme/tokens"; export const menuItemDiv = css` display: flex; flex-direction: column; - padding: ${Spacing["spacing-8"]} ${Spacing["spacing-16"]}; + padding: ${Spacing["spacing-12"]} ${Spacing["spacing-16"]}; `; export const text = css` diff --git a/src/menu/menu-link.styles.ts b/src/menu/menu-link.styles.ts index c98a0aca35..cfe7b2baad 100644 --- a/src/menu/menu-link.styles.ts +++ b/src/menu/menu-link.styles.ts @@ -14,7 +14,7 @@ export const link = css` margin: 0 ${Spacing["spacing-8"]}; border: ${Border["solid"]} transparent; - border-width: ${Spacing["spacing-8"]} ${Spacing["spacing-8"]}; + border-width: ${Spacing["spacing-12"]} ${Spacing["spacing-8"]}; border-radius: ${Radius["md"]}; diff --git a/src/menu/menu-section.styles.ts b/src/menu/menu-section.styles.ts index dbdb19e42d..b2d1df8edc 100644 --- a/src/menu/menu-section.styles.ts +++ b/src/menu/menu-section.styles.ts @@ -1,6 +1,7 @@ import { css } from "@linaria/core"; -import { Border, Colour, MediaQuery, Radius, Spacing } from "../theme/tokens"; +import { scrollbarCss } from "../shared/styles"; +import { Border, Colour, MediaQuery, Spacing } from "../theme/tokens"; export const gridTokens = { rows: "--fds-menu-section-grid-rows", @@ -35,25 +36,11 @@ export const grid = css` grid-auto-flow: column; grid-auto-columns: ${GRID_COLUMN_WIDTH_PX}px; column-gap: ${Spacing["spacing-8"]}; - row-gap: ${Spacing["spacing-4"]}; max-width: var(${gridTokens.maxWidth}); overflow-x: auto; - &::-webkit-scrollbar { - height: 14px; - } - - &::-webkit-scrollbar-track { - background: transparent; - } - - &::-webkit-scrollbar-thumb { - background: ${Colour["bg-inverse-subtlest"]}; - border: 5px solid transparent; - border-radius: ${Radius["full"]}; - background-clip: padding-box; - } + ${scrollbarCss("horizontal")} ${MediaQuery.MaxWidth.lg} { grid-template-rows: none; diff --git a/src/menu/menu-section.tsx b/src/menu/menu-section.tsx index 953aa83ed1..ab77ad8843 100644 --- a/src/menu/menu-section.tsx +++ b/src/menu/menu-section.tsx @@ -63,8 +63,6 @@ export const MenuSection = ({ grid.getBoundingClientRect().left - columnGap / 2; - console.log(boundaryItem, columnGap, visibleWidth); - grid.style.setProperty(styles.gridTokens.maxWidth, `${visibleWidth}px`); }, [gridLayout, childCount]); @@ -87,6 +85,41 @@ export const MenuSection = ({ // ============================================================================= // RENDER FUNCTIONS // ============================================================================= + const labelElement = label ? ( + + {label} + + ) : null; + + // When gridLayout + label: render label outside the
                    so it is never + // a grid item. The
                      is the CSS grid container and must only hold
                    • s. + if (gridLayout && label) { + return ( +
                      + {labelElement} +
                        + {children} +
                      +
                      + ); + } + return (
                        - {label && ( - - {label} - - )} + {labelElement} {children}
                      ); diff --git a/src/navbar/navbar-items.tsx b/src/navbar/navbar-items.tsx index a013e03c74..a0c035d2d9 100644 --- a/src/navbar/navbar-items.tsx +++ b/src/navbar/navbar-items.tsx @@ -166,7 +166,7 @@ export const NavbarItems = ({ children, options, subMenu, - subMenuGridLayout: _subMenuGridLayout, + subMenuGridLayout, ...otherItemAttrs } = item; @@ -289,7 +289,7 @@ export const NavbarItems = ({ menuContent={renderDesktopSubMenu( subMenu!, subMenuId, - item.subMenuGridLayout + subMenuGridLayout )} triggerOnFocus isModal={false} diff --git a/src/shared/styles/index.ts b/src/shared/styles/index.ts index 37a725e891..476b2ff6e0 100644 --- a/src/shared/styles/index.ts +++ b/src/shared/styles/index.ts @@ -1,3 +1,26 @@ +import { Colour, Radius } from "../../theme/tokens"; + +/** + * Generates CSS for a styled scrollbar. Pass "vertical" for panels that scroll + * vertically and "horizontal" for containers that scroll horizontally. + */ +export const scrollbarCss = (axis: "vertical" | "horizontal") => ` + &::-webkit-scrollbar { + ${axis === "vertical" ? "width" : "height"}: 14px; + } + + &::-webkit-scrollbar-track { + background: transparent; + } + + &::-webkit-scrollbar-thumb { + background: ${Colour["bg-inverse-subtlest"]}; + border: 5px solid transparent; + border-radius: ${Radius["full"]}; + background-clip: padding-box; + } +`; + /** * Generates CSS for limiting text to a specified number of lines after which it * is truncated with an ellipsis. From a6304ea2fef37531c530df5c67c5bd04b6bc2dc7 Mon Sep 17 00:00:00 2001 From: Fauzan Naufan Date: Tue, 22 Sep 2026 14:37:08 +0800 Subject: [PATCH 16/25] [MOL-22399][FN] chore: update storybook --- stories/menu/menu.mdx | 18 +++++++++ stories/menu/menu.stories.tsx | 69 +++++++++++++++++++++++++++++++++++ stories/navbar/navbar.mdx | 6 +++ 3 files changed, 93 insertions(+) diff --git a/stories/menu/menu.mdx b/stories/menu/menu.mdx index 84cb5c0088..cddbd065a0 100644 --- a/stories/menu/menu.mdx +++ b/stories/menu/menu.mdx @@ -31,6 +31,24 @@ import { Menu } from "@lifesg/react-design-system/menu"; +## Multiple sections with mixed layouts + +Sections with different layouts can be combined in a single `Menu.Content`. In this example a regular list section sits alongside a grid section. + + + +## Grid layout + +`Menu.Section` can display links in a multi-column grid by setting the `gridLayout` prop. + + + +## Grid layout with label + +A section label can be combined with `gridLayout`. The label spans the full width above the grid columns. + + + ## Resize and flip As the menu extends [PopoverTrigger](/docs/overlays-popover--docs), resize and diff --git a/stories/menu/menu.stories.tsx b/stories/menu/menu.stories.tsx index 18491437ea..a77f052c10 100644 --- a/stories/menu/menu.stories.tsx +++ b/stories/menu/menu.stories.tsx @@ -55,6 +55,75 @@ export const MenuContent: StoryObj = { }, }; +export const MultipleSections: StoryObj = { + render: (_args) => { + return ( + + + Link A + Link B + Link C + + + Link 1 + Link 2 + Link 3 + Link 4 + Link 5 + Link 6 + Link 7 + + + ); + }, +}; + +export const GridLayout: StoryObj = { + render: (_args) => { + return ( + + + Link 1 + Link 2 + Link 3 + Link 4 + Link 5 + Link 6 + Link 7 + Link 8 + + + ); + }, +}; + +export const GridLayoutWithLabel: StoryObj = { + render: (_args) => { + return ( + + + Link 1 + Link 2 + Link 3 + Link 4 + Link 5 + Link 6 + Link 7 + + + ); + }, +}; + export const ResizeAndFlip: StoryObj = { args: { menuContent: menuContent, diff --git a/stories/navbar/navbar.mdx b/stories/navbar/navbar.mdx index 1793c574d4..fd8a5f62d6 100644 --- a/stories/navbar/navbar.mdx +++ b/stories/navbar/navbar.mdx @@ -77,6 +77,12 @@ A sub menu is shown if the selected nav item has sublinks. +## Sub menu with grid layout + +A sub menu can display links in a multi-column grid by setting `subMenuGridLayout` on the nav item. + + + ## Secondary branding In this example, a co-brand is displayed next to the primary brand. From df8e19d799caf21db83e6fd484acdf578a5f43ad Mon Sep 17 00:00:00 2001 From: Fauzan Naufan Date: Tue, 22 Sep 2026 14:39:56 +0800 Subject: [PATCH 17/25] [MOL-22399][FN] test: adjust unit test and e2e --- .../menu/grid-layout-with-label.e2e.tsx | 24 ++++ .../app/components/menu/grid-layout.e2e.tsx | 25 ++++ ...ers-grid-with-label-above-items--state.png | Bin 0 -> 5777 bytes ...s-grid-with-scrollable-overflow--state.png | Bin 0 -> 4592 bytes e2e/tests/components/menu/menu.e2e.spec.ts | 107 +++++++++++++++ tests/menu/menu.spec.tsx | 127 ------------------ tests/navbar/navbar.spec.tsx | 70 +--------- 7 files changed, 157 insertions(+), 196 deletions(-) create mode 100644 e2e/nextjs-app/src/app/components/menu/grid-layout-with-label.e2e.tsx create mode 100644 e2e/nextjs-app/src/app/components/menu/grid-layout.e2e.tsx create mode 100644 e2e/tests/components/menu/__screenshots__/chromium/Menu-Grid-layout-renders-grid-with-label-above-items--state.png create mode 100644 e2e/tests/components/menu/__screenshots__/chromium/Menu-Grid-layout-renders-grid-with-scrollable-overflow--state.png diff --git a/e2e/nextjs-app/src/app/components/menu/grid-layout-with-label.e2e.tsx b/e2e/nextjs-app/src/app/components/menu/grid-layout-with-label.e2e.tsx new file mode 100644 index 0000000000..b2379d2109 --- /dev/null +++ b/e2e/nextjs-app/src/app/components/menu/grid-layout-with-label.e2e.tsx @@ -0,0 +1,24 @@ +"use client"; + +import { Menu } from "@lifesg/react-design-system/menu"; + +export default function Story() { + return ( +
                      + + + Link 1 + Link 2 + Link 3 + Link 4 + Link 5 + Link 6 + Link 7 + + +
                      + ); +} diff --git a/e2e/nextjs-app/src/app/components/menu/grid-layout.e2e.tsx b/e2e/nextjs-app/src/app/components/menu/grid-layout.e2e.tsx new file mode 100644 index 0000000000..f84686b2f4 --- /dev/null +++ b/e2e/nextjs-app/src/app/components/menu/grid-layout.e2e.tsx @@ -0,0 +1,25 @@ +"use client"; + +import { Menu } from "@lifesg/react-design-system/menu"; + +export default function Story() { + return ( +
                      + + + Link 1 + Link 2 + Link 3 + Link 4 + Link 5 + Link 6 + Link 7 + Link 8 + + +
                      + ); +} diff --git a/e2e/tests/components/menu/__screenshots__/chromium/Menu-Grid-layout-renders-grid-with-label-above-items--state.png b/e2e/tests/components/menu/__screenshots__/chromium/Menu-Grid-layout-renders-grid-with-label-above-items--state.png new file mode 100644 index 0000000000000000000000000000000000000000..f91021915311bac44daf6d76ebbeaeaf21a9edf3 GIT binary patch literal 5777 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 literal 0 HcmV?d00001 diff --git a/e2e/tests/components/menu/__screenshots__/chromium/Menu-Grid-layout-renders-grid-with-scrollable-overflow--state.png b/e2e/tests/components/menu/__screenshots__/chromium/Menu-Grid-layout-renders-grid-with-scrollable-overflow--state.png new file mode 100644 index 0000000000000000000000000000000000000000..3786ad1c3e8323383ef30cb84c35d8142f52b854 GIT binary patch literal 4592 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 literal 0 HcmV?d00001 diff --git a/e2e/tests/components/menu/menu.e2e.spec.ts b/e2e/tests/components/menu/menu.e2e.spec.ts index b4c14ab38a..2bf129700e 100644 --- a/e2e/tests/components/menu/menu.e2e.spec.ts +++ b/e2e/tests/components/menu/menu.e2e.spec.ts @@ -215,4 +215,111 @@ test.describe("Menu", () => { }); } }); + + test.describe("Grid layout", () => { + test.describe(() => { + test.beforeEach(async ({ story }) => { + await story.init("grid-layout"); + }); + + test("renders grid with scrollable overflow", async ({ story }) => { + const content = story.page.getByTestId("menu-content"); + const section = story.page.getByTestId("menu-section"); + + await expect(content).toBeVisible(); + await expect( + section.getByRole("link", { name: "Link 1" }) + ).toBeVisible(); + await expect( + section.getByRole("link", { name: "Link 8" }) + ).toBeVisible(); + + await compareScreenshot(story, "state", { + locator: content, + }); + }); + + test("keyboard navigation moves through grid items", async ({ + story, + }) => { + const content = story.page.getByTestId("menu-content"); + const link1 = story.page.getByRole("link", { name: "Link 1" }); + const link2 = story.page.getByRole("link", { name: "Link 2" }); + const link8 = story.page.getByRole("link", { name: "Link 8" }); + + await expect(content).toBeVisible(); + + await link1.focus(); + await expect(link1).toBeFocused(); + + await story.page.keyboard.press("ArrowDown"); + await expect(link2).toBeFocused(); + + // wrap from last to first + await link8.focus(); + await story.page.keyboard.press("ArrowDown"); + await expect(link1).toBeFocused(); + }); + }); + + test.describe(() => { + test.beforeEach(async ({ story }) => { + await story.init("grid-layout-with-label"); + }); + + test("renders grid with label above items", async ({ story }) => { + const content = story.page.getByTestId("menu-content"); + const label = story.page.getByText("Category"); + const link1 = story.page.getByRole("link", { name: "Link 1" }); + + await expect(content).toBeVisible(); + await expect(label).toBeVisible(); + + const labelBox = await label.boundingBox(); + const link1Box = await link1.boundingBox(); + + if (!labelBox || !link1Box) { + throw new Error("Could not get bounding boxes"); + } + + // label should sit above all link rows + expect(labelBox.y + labelBox.height).toBeLessThanOrEqual( + link1Box.y + ); + + await compareScreenshot(story, "state", { + locator: content, + }); + }); + + test("label does not occupy a grid column slot", async ({ + story, + }) => { + // With 3 columns and 2 rows the first 6 links fill the visible + // area; link 7 should overflow into column 4, not row 1 col 1. + const link1Box = await story.page + .getByRole("link", { name: "Link 1" }) + .boundingBox(); + const link4Box = await story.page + .getByRole("link", { name: "Link 4" }) + .boundingBox(); + const link7Box = await story.page + .getByRole("link", { name: "Link 7" }) + .boundingBox(); + + if (!link1Box || !link4Box || !link7Box) { + throw new Error("Could not get bounding boxes"); + } + + // link 1 and link 4 should be in different columns (same row) + expect(link4Box.x).toBeGreaterThan(link1Box.x); + + // link 7 overflows to col 4 — its x should be greater than link 4 + expect(link7Box.x).toBeGreaterThan(link4Box.x); + + // link 7 must share the same top-row y as link 1 (row 1 of items) + expect(link7Box.y).toBeCloseTo(link1Box.y, 0); + }); + }); + }); }); diff --git a/tests/menu/menu.spec.tsx b/tests/menu/menu.spec.tsx index 6bd2a858a1..f831d8a0c7 100644 --- a/tests/menu/menu.spec.tsx +++ b/tests/menu/menu.spec.tsx @@ -2,8 +2,6 @@ import "@testing-library/jest-dom"; import { fireEvent, render, screen } from "@testing-library/react"; import { Menu } from "src/menu"; -import { tokens as menuContentTokens } from "src/menu/menu-content.styles"; -import * as menuSectionStyles from "src/menu/menu-section.styles"; describe("Menu", () => { describe("Menu.Content", () => { @@ -18,46 +16,6 @@ describe("Menu", () => { expect(screen.getByText("hello")).toBeInTheDocument(); }); - it("should not set the maxWidth CSS variable when no section has gridLayout", () => { - render( - - - Item - - - ); - - const panel = screen.getByTestId("menu-content"); - expect( - panel.style.getPropertyValue(menuContentTokens.panel.maxWidth) - ).toBe(""); - }); - - it("should auto-set the maxWidth CSS variable based on gridLayout columns", () => { - const columns = 2; - const expectedWidth = - columns * menuSectionStyles.GRID_COLUMN_WIDTH_PX + - (columns - 1) * menuSectionStyles.GRID_COLUMN_GAP_PX + - 2; - - render( - - - A - B - - - ); - - const panel = screen.getByTestId("menu-content"); - expect( - panel.style.getPropertyValue(menuContentTokens.panel.maxWidth) - ).toBe(`${expectedWidth}px`); - }); - it("should move focus forward with ArrowDown", () => { render( @@ -249,90 +207,5 @@ describe("Menu", () => { expect(screen.getByRole("link", { name: "A" })).toBeInTheDocument(); }); - - describe("grid layout", () => { - it("should apply the grid class when gridLayout is set", () => { - render( - - A - B - - ); - - expect(screen.getByTestId("menu-section").classList).toContain( - menuSectionStyles.grid - ); - }); - - it("should set the rows CSS variable when items exceed the visible count", () => { - // 2 cols x 1 row = 2 visible; 3 items exceeds the cutoff - render( - - A - B - C - - ); - - const section = screen.getByTestId("menu-section"); - expect( - section.style.getPropertyValue( - menuSectionStyles.gridTokens.rows - ) - ).toBe("1"); - }); - - it("should not set the max-width CSS variable when all items fit within the visible count", () => { - // 2 cols x 3 rows = 6 visible; 3 items all fit - render( - - A - B - C - - ); - - const section = screen.getByTestId("menu-section"); - expect( - section.style.getPropertyValue( - menuSectionStyles.gridTokens.maxWidth - ) - ).toBe(""); - }); - - it("should apply grid class and set rows variable when label is combined with columns and rows", () => { - // Regression guard for the LI-filter fix: the label element must - // not displace the boundary item index in applyMaxWidth. - render( - - A - B - C - - ); - - expect(screen.getByText("My section")).toBeInTheDocument(); - expect( - screen.getByRole("link", { name: "A" }) - ).toBeInTheDocument(); - expect( - screen.getByRole("link", { name: "B" }) - ).toBeInTheDocument(); - expect( - screen.getByRole("link", { name: "C" }) - ).toBeInTheDocument(); - - const section = screen.getByTestId("menu-section"); - expect(section.classList).toContain(menuSectionStyles.grid); - expect( - section.style.getPropertyValue( - menuSectionStyles.gridTokens.rows - ) - ).toBe("1"); - }); - }); }); }); diff --git a/tests/navbar/navbar.spec.tsx b/tests/navbar/navbar.spec.tsx index 1da9a27902..a4ee8a2148 100644 --- a/tests/navbar/navbar.spec.tsx +++ b/tests/navbar/navbar.spec.tsx @@ -1,6 +1,5 @@ -import { fireEvent, render, screen } from "@testing-library/react"; +import { render, screen } from "@testing-library/react"; import userEvent from "@testing-library/user-event"; -import * as menuSectionStyles from "src/menu/menu-section.styles"; import { Navbar } from "src/navbar"; describe("Navbar", () => { @@ -179,50 +178,6 @@ describe("Navbar", () => { ); }); }); - - describe("Submenu grid", () => { - it("should render all subMenu item labels even when the visible cutoff is exceeded", async () => { - const user = userEvent.setup(); - render(); - - await user.click(screen.getByTestId("link__1")); - - for (const label of MOCK_SUBMENU_LABELS) { - expect(screen.getByText(label)).toBeInTheDocument(); - } - }); - - it("should apply the grid layout when subMenuGridLayout is set", async () => { - const user = userEvent.setup(); - render(); - - await user.click(screen.getByTestId("link__1")); - - expect( - document.body.getElementsByClassName(menuSectionStyles.grid) - ).toHaveLength(1); - }); - - it("should move focus between grid items with ArrowDown", async () => { - const user = userEvent.setup(); - render(); - - await user.click(screen.getByTestId("link__1")); - - const panel = screen.getByTestId("menu-content"); - const first = screen.getByRole("link", { name: "Sub item 1" }); - const second = screen.getByRole("link", { name: "Sub item 2" }); - - first.focus(); - expect(first).toHaveFocus(); - - fireEvent.keyDown(panel, { key: "ArrowDown" }); - expect(second).toHaveFocus(); - - fireEvent.keyDown(panel, { key: "ArrowUp" }); - expect(first).toHaveFocus(); - }); - }); }); // ============================================================================= @@ -255,26 +210,3 @@ function MOCK_COLLAPSIBLE_BUTTON() { args: { children: "Uncollapsible" }, }; } - -function MOCK_SUBMENU_ITEMS() { - return [ - { id: "sub-1", children: "Sub item 1", href: "#" }, - { id: "sub-2", children: "Sub item 2", href: "#" }, - { id: "sub-3", children: "Sub item 3", href: "#" }, - { id: "sub-4", children: "Sub item 4", href: "#" }, - { id: "sub-5", children: "Sub item 5", href: "#" }, - ]; -} - -const MOCK_SUBMENU_LABELS = MOCK_SUBMENU_ITEMS().map((item) => item.children); - -function MOCK_GRID_ITEMS() { - return [ - { - id: "guides", - children: "Guides", - subMenuGridLayout: { columns: 2, rows: 2 }, - subMenu: MOCK_SUBMENU_ITEMS(), - }, - ]; -} From 8a5b71a5e38bbaa79f5f6d214c03de30827061ae Mon Sep 17 00:00:00 2001 From: Fauzan Naufan Date: Tue, 22 Sep 2026 15:32:08 +0800 Subject: [PATCH 18/25] [MOL-22399][FN] fix: address code review findings --- .../src/app/components/navbar/common.ts | 3 +-- .../Navbar-Submenu-Grid-Open--state.png | Bin 26594 -> 26410 bytes ...beyond-the-visible-grid-rows--scrolled.png | Bin 26655 -> 26566 bytes src/menu/menu-content.tsx | 25 +++++++++++------- src/menu/menu-section.tsx | 17 ++++++------ 5 files changed, 24 insertions(+), 21 deletions(-) diff --git a/e2e/nextjs-app/src/app/components/navbar/common.ts b/e2e/nextjs-app/src/app/components/navbar/common.ts index d3b2b9a622..a626fd51d4 100644 --- a/e2e/nextjs-app/src/app/components/navbar/common.ts +++ b/e2e/nextjs-app/src/app/components/navbar/common.ts @@ -82,8 +82,7 @@ export const navItemsWithSubmenuGrid: NavItemProps[] = [ { id: "guides", children: "Guides", - subMenuColumns: 3, - subMenuRows: 3, + subMenuGridLayout: { columns: 3, rows: 3 }, subMenu: Array.from({ length: 12 }, (_, index) => ({ id: `guides-item-${index + 1}`, children: `Guides item ${index + 1}`, diff --git a/e2e/tests/components/navbar/__screenshots__/chromium/Navbar-Submenu-Grid-Open--state.png b/e2e/tests/components/navbar/__screenshots__/chromium/Navbar-Submenu-Grid-Open--state.png index 4cd1151ad17716d4bf99c883084e51052f827c9d..31465a408cb04a4fd1173208c7125779a9b276c8 100644 GIT binary patch literal 26410 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 literal 26594 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 literal 26655 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 diff --git a/src/menu/menu-content.tsx b/src/menu/menu-content.tsx index 0ac0bc2362..de86a7ad3f 100644 --- a/src/menu/menu-content.tsx +++ b/src/menu/menu-content.tsx @@ -38,17 +38,22 @@ export const MenuContent = ({ const panelRef = useRef(null); const gridMaxWidth = useMemo(() => { - const gridSection = Children.toArray(children).find( - (child): child is ReactElement => - isValidElement(child) && - !!(child.props as MenuSectionProps).gridLayout - ); - const columns = gridSection?.props.gridLayout?.columns; - if (!columns) return undefined; + const maxColumns = Children.toArray(children) + .filter( + (child): child is ReactElement => + isValidElement(child) && + !!(child.props as MenuSectionProps).gridLayout + ) + .reduce( + (max, child) => + Math.max(max, child.props.gridLayout?.columns ?? 0), + 0 + ); + if (!maxColumns) return undefined; return ( - columns * sectionStyles.GRID_COLUMN_WIDTH_PX + - (columns - 1) * sectionStyles.GRID_COLUMN_GAP_PX + - 2 // border + maxColumns * sectionStyles.GRID_COLUMN_WIDTH_PX + + (maxColumns - 1) * sectionStyles.GRID_COLUMN_GAP_PX + + 2 // 1px border × 2 sides ); }, [children]); diff --git a/src/menu/menu-section.tsx b/src/menu/menu-section.tsx index ab77ad8843..f4cb246e74 100644 --- a/src/menu/menu-section.tsx +++ b/src/menu/menu-section.tsx @@ -27,30 +27,29 @@ export const MenuSection = ({ // HELPER FUNCTIONS // ========================================================================= const childCount = Children.count(children); + const gridColumns = gridLayout?.columns; + const gridRows = gridLayout?.rows; const gridRowStyles = useMemo( () => - gridLayout - ? { [styles.gridTokens.rows]: String(gridLayout.rows) } + gridRows !== undefined + ? { [styles.gridTokens.rows]: String(gridRows) } : undefined, - [gridLayout] + [gridRows] ); useApplyStyle(ulRef, gridRowStyles); const applyMaxWidth = useCallback(() => { - if (!gridLayout) return; + if (gridColumns === undefined || gridRows === undefined) return; const grid = ulRef.current; if (!grid) return; - const { columns, rows } = gridLayout; - const visibleCount = rows * columns; + const visibleCount = gridRows * gridColumns; if (childCount <= visibleCount) { grid.style.removeProperty(styles.gridTokens.maxWidth); return; } - // Filter to
                    • only: the label element (if present) is also a direct - // child of the
                        but must not be counted as a grid item. const listItems = Array.from(grid.children).filter( (el) => el.tagName === "LI" ) as HTMLElement[]; @@ -64,7 +63,7 @@ export const MenuSection = ({ columnGap / 2; grid.style.setProperty(styles.gridTokens.maxWidth, `${visibleWidth}px`); - }, [gridLayout, childCount]); + }, [gridColumns, gridRows, childCount]); // ========================================================================= // EFFECTS From 5bcbbd620767d68127a6d414de0d9df4e1a0ace5 Mon Sep 17 00:00:00 2001 From: Fauzan Naufan Date: Tue, 22 Sep 2026 17:31:20 +0800 Subject: [PATCH 19/25] [MOL-22399][FN] chore: update e2e screenshot for failed items --- .../src/app/components/menu/overflow.e2e.tsx | 2 +- .../chromium/Menu-Default-Mobile--state.png | Bin 19393 -> 19384 bytes .../chromium/Menu-Default-Mount--state.png | Bin 23154 -> 23149 bytes .../chromium/Menu-Overflow--state.png | Bin 9529 -> 9703 bytes ...Menu-Placements-position-bottom--state.png | Bin 14252 -> 14154 bytes ...-Placements-position-bottom-end--state.png | Bin 15571 -> 15570 bytes ...lacements-position-bottom-start--state.png | Bin 13970 -> 13853 bytes .../Menu-Placements-position-left--state.png | Bin 14690 -> 14665 bytes .../Menu-Placements-position-right--state.png | Bin 14923 -> 14894 bytes .../Menu-Placements-position-top--state.png | Bin 13633 -> 13524 bytes .../Menu-Variants-Section-and-Item--state.png | Bin 17790 -> 17997 bytes .../chromium/Navbar-Submenu-Open--state.png | Bin 26732 -> 26731 bytes .../Navbar-Submenu-Open-last-item--state.png | Bin 27624 -> 27624 bytes 13 files changed, 1 insertion(+), 1 deletion(-) diff --git a/e2e/nextjs-app/src/app/components/menu/overflow.e2e.tsx b/e2e/nextjs-app/src/app/components/menu/overflow.e2e.tsx index 490d646a08..883d460940 100644 --- a/e2e/nextjs-app/src/app/components/menu/overflow.e2e.tsx +++ b/e2e/nextjs-app/src/app/components/menu/overflow.e2e.tsx @@ -5,7 +5,7 @@ import { Menu } from "@lifesg/react-design-system/menu"; export default function Story() { return (
                        - + Overflow item 1 Overflow item 2 diff --git a/e2e/tests/components/menu/__screenshots__/chromium/Menu-Default-Mobile--state.png b/e2e/tests/components/menu/__screenshots__/chromium/Menu-Default-Mobile--state.png index 0fbd58fd08f0de7cc073192445ccb2c406db6469..c01f87374425ca44bf5ac3599f3c356d1ff0970a 100644 GIT binary patch delta 14226 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 delta 14234 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

                        NE=%TEV3_lL_!}UE_?MFyT}f;yUht5~%m~ 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 delta 12556 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%0DjC$4g7a#5+5}kEx=uT)grq?MVK@ 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 diff --git a/e2e/tests/components/menu/__screenshots__/chromium/Menu-Overflow--state.png b/e2e/tests/components/menu/__screenshots__/chromium/Menu-Overflow--state.png index 4521121e2b9d4f4cacc598613428aa21fe27d278..c623adc867e85d0b46235432dbd4bdde19643ece 100644 GIT binary patch literal 9703 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 delta 10195 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 delta 2807 zcmYLLdpy+X8vji)RxY!xwMrqUMQL4f$z@{LlI)aD5i16Zu3}tAjG5o4jm}mQM^-gv z+r$wWk(`E^A#KB|#$B2lkuk#<%#1Pjo%Z~3{(Ro&ec#Xb{XWn4dB4N?Bl#`6TtPVm zy5&cVi%MAO!ofBKWeDecrIZ)%VmWfVr(iTB zvBjbr*c_Io><^HuQ;;JiE?W<_N*Fiou&=K*Eds!oM~a}=!XiFVc=UGhDh%cE>(@u< z3NRc70AkM#rtVWISDQv--9Yt7v`+YEsvA+;ke{bX;xxxk>^s@K-ajGk(iZPwcCJ-S z@Fab|Pw)iRT#if$qh&BJBO=MVcWHJA@na-nO~#|;_m!hUS%>HEyA*1Oh)ZcQ6Btio zHA1GWTIAtnPW|na z56gnZvz8ao`cxq1BtxQnDNk4zQ@B2AS#KUbs~~I443yN!y?4G5~q_YYi92bRjEZUOSDOaT1A3dfc8Z8$}+W^2c zCG22uk#;|n z$3w*kSgA}0hDp{lX^hf`rwlf?BEOs0>UCmDbNx3>pg=$P9tZqXT zN-IKa7EsxWkcUF8(vF1xi7UOwd@G!Jt!lX)8MO-7E)@c#`|(|>IaR`LiexghvzaP= zLt!m(S_Goe5JMwg^2j((N49FL*NPtI#e439-=Izx8FBL^HGf=>PS7no?4<0&PP_2b zBvK&Q`4D~tuH3FZ+z^py;FYe+M;zEDDH0c)r z+YPcE_?9-=4{Xn?P|?Ms_XcQwIu+a%oJ#dMwtX`|==mSo%Jr$nMK$Qz+7>mA`S~O5 zTYf9@dcjyMCJK+oJoc~r!MY9I^SJP80X?i_q^H)pP24x?)6tP!EIo&>~3U;9f)P#HldRCES5r z`R?D=(y%zr((nCN7}Lo)lBedz2QxZq#53COq(&+B@vaQVfvXve?#v4b^Oof$u71Kp z$_uYzlATEKr;_B0nP>g2h}r#HCmTlpBXOmqD2?p+wz9a07=?x7H$G`UuJmkQ6donx zmTi2)RzW9JHg^`8-laqGscrKsBwCb}zC?%g(<3OC4$c`NqtLvQ9ejEfUfz>%F>s;$ znEHGuvD7zjEiGFT9jKLw)r{gi%*ke~wjq=zQC@oi=Hn*%8#n#pNV3GJ8E*KFx-8Xr z$C{T-djD~stPQP9VlM0c@`4dvdquB5a7H$U?$RpBRtO0@H53t;|H`k8jHqAIsTgR4 zyx>#KlSZ9rnjE8|)_t{N*kw^p~MAT6u zvK~B%$a>N48k;Mk87B{zV;l2Q)me@<#CYG?mVpl1$@ob3q#rx%4-}h<{vGFC8vzi! z5;s;9S=fS?>=Fq%UZY{zVF(NofcisB%St_p4G;VLKdOWZ80p5{K~4n7@bUCJ{dKif z_MfwXpZ6A zZiCrm5x5g~P0WInUv>laamRq|ksEr8&5(~yK%oCk@d?MwaY1D1Gp0dzsQ!nOHgbO| zGrjxh?mYw3jQ;ff&nDiJ=M8tH>A`CUJF)QLymO&$v!7C;#ZQdgyB#_+TRrXk4Nn;x zl%;QU529Z{qs3btkRHBna24?}3Ic6PF$%}bG}8qehfIPB^aexopb?9GjmOTWoHav! zl~e^i6Z9Blx2L`@D_eYhz?>oY4RY8g{yq@?qM7$hM19uY-v0dg^V}a?z3NVw9c}pi z_SKl`>X?|At-W1hXF=nmcJIn_>CN2OihIP$ic0T`?^_-a%T0_ll}=kMpgV|Pe8w#s z*w@c#X7*Qw$uYR}g*z!3sj=8pemi9NF$UFB}14XJLV z8@X)!`@+D260P&vK(#dI+$Ui?0R2)g8jSjkBXPGraAg<+2DLUt5Fo?3t;cVELq&$) shutrAdS9v2X;2~m0`xln>{ko`?5$lhKc|{G>Q{iUknn@e-zQ%F3&*D400000 diff --git a/e2e/tests/components/menu/__screenshots__/chromium/Menu-Placements-position-bottom-start--state.png b/e2e/tests/components/menu/__screenshots__/chromium/Menu-Placements-position-bottom-start--state.png index 03e01d413359c6dc22d8c55d05621f1fdd839eee..70a3cbdb67362c6745edaafa98ff6cd1e6076170 100644 GIT binary patch literal 13853 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

                          AS@&X650qr!4wK$Y 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 D_B!0V literal 13970 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 literal 14690 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 diff --git a/e2e/tests/components/menu/__screenshots__/chromium/Menu-Placements-position-right--state.png b/e2e/tests/components/menu/__screenshots__/chromium/Menu-Placements-position-right--state.png index 474aff0062068655ac2dde4bfd7f9d38fcd5f464..7fc47259495e48e12ed2c818359b0f4b3895c45e 100644 GIT binary patch literal 14894 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 E00DdFCIA2c diff --git a/e2e/tests/components/menu/__screenshots__/chromium/Menu-Placements-position-top--state.png b/e2e/tests/components/menu/__screenshots__/chromium/Menu-Placements-position-top--state.png index b05b60619cfa57458cabafe14f9378e2f199d017..8c9a7f15db7585df27872b0049ba6f507d95dc81 100644 GIT binary patch literal 13524 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 OpnXH{dg(RT)BgujNrX-S diff --git a/e2e/tests/components/menu/__screenshots__/chromium/Menu-Variants-Section-and-Item--state.png b/e2e/tests/components/menu/__screenshots__/chromium/Menu-Variants-Section-and-Item--state.png index cb8cbb5367a760271f23bff8d17c4716639ef8a4..867ffba6dd82c087c29f554a49b1edcc2a09af59 100644 GIT binary patch literal 17997 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 delta 6219 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 Hu0mjfV~8Xm From 9aa925d692eb02a8c5fcd08dee7010a608ecb931 Mon Sep 17 00:00:00 2001 From: Fauzan Naufan Date: Thu, 24 Sep 2026 11:42:07 +0800 Subject: [PATCH 20/25] [MOL-22399][FN] feat: change approach to support number of columns only --- src/menu/menu-content.tsx | 8 +--- src/menu/menu-section.styles.ts | 13 +----- src/menu/menu-section.tsx | 77 ++++++++----------------------- src/menu/types.ts | 12 ++--- src/navbar/navbar-items.tsx | 12 ++--- src/navbar/types.ts | 15 +++--- stories/menu/menu.stories.tsx | 15 ++---- stories/navbar/navbar.stories.tsx | 4 +- 8 files changed, 43 insertions(+), 113 deletions(-) diff --git a/src/menu/menu-content.tsx b/src/menu/menu-content.tsx index de86a7ad3f..cf29ea7abc 100644 --- a/src/menu/menu-content.tsx +++ b/src/menu/menu-content.tsx @@ -42,13 +42,9 @@ export const MenuContent = ({ .filter( (child): child is ReactElement => isValidElement(child) && - !!(child.props as MenuSectionProps).gridLayout + !!(child.props as MenuSectionProps).columns ) - .reduce( - (max, child) => - Math.max(max, child.props.gridLayout?.columns ?? 0), - 0 - ); + .reduce((max, child) => Math.max(max, child.props.columns ?? 0), 0); if (!maxColumns) return undefined; return ( maxColumns * sectionStyles.GRID_COLUMN_WIDTH_PX + diff --git a/src/menu/menu-section.styles.ts b/src/menu/menu-section.styles.ts index b2d1df8edc..d5d7716cc0 100644 --- a/src/menu/menu-section.styles.ts +++ b/src/menu/menu-section.styles.ts @@ -1,11 +1,9 @@ import { css } from "@linaria/core"; -import { scrollbarCss } from "../shared/styles"; import { Border, Colour, MediaQuery, Spacing } from "../theme/tokens"; export const gridTokens = { rows: "--fds-menu-section-grid-rows", - maxWidth: "--fds-menu-section-grid-maxWidth", } as const; // 367px max content width (Figma) + 8px padding on each side; matches grid-auto-columns below @@ -27,24 +25,17 @@ export const label = css` color: ${Colour["text-subtler"]}; `; -export const grid = css` +export const columns = css` ${gridTokens.rows}: initial; - ${gridTokens.maxWidth}: initial; display: grid; grid-template-rows: repeat(var(${gridTokens.rows}), auto); grid-auto-flow: column; - grid-auto-columns: ${GRID_COLUMN_WIDTH_PX}px; + grid-auto-columns: minmax(0, 1fr); column-gap: ${Spacing["spacing-8"]}; - max-width: var(${gridTokens.maxWidth}); - overflow-x: auto; - - ${scrollbarCss("horizontal")} - ${MediaQuery.MaxWidth.lg} { grid-template-rows: none; grid-auto-flow: row; - max-width: none; } `; diff --git a/src/menu/menu-section.tsx b/src/menu/menu-section.tsx index f4cb246e74..852f16ec59 100644 --- a/src/menu/menu-section.tsx +++ b/src/menu/menu-section.tsx @@ -1,10 +1,9 @@ import clsx from "clsx"; -import { Children, useCallback, useMemo, useRef } from "react"; -import { useResizeDetector } from "react-resize-detector"; +import { Children, useMemo, useRef } from "react"; import { useApplyStyle } from "../theme"; import { Typography } from "../typography"; -import { useId, useIsomorphicLayoutEffect } from "../util"; +import { useId } from "../util"; import * as styles from "./menu-section.styles"; import type { MenuSectionProps } from "./types"; @@ -13,7 +12,7 @@ export const MenuSection = ({ label, showDivider = true, className, - gridLayout, + columns, "data-testid": testId = "menu-section", ...otherProps }: MenuSectionProps): JSX.Element => { @@ -26,60 +25,20 @@ export const MenuSection = ({ // ========================================================================= // HELPER FUNCTIONS // ========================================================================= - const childCount = Children.count(children); - const gridColumns = gridLayout?.columns; - const gridRows = gridLayout?.rows; - - const gridRowStyles = useMemo( + const gridRows = useMemo( () => - gridRows !== undefined - ? { [styles.gridTokens.rows]: String(gridRows) } + columns !== undefined + ? Math.ceil(Children.count(children) / columns) : undefined, - [gridRows] + [columns, children] ); - useApplyStyle(ulRef, gridRowStyles); - - const applyMaxWidth = useCallback(() => { - if (gridColumns === undefined || gridRows === undefined) return; - const grid = ulRef.current; - if (!grid) return; - - const visibleCount = gridRows * gridColumns; - if (childCount <= visibleCount) { - grid.style.removeProperty(styles.gridTokens.maxWidth); - return; - } - - const listItems = Array.from(grid.children).filter( - (el) => el.tagName === "LI" - ) as HTMLElement[]; - const boundaryItem = listItems[visibleCount]; - if (!boundaryItem) return; - - const columnGap = parseFloat(getComputedStyle(grid).columnGap) || 0; - const visibleWidth = - boundaryItem.getBoundingClientRect().left - - grid.getBoundingClientRect().left - - columnGap / 2; - grid.style.setProperty(styles.gridTokens.maxWidth, `${visibleWidth}px`); - }, [gridColumns, gridRows, childCount]); - - // ========================================================================= - // EFFECTS - // ========================================================================= - useIsomorphicLayoutEffect(() => { - applyMaxWidth(); - }, [applyMaxWidth]); - - useResizeDetector({ - handleWidth: true, - handleHeight: false, - skipOnMount: true, - refreshMode: "throttle", - targetRef: ulRef, - onResize: applyMaxWidth, - }); + useApplyStyle( + ulRef, + gridRows !== undefined + ? { [styles.gridTokens.rows]: String(gridRows) } + : undefined + ); // ============================================================================= // RENDER FUNCTIONS @@ -94,9 +53,9 @@ export const MenuSection = ({ ) : null; - // When gridLayout + label: render label outside the
                            so it is never - // a grid item. The
                              is the CSS grid container and must only hold
                            • s. - if (gridLayout && label) { + // When columns + label: render label outside the
                                so it is never + // a grid item and always spans full width above the columns. + if (columns && label) { return (
                                {children} @@ -127,7 +86,7 @@ export const MenuSection = ({ className={clsx( styles.section, showDivider && styles.sectionWithDivider, - gridLayout && styles.grid, + columns && styles.columns, className )} {...otherProps} diff --git a/src/menu/types.ts b/src/menu/types.ts index 65bcd2d3bb..cdbfbb8127 100644 --- a/src/menu/types.ts +++ b/src/menu/types.ts @@ -63,15 +63,13 @@ export interface MenuSectionProps extends HTMLAttributes { */ showDivider?: boolean | undefined; /** - * Renders items in a CSS grid layout on desktop. - * `columns` sets the number of grid columns; `rows` sets the maximum - * number of rows visible before the panel becomes scrollable. - * Ignored at <=lg breakpoints where a single-column list is always used. + * Renders `subMenu` as a multi-column layout on desktop. + * Items flow vertically (top-to-bottom per column). + * Has no effect on the mobile drawer. * - * @minimum columns 1 - * @minimum rows 1 + * @minimum 1 */ - gridLayout?: { columns: number; rows: number } | undefined; + columns?: number | undefined; /** * Accessible group label rendered above the section items. */ diff --git a/src/navbar/navbar-items.tsx b/src/navbar/navbar-items.tsx index a0c035d2d9..4eac38c9dc 100644 --- a/src/navbar/navbar-items.tsx +++ b/src/navbar/navbar-items.tsx @@ -134,13 +134,10 @@ export const NavbarItems = ({ const renderDesktopSubMenu = ( subMenu: NavItemCommonProps[], subMenuId: string, - gridLayout?: { columns: number; rows: number } + columns?: number ) => ( - + {subMenu.map((item, subIndex) => ( ({ children, options, subMenu, - subMenuGridLayout, + subMenuColumns, ...otherItemAttrs } = item; @@ -289,8 +286,9 @@ export const NavbarItems = ({ menuContent={renderDesktopSubMenu( subMenu!, subMenuId, - subMenuGridLayout + subMenuColumns )} + enableResize triggerOnFocus isModal={false} onPopoverAppear={() => { diff --git a/src/navbar/types.ts b/src/navbar/types.ts index afcecc36dc..ea69711d27 100644 --- a/src/navbar/types.ts +++ b/src/navbar/types.ts @@ -12,17 +12,14 @@ export interface NavItemLinkProps extends NavItemCommonProps { itemType?: "link"; subMenu?: NavItemCommonProps[] | undefined; /** - * Renders `subMenu` as a multi-column grid on desktop instead of a single - * vertical list. `columns` sets the number of grid columns; `rows` sets - * the maximum rows visible before the panel becomes scrollable. + * Renders `subMenu` as a multi-column layout on desktop. Items flow + * vertically (top-to-bottom) within each column before wrapping to the + * next. Has no effect on the mobile drawer, which always renders `subMenu` + * as an expandable vertical list. * - * Has no effect on the mobile drawer, which always renders `subMenu` as - * an expandable vertical list. - * - * @minimum columns 1 - * @minimum rows 1 + * @minimum 1 */ - subMenuGridLayout?: { columns: number; rows: number } | undefined; + subMenuColumns?: number | undefined; } /** * Props for a custom component slot navigation item. diff --git a/stories/menu/menu.stories.tsx b/stories/menu/menu.stories.tsx index a77f052c10..31a9b0583e 100644 --- a/stories/menu/menu.stories.tsx +++ b/stories/menu/menu.stories.tsx @@ -64,10 +64,7 @@ export const MultipleSections: StoryObj = { Link B Link C - + Link 1 Link 2 Link 3 @@ -85,10 +82,7 @@ export const GridLayout: StoryObj = { render: (_args) => { return ( - + Link 1 Link 2 Link 3 @@ -107,10 +101,7 @@ export const GridLayoutWithLabel: StoryObj = { render: (_args) => { return ( - + Link 1 Link 2 Link 3 diff --git a/stories/navbar/navbar.stories.tsx b/stories/navbar/navbar.stories.tsx index c3cc797eb5..ca48a0fe50 100644 --- a/stories/navbar/navbar.stories.tsx +++ b/stories/navbar/navbar.stories.tsx @@ -402,7 +402,7 @@ export const SubMenuGrid: StoryObj = { { id: "guides", children: "Guides", - subMenuGridLayout: { columns: 2, rows: 6 }, + subMenuColumns: 2, subMenu: [ { id: "guides-item-1", @@ -617,7 +617,7 @@ export const SubMenuGrid: StoryObj = { { id: "lifesg-app", children: "LifeSG app", - subMenuGridLayout: { columns: 3, rows: 2 }, + subMenuColumns: 3, subMenu: [ { id: "app-item-1", From 508f3a38926d1366e0bbc7e36e87b04b8ccc1851 Mon Sep 17 00:00:00 2001 From: Fauzan Naufan Date: Thu, 24 Sep 2026 12:19:47 +0800 Subject: [PATCH 21/25] [MOL-22399][FN] chore: update tests and stories --- e2e/tests/components/menu/menu.e2e.spec.ts | 92 +++++++------------ .../components/navbar/navbar.e2e.spec.ts | 83 ++++------------- src/menu/menu-section.tsx | 7 +- stories/menu/menu.mdx | 8 +- stories/menu/menu.stories.tsx | 16 ++++ tests/menu/menu.spec.tsx | 26 ++++++ 6 files changed, 101 insertions(+), 131 deletions(-) diff --git a/e2e/tests/components/menu/menu.e2e.spec.ts b/e2e/tests/components/menu/menu.e2e.spec.ts index 2bf129700e..8f909f1e9b 100644 --- a/e2e/tests/components/menu/menu.e2e.spec.ts +++ b/e2e/tests/components/menu/menu.e2e.spec.ts @@ -222,7 +222,7 @@ test.describe("Menu", () => { await story.init("grid-layout"); }); - test("renders grid with scrollable overflow", async ({ story }) => { + test("With scrolling", async ({ story }) => { const content = story.page.getByTestId("menu-content"); const section = story.page.getByTestId("menu-section"); @@ -238,27 +238,21 @@ test.describe("Menu", () => { locator: content, }); }); + }); + + test.describe(() => { + test.beforeEach(async ({ story }) => { + await story.init("grid-layout", { size: "mobile" }); + }); - test("keyboard navigation moves through grid items", async ({ - story, - }) => { + test("Collapses to single column on mobile", async ({ story }) => { const content = story.page.getByTestId("menu-content"); - const link1 = story.page.getByRole("link", { name: "Link 1" }); - const link2 = story.page.getByRole("link", { name: "Link 2" }); - const link8 = story.page.getByRole("link", { name: "Link 8" }); await expect(content).toBeVisible(); - await link1.focus(); - await expect(link1).toBeFocused(); - - await story.page.keyboard.press("ArrowDown"); - await expect(link2).toBeFocused(); - - // wrap from last to first - await link8.focus(); - await story.page.keyboard.press("ArrowDown"); - await expect(link1).toBeFocused(); + await compareScreenshot(story, "mobile", { + locator: content, + }); }); }); @@ -267,58 +261,36 @@ test.describe("Menu", () => { await story.init("grid-layout-with-label"); }); - test("renders grid with label above items", async ({ story }) => { + test("With section label", async ({ story }) => { const content = story.page.getByTestId("menu-content"); - const label = story.page.getByText("Category"); - const link1 = story.page.getByRole("link", { name: "Link 1" }); await expect(content).toBeVisible(); - await expect(label).toBeVisible(); - - const labelBox = await label.boundingBox(); - const link1Box = await link1.boundingBox(); - - if (!labelBox || !link1Box) { - throw new Error("Could not get bounding boxes"); - } - - // label should sit above all link rows - expect(labelBox.y + labelBox.height).toBeLessThanOrEqual( - link1Box.y - ); await compareScreenshot(story, "state", { locator: content, }); }); + }); + + test.describe(() => { + test.beforeEach(async ({ story }) => { + await story.init("grid-layout-scrollable"); + }); + + test("Overflow scrolls into view", async ({ story }) => { + const content = story.page.getByTestId("menu-content"); + const overflowLink = story.page.getByRole("link", { + name: "Link 12", + }); + + await expect(overflowLink).not.toBeInViewport(); - test("label does not occupy a grid column slot", async ({ - story, - }) => { - // With 3 columns and 2 rows the first 6 links fill the visible - // area; link 7 should overflow into column 4, not row 1 col 1. - const link1Box = await story.page - .getByRole("link", { name: "Link 1" }) - .boundingBox(); - const link4Box = await story.page - .getByRole("link", { name: "Link 4" }) - .boundingBox(); - const link7Box = await story.page - .getByRole("link", { name: "Link 7" }) - .boundingBox(); - - if (!link1Box || !link4Box || !link7Box) { - throw new Error("Could not get bounding boxes"); - } - - // link 1 and link 4 should be in different columns (same row) - expect(link4Box.x).toBeGreaterThan(link1Box.x); - - // link 7 overflows to col 4 — its x should be greater than link 4 - expect(link7Box.x).toBeGreaterThan(link4Box.x); - - // link 7 must share the same top-row y as link 1 (row 1 of items) - expect(link7Box.y).toBeCloseTo(link1Box.y, 0); + await overflowLink.scrollIntoViewIfNeeded(); + await expect(overflowLink).toBeInViewport(); + + await compareScreenshot(story, "scrolled", { + locator: content, + }); }); }); }); diff --git a/e2e/tests/components/navbar/navbar.e2e.spec.ts b/e2e/tests/components/navbar/navbar.e2e.spec.ts index d2dadc832f..92fc2a6c3e 100644 --- a/e2e/tests/components/navbar/navbar.e2e.spec.ts +++ b/e2e/tests/components/navbar/navbar.e2e.spec.ts @@ -261,83 +261,34 @@ test.describe("Navbar", () => { }); test.describe("Submenu Grid", () => { - test.beforeEach(async ({ story }) => { - await story.init("submenu-grid"); - }); + test.describe(() => { + test.beforeEach(async ({ story }) => { + await story.init("submenu-grid"); + }); - test("Open", async ({ story }) => { - await story.locators.internal.guidesTrigger.click(); - await compareScreenshot(story, "state", { - fullscreen: true, + test("Open", async ({ story }) => { + await story.locators.internal.guidesTrigger.click(); + await compareScreenshot(story, "state", { + fullscreen: true, + }); }); }); - test("Scroll reveals items beyond the visible grid rows", async ({ - story, - }) => { - await story.locators.internal.guidesTrigger.click(); - - const overflowItem = - story.locators.internal.submenuLink("Guides item 12"); - - await test.step("Overflow item starts outside the visible grid area", async () => { - await expect(overflowItem).not.toBeInViewport(); + test.describe(() => { + test.beforeEach(async ({ story }) => { + await story.init("submenu-grid", { size: "mobile" }); }); - await test.step("Scrolling brings the overflow item into view", async () => { - await overflowItem.scrollIntoViewIfNeeded(); - await expect(overflowItem).toBeInViewport(); + test("Mobile", async ({ story }) => { + await story.openMobileDrawer(); + await story.locators.internal.servicesMobileTrigger.click(); + await story.page.mouse.move(0, 0); - await compareScreenshot(story, "scrolled", { + await compareScreenshot(story, "mobile-submenu-open", { fullscreen: true, }); }); }); - - test("Keyboard users can Tab through grid items in order", async ({ - story, - }) => { - await story.locators.internal.guidesTrigger.click(); - - await story.page.keyboard.press("Tab"); - await expect( - story.locators.internal.submenuLink("Guides item 1") - ).toBeFocused(); - - await story.page.keyboard.press("Tab"); - await expect( - story.locators.internal.submenuLink("Guides item 2") - ).toBeFocused(); - - await story.page.keyboard.press("Tab"); - await expect( - story.locators.internal.submenuLink("Guides item 3") - ).toBeFocused(); - }); - - test("Arrow keys navigate between grid items", async ({ story }) => { - await story.locators.internal.guidesTrigger.click(); - - await story.locators.internal.submenuLink("Guides item 1").focus(); - await expect( - story.locators.internal.submenuLink("Guides item 1") - ).toBeFocused(); - - await story.page.keyboard.press("ArrowDown"); - await expect( - story.locators.internal.submenuLink("Guides item 2") - ).toBeFocused(); - - await story.page.keyboard.press("ArrowDown"); - await expect( - story.locators.internal.submenuLink("Guides item 3") - ).toBeFocused(); - - await story.page.keyboard.press("ArrowUp"); - await expect( - story.locators.internal.submenuLink("Guides item 2") - ).toBeFocused(); - }); }); test.describe("Mobile", () => { diff --git a/src/menu/menu-section.tsx b/src/menu/menu-section.tsx index 852f16ec59..2d548f68f5 100644 --- a/src/menu/menu-section.tsx +++ b/src/menu/menu-section.tsx @@ -21,10 +21,6 @@ export const MenuSection = ({ // ============================================================================= const internalId = useId(); const ulRef = useRef(null); - - // ========================================================================= - // HELPER FUNCTIONS - // ========================================================================= const gridRows = useMemo( () => columns !== undefined @@ -33,6 +29,9 @@ export const MenuSection = ({ [columns, children] ); + // ========================================================================= + // EFFECTS + // ========================================================================= useApplyStyle( ulRef, gridRows !== undefined diff --git a/stories/menu/menu.mdx b/stories/menu/menu.mdx index cddbd065a0..fe98f310c3 100644 --- a/stories/menu/menu.mdx +++ b/stories/menu/menu.mdx @@ -45,10 +45,16 @@ Sections with different layouts can be combined in a single `Menu.Content`. In t ## Grid layout with label -A section label can be combined with `gridLayout`. The label spans the full width above the grid columns. +A section label can be combined with `columns`. The label spans the full width above the grid columns. +## Grid layout with overflow scroll + +When the panel height is constrained (e.g. via `maxHeight`), items that overflow are accessible by scrolling. + + + ## Resize and flip As the menu extends [PopoverTrigger](/docs/overlays-popover--docs), resize and diff --git a/stories/menu/menu.stories.tsx b/stories/menu/menu.stories.tsx index 31a9b0583e..1e950d5167 100644 --- a/stories/menu/menu.stories.tsx +++ b/stories/menu/menu.stories.tsx @@ -115,6 +115,22 @@ export const GridLayoutWithLabel: StoryObj = { }, }; +export const GridLayoutScrollable: StoryObj = { + render: (_args) => { + return ( + + + {Array.from({ length: 12 }, (_, i) => ( + + Link {i + 1} + + ))} + + + ); + }, +}; + export const ResizeAndFlip: StoryObj = { args: { menuContent: menuContent, diff --git a/tests/menu/menu.spec.tsx b/tests/menu/menu.spec.tsx index f831d8a0c7..6381b19978 100644 --- a/tests/menu/menu.spec.tsx +++ b/tests/menu/menu.spec.tsx @@ -1,6 +1,7 @@ import "@testing-library/jest-dom"; import { fireEvent, render, screen } from "@testing-library/react"; +import userEvent from "@testing-library/user-event"; import { Menu } from "src/menu"; describe("Menu", () => { @@ -184,6 +185,31 @@ describe("Menu", () => { expect(event).toBe(true); expect(a).toHaveFocus(); }); + + it("should move focus through grid items in DOM order with Tab", async () => { + const { getByRole } = render( + + + Item 1 + Item 2 + Item 3 + + + ); + + const item1 = getByRole("link", { name: "Item 1" }); + const item2 = getByRole("link", { name: "Item 2" }); + const item3 = getByRole("link", { name: "Item 3" }); + + item1.focus(); + expect(item1).toHaveFocus(); + + await userEvent.tab(); + expect(item2).toHaveFocus(); + + await userEvent.tab(); + expect(item3).toHaveFocus(); + }); }); describe("Menu.Section", () => { From 071e8833ce875cf623a74741b663e2f067a61710 Mon Sep 17 00:00:00 2001 From: Fauzan Naufan Date: Thu, 24 Sep 2026 13:20:23 +0800 Subject: [PATCH 22/25] [MOL-22399][FN] fix: address code review, update e2e screenshots --- .../menu/grid-layout-with-label.e2e.tsx | 18 +-- .../app/components/menu/grid-layout.e2e.tsx | 18 ++- .../src/app/components/navbar/common.ts | 2 +- ...ses-to-single-column-on-mobile--mobile.png | Bin 0 -> 7051 bytes ...Menu-Grid-layout-Desktop-visual--state.png | Bin 0 -> 5689 bytes ...-Grid-layout-With-section-label--state.png | Bin 0 -> 6140 bytes ...ers-grid-with-label-above-items--state.png | Bin 5777 -> 0 bytes ...s-grid-with-scrollable-overflow--state.png | Bin 4592 -> 0 bytes ...ants-Section-and-Item-Dark-Mode--state.png | Bin 17877 -> 18084 bytes e2e/tests/components/menu/menu.e2e.spec.ts | 24 +--- ...ar-Default-dark-mode-imda-theme--mount.png | Bin 17862 -> 17870 bytes ...-dark-mode-sportsg-orange-theme--mount.png | Bin 15037 -> 15037 bytes ...bmenu-Grid-Mobile--mobile-submenu-open.png | Bin 0 -> 26953 bytes .../Navbar-Submenu-Grid-Open--state.png | Bin 26410 -> 28627 bytes ...beyond-the-visible-grid-rows--scrolled.png | Bin 26566 -> 0 bytes .../components/navbar/navbar.e2e.spec.ts | 4 + src/menu/menu-section.styles.ts | 2 +- src/menu/menu-section.tsx | 2 +- src/menu/types.ts | 7 +- stories/navbar/navbar.mdx | 2 +- tests/jest-setup.ts | 16 --- tests/menu/menu.spec.tsx | 115 ++++++++++++++++++ 22 files changed, 145 insertions(+), 65 deletions(-) create mode 100644 e2e/tests/components/menu/__screenshots__/chromium/Menu-Grid-layout-Collapses-to-single-column-on-mobile--mobile.png create mode 100644 e2e/tests/components/menu/__screenshots__/chromium/Menu-Grid-layout-Desktop-visual--state.png create mode 100644 e2e/tests/components/menu/__screenshots__/chromium/Menu-Grid-layout-With-section-label--state.png delete mode 100644 e2e/tests/components/menu/__screenshots__/chromium/Menu-Grid-layout-renders-grid-with-label-above-items--state.png delete mode 100644 e2e/tests/components/menu/__screenshots__/chromium/Menu-Grid-layout-renders-grid-with-scrollable-overflow--state.png create mode 100644 e2e/tests/components/navbar/__screenshots__/chromium/Navbar-Submenu-Grid-Mobile--mobile-submenu-open.png delete mode 100644 e2e/tests/components/navbar/__screenshots__/chromium/Navbar-Submenu-Grid-Scroll-reveals-items-beyond-the-visible-grid-rows--scrolled.png diff --git a/e2e/nextjs-app/src/app/components/menu/grid-layout-with-label.e2e.tsx b/e2e/nextjs-app/src/app/components/menu/grid-layout-with-label.e2e.tsx index b2379d2109..821ad44ae7 100644 --- a/e2e/nextjs-app/src/app/components/menu/grid-layout-with-label.e2e.tsx +++ b/e2e/nextjs-app/src/app/components/menu/grid-layout-with-label.e2e.tsx @@ -5,18 +5,18 @@ import { Menu } from "@lifesg/react-design-system/menu"; export default function Story() { return (
                                - + - Link 1 - Link 2 - Link 3 - Link 4 - Link 5 - Link 6 - Link 7 + {Array.from({ length: 6 }, (_, i) => ( + + Link {i + 1} + + ))}
                                diff --git a/e2e/nextjs-app/src/app/components/menu/grid-layout.e2e.tsx b/e2e/nextjs-app/src/app/components/menu/grid-layout.e2e.tsx index f84686b2f4..4efe796c5a 100644 --- a/e2e/nextjs-app/src/app/components/menu/grid-layout.e2e.tsx +++ b/e2e/nextjs-app/src/app/components/menu/grid-layout.e2e.tsx @@ -5,19 +5,17 @@ import { Menu } from "@lifesg/react-design-system/menu"; export default function Story() { return (
                                - + - Link 1 - Link 2 - Link 3 - Link 4 - Link 5 - Link 6 - Link 7 - Link 8 + {Array.from({ length: 8 }, (_, i) => ( + + Link {i + 1} + + ))}
                                diff --git a/e2e/nextjs-app/src/app/components/navbar/common.ts b/e2e/nextjs-app/src/app/components/navbar/common.ts index a626fd51d4..2aa5888eef 100644 --- a/e2e/nextjs-app/src/app/components/navbar/common.ts +++ b/e2e/nextjs-app/src/app/components/navbar/common.ts @@ -82,7 +82,7 @@ export const navItemsWithSubmenuGrid: NavItemProps[] = [ { id: "guides", children: "Guides", - subMenuGridLayout: { columns: 3, rows: 3 }, + subMenuColumns: 3, subMenu: Array.from({ length: 12 }, (_, index) => ({ id: `guides-item-${index + 1}`, children: `Guides item ${index + 1}`, diff --git a/e2e/tests/components/menu/__screenshots__/chromium/Menu-Grid-layout-Collapses-to-single-column-on-mobile--mobile.png b/e2e/tests/components/menu/__screenshots__/chromium/Menu-Grid-layout-Collapses-to-single-column-on-mobile--mobile.png new file mode 100644 index 0000000000000000000000000000000000000000..4396ce41899bc9e0465ccc01e11260692f8a1d4a GIT binary patch literal 7051 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 literal 0 HcmV?d00001 diff --git a/e2e/tests/components/menu/__screenshots__/chromium/Menu-Grid-layout-With-section-label--state.png b/e2e/tests/components/menu/__screenshots__/chromium/Menu-Grid-layout-With-section-label--state.png new file mode 100644 index 0000000000000000000000000000000000000000..12e0a014443a04824ac266d89b46a4df646fc545 GIT binary patch literal 6140 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 MfSBl&>D+zzFL{swKmY&$ literal 0 HcmV?d00001 diff --git a/e2e/tests/components/menu/__screenshots__/chromium/Menu-Grid-layout-renders-grid-with-label-above-items--state.png b/e2e/tests/components/menu/__screenshots__/chromium/Menu-Grid-layout-renders-grid-with-label-above-items--state.png deleted file mode 100644 index f91021915311bac44daf6d76ebbeaeaf21a9edf3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5777 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 diff --git a/e2e/tests/components/menu/__screenshots__/chromium/Menu-Grid-layout-renders-grid-with-scrollable-overflow--state.png b/e2e/tests/components/menu/__screenshots__/chromium/Menu-Grid-layout-renders-grid-with-scrollable-overflow--state.png deleted file mode 100644 index 3786ad1c3e8323383ef30cb84c35d8142f52b854..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4592 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 diff --git a/e2e/tests/components/menu/__screenshots__/chromium/Menu-Variants-Section-and-Item-Dark-Mode--state.png b/e2e/tests/components/menu/__screenshots__/chromium/Menu-Variants-Section-and-Item-Dark-Mode--state.png index 2d9b58514197a1d498936751033fb526e306cd1d..379afbbb87a7c6fcb85ed9e7d2151cc2c03f20c0 100644 GIT binary patch literal 18084 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ŁdvWJc1U;K9I)*A*-WQgkP=LC9wwj=WS8=$8 zo82?g-$G@fdcZqQ~U>KLiuN~qmMHTy0GPJ|`!w$?CP(#J+sBVw1JTsnWUn24yBjh$Q@80A_? zTxL{+0(~Oh=;xYDiX84H)<+!Ry{g zBrrX1h2qPRY3P0B5Ru;H^(sQ&L|!5n_|*8vJny`;^_;0J+rhD-Yz}GG*qevCaN;FQ z1hh1Z&x5DC;Fqm?_dr((#W0t_=?rN>Lt2I_1szAQ1}qs_l?5eE#M!}@z_9L^Y^Fc6 z&dxn-t6Um}Ww0kMPRs6{+5E5X1{2Yktr6!G`JzKNd}S56W{3}`r_Z7c-#NGCT>ZGk z8@XbYD`rZmreH|&ko%XJun>rj+F+* zmosNxkqxkO0)6NBzWRu37kxohNLZ7iHEx;eEcoK<-FV!Sz)!7SqMe9lEy+3s$yVay z%QfX9VBDwEJDGyXc4hOHl1at_W^icFb?E0qn{K6^d1^=#Vd(w|FI!d!%)o|j5nQ01 zf>ysM=-F@klQltEbP4paC^|^ChfELnBcpNQG{iij)x0*-rm@?KI@A9Pj7(XORXOgo*CwEuk6^Cy-oxox*hYd;xuhM zO^=chc3N{;HAVicr}Bl9KKFZtD}6;pMeYo*^PhjdaZMLs{yNw&Ulbofg;wkSy!h3? z>?62PU30tJXov6$uⅈ2+a6+q>KEJ^G=FMKfu(uL1b0y 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 diff --git a/e2e/tests/components/menu/menu.e2e.spec.ts b/e2e/tests/components/menu/menu.e2e.spec.ts index 8f909f1e9b..a7c6cf2fd0 100644 --- a/e2e/tests/components/menu/menu.e2e.spec.ts +++ b/e2e/tests/components/menu/menu.e2e.spec.ts @@ -222,7 +222,7 @@ test.describe("Menu", () => { await story.init("grid-layout"); }); - test("With scrolling", async ({ story }) => { + test("Desktop visual", async ({ story }) => { const content = story.page.getByTestId("menu-content"); const section = story.page.getByTestId("menu-section"); @@ -271,27 +271,5 @@ test.describe("Menu", () => { }); }); }); - - test.describe(() => { - test.beforeEach(async ({ story }) => { - await story.init("grid-layout-scrollable"); - }); - - test("Overflow scrolls into view", async ({ story }) => { - const content = story.page.getByTestId("menu-content"); - const overflowLink = story.page.getByRole("link", { - name: "Link 12", - }); - - await expect(overflowLink).not.toBeInViewport(); - - await overflowLink.scrollIntoViewIfNeeded(); - await expect(overflowLink).toBeInViewport(); - - await compareScreenshot(story, "scrolled", { - locator: content, - }); - }); - }); }); }); diff --git a/e2e/tests/components/navbar/__screenshots__/chromium/Navbar-Default-dark-mode-imda-theme--mount.png b/e2e/tests/components/navbar/__screenshots__/chromium/Navbar-Default-dark-mode-imda-theme--mount.png index 50942db51db006a57b684bfe66eb429f455e0111..169cb4ea858f0508a8277fbf5e64b6d6c046f438 100644 GIT binary patch delta 2579 zcmV+u3hed9iviAy0kC5*e~jCJM^TfzDbCb44TeCQZe+ww=giJ-MZ(#rWo^SidtU$J zm|wUp-+GzI`+R#PH8G)*#nk905edNI?lCRhjZCj5V%C!l9W|d+yhj2sSxAb*J-zJz zEpIgC%oO^O;A#rMi)K7VGVtYw(+k`p`8>X9(yVr^!p=$;5NEy0yo$P0Ei?X${x8PY_l6~qS^bVU5eY?HXL+E2?C2|lrlR|WlfuRt90RYU5 zRxW1*!LIjL?`V;mf2)A0P>nTd@`&#-a=Et^MSyCh{fu20!dzrDQXwTCGs)ss1F{qfxWjPi)7&Wh!j?&_(4n z7t1Ycs~KBgf4}*zj#i-_w&k^#uGLZvP2DzbO9O<1#y?Y5R+RPFJ7Hxz?sh4iGW+D` zACyzR%a+FnI!bITyJXjsKdR~bZH*PpCe@DndmtTlkW@@f%E)_b$?c)WG4h$nD5v|P zn3Yg6!sOXw?`^+srLtY;-5+t8cA2`Hq9j6Fb}F*52OF4M`lY79lio66f8ko{<8hg%;hRTQ{AHMDf#QV|8plZ zPwtHmb7i+nyM~1YyAB=}&B!a*i&O=X&uxk3hRC{xCvA&!8`fQqJU@#aEAF4Tb6ekh zO0E$}dlT=?so7MJmP>l_iiq}96=ZU9>jeJ(R7FmKDSx|$#l}bbf02fn>B&2jw!Fda zp1{FPAfO&tsE%Yqug>dYu$eX9W29nsT0%ZQw!=k-q7y^l}j?_J(>%tSntf z47TsBx_I%Ea>mxnf6})Up2&7J>M9vS*|@D*H7_dIE6CT)-Ab<;)Wdu)(yr-K>ChfV zWNk^?S+RY#YxLAaJmkF0S4iqnH;UDE?jAwDJNeDku*!<8{cT`HSqXsNtb6aTI1fngv{gCA`x$# zv`m_K+Bo^xxKwMJsqsAOvY1ov0fUY569CDmiH#MN$A|BZ-ERdnk4h5N{3y}Ih7n|~zR ztX39F?A%w)`T4E3QVIY7fRM8nutuLuO&1+FkSr~xfBa*UwrxugWo$Cz-FSq-mbRDVvO2bm( zBHuh)f4QZ$PDP2h78RZq1?&uAqOdIoPi_n6?tfILVnm*7Em>QXC9QanuLBPdd_rdHM|dnxxvCI2zf{gcPp+X3BI{_p)w z=OrW_H#D?$vlsmaJ{};POarqq7)Yuh$-6x0058> zm$`ZEx>Rk%o2M?6R9-mscCgFp)qUGsZ_hx-( z^B$`Tj>Ly8TKnn=Y5u^ayY034e`&9-T@|0)KkQhZ`$l~1%O}nhHEBt?QB{<7VDo{T zkp|0>G#4BDavG@v3*5Z?9kfN#!!I8=Gw5nl61mr{T6^G3t(I-zPttFD(TR;~cbek9 zwk|8xv=#PEl78DO&Ky`5|7z}cmVZstfHU`zrzg%FGlY!wC8~;##D>N0e=MNFk`87T zlQ)Y`?Tld zxb({Ax{BfpsayPWPDlrjCvPuG-ndyx#~(R+g>;p&#lPZ>`1m*OKZFx$1LI>94NXer);p4aFnYBlD#y&B-JHNIr^nUjFCx0=|(Mr=+S4%Ra#f*8&cKzlDVS_Ul7k9~@ zB458CC(|N3zlC1xtj_iiFZB{ye}nxRvuirq1r*l^-EIH?1ye~xK~&`w000000Kl_Z pKuZN8AY{Md00006Nklf@gI}_Nj-^J8VYu?e9jmw~6MimaT9E&l%D>yx6>$GqWDJDc7G zA`<>7E-2F^uZ~cfRH@iQ;Na!&CZPI1kigB~ixh6Sw8fC$9IzeLN?+Z1qT;?I!pMuc z?aOly#`zx8HN zWhT-FCa!sHX3?HC8m6R6FkPfppkGQZY3tBk!#xw}%?X$Y&y>obHQaRzk@L zlV^{;xBa@6%66T1f5c_lW$JEx~$Dhk{l^0eTw|B|U0WdK`Bww|GATyC-=sOxw6}( zUBkkHT?Y?~X5+ z)!1L6$S)$oZ^&?G2UiDL%Z=@3iqj9K$;0=iycs>g(Z>SU5Pv~M^3FF>b1S)t%4mUu z!{Eas@Q+K19yH???H896Co0O!8T1>DiL`-9>XKLdH96}N`J1JC;FG~ZYoTOWfFq@E z`t-B1e_B)BwOf%by-td#GXng4O*zlXHgKVbNZ)i;dbx-cdqce>R+cU#2HW>mUA*{7 zIb-YPKj~WvPh`6qb(M^vY}{6@nim!973AyYZl%`^>S4YYY1j0rbZ8GFvbLn{tk^!= zHF|0y9&%phDqzZa8kQ0l`R3Wme=W6j zDoVt)sPL>PU}p#ug>5-_a$7ie|D!q;Bl2Wx$=aeUX~lzl9q^c6qR2CPXX=~&b<)(- zG-+0DQ4{4EnfTgk5%SDL)70DYtgY)d3r?kE7DPx>lTW1O6t}yD#U&<^x36CJbhXsU6^*0} z>k{~j$G!TeU9xoX@(Z%Bxuj$$d+#V;uGs73vDDZ0QlVN!*)9tAaG3Oce|jdcT^nJL zhiy)I-TQyZs`as>ly@%{HVvBLN;rR2pl|urs`C4L7>&>^(4D?gU3cv5_dgZV?orXt zFBXrphd+vpyq%dt_Hg%APx6a5wX#mxOSwNP`HzwApFGaq4(Pt}fA4QPFCp=`p`opt zz34aa@c`ju8kmhKUjgn*f3u{hOVX^7ee9)1odwItv*0o?kDdOxFa3^s1O~=P|IjIr z8V_wjKO&yrmwv~r0GsxX6l}>)yH;UJp4oLDe|Ym)X6146TyM~k8n2IIh`&>4y}G(h ztKfEo;%3Y`_F?(4#*SM<5_YTRuC;}L#9-4)l5EMNQY$B$QfXT+e>a>yS@Pds_0Jl8 zhr5J0X3jHYtrpE)(`Pm9aYkh_>Hor=42tTjW1p){Cl%mFOxYd)0Dy$J%*|`prD`MI zJawU@^1`XNqqXT9V>hOMv)UQkTkOW<_K4R`o-JusH(xmtEl=ONH|sl__gGbMBtC4> z+E-6V^9L^7ZLiHwe|vT9s`%voVaM{^H{xSoK5?d~NlVI&s-m<5n-AoSG+36Tx!Bm3 z(?}gy;O6D;pe>Rfe)+(eL06lS$h~gW+5=~5wQK`_l78EZPHbGe(-il$by=yVt*~#B z^xIx>=D@o6S98C!{A-#9oVkxYJ#prkA!MvCQB`~-HY|2$e*qPibTG4+yjgr|XJq@~ zMDn5fzhicitQCvazL8IbZ8>tbq_X7f$v5NNiVkm#O*G9bJ#=F`Hy=>NrB^oBRTN)H z-Qu5fLOOUnd3#av#?4YX{>a%Yq^p!I{uOV;$G>s^A)H7X7$2i(XsW8^ew5So-3L8=SegxJ&*N`T7MpnHJgk zE%ah%b+&(ash9AZ4A333b2{1u6y+2E00000z!+IzM*si?OG!jQRI_0~O9djf@wL7H g000I_L_t&o0AZFT2fFck4gdfE07*qoM6N<$f-&VU&j0`b diff --git a/e2e/tests/components/navbar/__screenshots__/chromium/Navbar-Default-dark-mode-sportsg-orange-theme--mount.png b/e2e/tests/components/navbar/__screenshots__/chromium/Navbar-Default-dark-mode-sportsg-orange-theme--mount.png index 1e9e909cd6004f1d851789c357f04f7f1945df1b..4b8db5c0acd05862d029d9020eb7087978bdf487 100644 GIT binary patch delta 3521 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 b{_4h0 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 afPJ}(JMyZ2lV1G-IB9a~yAorkD}Mm4@U0mD literal 0 HcmV?d00001 diff --git a/e2e/tests/components/navbar/__screenshots__/chromium/Navbar-Submenu-Grid-Open--state.png b/e2e/tests/components/navbar/__screenshots__/chromium/Navbar-Submenu-Grid-Open--state.png index 31465a408cb04a4fd1173208c7125779a9b276c8..9638314bac11a29ea716fe115b6743dbc3476faa 100644 GIT binary patch literal 28627 zcmd42XH-+$_xFopM??=Q9gfF>f`BN!#R>ufA|0fO(joLHEh-8s0!nWoO7Ec~1PF?N z(n1dqLg;~nBtS?)5|Z3_e*fQ#d&jurzIg5!&+}>ld$IRgYtJ?JT%Yfp?;n~P2p$tZ z#>dAeXn6nbBR;-^ydU=uAKA}qZps+#=v_obW;a#byJ`Afy>3B~9^(ofn=-x#XpUlCtwU-h_Gy|=aSteUc~RUMU%kyUQ$5W$nKQAx;5MQcpc03bH(1r_q+uz^qxnBoCj!Vjd^xx>x>0f1#DFYwD z#>Vjncw^z~bipa{M#IPVH{bqif7+Wz4!HbjU!FYD`KRSOck<=G9d7^4$N%T|H#hkX z{b`T9;yeDQJ-L6M=%4oQ1OL52)R9gF1qBi~Dl+oIpDTPFTEvA0`l-g|ecy@_v@o-? zR~uJc|8wO5v85R%_RVJBlvLEjESjUl?)-D%CG3s%r}D_CC=A!Ay}wiU@H}m&!aFDs z5mMrJ^xqCj@!B6+3t-TAt@;eHZ$i4A-aCH2z9AkiAVAH3W|q;9Aynu)gRW8~1u*SS zR6gTsLNsPX{o1vMe_jLMe1)}*4emr&`P@?%Y~C?n!7(DF^RGWw_}DL5e_`gZ#pObv zS7FYFuKv3K!$RLIyvZ;mk*L~9a_|krDE;aB1-j;AP4pA0`56QLw;THb^tHFlf7XJJ zAN57BlS*#0XbvvXT96SJ-;v>-V+d3K^t|b*i#-_L*;4Z?p2%e*gz0k;u7t_edXF?P zhcerfpwQU(?`Uqi#K`fXI9TqqO{J$!&`;3D)E9E3$J&p#$uL;ni%-9GjYS0)t5#a7!UyO6>P8O zJaTlbAG8L~zog|w?8%xo4CYR61ngMG28GZ`;?t$NtxFK`BEp%bt67Mr@#iBsqax{p zLe1po?xfcf5fjHN(-NBF;tXQ@?7cecNcOcZB(PtdsE3kcz5Dd+(Mc(!f^E$cn4|dJ z)NBQTOGu}{PUC#Smf+@@{?Jm#k zIx}1zI*LhXM76F~!-v?b>iCe()GLh#58~fIov@o^Fzch_6~?YcU0rO>Am+@%2Y~RZ z;xTNyliqzKh2YEPsg$krsT%EBlD!{nJrS!42Tx~89?XFAH-2UcWmQo ziyuu4Jhk;hC5A%Xm=5*;+Ft_?!kPyWQQzO}%O$YB^s0B-^j&l9yFko#G$01cisqVk zRQ{0G(|lyoZa}P$d4|gc$)(OufBtSmDn(-_j1pAV1dkdS9#5_=kB56!2dhl}zJ-N* zJU_lJ!rM#z*Gt1+=9oeKH9#Nzi)0&_WyaGYw=YSJtrpO)8>ed*{J}P|a4Kg}tY#;qBDPPUcuGU4rF!(1m zr2-_`J|%;0P4M}hf5y+P)*ngEu+D!4oXP-p-cCx8vLo{bu4A}q@);3t^DaCzH%V;Aucb&2h*K{LI zOajB*qaQqdIK*PKik?2R$b5>$W$yc6*nr?e_YS`GVFNBa?e? ztxkYeu>L-?=JiWi49B*D$_VvFA+U`Qia~&5C%CNUL|m0RxwPNffxb;MBS+CTON$Ih zY|IuQYJ4ply|;yizNyq`8f&a*MVhe@ABARm%+=cwO9h{-dX-LGsMbY~(Dxf5CO+erxf$t6#onem+xEa#I9U=eR& zIZX>du*7Fbls`rbpvq6i!iMNup`2`m=;%Sx^NloZ&VxKj-^}IXH?={aj&1Wil?cvh zLOd3t3+`^>S9Nk=8x4~D4j&ho^hLLLc|9FW$IVXnGJ9?q=S`PAaN7Qnjawzit2wrH zPPY0`^F6}GkxuPyY{-%elf?(56;vavpUVa^r1WJt}XFsdxKTfgXt|Tb*KS`D9wV{d^ThtF-a zzc6sD?t!2cj88OVl4RhF5%ZBzMp2Gl1jDkP>8eU&epN@w!Ob*a!g>*vv=n{ljb6pb z{MetdJ)=ny`i}u2Pa35$~z05obZJz5}XYGXc&tH30#h zZmnM!Juik^dTb)x5I$`ZCoL9)5oI*ufYlt*FL+moI?Cz!imlH$w{6r(PVmLDJ^*-l zH{i|e@Oa&35mM{v{OZ|t0OhL5pu*NEtv@jdqT^0o^pt>#_^-&w_beTKu=r~(*cd_NeP6N?tAv3jx}+eID4idqeWlTEM8@5 zRc|8u+VQbG^w%)%uWEsJ9s|&JFPy*X@`FIfzB1*ZX!q&;I5pw)O6&5~>S!t?`>?x& z_uLDwW)*lga;gRAXA` zrBT%jYuaZ<-`o=(H<}vpOYr#^47ICmpk{pbt0I@Wbi3Oe|15-za!J0G-Qde!K8T+i ze~6jLaRtHV%rRbidr0vmfcC&nQdn4Y9@_Sb?)I?qAFcoTpptp@Jow zZab*QwkNIx~pE(oYKKLFW<;5)iO?{S+Afxj2b%P4j9*#!K zhW(V6*dRl_vt3iePiwfZo$s+AoEXnLI+oz+d0F$z$INS!Dt!czR6V`XSOb_j|E3#Q zhZaZvNDr=>nz|arx)(3GR-w4P^_gd(!_)KOTK;#se(&xwL0Bu4%S!e?mJ8( zp#i_;?AyOm{cY{5w7%M&xmTtcV3~a_;# z|KoAlk6@A=^jmE-@lM#YrpNWDdKJ}*yXC*vI?Y-8=~t_q{B`+45pm^xVR}I<0qI^5 zJ2wz*E?l}UII2kB3*uPsH?mQrjp@3aki=Oinw|rdKu+FZ(WnHFbd70FKFw8nq9+n7 zHoKv_L0>!-uI)BjR8cnlSYE;KG+^e_S_+JpMZOBpS(LNG%0tu zRaZ`leEIju8(>cQMPuAhbl~mh&j%W&>ph;g6t*{$OG&$rL6o(LvHfw)84N~N5x62F zcY*T5^~(GyHwT(TzH$Qn#Y$@^9ty7gqV1x z@PW>A(e{l>&F1(tzQK>^M!W9Bs4&M6A|u0WSHJgA0x>L}c6<*q*vrXO=_o2%0dQPK zgsA7)yf`()?cu@s;FcEB4naH2w|=mgb6_ZQ!M0u>BCHX-TC@C=`{^XvL3_z8t15p3 z-He#hGpjEk9N5Sg?1-Y}qdgv+$U}IdhYEOsWuf$C%tiz{`Jns>lT77^o;`yuYLk>w zW%Zg@SG92kImo0+Z=2Ph_hH02SN1TdtvzM(q_~_z|6G~5KZx@qHnT*Hjdc6)WSTbn z;kxS6P`Gv@<$BOywp5(=YX$Fscn0S}3!TNjEnYpZ*w(S{HQaD8V@o?+X>dt}q*IvJ zgNC3VP;OhIpjzzKja7p}bCf8K3g%)yz0BAy2u`55yULXP&JTx#Wo@bj9Xy+#?v2 z9$@@`S%BM0t3@I`?m&?vmJ(O5%@5ex-g*PD#pl>pOROVk4omkDygiH&wM6mBN6=ek z_mdHb1vY)+DD=yh^w?Ne!0z|b!5p{=g0vevzB~T`uxFNo)uVh_SW7g9@mnYQX9K3A zoXeUtyBry>Up$^^lTc&7YT;(%uAukV@E&Ipl!Qc{;7ECF1t<17A zP7$L|Jdg@G?=E}LSj57(42sgu_hXjd#Q{hpMo2>U@i6h(&z>#LXf_6|X`lf<96!zn-@opo?m?2;2rv9*ZdR{>V3+T~4q;?R$`{&j^|1&W9I<@Tcm7u=p)mF@W3*LcBekg4zFMXr zkbWjf6tLm*h~0l!F<0!&PNO+TJJQAcCRUx_(9x z8<`h~b9J6LQh|UXZJ$q!$3W8b_W0;QGi!xxi871wx#`+xIiaJYqK)*564rbX1@`U@3At%cckthg+2sfbv`ZVsbh7kDoJN=vK5rS+qbYVV*WM-=sFXJ!g+>S z`zFWFufojL3Zq8uvC0-$}mscg`AxOJ{m`3&s` z9&{UuzV4SCyc@vsQfYwpnC52eGtP0s$oJ}?qKkP4boKTIheSJK_Slm7G?o#H1EmIq z^o|~^ASxR}?Nsa>nx3Jxt%<(vP3-vnNfh@Z9UoLBG{TAe7jmck`IaiFU>~4yNLHy;^8(>afJTcH}$cv_&WsdQ4Qi z9DQ9|rb`q9`sk4txiUpfIA5@r6GqZwL>H*+EiPy#JJor*84QSClv31Xj2U4+c7MO3 zPZpb6x?e~-keUCwFvAp>x+epEsC^r+pt|F(tE10zyEm1N^A0$vnQPHUYLbj9q_zmo zhX->|aFet<-gKxAV{~|-?NqX>NACe0Rtq(`VL3}Aea~uCw5#MnqFqz;_l=|Ng#CH& z@RWvCRE~8d{a}vrDl7i%WuGv3x@hrLJ7w^6-7{?7C9m5ukLx_co|>>udRDpi%`&$A zLnYwKK{K-=lS<*85X#CGLb+Q;#L7$Zx*z0*ETEA z0rapOc(`Kb0SC^cl97aDy-T&LK`$s(JjbR|qjjUjL;6LT zQ}WJdAw|d9`|Rs3HYglXZnDyOAO^M9x=>H%ZcW)4itFh&yMNCV3u4)xLBKHOM=O0l zWY3F-Rtn@Q>obl09zGDE#~;f)bz_eXu9@4KT_2a3t;vU9*9MC3LbxhM;QE!e$c>WF z=rK2a-MQ!6E0fPSRdMt_k7>N2gyz$&0yi1;Ff9K@;Dw}hxE*kV+PZcw5g;h0*ELn4 z_>AYwchby^Gm?^bzElrSO-+rD7k>Lyca`c!8+gD%Mi;Xdgm@8}jD}n6IQH_8wnFoX zOr96FuW|7hV4B3Y85|~5m#ivTr2Dd{8`7|AJrm=o4{%=|W>{4!%Y;80dwtZVBVZ@E z5tmV|N#kHp{`4S_BJZgoF3sph#pvj04u_+s>-d*iY4twq-|OpLXBE7)Ueq}kV+$P4 z4rbPRvggF_)k@FQuC|!O{h<=SHQAU9%fKO@U{EC&W6B~@JT|LOnow}*6eaE;En}vW zj43|%CwzE(F@~UgU-5i2qrW%_kj^|ud^2sPP{p7!?~OSHI2HJQWN`4R#{OiKEa0FH9ko&;c7@@rJUbM8<0AcUn7-B;VvJPsQH+7eXHxL7f|p zsX6>Fd44(c|Anf*BKK)r`($9r8ySyAhlj!2%?M-s|1bFZf0=*(pK=4oh$UxP6o{p3rj69$Hc@0ny2f(lSuhj_BFh4Nc10$ay?6>xKt39DijU z@2Lsq>`m?opq;!pd%-}$Zrt00b21Vtteg(Fp8M^V&S2MG=OONTk_j|&)YXtuW`R#) z!Y9ZWf*c0?Yrw8c+F>5lCHODWKd!>B$0ws5cJ<=3+6ix~5)_O}Gy^j?qUab|s(EN= zXav)bj<0})o#=#z5$)^U6Pkl)MESJpL?(z1v7~cUY}Do~+EOZ3$4ZLkJbf)uFoiwBFoP1Oz4| z`;(+@UO={^)VG@;q~AihV^Cj;ust(6?~k-GFRwDszsX^S#bHoI0y;g?)4Q2cmR^IW<9 zw1k%9y1kv<^oy>{Ot0G7TGZp%h<*ypF{Hr9-euk}8Vg|)ulhx3$H5nSU8Vlk?Vz5}ehE0W3_NM226rF*6 zZV}%#vb$xFFfq{wpk0ojh1e?3_ef}G*s(GIQ0!j*^1V(}M{zrjz(G0Uc1h3+i~AwXu%APjX39prV`#KeTR*79;QjPHlz{M3A+qS$LA1-&1|g6S9# zGE>=YAhR}EWUxt*^rWbrMN+gmk*VTkIn-L5ZI-6X-9#*e52h+wYjaBgfIH*7ZFGr^f!;9X*M1Ig%|bGdyu4|IZ42!T!V798R6^L+q_6VaDJf zGIMt+News@>^xS{gBl;_M#CyxJ7uDFMv6^xW}Ndh0-td972w{Bxxr(Ny=HGvR31%ojn7LMiC1xx^DY+L5B9VR%Z{N;{x96Qz=m0QY z2mEVe8dHc3;{m+u+ah+nZM>#X^pE>LXhwcn%jk8IptY$4;evGwVY zQh>ZywfYGJJyAkLH;9t@83VL|vu$8G68`9p&MnU33XE(gxM9`{v8CEXiKEHkvX60!Nmbw+0=aCU|rvZpge6dyly^W#|^P)#R%XN}%L$507ioF>VB15RRA)Bu3Im|^p6E@S@T52X{3_j%T|m`^mPSeH(|QGJeD*q!iWQR7WzYnK5~Y;y{#fzRdc+wSRUc~6^4kNxKM@hw;kwX#n+~>T zfSv6Dn;Cte2k$sT3mu0q?tm^p^Dtp(6zSVi;#|mnFgYTrxnuDl1T)e;QO;NJk#5iyON&VRyq4RYGoo!^THE++j8m~Pqzs5`^5ctr3EI@-*TiBxcbk!s0AZZvKQR3+-?z-(^SCXXVI2d38} z+Ey9F-nk~wi7BTrl>P~6%1`yz9&@Kd#y0uZZxcCpdZW!BQqr|cSw5s3DO&y7i26a* z$nf2tvD?)>$a2C!R>P&Ro7=wg4j~8P)i{~4bl`bNck@ovmIO;LJ{3Gd3C>{FeXliH*5-`AhEExB*uzJ1@$r zc=_JaLKohQAdukxYe(#kaLOJ$oM~?C2ocZG9ytDuss>%?f?sV}pQ;t$=3pP%T~P%w z1$MT!;Ix^qM=9{xQ#?N@Z2VbMx$2<=q(i+0cwjVn^m2o?A2$hAm z=g+&B-wGe!qW49A+ZyaG%tAY&4xuI_Uoe|xB0~(8nIirlCBv&X+RfzRyqT%d2zI=q zH?y6{{0zcqgj;NVUXwvsZ&U1^&dV3nl88a9X$O7mb+4&RjL0&)%PAWudj1Mm@A>w; zCnL|{W5u1<%ei2jC5p)1e0^Fx1o!hM@oV@+&nY%a3)}W;Ngt!docfL|QvSZ3uy3>^ z&P=K-jbthEQ5qiJ5klKtZx&LY(+b>$fUpgEUpU_fW%b&hVmrLK^% zRBFQe_hqG}YbRgcxqZ8Xg&~JJA-cLd%ijyjRy*bt=sVNS zg2RE1blyseG@gdrtnaDJ58(+u0^D-WaR`^_igjKNUQejY_G=n)*cIyq**%Ky3cS9h zJ?JrXe{KWo40r2Yqap;}wK?)WR&$z(evTS1d`hO5x@NhJ87naP%A~;oWMc5)Iop)E z&n`~QQF&JwPXek?`bE_$W}xa*B1O%5yLW5PsRDZ2e^?gio~vs6k$-pUL$H9~srcYW zC2`(G!*6!d()$YAs*1KUW?vJ^Jxg_?om$U@Or7~=XvHqu12`03u>h}-X4)D0l!8eV zIOu2N+6K*ULIxw*qJHJVgY$0(TO*W|-uXh+gIu-BG07jYe5Gx!M-Ib08$Gwe_AfM9e*bMy8vqL`bLM#;AG0ELdxs? zMKg50HW#3=vh1Ah+JiQ4+@^^-N0mC0b6X!H8nQShARUno$3W!wqbmU6yIDz|26 zqQ3e#K;-kN!S6FoOSu|&>uFlL%9924@g0IKylI0WBvEv(D_I0n`(!b*@VzQI4F%GB z@03I-jA((j?>(G7n==FR$yC{zko`!%n}ncXx`57WVP%eg395g`$E2sH&sBzP7ZNcb zEHzj78+{9kO-utyR?}9Y41_mGw`_fDmvhK#_uDD;Lx!|$3l`F-E5=~<9~M^2 zyu-R2?HrB2A43~@e=GLO-yU(B)4{;#8NHxpS8x`FZKU~v^loN`O3z>`9n}bGhWkuR zt(m4(2Py7348GadF~b*%KGpoux>=VRj&5QJK^T^;#|44pCaE&2j%h-8?zSftW!V+u zNK^?^tZ3h)eGd*zUhS!MBAs1b(Lk4CeudFX-F*^>eyV4Z(#fJkEWBv{*TcJggip~{ zAZ*m1(}fmH^XdIzUQorQgSn{S)mQw7t6NsHjVA?;h;GgH^%V9Fv7_A_18c|QCFg=@ z8|yMk6Tl$~V(SuJ(zzx6>(C&r-l>UfH4ZGT{KNxG%?;vinO9~guM9p^&wf$xgEXND z7pu%+l-ZjlV{&TUjDff&>l*8dG#&e&_J)%_N*!UiTlZ?UPa80{51-G7AOU`^+6`O% z^+l}YbDy{O#1{fH$Wd4mG~+Nr9c5S`m?qO(dS^mAI!w1E)PEogHqR}^GRxkMLtwfV z&Im&D!8_4}mhYQOg5G?zl-L9Z>fRlC#|uxkF$}VZCd)VUP!)l_IprrOC4Hkepr20V7GK?cm;yt48<;K{Fd4lx&174xd}LN^z!Iuc~P(Iq)Wv5H}p zf}3Q25Z*c&cJ3}>lQW;CE(rH}j+Q9?9*kzv{L%#QEDJpA-7#FC93;`ALOMp=xmV12 zP%XS#p}zy~>|3H#-6rjkvs&LM0ycn)*Bh`Bx5z7xUY&f&DzvHH9R8YE`_LTE*^I-2 zTIwcd0-px)*hhvB6RQ&VvwULEn(&s3cCxV?f4+RDEaF4ZYDxbNmy*2Ps+2)4avby@ zbkvP7Jfjg6>*i<*)Oy8(S(^tn;K39AE^$jw3hc{38mFr&CuqtI-i>vpllKOcl@cc- ze9LddIjlcRRtIx2CO3V5*u4e6|-Vc*N|ub2TIjsgh^ zq>9hUH#-a+EYrP)I&@I09tu|wD-$zMn{HRA*-S1+WRbe1t`$js?sKr}*Dv9e0{ zRjC4GapfENjGmXpF^3%;JEU8xS-SF#2^iv#YWgndiaJKvlC?_8Zp#jq72l5=%nCqM z1lxLfhDDbM7kXi>6MklB4Ph0kUJ{4}A6ZptOwK@X&w zw65GfzL)a%Mcl8?P(Jik1?tl;dv;sfKQ0p$?%H`Iv))xK-iRhpPhA?DNNSTho^^ff zdDr%NGoZk9o{Iln+=@8j)Eze76g4@~9A=AxXgGzn#=qWga6CzJB$b;-eZFyxetGSN zReIfxUHra zoB+C6rgMt|qPdob(fOo|JX@piwBRg1}TM z#zxn%FoteDiQg{X*NWIpfp%=PU9gpq%pF%Nwbk?j1X;Iw&6Z}J%Wj5%iY8~pl^18K z{a>#6Eb>pRPoQZ zoiv`;wSbHd-sU64I63i0F8nySE+7h+o64Dpj1?T~d0+uvmH{|&N$}9_dm>Jl$rq|C zP+;>R7b;jCG*`CACTCpr_pgqqfBs8d2H*CT{4KCmrr7DxILWcZg6qHw#B4rE>Uji4 z-qLrsFHX%CeO5#I-9Mx_((N(0&Z^33TnLO`YVs&7@p|-^qsV^wrgEc-K+{J%8Jiah z13`0)3Sgem6pfjRH#DnoouU$%S=soyF;d6uxzFlC6%p$(RGG)k_@;BAB}p*w`hB}Q zgm#FM^1!E)+TKx4>q0>3I=S#)1`*t6(d#Ko$?|+Y`WJP?lezJ_Nrs=}Nuqz1e#V?-#H9drmwBZyXttw<-)1<>A zDL^B4ncAEvAwCtrtP)qPQ-hXjhAzKekZ#O2o0(&_C7m}p0LT271)L=6ZjdV5NpCJ- zPU~FSBCVdkvz!G=YLP7s^{jmYsHZ+8R>I>HABXfp;*gNE32ZkSTNM5&)T8JtDB5k2 z8Hn2u*~sCBZ?sD*NjIZ|L6KqHC6rFeUoSjb*mq-2i+*VdtZYyvKXfXQJr^3BON_+^ zEivyEB;LP8$K*>W8p@HPsRJKH&k&*zo6NBQWp6e>9qryVtOcbj5y zzM6vL{^kiT)zV!d6!+=O&v_iry!wcc zNM9p=>+KcYcGO8o$2nu@=e*j0f{0i>xxf|4^?v22?%OeG7KwX!q=9u6V?KsrGV}7B z`p1!vN0f(-np2XTr|wvwP;D)1vJPNHh9gii6zE&n(y>8R?AwZu^qdJR+gY~>i}m#t z_gBdVUsG71f>+_`3GlH7-KF7t)d+WXQE16nhbFbQNkN{@@nOqz_c}ErXOtEbB~XC5 zV7{J-8#?3Hlq^j=`%0jBku1!T1Z`%f8sn#D8?@#cv4%H*K|-4;czQiFx@o8Ayok(z zL&QQAex@++4nDC$s&L5UG^>Rzn?pLft!*BKzYmSb4xfUwx2`e}2dln;cYZL=BlAKe zb!;1#=XasK-_lhl5u9yAhRW=20bGCXMgJ$^I0b-{4>U_O+RP?GlLw@fE*<1tc!Znn zH}qmj^cLok^Clyoau?zx2w+Z?3#wKXqG1PG{6-wBR@)$HI6$yYzB0mP&>LEvFCuC% z2I(B?$M$C9gNtKsu;SL+Zf#DVf<2?xy>cHrc;32D3Pku4qTLK{ zW}2(B7|cG4%x$Jki3ZFWnF^+ ziqr^ERS8m#rmQ0IO}By-T?0BIWE80dayZ3w}m{D(urPdR9(up`=@kfT<)1Cn-|l*h6ehK~V;q2TWTMP=Le>nNOcNUo-|yh9G=4^8g3Tr?K(0M!=Y^K4{8>>A+oX0IB7SYd7k?8>@36O;(z0J6p#ZG(OVyN;1GC`{T?p<)M@2^O`lFk@hu;|L z>7CC*>NM^m#7{`4b{qkNF+a%0e>8||H;?c7yo@`3G+8k|TMe-D?TPi+y5>!Lzuw-+ zg9kz$8x(9Y-*wp4yLa~ju2Q=lL733roxU>AksPPgu^W-GLK#f|DZ0qPo}RFlUmjC6 zBNE(`J5}6IiW%5YR01=Xe$XK=2A28W4LksE*YZ%fT+tY@k7$ z$)yKJh}S$8f4)x!m6eqlr|%785jL0&ULg^=FD*+7$J{+I81;0Z0v#94(oVLPrzU0t z4Jx1e+iw3LSsy#{3B0%S%b7g`xcV3`fUR|l1Nf-5wVAkGH~jbU0mpZ7e?-cS_p*<8 z+v^J2AVGSneE8BE0T3 zs_+OlO{8saZ}WWHJWqA7>1xt1kOD;S@#tt_v1hxJ67{{kjFlBn*GrhN5|oj)_Sj7j zBY@e|Y;DpGV*S!@T#yW^;&SN4i-Kuq21`s;p}J#_90=M$g;>va=!j?lWsoBbq#bP? z7+L)@;&(?n*FOGRH|KJ)bsYiH#%EvnlAt(D?sD$A&o*@C-+YNU^e3sIb0T0&_0Gl4 zuD_of|EB;iWa0hc>I^=in0bX;|5o4)zqR|!Y?Fyp@ct3-;yz5;=k<4^DE?9)KXvd+ z$Hl^Zi9Y`++~a@b4BNK~m;Ccm{}-zI{G%#Al0pXgi$tR zpvCvNkS5DuG0Fg4uV2p!`k)3Tor-DT7M+v3<=+f0vs!lHJ9YBkno)esAa1MdIL$&y zSdCX`IQonk3XZXJD9MEfM8DC|>BK7CEZFjRDa7~uAwtZz6bAJ4)$#*W2#9N4c!-YH z{aZ|Qx38t3ltmtayo%uVPF0*F_}^|pKOliy&Yk7k2`0*rMc|QWy&k3UNmVuVgbBh$ zzME!=4t{vln>+jYF;zs`@!9BLN&D{33>f>iBN8w$x2H^N5@{|jxxLQ%0y2Ddd?dQ5>H2HSGBq2W# z9T=QbTzrX8Hg*o>D9^i7K0d{)H&J?paLb!;pxEztq}5E97nyrJf+c!kee{zc-x_k3 z3kcv6I(%XxIB#29N6s5;8=l~cQVm~z7cAnv;(DjZ)Y0rO1s+uo5(9_pphWl%$s+gZ z5!syyCWGQ8FAwmooj198)6K$-HJ?pG+EyPsaOfBbEu|mUTM}>xr?4<`sb1F`+#}mQ~Y*HG1gM&hzhj_apWea4!NW*8Im0#KW z>uAdvXC|u@SlX*tD*G%rJgAM5oB2d|;NY3CqkLNVyfm!g8$O1U!d?;;I~HyQ!nndW zzdjV@hamH!ihBQAJRdP-DIXX6W+qg;DkROZ?mSO8*K{yK8lFJ3vKnnpXIc!vrY{(# zAL7H;8dFcig+*>G?)==Gv>#u)eH+G9Vjg^$W>Ws_B1s;eH{779@dm@@_YKyy77F=`R+$fkBINm ztFIfo_WXEYT>0XTZJ>VjIMzJL>2g@ko$HzT1t$Fe$eAZO)^DKgH{O{dk?+;DoO`;OzzHjd==67a{As~3*YdO?vV`I=zxX= z`tL_RuHGRbL9dGZh~>9~UkAT?ayKN>o0NBg|3X@Mer4(#TZ`x4t|%%;1(#75t?kO* zS1;t9!Y7Yc{unAyL4yjzk}k?BU_IoK(Hf(gS}Kjy;kGl?{-PP5tRC6Bn0`z+!V`Dz z4=U7N4nxh1REw=Mo;fBKshFBzKOv?iWzbX1|H)kS^-4FoHM! z$X~m2JH+osgT6)Oh;;{Y6nVIwf4AfKq#M@2jouFIB)5M+=F;UyQi z)9X!pxr_MtK?@&4ccU3=hr8j?=H{mPwULfSJ?RD%-P$tDN@LoU zt$GOGu0m&cRLT?Ow0`$&4(}U<-_;GTGU#@-QPHxy@%LXfC#jbm^{u=c!>gWxG!%!- zPv<;oww&hW04jbz>B)n+r*pc$s=g6}-PC$0cTD}PajiVmB&c!j{Le`si-OI&19(wjtT!L>ezOA-XPyO=~M8? zCfiYg^6hdv^}Fl`!7@gb%~ey?8R5~s3DU(BotH|N3Z>g83l;-363>)$x20b)%-%XR zG7|ikNN>(@c70uUsX-aps!ULI@R&ohB8ZUtZu!1loz3a${y8T*rMH)P+c)FOzx!yg z+c2U`leX=jUNI#{w=`T}zk#j)mj#S05Tk5@?pwa;s5#nlfp zQ+egEzW!go6v}IyoO~uD7D%YplNM;fPZz4L5<+@POXCT#;ul!8--i>6rQziUUE|&I zHr0>eu3fQ>@)k?CQnsh8u-l7PhSk9pG2PcBC9)p2KRy5Gjq5gRJIgxbd3{!$}9&&Te! za;NRBTt9zY_&W0_xb11?vkQFu-~MDN4l8KhCFWeYtWe#M^Pu{K*tDqE_3|o@BHMzh zjUeI17wBh*Pgi{|bh}p2ZO5h$fyTU_K`P@j-JB$==$^Isk0k%UHC42JOF~lpuk@Mr z+onB95eQn0z}69)Hur7q&MAEi-=La?oO9Lps~rqf{zyF^gOEmCt~#eO8kH94`rZVf zd)tifP{2{%m+MPJZ0Rnq&|+_6c1qBzSaGJrKH;j5l$t@5gVV#SX=!Rj!4(#QXBWbY zY6^dd14EKp8>~rJny*xyzeaVnNSGl~nMYE7N66dyBzF%uh zJXLJ-R>*(cP3cM#-iT+>15*I(m2o%NRDTmpJ}mPQ?rl8tuu!MOpMe~XUF%-`xt*Hu zdn@heZ%T1&Uv-bKRbWdOrab*l{zs!Qr)b8wO3JO;^c7ftMPikGXSy$~55O!H%U{F5eHk|CAEa<9# z1#u0gp?2}Mbx6;{7}O8g&%uzxhw!yNw7S<-E06A%n(Lm!Gp6cQ)e)A^PZB<_qD!*s9TEy0QO@Wdp)L5DnNzlw|y=2m#S zYP>C0X_=T4b#l_kk*vRW@2NaTG}vq{NnQGUTJ4>!5*+gGny z-&8CTvEhCvUGKcE+k!s*c$DR0pXLw|UlAWnQ7e`SK7ks4`@rN{NpC1%Zd5cU+derx zYiljc5a2_sm>v^!5)e5;ojOx>3syGZkYVHWV&Lol)!un{HMQk?JbLf-s;H=-fFKHj z8d?wpq$?0<0s=xHKnS?>Vh6bT(t4F6AoAWC_^r-eHJ%x0rcfvYP_xMi z-UG9nvj_f8O^&~o2mj}y9{<5NFh2qc06r@It$6SebkC{x0{Tw(tx$%y;>##Y`Ovu) zG%@fjffTr*=aB@q^oZv5Lys=c&fm?q{UIK_QZx^~*2JGZebz5tw(br!lP#p|p8U07 z^kqh=3g4vR`dS_^@Gn>VCY#<9t|%9=+7cR7tG^gViZcl=o(A38@0BGnHvCPHb`f2r z43@qUnjP7ci!GZx2E*jPqG*-5I{;lhr$+-e#4oES;LZ|R=>D`Qc1mtVMLW<1l_4!C zC;=~M_vPgwrt@+*%3~}Guc~RO!42r( zQM#swo>;jd$3!oz;7)`aYc{0)YVQ13bJ&53b9+JV*@x#&q^J!$gm(ytnuq;>UQtKZ z(&3W)_K8`LhcgkZn!f5~m*7=-lW$5ppkO$8C#tb2K?%=N%%mZNK9asGCZ~%V8`K;S z?jof|mPmK-Rok&2)B6gQ$5?~gjpC5O60U~@JKr!&(~ORKyd383T`L(+wikMUij(9K zE==Q<6xNFYJ$=G$0lK-FPcT_)^YZA`uk{Q8|1PEu1pN&$#r3inhII4~LOO8=*%6my)DW?ccYwkKDgE8+{C3}_INsw47N@agIsL)S0Xcc&Gq z&J~k-Z%Ftlf3fqpZ$t?xg)I`Jc*nJz?b}bDk}`80hPh-iv!6V*KlNbC=-OPaA>wAi z+SeSPOH0=pef`O$N0xu9OZ(;23@gms=@DF0Oux5WMivzk;(j`OYC%s-Qr2V%^;Iid zx=>Hi)%KU=(ZIz1m^wrbW2^=BRJ*Mufh{9c&95vUAd}azRq2WKW?XxDsz5y_4Liea zPcz?*`p2I>WwmSU=HFW@Ig(CWY7?hLZ+Ld3SrPNS-|*b_`^qJ&x%XsPMv8kA`}kEg zotn7j?IksDo_XD>_PnU@_vvQ$L(>QIoI^TqAO;jvNz6ThwAKS|9SQ-0IG%1$fD2eM zRN3)x_32m@fir=ep@hNcuFIA156{t|`mLe()!`V!Gc#xDyk}>!w3+)g(vQpu3P-E^ znrKb{#S@~nIL{@rUs!S)J(qpuv8LZt?MDaLqe=v4bXD&nDxLzJBQq=LI;nL4YXzS# zH2v_6$EB-BL#^=D(no*<o8l{b(O3Cfd~ zbA27|XH2G21i*4KHS)ZzJi4cr&S#gej%$F0M5@S02&a~1ab|IAMsD~LaXYUjENmp> z=)x3Z=qJd?E}YHksH@`lb(b2+q_0wverChB^I*|$HBu5FP!4+N%^j9``L<&YBa&zoB6~S zjFa$8=x25BG_Q>>0x5xlC#ubQ*u5q#ZmIxN#m$$KC(B&3(@HCPUEJUDsY%{W2tzFx zgJ}+e)gz4(<1a`VHsSQuQeU||D7yTY(Nehal?C4EI5t%*0!k9Es(v`xJVXT_A1g*IdcG|pBJwwA%Jy2q7wljp*DnBJjkdT`H-Fwbkm599j$V#})JQijQfqIIlok(T5kdj(^ z-}iA6cg{=J8QVg^QsPu~EUIDREXBD?O{Xu5ud3kqJtu=`!-=FUhswOGby*5l7^kc; zgf2WT5hfDo{dSa(vp!7kfh7X%r13a^HZ1*6VW9bgm*iS24?2r)OfFR=lUz)t$-pw1 zLys-R_5@?ry{)np6s~w$+G$kbQ%X5h6I5rwf08P*N!@G?Tu zi{E5iZgbtUr@5b~l;|Wsv#8ADI;M%FmiCc2IX{Ei%Y2ekLrKOaeWCK+C4Xfu&UiEW zn<{-d`*6}hj`K>{m*e^-sy@_QYtGJ&$+ESRt1|2Dg72U(UOyClWfij zFi&$fujjbX@6+C9{<_ocFE!TwgXI|Tc7f|(P-pJ<|6p$y8|GF~)TDhjUn5lYG3idx zN-)v*2U{BV%aXGM3WabM9#wFbuGxXke%xUYvfkuXok>!X=dUClDaxjat2L)<;&J%RA*oD=RB4$%GqLwTcWq*L$9rButp$3o@_Wg=>0vgf3h< z-FJbxU-N{fR|{>V^w`eyapd!2st)km9CyHuQdg+vN$G=aYcVtQJ3KPPx(x2x7k?nK zH&W#E-&w$N124#mXK&uJfV3Hy4ATbl4|*gOk$2CrrAE<6WLtgra`o-gKP{^jMaABe z%^;9kPdaz5jWpfMBwTmyQqa`My5HZ|G?m6(yC{0Smvw%H4!?JoAIe90ve}mg=$$`l zxFrTJD8usbbztR6>m_eZRY}hg*-VCG?+R@NXAiDtgk~OHBE$oK@W|1DcdC2nYrW}x zmWDyP^e@s*;=D2n58 z@R2beN}}x*x#qaeC(tntV@F|9VVZ9Qz`~+enr}Z=y%8i9Ys6aZxa2Spw*FbHntBOZ zG@xm&G(fk_;Kmx@H2PD>*sNUNqV(NT-XHzsHDb-8n~8Irt5S&*4U?~g4qiOBH^`W5 z%==B1uVmkdytO@^51pP|x7wYkgno#cRFoZ!N!2&?E1Gf=Zn>jAj0#ojf(W##Uymu& zY#Cg1Die&UzvF=*JQ!>Jd9<2IiX`k`tGytf!k*FRUOXK*%d2NDOv=r@+L7Wio9)J? z+C)3%k`C$KVBtDQ-~hzW$3Uz>^q97hjX3YSu5=odW%`Pa=hz?9dL!Et>^TE<}aY zhd1dhw%SLUk~iN}G=Zm}>RZm5q(9=zBo49bJbna%7}(VjSu)1?0lDnXJn;5z>xmPygfERBIo`;O!-ZaPHA? zf60uucKp}ob+^Y2j(`xqemT?QS?9K_hFznFB?|!h^@qf|v?sB)%g^SMYbx}PhK9O0 z(%Ww9$1UdO7hgqLWAk1KKrUT+nOl$Xm5OE{Dt5|58mSLjatvdW9S zzhN5J4qIXcq4IHhy#8R+wTPGRTE%STm(}l%K z-=xyrhCY2z{}y7bDo~mu;pt#w6!rVabY>nxb^Yj%8T}gEQ%HW}57%<_Cu(hm*j>bA zu&>8Y<4-f`pKc!tT&X;=D|%BGH%iMSt%uZ;2?<2OoO3(qFXulq2H~A-c^aUP5qoGm zhAU&EgEi_bjIMPV78K?bcAcZ2R-y;+TkpzXdd*U?9UP#XmyQc!{iBfPfX9L_!tpWiSBED$m9OY<$ zSLTdlmrft|i=(fV*CH-hiutiSi*Ec^@HaMFs|g ze12+*wL;G^iz&7`h$7)dAgY}5ORg%g@eDw`0o?2vY>6yw`jVF^u*-a1iRT1>T&Y3R z)CnIF{6w&rz>x3Olz!ixLrw6QI+4O+M98cu5Iwu1Ag74kT0JZ+uk8x%Y(u~t^xJ$O z{ZA;u5yL6ZQ?k|7J2U+88vz>HYsCoAzumH2i}G557;(=YwYm+x}Kt{ymu2KCK6xX ze=0d)XJ8ZxiJ$N!#Dk|ZQc5OaL74S=gzmG1XQg?i4V!GJST0Rq$j)FT)BMWEt+aSrjtu?4A5-zToAd<= z3V0CoXBY)3FNdTXt+Hqp&2h`y?ZYS~M}Hi!%~D3D@^x>y_n!rhHaj8jsvtiPZSq{s zpXJTW;pTtd*c%IK%v+JFzJ8tGOFNfZ2tc=aT~eP~$SBR5FN93L+)`YSdOLFu7}&xH zXw>$T&mGgBL@U>j$Uhj?34kD6`?JSapyC==_9iI_k?$|}ayA+N**<4@)gy!iDOV!% z$Agh3&Zp+Kpit@H=2b5+M`AMByGbt&*-4^ynHayo`n2rMJ>lB4nv-TK z^Ca6dXU-4+_C3nFJf1t4U?~!1r7u>}o3qdg?Coo$T(LErwbEqpLj-@`c6C(V~BZCIM^^jSkAVM1cZ^g&ycyH$k{Lsbc2IPnHx&IVXn9dW#&hY$tP|0dfn3{xijCY@_4}+zVbMLXb2*p^z6cQ&%Z#_V|HUy~>;aPUe`Cyi{0QL3QA#+Y#45^)PoS&_Vfd35aa=O*_oYile+$C!NT zXn}Eb?B~+r{63D%43Pp()U!oOR0P&gsL9xP$`XkzYJS)o2>>Wv-13c>YSn~XC!$f%c2)*g0vnIFG5^L z>ywUYsW@3_pnh)Y4x$e2QK%jiKW?=YpTEgY9qJ!VPOhypo;ro}{f_U89u6N{?K#}$ zF4j)4oU4pqnJ21iXhS;Sad!5a?dvX$@p9HMW%GlE+4`x zXGXU7sL#b@ES82DfF&z0UU{|IQZif*`QR&sxa5{t zeeZ%~f9@!v5GNX6^YZ7i<~gFE@R=hfZNeHp$6aRnRL@jX$5N@J`khAh=qgK(@urU! zg{@ufLO3-You{+?;Xl3dq-OerSb3N(VoOZ~guPpULRs=V)Ct?7SX-boaOiu$n%8D8 z-Q24S^Z$%Ud7D22jMjH6lb4{dSK0-VPoRnQJII{`%pzX$x;H`vkqx)Opfc1yT!pkt z&KN6QNM-5K`LRV0=Vwl^ZQ$LR@-YAv?027k7)6zXm3cG9 z^)JBOH@tKsB<0Y~1((G=tXJ0!7zxh?qwGEGoV6eugB?$V{BC2K>%*5hwsRY!J(7m| zVL)vP=R1niTm?j?_yh}W+`@wz!Zk^WGCpDPiJm3=0~#GxlEYbZR^;S-ks!VMasF{U zIDktB1Y*9qcaDIx@LF(?RC&w|NMBMf4sx2nz0-`SlyJpi@(anBaS7Z|m9gX3gwYFy zYlqytwt#XNYM_8ySxwMn2XEb+M0!%OtWsgM;X%;48Bk><0`K*}`95%&QK1SVK++Be zOp3tu???{<=AEe8Rt3;pQb3oH#l^j_5peC3uw(A~9PM4m_e4~x#sa+U9#CT9!DCG4%7!{q zn&KtUcdswb45_R!7|sq3z}`T=dvCknE%a<^&i-)dDlnKF(@v=z0M07#e{`_yicacY z;>>ft-I#HybnT=AUR3l2;H+9ab3`JM9}4d(yFD}989G7&@@o_f-`p){qM|-io0Fn}3}dbP2#T@xoXV_|THq$@U}5ndcNTPrXVV@V8ZPOH#no<)hk0FI&M{Q`QpvYo=@f&dp6KXQy|4(o0tBc8egJZns76`xvQ&d0Gd4e zaWq3ERaDe%uUT&H{xu}@z;5BTUPtY+f8ucNwF+V-p`{F{>rtxv9XY|LKlP?ofGelZ zx-;|ZdDODMdfjW#IB-D3AuzC6YQw+(Ny0hIaH3-#58N5cRz#&)3mpi^mBV@t7xJQg zHp;&Wmhq2mFdH3t{Tj%q2Ha{ZG0v8x(;LV#Z%4%!U1}?H~-)%H%ZbC#)0usie z8>Lg8GO1D!P4QMKAJcy;~|RFhjd4fy?l2CWw$3sJ|q3Ru-Tty^z+ zw@3~fyrl>{sXcw;{(|qq_br!pHNyN49lE&pTHRCTVDsybvrdR3+Yg+KpRwTBOcH@? z^6wt}j%}}Hie2{?$ZfHS76(om&m>xS#d%ZSbsph({kmQP$o_rua>(@^J4GLsv9SP+ z&tC4pD6FWBSD9P9+atH%_ogSt?kIj2AeFLtYEhKs^=l|F%%Af5@^QxhN6=Cwr=a92YGFV+uH0uM6!JR3Tz1b`ZcGGe-&u) dp}n;?B_M=|NEbp65R#~jC?cTJlopjH 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 diff --git a/e2e/tests/components/navbar/__screenshots__/chromium/Navbar-Submenu-Grid-Scroll-reveals-items-beyond-the-visible-grid-rows--scrolled.png b/e2e/tests/components/navbar/__screenshots__/chromium/Navbar-Submenu-Grid-Scroll-reveals-items-beyond-the-visible-grid-rows--scrolled.png deleted file mode 100644 index b6e738ed2927e2127efea24194f551704ba65c4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26566 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 diff --git a/e2e/tests/components/navbar/navbar.e2e.spec.ts b/e2e/tests/components/navbar/navbar.e2e.spec.ts index 92fc2a6c3e..1afae85aae 100644 --- a/e2e/tests/components/navbar/navbar.e2e.spec.ts +++ b/e2e/tests/components/navbar/navbar.e2e.spec.ts @@ -24,6 +24,7 @@ class StoryPage extends AbstractStoryPage { appTrigger: Locator; guidesTrigger: Locator; servicesMobileTrigger: Locator; + guidesMobileTrigger: Locator; closeButton: Locator; drawer: Locator; drawerBrand: Locator; @@ -52,6 +53,9 @@ class StoryPage extends AbstractStoryPage { servicesMobileTrigger: page.getByTestId( "link__mobile-2-expand-collapse-button" ), + guidesMobileTrigger: page.getByTestId( + "link__mobile-2-expand-collapse-button" + ), closeButton: page.getByRole("button", { name: "Close nav menu", }), diff --git a/src/menu/menu-section.styles.ts b/src/menu/menu-section.styles.ts index d5d7716cc0..047730ccd1 100644 --- a/src/menu/menu-section.styles.ts +++ b/src/menu/menu-section.styles.ts @@ -6,7 +6,7 @@ export const gridTokens = { rows: "--fds-menu-section-grid-rows", } as const; -// 367px max content width (Figma) + 8px padding on each side; matches grid-auto-columns below +// 367px max content width (Figma) + 8px padding per side; used to cap the panel maxWidth in MenuContent export const GRID_COLUMN_WIDTH_PX = 383; // matches Spacing["spacing-8"] export const GRID_COLUMN_GAP_PX = 8; diff --git a/src/menu/menu-section.tsx b/src/menu/menu-section.tsx index 2d548f68f5..b103bec195 100644 --- a/src/menu/menu-section.tsx +++ b/src/menu/menu-section.tsx @@ -24,7 +24,7 @@ export const MenuSection = ({ const gridRows = useMemo( () => columns !== undefined - ? Math.ceil(Children.count(children) / columns) + ? Math.ceil(Children.count(children) / Math.max(1, columns)) : undefined, [columns, children] ); diff --git a/src/menu/types.ts b/src/menu/types.ts index cdbfbb8127..67cc8a7efe 100644 --- a/src/menu/types.ts +++ b/src/menu/types.ts @@ -63,9 +63,10 @@ export interface MenuSectionProps extends HTMLAttributes { */ showDivider?: boolean | undefined; /** - * Renders `subMenu` as a multi-column layout on desktop. - * Items flow vertically (top-to-bottom per column). - * Has no effect on the mobile drawer. + * Renders section children in a CSS grid with the given number of columns + * on desktop. Items flow vertically (top-to-bottom) within each column + * before wrapping to the next. Has no effect on mobile viewports, which + * always render as a single column. * * @minimum 1 */ diff --git a/stories/navbar/navbar.mdx b/stories/navbar/navbar.mdx index fd8a5f62d6..d8aa1abe97 100644 --- a/stories/navbar/navbar.mdx +++ b/stories/navbar/navbar.mdx @@ -79,7 +79,7 @@ A sub menu is shown if the selected nav item has sublinks. ## Sub menu with grid layout -A sub menu can display links in a multi-column grid by setting `subMenuGridLayout` on the nav item. +A sub menu can display links in a multi-column grid by setting `subMenuColumns` on the nav item. diff --git a/tests/jest-setup.ts b/tests/jest-setup.ts index 511a66f807..b7c980f84c 100644 --- a/tests/jest-setup.ts +++ b/tests/jest-setup.ts @@ -8,22 +8,6 @@ if (typeof globalThis.PointerEvent === "undefined") { (globalThis as any).PointerEvent = MouseEvent; } -// Polyfill ResizeObserver for jsdom (used by react-resize-detector, e.g. SubMenuGrid) -if (typeof globalThis.ResizeObserver === "undefined") { - // eslint-disable-next-line @typescript-eslint/no-explicit-any -- globalThis lacks ResizeObserver type in jsdom - (globalThis as any).ResizeObserver = class { - public observe() { - // noop for jsdom - } - public unobserve() { - // noop for jsdom - } - public disconnect() { - // noop for jsdom - } - }; -} - const getFallbackThemeContext = (): ThemeContextValue => ({ theme: "lifesg", mode: "light", diff --git a/tests/menu/menu.spec.tsx b/tests/menu/menu.spec.tsx index 6381b19978..841b096a9c 100644 --- a/tests/menu/menu.spec.tsx +++ b/tests/menu/menu.spec.tsx @@ -186,6 +186,24 @@ describe("Menu", () => { expect(a).toHaveFocus(); }); + it("should set panel maxWidth CSS var based on max columns across child sections", () => { + // 2 columns: 2 * 383 + 1 * 8 + 2 (border) = 776px + const { getByTestId } = render( + + + Item 1 + Item 2 + + + ); + + expect( + getByTestId("menu-content").style.getPropertyValue( + "--fds-internal-menu-panel-maxWidth" + ) + ).toBe("776px"); + }); + it("should move focus through grid items in DOM order with Tab", async () => { const { getByRole } = render( @@ -233,5 +251,102 @@ describe("Menu", () => { expect(screen.getByRole("link", { name: "A" })).toBeInTheDocument(); }); + + it("should clamp columns to minimum 1 to avoid invalid CSS for non-positive values", () => { + // columns=-1 is truthy so the grid class is applied, but without the + // Math.max(1, columns) guard gridRows would be negative (invalid CSS). + const { getByTestId } = render( + + Item 1 + Item 2 + Item 3 + + ); + + // Math.max(1, -1) = 1 → gridRows = Math.ceil(3 / 1) = 3, not -3 + expect( + getByTestId("menu-section").style.getPropertyValue( + "--fds-menu-section-grid-rows" + ) + ).toBe("3"); + }); + + it("should set correct gridRows CSS var for normal column counts", () => { + const { getByTestId } = render( + + {Array.from({ length: 7 }, (_, i) => ( + + Item {i + 1} + + ))} + + ); + + // Math.ceil(7 / 3) = 3 + expect( + getByTestId("menu-section").style.getPropertyValue( + "--fds-menu-section-grid-rows" + ) + ).toBe("3"); + }); + + it("should render label outside the
                                  when both columns and label are provided", () => { + const { getByTestId, getByText } = render( + + A + B + + ); + + const ul = getByTestId("menu-section"); + const labelEl = getByText("Category"); + + // label must NOT be inside the
                                    (it would become a grid item otherwise) + expect(ul).not.toContainElement(labelEl); + //
                                      must reference the label for screen-reader accessible name + expect(ul.getAttribute("aria-labelledby")).toBe(labelEl.id); + }); + }); + + describe("Menu.Content (maxWidth)", () => { + it("should set panel maxWidth CSS var for 3 columns", () => { + // 3 columns: 3 * 383 + 2 * 8 + 2 (border) = 1167px + const { getByTestId } = render( + + + Item 1 + Item 2 + Item 3 + + + ); + + expect( + getByTestId("menu-content").style.getPropertyValue( + "--fds-internal-menu-panel-maxWidth" + ) + ).toBe("1167px"); + }); + + it("should not set panel maxWidth CSS var when no sections have columns", () => { + const { getByTestId } = render( + + + Item 1 + Item 2 + + + ); + + expect( + getByTestId("menu-content").style.getPropertyValue( + "--fds-internal-menu-panel-maxWidth" + ) + ).toBe(""); + }); }); }); From afc53466a9334a956a2699ba8dcf31659ba9ad45 Mon Sep 17 00:00:00 2001 From: Fauzan Naufan Date: Fri, 25 Sep 2026 10:13:50 +0800 Subject: [PATCH 23/25] [MOL-22399][FN] fix: resolve PR comments --- .../menu/grid-layout-with-label.e2e.tsx | 2 +- ...-Grid-layout-With-section-label--state.png | Bin 6140 -> 10960 bytes src/menu/menu-section.tsx | 44 +++++------------- tests/menu/menu.spec.tsx | 39 ---------------- 4 files changed, 12 insertions(+), 73 deletions(-) diff --git a/e2e/nextjs-app/src/app/components/menu/grid-layout-with-label.e2e.tsx b/e2e/nextjs-app/src/app/components/menu/grid-layout-with-label.e2e.tsx index 821ad44ae7..87c0e524b1 100644 --- a/e2e/nextjs-app/src/app/components/menu/grid-layout-with-label.e2e.tsx +++ b/e2e/nextjs-app/src/app/components/menu/grid-layout-with-label.e2e.tsx @@ -9,7 +9,7 @@ export default function Story() { {Array.from({ length: 6 }, (_, i) => ( diff --git a/e2e/tests/components/menu/__screenshots__/chromium/Menu-Grid-layout-With-section-label--state.png b/e2e/tests/components/menu/__screenshots__/chromium/Menu-Grid-layout-With-section-label--state.png index 12e0a014443a04824ac266d89b46a4df646fc545..786627f0c5845161d9e0f5159eee2cb9e0d88709 100644 GIT binary patch literal 10960 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

                                      0$KRJ;_-z&F{vJfqHLa#3B{!>3yq`D&tA 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 literal 6140 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 MfSBl&>D+zzFL{swKmY&$ diff --git a/src/menu/menu-section.tsx b/src/menu/menu-section.tsx index b103bec195..5e96f71a6d 100644 --- a/src/menu/menu-section.tsx +++ b/src/menu/menu-section.tsx @@ -52,47 +52,25 @@ export const MenuSection = ({ ) : null; - // When columns + label: render label outside the

                                        so it is never - // a grid item and always spans full width above the columns. - if (columns && label) { - return ( -
                                        - {labelElement} -
                                          - {children} -
                                        -
                                        - ); - } - return ( -
                                          {labelElement} - {children} -
                                        +
                                          + {children} +
                                        +
                                ); }; diff --git a/tests/menu/menu.spec.tsx b/tests/menu/menu.spec.tsx index 841b096a9c..3957e5849a 100644 --- a/tests/menu/menu.spec.tsx +++ b/tests/menu/menu.spec.tsx @@ -186,24 +186,6 @@ describe("Menu", () => { expect(a).toHaveFocus(); }); - it("should set panel maxWidth CSS var based on max columns across child sections", () => { - // 2 columns: 2 * 383 + 1 * 8 + 2 (border) = 776px - const { getByTestId } = render( - - - Item 1 - Item 2 - - - ); - - expect( - getByTestId("menu-content").style.getPropertyValue( - "--fds-internal-menu-panel-maxWidth" - ) - ).toBe("776px"); - }); - it("should move focus through grid items in DOM order with Tab", async () => { const { getByRole } = render( @@ -289,27 +271,6 @@ describe("Menu", () => { ) ).toBe("3"); }); - - it("should render label outside the
                                  when both columns and label are provided", () => { - const { getByTestId, getByText } = render( - - A - B - - ); - - const ul = getByTestId("menu-section"); - const labelEl = getByText("Category"); - - // label must NOT be inside the
                                    (it would become a grid item otherwise) - expect(ul).not.toContainElement(labelEl); - //
                                      must reference the label for screen-reader accessible name - expect(ul.getAttribute("aria-labelledby")).toBe(labelEl.id); - }); }); describe("Menu.Content (maxWidth)", () => { From e6ac2880472f7938c07ea458934976635b8e6940 Mon Sep 17 00:00:00 2001 From: Fauzan Naufan Date: Fri, 25 Sep 2026 10:27:31 +0800 Subject: [PATCH 24/25] [MOL-22399][FN] test: fix failed e2e --- e2e/tests/components/menu/menu.e2e.spec.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/e2e/tests/components/menu/menu.e2e.spec.ts b/e2e/tests/components/menu/menu.e2e.spec.ts index a7c6cf2fd0..3d9be6a154 100644 --- a/e2e/tests/components/menu/menu.e2e.spec.ts +++ b/e2e/tests/components/menu/menu.e2e.spec.ts @@ -94,8 +94,8 @@ test.describe("Menu", () => { - listitem: - paragraph: Jane Doe - paragraph: jane.doe@example.gov.sg + - paragraph: Actions - list "Actions": - - paragraph: Actions - listitem: Settings - listitem: - link "First link": @@ -106,8 +106,8 @@ test.describe("Menu", () => { - listitem: - link "Third link": - /url: "#third-link" + - paragraph: Resources - list "Resources": - - paragraph: Resources - listitem: - link "This is a long menu link title that should clamp across lines when the menu has limited width": - /url: "#long-link" From 180ed04b70c8c7dca8bed8905ecc5cca823f6f6d Mon Sep 17 00:00:00 2001 From: qroll Date: Thu, 24 Sep 2026 21:30:08 +0800 Subject: [PATCH 25/25] [MISC][RL] Simplify menu docs --- src/menu/types.ts | 2 +- stories/menu/menu.mdx | 20 +---------- stories/menu/menu.stories.tsx | 67 +++++++---------------------------- 3 files changed, 15 insertions(+), 74 deletions(-) diff --git a/src/menu/types.ts b/src/menu/types.ts index 67cc8a7efe..5bb8b26d41 100644 --- a/src/menu/types.ts +++ b/src/menu/types.ts @@ -63,7 +63,7 @@ export interface MenuSectionProps extends HTMLAttributes { */ showDivider?: boolean | undefined; /** - * Renders section children in a CSS grid with the given number of columns + * Renders section children in a grid with the given number of columns * on desktop. Items flow vertically (top-to-bottom) within each column * before wrapping to the next. Has no effect on mobile viewports, which * always render as a single column. diff --git a/stories/menu/menu.mdx b/stories/menu/menu.mdx index fe98f310c3..47b2aeace3 100644 --- a/stories/menu/menu.mdx +++ b/stories/menu/menu.mdx @@ -31,30 +31,12 @@ import { Menu } from "@lifesg/react-design-system/menu"; -## Multiple sections with mixed layouts - -Sections with different layouts can be combined in a single `Menu.Content`. In this example a regular list section sits alongside a grid section. - - - ## Grid layout -`Menu.Section` can display links in a multi-column grid by setting the `gridLayout` prop. +`Menu.Section` can display links or items in a multi-column grid. -## Grid layout with label - -A section label can be combined with `columns`. The label spans the full width above the grid columns. - - - -## Grid layout with overflow scroll - -When the panel height is constrained (e.g. via `maxHeight`), items that overflow are accessible by scrolling. - - - ## Resize and flip As the menu extends [PopoverTrigger](/docs/overlays-popover--docs), resize and diff --git a/stories/menu/menu.stories.tsx b/stories/menu/menu.stories.tsx index 1e950d5167..a72e5909ce 100644 --- a/stories/menu/menu.stories.tsx +++ b/stories/menu/menu.stories.tsx @@ -55,76 +55,35 @@ export const MenuContent: StoryObj = { }, }; -export const MultipleSections: StoryObj = { - render: (_args) => { - return ( - - - Link A - Link B - Link C - - - Link 1 - Link 2 - Link 3 - Link 4 - Link 5 - Link 6 - Link 7 - - - ); - }, -}; - export const GridLayout: StoryObj = { render: (_args) => { return ( - - + + Link 1 Link 2 Link 3 Link 4 Link 5 Link 6 - Link 7 - Link 8 + Item 1 + Item 2 - - ); - }, -}; - -export const GridLayoutWithLabel: StoryObj = { - render: (_args) => { - return ( - - + Link 1 Link 2 Link 3 Link 4 Link 5 Link 6 - Link 7 - - - ); - }, -}; - -export const GridLayoutScrollable: StoryObj = { - render: (_args) => { - return ( - - - {Array.from({ length: 12 }, (_, i) => ( - - Link {i + 1} - - ))} + + Link 7 (longer) + + Link 8 );