@contentful/f36-menu 4.15.0 → 4.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,38 @@
1
1
  # Change Log
2
2
 
3
+ ## 4.17.0
4
+
5
+ ### Patch Changes
6
+
7
+ - Updated dependencies []:
8
+ - @contentful/f36-icons@4.17.0
9
+ - @contentful/f36-popover@4.17.0
10
+ - @contentful/f36-typography@4.17.0
11
+ - @contentful/f36-utils@4.17.0
12
+ - @contentful/f36-core@4.17.0
13
+
14
+ ## 4.16.0
15
+
16
+ ### Patch Changes
17
+
18
+ - Updated dependencies []:
19
+ - @contentful/f36-icons@4.16.0
20
+ - @contentful/f36-popover@4.16.0
21
+ - @contentful/f36-typography@4.16.0
22
+ - @contentful/f36-utils@4.16.0
23
+ - @contentful/f36-core@4.16.0
24
+
25
+ ## 4.15.1
26
+
27
+ ### Patch Changes
28
+
29
+ - Updated dependencies []:
30
+ - @contentful/f36-icons@4.15.1
31
+ - @contentful/f36-popover@4.15.1
32
+ - @contentful/f36-typography@4.15.1
33
+ - @contentful/f36-utils@4.15.1
34
+ - @contentful/f36-core@4.15.1
35
+
3
36
  ## 4.15.0
4
37
 
5
38
  ### Patch Changes
package/dist/main.js CHANGED
@@ -24,6 +24,7 @@ $parcel$export(module.exports, "SubmenuTrigger", () => $68e427819b978177$export$
24
24
 
25
25
 
26
26
 
27
+
27
28
  const $9abfe5cafeb7e9d3$var$ARROW_KEY_TYPES = {
28
29
  vertical: {
29
30
  prev: "ArrowUp",
@@ -76,7 +77,6 @@ const $9abfe5cafeb7e9d3$export$e8d01079a7f85a7 = ({ itemsContainerRef: itemsCont
76
77
 
77
78
 
78
79
 
79
-
80
80
  const $31bc1b2a74a830dc$var$MenuContext = (0, ($parcel$interopDefault($6ZrLO$react))).createContext(undefined);
81
81
  const $31bc1b2a74a830dc$export$21c7ab35b39f78ec = ()=>{
82
82
  const context = (0, ($parcel$interopDefault($6ZrLO$react))).useContext($31bc1b2a74a830dc$var$MenuContext);
@@ -368,7 +368,6 @@ const $c5bfee6901fd5b47$export$d4c4e98c5044dc8 = /*#__PURE__*/ (0, ($parcel$inte
368
368
 
369
369
 
370
370
 
371
-
372
371
  const $f099c69f76c1082f$export$adaad53e003c74d0 = ()=>{
373
372
  return {
374
373
  root: /*#__PURE__*/ (0, $6ZrLO$emotion.css)({
@@ -490,6 +489,7 @@ const $a8d7f8a94ad9b120$export$acb07b4664ac227c = (props)=>{
490
489
 
491
490
 
492
491
 
492
+
493
493
  const $80d81cb0da14b65a$export$2698fa8b3a0a79e6 = ()=>/*#__PURE__*/ (0, $6ZrLO$emotion.css)({
494
494
  textAlign: "left",
495
495
  padding: `${(0, ($parcel$interopDefault($6ZrLO$contentfulf36tokens))).spacingXs} ${(0, ($parcel$interopDefault($6ZrLO$contentfulf36tokens))).spacingM}`,
@@ -500,7 +500,6 @@ const $80d81cb0da14b65a$export$2698fa8b3a0a79e6 = ()=>/*#__PURE__*/ (0, $6ZrLO$e
500
500
  });
501
501
 
502
502
 
503
-
504
503
  const $a9e47e1a6fcc6dbc$export$5d1e6c648985631e = (props)=>{
505
504
  const { children: children , testId: testId = "cf-ui-menu-section-title" , className: className , ...otherProps } = props;
506
505
  const styles = (0, $80d81cb0da14b65a$export$2698fa8b3a0a79e6)();
package/dist/main.js.map CHANGED
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/components/menu/src/index.ts","packages/components/menu/src/CompoundMenu.tsx","packages/components/menu/src/Menu.tsx","packages/components/menu/src/useArrowKeyNavigation.ts","packages/components/menu/src/MenuContext.ts","packages/components/menu/src/MenuList/MenuList.tsx","packages/components/menu/src/SubmenuContext.ts","packages/components/menu/src/MenuList/MenuList.styles.ts","packages/components/menu/src/MenuList/MenuListHeader.tsx","packages/components/menu/src/MenuList/MenuListFooter.tsx","packages/components/menu/src/MenuItem/MenuItem.tsx","packages/components/menu/src/MenuItem/MenuItem.styles.ts","packages/components/menu/src/MenuTrigger/MenuTrigger.tsx","packages/components/menu/src/MenuDivider/MenuDivider.tsx","packages/components/menu/src/MenuDivider/MenuDivider.styles.ts","packages/components/menu/src/MenuSectionTitle/MenuSectionTitle.tsx","packages/components/menu/src/MenuSectionTitle/MenuSectionTitle.styles.ts","packages/components/menu/src/Submenu/Submenu.tsx","packages/components/menu/src/SubmenuTrigger/SubmenuTrigger.tsx","packages/components/menu/src/SubmenuTrigger/SubmenuTrigger.styles.ts"],"sourcesContent":["export { Menu } from './CompoundMenu';\nexport type { MenuProps } from './Menu';\nexport { MenuList } from './MenuList/MenuList';\nexport type { MenuListProps } from './MenuList/MenuList';\nexport { MenuItem } from './MenuItem/MenuItem';\nexport type { MenuItemProps } from './MenuItem/MenuItem';\nexport { MenuTrigger } from './MenuTrigger/MenuTrigger';\nexport type { MenuTriggerProps } from './MenuTrigger/MenuTrigger';\nexport { MenuDivider } from './MenuDivider/MenuDivider';\nexport type { MenuDividerProps } from './MenuDivider/MenuDivider';\nexport { MenuSectionTitle } from './MenuSectionTitle/MenuSectionTitle';\nexport type { MenuSectionTitleProps } from './MenuSectionTitle/MenuSectionTitle';\nexport { Submenu } from './Submenu/Submenu';\nexport type { SubmenuProps } from './Submenu/Submenu';\nexport { SubmenuTrigger } from './SubmenuTrigger/SubmenuTrigger';\nexport type { SubmenuTriggerProps } from './SubmenuTrigger/SubmenuTrigger';\n","import { Menu as OriginalMenu } from './Menu';\nimport { MenuList } from './MenuList/MenuList';\nimport { MenuListHeader } from './MenuList/MenuListHeader';\nimport { MenuListFooter } from './MenuList/MenuListFooter';\nimport { MenuItem } from './MenuItem/MenuItem';\nimport { MenuTrigger } from './MenuTrigger/MenuTrigger';\nimport { MenuDivider } from './MenuDivider/MenuDivider';\nimport { MenuSectionTitle } from './MenuSectionTitle/MenuSectionTitle';\nimport { Submenu } from './Submenu/Submenu';\nimport { SubmenuTrigger } from './SubmenuTrigger/SubmenuTrigger';\n\ntype CompoundMenu = typeof OriginalMenu & {\n List: typeof MenuList;\n ListHeader: typeof MenuListHeader;\n ListFooter: typeof MenuListFooter;\n Item: typeof MenuItem;\n Trigger: typeof MenuTrigger;\n Divider: typeof MenuDivider;\n SectionTitle: typeof MenuSectionTitle;\n Submenu: typeof Submenu;\n SubmenuTrigger: typeof SubmenuTrigger;\n};\n\nexport const Menu = OriginalMenu as CompoundMenu;\nMenu.List = MenuList;\nMenu.ListHeader = MenuListHeader;\nMenu.ListFooter = MenuListFooter;\nMenu.Item = MenuItem;\nMenu.Trigger = MenuTrigger;\nMenu.Divider = MenuDivider;\nMenu.SectionTitle = MenuSectionTitle;\nMenu.Submenu = Submenu;\nMenu.SubmenuTrigger = SubmenuTrigger;\n","import React, { useCallback, useMemo, useRef, useEffect } from 'react';\nimport { mergeRefs, useId, useControllableState } from '@contentful/f36-core';\nimport { useArrowKeyNavigation } from './useArrowKeyNavigation';\nimport { Popover } from '@contentful/f36-popover';\nimport type { PopoverProps } from '@contentful/f36-popover';\nimport { MenuContextProvider, MenuContextType } from './MenuContext';\n\nconst MENU_ITEMS_SELECTOR = '[role=\"menuitem\"]:not(:disabled)';\n\nexport interface MenuProps\n extends Omit<PopoverProps, 'autoFocus' | 'id' | 'closeOnBlur'> {\n /**\n * By default, the Menu is uncontrolled (manage it's expanded state by itself)\n * But you can make it controlled by providing boolean (true/false)\n */\n isOpen?: boolean;\n\n /**\n * If `true`, the Menu will be initially opened.\n */\n defaultIsOpen?: boolean;\n\n /**\n * Callback fired when the Menu opens\n */\n onOpen?: () => void;\n\n /**\n * Callback fired when the Menu closes\n */\n onClose?: () => void;\n\n /**\n * If `true`, the Menu will close when a menu item is\n * clicked\n *\n * Note: This prop will be propagated to all submenus,\n * unless you will override it with props on submenu itself\n *\n * @default true\n */\n closeOnSelect?: boolean;\n\n /**\n * If true, the menu will close when you blur out it by clicking outside\n *\n * Note: This prop will be propagated to all submenus,\n * unless you will override it with props on submenu itself\n *\n * @default true\n */\n closeOnBlur?: boolean;\n\n /**\n * If true, the menu will close when you hit the Esc key\n *\n * Note: This prop will be propagated to all submenus,\n * unless you will override it with props on submenu itself\n *\n * @default true\n */\n closeOnEsc?: boolean;\n}\n\nexport function Menu(props: MenuProps) {\n const {\n closeOnSelect = true,\n closeOnBlur = true,\n closeOnEsc = true,\n children,\n onOpen,\n ...otherProps\n } = props;\n const {\n isOpen,\n handleOpen,\n handleClose,\n isControlled,\n } = useControllableState({\n isOpen: props.isOpen,\n defaultIsOpen: props.defaultIsOpen,\n onOpen,\n onClose: props.onClose,\n });\n\n const triggerRef = useRef<HTMLButtonElement>(null);\n const menuListRef = useRef<HTMLDivElement>(null);\n\n const menuId = useId(null, 'menu');\n\n const {\n focusedIndex,\n handleArrowsKeyDown,\n setFocusedIndex,\n } = useArrowKeyNavigation({\n itemsContainerRef: menuListRef,\n itemsSelector: MENU_ITEMS_SELECTOR,\n });\n\n useEffect(() => {\n if (isOpen && menuListRef.current) {\n const menuItems = menuListRef.current.querySelectorAll(\n MENU_ITEMS_SELECTOR,\n );\n\n if (menuItems.length > 0 && focusedIndex < menuItems.length) {\n // timeout trick to prevent scroll from jumping\n // when the popover is not positioned correctly yet in the opening phase\n setTimeout(() => {\n (menuItems[focusedIndex] as HTMLElement).focus({\n preventScroll: false,\n });\n }, 0);\n }\n }\n }, [isOpen, focusedIndex]);\n\n const focusMenuItem = useCallback(\n (item: HTMLElement) => {\n const menuItems = menuListRef.current.querySelectorAll(\n MENU_ITEMS_SELECTOR,\n );\n\n const itemIndex = [...menuItems].findIndex(\n (menuItem) => item === menuItem,\n );\n\n if (itemIndex !== -1) {\n setFocusedIndex(itemIndex);\n }\n },\n [setFocusedIndex],\n );\n\n const closeAndFocusTrigger = useCallback(() => {\n handleClose();\n triggerRef.current?.focus({ preventScroll: true });\n }, [handleClose]);\n\n const handleMenuListKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key === 'Tab') {\n event.preventDefault();\n closeAndFocusTrigger();\n return;\n }\n\n // we don't want to propagate other keydown events except `Tab`\n event.stopPropagation();\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n closeAndFocusTrigger();\n return;\n }\n\n handleArrowsKeyDown(event);\n },\n [closeAndFocusTrigger, handleArrowsKeyDown],\n );\n\n const contextValue: MenuContextType = useMemo(\n () => ({\n isOpen,\n menuId,\n focusMenuItem,\n getTriggerProps: (_props = {}, _ref = null) => ({\n onClick: (event) => {\n // if the user made component controlled by providing isOpen prop\n // but onOpen callback is not provided, we won't add toggle logic\n // to the trigger component. So they can make any toggle logic on their own.\n const isFullyControlled = isControlled && !onOpen;\n\n if (!isFullyControlled) {\n if (isOpen) {\n handleClose();\n } else {\n handleOpen();\n }\n }\n\n _props.onClick?.(event);\n },\n ref: mergeRefs(triggerRef, _ref),\n }),\n getMenuListProps: (_props = {}, _ref = null) => ({\n ref: mergeRefs(menuListRef, _ref),\n onKeyDown: (event) => {\n handleMenuListKeyDown(event);\n _props.onKeyDown?.(event);\n },\n onBlur: (event) => {\n _props.onBlur?.(event);\n\n if (!closeOnBlur) {\n return;\n }\n\n const relatedTarget = event.relatedTarget as Node;\n\n const targetIsMenu =\n menuListRef.current === relatedTarget ||\n menuListRef.current?.contains(relatedTarget);\n const targetIsTrigger =\n triggerRef.current === relatedTarget ||\n triggerRef.current?.contains(relatedTarget);\n const targetIsSubmenu =\n relatedTarget?.parentElement?.dataset.parentMenu === menuId;\n\n if (targetIsMenu || targetIsTrigger || targetIsSubmenu) {\n event.stopPropagation();\n return;\n }\n\n handleClose();\n },\n }),\n getMenuItemProps: (_props = {}) => ({\n onClick: (event) => {\n _props.onClick?.(event);\n\n const isSubmenuTrigger = Boolean(\n (event.target as HTMLElement).getAttribute('aria-haspopup'),\n );\n if (closeOnSelect && !isSubmenuTrigger) {\n closeAndFocusTrigger();\n }\n },\n }),\n propsToPropagateToSubmenus: {\n closeOnSelect,\n closeOnBlur,\n closeOnEsc,\n },\n }),\n [\n menuId,\n isOpen,\n handleMenuListKeyDown,\n closeOnSelect,\n handleClose,\n handleOpen,\n focusMenuItem,\n closeOnBlur,\n closeOnEsc,\n closeAndFocusTrigger,\n isControlled,\n onOpen,\n ],\n );\n\n return (\n <MenuContextProvider value={contextValue}>\n <Popover\n {...otherProps}\n isOpen={isOpen}\n onClose={handleClose}\n id={menuId}\n closeOnEsc={closeOnEsc}\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus={false}\n closeOnBlur={false}\n >\n {children}\n </Popover>\n </MenuContextProvider>\n );\n}\n","import { useState, useCallback } from 'react';\n\ninterface UseArrowKeyNavigationProps {\n itemsContainerRef: React.MutableRefObject<HTMLElement>;\n itemsSelector: string;\n keyType?: 'vertical' | 'horizontal';\n initialFocusedIndex?: number;\n}\n\nconst ARROW_KEY_TYPES = {\n vertical: {\n prev: 'ArrowUp',\n next: 'ArrowDown',\n },\n horizontal: {\n prev: 'ArrowLeft',\n next: 'ArrowRight',\n },\n};\n\nexport const useArrowKeyNavigation = ({\n itemsContainerRef,\n itemsSelector,\n keyType = 'vertical',\n}: UseArrowKeyNavigationProps) => {\n const [focusedIndex, setFocusedIndex] = useState<number>(0);\n\n const handleArrowsKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n const container = itemsContainerRef.current;\n if (!container) return;\n\n const items = container.querySelectorAll(itemsSelector);\n if (items.length === 0) return;\n\n const lastItemIndex = items.length - 1;\n\n const focusFirstItem = () => setFocusedIndex(0);\n const focusLastItem = () => setFocusedIndex(lastItemIndex);\n const focusNextItem = () => {\n if (focusedIndex === lastItemIndex) {\n focusFirstItem();\n } else {\n setFocusedIndex(focusedIndex + 1);\n }\n };\n const focusPrevItem = () => {\n if (focusedIndex === 0) {\n focusLastItem();\n } else {\n setFocusedIndex(focusedIndex - 1);\n }\n };\n\n const keyToFnMap = {\n [ARROW_KEY_TYPES[keyType].next]: focusNextItem,\n [ARROW_KEY_TYPES[keyType].prev]: focusPrevItem,\n };\n\n const fn = keyToFnMap[event.key];\n if (fn) {\n event.preventDefault();\n fn();\n }\n },\n [focusedIndex, itemsSelector, itemsContainerRef, keyType],\n );\n\n return { focusedIndex, handleArrowsKeyDown, setFocusedIndex };\n};\n","import React, { ComponentPropsWithRef } from 'react';\nimport { MenuProps } from '.';\n\nexport type MenuContextType = {\n isOpen: boolean;\n menuId: string;\n focusMenuItem: (item: HTMLElement) => void;\n getTriggerProps: (\n _props: ComponentPropsWithRef<'button'>,\n _ref: React.Ref<HTMLButtonElement>,\n ) => ComponentPropsWithRef<'button'>;\n getMenuListProps: (\n _props: ComponentPropsWithRef<'div'>,\n _ref: React.Ref<HTMLDivElement>,\n ) => ComponentPropsWithRef<'div'>;\n getMenuItemProps: (\n _props: ComponentPropsWithRef<'button'>,\n ) => ComponentPropsWithRef<'button'>;\n propsToPropagateToSubmenus: Pick<\n MenuProps,\n 'closeOnBlur' | 'closeOnEsc' | 'closeOnSelect'\n >;\n};\n\nconst MenuContext = React.createContext<MenuContextType | undefined>(undefined);\n\nexport const useMenuContext = () => {\n const context = React.useContext(MenuContext);\n\n if (context === undefined) {\n throw new Error('useMenuContext must be used within a MenuContextProvider');\n }\n\n return context;\n};\n\nexport const MenuContextProvider = MenuContext.Provider;\n","import React from 'react';\nimport type {\n CommonProps,\n PropsWithHTMLElement,\n ExpandProps,\n} from '@contentful/f36-core';\nimport { useMenuContext } from '../MenuContext';\nimport { useSubmenuContext } from '../SubmenuContext';\nimport { Popover } from '@contentful/f36-popover';\nimport { cx } from 'emotion';\nimport { getMenuListStyles } from './MenuList.styles';\nimport { MenuListHeader } from './MenuListHeader';\nimport { MenuListFooter } from './MenuListFooter';\n\ninterface MenuListInternalProps extends CommonProps {\n children?: React.ReactNode;\n}\n\nfunction assertChild(child: any): child is { type: { displayName: string } } {\n return Boolean(child?.type?.displayName);\n}\n\nexport type MenuListProps = PropsWithHTMLElement<MenuListInternalProps, 'div'>;\n\nconst _MenuList = (\n props: ExpandProps<MenuListProps>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const {\n children,\n testId = 'cf-ui-menu-list',\n className,\n ...otherProps\n } = props;\n\n const { getMenuListProps } = useMenuContext();\n const submenuContext = useSubmenuContext();\n\n let header: React.ReactElement | null = null;\n let footer: React.ReactElement | null = null;\n const items: React.ReactElement[] = [];\n\n React.Children.forEach(children, (child) => {\n let appendChild = true;\n if (assertChild(child)) {\n if (child.type.displayName === MenuListHeader.displayName) {\n header = (child as unknown) as React.ReactElement;\n appendChild = false;\n } else if (child.type.displayName === MenuListFooter.displayName) {\n footer = (child as unknown) as React.ReactElement;\n appendChild = false;\n }\n }\n if (appendChild) {\n items.push((child as unknown) as React.ReactElement);\n }\n });\n\n const styles = getMenuListStyles({\n hasStickyHeader: Boolean(header),\n hasStickyFooter: Boolean(footer),\n });\n\n const extendedOtherProps = submenuContext\n ? submenuContext.getSubmenuListProps(otherProps)\n : otherProps;\n\n return (\n <Popover.Content\n role=\"menu\"\n {...extendedOtherProps}\n {...getMenuListProps(extendedOtherProps, ref)}\n className={cx(styles.container, className)}\n testId={testId}\n >\n {header}\n {items}\n {footer}\n </Popover.Content>\n );\n};\n\nexport const MenuList = React.forwardRef(_MenuList);\n","import React, { ComponentPropsWithRef, ComponentPropsWithoutRef } from 'react';\n\nexport type SubmenuContextType = {\n isOpen: boolean;\n getSubmenuListProps: (\n _props: ComponentPropsWithRef<'div'>,\n ) => { 'data-parent-menu': string } & ComponentPropsWithoutRef<'div'>;\n getSubmenuTriggerProps: (\n _props: ComponentPropsWithRef<'button'>,\n _ref: React.Ref<HTMLButtonElement>,\n ) => ComponentPropsWithRef<'button'>;\n};\n\nconst SubmenuContext = React.createContext<SubmenuContextType | undefined>(\n undefined,\n);\n\nexport const useSubmenuContext = () => {\n const context = React.useContext(SubmenuContext);\n return context;\n};\n\nexport const SubmenuContextProvider = SubmenuContext.Provider;\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getMenuHeaderStyles = () => {\n return css({\n position: 'sticky',\n top: 0,\n left: 0,\n backgroundColor: tokens.colorWhite,\n borderBottom: `1px solid ${tokens.gray300}`,\n padding: `${tokens.spacingXs} 0`,\n zIndex: 1001,\n });\n};\n\nexport const getMenuFooterStyles = () => {\n return css({\n position: 'sticky',\n bottom: 0,\n left: 0,\n backgroundColor: tokens.colorWhite,\n borderTop: `1px solid ${tokens.gray300}`,\n padding: `${tokens.spacingXs} 0`,\n zIndex: 1001,\n });\n};\n\nexport const getMenuListStyles = (props: {\n hasStickyFooter?: boolean;\n hasStickyHeader?: boolean;\n}) => ({\n container: css({\n overflowY: 'auto',\n position: 'relative',\n padding: 0,\n paddingTop: props.hasStickyHeader ? 0 : tokens.spacingXs,\n paddingBottom: props.hasStickyFooter ? 0 : tokens.spacingXs,\n }),\n});\n","import React from 'react';\nimport { cx } from 'emotion';\nimport type {\n CommonProps,\n PropsWithHTMLElement,\n ExpandProps,\n} from '@contentful/f36-core';\n\nimport { getMenuHeaderStyles } from './MenuList.styles';\n\nexport type MenuListHeaderProps = PropsWithHTMLElement<CommonProps, 'div'>;\n\nexport const MenuListHeader: React.FC<ExpandProps<MenuListHeaderProps>> = (\n props,\n) => {\n const {\n children,\n testId = 'cf-ui-menu-list-header',\n className,\n ...otherProps\n } = props;\n\n const styles = getMenuHeaderStyles();\n\n return (\n <div\n data-test-id={testId}\n className={cx(styles, className)}\n {...otherProps}\n >\n {children}\n </div>\n );\n};\n\nMenuListHeader.displayName = 'MenuListHeader';\n","import React from 'react';\nimport { cx } from 'emotion';\nimport type {\n CommonProps,\n PropsWithHTMLElement,\n ExpandProps,\n} from '@contentful/f36-core';\n\nimport { getMenuFooterStyles } from './MenuList.styles';\n\nexport type MenuListFooterProps = PropsWithHTMLElement<CommonProps, 'div'>;\n\nexport const MenuListFooter: React.FC<ExpandProps<MenuListFooterProps>> = (\n props,\n) => {\n const {\n children,\n testId = 'cf-ui-menu-list-footer',\n className,\n ...otherProps\n } = props;\n\n const styles = getMenuFooterStyles();\n\n return (\n <div\n data-test-id={testId}\n className={cx(styles, className)}\n {...otherProps}\n >\n {children}\n </div>\n );\n};\n\nMenuListFooter.displayName = 'MenuListFooter';\n","import React, { useEffect, useRef } from 'react';\nimport { cx } from 'emotion';\nimport { mergeRefs } from '@contentful/f36-core';\nimport type {\n CommonProps,\n PolymorphicComponent,\n PolymorphicProps,\n ExpandProps,\n} from '@contentful/f36-core';\nimport { useMenuContext } from '../MenuContext';\nimport { useId } from '@contentful/f36-core';\nimport { getMenuItemStyles } from './MenuItem.styles';\n\nconst MENU_ITEM_DEFAULT_TAG = 'button';\n\ninterface MenuItemInternalProps extends CommonProps {\n children?: React.ReactNode;\n as?: 'a' | 'button';\n\n /**\n * Sets focus on item\n */\n isInitiallyFocused?: boolean;\n}\n\nexport type MenuItemProps<\n E extends React.ElementType = typeof MENU_ITEM_DEFAULT_TAG\n> = PolymorphicProps<MenuItemInternalProps, E>;\n\nfunction _MenuItem<E extends React.ElementType = typeof MENU_ITEM_DEFAULT_TAG>(\n props: MenuItemProps<E>,\n ref: React.Ref<any>,\n) {\n const { testId, className, as, isInitiallyFocused, ...otherProps } = props;\n\n const id = useId(undefined, 'menu-item');\n const itemTestId = testId || `cf-ui-${id}`;\n const styles = getMenuItemStyles();\n\n const { getMenuItemProps, focusMenuItem } = useMenuContext();\n\n const itemRef = useRef<HTMLElement>(null);\n useEffect(() => {\n if (isInitiallyFocused && itemRef.current) {\n focusMenuItem(itemRef.current);\n }\n }, [isInitiallyFocused, focusMenuItem]);\n\n const Element = (as ?? MENU_ITEM_DEFAULT_TAG) as React.ElementType;\n\n return (\n <Element\n role=\"menuitem\"\n {...otherProps}\n {...getMenuItemProps(otherProps)}\n className={cx(styles.root, className)}\n data-test-id={itemTestId}\n ref={mergeRefs(itemRef, ref)}\n tabIndex={-1}\n >\n {props.children}\n </Element>\n );\n}\n\n_MenuItem.displayName = 'MenuItem';\n\nexport const MenuItem: PolymorphicComponent<\n ExpandProps<MenuItemInternalProps>,\n typeof MENU_ITEM_DEFAULT_TAG\n> = React.forwardRef(_MenuItem);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getMenuItemStyles = () => {\n return {\n root: css({\n display: 'block',\n width: '100%',\n background: 'none',\n border: 0,\n margin: 0,\n outline: 'none',\n fontSize: tokens.fontSizeM,\n lineHeight: tokens.lineHeightM,\n fontWeight: tokens.fontWeightNormal,\n position: 'relative',\n textAlign: 'left',\n padding: `${tokens.spacingXs} ${tokens.spacingM}`,\n wordBreak: 'break-word',\n whiteSpace: 'break-spaces',\n cursor: 'pointer',\n hyphens: 'auto',\n minWidth: '150px',\n textDecoration: 'none',\n color: tokens.gray800,\n\n '&:hover': {\n backgroundColor: tokens.gray100,\n },\n '&:focus': {\n boxShadow: `inset ${tokens.glowPrimary}`,\n // just to make boxShadow with rounded corners\n borderRadius: tokens.borderRadiusMedium,\n },\n '&:focus:not(:focus-visible)': {\n boxShadow: 'unset',\n borderRadius: 'unset',\n },\n '&:focus-visible': {\n boxShadow: `inset ${tokens.glowPrimary}`,\n borderRadius: tokens.borderRadiusMedium,\n },\n '&:active': {\n backgroundColor: tokens.gray200,\n },\n '&:disabled': {\n opacity: 0.5,\n cursor: 'auto',\n },\n }),\n };\n};\n","import React from 'react';\nimport { Popover } from '@contentful/f36-popover';\nimport { useMenuContext } from '../MenuContext';\nimport type { ExpandProps } from '@contentful/f36-core';\n\nexport interface MenuTriggerProps {\n children: React.ReactNode;\n}\n\nexport const MenuTrigger = (props: ExpandProps<MenuTriggerProps>) => {\n const child = React.Children.only(props.children) as any;\n const { getTriggerProps } = useMenuContext();\n\n return (\n <Popover.Trigger>\n {React.cloneElement(child, {\n ...getTriggerProps(child.props, child.ref),\n ['aria-haspopup']: 'menu',\n })}\n </Popover.Trigger>\n );\n};\n","import React from 'react';\nimport type {\n CommonProps,\n PropsWithHTMLElement,\n ExpandProps,\n} from '@contentful/f36-core';\nimport { cx } from 'emotion';\nimport { getMenuDividerStyles } from './MenuDivider.styles';\n\nexport type MenuDividerProps = PropsWithHTMLElement<CommonProps, 'hr'>;\n\nexport const MenuDivider = (props: ExpandProps<MenuDividerProps>) => {\n const {\n children,\n testId = 'cf-ui-menu-divider',\n className,\n ...otherProps\n } = props;\n\n const styles = getMenuDividerStyles();\n\n return (\n <hr\n aria-orientation=\"horizontal\"\n data-test-id={testId}\n className={cx(styles, className)}\n {...otherProps}\n />\n );\n};\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getMenuDividerStyles = () =>\n css({\n border: 'none',\n width: '100%',\n height: '1px',\n background: tokens.gray300,\n margin: `${tokens.spacingXs} 0`,\n });\n","import React from 'react';\nimport { cx } from 'emotion';\nimport { getMenuSectionTitleStyles } from './MenuSectionTitle.styles';\nimport { SectionHeading } from '@contentful/f36-typography';\nimport type { SectionHeadingProps } from '@contentful/f36-typography';\nimport type { ExpandProps } from '@contentful/f36-core';\n\nexport type MenuSectionTitleProps = SectionHeadingProps;\n\nexport const MenuSectionTitle = (props: ExpandProps<MenuSectionTitleProps>) => {\n const {\n children,\n testId = 'cf-ui-menu-section-title',\n className,\n ...otherProps\n } = props;\n\n const styles = getMenuSectionTitleStyles();\n\n return (\n <SectionHeading\n // Techincally, menus cannot contain headings according to ARIA.\n // We hide the heading from assistive technology, and only use it\n // as a label\n aria-hidden=\"true\"\n testId={testId}\n className={cx(styles, className)}\n marginBottom=\"none\"\n {...otherProps}\n >\n {children}\n </SectionHeading>\n );\n};\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getMenuSectionTitleStyles = () =>\n css({\n textAlign: 'left',\n padding: `${tokens.spacingXs} ${tokens.spacingM}`,\n lineHeight: tokens.lineHeightM,\n\n 'hr + &': {\n marginTop: '-8px',\n },\n });\n","import React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { Menu, MenuProps } from '../Menu';\nimport { useMenuContext } from '../MenuContext';\nimport { SubmenuContextProvider, SubmenuContextType } from '../SubmenuContext';\nimport { mergeRefs } from '@contentful/f36-core';\n\nconst SUBMENU_OFFSET: [number, number] = [-8, 2];\n\nexport type SubmenuProps = Omit<\n MenuProps,\n | 'placement'\n | 'offset'\n | 'usePortal'\n | 'isOpen'\n | 'isAutoalignmentEnabled'\n | 'defaultIsOpen'\n>;\n\nexport const Submenu = (props: SubmenuProps) => {\n const { onClose, onOpen, ...otherProps } = props;\n\n const {\n isOpen: isParentMenuOpen,\n menuId,\n propsToPropagateToSubmenus,\n } = useMenuContext();\n\n const triggerRef = useRef<HTMLButtonElement>(null);\n const mouseLeaveTimerRef = useRef(null);\n\n const [isOpen, setIsOpen] = useState(false);\n const handleOpen = useCallback(() => {\n setIsOpen(true);\n window.clearTimeout(mouseLeaveTimerRef.current);\n\n onOpen?.();\n }, [onOpen]);\n const handleClose = useCallback(() => {\n setIsOpen(false);\n window.clearTimeout(mouseLeaveTimerRef.current);\n\n onClose?.();\n }, [onClose]);\n const closeAndFocusTrigger = useCallback(() => {\n handleClose();\n triggerRef.current?.focus({ preventScroll: true });\n }, [handleClose]);\n\n useEffect(() => {\n // close when parent menu closed\n if (isParentMenuOpen === false) {\n setIsOpen(false);\n }\n }, [isParentMenuOpen]);\n\n const contextValue: SubmenuContextType = useMemo(\n () => ({\n isOpen,\n getSubmenuListProps: (_props) => ({\n 'data-parent-menu': menuId,\n onMouseOver: (event) => {\n handleOpen();\n\n _props.onMouseOver?.(event);\n },\n onMouseLeave: (event) => {\n closeAndFocusTrigger();\n\n _props.onMouseLeave?.(event);\n },\n }),\n getSubmenuTriggerProps: (_props, _ref) => ({\n ref: mergeRefs(triggerRef, _ref),\n onKeyDown: (event) => {\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n handleOpen();\n }\n\n _props.onKeyDown?.(event);\n },\n onMouseOver: (event) => {\n handleOpen();\n\n _props.onMouseOver?.(event);\n },\n onMouseLeave: (event) => {\n mouseLeaveTimerRef.current = window.setTimeout(\n closeAndFocusTrigger,\n 300,\n );\n\n _props.onMouseLeave?.(event);\n },\n }),\n }),\n [isOpen, menuId, handleOpen, closeAndFocusTrigger],\n );\n\n return (\n <SubmenuContextProvider value={contextValue}>\n <Menu\n {...propsToPropagateToSubmenus}\n {...otherProps}\n isOpen={isOpen}\n onClose={handleClose}\n onOpen={handleOpen}\n placement=\"right-start\"\n offset={SUBMENU_OFFSET}\n isAutoalignmentEnabled={false}\n />\n </SubmenuContextProvider>\n );\n};\n","import React from 'react';\nimport { MenuTrigger } from '../MenuTrigger/MenuTrigger';\nimport { MenuItem, MenuItemProps } from '../MenuItem/MenuItem';\nimport { useSubmenuContext } from '../SubmenuContext';\nimport { ChevronRightIcon } from '@contentful/f36-icons';\nimport type { ExpandProps } from '@contentful/f36-core';\nimport { cx } from 'emotion';\nimport { getSubmenuTriggerStyles } from './SubmenuTrigger.styles';\n\nexport type SubmenuTriggerProps = Omit<\n MenuItemProps<'button'>,\n 'isInitiallyFocused' | 'as'\n>;\n\nconst _SubmenuTrigger = (\n props: ExpandProps<SubmenuTriggerProps>,\n ref: React.Ref<HTMLButtonElement>,\n) => {\n const { className, children } = props;\n const { getSubmenuTriggerProps, isOpen } = useSubmenuContext();\n\n const styles = getSubmenuTriggerStyles();\n\n return (\n <MenuTrigger>\n <MenuItem\n {...props}\n {...getSubmenuTriggerProps(props, ref)}\n className={cx(styles.root({ isActive: isOpen }), className)}\n >\n <span className={styles.content}>{children}</span>\n <ChevronRightIcon className={styles.icon} />\n </MenuItem>\n </MenuTrigger>\n );\n};\n\nexport const SubmenuTrigger = React.forwardRef(_SubmenuTrigger);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getSubmenuTriggerStyles = () => {\n return {\n root: ({ isActive }) =>\n css({\n display: 'flex',\n alignItems: 'center',\n paddingRight: tokens.spacingXs,\n ...(isActive\n ? {\n backgroundColor: tokens.gray100,\n }\n : {}),\n }),\n content: css({\n marginRight: tokens.spacingM,\n }),\n icon: css({\n marginLeft: 'auto',\n fill: 'currentColor',\n }),\n };\n};\n"],"names":["Menu","MenuProps","MenuList","MenuListProps","MenuItem","MenuItemProps","MenuTrigger","MenuTriggerProps","MenuDivider","MenuDividerProps","MenuSectionTitle","MenuSectionTitleProps","Submenu","SubmenuProps","SubmenuTrigger","SubmenuTriggerProps","OriginalMenu","MenuListHeader","MenuListFooter","CompoundMenu","List","ListHeader","ListFooter","Item","Trigger","Divider","SectionTitle","React","useCallback","useMemo","useRef","useEffect","mergeRefs","useId","useControllableState","useArrowKeyNavigation","Popover","PopoverProps","MenuContextProvider","MenuContextType","MENU_ITEMS_SELECTOR","Omit","isOpen","defaultIsOpen","onOpen","onClose","closeOnSelect","closeOnBlur","closeOnEsc","props","children","otherProps","handleOpen","handleClose","isControlled","triggerRef","HTMLButtonElement","menuListRef","HTMLDivElement","menuId","focusedIndex","handleArrowsKeyDown","setFocusedIndex","itemsContainerRef","itemsSelector","current","menuItems","querySelectorAll","length","setTimeout","HTMLElement","focus","preventScroll","focusMenuItem","item","itemIndex","findIndex","menuItem","closeAndFocusTrigger","handleMenuListKeyDown","event","KeyboardEvent","key","preventDefault","stopPropagation","contextValue","getTriggerProps","_props","_ref","onClick","isFullyControlled","ref","getMenuListProps","onKeyDown","onBlur","relatedTarget","Node","targetIsMenu","contains","targetIsTrigger","targetIsSubmenu","parentElement","dataset","parentMenu","getMenuItemProps","isSubmenuTrigger","Boolean","target","getAttribute","propsToPropagateToSubmenus","useState","UseArrowKeyNavigationProps","MutableRefObject","keyType","initialFocusedIndex","ARROW_KEY_TYPES","vertical","prev","next","horizontal","container","items","lastItemIndex","focusFirstItem","focusLastItem","focusNextItem","focusPrevItem","keyToFnMap","fn","ComponentPropsWithRef","Ref","Pick","MenuContext","createContext","undefined","useMenuContext","context","useContext","Error","Provider","CommonProps","PropsWithHTMLElement","ExpandProps","useSubmenuContext","getMenuListStyles","MenuListInternalProps","ReactNode","assertChild","child","type","displayName","_MenuList","testId","className","submenuContext","header","ReactElement","footer","Children","forEach","appendChild","push","styles","hasStickyHeader","hasStickyFooter","extendedOtherProps","getSubmenuListProps","forwardRef","ComponentPropsWithoutRef","SubmenuContextType","getSubmenuTriggerProps","SubmenuContext","SubmenuContextProvider","tokens","getMenuHeaderStyles","position","top","left","backgroundColor","colorWhite","borderBottom","gray300","padding","spacingXs","zIndex","getMenuFooterStyles","bottom","borderTop","overflowY","paddingTop","paddingBottom","MenuListHeaderProps","FC","MenuListFooterProps","PolymorphicComponent","PolymorphicProps","getMenuItemStyles","MENU_ITEM_DEFAULT_TAG","MenuItemInternalProps","as","isInitiallyFocused","ElementType","E","_MenuItem","id","itemTestId","itemRef","Element","root","display","width","background","border","margin","outline","fontSize","fontSizeM","lineHeight","lineHeightM","fontWeight","fontWeightNormal","textAlign","spacingM","wordBreak","whiteSpace","cursor","hyphens","minWidth","textDecoration","color","gray800","gray100","boxShadow","glowPrimary","borderRadius","borderRadiusMedium","gray200","opacity","only","cloneElement","getMenuDividerStyles","height","getMenuSectionTitleStyles","SectionHeading","SectionHeadingProps","marginTop","SUBMENU_OFFSET","isParentMenuOpen","mouseLeaveTimerRef","setIsOpen","window","clearTimeout","onMouseOver","onMouseLeave","ChevronRightIcon","getSubmenuTriggerStyles","_SubmenuTrigger","isActive","content","icon","alignItems","paddingRight","marginRight"],"version":3,"file":"main.js.map"}
1
+ {"mappings":"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","sources":["packages/components/menu/src/index.ts","packages/components/menu/src/CompoundMenu.tsx","packages/components/menu/src/Menu.tsx","packages/components/menu/src/useArrowKeyNavigation.ts","packages/components/menu/src/MenuContext.ts","packages/components/menu/src/MenuList/MenuList.tsx","packages/components/menu/src/SubmenuContext.ts","packages/components/menu/src/MenuList/MenuList.styles.ts","packages/components/menu/src/MenuList/MenuListHeader.tsx","packages/components/menu/src/MenuList/MenuListFooter.tsx","packages/components/menu/src/MenuItem/MenuItem.tsx","packages/components/menu/src/MenuItem/MenuItem.styles.ts","packages/components/menu/src/MenuTrigger/MenuTrigger.tsx","packages/components/menu/src/MenuDivider/MenuDivider.tsx","packages/components/menu/src/MenuDivider/MenuDivider.styles.ts","packages/components/menu/src/MenuSectionTitle/MenuSectionTitle.tsx","packages/components/menu/src/MenuSectionTitle/MenuSectionTitle.styles.ts","packages/components/menu/src/Submenu/Submenu.tsx","packages/components/menu/src/SubmenuTrigger/SubmenuTrigger.tsx","packages/components/menu/src/SubmenuTrigger/SubmenuTrigger.styles.ts"],"sourcesContent":["export { Menu } from './CompoundMenu';\nexport type { MenuProps } from './Menu';\nexport { MenuList } from './MenuList/MenuList';\nexport type { MenuListProps } from './MenuList/MenuList';\nexport { MenuItem } from './MenuItem/MenuItem';\nexport type { MenuItemProps } from './MenuItem/MenuItem';\nexport { MenuTrigger } from './MenuTrigger/MenuTrigger';\nexport type { MenuTriggerProps } from './MenuTrigger/MenuTrigger';\nexport { MenuDivider } from './MenuDivider/MenuDivider';\nexport type { MenuDividerProps } from './MenuDivider/MenuDivider';\nexport { MenuSectionTitle } from './MenuSectionTitle/MenuSectionTitle';\nexport type { MenuSectionTitleProps } from './MenuSectionTitle/MenuSectionTitle';\nexport { Submenu } from './Submenu/Submenu';\nexport type { SubmenuProps } from './Submenu/Submenu';\nexport { SubmenuTrigger } from './SubmenuTrigger/SubmenuTrigger';\nexport type { SubmenuTriggerProps } from './SubmenuTrigger/SubmenuTrigger';\n","import { Menu as OriginalMenu } from './Menu';\nimport { MenuList } from './MenuList/MenuList';\nimport { MenuListHeader } from './MenuList/MenuListHeader';\nimport { MenuListFooter } from './MenuList/MenuListFooter';\nimport { MenuItem } from './MenuItem/MenuItem';\nimport { MenuTrigger } from './MenuTrigger/MenuTrigger';\nimport { MenuDivider } from './MenuDivider/MenuDivider';\nimport { MenuSectionTitle } from './MenuSectionTitle/MenuSectionTitle';\nimport { Submenu } from './Submenu/Submenu';\nimport { SubmenuTrigger } from './SubmenuTrigger/SubmenuTrigger';\n\ntype CompoundMenu = typeof OriginalMenu & {\n List: typeof MenuList;\n ListHeader: typeof MenuListHeader;\n ListFooter: typeof MenuListFooter;\n Item: typeof MenuItem;\n Trigger: typeof MenuTrigger;\n Divider: typeof MenuDivider;\n SectionTitle: typeof MenuSectionTitle;\n Submenu: typeof Submenu;\n SubmenuTrigger: typeof SubmenuTrigger;\n};\n\nexport const Menu = OriginalMenu as CompoundMenu;\nMenu.List = MenuList;\nMenu.ListHeader = MenuListHeader;\nMenu.ListFooter = MenuListFooter;\nMenu.Item = MenuItem;\nMenu.Trigger = MenuTrigger;\nMenu.Divider = MenuDivider;\nMenu.SectionTitle = MenuSectionTitle;\nMenu.Submenu = Submenu;\nMenu.SubmenuTrigger = SubmenuTrigger;\n","import React, { useCallback, useMemo, useRef, useEffect } from 'react';\nimport { mergeRefs, useId, useControllableState } from '@contentful/f36-core';\nimport { Popover, type PopoverProps } from '@contentful/f36-popover';\n\nimport { useArrowKeyNavigation } from './useArrowKeyNavigation';\nimport { MenuContextProvider, MenuContextType } from './MenuContext';\n\nconst MENU_ITEMS_SELECTOR = '[role=\"menuitem\"]:not(:disabled)';\n\nexport interface MenuProps\n extends Omit<PopoverProps, 'autoFocus' | 'id' | 'closeOnBlur'> {\n /**\n * By default, the Menu is uncontrolled (manage it's expanded state by itself)\n * But you can make it controlled by providing boolean (true/false)\n */\n isOpen?: boolean;\n\n /**\n * If `true`, the Menu will be initially opened.\n */\n defaultIsOpen?: boolean;\n\n /**\n * Callback fired when the Menu opens\n */\n onOpen?: () => void;\n\n /**\n * Callback fired when the Menu closes\n */\n onClose?: () => void;\n\n /**\n * If `true`, the Menu will close when a menu item is\n * clicked\n *\n * Note: This prop will be propagated to all submenus,\n * unless you will override it with props on submenu itself\n *\n * @default true\n */\n closeOnSelect?: boolean;\n\n /**\n * If true, the menu will close when you blur out it by clicking outside\n *\n * Note: This prop will be propagated to all submenus,\n * unless you will override it with props on submenu itself\n *\n * @default true\n */\n closeOnBlur?: boolean;\n\n /**\n * If true, the menu will close when you hit the Esc key\n *\n * Note: This prop will be propagated to all submenus,\n * unless you will override it with props on submenu itself\n *\n * @default true\n */\n closeOnEsc?: boolean;\n}\n\nexport function Menu(props: MenuProps) {\n const {\n closeOnSelect = true,\n closeOnBlur = true,\n closeOnEsc = true,\n children,\n onOpen,\n ...otherProps\n } = props;\n const { isOpen, handleOpen, handleClose, isControlled } =\n useControllableState({\n isOpen: props.isOpen,\n defaultIsOpen: props.defaultIsOpen,\n onOpen,\n onClose: props.onClose,\n });\n\n const triggerRef = useRef<HTMLButtonElement>(null);\n const menuListRef = useRef<HTMLDivElement>(null);\n\n const menuId = useId(null, 'menu');\n\n const { focusedIndex, handleArrowsKeyDown, setFocusedIndex } =\n useArrowKeyNavigation({\n itemsContainerRef: menuListRef,\n itemsSelector: MENU_ITEMS_SELECTOR,\n });\n\n useEffect(() => {\n if (isOpen && menuListRef.current) {\n const menuItems =\n menuListRef.current.querySelectorAll(MENU_ITEMS_SELECTOR);\n\n if (menuItems.length > 0 && focusedIndex < menuItems.length) {\n // timeout trick to prevent scroll from jumping\n // when the popover is not positioned correctly yet in the opening phase\n setTimeout(() => {\n (menuItems[focusedIndex] as HTMLElement).focus({\n preventScroll: false,\n });\n }, 0);\n }\n }\n }, [isOpen, focusedIndex]);\n\n const focusMenuItem = useCallback(\n (item: HTMLElement) => {\n const menuItems =\n menuListRef.current.querySelectorAll(MENU_ITEMS_SELECTOR);\n\n const itemIndex = [...menuItems].findIndex(\n (menuItem) => item === menuItem,\n );\n\n if (itemIndex !== -1) {\n setFocusedIndex(itemIndex);\n }\n },\n [setFocusedIndex],\n );\n\n const closeAndFocusTrigger = useCallback(() => {\n handleClose();\n triggerRef.current?.focus({ preventScroll: true });\n }, [handleClose]);\n\n const handleMenuListKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key === 'Tab') {\n event.preventDefault();\n closeAndFocusTrigger();\n return;\n }\n\n // we don't want to propagate other keydown events except `Tab`\n event.stopPropagation();\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n closeAndFocusTrigger();\n return;\n }\n\n handleArrowsKeyDown(event);\n },\n [closeAndFocusTrigger, handleArrowsKeyDown],\n );\n\n const contextValue: MenuContextType = useMemo(\n () => ({\n isOpen,\n menuId,\n focusMenuItem,\n getTriggerProps: (_props = {}, _ref = null) => ({\n onClick: (event) => {\n // if the user made component controlled by providing isOpen prop\n // but onOpen callback is not provided, we won't add toggle logic\n // to the trigger component. So they can make any toggle logic on their own.\n const isFullyControlled = isControlled && !onOpen;\n\n if (!isFullyControlled) {\n if (isOpen) {\n handleClose();\n } else {\n handleOpen();\n }\n }\n\n _props.onClick?.(event);\n },\n ref: mergeRefs(triggerRef, _ref),\n }),\n getMenuListProps: (_props = {}, _ref = null) => ({\n ref: mergeRefs(menuListRef, _ref),\n onKeyDown: (event) => {\n handleMenuListKeyDown(event);\n _props.onKeyDown?.(event);\n },\n onBlur: (event) => {\n _props.onBlur?.(event);\n\n if (!closeOnBlur) {\n return;\n }\n\n const relatedTarget = event.relatedTarget as Node;\n\n const targetIsMenu =\n menuListRef.current === relatedTarget ||\n menuListRef.current?.contains(relatedTarget);\n const targetIsTrigger =\n triggerRef.current === relatedTarget ||\n triggerRef.current?.contains(relatedTarget);\n const targetIsSubmenu =\n relatedTarget?.parentElement?.dataset.parentMenu === menuId;\n\n if (targetIsMenu || targetIsTrigger || targetIsSubmenu) {\n event.stopPropagation();\n return;\n }\n\n handleClose();\n },\n }),\n getMenuItemProps: (_props = {}) => ({\n onClick: (event) => {\n _props.onClick?.(event);\n\n const isSubmenuTrigger = Boolean(\n (event.target as HTMLElement).getAttribute('aria-haspopup'),\n );\n if (closeOnSelect && !isSubmenuTrigger) {\n closeAndFocusTrigger();\n }\n },\n }),\n propsToPropagateToSubmenus: {\n closeOnSelect,\n closeOnBlur,\n closeOnEsc,\n },\n }),\n [\n menuId,\n isOpen,\n handleMenuListKeyDown,\n closeOnSelect,\n handleClose,\n handleOpen,\n focusMenuItem,\n closeOnBlur,\n closeOnEsc,\n closeAndFocusTrigger,\n isControlled,\n onOpen,\n ],\n );\n\n return (\n <MenuContextProvider value={contextValue}>\n <Popover\n {...otherProps}\n isOpen={isOpen}\n onClose={handleClose}\n id={menuId}\n closeOnEsc={closeOnEsc}\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus={false}\n closeOnBlur={false}\n >\n {children}\n </Popover>\n </MenuContextProvider>\n );\n}\n","import { useState, useCallback } from 'react';\n\ninterface UseArrowKeyNavigationProps {\n itemsContainerRef: React.MutableRefObject<HTMLElement>;\n itemsSelector: string;\n keyType?: 'vertical' | 'horizontal';\n initialFocusedIndex?: number;\n}\n\nconst ARROW_KEY_TYPES = {\n vertical: {\n prev: 'ArrowUp',\n next: 'ArrowDown',\n },\n horizontal: {\n prev: 'ArrowLeft',\n next: 'ArrowRight',\n },\n};\n\nexport const useArrowKeyNavigation = ({\n itemsContainerRef,\n itemsSelector,\n keyType = 'vertical',\n}: UseArrowKeyNavigationProps) => {\n const [focusedIndex, setFocusedIndex] = useState<number>(0);\n\n const handleArrowsKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n const container = itemsContainerRef.current;\n if (!container) return;\n\n const items = container.querySelectorAll(itemsSelector);\n if (items.length === 0) return;\n\n const lastItemIndex = items.length - 1;\n\n const focusFirstItem = () => setFocusedIndex(0);\n const focusLastItem = () => setFocusedIndex(lastItemIndex);\n const focusNextItem = () => {\n if (focusedIndex === lastItemIndex) {\n focusFirstItem();\n } else {\n setFocusedIndex(focusedIndex + 1);\n }\n };\n const focusPrevItem = () => {\n if (focusedIndex === 0) {\n focusLastItem();\n } else {\n setFocusedIndex(focusedIndex - 1);\n }\n };\n\n const keyToFnMap = {\n [ARROW_KEY_TYPES[keyType].next]: focusNextItem,\n [ARROW_KEY_TYPES[keyType].prev]: focusPrevItem,\n };\n\n const fn = keyToFnMap[event.key];\n if (fn) {\n event.preventDefault();\n fn();\n }\n },\n [focusedIndex, itemsSelector, itemsContainerRef, keyType],\n );\n\n return { focusedIndex, handleArrowsKeyDown, setFocusedIndex };\n};\n","import React, { ComponentPropsWithRef } from 'react';\nimport { MenuProps } from '.';\n\nexport type MenuContextType = {\n isOpen: boolean;\n menuId: string;\n focusMenuItem: (item: HTMLElement) => void;\n getTriggerProps: (\n _props: ComponentPropsWithRef<'button'>,\n _ref: React.Ref<HTMLButtonElement>,\n ) => ComponentPropsWithRef<'button'>;\n getMenuListProps: (\n _props: ComponentPropsWithRef<'div'>,\n _ref: React.Ref<HTMLDivElement>,\n ) => ComponentPropsWithRef<'div'>;\n getMenuItemProps: (\n _props: ComponentPropsWithRef<'button'>,\n ) => ComponentPropsWithRef<'button'>;\n propsToPropagateToSubmenus: Pick<\n MenuProps,\n 'closeOnBlur' | 'closeOnEsc' | 'closeOnSelect'\n >;\n};\n\nconst MenuContext = React.createContext<MenuContextType | undefined>(undefined);\n\nexport const useMenuContext = () => {\n const context = React.useContext(MenuContext);\n\n if (context === undefined) {\n throw new Error('useMenuContext must be used within a MenuContextProvider');\n }\n\n return context;\n};\n\nexport const MenuContextProvider = MenuContext.Provider;\n","import React from 'react';\nimport type {\n CommonProps,\n PropsWithHTMLElement,\n ExpandProps,\n} from '@contentful/f36-core';\nimport { useMenuContext } from '../MenuContext';\nimport { useSubmenuContext } from '../SubmenuContext';\nimport { Popover } from '@contentful/f36-popover';\nimport { cx } from 'emotion';\nimport { getMenuListStyles } from './MenuList.styles';\nimport { MenuListHeader } from './MenuListHeader';\nimport { MenuListFooter } from './MenuListFooter';\n\ninterface MenuListInternalProps extends CommonProps {\n children?: React.ReactNode;\n}\n\nfunction assertChild(child: any): child is { type: { displayName: string } } {\n return Boolean(child?.type?.displayName);\n}\n\nexport type MenuListProps = PropsWithHTMLElement<MenuListInternalProps, 'div'>;\n\nconst _MenuList = (\n props: ExpandProps<MenuListProps>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const {\n children,\n testId = 'cf-ui-menu-list',\n className,\n ...otherProps\n } = props;\n\n const { getMenuListProps } = useMenuContext();\n const submenuContext = useSubmenuContext();\n\n let header: React.ReactElement | null = null;\n let footer: React.ReactElement | null = null;\n const items: React.ReactElement[] = [];\n\n React.Children.forEach(children, (child) => {\n let appendChild = true;\n if (assertChild(child)) {\n if (child.type.displayName === MenuListHeader.displayName) {\n header = child as unknown as React.ReactElement;\n appendChild = false;\n } else if (child.type.displayName === MenuListFooter.displayName) {\n footer = child as unknown as React.ReactElement;\n appendChild = false;\n }\n }\n if (appendChild) {\n items.push(child as unknown as React.ReactElement);\n }\n });\n\n const styles = getMenuListStyles({\n hasStickyHeader: Boolean(header),\n hasStickyFooter: Boolean(footer),\n });\n\n const extendedOtherProps = submenuContext\n ? submenuContext.getSubmenuListProps(otherProps)\n : otherProps;\n\n return (\n <Popover.Content\n role=\"menu\"\n {...extendedOtherProps}\n {...getMenuListProps(extendedOtherProps, ref)}\n className={cx(styles.container, className)}\n testId={testId}\n >\n {header}\n {items}\n {footer}\n </Popover.Content>\n );\n};\n\nexport const MenuList = React.forwardRef(_MenuList);\n","import React, { ComponentPropsWithRef, ComponentPropsWithoutRef } from 'react';\n\nexport type SubmenuContextType = {\n isOpen: boolean;\n getSubmenuListProps: (\n _props: ComponentPropsWithRef<'div'>,\n ) => { 'data-parent-menu': string } & ComponentPropsWithoutRef<'div'>;\n getSubmenuTriggerProps: (\n _props: ComponentPropsWithRef<'button'>,\n _ref: React.Ref<HTMLButtonElement>,\n ) => ComponentPropsWithRef<'button'>;\n};\n\nconst SubmenuContext = React.createContext<SubmenuContextType | undefined>(\n undefined,\n);\n\nexport const useSubmenuContext = () => {\n const context = React.useContext(SubmenuContext);\n return context;\n};\n\nexport const SubmenuContextProvider = SubmenuContext.Provider;\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getMenuHeaderStyles = () => {\n return css({\n position: 'sticky',\n top: 0,\n left: 0,\n backgroundColor: tokens.colorWhite,\n borderBottom: `1px solid ${tokens.gray300}`,\n padding: `${tokens.spacingXs} 0`,\n zIndex: 1001,\n });\n};\n\nexport const getMenuFooterStyles = () => {\n return css({\n position: 'sticky',\n bottom: 0,\n left: 0,\n backgroundColor: tokens.colorWhite,\n borderTop: `1px solid ${tokens.gray300}`,\n padding: `${tokens.spacingXs} 0`,\n zIndex: 1001,\n });\n};\n\nexport const getMenuListStyles = (props: {\n hasStickyFooter?: boolean;\n hasStickyHeader?: boolean;\n}) => ({\n container: css({\n overflowY: 'auto',\n position: 'relative',\n padding: 0,\n paddingTop: props.hasStickyHeader ? 0 : tokens.spacingXs,\n paddingBottom: props.hasStickyFooter ? 0 : tokens.spacingXs,\n }),\n});\n","import React from 'react';\nimport { cx } from 'emotion';\nimport type {\n CommonProps,\n PropsWithHTMLElement,\n ExpandProps,\n} from '@contentful/f36-core';\n\nimport { getMenuHeaderStyles } from './MenuList.styles';\n\nexport type MenuListHeaderProps = PropsWithHTMLElement<CommonProps, 'div'>;\n\nexport const MenuListHeader: React.FC<ExpandProps<MenuListHeaderProps>> = (\n props,\n) => {\n const {\n children,\n testId = 'cf-ui-menu-list-header',\n className,\n ...otherProps\n } = props;\n\n const styles = getMenuHeaderStyles();\n\n return (\n <div\n data-test-id={testId}\n className={cx(styles, className)}\n {...otherProps}\n >\n {children}\n </div>\n );\n};\n\nMenuListHeader.displayName = 'MenuListHeader';\n","import React from 'react';\nimport { cx } from 'emotion';\nimport type {\n CommonProps,\n PropsWithHTMLElement,\n ExpandProps,\n} from '@contentful/f36-core';\n\nimport { getMenuFooterStyles } from './MenuList.styles';\n\nexport type MenuListFooterProps = PropsWithHTMLElement<CommonProps, 'div'>;\n\nexport const MenuListFooter: React.FC<ExpandProps<MenuListFooterProps>> = (\n props,\n) => {\n const {\n children,\n testId = 'cf-ui-menu-list-footer',\n className,\n ...otherProps\n } = props;\n\n const styles = getMenuFooterStyles();\n\n return (\n <div\n data-test-id={testId}\n className={cx(styles, className)}\n {...otherProps}\n >\n {children}\n </div>\n );\n};\n\nMenuListFooter.displayName = 'MenuListFooter';\n","import React, { useEffect, useRef } from 'react';\nimport { cx } from 'emotion';\nimport {\n mergeRefs,\n useId,\n type CommonProps,\n type PolymorphicComponent,\n type PolymorphicProps,\n type ExpandProps,\n} from '@contentful/f36-core';\n\nimport { useMenuContext } from '../MenuContext';\nimport { getMenuItemStyles } from './MenuItem.styles';\n\nconst MENU_ITEM_DEFAULT_TAG = 'button';\n\ninterface MenuItemInternalProps extends CommonProps {\n children?: React.ReactNode;\n as?: 'a' | 'button';\n\n /**\n * Sets focus on item\n */\n isInitiallyFocused?: boolean;\n}\n\nexport type MenuItemProps<\n E extends React.ElementType = typeof MENU_ITEM_DEFAULT_TAG,\n> = PolymorphicProps<MenuItemInternalProps, E>;\n\nfunction _MenuItem<E extends React.ElementType = typeof MENU_ITEM_DEFAULT_TAG>(\n props: MenuItemProps<E>,\n ref: React.Ref<any>,\n) {\n const { testId, className, as, isInitiallyFocused, ...otherProps } = props;\n\n const id = useId(undefined, 'menu-item');\n const itemTestId = testId || `cf-ui-${id}`;\n const styles = getMenuItemStyles();\n\n const { getMenuItemProps, focusMenuItem } = useMenuContext();\n\n const itemRef = useRef<HTMLElement>(null);\n useEffect(() => {\n if (isInitiallyFocused && itemRef.current) {\n focusMenuItem(itemRef.current);\n }\n }, [isInitiallyFocused, focusMenuItem]);\n\n const Element = (as ?? MENU_ITEM_DEFAULT_TAG) as React.ElementType;\n\n return (\n <Element\n role=\"menuitem\"\n {...otherProps}\n {...getMenuItemProps(otherProps)}\n className={cx(styles.root, className)}\n data-test-id={itemTestId}\n ref={mergeRefs(itemRef, ref)}\n tabIndex={-1}\n >\n {props.children}\n </Element>\n );\n}\n\n_MenuItem.displayName = 'MenuItem';\n\nexport const MenuItem: PolymorphicComponent<\n ExpandProps<MenuItemInternalProps>,\n typeof MENU_ITEM_DEFAULT_TAG\n> = React.forwardRef(_MenuItem);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getMenuItemStyles = () => {\n return {\n root: css({\n display: 'block',\n width: '100%',\n background: 'none',\n border: 0,\n margin: 0,\n outline: 'none',\n fontSize: tokens.fontSizeM,\n lineHeight: tokens.lineHeightM,\n fontWeight: tokens.fontWeightNormal,\n position: 'relative',\n textAlign: 'left',\n padding: `${tokens.spacingXs} ${tokens.spacingM}`,\n wordBreak: 'break-word',\n whiteSpace: 'break-spaces',\n cursor: 'pointer',\n hyphens: 'auto',\n minWidth: '150px',\n textDecoration: 'none',\n color: tokens.gray800,\n\n '&:hover': {\n backgroundColor: tokens.gray100,\n },\n '&:focus': {\n boxShadow: `inset ${tokens.glowPrimary}`,\n // just to make boxShadow with rounded corners\n borderRadius: tokens.borderRadiusMedium,\n },\n '&:focus:not(:focus-visible)': {\n boxShadow: 'unset',\n borderRadius: 'unset',\n },\n '&:focus-visible': {\n boxShadow: `inset ${tokens.glowPrimary}`,\n borderRadius: tokens.borderRadiusMedium,\n },\n '&:active': {\n backgroundColor: tokens.gray200,\n },\n '&:disabled': {\n opacity: 0.5,\n cursor: 'auto',\n },\n }),\n };\n};\n","import React from 'react';\nimport { Popover } from '@contentful/f36-popover';\nimport { useMenuContext } from '../MenuContext';\nimport type { ExpandProps } from '@contentful/f36-core';\n\nexport interface MenuTriggerProps {\n children: React.ReactNode;\n}\n\nexport const MenuTrigger = (props: ExpandProps<MenuTriggerProps>) => {\n const child = React.Children.only(props.children) as any;\n const { getTriggerProps } = useMenuContext();\n\n return (\n <Popover.Trigger>\n {React.cloneElement(child, {\n ...getTriggerProps(child.props, child.ref),\n ['aria-haspopup']: 'menu',\n })}\n </Popover.Trigger>\n );\n};\n","import React from 'react';\nimport type {\n CommonProps,\n PropsWithHTMLElement,\n ExpandProps,\n} from '@contentful/f36-core';\nimport { cx } from 'emotion';\nimport { getMenuDividerStyles } from './MenuDivider.styles';\n\nexport type MenuDividerProps = PropsWithHTMLElement<CommonProps, 'hr'>;\n\nexport const MenuDivider = (props: ExpandProps<MenuDividerProps>) => {\n const {\n children,\n testId = 'cf-ui-menu-divider',\n className,\n ...otherProps\n } = props;\n\n const styles = getMenuDividerStyles();\n\n return (\n <hr\n aria-orientation=\"horizontal\"\n data-test-id={testId}\n className={cx(styles, className)}\n {...otherProps}\n />\n );\n};\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getMenuDividerStyles = () =>\n css({\n border: 'none',\n width: '100%',\n height: '1px',\n background: tokens.gray300,\n margin: `${tokens.spacingXs} 0`,\n });\n","import React from 'react';\nimport { cx } from 'emotion';\nimport {\n SectionHeading,\n type SectionHeadingProps,\n} from '@contentful/f36-typography';\nimport type { ExpandProps } from '@contentful/f36-core';\n\nimport { getMenuSectionTitleStyles } from './MenuSectionTitle.styles';\n\nexport type MenuSectionTitleProps = SectionHeadingProps;\n\nexport const MenuSectionTitle = (props: ExpandProps<MenuSectionTitleProps>) => {\n const {\n children,\n testId = 'cf-ui-menu-section-title',\n className,\n ...otherProps\n } = props;\n\n const styles = getMenuSectionTitleStyles();\n\n return (\n <SectionHeading\n // Techincally, menus cannot contain headings according to ARIA.\n // We hide the heading from assistive technology, and only use it\n // as a label\n aria-hidden=\"true\"\n testId={testId}\n className={cx(styles, className)}\n marginBottom=\"none\"\n {...otherProps}\n >\n {children}\n </SectionHeading>\n );\n};\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getMenuSectionTitleStyles = () =>\n css({\n textAlign: 'left',\n padding: `${tokens.spacingXs} ${tokens.spacingM}`,\n lineHeight: tokens.lineHeightM,\n\n 'hr + &': {\n marginTop: '-8px',\n },\n });\n","import React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { Menu, MenuProps } from '../Menu';\nimport { useMenuContext } from '../MenuContext';\nimport { SubmenuContextProvider, SubmenuContextType } from '../SubmenuContext';\nimport { mergeRefs } from '@contentful/f36-core';\n\nconst SUBMENU_OFFSET: [number, number] = [-8, 2];\n\nexport type SubmenuProps = Omit<\n MenuProps,\n | 'placement'\n | 'offset'\n | 'usePortal'\n | 'isOpen'\n | 'isAutoalignmentEnabled'\n | 'defaultIsOpen'\n>;\n\nexport const Submenu = (props: SubmenuProps) => {\n const { onClose, onOpen, ...otherProps } = props;\n\n const {\n isOpen: isParentMenuOpen,\n menuId,\n propsToPropagateToSubmenus,\n } = useMenuContext();\n\n const triggerRef = useRef<HTMLButtonElement>(null);\n const mouseLeaveTimerRef = useRef(null);\n\n const [isOpen, setIsOpen] = useState(false);\n const handleOpen = useCallback(() => {\n setIsOpen(true);\n window.clearTimeout(mouseLeaveTimerRef.current);\n\n onOpen?.();\n }, [onOpen]);\n const handleClose = useCallback(() => {\n setIsOpen(false);\n window.clearTimeout(mouseLeaveTimerRef.current);\n\n onClose?.();\n }, [onClose]);\n const closeAndFocusTrigger = useCallback(() => {\n handleClose();\n triggerRef.current?.focus({ preventScroll: true });\n }, [handleClose]);\n\n useEffect(() => {\n // close when parent menu closed\n if (isParentMenuOpen === false) {\n setIsOpen(false);\n }\n }, [isParentMenuOpen]);\n\n const contextValue: SubmenuContextType = useMemo(\n () => ({\n isOpen,\n getSubmenuListProps: (_props) => ({\n 'data-parent-menu': menuId,\n onMouseOver: (event) => {\n handleOpen();\n\n _props.onMouseOver?.(event);\n },\n onMouseLeave: (event) => {\n closeAndFocusTrigger();\n\n _props.onMouseLeave?.(event);\n },\n }),\n getSubmenuTriggerProps: (_props, _ref) => ({\n ref: mergeRefs(triggerRef, _ref),\n onKeyDown: (event) => {\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n handleOpen();\n }\n\n _props.onKeyDown?.(event);\n },\n onMouseOver: (event) => {\n handleOpen();\n\n _props.onMouseOver?.(event);\n },\n onMouseLeave: (event) => {\n mouseLeaveTimerRef.current = window.setTimeout(\n closeAndFocusTrigger,\n 300,\n );\n\n _props.onMouseLeave?.(event);\n },\n }),\n }),\n [isOpen, menuId, handleOpen, closeAndFocusTrigger],\n );\n\n return (\n <SubmenuContextProvider value={contextValue}>\n <Menu\n {...propsToPropagateToSubmenus}\n {...otherProps}\n isOpen={isOpen}\n onClose={handleClose}\n onOpen={handleOpen}\n placement=\"right-start\"\n offset={SUBMENU_OFFSET}\n isAutoalignmentEnabled={false}\n />\n </SubmenuContextProvider>\n );\n};\n","import React from 'react';\nimport { MenuTrigger } from '../MenuTrigger/MenuTrigger';\nimport { MenuItem, MenuItemProps } from '../MenuItem/MenuItem';\nimport { useSubmenuContext } from '../SubmenuContext';\nimport { ChevronRightIcon } from '@contentful/f36-icons';\nimport type { ExpandProps } from '@contentful/f36-core';\nimport { cx } from 'emotion';\nimport { getSubmenuTriggerStyles } from './SubmenuTrigger.styles';\n\nexport type SubmenuTriggerProps = Omit<\n MenuItemProps<'button'>,\n 'isInitiallyFocused' | 'as'\n>;\n\nconst _SubmenuTrigger = (\n props: ExpandProps<SubmenuTriggerProps>,\n ref: React.Ref<HTMLButtonElement>,\n) => {\n const { className, children } = props;\n const { getSubmenuTriggerProps, isOpen } = useSubmenuContext();\n\n const styles = getSubmenuTriggerStyles();\n\n return (\n <MenuTrigger>\n <MenuItem\n {...props}\n {...getSubmenuTriggerProps(props, ref)}\n className={cx(styles.root({ isActive: isOpen }), className)}\n >\n <span className={styles.content}>{children}</span>\n <ChevronRightIcon className={styles.icon} />\n </MenuItem>\n </MenuTrigger>\n );\n};\n\nexport const SubmenuTrigger = React.forwardRef(_SubmenuTrigger);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getSubmenuTriggerStyles = () => {\n return {\n root: ({ isActive }) =>\n css({\n display: 'flex',\n alignItems: 'center',\n paddingRight: tokens.spacingXs,\n ...(isActive\n ? {\n backgroundColor: tokens.gray100,\n }\n : {}),\n }),\n content: css({\n marginRight: tokens.spacingM,\n }),\n icon: css({\n marginLeft: 'auto',\n fill: 'currentColor',\n }),\n };\n};\n"],"names":["Menu","MenuProps","MenuList","MenuListProps","MenuItem","MenuItemProps","MenuTrigger","MenuTriggerProps","MenuDivider","MenuDividerProps","MenuSectionTitle","MenuSectionTitleProps","Submenu","SubmenuProps","SubmenuTrigger","SubmenuTriggerProps","OriginalMenu","MenuListHeader","MenuListFooter","CompoundMenu","List","ListHeader","ListFooter","Item","Trigger","Divider","SectionTitle","React","useCallback","useMemo","useRef","useEffect","mergeRefs","useId","useControllableState","Popover","PopoverProps","useArrowKeyNavigation","MenuContextProvider","MenuContextType","MENU_ITEMS_SELECTOR","Omit","isOpen","defaultIsOpen","onOpen","onClose","closeOnSelect","closeOnBlur","closeOnEsc","props","children","otherProps","handleOpen","handleClose","isControlled","triggerRef","HTMLButtonElement","menuListRef","HTMLDivElement","menuId","focusedIndex","handleArrowsKeyDown","setFocusedIndex","itemsContainerRef","itemsSelector","current","menuItems","querySelectorAll","length","setTimeout","HTMLElement","focus","preventScroll","focusMenuItem","item","itemIndex","findIndex","menuItem","closeAndFocusTrigger","handleMenuListKeyDown","event","KeyboardEvent","key","preventDefault","stopPropagation","contextValue","getTriggerProps","_props","_ref","onClick","isFullyControlled","ref","getMenuListProps","onKeyDown","onBlur","relatedTarget","Node","targetIsMenu","contains","targetIsTrigger","targetIsSubmenu","parentElement","dataset","parentMenu","getMenuItemProps","isSubmenuTrigger","Boolean","target","getAttribute","propsToPropagateToSubmenus","useState","UseArrowKeyNavigationProps","MutableRefObject","keyType","initialFocusedIndex","ARROW_KEY_TYPES","vertical","prev","next","horizontal","container","items","lastItemIndex","focusFirstItem","focusLastItem","focusNextItem","focusPrevItem","keyToFnMap","fn","ComponentPropsWithRef","Ref","Pick","MenuContext","createContext","undefined","useMenuContext","context","useContext","Error","Provider","CommonProps","PropsWithHTMLElement","ExpandProps","useSubmenuContext","getMenuListStyles","MenuListInternalProps","ReactNode","assertChild","child","type","displayName","_MenuList","testId","className","submenuContext","header","ReactElement","footer","Children","forEach","appendChild","push","styles","hasStickyHeader","hasStickyFooter","extendedOtherProps","getSubmenuListProps","forwardRef","ComponentPropsWithoutRef","SubmenuContextType","getSubmenuTriggerProps","SubmenuContext","SubmenuContextProvider","tokens","getMenuHeaderStyles","position","top","left","backgroundColor","colorWhite","borderBottom","gray300","padding","spacingXs","zIndex","getMenuFooterStyles","bottom","borderTop","overflowY","paddingTop","paddingBottom","MenuListHeaderProps","FC","MenuListFooterProps","PolymorphicComponent","PolymorphicProps","getMenuItemStyles","MENU_ITEM_DEFAULT_TAG","MenuItemInternalProps","as","isInitiallyFocused","ElementType","E","_MenuItem","id","itemTestId","itemRef","Element","root","display","width","background","border","margin","outline","fontSize","fontSizeM","lineHeight","lineHeightM","fontWeight","fontWeightNormal","textAlign","spacingM","wordBreak","whiteSpace","cursor","hyphens","minWidth","textDecoration","color","gray800","gray100","boxShadow","glowPrimary","borderRadius","borderRadiusMedium","gray200","opacity","only","cloneElement","getMenuDividerStyles","height","SectionHeading","SectionHeadingProps","getMenuSectionTitleStyles","marginTop","SUBMENU_OFFSET","isParentMenuOpen","mouseLeaveTimerRef","setIsOpen","window","clearTimeout","onMouseOver","onMouseLeave","ChevronRightIcon","getSubmenuTriggerStyles","_SubmenuTrigger","isActive","content","icon","alignItems","paddingRight","marginRight"],"version":3,"file":"main.js.map"}
package/dist/module.js CHANGED
@@ -9,6 +9,7 @@ import {ChevronRightIcon as $eBAEH$ChevronRightIcon} from "@contentful/f36-icons
9
9
 
10
10
 
11
11
 
12
+
12
13
  const $d3c8cb97d16f8911$var$ARROW_KEY_TYPES = {
13
14
  vertical: {
14
15
  prev: "ArrowUp",
@@ -61,7 +62,6 @@ const $d3c8cb97d16f8911$export$e8d01079a7f85a7 = ({ itemsContainerRef: itemsCont
61
62
 
62
63
 
63
64
 
64
-
65
65
  const $c66e4ce1999d7489$var$MenuContext = (0, $eBAEH$react).createContext(undefined);
66
66
  const $c66e4ce1999d7489$export$21c7ab35b39f78ec = ()=>{
67
67
  const context = (0, $eBAEH$react).useContext($c66e4ce1999d7489$var$MenuContext);
@@ -353,7 +353,6 @@ const $511d273ec51beeae$export$d4c4e98c5044dc8 = /*#__PURE__*/ (0, $eBAEH$react)
353
353
 
354
354
 
355
355
 
356
-
357
356
  const $0cc53a77e90ceec6$export$adaad53e003c74d0 = ()=>{
358
357
  return {
359
358
  root: /*#__PURE__*/ (0, $eBAEH$css)({
@@ -475,6 +474,7 @@ const $a6a319b65dbbd900$export$acb07b4664ac227c = (props)=>{
475
474
 
476
475
 
477
476
 
477
+
478
478
  const $7f43fb9a4d140447$export$2698fa8b3a0a79e6 = ()=>/*#__PURE__*/ (0, $eBAEH$css)({
479
479
  textAlign: "left",
480
480
  padding: `${(0, $eBAEH$contentfulf36tokens).spacingXs} ${(0, $eBAEH$contentfulf36tokens).spacingM}`,
@@ -485,7 +485,6 @@ const $7f43fb9a4d140447$export$2698fa8b3a0a79e6 = ()=>/*#__PURE__*/ (0, $eBAEH$c
485
485
  });
486
486
 
487
487
 
488
-
489
488
  const $7c6385c774644580$export$5d1e6c648985631e = (props)=>{
490
489
  const { children: children , testId: testId = "cf-ui-menu-section-title" , className: className , ...otherProps } = props;
491
490
  const styles = (0, $7f43fb9a4d140447$export$2698fa8b3a0a79e6)();
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/components/menu/src/index.ts","packages/components/menu/src/CompoundMenu.tsx","packages/components/menu/src/Menu.tsx","packages/components/menu/src/useArrowKeyNavigation.ts","packages/components/menu/src/MenuContext.ts","packages/components/menu/src/MenuList/MenuList.tsx","packages/components/menu/src/SubmenuContext.ts","packages/components/menu/src/MenuList/MenuList.styles.ts","packages/components/menu/src/MenuList/MenuListHeader.tsx","packages/components/menu/src/MenuList/MenuListFooter.tsx","packages/components/menu/src/MenuItem/MenuItem.tsx","packages/components/menu/src/MenuItem/MenuItem.styles.ts","packages/components/menu/src/MenuTrigger/MenuTrigger.tsx","packages/components/menu/src/MenuDivider/MenuDivider.tsx","packages/components/menu/src/MenuDivider/MenuDivider.styles.ts","packages/components/menu/src/MenuSectionTitle/MenuSectionTitle.tsx","packages/components/menu/src/MenuSectionTitle/MenuSectionTitle.styles.ts","packages/components/menu/src/Submenu/Submenu.tsx","packages/components/menu/src/SubmenuTrigger/SubmenuTrigger.tsx","packages/components/menu/src/SubmenuTrigger/SubmenuTrigger.styles.ts"],"sourcesContent":["export { Menu } from './CompoundMenu';\nexport type { MenuProps } from './Menu';\nexport { MenuList } from './MenuList/MenuList';\nexport type { MenuListProps } from './MenuList/MenuList';\nexport { MenuItem } from './MenuItem/MenuItem';\nexport type { MenuItemProps } from './MenuItem/MenuItem';\nexport { MenuTrigger } from './MenuTrigger/MenuTrigger';\nexport type { MenuTriggerProps } from './MenuTrigger/MenuTrigger';\nexport { MenuDivider } from './MenuDivider/MenuDivider';\nexport type { MenuDividerProps } from './MenuDivider/MenuDivider';\nexport { MenuSectionTitle } from './MenuSectionTitle/MenuSectionTitle';\nexport type { MenuSectionTitleProps } from './MenuSectionTitle/MenuSectionTitle';\nexport { Submenu } from './Submenu/Submenu';\nexport type { SubmenuProps } from './Submenu/Submenu';\nexport { SubmenuTrigger } from './SubmenuTrigger/SubmenuTrigger';\nexport type { SubmenuTriggerProps } from './SubmenuTrigger/SubmenuTrigger';\n","import { Menu as OriginalMenu } from './Menu';\nimport { MenuList } from './MenuList/MenuList';\nimport { MenuListHeader } from './MenuList/MenuListHeader';\nimport { MenuListFooter } from './MenuList/MenuListFooter';\nimport { MenuItem } from './MenuItem/MenuItem';\nimport { MenuTrigger } from './MenuTrigger/MenuTrigger';\nimport { MenuDivider } from './MenuDivider/MenuDivider';\nimport { MenuSectionTitle } from './MenuSectionTitle/MenuSectionTitle';\nimport { Submenu } from './Submenu/Submenu';\nimport { SubmenuTrigger } from './SubmenuTrigger/SubmenuTrigger';\n\ntype CompoundMenu = typeof OriginalMenu & {\n List: typeof MenuList;\n ListHeader: typeof MenuListHeader;\n ListFooter: typeof MenuListFooter;\n Item: typeof MenuItem;\n Trigger: typeof MenuTrigger;\n Divider: typeof MenuDivider;\n SectionTitle: typeof MenuSectionTitle;\n Submenu: typeof Submenu;\n SubmenuTrigger: typeof SubmenuTrigger;\n};\n\nexport const Menu = OriginalMenu as CompoundMenu;\nMenu.List = MenuList;\nMenu.ListHeader = MenuListHeader;\nMenu.ListFooter = MenuListFooter;\nMenu.Item = MenuItem;\nMenu.Trigger = MenuTrigger;\nMenu.Divider = MenuDivider;\nMenu.SectionTitle = MenuSectionTitle;\nMenu.Submenu = Submenu;\nMenu.SubmenuTrigger = SubmenuTrigger;\n","import React, { useCallback, useMemo, useRef, useEffect } from 'react';\nimport { mergeRefs, useId, useControllableState } from '@contentful/f36-core';\nimport { useArrowKeyNavigation } from './useArrowKeyNavigation';\nimport { Popover } from '@contentful/f36-popover';\nimport type { PopoverProps } from '@contentful/f36-popover';\nimport { MenuContextProvider, MenuContextType } from './MenuContext';\n\nconst MENU_ITEMS_SELECTOR = '[role=\"menuitem\"]:not(:disabled)';\n\nexport interface MenuProps\n extends Omit<PopoverProps, 'autoFocus' | 'id' | 'closeOnBlur'> {\n /**\n * By default, the Menu is uncontrolled (manage it's expanded state by itself)\n * But you can make it controlled by providing boolean (true/false)\n */\n isOpen?: boolean;\n\n /**\n * If `true`, the Menu will be initially opened.\n */\n defaultIsOpen?: boolean;\n\n /**\n * Callback fired when the Menu opens\n */\n onOpen?: () => void;\n\n /**\n * Callback fired when the Menu closes\n */\n onClose?: () => void;\n\n /**\n * If `true`, the Menu will close when a menu item is\n * clicked\n *\n * Note: This prop will be propagated to all submenus,\n * unless you will override it with props on submenu itself\n *\n * @default true\n */\n closeOnSelect?: boolean;\n\n /**\n * If true, the menu will close when you blur out it by clicking outside\n *\n * Note: This prop will be propagated to all submenus,\n * unless you will override it with props on submenu itself\n *\n * @default true\n */\n closeOnBlur?: boolean;\n\n /**\n * If true, the menu will close when you hit the Esc key\n *\n * Note: This prop will be propagated to all submenus,\n * unless you will override it with props on submenu itself\n *\n * @default true\n */\n closeOnEsc?: boolean;\n}\n\nexport function Menu(props: MenuProps) {\n const {\n closeOnSelect = true,\n closeOnBlur = true,\n closeOnEsc = true,\n children,\n onOpen,\n ...otherProps\n } = props;\n const {\n isOpen,\n handleOpen,\n handleClose,\n isControlled,\n } = useControllableState({\n isOpen: props.isOpen,\n defaultIsOpen: props.defaultIsOpen,\n onOpen,\n onClose: props.onClose,\n });\n\n const triggerRef = useRef<HTMLButtonElement>(null);\n const menuListRef = useRef<HTMLDivElement>(null);\n\n const menuId = useId(null, 'menu');\n\n const {\n focusedIndex,\n handleArrowsKeyDown,\n setFocusedIndex,\n } = useArrowKeyNavigation({\n itemsContainerRef: menuListRef,\n itemsSelector: MENU_ITEMS_SELECTOR,\n });\n\n useEffect(() => {\n if (isOpen && menuListRef.current) {\n const menuItems = menuListRef.current.querySelectorAll(\n MENU_ITEMS_SELECTOR,\n );\n\n if (menuItems.length > 0 && focusedIndex < menuItems.length) {\n // timeout trick to prevent scroll from jumping\n // when the popover is not positioned correctly yet in the opening phase\n setTimeout(() => {\n (menuItems[focusedIndex] as HTMLElement).focus({\n preventScroll: false,\n });\n }, 0);\n }\n }\n }, [isOpen, focusedIndex]);\n\n const focusMenuItem = useCallback(\n (item: HTMLElement) => {\n const menuItems = menuListRef.current.querySelectorAll(\n MENU_ITEMS_SELECTOR,\n );\n\n const itemIndex = [...menuItems].findIndex(\n (menuItem) => item === menuItem,\n );\n\n if (itemIndex !== -1) {\n setFocusedIndex(itemIndex);\n }\n },\n [setFocusedIndex],\n );\n\n const closeAndFocusTrigger = useCallback(() => {\n handleClose();\n triggerRef.current?.focus({ preventScroll: true });\n }, [handleClose]);\n\n const handleMenuListKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key === 'Tab') {\n event.preventDefault();\n closeAndFocusTrigger();\n return;\n }\n\n // we don't want to propagate other keydown events except `Tab`\n event.stopPropagation();\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n closeAndFocusTrigger();\n return;\n }\n\n handleArrowsKeyDown(event);\n },\n [closeAndFocusTrigger, handleArrowsKeyDown],\n );\n\n const contextValue: MenuContextType = useMemo(\n () => ({\n isOpen,\n menuId,\n focusMenuItem,\n getTriggerProps: (_props = {}, _ref = null) => ({\n onClick: (event) => {\n // if the user made component controlled by providing isOpen prop\n // but onOpen callback is not provided, we won't add toggle logic\n // to the trigger component. So they can make any toggle logic on their own.\n const isFullyControlled = isControlled && !onOpen;\n\n if (!isFullyControlled) {\n if (isOpen) {\n handleClose();\n } else {\n handleOpen();\n }\n }\n\n _props.onClick?.(event);\n },\n ref: mergeRefs(triggerRef, _ref),\n }),\n getMenuListProps: (_props = {}, _ref = null) => ({\n ref: mergeRefs(menuListRef, _ref),\n onKeyDown: (event) => {\n handleMenuListKeyDown(event);\n _props.onKeyDown?.(event);\n },\n onBlur: (event) => {\n _props.onBlur?.(event);\n\n if (!closeOnBlur) {\n return;\n }\n\n const relatedTarget = event.relatedTarget as Node;\n\n const targetIsMenu =\n menuListRef.current === relatedTarget ||\n menuListRef.current?.contains(relatedTarget);\n const targetIsTrigger =\n triggerRef.current === relatedTarget ||\n triggerRef.current?.contains(relatedTarget);\n const targetIsSubmenu =\n relatedTarget?.parentElement?.dataset.parentMenu === menuId;\n\n if (targetIsMenu || targetIsTrigger || targetIsSubmenu) {\n event.stopPropagation();\n return;\n }\n\n handleClose();\n },\n }),\n getMenuItemProps: (_props = {}) => ({\n onClick: (event) => {\n _props.onClick?.(event);\n\n const isSubmenuTrigger = Boolean(\n (event.target as HTMLElement).getAttribute('aria-haspopup'),\n );\n if (closeOnSelect && !isSubmenuTrigger) {\n closeAndFocusTrigger();\n }\n },\n }),\n propsToPropagateToSubmenus: {\n closeOnSelect,\n closeOnBlur,\n closeOnEsc,\n },\n }),\n [\n menuId,\n isOpen,\n handleMenuListKeyDown,\n closeOnSelect,\n handleClose,\n handleOpen,\n focusMenuItem,\n closeOnBlur,\n closeOnEsc,\n closeAndFocusTrigger,\n isControlled,\n onOpen,\n ],\n );\n\n return (\n <MenuContextProvider value={contextValue}>\n <Popover\n {...otherProps}\n isOpen={isOpen}\n onClose={handleClose}\n id={menuId}\n closeOnEsc={closeOnEsc}\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus={false}\n closeOnBlur={false}\n >\n {children}\n </Popover>\n </MenuContextProvider>\n );\n}\n","import { useState, useCallback } from 'react';\n\ninterface UseArrowKeyNavigationProps {\n itemsContainerRef: React.MutableRefObject<HTMLElement>;\n itemsSelector: string;\n keyType?: 'vertical' | 'horizontal';\n initialFocusedIndex?: number;\n}\n\nconst ARROW_KEY_TYPES = {\n vertical: {\n prev: 'ArrowUp',\n next: 'ArrowDown',\n },\n horizontal: {\n prev: 'ArrowLeft',\n next: 'ArrowRight',\n },\n};\n\nexport const useArrowKeyNavigation = ({\n itemsContainerRef,\n itemsSelector,\n keyType = 'vertical',\n}: UseArrowKeyNavigationProps) => {\n const [focusedIndex, setFocusedIndex] = useState<number>(0);\n\n const handleArrowsKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n const container = itemsContainerRef.current;\n if (!container) return;\n\n const items = container.querySelectorAll(itemsSelector);\n if (items.length === 0) return;\n\n const lastItemIndex = items.length - 1;\n\n const focusFirstItem = () => setFocusedIndex(0);\n const focusLastItem = () => setFocusedIndex(lastItemIndex);\n const focusNextItem = () => {\n if (focusedIndex === lastItemIndex) {\n focusFirstItem();\n } else {\n setFocusedIndex(focusedIndex + 1);\n }\n };\n const focusPrevItem = () => {\n if (focusedIndex === 0) {\n focusLastItem();\n } else {\n setFocusedIndex(focusedIndex - 1);\n }\n };\n\n const keyToFnMap = {\n [ARROW_KEY_TYPES[keyType].next]: focusNextItem,\n [ARROW_KEY_TYPES[keyType].prev]: focusPrevItem,\n };\n\n const fn = keyToFnMap[event.key];\n if (fn) {\n event.preventDefault();\n fn();\n }\n },\n [focusedIndex, itemsSelector, itemsContainerRef, keyType],\n );\n\n return { focusedIndex, handleArrowsKeyDown, setFocusedIndex };\n};\n","import React, { ComponentPropsWithRef } from 'react';\nimport { MenuProps } from '.';\n\nexport type MenuContextType = {\n isOpen: boolean;\n menuId: string;\n focusMenuItem: (item: HTMLElement) => void;\n getTriggerProps: (\n _props: ComponentPropsWithRef<'button'>,\n _ref: React.Ref<HTMLButtonElement>,\n ) => ComponentPropsWithRef<'button'>;\n getMenuListProps: (\n _props: ComponentPropsWithRef<'div'>,\n _ref: React.Ref<HTMLDivElement>,\n ) => ComponentPropsWithRef<'div'>;\n getMenuItemProps: (\n _props: ComponentPropsWithRef<'button'>,\n ) => ComponentPropsWithRef<'button'>;\n propsToPropagateToSubmenus: Pick<\n MenuProps,\n 'closeOnBlur' | 'closeOnEsc' | 'closeOnSelect'\n >;\n};\n\nconst MenuContext = React.createContext<MenuContextType | undefined>(undefined);\n\nexport const useMenuContext = () => {\n const context = React.useContext(MenuContext);\n\n if (context === undefined) {\n throw new Error('useMenuContext must be used within a MenuContextProvider');\n }\n\n return context;\n};\n\nexport const MenuContextProvider = MenuContext.Provider;\n","import React from 'react';\nimport type {\n CommonProps,\n PropsWithHTMLElement,\n ExpandProps,\n} from '@contentful/f36-core';\nimport { useMenuContext } from '../MenuContext';\nimport { useSubmenuContext } from '../SubmenuContext';\nimport { Popover } from '@contentful/f36-popover';\nimport { cx } from 'emotion';\nimport { getMenuListStyles } from './MenuList.styles';\nimport { MenuListHeader } from './MenuListHeader';\nimport { MenuListFooter } from './MenuListFooter';\n\ninterface MenuListInternalProps extends CommonProps {\n children?: React.ReactNode;\n}\n\nfunction assertChild(child: any): child is { type: { displayName: string } } {\n return Boolean(child?.type?.displayName);\n}\n\nexport type MenuListProps = PropsWithHTMLElement<MenuListInternalProps, 'div'>;\n\nconst _MenuList = (\n props: ExpandProps<MenuListProps>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const {\n children,\n testId = 'cf-ui-menu-list',\n className,\n ...otherProps\n } = props;\n\n const { getMenuListProps } = useMenuContext();\n const submenuContext = useSubmenuContext();\n\n let header: React.ReactElement | null = null;\n let footer: React.ReactElement | null = null;\n const items: React.ReactElement[] = [];\n\n React.Children.forEach(children, (child) => {\n let appendChild = true;\n if (assertChild(child)) {\n if (child.type.displayName === MenuListHeader.displayName) {\n header = (child as unknown) as React.ReactElement;\n appendChild = false;\n } else if (child.type.displayName === MenuListFooter.displayName) {\n footer = (child as unknown) as React.ReactElement;\n appendChild = false;\n }\n }\n if (appendChild) {\n items.push((child as unknown) as React.ReactElement);\n }\n });\n\n const styles = getMenuListStyles({\n hasStickyHeader: Boolean(header),\n hasStickyFooter: Boolean(footer),\n });\n\n const extendedOtherProps = submenuContext\n ? submenuContext.getSubmenuListProps(otherProps)\n : otherProps;\n\n return (\n <Popover.Content\n role=\"menu\"\n {...extendedOtherProps}\n {...getMenuListProps(extendedOtherProps, ref)}\n className={cx(styles.container, className)}\n testId={testId}\n >\n {header}\n {items}\n {footer}\n </Popover.Content>\n );\n};\n\nexport const MenuList = React.forwardRef(_MenuList);\n","import React, { ComponentPropsWithRef, ComponentPropsWithoutRef } from 'react';\n\nexport type SubmenuContextType = {\n isOpen: boolean;\n getSubmenuListProps: (\n _props: ComponentPropsWithRef<'div'>,\n ) => { 'data-parent-menu': string } & ComponentPropsWithoutRef<'div'>;\n getSubmenuTriggerProps: (\n _props: ComponentPropsWithRef<'button'>,\n _ref: React.Ref<HTMLButtonElement>,\n ) => ComponentPropsWithRef<'button'>;\n};\n\nconst SubmenuContext = React.createContext<SubmenuContextType | undefined>(\n undefined,\n);\n\nexport const useSubmenuContext = () => {\n const context = React.useContext(SubmenuContext);\n return context;\n};\n\nexport const SubmenuContextProvider = SubmenuContext.Provider;\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getMenuHeaderStyles = () => {\n return css({\n position: 'sticky',\n top: 0,\n left: 0,\n backgroundColor: tokens.colorWhite,\n borderBottom: `1px solid ${tokens.gray300}`,\n padding: `${tokens.spacingXs} 0`,\n zIndex: 1001,\n });\n};\n\nexport const getMenuFooterStyles = () => {\n return css({\n position: 'sticky',\n bottom: 0,\n left: 0,\n backgroundColor: tokens.colorWhite,\n borderTop: `1px solid ${tokens.gray300}`,\n padding: `${tokens.spacingXs} 0`,\n zIndex: 1001,\n });\n};\n\nexport const getMenuListStyles = (props: {\n hasStickyFooter?: boolean;\n hasStickyHeader?: boolean;\n}) => ({\n container: css({\n overflowY: 'auto',\n position: 'relative',\n padding: 0,\n paddingTop: props.hasStickyHeader ? 0 : tokens.spacingXs,\n paddingBottom: props.hasStickyFooter ? 0 : tokens.spacingXs,\n }),\n});\n","import React from 'react';\nimport { cx } from 'emotion';\nimport type {\n CommonProps,\n PropsWithHTMLElement,\n ExpandProps,\n} from '@contentful/f36-core';\n\nimport { getMenuHeaderStyles } from './MenuList.styles';\n\nexport type MenuListHeaderProps = PropsWithHTMLElement<CommonProps, 'div'>;\n\nexport const MenuListHeader: React.FC<ExpandProps<MenuListHeaderProps>> = (\n props,\n) => {\n const {\n children,\n testId = 'cf-ui-menu-list-header',\n className,\n ...otherProps\n } = props;\n\n const styles = getMenuHeaderStyles();\n\n return (\n <div\n data-test-id={testId}\n className={cx(styles, className)}\n {...otherProps}\n >\n {children}\n </div>\n );\n};\n\nMenuListHeader.displayName = 'MenuListHeader';\n","import React from 'react';\nimport { cx } from 'emotion';\nimport type {\n CommonProps,\n PropsWithHTMLElement,\n ExpandProps,\n} from '@contentful/f36-core';\n\nimport { getMenuFooterStyles } from './MenuList.styles';\n\nexport type MenuListFooterProps = PropsWithHTMLElement<CommonProps, 'div'>;\n\nexport const MenuListFooter: React.FC<ExpandProps<MenuListFooterProps>> = (\n props,\n) => {\n const {\n children,\n testId = 'cf-ui-menu-list-footer',\n className,\n ...otherProps\n } = props;\n\n const styles = getMenuFooterStyles();\n\n return (\n <div\n data-test-id={testId}\n className={cx(styles, className)}\n {...otherProps}\n >\n {children}\n </div>\n );\n};\n\nMenuListFooter.displayName = 'MenuListFooter';\n","import React, { useEffect, useRef } from 'react';\nimport { cx } from 'emotion';\nimport { mergeRefs } from '@contentful/f36-core';\nimport type {\n CommonProps,\n PolymorphicComponent,\n PolymorphicProps,\n ExpandProps,\n} from '@contentful/f36-core';\nimport { useMenuContext } from '../MenuContext';\nimport { useId } from '@contentful/f36-core';\nimport { getMenuItemStyles } from './MenuItem.styles';\n\nconst MENU_ITEM_DEFAULT_TAG = 'button';\n\ninterface MenuItemInternalProps extends CommonProps {\n children?: React.ReactNode;\n as?: 'a' | 'button';\n\n /**\n * Sets focus on item\n */\n isInitiallyFocused?: boolean;\n}\n\nexport type MenuItemProps<\n E extends React.ElementType = typeof MENU_ITEM_DEFAULT_TAG\n> = PolymorphicProps<MenuItemInternalProps, E>;\n\nfunction _MenuItem<E extends React.ElementType = typeof MENU_ITEM_DEFAULT_TAG>(\n props: MenuItemProps<E>,\n ref: React.Ref<any>,\n) {\n const { testId, className, as, isInitiallyFocused, ...otherProps } = props;\n\n const id = useId(undefined, 'menu-item');\n const itemTestId = testId || `cf-ui-${id}`;\n const styles = getMenuItemStyles();\n\n const { getMenuItemProps, focusMenuItem } = useMenuContext();\n\n const itemRef = useRef<HTMLElement>(null);\n useEffect(() => {\n if (isInitiallyFocused && itemRef.current) {\n focusMenuItem(itemRef.current);\n }\n }, [isInitiallyFocused, focusMenuItem]);\n\n const Element = (as ?? MENU_ITEM_DEFAULT_TAG) as React.ElementType;\n\n return (\n <Element\n role=\"menuitem\"\n {...otherProps}\n {...getMenuItemProps(otherProps)}\n className={cx(styles.root, className)}\n data-test-id={itemTestId}\n ref={mergeRefs(itemRef, ref)}\n tabIndex={-1}\n >\n {props.children}\n </Element>\n );\n}\n\n_MenuItem.displayName = 'MenuItem';\n\nexport const MenuItem: PolymorphicComponent<\n ExpandProps<MenuItemInternalProps>,\n typeof MENU_ITEM_DEFAULT_TAG\n> = React.forwardRef(_MenuItem);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getMenuItemStyles = () => {\n return {\n root: css({\n display: 'block',\n width: '100%',\n background: 'none',\n border: 0,\n margin: 0,\n outline: 'none',\n fontSize: tokens.fontSizeM,\n lineHeight: tokens.lineHeightM,\n fontWeight: tokens.fontWeightNormal,\n position: 'relative',\n textAlign: 'left',\n padding: `${tokens.spacingXs} ${tokens.spacingM}`,\n wordBreak: 'break-word',\n whiteSpace: 'break-spaces',\n cursor: 'pointer',\n hyphens: 'auto',\n minWidth: '150px',\n textDecoration: 'none',\n color: tokens.gray800,\n\n '&:hover': {\n backgroundColor: tokens.gray100,\n },\n '&:focus': {\n boxShadow: `inset ${tokens.glowPrimary}`,\n // just to make boxShadow with rounded corners\n borderRadius: tokens.borderRadiusMedium,\n },\n '&:focus:not(:focus-visible)': {\n boxShadow: 'unset',\n borderRadius: 'unset',\n },\n '&:focus-visible': {\n boxShadow: `inset ${tokens.glowPrimary}`,\n borderRadius: tokens.borderRadiusMedium,\n },\n '&:active': {\n backgroundColor: tokens.gray200,\n },\n '&:disabled': {\n opacity: 0.5,\n cursor: 'auto',\n },\n }),\n };\n};\n","import React from 'react';\nimport { Popover } from '@contentful/f36-popover';\nimport { useMenuContext } from '../MenuContext';\nimport type { ExpandProps } from '@contentful/f36-core';\n\nexport interface MenuTriggerProps {\n children: React.ReactNode;\n}\n\nexport const MenuTrigger = (props: ExpandProps<MenuTriggerProps>) => {\n const child = React.Children.only(props.children) as any;\n const { getTriggerProps } = useMenuContext();\n\n return (\n <Popover.Trigger>\n {React.cloneElement(child, {\n ...getTriggerProps(child.props, child.ref),\n ['aria-haspopup']: 'menu',\n })}\n </Popover.Trigger>\n );\n};\n","import React from 'react';\nimport type {\n CommonProps,\n PropsWithHTMLElement,\n ExpandProps,\n} from '@contentful/f36-core';\nimport { cx } from 'emotion';\nimport { getMenuDividerStyles } from './MenuDivider.styles';\n\nexport type MenuDividerProps = PropsWithHTMLElement<CommonProps, 'hr'>;\n\nexport const MenuDivider = (props: ExpandProps<MenuDividerProps>) => {\n const {\n children,\n testId = 'cf-ui-menu-divider',\n className,\n ...otherProps\n } = props;\n\n const styles = getMenuDividerStyles();\n\n return (\n <hr\n aria-orientation=\"horizontal\"\n data-test-id={testId}\n className={cx(styles, className)}\n {...otherProps}\n />\n );\n};\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getMenuDividerStyles = () =>\n css({\n border: 'none',\n width: '100%',\n height: '1px',\n background: tokens.gray300,\n margin: `${tokens.spacingXs} 0`,\n });\n","import React from 'react';\nimport { cx } from 'emotion';\nimport { getMenuSectionTitleStyles } from './MenuSectionTitle.styles';\nimport { SectionHeading } from '@contentful/f36-typography';\nimport type { SectionHeadingProps } from '@contentful/f36-typography';\nimport type { ExpandProps } from '@contentful/f36-core';\n\nexport type MenuSectionTitleProps = SectionHeadingProps;\n\nexport const MenuSectionTitle = (props: ExpandProps<MenuSectionTitleProps>) => {\n const {\n children,\n testId = 'cf-ui-menu-section-title',\n className,\n ...otherProps\n } = props;\n\n const styles = getMenuSectionTitleStyles();\n\n return (\n <SectionHeading\n // Techincally, menus cannot contain headings according to ARIA.\n // We hide the heading from assistive technology, and only use it\n // as a label\n aria-hidden=\"true\"\n testId={testId}\n className={cx(styles, className)}\n marginBottom=\"none\"\n {...otherProps}\n >\n {children}\n </SectionHeading>\n );\n};\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getMenuSectionTitleStyles = () =>\n css({\n textAlign: 'left',\n padding: `${tokens.spacingXs} ${tokens.spacingM}`,\n lineHeight: tokens.lineHeightM,\n\n 'hr + &': {\n marginTop: '-8px',\n },\n });\n","import React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { Menu, MenuProps } from '../Menu';\nimport { useMenuContext } from '../MenuContext';\nimport { SubmenuContextProvider, SubmenuContextType } from '../SubmenuContext';\nimport { mergeRefs } from '@contentful/f36-core';\n\nconst SUBMENU_OFFSET: [number, number] = [-8, 2];\n\nexport type SubmenuProps = Omit<\n MenuProps,\n | 'placement'\n | 'offset'\n | 'usePortal'\n | 'isOpen'\n | 'isAutoalignmentEnabled'\n | 'defaultIsOpen'\n>;\n\nexport const Submenu = (props: SubmenuProps) => {\n const { onClose, onOpen, ...otherProps } = props;\n\n const {\n isOpen: isParentMenuOpen,\n menuId,\n propsToPropagateToSubmenus,\n } = useMenuContext();\n\n const triggerRef = useRef<HTMLButtonElement>(null);\n const mouseLeaveTimerRef = useRef(null);\n\n const [isOpen, setIsOpen] = useState(false);\n const handleOpen = useCallback(() => {\n setIsOpen(true);\n window.clearTimeout(mouseLeaveTimerRef.current);\n\n onOpen?.();\n }, [onOpen]);\n const handleClose = useCallback(() => {\n setIsOpen(false);\n window.clearTimeout(mouseLeaveTimerRef.current);\n\n onClose?.();\n }, [onClose]);\n const closeAndFocusTrigger = useCallback(() => {\n handleClose();\n triggerRef.current?.focus({ preventScroll: true });\n }, [handleClose]);\n\n useEffect(() => {\n // close when parent menu closed\n if (isParentMenuOpen === false) {\n setIsOpen(false);\n }\n }, [isParentMenuOpen]);\n\n const contextValue: SubmenuContextType = useMemo(\n () => ({\n isOpen,\n getSubmenuListProps: (_props) => ({\n 'data-parent-menu': menuId,\n onMouseOver: (event) => {\n handleOpen();\n\n _props.onMouseOver?.(event);\n },\n onMouseLeave: (event) => {\n closeAndFocusTrigger();\n\n _props.onMouseLeave?.(event);\n },\n }),\n getSubmenuTriggerProps: (_props, _ref) => ({\n ref: mergeRefs(triggerRef, _ref),\n onKeyDown: (event) => {\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n handleOpen();\n }\n\n _props.onKeyDown?.(event);\n },\n onMouseOver: (event) => {\n handleOpen();\n\n _props.onMouseOver?.(event);\n },\n onMouseLeave: (event) => {\n mouseLeaveTimerRef.current = window.setTimeout(\n closeAndFocusTrigger,\n 300,\n );\n\n _props.onMouseLeave?.(event);\n },\n }),\n }),\n [isOpen, menuId, handleOpen, closeAndFocusTrigger],\n );\n\n return (\n <SubmenuContextProvider value={contextValue}>\n <Menu\n {...propsToPropagateToSubmenus}\n {...otherProps}\n isOpen={isOpen}\n onClose={handleClose}\n onOpen={handleOpen}\n placement=\"right-start\"\n offset={SUBMENU_OFFSET}\n isAutoalignmentEnabled={false}\n />\n </SubmenuContextProvider>\n );\n};\n","import React from 'react';\nimport { MenuTrigger } from '../MenuTrigger/MenuTrigger';\nimport { MenuItem, MenuItemProps } from '../MenuItem/MenuItem';\nimport { useSubmenuContext } from '../SubmenuContext';\nimport { ChevronRightIcon } from '@contentful/f36-icons';\nimport type { ExpandProps } from '@contentful/f36-core';\nimport { cx } from 'emotion';\nimport { getSubmenuTriggerStyles } from './SubmenuTrigger.styles';\n\nexport type SubmenuTriggerProps = Omit<\n MenuItemProps<'button'>,\n 'isInitiallyFocused' | 'as'\n>;\n\nconst _SubmenuTrigger = (\n props: ExpandProps<SubmenuTriggerProps>,\n ref: React.Ref<HTMLButtonElement>,\n) => {\n const { className, children } = props;\n const { getSubmenuTriggerProps, isOpen } = useSubmenuContext();\n\n const styles = getSubmenuTriggerStyles();\n\n return (\n <MenuTrigger>\n <MenuItem\n {...props}\n {...getSubmenuTriggerProps(props, ref)}\n className={cx(styles.root({ isActive: isOpen }), className)}\n >\n <span className={styles.content}>{children}</span>\n <ChevronRightIcon className={styles.icon} />\n </MenuItem>\n </MenuTrigger>\n );\n};\n\nexport const SubmenuTrigger = React.forwardRef(_SubmenuTrigger);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getSubmenuTriggerStyles = () => {\n return {\n root: ({ isActive }) =>\n css({\n display: 'flex',\n alignItems: 'center',\n paddingRight: tokens.spacingXs,\n ...(isActive\n ? {\n backgroundColor: tokens.gray100,\n }\n : {}),\n }),\n content: css({\n marginRight: tokens.spacingM,\n }),\n icon: css({\n marginLeft: 'auto',\n fill: 'currentColor',\n }),\n };\n};\n"],"names":["Menu","MenuProps","MenuList","MenuListProps","MenuItem","MenuItemProps","MenuTrigger","MenuTriggerProps","MenuDivider","MenuDividerProps","MenuSectionTitle","MenuSectionTitleProps","Submenu","SubmenuProps","SubmenuTrigger","SubmenuTriggerProps","OriginalMenu","MenuListHeader","MenuListFooter","CompoundMenu","List","ListHeader","ListFooter","Item","Trigger","Divider","SectionTitle","React","useCallback","useMemo","useRef","useEffect","mergeRefs","useId","useControllableState","useArrowKeyNavigation","Popover","PopoverProps","MenuContextProvider","MenuContextType","MENU_ITEMS_SELECTOR","Omit","isOpen","defaultIsOpen","onOpen","onClose","closeOnSelect","closeOnBlur","closeOnEsc","props","children","otherProps","handleOpen","handleClose","isControlled","triggerRef","HTMLButtonElement","menuListRef","HTMLDivElement","menuId","focusedIndex","handleArrowsKeyDown","setFocusedIndex","itemsContainerRef","itemsSelector","current","menuItems","querySelectorAll","length","setTimeout","HTMLElement","focus","preventScroll","focusMenuItem","item","itemIndex","findIndex","menuItem","closeAndFocusTrigger","handleMenuListKeyDown","event","KeyboardEvent","key","preventDefault","stopPropagation","contextValue","getTriggerProps","_props","_ref","onClick","isFullyControlled","ref","getMenuListProps","onKeyDown","onBlur","relatedTarget","Node","targetIsMenu","contains","targetIsTrigger","targetIsSubmenu","parentElement","dataset","parentMenu","getMenuItemProps","isSubmenuTrigger","Boolean","target","getAttribute","propsToPropagateToSubmenus","useState","UseArrowKeyNavigationProps","MutableRefObject","keyType","initialFocusedIndex","ARROW_KEY_TYPES","vertical","prev","next","horizontal","container","items","lastItemIndex","focusFirstItem","focusLastItem","focusNextItem","focusPrevItem","keyToFnMap","fn","ComponentPropsWithRef","Ref","Pick","MenuContext","createContext","undefined","useMenuContext","context","useContext","Error","Provider","CommonProps","PropsWithHTMLElement","ExpandProps","useSubmenuContext","getMenuListStyles","MenuListInternalProps","ReactNode","assertChild","child","type","displayName","_MenuList","testId","className","submenuContext","header","ReactElement","footer","Children","forEach","appendChild","push","styles","hasStickyHeader","hasStickyFooter","extendedOtherProps","getSubmenuListProps","forwardRef","ComponentPropsWithoutRef","SubmenuContextType","getSubmenuTriggerProps","SubmenuContext","SubmenuContextProvider","tokens","getMenuHeaderStyles","position","top","left","backgroundColor","colorWhite","borderBottom","gray300","padding","spacingXs","zIndex","getMenuFooterStyles","bottom","borderTop","overflowY","paddingTop","paddingBottom","MenuListHeaderProps","FC","MenuListFooterProps","PolymorphicComponent","PolymorphicProps","getMenuItemStyles","MENU_ITEM_DEFAULT_TAG","MenuItemInternalProps","as","isInitiallyFocused","ElementType","E","_MenuItem","id","itemTestId","itemRef","Element","root","display","width","background","border","margin","outline","fontSize","fontSizeM","lineHeight","lineHeightM","fontWeight","fontWeightNormal","textAlign","spacingM","wordBreak","whiteSpace","cursor","hyphens","minWidth","textDecoration","color","gray800","gray100","boxShadow","glowPrimary","borderRadius","borderRadiusMedium","gray200","opacity","only","cloneElement","getMenuDividerStyles","height","getMenuSectionTitleStyles","SectionHeading","SectionHeadingProps","marginTop","SUBMENU_OFFSET","isParentMenuOpen","mouseLeaveTimerRef","setIsOpen","window","clearTimeout","onMouseOver","onMouseLeave","ChevronRightIcon","getSubmenuTriggerStyles","_SubmenuTrigger","isActive","content","icon","alignItems","paddingRight","marginRight"],"version":3,"file":"module.js.map"}
1
+ {"mappings":"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","sources":["packages/components/menu/src/index.ts","packages/components/menu/src/CompoundMenu.tsx","packages/components/menu/src/Menu.tsx","packages/components/menu/src/useArrowKeyNavigation.ts","packages/components/menu/src/MenuContext.ts","packages/components/menu/src/MenuList/MenuList.tsx","packages/components/menu/src/SubmenuContext.ts","packages/components/menu/src/MenuList/MenuList.styles.ts","packages/components/menu/src/MenuList/MenuListHeader.tsx","packages/components/menu/src/MenuList/MenuListFooter.tsx","packages/components/menu/src/MenuItem/MenuItem.tsx","packages/components/menu/src/MenuItem/MenuItem.styles.ts","packages/components/menu/src/MenuTrigger/MenuTrigger.tsx","packages/components/menu/src/MenuDivider/MenuDivider.tsx","packages/components/menu/src/MenuDivider/MenuDivider.styles.ts","packages/components/menu/src/MenuSectionTitle/MenuSectionTitle.tsx","packages/components/menu/src/MenuSectionTitle/MenuSectionTitle.styles.ts","packages/components/menu/src/Submenu/Submenu.tsx","packages/components/menu/src/SubmenuTrigger/SubmenuTrigger.tsx","packages/components/menu/src/SubmenuTrigger/SubmenuTrigger.styles.ts"],"sourcesContent":["export { Menu } from './CompoundMenu';\nexport type { MenuProps } from './Menu';\nexport { MenuList } from './MenuList/MenuList';\nexport type { MenuListProps } from './MenuList/MenuList';\nexport { MenuItem } from './MenuItem/MenuItem';\nexport type { MenuItemProps } from './MenuItem/MenuItem';\nexport { MenuTrigger } from './MenuTrigger/MenuTrigger';\nexport type { MenuTriggerProps } from './MenuTrigger/MenuTrigger';\nexport { MenuDivider } from './MenuDivider/MenuDivider';\nexport type { MenuDividerProps } from './MenuDivider/MenuDivider';\nexport { MenuSectionTitle } from './MenuSectionTitle/MenuSectionTitle';\nexport type { MenuSectionTitleProps } from './MenuSectionTitle/MenuSectionTitle';\nexport { Submenu } from './Submenu/Submenu';\nexport type { SubmenuProps } from './Submenu/Submenu';\nexport { SubmenuTrigger } from './SubmenuTrigger/SubmenuTrigger';\nexport type { SubmenuTriggerProps } from './SubmenuTrigger/SubmenuTrigger';\n","import { Menu as OriginalMenu } from './Menu';\nimport { MenuList } from './MenuList/MenuList';\nimport { MenuListHeader } from './MenuList/MenuListHeader';\nimport { MenuListFooter } from './MenuList/MenuListFooter';\nimport { MenuItem } from './MenuItem/MenuItem';\nimport { MenuTrigger } from './MenuTrigger/MenuTrigger';\nimport { MenuDivider } from './MenuDivider/MenuDivider';\nimport { MenuSectionTitle } from './MenuSectionTitle/MenuSectionTitle';\nimport { Submenu } from './Submenu/Submenu';\nimport { SubmenuTrigger } from './SubmenuTrigger/SubmenuTrigger';\n\ntype CompoundMenu = typeof OriginalMenu & {\n List: typeof MenuList;\n ListHeader: typeof MenuListHeader;\n ListFooter: typeof MenuListFooter;\n Item: typeof MenuItem;\n Trigger: typeof MenuTrigger;\n Divider: typeof MenuDivider;\n SectionTitle: typeof MenuSectionTitle;\n Submenu: typeof Submenu;\n SubmenuTrigger: typeof SubmenuTrigger;\n};\n\nexport const Menu = OriginalMenu as CompoundMenu;\nMenu.List = MenuList;\nMenu.ListHeader = MenuListHeader;\nMenu.ListFooter = MenuListFooter;\nMenu.Item = MenuItem;\nMenu.Trigger = MenuTrigger;\nMenu.Divider = MenuDivider;\nMenu.SectionTitle = MenuSectionTitle;\nMenu.Submenu = Submenu;\nMenu.SubmenuTrigger = SubmenuTrigger;\n","import React, { useCallback, useMemo, useRef, useEffect } from 'react';\nimport { mergeRefs, useId, useControllableState } from '@contentful/f36-core';\nimport { Popover, type PopoverProps } from '@contentful/f36-popover';\n\nimport { useArrowKeyNavigation } from './useArrowKeyNavigation';\nimport { MenuContextProvider, MenuContextType } from './MenuContext';\n\nconst MENU_ITEMS_SELECTOR = '[role=\"menuitem\"]:not(:disabled)';\n\nexport interface MenuProps\n extends Omit<PopoverProps, 'autoFocus' | 'id' | 'closeOnBlur'> {\n /**\n * By default, the Menu is uncontrolled (manage it's expanded state by itself)\n * But you can make it controlled by providing boolean (true/false)\n */\n isOpen?: boolean;\n\n /**\n * If `true`, the Menu will be initially opened.\n */\n defaultIsOpen?: boolean;\n\n /**\n * Callback fired when the Menu opens\n */\n onOpen?: () => void;\n\n /**\n * Callback fired when the Menu closes\n */\n onClose?: () => void;\n\n /**\n * If `true`, the Menu will close when a menu item is\n * clicked\n *\n * Note: This prop will be propagated to all submenus,\n * unless you will override it with props on submenu itself\n *\n * @default true\n */\n closeOnSelect?: boolean;\n\n /**\n * If true, the menu will close when you blur out it by clicking outside\n *\n * Note: This prop will be propagated to all submenus,\n * unless you will override it with props on submenu itself\n *\n * @default true\n */\n closeOnBlur?: boolean;\n\n /**\n * If true, the menu will close when you hit the Esc key\n *\n * Note: This prop will be propagated to all submenus,\n * unless you will override it with props on submenu itself\n *\n * @default true\n */\n closeOnEsc?: boolean;\n}\n\nexport function Menu(props: MenuProps) {\n const {\n closeOnSelect = true,\n closeOnBlur = true,\n closeOnEsc = true,\n children,\n onOpen,\n ...otherProps\n } = props;\n const { isOpen, handleOpen, handleClose, isControlled } =\n useControllableState({\n isOpen: props.isOpen,\n defaultIsOpen: props.defaultIsOpen,\n onOpen,\n onClose: props.onClose,\n });\n\n const triggerRef = useRef<HTMLButtonElement>(null);\n const menuListRef = useRef<HTMLDivElement>(null);\n\n const menuId = useId(null, 'menu');\n\n const { focusedIndex, handleArrowsKeyDown, setFocusedIndex } =\n useArrowKeyNavigation({\n itemsContainerRef: menuListRef,\n itemsSelector: MENU_ITEMS_SELECTOR,\n });\n\n useEffect(() => {\n if (isOpen && menuListRef.current) {\n const menuItems =\n menuListRef.current.querySelectorAll(MENU_ITEMS_SELECTOR);\n\n if (menuItems.length > 0 && focusedIndex < menuItems.length) {\n // timeout trick to prevent scroll from jumping\n // when the popover is not positioned correctly yet in the opening phase\n setTimeout(() => {\n (menuItems[focusedIndex] as HTMLElement).focus({\n preventScroll: false,\n });\n }, 0);\n }\n }\n }, [isOpen, focusedIndex]);\n\n const focusMenuItem = useCallback(\n (item: HTMLElement) => {\n const menuItems =\n menuListRef.current.querySelectorAll(MENU_ITEMS_SELECTOR);\n\n const itemIndex = [...menuItems].findIndex(\n (menuItem) => item === menuItem,\n );\n\n if (itemIndex !== -1) {\n setFocusedIndex(itemIndex);\n }\n },\n [setFocusedIndex],\n );\n\n const closeAndFocusTrigger = useCallback(() => {\n handleClose();\n triggerRef.current?.focus({ preventScroll: true });\n }, [handleClose]);\n\n const handleMenuListKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n if (event.key === 'Tab') {\n event.preventDefault();\n closeAndFocusTrigger();\n return;\n }\n\n // we don't want to propagate other keydown events except `Tab`\n event.stopPropagation();\n\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n closeAndFocusTrigger();\n return;\n }\n\n handleArrowsKeyDown(event);\n },\n [closeAndFocusTrigger, handleArrowsKeyDown],\n );\n\n const contextValue: MenuContextType = useMemo(\n () => ({\n isOpen,\n menuId,\n focusMenuItem,\n getTriggerProps: (_props = {}, _ref = null) => ({\n onClick: (event) => {\n // if the user made component controlled by providing isOpen prop\n // but onOpen callback is not provided, we won't add toggle logic\n // to the trigger component. So they can make any toggle logic on their own.\n const isFullyControlled = isControlled && !onOpen;\n\n if (!isFullyControlled) {\n if (isOpen) {\n handleClose();\n } else {\n handleOpen();\n }\n }\n\n _props.onClick?.(event);\n },\n ref: mergeRefs(triggerRef, _ref),\n }),\n getMenuListProps: (_props = {}, _ref = null) => ({\n ref: mergeRefs(menuListRef, _ref),\n onKeyDown: (event) => {\n handleMenuListKeyDown(event);\n _props.onKeyDown?.(event);\n },\n onBlur: (event) => {\n _props.onBlur?.(event);\n\n if (!closeOnBlur) {\n return;\n }\n\n const relatedTarget = event.relatedTarget as Node;\n\n const targetIsMenu =\n menuListRef.current === relatedTarget ||\n menuListRef.current?.contains(relatedTarget);\n const targetIsTrigger =\n triggerRef.current === relatedTarget ||\n triggerRef.current?.contains(relatedTarget);\n const targetIsSubmenu =\n relatedTarget?.parentElement?.dataset.parentMenu === menuId;\n\n if (targetIsMenu || targetIsTrigger || targetIsSubmenu) {\n event.stopPropagation();\n return;\n }\n\n handleClose();\n },\n }),\n getMenuItemProps: (_props = {}) => ({\n onClick: (event) => {\n _props.onClick?.(event);\n\n const isSubmenuTrigger = Boolean(\n (event.target as HTMLElement).getAttribute('aria-haspopup'),\n );\n if (closeOnSelect && !isSubmenuTrigger) {\n closeAndFocusTrigger();\n }\n },\n }),\n propsToPropagateToSubmenus: {\n closeOnSelect,\n closeOnBlur,\n closeOnEsc,\n },\n }),\n [\n menuId,\n isOpen,\n handleMenuListKeyDown,\n closeOnSelect,\n handleClose,\n handleOpen,\n focusMenuItem,\n closeOnBlur,\n closeOnEsc,\n closeAndFocusTrigger,\n isControlled,\n onOpen,\n ],\n );\n\n return (\n <MenuContextProvider value={contextValue}>\n <Popover\n {...otherProps}\n isOpen={isOpen}\n onClose={handleClose}\n id={menuId}\n closeOnEsc={closeOnEsc}\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus={false}\n closeOnBlur={false}\n >\n {children}\n </Popover>\n </MenuContextProvider>\n );\n}\n","import { useState, useCallback } from 'react';\n\ninterface UseArrowKeyNavigationProps {\n itemsContainerRef: React.MutableRefObject<HTMLElement>;\n itemsSelector: string;\n keyType?: 'vertical' | 'horizontal';\n initialFocusedIndex?: number;\n}\n\nconst ARROW_KEY_TYPES = {\n vertical: {\n prev: 'ArrowUp',\n next: 'ArrowDown',\n },\n horizontal: {\n prev: 'ArrowLeft',\n next: 'ArrowRight',\n },\n};\n\nexport const useArrowKeyNavigation = ({\n itemsContainerRef,\n itemsSelector,\n keyType = 'vertical',\n}: UseArrowKeyNavigationProps) => {\n const [focusedIndex, setFocusedIndex] = useState<number>(0);\n\n const handleArrowsKeyDown = useCallback(\n (event: React.KeyboardEvent) => {\n const container = itemsContainerRef.current;\n if (!container) return;\n\n const items = container.querySelectorAll(itemsSelector);\n if (items.length === 0) return;\n\n const lastItemIndex = items.length - 1;\n\n const focusFirstItem = () => setFocusedIndex(0);\n const focusLastItem = () => setFocusedIndex(lastItemIndex);\n const focusNextItem = () => {\n if (focusedIndex === lastItemIndex) {\n focusFirstItem();\n } else {\n setFocusedIndex(focusedIndex + 1);\n }\n };\n const focusPrevItem = () => {\n if (focusedIndex === 0) {\n focusLastItem();\n } else {\n setFocusedIndex(focusedIndex - 1);\n }\n };\n\n const keyToFnMap = {\n [ARROW_KEY_TYPES[keyType].next]: focusNextItem,\n [ARROW_KEY_TYPES[keyType].prev]: focusPrevItem,\n };\n\n const fn = keyToFnMap[event.key];\n if (fn) {\n event.preventDefault();\n fn();\n }\n },\n [focusedIndex, itemsSelector, itemsContainerRef, keyType],\n );\n\n return { focusedIndex, handleArrowsKeyDown, setFocusedIndex };\n};\n","import React, { ComponentPropsWithRef } from 'react';\nimport { MenuProps } from '.';\n\nexport type MenuContextType = {\n isOpen: boolean;\n menuId: string;\n focusMenuItem: (item: HTMLElement) => void;\n getTriggerProps: (\n _props: ComponentPropsWithRef<'button'>,\n _ref: React.Ref<HTMLButtonElement>,\n ) => ComponentPropsWithRef<'button'>;\n getMenuListProps: (\n _props: ComponentPropsWithRef<'div'>,\n _ref: React.Ref<HTMLDivElement>,\n ) => ComponentPropsWithRef<'div'>;\n getMenuItemProps: (\n _props: ComponentPropsWithRef<'button'>,\n ) => ComponentPropsWithRef<'button'>;\n propsToPropagateToSubmenus: Pick<\n MenuProps,\n 'closeOnBlur' | 'closeOnEsc' | 'closeOnSelect'\n >;\n};\n\nconst MenuContext = React.createContext<MenuContextType | undefined>(undefined);\n\nexport const useMenuContext = () => {\n const context = React.useContext(MenuContext);\n\n if (context === undefined) {\n throw new Error('useMenuContext must be used within a MenuContextProvider');\n }\n\n return context;\n};\n\nexport const MenuContextProvider = MenuContext.Provider;\n","import React from 'react';\nimport type {\n CommonProps,\n PropsWithHTMLElement,\n ExpandProps,\n} from '@contentful/f36-core';\nimport { useMenuContext } from '../MenuContext';\nimport { useSubmenuContext } from '../SubmenuContext';\nimport { Popover } from '@contentful/f36-popover';\nimport { cx } from 'emotion';\nimport { getMenuListStyles } from './MenuList.styles';\nimport { MenuListHeader } from './MenuListHeader';\nimport { MenuListFooter } from './MenuListFooter';\n\ninterface MenuListInternalProps extends CommonProps {\n children?: React.ReactNode;\n}\n\nfunction assertChild(child: any): child is { type: { displayName: string } } {\n return Boolean(child?.type?.displayName);\n}\n\nexport type MenuListProps = PropsWithHTMLElement<MenuListInternalProps, 'div'>;\n\nconst _MenuList = (\n props: ExpandProps<MenuListProps>,\n ref: React.Ref<HTMLDivElement>,\n) => {\n const {\n children,\n testId = 'cf-ui-menu-list',\n className,\n ...otherProps\n } = props;\n\n const { getMenuListProps } = useMenuContext();\n const submenuContext = useSubmenuContext();\n\n let header: React.ReactElement | null = null;\n let footer: React.ReactElement | null = null;\n const items: React.ReactElement[] = [];\n\n React.Children.forEach(children, (child) => {\n let appendChild = true;\n if (assertChild(child)) {\n if (child.type.displayName === MenuListHeader.displayName) {\n header = child as unknown as React.ReactElement;\n appendChild = false;\n } else if (child.type.displayName === MenuListFooter.displayName) {\n footer = child as unknown as React.ReactElement;\n appendChild = false;\n }\n }\n if (appendChild) {\n items.push(child as unknown as React.ReactElement);\n }\n });\n\n const styles = getMenuListStyles({\n hasStickyHeader: Boolean(header),\n hasStickyFooter: Boolean(footer),\n });\n\n const extendedOtherProps = submenuContext\n ? submenuContext.getSubmenuListProps(otherProps)\n : otherProps;\n\n return (\n <Popover.Content\n role=\"menu\"\n {...extendedOtherProps}\n {...getMenuListProps(extendedOtherProps, ref)}\n className={cx(styles.container, className)}\n testId={testId}\n >\n {header}\n {items}\n {footer}\n </Popover.Content>\n );\n};\n\nexport const MenuList = React.forwardRef(_MenuList);\n","import React, { ComponentPropsWithRef, ComponentPropsWithoutRef } from 'react';\n\nexport type SubmenuContextType = {\n isOpen: boolean;\n getSubmenuListProps: (\n _props: ComponentPropsWithRef<'div'>,\n ) => { 'data-parent-menu': string } & ComponentPropsWithoutRef<'div'>;\n getSubmenuTriggerProps: (\n _props: ComponentPropsWithRef<'button'>,\n _ref: React.Ref<HTMLButtonElement>,\n ) => ComponentPropsWithRef<'button'>;\n};\n\nconst SubmenuContext = React.createContext<SubmenuContextType | undefined>(\n undefined,\n);\n\nexport const useSubmenuContext = () => {\n const context = React.useContext(SubmenuContext);\n return context;\n};\n\nexport const SubmenuContextProvider = SubmenuContext.Provider;\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getMenuHeaderStyles = () => {\n return css({\n position: 'sticky',\n top: 0,\n left: 0,\n backgroundColor: tokens.colorWhite,\n borderBottom: `1px solid ${tokens.gray300}`,\n padding: `${tokens.spacingXs} 0`,\n zIndex: 1001,\n });\n};\n\nexport const getMenuFooterStyles = () => {\n return css({\n position: 'sticky',\n bottom: 0,\n left: 0,\n backgroundColor: tokens.colorWhite,\n borderTop: `1px solid ${tokens.gray300}`,\n padding: `${tokens.spacingXs} 0`,\n zIndex: 1001,\n });\n};\n\nexport const getMenuListStyles = (props: {\n hasStickyFooter?: boolean;\n hasStickyHeader?: boolean;\n}) => ({\n container: css({\n overflowY: 'auto',\n position: 'relative',\n padding: 0,\n paddingTop: props.hasStickyHeader ? 0 : tokens.spacingXs,\n paddingBottom: props.hasStickyFooter ? 0 : tokens.spacingXs,\n }),\n});\n","import React from 'react';\nimport { cx } from 'emotion';\nimport type {\n CommonProps,\n PropsWithHTMLElement,\n ExpandProps,\n} from '@contentful/f36-core';\n\nimport { getMenuHeaderStyles } from './MenuList.styles';\n\nexport type MenuListHeaderProps = PropsWithHTMLElement<CommonProps, 'div'>;\n\nexport const MenuListHeader: React.FC<ExpandProps<MenuListHeaderProps>> = (\n props,\n) => {\n const {\n children,\n testId = 'cf-ui-menu-list-header',\n className,\n ...otherProps\n } = props;\n\n const styles = getMenuHeaderStyles();\n\n return (\n <div\n data-test-id={testId}\n className={cx(styles, className)}\n {...otherProps}\n >\n {children}\n </div>\n );\n};\n\nMenuListHeader.displayName = 'MenuListHeader';\n","import React from 'react';\nimport { cx } from 'emotion';\nimport type {\n CommonProps,\n PropsWithHTMLElement,\n ExpandProps,\n} from '@contentful/f36-core';\n\nimport { getMenuFooterStyles } from './MenuList.styles';\n\nexport type MenuListFooterProps = PropsWithHTMLElement<CommonProps, 'div'>;\n\nexport const MenuListFooter: React.FC<ExpandProps<MenuListFooterProps>> = (\n props,\n) => {\n const {\n children,\n testId = 'cf-ui-menu-list-footer',\n className,\n ...otherProps\n } = props;\n\n const styles = getMenuFooterStyles();\n\n return (\n <div\n data-test-id={testId}\n className={cx(styles, className)}\n {...otherProps}\n >\n {children}\n </div>\n );\n};\n\nMenuListFooter.displayName = 'MenuListFooter';\n","import React, { useEffect, useRef } from 'react';\nimport { cx } from 'emotion';\nimport {\n mergeRefs,\n useId,\n type CommonProps,\n type PolymorphicComponent,\n type PolymorphicProps,\n type ExpandProps,\n} from '@contentful/f36-core';\n\nimport { useMenuContext } from '../MenuContext';\nimport { getMenuItemStyles } from './MenuItem.styles';\n\nconst MENU_ITEM_DEFAULT_TAG = 'button';\n\ninterface MenuItemInternalProps extends CommonProps {\n children?: React.ReactNode;\n as?: 'a' | 'button';\n\n /**\n * Sets focus on item\n */\n isInitiallyFocused?: boolean;\n}\n\nexport type MenuItemProps<\n E extends React.ElementType = typeof MENU_ITEM_DEFAULT_TAG,\n> = PolymorphicProps<MenuItemInternalProps, E>;\n\nfunction _MenuItem<E extends React.ElementType = typeof MENU_ITEM_DEFAULT_TAG>(\n props: MenuItemProps<E>,\n ref: React.Ref<any>,\n) {\n const { testId, className, as, isInitiallyFocused, ...otherProps } = props;\n\n const id = useId(undefined, 'menu-item');\n const itemTestId = testId || `cf-ui-${id}`;\n const styles = getMenuItemStyles();\n\n const { getMenuItemProps, focusMenuItem } = useMenuContext();\n\n const itemRef = useRef<HTMLElement>(null);\n useEffect(() => {\n if (isInitiallyFocused && itemRef.current) {\n focusMenuItem(itemRef.current);\n }\n }, [isInitiallyFocused, focusMenuItem]);\n\n const Element = (as ?? MENU_ITEM_DEFAULT_TAG) as React.ElementType;\n\n return (\n <Element\n role=\"menuitem\"\n {...otherProps}\n {...getMenuItemProps(otherProps)}\n className={cx(styles.root, className)}\n data-test-id={itemTestId}\n ref={mergeRefs(itemRef, ref)}\n tabIndex={-1}\n >\n {props.children}\n </Element>\n );\n}\n\n_MenuItem.displayName = 'MenuItem';\n\nexport const MenuItem: PolymorphicComponent<\n ExpandProps<MenuItemInternalProps>,\n typeof MENU_ITEM_DEFAULT_TAG\n> = React.forwardRef(_MenuItem);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getMenuItemStyles = () => {\n return {\n root: css({\n display: 'block',\n width: '100%',\n background: 'none',\n border: 0,\n margin: 0,\n outline: 'none',\n fontSize: tokens.fontSizeM,\n lineHeight: tokens.lineHeightM,\n fontWeight: tokens.fontWeightNormal,\n position: 'relative',\n textAlign: 'left',\n padding: `${tokens.spacingXs} ${tokens.spacingM}`,\n wordBreak: 'break-word',\n whiteSpace: 'break-spaces',\n cursor: 'pointer',\n hyphens: 'auto',\n minWidth: '150px',\n textDecoration: 'none',\n color: tokens.gray800,\n\n '&:hover': {\n backgroundColor: tokens.gray100,\n },\n '&:focus': {\n boxShadow: `inset ${tokens.glowPrimary}`,\n // just to make boxShadow with rounded corners\n borderRadius: tokens.borderRadiusMedium,\n },\n '&:focus:not(:focus-visible)': {\n boxShadow: 'unset',\n borderRadius: 'unset',\n },\n '&:focus-visible': {\n boxShadow: `inset ${tokens.glowPrimary}`,\n borderRadius: tokens.borderRadiusMedium,\n },\n '&:active': {\n backgroundColor: tokens.gray200,\n },\n '&:disabled': {\n opacity: 0.5,\n cursor: 'auto',\n },\n }),\n };\n};\n","import React from 'react';\nimport { Popover } from '@contentful/f36-popover';\nimport { useMenuContext } from '../MenuContext';\nimport type { ExpandProps } from '@contentful/f36-core';\n\nexport interface MenuTriggerProps {\n children: React.ReactNode;\n}\n\nexport const MenuTrigger = (props: ExpandProps<MenuTriggerProps>) => {\n const child = React.Children.only(props.children) as any;\n const { getTriggerProps } = useMenuContext();\n\n return (\n <Popover.Trigger>\n {React.cloneElement(child, {\n ...getTriggerProps(child.props, child.ref),\n ['aria-haspopup']: 'menu',\n })}\n </Popover.Trigger>\n );\n};\n","import React from 'react';\nimport type {\n CommonProps,\n PropsWithHTMLElement,\n ExpandProps,\n} from '@contentful/f36-core';\nimport { cx } from 'emotion';\nimport { getMenuDividerStyles } from './MenuDivider.styles';\n\nexport type MenuDividerProps = PropsWithHTMLElement<CommonProps, 'hr'>;\n\nexport const MenuDivider = (props: ExpandProps<MenuDividerProps>) => {\n const {\n children,\n testId = 'cf-ui-menu-divider',\n className,\n ...otherProps\n } = props;\n\n const styles = getMenuDividerStyles();\n\n return (\n <hr\n aria-orientation=\"horizontal\"\n data-test-id={testId}\n className={cx(styles, className)}\n {...otherProps}\n />\n );\n};\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getMenuDividerStyles = () =>\n css({\n border: 'none',\n width: '100%',\n height: '1px',\n background: tokens.gray300,\n margin: `${tokens.spacingXs} 0`,\n });\n","import React from 'react';\nimport { cx } from 'emotion';\nimport {\n SectionHeading,\n type SectionHeadingProps,\n} from '@contentful/f36-typography';\nimport type { ExpandProps } from '@contentful/f36-core';\n\nimport { getMenuSectionTitleStyles } from './MenuSectionTitle.styles';\n\nexport type MenuSectionTitleProps = SectionHeadingProps;\n\nexport const MenuSectionTitle = (props: ExpandProps<MenuSectionTitleProps>) => {\n const {\n children,\n testId = 'cf-ui-menu-section-title',\n className,\n ...otherProps\n } = props;\n\n const styles = getMenuSectionTitleStyles();\n\n return (\n <SectionHeading\n // Techincally, menus cannot contain headings according to ARIA.\n // We hide the heading from assistive technology, and only use it\n // as a label\n aria-hidden=\"true\"\n testId={testId}\n className={cx(styles, className)}\n marginBottom=\"none\"\n {...otherProps}\n >\n {children}\n </SectionHeading>\n );\n};\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getMenuSectionTitleStyles = () =>\n css({\n textAlign: 'left',\n padding: `${tokens.spacingXs} ${tokens.spacingM}`,\n lineHeight: tokens.lineHeightM,\n\n 'hr + &': {\n marginTop: '-8px',\n },\n });\n","import React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from 'react';\nimport { Menu, MenuProps } from '../Menu';\nimport { useMenuContext } from '../MenuContext';\nimport { SubmenuContextProvider, SubmenuContextType } from '../SubmenuContext';\nimport { mergeRefs } from '@contentful/f36-core';\n\nconst SUBMENU_OFFSET: [number, number] = [-8, 2];\n\nexport type SubmenuProps = Omit<\n MenuProps,\n | 'placement'\n | 'offset'\n | 'usePortal'\n | 'isOpen'\n | 'isAutoalignmentEnabled'\n | 'defaultIsOpen'\n>;\n\nexport const Submenu = (props: SubmenuProps) => {\n const { onClose, onOpen, ...otherProps } = props;\n\n const {\n isOpen: isParentMenuOpen,\n menuId,\n propsToPropagateToSubmenus,\n } = useMenuContext();\n\n const triggerRef = useRef<HTMLButtonElement>(null);\n const mouseLeaveTimerRef = useRef(null);\n\n const [isOpen, setIsOpen] = useState(false);\n const handleOpen = useCallback(() => {\n setIsOpen(true);\n window.clearTimeout(mouseLeaveTimerRef.current);\n\n onOpen?.();\n }, [onOpen]);\n const handleClose = useCallback(() => {\n setIsOpen(false);\n window.clearTimeout(mouseLeaveTimerRef.current);\n\n onClose?.();\n }, [onClose]);\n const closeAndFocusTrigger = useCallback(() => {\n handleClose();\n triggerRef.current?.focus({ preventScroll: true });\n }, [handleClose]);\n\n useEffect(() => {\n // close when parent menu closed\n if (isParentMenuOpen === false) {\n setIsOpen(false);\n }\n }, [isParentMenuOpen]);\n\n const contextValue: SubmenuContextType = useMemo(\n () => ({\n isOpen,\n getSubmenuListProps: (_props) => ({\n 'data-parent-menu': menuId,\n onMouseOver: (event) => {\n handleOpen();\n\n _props.onMouseOver?.(event);\n },\n onMouseLeave: (event) => {\n closeAndFocusTrigger();\n\n _props.onMouseLeave?.(event);\n },\n }),\n getSubmenuTriggerProps: (_props, _ref) => ({\n ref: mergeRefs(triggerRef, _ref),\n onKeyDown: (event) => {\n if (event.key === 'ArrowRight') {\n event.preventDefault();\n handleOpen();\n }\n\n _props.onKeyDown?.(event);\n },\n onMouseOver: (event) => {\n handleOpen();\n\n _props.onMouseOver?.(event);\n },\n onMouseLeave: (event) => {\n mouseLeaveTimerRef.current = window.setTimeout(\n closeAndFocusTrigger,\n 300,\n );\n\n _props.onMouseLeave?.(event);\n },\n }),\n }),\n [isOpen, menuId, handleOpen, closeAndFocusTrigger],\n );\n\n return (\n <SubmenuContextProvider value={contextValue}>\n <Menu\n {...propsToPropagateToSubmenus}\n {...otherProps}\n isOpen={isOpen}\n onClose={handleClose}\n onOpen={handleOpen}\n placement=\"right-start\"\n offset={SUBMENU_OFFSET}\n isAutoalignmentEnabled={false}\n />\n </SubmenuContextProvider>\n );\n};\n","import React from 'react';\nimport { MenuTrigger } from '../MenuTrigger/MenuTrigger';\nimport { MenuItem, MenuItemProps } from '../MenuItem/MenuItem';\nimport { useSubmenuContext } from '../SubmenuContext';\nimport { ChevronRightIcon } from '@contentful/f36-icons';\nimport type { ExpandProps } from '@contentful/f36-core';\nimport { cx } from 'emotion';\nimport { getSubmenuTriggerStyles } from './SubmenuTrigger.styles';\n\nexport type SubmenuTriggerProps = Omit<\n MenuItemProps<'button'>,\n 'isInitiallyFocused' | 'as'\n>;\n\nconst _SubmenuTrigger = (\n props: ExpandProps<SubmenuTriggerProps>,\n ref: React.Ref<HTMLButtonElement>,\n) => {\n const { className, children } = props;\n const { getSubmenuTriggerProps, isOpen } = useSubmenuContext();\n\n const styles = getSubmenuTriggerStyles();\n\n return (\n <MenuTrigger>\n <MenuItem\n {...props}\n {...getSubmenuTriggerProps(props, ref)}\n className={cx(styles.root({ isActive: isOpen }), className)}\n >\n <span className={styles.content}>{children}</span>\n <ChevronRightIcon className={styles.icon} />\n </MenuItem>\n </MenuTrigger>\n );\n};\n\nexport const SubmenuTrigger = React.forwardRef(_SubmenuTrigger);\n","import { css } from 'emotion';\nimport tokens from '@contentful/f36-tokens';\n\nexport const getSubmenuTriggerStyles = () => {\n return {\n root: ({ isActive }) =>\n css({\n display: 'flex',\n alignItems: 'center',\n paddingRight: tokens.spacingXs,\n ...(isActive\n ? {\n backgroundColor: tokens.gray100,\n }\n : {}),\n }),\n content: css({\n marginRight: tokens.spacingM,\n }),\n icon: css({\n marginLeft: 'auto',\n fill: 'currentColor',\n }),\n };\n};\n"],"names":["Menu","MenuProps","MenuList","MenuListProps","MenuItem","MenuItemProps","MenuTrigger","MenuTriggerProps","MenuDivider","MenuDividerProps","MenuSectionTitle","MenuSectionTitleProps","Submenu","SubmenuProps","SubmenuTrigger","SubmenuTriggerProps","OriginalMenu","MenuListHeader","MenuListFooter","CompoundMenu","List","ListHeader","ListFooter","Item","Trigger","Divider","SectionTitle","React","useCallback","useMemo","useRef","useEffect","mergeRefs","useId","useControllableState","Popover","PopoverProps","useArrowKeyNavigation","MenuContextProvider","MenuContextType","MENU_ITEMS_SELECTOR","Omit","isOpen","defaultIsOpen","onOpen","onClose","closeOnSelect","closeOnBlur","closeOnEsc","props","children","otherProps","handleOpen","handleClose","isControlled","triggerRef","HTMLButtonElement","menuListRef","HTMLDivElement","menuId","focusedIndex","handleArrowsKeyDown","setFocusedIndex","itemsContainerRef","itemsSelector","current","menuItems","querySelectorAll","length","setTimeout","HTMLElement","focus","preventScroll","focusMenuItem","item","itemIndex","findIndex","menuItem","closeAndFocusTrigger","handleMenuListKeyDown","event","KeyboardEvent","key","preventDefault","stopPropagation","contextValue","getTriggerProps","_props","_ref","onClick","isFullyControlled","ref","getMenuListProps","onKeyDown","onBlur","relatedTarget","Node","targetIsMenu","contains","targetIsTrigger","targetIsSubmenu","parentElement","dataset","parentMenu","getMenuItemProps","isSubmenuTrigger","Boolean","target","getAttribute","propsToPropagateToSubmenus","useState","UseArrowKeyNavigationProps","MutableRefObject","keyType","initialFocusedIndex","ARROW_KEY_TYPES","vertical","prev","next","horizontal","container","items","lastItemIndex","focusFirstItem","focusLastItem","focusNextItem","focusPrevItem","keyToFnMap","fn","ComponentPropsWithRef","Ref","Pick","MenuContext","createContext","undefined","useMenuContext","context","useContext","Error","Provider","CommonProps","PropsWithHTMLElement","ExpandProps","useSubmenuContext","getMenuListStyles","MenuListInternalProps","ReactNode","assertChild","child","type","displayName","_MenuList","testId","className","submenuContext","header","ReactElement","footer","Children","forEach","appendChild","push","styles","hasStickyHeader","hasStickyFooter","extendedOtherProps","getSubmenuListProps","forwardRef","ComponentPropsWithoutRef","SubmenuContextType","getSubmenuTriggerProps","SubmenuContext","SubmenuContextProvider","tokens","getMenuHeaderStyles","position","top","left","backgroundColor","colorWhite","borderBottom","gray300","padding","spacingXs","zIndex","getMenuFooterStyles","bottom","borderTop","overflowY","paddingTop","paddingBottom","MenuListHeaderProps","FC","MenuListFooterProps","PolymorphicComponent","PolymorphicProps","getMenuItemStyles","MENU_ITEM_DEFAULT_TAG","MenuItemInternalProps","as","isInitiallyFocused","ElementType","E","_MenuItem","id","itemTestId","itemRef","Element","root","display","width","background","border","margin","outline","fontSize","fontSizeM","lineHeight","lineHeightM","fontWeight","fontWeightNormal","textAlign","spacingM","wordBreak","whiteSpace","cursor","hyphens","minWidth","textDecoration","color","gray800","gray100","boxShadow","glowPrimary","borderRadius","borderRadiusMedium","gray200","opacity","only","cloneElement","getMenuDividerStyles","height","SectionHeading","SectionHeadingProps","getMenuSectionTitleStyles","marginTop","SUBMENU_OFFSET","isParentMenuOpen","mouseLeaveTimerRef","setIsOpen","window","clearTimeout","onMouseOver","onMouseLeave","ChevronRightIcon","getSubmenuTriggerStyles","_SubmenuTrigger","isActive","content","icon","alignItems","paddingRight","marginRight"],"version":3,"file":"module.js.map"}
@@ -1 +1 @@
1
- {"mappings":";;;;AESA,0BACE,SAAQ,IAAI,CAAC,YAAY,EAAE,WAAW,GAAG,IAAI,GAAG,aAAa,CAAC;IAC9D;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAEpB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAqB,KAAK,EAAE,SAAS,eA2MpC;AGjQD,2BAAkC,qBAAqB,WAAW,EAAE,KAAK,CAAC,CAAC;AAE3E,QAAO,MAAM,gBAAgB,MAAM,EAAE,CAAC,YAAY,mBAAmB,CAAC,CAqBrE,CAAC;ACvBF,2BAAkC,qBAAqB,WAAW,EAAE,KAAK,CAAC,CAAC;AAE3E,QAAO,MAAM,gBAAgB,MAAM,EAAE,CAAC,YAAY,mBAAmB,CAAC,CAqBrE,CAAC;ACnBF,+BAAgC,SAAQ,WAAW;IACjD,QAAQ,CAAC,EAAE,MAAM,SAAS,CAAC;CAC5B;AAMD,4BAA4B,qBAAqB,qBAAqB,EAAE,KAAK,CAAC,CAAC;AA4D/E,OAAO,MAAM,gSAAsC,CAAC;AErEpD,QAAA,MAAM,gCAAgC,CAAC;AAEvC,+BAAgC,SAAQ,WAAW;IACjD,QAAQ,CAAC,EAAE,MAAM,SAAS,CAAC;IAC3B,EAAE,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC;IAEpB;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,0BACE,CAAC,SAAS,MAAM,WAAW,GAAG,4BAA4B,IACxD,iBAAiB,qBAAqB,EAAE,CAAC,CAAC,CAAC;AAwC/C,OAAO,MAAM,UAAU,qBACrB,YAAY,qBAAqB,CAAC,EAClC,4BAA4B,CACC,CAAC;ACjEhC;IACE,QAAQ,EAAE,MAAM,SAAS,CAAC;CAC3B;AAED,OAAO,MAAM,qBAAsB,YAAY,gBAAgB,CAAC,gBAY/D,CAAC;AEZF,+BAA+B,qBAAqB,WAAW,EAAE,IAAI,CAAC,CAAC;AAEvE,OAAO,MAAM,qBAAsB,YAAY,gBAAgB,CAAC,gBAkB/D,CAAC;AEtBF,oCAAoC,mBAAmB,CAAC;AAExD,OAAO,MAAM,0BAA2B,YAAY,qBAAqB,CAAC,gBAwBzE,CAAC;ACnBF,2BAA2B,IAAI,CAC7B,SAAS,EACP,WAAW,GACX,QAAQ,GACR,WAAW,GACX,QAAQ,GACR,wBAAwB,GACxB,eAAe,CAClB,CAAC;AAEF,OAAO,MAAM,iBAAkB,YAAY,gBA+F1C,CAAC;AE9GF,kCAAkC,IAAI,CACpC,cAAc,QAAQ,CAAC,EACvB,oBAAoB,GAAG,IAAI,CAC5B,CAAC;AAyBF,OAAO,MAAM,6GAAkD,CAAC;AC1BhE,oBAAoB,aAAmB,GAAG;IACxC,IAAI,EAAE,eAAe,CAAC;IACtB,UAAU,EAAE,qBAAqB,CAAC;IAClC,UAAU,EAAE,qBAAqB,CAAC;IAClC,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,OAAO,EAAE,kBAAkB,CAAC;IAC5B,YAAY,EAAE,uBAAuB,CAAC;IACtC,SAAS,cAAc,CAAC;IACxB,gBAAgB,qBAAqB,CAAC;CACvC,CAAC;AAEF,OAAO,MAAM,kBAAmC,CAAC","sources":["packages/components/menu/src/src/useArrowKeyNavigation.ts","packages/components/menu/src/src/MenuContext.ts","packages/components/menu/src/src/Menu.tsx","packages/components/menu/src/src/SubmenuContext.ts","packages/components/menu/src/src/MenuList/MenuList.styles.ts","packages/components/menu/src/src/MenuList/MenuListHeader.tsx","packages/components/menu/src/src/MenuList/MenuListFooter.tsx","packages/components/menu/src/src/MenuList/MenuList.tsx","packages/components/menu/src/src/MenuItem/MenuItem.styles.ts","packages/components/menu/src/src/MenuItem/MenuItem.tsx","packages/components/menu/src/src/MenuTrigger/MenuTrigger.tsx","packages/components/menu/src/src/MenuDivider/MenuDivider.styles.ts","packages/components/menu/src/src/MenuDivider/MenuDivider.tsx","packages/components/menu/src/src/MenuSectionTitle/MenuSectionTitle.styles.ts","packages/components/menu/src/src/MenuSectionTitle/MenuSectionTitle.tsx","packages/components/menu/src/src/Submenu/Submenu.tsx","packages/components/menu/src/src/SubmenuTrigger/SubmenuTrigger.styles.ts","packages/components/menu/src/src/SubmenuTrigger/SubmenuTrigger.tsx","packages/components/menu/src/src/CompoundMenu.tsx","packages/components/menu/src/src/index.ts","packages/components/menu/src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"export { Menu } from './CompoundMenu';\nexport type { MenuProps } from './Menu';\nexport { MenuList } from './MenuList/MenuList';\nexport type { MenuListProps } from './MenuList/MenuList';\nexport { MenuItem } from './MenuItem/MenuItem';\nexport type { MenuItemProps } from './MenuItem/MenuItem';\nexport { MenuTrigger } from './MenuTrigger/MenuTrigger';\nexport type { MenuTriggerProps } from './MenuTrigger/MenuTrigger';\nexport { MenuDivider } from './MenuDivider/MenuDivider';\nexport type { MenuDividerProps } from './MenuDivider/MenuDivider';\nexport { MenuSectionTitle } from './MenuSectionTitle/MenuSectionTitle';\nexport type { MenuSectionTitleProps } from './MenuSectionTitle/MenuSectionTitle';\nexport { Submenu } from './Submenu/Submenu';\nexport type { SubmenuProps } from './Submenu/Submenu';\nexport { SubmenuTrigger } from './SubmenuTrigger/SubmenuTrigger';\nexport type { SubmenuTriggerProps } from './SubmenuTrigger/SubmenuTrigger';\n"],"names":[],"version":3,"file":"types.d.ts.map"}
1
+ {"mappings":";;;;AESA,0BACE,SAAQ,IAAI,CAAC,YAAY,EAAE,WAAW,GAAG,IAAI,GAAG,aAAa,CAAC;IAC9D;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IAEpB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IAErB;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;;;;;;OAOG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAqB,KAAK,EAAE,SAAS,eAkMpC;AGxPD,2BAAkC,qBAAqB,WAAW,EAAE,KAAK,CAAC,CAAC;AAE3E,QAAO,MAAM,gBAAgB,MAAM,EAAE,CAAC,YAAY,mBAAmB,CAAC,CAqBrE,CAAC;ACvBF,2BAAkC,qBAAqB,WAAW,EAAE,KAAK,CAAC,CAAC;AAE3E,QAAO,MAAM,gBAAgB,MAAM,EAAE,CAAC,YAAY,mBAAmB,CAAC,CAqBrE,CAAC;ACnBF,+BAAgC,SAAQ,WAAW;IACjD,QAAQ,CAAC,EAAE,MAAM,SAAS,CAAC;CAC5B;AAMD,4BAA4B,qBAAqB,qBAAqB,EAAE,KAAK,CAAC,CAAC;AA4D/E,OAAO,MAAM,gSAAsC,CAAC;AEpEpD,QAAA,MAAM,gCAAgC,CAAC;AAEvC,+BAAgC,SAAQ,WAAW;IACjD,QAAQ,CAAC,EAAE,MAAM,SAAS,CAAC;IAC3B,EAAE,CAAC,EAAE,GAAG,GAAG,QAAQ,CAAC;IAEpB;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,0BACE,CAAC,SAAS,MAAM,WAAW,GAAG,4BAA4B,IACxD,iBAAiB,qBAAqB,EAAE,CAAC,CAAC,CAAC;AAwC/C,OAAO,MAAM,UAAU,qBACrB,YAAY,qBAAqB,CAAC,EAClC,4BAA4B,CACC,CAAC;AClEhC;IACE,QAAQ,EAAE,MAAM,SAAS,CAAC;CAC3B;AAED,OAAO,MAAM,qBAAsB,YAAY,gBAAgB,CAAC,gBAY/D,CAAC;AEZF,+BAA+B,qBAAqB,WAAW,EAAE,IAAI,CAAC,CAAC;AAEvE,OAAO,MAAM,qBAAsB,YAAY,gBAAgB,CAAC,gBAkB/D,CAAC;AEnBF,oCAAoC,mBAAmB,CAAC;AAExD,OAAO,MAAM,0BAA2B,YAAY,qBAAqB,CAAC,gBAwBzE,CAAC;ACtBF,2BAA2B,IAAI,CAC7B,SAAS,EACP,WAAW,GACX,QAAQ,GACR,WAAW,GACX,QAAQ,GACR,wBAAwB,GACxB,eAAe,CAClB,CAAC;AAEF,OAAO,MAAM,iBAAkB,YAAY,gBA+F1C,CAAC;AE9GF,kCAAkC,IAAI,CACpC,cAAc,QAAQ,CAAC,EACvB,oBAAoB,GAAG,IAAI,CAC5B,CAAC;AAyBF,OAAO,MAAM,6GAAkD,CAAC;AC1BhE,oBAAoB,aAAmB,GAAG;IACxC,IAAI,EAAE,eAAe,CAAC;IACtB,UAAU,EAAE,qBAAqB,CAAC;IAClC,UAAU,EAAE,qBAAqB,CAAC;IAClC,IAAI,EAAE,eAAe,CAAC;IACtB,OAAO,EAAE,kBAAkB,CAAC;IAC5B,OAAO,EAAE,kBAAkB,CAAC;IAC5B,YAAY,EAAE,uBAAuB,CAAC;IACtC,SAAS,cAAc,CAAC;IACxB,gBAAgB,qBAAqB,CAAC;CACvC,CAAC;AAEF,OAAO,MAAM,kBAAmC,CAAC","sources":["packages/components/menu/src/src/useArrowKeyNavigation.ts","packages/components/menu/src/src/MenuContext.ts","packages/components/menu/src/src/Menu.tsx","packages/components/menu/src/src/SubmenuContext.ts","packages/components/menu/src/src/MenuList/MenuList.styles.ts","packages/components/menu/src/src/MenuList/MenuListHeader.tsx","packages/components/menu/src/src/MenuList/MenuListFooter.tsx","packages/components/menu/src/src/MenuList/MenuList.tsx","packages/components/menu/src/src/MenuItem/MenuItem.styles.ts","packages/components/menu/src/src/MenuItem/MenuItem.tsx","packages/components/menu/src/src/MenuTrigger/MenuTrigger.tsx","packages/components/menu/src/src/MenuDivider/MenuDivider.styles.ts","packages/components/menu/src/src/MenuDivider/MenuDivider.tsx","packages/components/menu/src/src/MenuSectionTitle/MenuSectionTitle.styles.ts","packages/components/menu/src/src/MenuSectionTitle/MenuSectionTitle.tsx","packages/components/menu/src/src/Submenu/Submenu.tsx","packages/components/menu/src/src/SubmenuTrigger/SubmenuTrigger.styles.ts","packages/components/menu/src/src/SubmenuTrigger/SubmenuTrigger.tsx","packages/components/menu/src/src/CompoundMenu.tsx","packages/components/menu/src/src/index.ts","packages/components/menu/src/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"export { Menu } from './CompoundMenu';\nexport type { MenuProps } from './Menu';\nexport { MenuList } from './MenuList/MenuList';\nexport type { MenuListProps } from './MenuList/MenuList';\nexport { MenuItem } from './MenuItem/MenuItem';\nexport type { MenuItemProps } from './MenuItem/MenuItem';\nexport { MenuTrigger } from './MenuTrigger/MenuTrigger';\nexport type { MenuTriggerProps } from './MenuTrigger/MenuTrigger';\nexport { MenuDivider } from './MenuDivider/MenuDivider';\nexport type { MenuDividerProps } from './MenuDivider/MenuDivider';\nexport { MenuSectionTitle } from './MenuSectionTitle/MenuSectionTitle';\nexport type { MenuSectionTitleProps } from './MenuSectionTitle/MenuSectionTitle';\nexport { Submenu } from './Submenu/Submenu';\nexport type { SubmenuProps } from './Submenu/Submenu';\nexport { SubmenuTrigger } from './SubmenuTrigger/SubmenuTrigger';\nexport type { SubmenuTriggerProps } from './SubmenuTrigger/SubmenuTrigger';\n"],"names":[],"version":3,"file":"types.d.ts.map"}
package/package.json CHANGED
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "@contentful/f36-menu",
3
- "version": "4.15.0",
3
+ "version": "4.17.0",
4
4
  "description": "Forma 36: Menu component",
5
5
  "scripts": {
6
6
  "build": "parcel build"
7
7
  },
8
8
  "dependencies": {
9
9
  "@babel/runtime": "^7.6.2",
10
- "@contentful/f36-core": "^4.15.0",
11
- "@contentful/f36-icons": "^4.15.0",
12
- "@contentful/f36-popover": "^4.15.0",
10
+ "@contentful/f36-core": "^4.17.0",
11
+ "@contentful/f36-icons": "^4.17.0",
12
+ "@contentful/f36-popover": "^4.17.0",
13
13
  "@contentful/f36-tokens": "^4.0.1",
14
- "@contentful/f36-typography": "^4.15.0",
15
- "@contentful/f36-utils": "^4.15.0",
14
+ "@contentful/f36-typography": "^4.17.0",
15
+ "@contentful/f36-utils": "^4.17.0",
16
16
  "emotion": "^10.0.17"
17
17
  },
18
18
  "peerDependencies": {