UNPKG

ivt

Version:

Ivt Components Library

1 lines 35.1 kB
{"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]}