{"version":3,"file":"content2.mjs","sources":["../../../../../../packages/components/tooltip-v2/src/content.vue"],"sourcesContent":["<template>\n  <div ref=\"contentRef\" :style=\"contentStyle\" data-tooltip-v2-root>\n    <div v-if=\"!nowrap\" :data-side=\"side\" :class=\"contentClass\">\n      <slot :content-style=\"contentStyle\" :content-class=\"contentClass\" />\n      <b-visually-hidden :id=\"contentId\" role=\"tooltip\">\n        <template v-if=\"ariaLabel\">\n          {{ ariaLabel }}\n        </template>\n        <slot v-else />\n      </b-visually-hidden>\n      <slot name=\"arrow\" :style=\"arrowStyle\" :side=\"side\" />\n    </div>\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, inject, onMounted, provide, ref, unref, watch } from 'vue'\nimport { offset } from '@floating-ui/dom'\nimport { tooltipV2ContentKey, tooltipV2RootKey } from '@bigin/tokens'\nimport {\n  arrowMiddleware,\n  useFloating,\n  useNamespace,\n  useZIndex,\n} from '@bigin/hooks'\nimport BVisuallyHidden from '@bigin/components/visual-hidden'\nimport { tooltipV2ContentProps } from './content'\nimport { tooltipV2CommonProps } from './common'\n\nimport type { CSSProperties } from 'vue'\nimport type { Middleware } from '@floating-ui/dom'\n\ndefineOptions({\n  name: 'BTooltipV2Content',\n})\n\nconst props = defineProps({ ...tooltipV2ContentProps, ...tooltipV2CommonProps })\n\nconst { triggerRef, contentId } = inject(tooltipV2RootKey)!\n\nconst placement = ref(props.placement)\nconst strategy = ref(props.strategy)\nconst arrowRef = ref<HTMLElement | null>(null)\n\nconst { referenceRef, contentRef, middlewareData, x, y, update } = useFloating({\n  placement,\n  strategy,\n  middleware: computed(() => {\n    const middleware: Middleware[] = [offset(props.offset)]\n\n    if (props.showArrow) {\n      middleware.push(\n        arrowMiddleware({\n          arrowRef,\n        })\n      )\n    }\n\n    return middleware\n  }),\n})\n\nconst zIndex = useZIndex().nextZIndex()\n\nconst ns = useNamespace('tooltip-v2')\n\nconst side = computed(() => {\n  return placement.value.split('-')[0]\n})\n\nconst contentStyle = computed<CSSProperties>(() => {\n  return {\n    position: unref(strategy),\n    top: `${unref(y) || 0}px`,\n    left: `${unref(x) || 0}px`,\n    zIndex,\n  }\n})\n\nconst arrowStyle = computed<CSSProperties>(() => {\n  if (!props.showArrow) return {}\n\n  const { arrow } = unref(middlewareData)\n\n  return {\n    [`--${ns.namespace.value}-tooltip-v2-arrow-x`]: `${arrow?.x}px` || '',\n    [`--${ns.namespace.value}-tooltip-v2-arrow-y`]: `${arrow?.y}px` || '',\n  }\n})\n\nconst contentClass = computed(() => [\n  ns.e('content'),\n  ns.is('dark', props.effect === 'dark'),\n  ns.is(unref(strategy)),\n  props.contentClass,\n])\n\nwatch(arrowRef, () => update())\n\nwatch(\n  () => props.placement,\n  (val) => (placement.value = val)\n)\n\nonMounted(() => {\n  watch(\n    () => props.reference || triggerRef.value,\n    (el) => {\n      referenceRef.value = el || undefined\n    },\n    {\n      immediate: true,\n    }\n  )\n})\n\nprovide(tooltipV2ContentKey, { arrowRef })\n</script>\n"],"names":[],"mappings":"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"}