{"version":3,"file":"popper.mjs","sources":["../../../../packages/tokens/popper.ts"],"sourcesContent":["import type {\n  FloatingElement,\n  ReferenceElement,\n} from '@vuesax-alpha/hooks/use-floating/vue'\nimport type { PopperTriggerType } from '@vuesax-alpha/components/popper'\nimport type { Arrayable } from '@vuesax-alpha/utils'\nimport type { InjectionKey, Ref } from 'vue'\n\nexport type Measurable = {\n  getBoundingClientRect: () => DOMRect\n}\n\n/**\n * triggerRef indicates the element that triggers popper\n * contentRef indicates the element of popper content\n * referenceRef indicates the element that popper content relative with\n */\nexport type PopperContext = {\n  triggerRef: Ref<ReferenceElement | undefined>\n  contentRef: Ref<FloatingElement | undefined>\n  arrowRef: Ref<HTMLElement | undefined>\n  referenceRef: Ref<ReferenceElement | undefined>\n\n  controlled: Ref<boolean>\n  id: Ref<string>\n  open: Ref<boolean>\n  trigger: Ref<Arrayable<PopperTriggerType>>\n  onOpen: (e?: Event) => void\n  onClose: (e?: Event) => void\n  onToggle: (e: Event) => void\n  onShow: () => void\n  onHide: () => void\n  onBeforeShow: () => void\n  onBeforeHide: () => void\n  updatePopper: (shouldUpdateZIndex?: boolean) => void\n}\n\nexport type PopperContentInjectionContext = {\n  arrowRef: Ref<HTMLElement | undefined>\n  arrowOffset: Ref<number | undefined>\n}\n\nexport const popperContextKey: InjectionKey<PopperContext> = Symbol('popper')\n\nexport const popperContentContextKey: InjectionKey<PopperContentInjectionContext> =\n  Symbol('popper-content')\n"],"names":[],"mappings":"AA0Ca,MAAA,gBAAA,GAAgD,OAAO,QAAQ,EAAA;AAE/D,MAAA,uBAAA,GACX,OAAO,gBAAgB;;;;"}