@mantine/core
Version:
React components library focused on usability, accessibility and developer experience
1 lines • 2.72 kB
Source Map (JSON)
{"version":3,"file":"MenuSubDropdown.mjs","names":["classes"],"sources":["../../../../src/components/Menu/MenuSubDropdown/MenuSubDropdown.tsx"],"sourcesContent":["import { use, useRef } from 'react';\nimport { useMergedRef } from '@mantine/hooks';\nimport {\n BoxProps,\n CompoundStylesApiProps,\n createEventHandler,\n ElementProps,\n factory,\n Factory,\n useProps,\n} from '../../../core';\nimport { Popover } from '../../Popover';\nimport { useMenuContext } from '../Menu.context';\nimport { SubMenuContext } from '../MenuSub/MenuSub.context';\nimport classes from '../Menu.module.css';\n\nexport type MenuSubDropdownStylesNames = 'dropdown';\n\nexport interface MenuSubDropdownProps\n extends BoxProps, CompoundStylesApiProps<MenuSubDropdownFactory>, ElementProps<'div'> {}\n\nexport type MenuSubDropdownFactory = Factory<{\n props: MenuSubDropdownProps;\n ref: HTMLDivElement;\n stylesNames: MenuSubDropdownStylesNames;\n compound: true;\n}>;\n\nexport const MenuSubDropdown = factory<MenuSubDropdownFactory>((props) => {\n const {\n classNames,\n className,\n style,\n styles,\n vars,\n onMouseEnter,\n onMouseLeave,\n onKeyDown,\n children,\n ref,\n ...others\n } = useProps('MenuSubDropdown', null, props);\n\n const wrapperRef = useRef<HTMLDivElement>(null);\n const ctx = useMenuContext();\n const subCtx = use(SubMenuContext);\n\n const handleMouseEnter = createEventHandler<any>(onMouseEnter, subCtx?.open);\n\n const handleMouseLeave = createEventHandler<any>(onMouseLeave, subCtx?.close);\n\n return (\n <Popover.Dropdown\n {...others}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n role=\"menu\"\n aria-orientation=\"vertical\"\n ref={useMergedRef(ref, wrapperRef)}\n {...ctx.getStyles('dropdown', {\n className,\n style,\n styles,\n classNames,\n withStaticClass: false,\n })}\n tabIndex={-1}\n data-menu-dropdown\n >\n {children}\n </Popover.Dropdown>\n );\n});\n\nMenuSubDropdown.classes = classes;\nMenuSubDropdown.displayName = '@mantine/core/MenuSubDropdown';\n"],"mappings":";;;;;;;;;;;;AA4BA,MAAa,kBAAkB,SAAiC,UAAU;CACxE,MAAM,EACJ,YACA,WACA,OACA,QACA,MACA,cACA,cACA,WACA,UACA,KACA,GAAG,WACD,SAAS,mBAAmB,MAAM,MAAM;CAE5C,MAAM,aAAa,OAAuB,KAAK;CAC/C,MAAM,MAAM,gBAAgB;CAC5B,MAAM,SAAS,IAAI,eAAe;CAElC,MAAM,mBAAmB,mBAAwB,cAAc,QAAQ,KAAK;CAE5E,MAAM,mBAAmB,mBAAwB,cAAc,QAAQ,MAAM;AAE7E,QACE,oBAAC,QAAQ,UAAT;EACE,GAAI;EACJ,cAAc;EACd,cAAc;EACd,MAAK;EACL,oBAAiB;EACjB,KAAK,aAAa,KAAK,WAAW;EAClC,GAAI,IAAI,UAAU,YAAY;GAC5B;GACA;GACA;GACA;GACA,iBAAiB;GAClB,CAAC;EACF,UAAU;EACV,sBAAA;EAEC;EACgB,CAAA;EAErB;AAEF,gBAAgB,UAAUA;AAC1B,gBAAgB,cAAc"}