{"version":3,"file":"index.mjs","sources":["../../node_modules/@radix-ui/react-tooltip/dist/index.mjs","../../src/components/ui/tooltip/tooltip.tsx"],"sourcesContent":["\"use client\";\n\n// src/tooltip.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { DismissableLayer } from \"@radix-ui/react-dismissable-layer\";\nimport { useId } from \"@radix-ui/react-id\";\nimport * as PopperPrimitive from \"@radix-ui/react-popper\";\nimport { createPopperScope } from \"@radix-ui/react-popper\";\nimport { Portal as PortalPrimitive } from \"@radix-ui/react-portal\";\nimport { Presence } from \"@radix-ui/react-presence\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { createSlottable } from \"@radix-ui/react-slot\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport * as VisuallyHiddenPrimitive from \"@radix-ui/react-visually-hidden\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar [createTooltipContext, createTooltipScope] = createContextScope(\"Tooltip\", [\n  createPopperScope\n]);\nvar usePopperScope = createPopperScope();\nvar PROVIDER_NAME = \"TooltipProvider\";\nvar DEFAULT_DELAY_DURATION = 700;\nvar TOOLTIP_OPEN = \"tooltip.open\";\nvar [TooltipProviderContextProvider, useTooltipProviderContext] = createTooltipContext(PROVIDER_NAME);\nvar TooltipProvider = (props) => {\n  const {\n    __scopeTooltip,\n    delayDuration = DEFAULT_DELAY_DURATION,\n    skipDelayDuration = 300,\n    disableHoverableContent = false,\n    children\n  } = props;\n  const isOpenDelayedRef = React.useRef(true);\n  const isPointerInTransitRef = React.useRef(false);\n  const skipDelayTimerRef = React.useRef(0);\n  React.useEffect(() => {\n    const skipDelayTimer = skipDelayTimerRef.current;\n    return () => window.clearTimeout(skipDelayTimer);\n  }, []);\n  return /* @__PURE__ */ jsx(\n    TooltipProviderContextProvider,\n    {\n      scope: __scopeTooltip,\n      isOpenDelayedRef,\n      delayDuration,\n      onOpen: React.useCallback(() => {\n        window.clearTimeout(skipDelayTimerRef.current);\n        isOpenDelayedRef.current = false;\n      }, []),\n      onClose: React.useCallback(() => {\n        window.clearTimeout(skipDelayTimerRef.current);\n        skipDelayTimerRef.current = window.setTimeout(\n          () => isOpenDelayedRef.current = true,\n          skipDelayDuration\n        );\n      }, [skipDelayDuration]),\n      isPointerInTransitRef,\n      onPointerInTransitChange: React.useCallback((inTransit) => {\n        isPointerInTransitRef.current = inTransit;\n      }, []),\n      disableHoverableContent,\n      children\n    }\n  );\n};\nTooltipProvider.displayName = PROVIDER_NAME;\nvar TOOLTIP_NAME = \"Tooltip\";\nvar [TooltipContextProvider, useTooltipContext] = createTooltipContext(TOOLTIP_NAME);\nvar Tooltip = (props) => {\n  const {\n    __scopeTooltip,\n    children,\n    open: openProp,\n    defaultOpen,\n    onOpenChange,\n    disableHoverableContent: disableHoverableContentProp,\n    delayDuration: delayDurationProp\n  } = props;\n  const providerContext = useTooltipProviderContext(TOOLTIP_NAME, props.__scopeTooltip);\n  const popperScope = usePopperScope(__scopeTooltip);\n  const [trigger, setTrigger] = React.useState(null);\n  const contentId = useId();\n  const openTimerRef = React.useRef(0);\n  const disableHoverableContent = disableHoverableContentProp ?? providerContext.disableHoverableContent;\n  const delayDuration = delayDurationProp ?? providerContext.delayDuration;\n  const wasOpenDelayedRef = React.useRef(false);\n  const [open, setOpen] = useControllableState({\n    prop: openProp,\n    defaultProp: defaultOpen ?? false,\n    onChange: (open2) => {\n      if (open2) {\n        providerContext.onOpen();\n        document.dispatchEvent(new CustomEvent(TOOLTIP_OPEN));\n      } else {\n        providerContext.onClose();\n      }\n      onOpenChange?.(open2);\n    },\n    caller: TOOLTIP_NAME\n  });\n  const stateAttribute = React.useMemo(() => {\n    return open ? wasOpenDelayedRef.current ? \"delayed-open\" : \"instant-open\" : \"closed\";\n  }, [open]);\n  const handleOpen = React.useCallback(() => {\n    window.clearTimeout(openTimerRef.current);\n    openTimerRef.current = 0;\n    wasOpenDelayedRef.current = false;\n    setOpen(true);\n  }, [setOpen]);\n  const handleClose = React.useCallback(() => {\n    window.clearTimeout(openTimerRef.current);\n    openTimerRef.current = 0;\n    setOpen(false);\n  }, [setOpen]);\n  const handleDelayedOpen = React.useCallback(() => {\n    window.clearTimeout(openTimerRef.current);\n    openTimerRef.current = window.setTimeout(() => {\n      wasOpenDelayedRef.current = true;\n      setOpen(true);\n      openTimerRef.current = 0;\n    }, delayDuration);\n  }, [delayDuration, setOpen]);\n  React.useEffect(() => {\n    return () => {\n      if (openTimerRef.current) {\n        window.clearTimeout(openTimerRef.current);\n        openTimerRef.current = 0;\n      }\n    };\n  }, []);\n  return /* @__PURE__ */ jsx(PopperPrimitive.Root, { ...popperScope, children: /* @__PURE__ */ jsx(\n    TooltipContextProvider,\n    {\n      scope: __scopeTooltip,\n      contentId,\n      open,\n      stateAttribute,\n      trigger,\n      onTriggerChange: setTrigger,\n      onTriggerEnter: React.useCallback(() => {\n        if (providerContext.isOpenDelayedRef.current) handleDelayedOpen();\n        else handleOpen();\n      }, [providerContext.isOpenDelayedRef, handleDelayedOpen, handleOpen]),\n      onTriggerLeave: React.useCallback(() => {\n        if (disableHoverableContent) {\n          handleClose();\n        } else {\n          window.clearTimeout(openTimerRef.current);\n          openTimerRef.current = 0;\n        }\n      }, [handleClose, disableHoverableContent]),\n      onOpen: handleOpen,\n      onClose: handleClose,\n      disableHoverableContent,\n      children\n    }\n  ) });\n};\nTooltip.displayName = TOOLTIP_NAME;\nvar TRIGGER_NAME = \"TooltipTrigger\";\nvar TooltipTrigger = React.forwardRef(\n  (props, forwardedRef) => {\n    const { __scopeTooltip, ...triggerProps } = props;\n    const context = useTooltipContext(TRIGGER_NAME, __scopeTooltip);\n    const providerContext = useTooltipProviderContext(TRIGGER_NAME, __scopeTooltip);\n    const popperScope = usePopperScope(__scopeTooltip);\n    const ref = React.useRef(null);\n    const composedRefs = useComposedRefs(forwardedRef, ref, context.onTriggerChange);\n    const isPointerDownRef = React.useRef(false);\n    const hasPointerMoveOpenedRef = React.useRef(false);\n    const handlePointerUp = React.useCallback(() => isPointerDownRef.current = false, []);\n    React.useEffect(() => {\n      return () => document.removeEventListener(\"pointerup\", handlePointerUp);\n    }, [handlePointerUp]);\n    return /* @__PURE__ */ jsx(PopperPrimitive.Anchor, { asChild: true, ...popperScope, children: /* @__PURE__ */ jsx(\n      Primitive.button,\n      {\n        \"aria-describedby\": context.open ? context.contentId : void 0,\n        \"data-state\": context.stateAttribute,\n        ...triggerProps,\n        ref: composedRefs,\n        onPointerMove: composeEventHandlers(props.onPointerMove, (event) => {\n          if (event.pointerType === \"touch\") return;\n          if (!hasPointerMoveOpenedRef.current && !providerContext.isPointerInTransitRef.current) {\n            context.onTriggerEnter();\n            hasPointerMoveOpenedRef.current = true;\n          }\n        }),\n        onPointerLeave: composeEventHandlers(props.onPointerLeave, () => {\n          context.onTriggerLeave();\n          hasPointerMoveOpenedRef.current = false;\n        }),\n        onPointerDown: composeEventHandlers(props.onPointerDown, () => {\n          if (context.open) {\n            context.onClose();\n          }\n          isPointerDownRef.current = true;\n          document.addEventListener(\"pointerup\", handlePointerUp, { once: true });\n        }),\n        onFocus: composeEventHandlers(props.onFocus, () => {\n          if (!isPointerDownRef.current) context.onOpen();\n        }),\n        onBlur: composeEventHandlers(props.onBlur, context.onClose),\n        onClick: composeEventHandlers(props.onClick, context.onClose)\n      }\n    ) });\n  }\n);\nTooltipTrigger.displayName = TRIGGER_NAME;\nvar PORTAL_NAME = \"TooltipPortal\";\nvar [PortalProvider, usePortalContext] = createTooltipContext(PORTAL_NAME, {\n  forceMount: void 0\n});\nvar TooltipPortal = (props) => {\n  const { __scopeTooltip, forceMount, children, container } = props;\n  const context = useTooltipContext(PORTAL_NAME, __scopeTooltip);\n  return /* @__PURE__ */ jsx(PortalProvider, { scope: __scopeTooltip, forceMount, children: /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: /* @__PURE__ */ jsx(PortalPrimitive, { asChild: true, container, children }) }) });\n};\nTooltipPortal.displayName = PORTAL_NAME;\nvar CONTENT_NAME = \"TooltipContent\";\nvar TooltipContent = React.forwardRef(\n  (props, forwardedRef) => {\n    const portalContext = usePortalContext(CONTENT_NAME, props.__scopeTooltip);\n    const { forceMount = portalContext.forceMount, side = \"top\", ...contentProps } = props;\n    const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n    return /* @__PURE__ */ jsx(Presence, { present: forceMount || context.open, children: context.disableHoverableContent ? /* @__PURE__ */ jsx(TooltipContentImpl, { side, ...contentProps, ref: forwardedRef }) : /* @__PURE__ */ jsx(TooltipContentHoverable, { side, ...contentProps, ref: forwardedRef }) });\n  }\n);\nvar TooltipContentHoverable = React.forwardRef((props, forwardedRef) => {\n  const context = useTooltipContext(CONTENT_NAME, props.__scopeTooltip);\n  const providerContext = useTooltipProviderContext(CONTENT_NAME, props.__scopeTooltip);\n  const ref = React.useRef(null);\n  const composedRefs = useComposedRefs(forwardedRef, ref);\n  const [pointerGraceArea, setPointerGraceArea] = React.useState(null);\n  const { trigger, onClose } = context;\n  const content = ref.current;\n  const { onPointerInTransitChange } = providerContext;\n  const handleRemoveGraceArea = React.useCallback(() => {\n    setPointerGraceArea(null);\n    onPointerInTransitChange(false);\n  }, [onPointerInTransitChange]);\n  const handleCreateGraceArea = React.useCallback(\n    (event, hoverTarget) => {\n      const currentTarget = event.currentTarget;\n      const exitPoint = { x: event.clientX, y: event.clientY };\n      const exitSide = getExitSideFromRect(exitPoint, currentTarget.getBoundingClientRect());\n      const paddedExitPoints = getPaddedExitPoints(exitPoint, exitSide);\n      const hoverTargetPoints = getPointsFromRect(hoverTarget.getBoundingClientRect());\n      const graceArea = getHull([...paddedExitPoints, ...hoverTargetPoints]);\n      setPointerGraceArea(graceArea);\n      onPointerInTransitChange(true);\n    },\n    [onPointerInTransitChange]\n  );\n  React.useEffect(() => {\n    return () => handleRemoveGraceArea();\n  }, [handleRemoveGraceArea]);\n  React.useEffect(() => {\n    if (trigger && content) {\n      const handleTriggerLeave = (event) => handleCreateGraceArea(event, content);\n      const handleContentLeave = (event) => handleCreateGraceArea(event, trigger);\n      trigger.addEventListener(\"pointerleave\", handleTriggerLeave);\n      content.addEventListener(\"pointerleave\", handleContentLeave);\n      return () => {\n        trigger.removeEventListener(\"pointerleave\", handleTriggerLeave);\n        content.removeEventListener(\"pointerleave\", handleContentLeave);\n      };\n    }\n  }, [trigger, content, handleCreateGraceArea, handleRemoveGraceArea]);\n  React.useEffect(() => {\n    if (pointerGraceArea) {\n      const handleTrackPointerGrace = (event) => {\n        const target = event.target;\n        const pointerPosition = { x: event.clientX, y: event.clientY };\n        const hasEnteredTarget = trigger?.contains(target) || content?.contains(target);\n        const isPointerOutsideGraceArea = !isPointInPolygon(pointerPosition, pointerGraceArea);\n        if (hasEnteredTarget) {\n          handleRemoveGraceArea();\n        } else if (isPointerOutsideGraceArea) {\n          handleRemoveGraceArea();\n          onClose();\n        }\n      };\n      document.addEventListener(\"pointermove\", handleTrackPointerGrace);\n      return () => document.removeEventListener(\"pointermove\", handleTrackPointerGrace);\n    }\n  }, [trigger, content, pointerGraceArea, onClose, handleRemoveGraceArea]);\n  return /* @__PURE__ */ jsx(TooltipContentImpl, { ...props, ref: composedRefs });\n});\nvar [VisuallyHiddenContentContextProvider, useVisuallyHiddenContentContext] = createTooltipContext(TOOLTIP_NAME, { isInside: false });\nvar Slottable = createSlottable(\"TooltipContent\");\nvar TooltipContentImpl = React.forwardRef(\n  (props, forwardedRef) => {\n    const {\n      __scopeTooltip,\n      children,\n      \"aria-label\": ariaLabel,\n      onEscapeKeyDown,\n      onPointerDownOutside,\n      ...contentProps\n    } = props;\n    const context = useTooltipContext(CONTENT_NAME, __scopeTooltip);\n    const popperScope = usePopperScope(__scopeTooltip);\n    const { onClose } = context;\n    React.useEffect(() => {\n      document.addEventListener(TOOLTIP_OPEN, onClose);\n      return () => document.removeEventListener(TOOLTIP_OPEN, onClose);\n    }, [onClose]);\n    React.useEffect(() => {\n      if (context.trigger) {\n        const handleScroll = (event) => {\n          const target = event.target;\n          if (target?.contains(context.trigger)) onClose();\n        };\n        window.addEventListener(\"scroll\", handleScroll, { capture: true });\n        return () => window.removeEventListener(\"scroll\", handleScroll, { capture: true });\n      }\n    }, [context.trigger, onClose]);\n    return /* @__PURE__ */ jsx(\n      DismissableLayer,\n      {\n        asChild: true,\n        disableOutsidePointerEvents: false,\n        onEscapeKeyDown,\n        onPointerDownOutside,\n        onFocusOutside: (event) => event.preventDefault(),\n        onDismiss: onClose,\n        children: /* @__PURE__ */ jsxs(\n          PopperPrimitive.Content,\n          {\n            \"data-state\": context.stateAttribute,\n            ...popperScope,\n            ...contentProps,\n            ref: forwardedRef,\n            style: {\n              ...contentProps.style,\n              // re-namespace exposed content custom properties\n              ...{\n                \"--radix-tooltip-content-transform-origin\": \"var(--radix-popper-transform-origin)\",\n                \"--radix-tooltip-content-available-width\": \"var(--radix-popper-available-width)\",\n                \"--radix-tooltip-content-available-height\": \"var(--radix-popper-available-height)\",\n                \"--radix-tooltip-trigger-width\": \"var(--radix-popper-anchor-width)\",\n                \"--radix-tooltip-trigger-height\": \"var(--radix-popper-anchor-height)\"\n              }\n            },\n            children: [\n              /* @__PURE__ */ jsx(Slottable, { children }),\n              /* @__PURE__ */ jsx(VisuallyHiddenContentContextProvider, { scope: __scopeTooltip, isInside: true, children: /* @__PURE__ */ jsx(VisuallyHiddenPrimitive.Root, { id: context.contentId, role: \"tooltip\", children: ariaLabel || children }) })\n            ]\n          }\n        )\n      }\n    );\n  }\n);\nTooltipContent.displayName = CONTENT_NAME;\nvar ARROW_NAME = \"TooltipArrow\";\nvar TooltipArrow = React.forwardRef(\n  (props, forwardedRef) => {\n    const { __scopeTooltip, ...arrowProps } = props;\n    const popperScope = usePopperScope(__scopeTooltip);\n    const visuallyHiddenContentContext = useVisuallyHiddenContentContext(\n      ARROW_NAME,\n      __scopeTooltip\n    );\n    return visuallyHiddenContentContext.isInside ? null : /* @__PURE__ */ jsx(PopperPrimitive.Arrow, { ...popperScope, ...arrowProps, ref: forwardedRef });\n  }\n);\nTooltipArrow.displayName = ARROW_NAME;\nfunction getExitSideFromRect(point, rect) {\n  const top = Math.abs(rect.top - point.y);\n  const bottom = Math.abs(rect.bottom - point.y);\n  const right = Math.abs(rect.right - point.x);\n  const left = Math.abs(rect.left - point.x);\n  switch (Math.min(top, bottom, right, left)) {\n    case left:\n      return \"left\";\n    case right:\n      return \"right\";\n    case top:\n      return \"top\";\n    case bottom:\n      return \"bottom\";\n    default:\n      throw new Error(\"unreachable\");\n  }\n}\nfunction getPaddedExitPoints(exitPoint, exitSide, padding = 5) {\n  const paddedExitPoints = [];\n  switch (exitSide) {\n    case \"top\":\n      paddedExitPoints.push(\n        { x: exitPoint.x - padding, y: exitPoint.y + padding },\n        { x: exitPoint.x + padding, y: exitPoint.y + padding }\n      );\n      break;\n    case \"bottom\":\n      paddedExitPoints.push(\n        { x: exitPoint.x - padding, y: exitPoint.y - padding },\n        { x: exitPoint.x + padding, y: exitPoint.y - padding }\n      );\n      break;\n    case \"left\":\n      paddedExitPoints.push(\n        { x: exitPoint.x + padding, y: exitPoint.y - padding },\n        { x: exitPoint.x + padding, y: exitPoint.y + padding }\n      );\n      break;\n    case \"right\":\n      paddedExitPoints.push(\n        { x: exitPoint.x - padding, y: exitPoint.y - padding },\n        { x: exitPoint.x - padding, y: exitPoint.y + padding }\n      );\n      break;\n  }\n  return paddedExitPoints;\n}\nfunction getPointsFromRect(rect) {\n  const { top, right, bottom, left } = rect;\n  return [\n    { x: left, y: top },\n    { x: right, y: top },\n    { x: right, y: bottom },\n    { x: left, y: bottom }\n  ];\n}\nfunction isPointInPolygon(point, polygon) {\n  const { x, y } = point;\n  let inside = false;\n  for (let i = 0, j = polygon.length - 1; i < polygon.length; j = i++) {\n    const ii = polygon[i];\n    const jj = polygon[j];\n    const xi = ii.x;\n    const yi = ii.y;\n    const xj = jj.x;\n    const yj = jj.y;\n    const intersect = yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi;\n    if (intersect) inside = !inside;\n  }\n  return inside;\n}\nfunction getHull(points) {\n  const newPoints = points.slice();\n  newPoints.sort((a, b) => {\n    if (a.x < b.x) return -1;\n    else if (a.x > b.x) return 1;\n    else if (a.y < b.y) return -1;\n    else if (a.y > b.y) return 1;\n    else return 0;\n  });\n  return getHullPresorted(newPoints);\n}\nfunction getHullPresorted(points) {\n  if (points.length <= 1) return points.slice();\n  const upperHull = [];\n  for (let i = 0; i < points.length; i++) {\n    const p = points[i];\n    while (upperHull.length >= 2) {\n      const q = upperHull[upperHull.length - 1];\n      const r = upperHull[upperHull.length - 2];\n      if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) upperHull.pop();\n      else break;\n    }\n    upperHull.push(p);\n  }\n  upperHull.pop();\n  const lowerHull = [];\n  for (let i = points.length - 1; i >= 0; i--) {\n    const p = points[i];\n    while (lowerHull.length >= 2) {\n      const q = lowerHull[lowerHull.length - 1];\n      const r = lowerHull[lowerHull.length - 2];\n      if ((q.x - r.x) * (p.y - r.y) >= (q.y - r.y) * (p.x - r.x)) lowerHull.pop();\n      else break;\n    }\n    lowerHull.push(p);\n  }\n  lowerHull.pop();\n  if (upperHull.length === 1 && lowerHull.length === 1 && upperHull[0].x === lowerHull[0].x && upperHull[0].y === lowerHull[0].y) {\n    return upperHull;\n  } else {\n    return upperHull.concat(lowerHull);\n  }\n}\nvar Provider = TooltipProvider;\nvar Root3 = Tooltip;\nvar Trigger = TooltipTrigger;\nvar Portal = TooltipPortal;\nvar Content2 = TooltipContent;\nvar Arrow2 = TooltipArrow;\nexport {\n  Arrow2 as Arrow,\n  Content2 as Content,\n  Portal,\n  Provider,\n  Root3 as Root,\n  Tooltip,\n  TooltipArrow,\n  TooltipContent,\n  TooltipPortal,\n  TooltipProvider,\n  TooltipTrigger,\n  Trigger,\n  createTooltipScope\n};\n//# sourceMappingURL=index.mjs.map\n","import { cn } from \"@/lib/utils\";\nimport * as TooltipPrimitive from \"@radix-ui/react-tooltip\";\nimport React from \"react\";\n\nfunction TooltipProvider({\n\tdelayDuration = 700,\n\t...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n\treturn (\n\t\t<TooltipPrimitive.Provider\n\t\t\tdata-slot=\"tooltip-provider\"\n\t\t\tdelayDuration={delayDuration}\n\t\t\t{...props}\n\t\t/>\n\t);\n}\n\nfunction Tooltip({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n\treturn (\n\t\t<TooltipProvider>\n\t\t\t<TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n\t\t</TooltipProvider>\n\t);\n}\n\nfunction TooltipTrigger({ ...props }: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n\treturn <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />;\n}\n\nfunction TooltipContent({\n\tclassName,\n\tsideOffset = 0,\n\tchildren,\n\t...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n\treturn (\n\t\t<TooltipPrimitive.Portal>\n\t\t\t<TooltipPrimitive.Content\n\t\t\t\tdata-slot=\"tooltip-content\"\n\t\t\t\tsideOffset={sideOffset}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"bg-popover text-popover-foreground animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 overflow-hidden rounded-md px-3 py-1.5 text-sm shadow-md drop-shadow\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</TooltipPrimitive.Content>\n\t\t</TooltipPrimitive.Portal>\n\t);\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };\n"],"names":["createTooltipContext","createTooltipScope","createContextScope","createPopperScope","usePopperScope","PROVIDER_NAME","DEFAULT_DELAY_DURATION","TOOLTIP_OPEN","TooltipProviderContextProvider","useTooltipProviderContext","TooltipProvider","props","__scopeTooltip","delayDuration","skipDelayDuration","disableHoverableContent","children","isOpenDelayedRef","React","useRef","isPointerInTransitRef","skipDelayTimerRef","useEffect","skipDelayTimer","current","window","clearTimeout","jsx","scope","onOpen","useCallback","onClose","setTimeout","onPointerInTransitChange","inTransit","displayName","TOOLTIP_NAME","TooltipContextProvider","useTooltipContext","Tooltip","open","openProp","defaultOpen","onOpenChange","disableHoverableContentProp","delayDurationProp","providerContext","popperScope","trigger","setTrigger","useState","contentId","useId","openTimerRef","wasOpenDelayedRef","setOpen","useControllableState","prop","defaultProp","onChange","document","dispatchEvent","CustomEvent","caller","stateAttribute","useMemo","handleOpen","handleClose","handleDelayedOpen","PopperPrimitive.Root","onTriggerChange","onTriggerEnter","onTriggerLeave","TRIGGER_NAME","TooltipTrigger","forwardRef","forwardedRef","triggerProps","context","ref","composedRefs","useComposedRefs","isPointerDownRef","hasPointerMoveOpenedRef","handlePointerUp","removeEventListener","PopperPrimitive.Anchor","asChild","Primitive","button","onPointerMove","composeEventHandlers","event","pointerType","onPointerLeave","onPointerDown","addEventListener","once","onFocus","onBlur","onClick","PORTAL_NAME","PortalProvider","usePortalContext","forceMount","TooltipPortal","container","Presence","present","PortalPrimitive","CONTENT_NAME","TooltipContent","portalContext","side","contentProps","TooltipContentImpl","TooltipContentHoverable","pointerGraceArea","setPointerGraceArea","content","handleRemoveGraceArea","handleCreateGraceArea","hoverTarget","currentTarget","exitPoint","x","clientX","y","clientY","paddedExitPoints","exitSide","padding","push","getPaddedExitPoints","point","rect","top","Math","abs","bottom","right","left","min","Error","getExitSideFromRect","getBoundingClientRect","graceArea","points","newPoints","slice","sort","a","b","length","upperHull","i","p","q","r","pop","lowerHull","concat","getHullPresorted","getHull","getPointsFromRect","handleTriggerLeave","handleContentLeave","handleTrackPointerGrace","target","pointerPosition","hasEnteredTarget","contains","isPointerOutsideGraceArea","polygon","inside","j","ii","jj","xi","yi","xj","yj","isPointInPolygon","VisuallyHiddenContentContextProvider","useVisuallyHiddenContentContext","isInside","Slottable","createSlottable","ariaLabel","onEscapeKeyDown","onPointerDownOutside","handleScroll","capture","DismissableLayer","disableOutsidePointerEvents","onFocusOutside","preventDefault","onDismiss","jsxs","PopperPrimitive.Content","style","VisuallyHiddenPrimitive.Root","id","role","ARROW_NAME","arrowProps","PopperPrimitive.Arrow","Provider","Root","Trigger","Portal","Content","createElement","TooltipPrimitive","data-slot","className","sideOffset","cn"],"mappings":"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","x_google_ignoreList":[0]}