{"version":3,"sources":["../src/popover.tsx"],"sourcesContent":["import type {\n  CSSUIObject,\n  FC,\n  HTMLUIPropsWithRef,\n  PropGetter,\n  ThemeProps,\n} from \"@yamada-ui/core\"\nimport type { MotionProps, MotionTransitionProps } from \"@yamada-ui/motion\"\nimport type { LazyMode } from \"@yamada-ui/use-disclosure\"\nimport type { UsePopperProps } from \"@yamada-ui/use-popper\"\nimport type {\n  ComponentProps,\n  PropsWithChildren,\n  RefAttributes,\n  RefObject,\n} from \"react\"\nimport { omitThemeProps, useComponentMultiStyle } from \"@yamada-ui/core\"\nimport { useAnimationObserver } from \"@yamada-ui/use-animation\"\nimport { useDisclosure, useLazyDisclosure } from \"@yamada-ui/use-disclosure\"\nimport {\n  useFocusOnHide,\n  useFocusOnPointerDown,\n  useFocusOnShow,\n} from \"@yamada-ui/use-focus\"\nimport { popperProperties, usePopper } from \"@yamada-ui/use-popper\"\nimport {\n  createContext,\n  getEventRelatedTarget,\n  handlerAll,\n  isContains,\n  mergeRefs,\n  runIfFunc,\n} from \"@yamada-ui/utils\"\nimport { useCallback, useEffect, useId, useRef } from \"react\"\n\nexport type PopoverProperty = (typeof popoverProperties)[number]\n\nexport const popoverProperties = [\n  ...popperProperties,\n  \"open\",\n  \"isOpen\",\n  \"defaultOpen\",\n  \"defaultIsOpen\",\n  \"onOpen\",\n  \"onClose\",\n  \"initialFocusRef\",\n  \"restoreFocus\",\n  \"autoFocus\",\n  \"closeOnBlur\",\n  \"closeOnEsc\",\n  \"closeOnButton\",\n  \"trigger\",\n  \"openDelay\",\n  \"closeDelay\",\n  \"lazy\",\n  \"isLazy\",\n  \"lazyBehavior\",\n  \"animation\",\n  \"duration\",\n] as const\n\nexport interface ComboBoxProps\n  extends Omit<\n      PopoverOptions,\n      | \"autoFocus\"\n      | \"closeOnButton\"\n      | \"initialFocusRef\"\n      | \"relatedRef\"\n      | \"restoreFocus\"\n      | \"trigger\"\n    >,\n    Omit<UsePopperProps, \"enabled\"> {}\n\ninterface PopoverOptions {\n  /**\n   * The animation of the popover.\n   *\n   * @default 'scale'\n   */\n  animation?: \"bottom\" | \"left\" | \"none\" | \"right\" | \"scale\" | \"top\"\n  /**\n   * If `true`, focus will be transferred to the first interactive element when the popover opens.\n   *\n   * @default true\n   */\n  autoFocus?: boolean\n  /**\n   * The number of delay time to close.\n   *\n   * @default 200\n   */\n  closeDelay?: number\n  /**\n   * If `true`, the popover will close when you blur out it by clicking outside or tabbing out.\n   *\n   * @default true\n   */\n  closeOnBlur?: boolean\n  /**\n   * If `true`, display the popover close button.\n   *\n   * @default true\n   */\n  closeOnButton?: boolean\n  /**\n   * If `true`, the popover will close when you hit the `Esc` key.\n   *\n   * @default true\n   */\n  closeOnEsc?: boolean\n  /**\n   * If `true`, the popover will be initially opened.\n   *\n   * @deprecated Use `defaultOpen` instead\n   */\n  defaultIsOpen?: boolean\n  /**\n   * If `true`, the popover will be initially opened.\n   */\n  defaultOpen?: boolean\n  /**\n   * The animation duration.\n   */\n  duration?: MotionTransitionProps[\"duration\"]\n  /**\n   * The `ref` of the element that should receive focus when the popover opens.\n   */\n  initialFocusRef?: RefObject<{ focus(): void }>\n  /**\n   * If `true`, the PopoverContent rendering will be deferred until the popover is open.\n   *\n   * @default false\n   *\n   * @deprecated Use `lazy` instead\n   */\n  isLazy?: boolean\n  /**\n   * If `true`, the popover will be opened.\n   *\n   * @deprecated Use `open` instead\n   */\n  isOpen?: boolean\n  /**\n   * If `true`, the PopoverContent rendering will be deferred until the popover is open.\n   *\n   * @default false\n   */\n  lazy?: boolean\n  /**\n   * The lazy behavior of popover's content when not visible. Only works when `lazy={true}`\n   *\n   * - `unmount`: The popover's content is always unmounted when not open.\n   * - `keepMounted`: The popover's content initially unmounted, but stays mounted when popover is open.\n   *\n   * @default 'unmount'\n   */\n  lazyBehavior?: LazyMode\n  /**\n   * If `true`, the popover will be opened.\n   */\n  open?: boolean\n  /**\n   * The number of delay time to open.\n   *\n   * @default 200\n   */\n  openDelay?: number\n  /**\n   * The `ref` of the element related to the popover.\n   * This is used during the `onBlur` event.\n   */\n  relatedRef?: RefObject<HTMLElement>\n  /**\n   * If `true`, focus will be returned to the element that triggers the popover when it closes.\n   *\n   * @default true\n   */\n  restoreFocus?: boolean\n  /**\n   * The interaction that triggers the popover.\n   *\n   * - `hover`: means the popover will open when you hover with mouse or focus with keyboard on the popover trigger.\n   * - `click`: means the popover will open on click or press `Enter` to `Space` on keyboard.\n   *\n   * @default 'click'\n   */\n  trigger?: \"click\" | \"contextmenu\" | \"hover\" | \"never\"\n  /**\n   * Callback fired when the popover closes.\n   */\n  onClose?: () => void\n  /**\n   * Callback fired when the popover opens.\n   */\n  onOpen?: () => void\n}\n\nexport interface PopoverProps\n  extends ThemeProps<\"Popover\">,\n    Omit<UsePopperProps, \"enabled\">,\n    PropsWithChildren<PopoverOptions> {}\n\ninterface PopoverContext\n  extends Pick<\n    PopoverOptions,\n    \"animation\" | \"closeOnButton\" | \"duration\" | \"isOpen\" | \"onClose\" | \"open\"\n  > {\n  id: string\n  bodyRef: RefObject<HTMLElement>\n  forceUpdate: () => undefined | void\n  headerRef: RefObject<HTMLElement>\n  shouldRenderContent: boolean\n  styles: { [key: string]: CSSUIObject | undefined }\n  getAnchorProps: PropGetter\n  getPopoverProps: PropGetter<MotionProps<\"section\">, MotionProps<\"section\">>\n  getPopperProps: PropGetter<ComponentProps<\"div\">>\n  getTriggerProps: PropGetter\n  onAnimationComplete: () => void\n}\n\nconst [PopoverProvider, usePopover] = createContext<PopoverContext>({\n  name: \"PopoverContext\",\n  errorMessage: `usePopoverContext returned is 'undefined'. Seems you forgot to wrap the components in \"<Popover />\"`,\n})\n\nexport { usePopover }\n\n/**\n * `Popover` is a component that floats around an element to display information.\n *\n * @see Docs https://yamada-ui.com/components/overlay/popover\n */\nexport const Popover: FC<PopoverProps> = (props) => {\n  const [styles, mergedProps] = useComponentMultiStyle(\"Popover\", props)\n  const {\n    animation = \"scale\",\n    autoFocus = true,\n    children,\n    closeDelay = 200,\n    closeOnBlur = true,\n    closeOnButton = true,\n    closeOnEsc = true,\n    duration,\n    initialFocusRef,\n    isLazy,\n    lazy = isLazy,\n    lazyBehavior = \"unmount\",\n    openDelay = 200,\n    relatedRef,\n    restoreFocus = true,\n    trigger = \"click\",\n    ...rest\n  } = omitThemeProps(mergedProps)\n  const id = useId()\n  const { open, onClose, onOpen, onToggle } = useDisclosure(mergedProps)\n  const anchorRef = useRef<HTMLElement>(null)\n  const triggerRef = useRef<HTMLElement>(null)\n  const headerRef = useRef<HTMLElement>(null)\n  const bodyRef = useRef<HTMLElement>(null)\n  const popoverRef = useRef<HTMLElement>(null)\n  const { present, onAnimationComplete } = useAnimationObserver({\n    ref: popoverRef,\n    open,\n  })\n  const openTimeout = useRef<number | undefined>(undefined)\n  const closeTimeout = useRef<number | undefined>(undefined)\n  const hoveringRef = useRef(false)\n  const hasBeenOpened = useRef(false)\n  const { forceUpdate, referenceRef, transformOrigin, getPopperProps } =\n    usePopper({\n      ...rest,\n      enabled: open,\n    })\n\n  if (open) hasBeenOpened.current = true\n\n  useEffect(() => {\n    return () => {\n      if (openTimeout.current) clearTimeout(openTimeout.current)\n\n      if (closeTimeout.current) clearTimeout(closeTimeout.current)\n    }\n  }, [])\n\n  useFocusOnPointerDown({\n    ref: triggerRef,\n    enabled: open,\n  })\n\n  useFocusOnHide(popoverRef, {\n    focusRef: triggerRef,\n    shouldFocus:\n      restoreFocus && (trigger === \"click\" || trigger === \"contextmenu\"),\n    visible: open,\n  })\n\n  useFocusOnShow(popoverRef, {\n    focusRef: initialFocusRef,\n    shouldFocus:\n      autoFocus && (trigger === \"click\" || trigger === \"contextmenu\"),\n    visible: open,\n  })\n\n  const shouldRenderContent = useLazyDisclosure({\n    enabled: lazy,\n    isSelected: present,\n    mode: lazyBehavior,\n    wasSelected: hasBeenOpened.current,\n  })\n\n  const getPopoverProps: PropGetter<\n    MotionProps<\"section\">,\n    MotionProps<\"section\">\n  > = useCallback(\n    (props = {}, ref = null) => {\n      const popoverProps: MotionProps & RefAttributes<any> = {\n        id,\n        \"aria-describedby\": bodyRef.current?.id,\n        \"aria-hidden\": !open,\n        \"aria-labelledby\": headerRef.current?.id,\n        role: \"dialog\",\n        ...props,\n        ref: mergeRefs(popoverRef, ref),\n        style: {\n          ...props.style,\n          transformOrigin,\n        },\n        tabIndex: -1,\n        onBlur: handlerAll(props.onBlur, (ev) => {\n          const relatedTarget = getEventRelatedTarget(ev)\n          const targetIsPopover = isContains(popoverRef.current, relatedTarget)\n          const targetIsTrigger = isContains(triggerRef.current, relatedTarget)\n          const targetIsRelated = relatedRef?.current\n            ? isContains(relatedRef.current, relatedTarget)\n            : false\n\n          const validBlur =\n            !targetIsPopover && !targetIsTrigger && !targetIsRelated\n\n          if (open && closeOnBlur && validBlur) onClose()\n        }),\n        onKeyDown: handlerAll(props.onKeyDown, (ev) => {\n          if (closeOnEsc && ev.key === \"Escape\") onClose()\n        }),\n      }\n\n      if (trigger === \"hover\") {\n        popoverProps.onMouseEnter = handlerAll(props.onMouseEnter, () => {\n          hoveringRef.current = true\n        })\n\n        popoverProps.onMouseLeave = handlerAll(props.onMouseLeave, (ev) => {\n          if (ev.nativeEvent.relatedTarget === null) return\n\n          hoveringRef.current = false\n\n          if (closeOnBlur) setTimeout(onClose, closeDelay)\n        })\n      }\n\n      return popoverProps\n    },\n    [\n      closeDelay,\n      closeOnBlur,\n      closeOnEsc,\n      open,\n      onClose,\n      transformOrigin,\n      trigger,\n      relatedRef,\n      id,\n    ],\n  )\n\n  const maybeReferenceRef = useCallback(\n    (node: Element) => {\n      if (anchorRef.current == null) referenceRef(node)\n    },\n    [referenceRef],\n  )\n\n  const getTriggerProps: PropGetter = useCallback(\n    (props = {}, ref = null) => {\n      const triggerProps: HTMLUIPropsWithRef = {\n        \"aria-controls\": open ? id : undefined,\n        \"aria-expanded\": open,\n        role: \"button\",\n        ...props,\n        ref: mergeRefs(triggerRef, ref, maybeReferenceRef),\n      }\n\n      if (trigger === \"click\") {\n        triggerProps.onClick = handlerAll(props.onClick, onToggle)\n        triggerProps.onBlur = handlerAll(props.onBlur, (ev) => {\n          const relatedTarget = getEventRelatedTarget(ev)\n          const validBlur = !isContains(popoverRef.current, relatedTarget)\n\n          if (open && closeOnBlur && validBlur) onClose()\n        })\n      }\n\n      if (trigger === \"contextmenu\") {\n        triggerProps.onContextMenu = handlerAll(props.onContextMenu, (ev) => {\n          ev.preventDefault()\n          onOpen()\n        })\n        triggerProps.onBlur = handlerAll(props.onBlur, (ev) => {\n          const relatedTarget = getEventRelatedTarget(ev)\n          const validBlur = !isContains(popoverRef.current, relatedTarget)\n\n          if (open && closeOnBlur && validBlur) onClose()\n        })\n      }\n\n      if (trigger === \"hover\") {\n        triggerProps.onFocus = handlerAll(props.onFocus, () => {\n          if (openTimeout.current === undefined) onOpen()\n        })\n\n        triggerProps.onBlur = handlerAll(props.onBlur, (ev) => {\n          const relatedTarget = getEventRelatedTarget(ev)\n          const validBlur = !isContains(popoverRef.current, relatedTarget)\n\n          if (open && closeOnBlur && validBlur) onClose()\n        })\n\n        triggerProps.onKeyDown = handlerAll(props.onKeyDown, (ev) => {\n          if (ev.key === \"Escape\") onClose()\n        })\n\n        triggerProps.onMouseEnter = handlerAll(props.onMouseEnter, () => {\n          hoveringRef.current = true\n          openTimeout.current = window.setTimeout(onOpen, openDelay)\n        })\n\n        triggerProps.onMouseLeave = handlerAll(props.onMouseLeave, () => {\n          hoveringRef.current = false\n\n          if (openTimeout.current) {\n            clearTimeout(openTimeout.current)\n            openTimeout.current = undefined\n          }\n\n          closeTimeout.current = window.setTimeout(() => {\n            if (!hoveringRef.current) onClose()\n          }, closeDelay)\n        })\n      }\n\n      return triggerProps\n    },\n    [\n      closeDelay,\n      closeOnBlur,\n      open,\n      maybeReferenceRef,\n      onClose,\n      onOpen,\n      onToggle,\n      openDelay,\n      trigger,\n      id,\n    ],\n  )\n\n  const getAnchorProps: PropGetter = useCallback(\n    (props = {}, ref = null) => {\n      return {\n        ...props,\n        ref: mergeRefs(ref, anchorRef, referenceRef),\n      }\n    },\n    [anchorRef, referenceRef],\n  )\n\n  return (\n    <PopoverProvider\n      value={{\n        id,\n        animation,\n        bodyRef,\n        closeOnButton,\n        duration,\n        forceUpdate,\n        headerRef,\n        open,\n        shouldRenderContent,\n        styles,\n        getAnchorProps,\n        getPopoverProps,\n        getPopperProps,\n        getTriggerProps,\n        onAnimationComplete,\n        onClose,\n      }}\n    >\n      {runIfFunc(children, {\n        forceUpdate,\n        open,\n        onClose,\n      })}\n    </PopoverProvider>\n  )\n}\n\nPopover.displayName = \"Popover\"\nPopover.__ui__ = \"Popover\"\n"],"mappings":"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","names":["props"]}