{"version":3,"file":"popover.mjs","sources":["../src/popover/PopoverAnchor.ts","../src/popover/PopoverAnchor.vue","../src/popover/PopoverRoot.ts","../src/popover/PopoverClose.ts","../src/popover/PopoverClose.vue","../src/popover/PopoverContent.ts","../src/popover/PopoverContentImpl.ts","../src/popover/PopoverContentImpl.vue","../src/popover/PopoverContent.vue","../src/popover/PopoverRoot.vue","../src/popover/PopoverTrigger.ts","../src/popover/PopoverTrigger.vue"],"sourcesContent":["import type { MutableRefObject } from '../hooks/index.ts'\nimport { type Measurable, type PopperAnchorProps, usePopperContext } from '../popper/index.ts'\nimport { mergePrimitiveAttrs, type RadixPrimitiveGetAttrs, type RadixPrimitiveReturns } from '../shared/index.ts'\n\nexport interface PopoverAnchorProps extends PopperAnchorProps {\n\n}\n\nexport interface UsePopoverAnchorProps {\n  virtualRef?: MutableRefObject<Measurable | undefined>\n}\n\nexport function usePopoverAnchor(props: UsePopoverAnchorProps = {}): RadixPrimitiveReturns<{\n  isShow: boolean\n  attrs: RadixPrimitiveGetAttrs\n}> {\n  const popperContext = usePopperContext('PopperAnchor')\n\n  if (props.virtualRef) {\n    popperContext.onAnchorChange(props.virtualRef.value)\n  }\n\n  function setElRef(v: HTMLElement | undefined) {\n    popperContext.onPostionAnchorChange(v)\n  }\n\n  return {\n    isShow: !!props.virtualRef,\n    attrs(extraAttrs) {\n      const attrs = {\n        elRef: setElRef,\n      }\n\n      if (extraAttrs && extraAttrs.length > 0) {\n        mergePrimitiveAttrs(attrs, extraAttrs)\n      }\n\n      return attrs\n    },\n  }\n}\n","<script setup lang=\"ts\">\nimport { Primitive } from '../primitive/index.ts'\nimport { convertPropsToHookProps, normalizeAttrs } from '../shared/index.ts'\nimport { type PopoverAnchorProps, usePopoverAnchor } from './PopoverAnchor.ts'\n\ndefineOptions({\n  name: 'PopoverAnchor',\n  inheritAttrs: false,\n})\n\nconst props = defineProps<PopoverAnchorProps>()\n\nconst popoverAnchor = usePopoverAnchor(convertPropsToHookProps(props))\n</script>\n\n<template>\n  <Primitive v-if=\"!virtualRef\" v-bind=\"normalizeAttrs(popoverAnchor.attrs([$attrs]))\">\n    <slot />\n  </Primitive>\n</template>\n","import type { Ref } from 'vue'\nimport type { EmitsToHookProps, PrimitiveDefaultProps } from '../shared/index.ts'\nimport { createContext, type MutableRefObject, useControllableStateV2, useId, useRef } from '../hooks/index.ts'\nimport { usePooperRoot } from '../popper/index.ts'\n\nexport interface PopoverRootProps {\n  open?: boolean\n  defaultOpen?: boolean\n  modal?: boolean\n}\n\nexport const DEFAULT_POPOVER_ROOT_PROPS = {\n  open: undefined,\n  defaultOpen: undefined,\n  modal: undefined,\n} satisfies PrimitiveDefaultProps<PopoverRootProps>\n\nexport type PopoverRootEmits = {\n  /**\n   * Event handler called when the open state of the popover changes.\n   */\n  'update:open': [value: boolean]\n}\n\nexport interface PopoverContext {\n  triggerRef: MutableRefObject<HTMLElement | undefined>\n  contentId: string\n  open: Ref<boolean>\n  onOpenChange: (open: boolean) => void\n  onOpenToggle: () => void\n  modal: boolean\n}\n\nexport const [providePopoverContext, usePopoverContext] = createContext<PopoverContext>('Poppover')\n\nexport interface UsePopoverRootProps extends EmitsToHookProps<PopoverRootEmits> {\n  triggerRef?: MutableRefObject<HTMLElement | undefined>\n  open?: () => boolean | undefined\n  defaultOpen?: boolean\n  modal?: boolean\n}\n\nexport function usePopoverRoot(props: UsePopoverRootProps = {}) {\n  const {\n    defaultOpen = false,\n    modal = false,\n  } = props\n  const triggerRef = props.triggerRef ?? useRef<HTMLElement>()\n\n  const open = useControllableStateV2(props.open, props.onUpdateOpen, defaultOpen)\n\n  providePopoverContext({\n    triggerRef,\n    contentId: useId(),\n    open,\n    onOpenChange(value) {\n      open.value = value\n    },\n    onOpenToggle() {\n      open.value = !open.value\n    },\n    modal,\n  })\n\n  usePooperRoot()\n}\n","import type { PrimitiveProps } from '../primitive/index.ts'\nimport type { PrimitiveDefaultProps, RadixPrimitiveReturns } from '../shared/index.ts'\nimport { mergePrimitiveAttrs } from '../shared/index.ts'\nimport { usePopoverContext } from './PopoverRoot.ts'\n\nexport interface PopoverCloseProps {\n  as?: PrimitiveProps['as']\n}\n\nexport const DEFAULT_POPOVER_CLOSE_PROPS = {\n  as: 'button',\n} satisfies PrimitiveDefaultProps<PopoverCloseProps>\n\nexport function usePopoverClose(): RadixPrimitiveReturns {\n  const context = usePopoverContext('PopoverClose')\n\n  function onClick(event: MouseEvent) {\n    if (event.defaultPrevented) {\n      return\n    }\n    context.onOpenChange(false)\n  }\n\n  return {\n    attrs(extraAttrs) {\n      const attrs = {\n        type: 'button',\n        onClick,\n      }\n\n      if (extraAttrs && extraAttrs.length > 0) {\n        mergePrimitiveAttrs(attrs, extraAttrs)\n      }\n\n      return attrs\n    },\n  }\n}\n","<script setup lang=\"ts\">\nimport { Primitive } from '../primitive/index.ts'\nimport { normalizeAttrs } from '../shared/index.ts'\nimport { DEFAULT_POPOVER_CLOSE_PROPS, type PopoverCloseProps, usePopoverClose } from './PopoverClose.ts'\n\ndefineOptions({\n  name: 'PopoverClose',\n  inheritAttrs: false,\n})\n\nwithDefaults(defineProps<PopoverCloseProps>(), DEFAULT_POPOVER_CLOSE_PROPS)\n\nconst popoverClose = usePopoverClose()\n</script>\n\n<template>\n  <Primitive v-bind=\"normalizeAttrs(popoverClose.attrs([$attrs, { as }]))\">\n    <slot />\n  </Primitive>\n</template>\n","import type { PrimitiveDefaultProps, RadixPrimitiveReturns } from '../shared'\nimport { type Ref, shallowRef } from 'vue'\nimport { usePopperContext } from '../popper/index.ts'\nimport { usePresence } from '../presence/index.ts'\nimport { usePopoverContext } from './PopoverRoot.ts'\n\nexport interface PopoverContentProps {\n  /**\n   * Used to force mounting when more control is needed. Useful when\n   * controlling animation with React animation libraries.\n   */\n  forceMount?: boolean\n}\n\nexport const DEFAULT_POPOVER_CONTENT_PROPS = {\n  forceMount: undefined,\n} satisfies PrimitiveDefaultProps<PopoverContentProps>\n\nexport interface UsePopoverContentProps {\n  forceMount?: boolean\n}\n\nexport function usePopoverContent(props: UsePopoverContentProps = {}): RadixPrimitiveReturns<{\n  isPresent: Ref<boolean>\n}> {\n  const context = usePopoverContext('PopoverContent')\n  const popperContext = usePopperContext('PopoverContent')\n\n  const isPresent = props.forceMount ? shallowRef(true) : usePresence(popperContext.content, context.open)\n\n  return {\n    isPresent,\n  }\n}\n","import type { EmitsToHookProps, IAttrsData, PrimitiveDefaultProps, RadixPrimitiveGetAttrs } from '../shared/index.ts'\nimport { hideOthers } from 'aria-hidden'\nimport { onBeforeUnmount, onMounted } from 'vue'\nimport { type DismissableLayerEmits, useDismissableLayer } from '../dismissable-layer/index.ts'\nimport { useFocusGuards } from '../focus-guards/index.ts'\nimport { useFocusScope } from '../focus-scope/index.ts'\nimport { useBodyScrollLock } from '../hooks/index.ts'\nimport { type PopperContentProps, usePopperContent, type UsePopperContentProps, usePopperContext } from '../popper/index.ts'\nimport { usePopoverContext } from './PopoverRoot.ts'\n\nexport interface PopoverContentImplProps extends PopperContentProps { }\n\nexport const DEFAULT_POPOVER_CONTENT_IMPL_PROPS = {\n  avoidCollisions: undefined,\n  hideWhenDetached: undefined,\n} satisfies PrimitiveDefaultProps<PopoverContentImplProps>\n\nexport type PopoverContentImplEmits = {\n  /**\n   * Event handler called when auto-focusing on open.\n   * Can be prevented.\n   */\n  openAutoFocus: [event: Event]\n  /**\n   * Event handler called when auto-focusing on close.\n   * Can be prevented.\n   */\n  closeAutoFocus: [event: Event]\n} & Omit<DismissableLayerEmits, 'dismiss'>\n\nexport interface UsePopoverContentImplProps extends Omit<UsePopoverContentImplSharedProps, 'trapFocus' | 'disableOutsidePointerEvents'> { }\n\nexport function usePopoverContentImpl(props: UsePopoverContentImplProps): UsePopoverContentImplSharedPeturns {\n  const context = usePopoverContext('PopoverContentImpl')\n\n  const usePopoverContent = context.modal ? usePopoverContentModal : usePopoverContentNonModal\n\n  return usePopoverContent(props)\n}\n\nexport function usePopoverContentModal(props: UsePopoverContentImplProps): UsePopoverContentImplSharedPeturns {\n  const context = usePopoverContext('PopoverContentModal')\n  const popperContext = usePopperContext('PopoverContentModal')\n  let isRightClickOutsideRef = false\n\n  const unlock = useBodyScrollLock()\n  let clearHideOthers: (() => void) | undefined\n\n  onMounted(() => {\n    if (popperContext.content.value)\n      clearHideOthers = hideOthers(popperContext.content.value)\n  })\n\n  onBeforeUnmount(() => {\n    unlock()\n    clearHideOthers?.()\n    clearHideOthers = undefined\n  })\n\n  return usePopoverContentImplShared({\n    ...props,\n    onCloseAutoFocus(event) {\n      if (event.defaultPrevented) {\n        return\n      }\n      event.preventDefault()\n      if (!isRightClickOutsideRef)\n        context.triggerRef.value?.focus()\n    },\n    onPointerdownOutside(event) {\n      props.onPointerdownOutside?.(event)\n      const originalEvent = event.detail.originalEvent\n      const ctrlLeftClick = originalEvent.button === 0 && originalEvent.ctrlKey === true\n      const isRightClick = originalEvent.button === 2 || ctrlLeftClick\n\n      isRightClickOutsideRef = isRightClick\n    },\n    // When focus is trapped, a `focusout` event may still happen.\n    // We make sure we don't trigger our `onDismiss` in such case.\n    onFocusOutside(event) {\n      props.onFocusOutside?.(event)\n      event.preventDefault()\n    },\n  })\n}\n\nexport function usePopoverContentNonModal(props: UsePopoverContentImplProps): UsePopoverContentImplSharedPeturns {\n  const context = usePopoverContext('PopoverContentNonModal')\n  let hasInteractedOutsideRef = false\n  let hasPointerdownOutsideRef = false\n\n  return usePopoverContentImplShared({\n    ...props,\n    onCloseAutoFocus(event) {\n      props.onCloseAutoFocus?.(event)\n\n      if (!event.defaultPrevented) {\n        if (!hasInteractedOutsideRef) {\n          context.triggerRef.value?.focus()\n        }\n        // Always prevent auto focus because we either focus manually or want user agent focus\n        event.preventDefault()\n      }\n\n      hasInteractedOutsideRef = false\n      hasPointerdownOutsideRef = false\n    },\n    onInteractOutside(event: DismissableLayerEmits['interactOutside'][0]) {\n      props.onInteractOutside?.(event)\n\n      if (!event.defaultPrevented) {\n        hasInteractedOutsideRef = true\n        if (event.detail.originalEvent.type === 'pointerdown') {\n          hasPointerdownOutsideRef = true\n        }\n      }\n\n      // Prevent dismissing when clicking the trigger.\n      // As the trigger is already setup to close, without doing so would\n      // cause it to close and immediately open.\n      const target = event.target as HTMLElement\n      const targetIsTrigger = context.triggerRef.value?.contains(target)\n      if (targetIsTrigger)\n        event.preventDefault()\n\n      // On Safari if the trigger is inside a container with tabIndex={0}, when clicked\n      // we will get the pointer down outside event on the trigger, but then a subsequent\n      // focus outside event on the container, we ignore any focus outside event when we've\n      // already had a pointer down outside event.\n      if (event.detail.originalEvent.type === 'focusin' && hasPointerdownOutsideRef) {\n        event.preventDefault()\n      }\n    },\n  })\n}\n\nexport interface UsePopoverContentImplSharedProps extends EmitsToHookProps<PopoverContentImplEmits>, Omit<UsePopperContentProps, 'onPlaced'> {\n\n}\n\nexport interface UsePopoverContentImplSharedPeturns {\n  wrapperAttrs: () => IAttrsData\n  attrs: RadixPrimitiveGetAttrs\n}\n\nexport function usePopoverContentImplShared(props: UsePopoverContentImplSharedProps): UsePopoverContentImplSharedPeturns {\n  const context = usePopoverContext('PopoverContentImplShared')\n  const popperContext = usePopperContext('PopoverContentImplShared')\n\n  // Make sure the whole tree has focus guards as our `Popover` may be\n  // composedRefs the last element in the DOM (because of the `Portal`)\n  useFocusGuards()\n\n  const focusScope = useFocusScope(\n    {\n      el: popperContext.content,\n      loop: true,\n      trapped() {\n        return false\n      },\n      onMountAutoFocus: props.onOpenAutoFocus,\n      onUnmountAutoFocus: props.onCloseAutoFocus,\n    },\n  )\n\n  const dismissableLayer = useDismissableLayer({\n    el: popperContext.content,\n    disableOutsidePointerEvents() {\n      return false\n    },\n    onInteractOutside: props.onInteractOutside,\n    onEscapeKeydown: props.onEscapeKeydown,\n    onFocusOutside: props.onFocusOutside,\n    onPointerdownOutside: props.onPointerdownOutside,\n    onDismiss() {\n      context.onOpenChange(false)\n    },\n  })\n\n  const popperContent = usePopperContent(props)\n\n  const style = {\n    '--radix-popover-content-transform-origin': 'var(--radix-popper-transform-origin)',\n    '--radix-popover-content-available-width': 'var(--radix-popper-available-width)',\n    '--radix-popover-content-available-height': 'var(--radix-popper-available-height)',\n    '--radix-popover-trigger-width': 'var(--radix-popper-anchor-width)',\n    '--radix-popover-trigger-height': 'var(--radix-popper-anchor-height)',\n  }\n\n  return {\n    wrapperAttrs: popperContent.wrapperAttrs,\n    attrs(extraAttrs = []) {\n      const popperAttrs = {\n        'id': context.contentId,\n        'data-state': context.open.value ? 'open' : 'closed',\n        'role': 'dialog',\n        'style': style,\n      }\n\n      return popperContent.attrs([dismissableLayer.attrs(), focusScope.attrs(), popperAttrs, ...extraAttrs])\n    },\n  }\n}\n","<script setup lang=\"ts\">\nimport { Primitive } from '../primitive/index.ts'\nimport { convertPropsToHookProps, type EmitsToHookProps, normalizeAttrs } from '../shared/index.ts'\nimport {\n  DEFAULT_POPOVER_CONTENT_IMPL_PROPS,\n  type PopoverContentImplEmits,\n  type PopoverContentImplProps,\n  usePopoverContentImpl,\n} from './PopoverContentImpl.ts'\n\ndefineOptions({\n  name: 'PopoverContentImpl',\n  inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<PopoverContentImplProps>(), DEFAULT_POPOVER_CONTENT_IMPL_PROPS)\n\nconst emit = defineEmits<PopoverContentImplEmits>()\n\nconst popoverContentImpl = usePopoverContentImpl(convertPropsToHookProps(\n  props,\n  ['collisionBoundary', 'dir'],\n  (): Required<EmitsToHookProps<PopoverContentImplEmits>> => ({\n    onOpenAutoFocus(event) {\n      emit('openAutoFocus', event)\n    },\n    onCloseAutoFocus(event) {\n      emit('closeAutoFocus', event)\n    },\n    onEscapeKeydown(event) {\n      emit('escapeKeydown', event)\n    },\n    onPointerdownOutside(event) {\n      emit('pointerdownOutside', event)\n    },\n    onFocusOutside(event) {\n      emit('focusOutside', event)\n    },\n    onInteractOutside(event) {\n      emit('interactOutside', event)\n    },\n  }),\n))\n</script>\n\n<template>\n  <div v-bind=\"popoverContentImpl.wrapperAttrs()\">\n    <Primitive v-bind=\"normalizeAttrs(popoverContentImpl.attrs([$attrs]))\">\n      <slot />\n    </Primitive>\n  </div>\n</template>\n","<script setup lang=\"ts\">\nimport { convertPropsToHookProps } from '../shared/index.ts'\nimport { DEFAULT_POPOVER_CONTENT_PROPS, type PopoverContentProps, usePopoverContent } from './PopoverContent.ts'\nimport PopoverContentImpl from './PopoverContentImpl.vue'\n\ndefineOptions({\n  name: 'PopoverContent',\n})\n\nconst props = withDefaults(defineProps<PopoverContentProps>(), DEFAULT_POPOVER_CONTENT_PROPS)\n\nconst popoverContent = usePopoverContent(convertPropsToHookProps(props))\n</script>\n\n<template>\n  <PopoverContentImpl v-if=\"popoverContent.isPresent.value\">\n    <slot />\n  </PopoverContentImpl>\n</template>\n","<script setup lang=\"ts\">\nimport { DEFAULT_POPOVER_ROOT_PROPS, type PopoverRootEmits, type PopoverRootProps, usePopoverRoot } from './PopoverRoot.ts'\n\ndefineOptions({\n  name: 'PopoverRoot',\n  inheritAttrs: false,\n})\n\nconst props = withDefaults(defineProps<PopoverRootProps>(), DEFAULT_POPOVER_ROOT_PROPS)\nconst emit = defineEmits<PopoverRootEmits>()\n\nusePopoverRoot({\n  open() {\n    return props.open\n  },\n  onUpdateOpen(open) {\n    emit('update:open', open)\n  },\n  defaultOpen: props.defaultOpen,\n  modal: props.modal,\n})\n</script>\n\n<template>\n  <slot />\n</template>\n","import type { PrimitiveProps } from '../primitive/index.ts'\nimport { usePopperContext } from '../popper/index.ts'\nimport { mergePrimitiveAttrs, type PrimitiveDefaultProps, type PrimitiveElAttrs, type RadixPrimitiveReturns } from '../shared/index.ts'\nimport { usePopoverContext } from './PopoverRoot.ts'\n\nexport interface PopoverTriggerProps {\n  as?: PrimitiveProps['as']\n}\n\nexport const DEFAULT_POPOVER_TRIGGER_PROPS = {\n  as: 'button',\n} satisfies PrimitiveDefaultProps<PopoverTriggerProps>\n\nexport function usePopoverTrigger(): RadixPrimitiveReturns {\n  const context = usePopoverContext('PopoverTrigger')\n  const popperContext = usePopperContext('PopoverTrigger')\n\n  function setElRef(v: HTMLElement | undefined) {\n    context.triggerRef.value = v\n    popperContext.onAnchorChange(v)\n  }\n\n  function onClick(event: MouseEvent) {\n    if (event.defaultPrevented) {\n      return\n    }\n    context.onOpenToggle()\n  }\n\n  return {\n    attrs(extraAttrs) {\n      const attrs: PrimitiveElAttrs = {\n        'elRef': setElRef,\n        'type': 'button',\n        'aria-haspopup': 'dialog',\n        'aria-expanded': context.open.value,\n        'aria-controls': context.contentId,\n        'data-state': context.open.value ? 'open' : 'closed',\n        onClick,\n      }\n\n      if (extraAttrs && extraAttrs.length > 0) {\n        mergePrimitiveAttrs(attrs, extraAttrs)\n      }\n\n      return attrs\n    },\n  }\n}\n","<script setup lang=\"ts\">\nimport { Primitive } from '../primitive/index.ts'\nimport { normalizeAttrs } from '../shared/index.ts'\nimport { DEFAULT_POPOVER_TRIGGER_PROPS, type PopoverTriggerProps, usePopoverTrigger } from './PopoverTrigger.ts'\n\ndefineOptions({\n  name: 'PopoverTrigger',\n  inheritAttrs: false,\n})\n\nwithDefaults(defineProps<PopoverTriggerProps>(), DEFAULT_POPOVER_TRIGGER_PROPS)\n\nconst popoverTrigger = usePopoverTrigger()\n</script>\n\n<template>\n  <Primitive v-bind=\"normalizeAttrs(popoverTrigger.attrs([$attrs, { as }]))\">\n    <slot />\n  </Primitive>\n</template>\n"],"names":[],"mappings":"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"}