@mantine/core
Version:
React components library focused on usability, accessibility and developer experience
1 lines • 4.02 kB
Source Map (JSON)
{"version":3,"file":"HoverCard.cjs","names":["useProps","useHoverCard","HoverCardContext","Popover","HoverCardTarget","HoverCardDropdown","HoverCardGroup"],"sources":["../../../src/components/HoverCard/HoverCard.tsx"],"sourcesContent":["import { ExtendComponent, Factory, useProps } from '../../core';\nimport { Popover, PopoverProps, PopoverStylesNames } from '../Popover';\nimport { PopoverCssVariables } from '../Popover/Popover';\nimport { HoverCardContext, HoverCardContextValue } from './HoverCard.context';\nimport { HoverCardDropdown, HoverCardDropdownProps } from './HoverCardDropdown/HoverCardDropdown';\nimport {\n HoverCardGroup,\n HoverCardGroupContextValue,\n HoverCardGroupProps,\n} from './HoverCardGroup/HoverCardGroup';\nimport { HoverCardTarget, HoverCardTargetProps } from './HoverCardTarget/HoverCardTarget';\nimport { useHoverCard } from './use-hover-card';\n\nexport interface HoverCardProps extends Omit<PopoverProps, 'opened' | 'onChange'> {\n /** Initial opened state */\n initiallyOpened?: boolean;\n\n /** Called when the dropdown is opened */\n onOpen?: () => void;\n\n /** Called when the dropdown is closed */\n onClose?: () => void;\n\n /**\n * Delay in ms before the dropdown opens after mouse enters the target.\n * Overridden by HoverCard.Group delay if used within a group.\n * @default 0\n */\n openDelay?: number;\n\n /**\n * Delay in ms before the dropdown closes after mouse leaves the target or dropdown.\n * Overridden by HoverCard.Group delay if used within a group.\n * @default 150\n */\n closeDelay?: number;\n}\n\nexport type HoverCardFactory = Factory<{\n props: HoverCardProps;\n stylesNames: PopoverStylesNames;\n vars: PopoverCssVariables;\n}>;\n\nconst defaultProps = {\n openDelay: 0,\n closeDelay: 150,\n initiallyOpened: false,\n} satisfies Partial<HoverCardProps>;\n\nexport function HoverCard(props: HoverCardProps) {\n const { children, onOpen, onClose, openDelay, closeDelay, initiallyOpened, ...others } = useProps(\n 'HoverCard',\n defaultProps,\n props\n );\n\n const hoverCard = useHoverCard({\n openDelay,\n closeDelay,\n defaultOpened: initiallyOpened,\n onOpen,\n onClose,\n });\n\n return (\n <HoverCardContext\n value={{\n openDropdown: hoverCard.openDropdown,\n closeDropdown: hoverCard.closeDropdown,\n getReferenceProps: hoverCard.getReferenceProps,\n getFloatingProps: hoverCard.getFloatingProps,\n reference: hoverCard.reference,\n floating: hoverCard.floating,\n }}\n >\n <Popover {...others} opened={hoverCard.opened} __staticSelector=\"HoverCard\">\n {children}\n </Popover>\n </HoverCardContext>\n );\n}\n\nHoverCard.displayName = '@mantine/core/HoverCard';\nHoverCard.Target = HoverCardTarget;\nHoverCard.Dropdown = HoverCardDropdown;\nHoverCard.Group = HoverCardGroup;\nHoverCard.extend = (input: ExtendComponent<HoverCardFactory>) => input;\n\nexport namespace HoverCard {\n export type Props = HoverCardProps;\n export type DropdownProps = HoverCardDropdownProps;\n export type TargetProps = HoverCardTargetProps;\n export type GroupProps = HoverCardGroupProps;\n export type ContextValue = HoverCardContextValue;\n\n export namespace Group {\n export type Props = HoverCardGroupProps;\n export type ContextValue = HoverCardGroupContextValue;\n }\n}\n"],"mappings":";;;;;;;;;;;AA4CA,MAAM,eAAe;CACnB,WAAW;CACX,YAAY;CACZ,iBAAiB;CAClB;AAED,SAAgB,UAAU,OAAuB;CAC/C,MAAM,EAAE,UAAU,QAAQ,SAAS,WAAW,YAAY,iBAAiB,GAAG,WAAWA,kBAAAA,SACvF,aACA,cACA,MACD;CAED,MAAM,YAAYC,uBAAAA,aAAa;EAC7B;EACA;EACA,eAAe;EACf;EACA;EACD,CAAC;AAEF,QACE,iBAAA,GAAA,kBAAA,KAACC,0BAAAA,kBAAD;EACE,OAAO;GACL,cAAc,UAAU;GACxB,eAAe,UAAU;GACzB,mBAAmB,UAAU;GAC7B,kBAAkB,UAAU;GAC5B,WAAW,UAAU;GACrB,UAAU,UAAU;GACrB;YAED,iBAAA,GAAA,kBAAA,KAACC,gBAAAA,SAAD;GAAS,GAAI;GAAQ,QAAQ,UAAU;GAAQ,kBAAiB;GAC7D;GACO,CAAA;EACO,CAAA;;AAIvB,UAAU,cAAc;AACxB,UAAU,SAASC,wBAAAA;AACnB,UAAU,WAAWC,0BAAAA;AACrB,UAAU,QAAQC,uBAAAA;AAClB,UAAU,UAAU,UAA6C"}