UNPKG

@ariakit/react-core

Version:

Ariakit React core

122 lines (120 loc) 3.66 kB
"use client"; import { TooltipScopedContextProvider, useTooltipProviderContext } from "../__chunks/WVT277Z4.js"; import { useHovercard } from "../__chunks/7QZRSZWP.js"; import "../__chunks/X7QOZUD3.js"; import "../__chunks/2WDBOH5E.js"; import "../__chunks/4Z6JSVUY.js"; import { createDialogComponent } from "../__chunks/2S4Q4M35.js"; import "../__chunks/SWBQ42SL.js"; import "../__chunks/AOQQTIBO.js"; import "../__chunks/5M6RIVE2.js"; import "../__chunks/IEBFIEPB.js"; import "../__chunks/RBTTLCIN.js"; import "../__chunks/UG4JNWMY.js"; import "../__chunks/6GXEOXGT.js"; import "../__chunks/Y7OMCS5T.js"; import "../__chunks/HLTQOHKZ.js"; import "../__chunks/DJAL6CN3.js"; import "../__chunks/NQXOL4RD.js"; import "../__chunks/NE2XEEQN.js"; import "../__chunks/CZ4GFWYL.js"; import "../__chunks/Z5GCVBAY.js"; import "../__chunks/IGR4SXG2.js"; import "../__chunks/677M2CI3.js"; import "../__chunks/S7U6BLGA.js"; import "../__chunks/LVVSG7VH.js"; import "../__chunks/3NDVDEB4.js"; import "../__chunks/AOUGVQZ3.js"; import "../__chunks/K2ZF5NU7.js"; import "../__chunks/63XF7ACK.js"; import "../__chunks/HAX24JB7.js"; import "../__chunks/5NIUVND5.js"; import "../__chunks/33YRLYNQ.js"; import "../__chunks/HIN2NSI2.js"; import "../__chunks/MWF5B7KS.js"; import "../__chunks/63N3TCQX.js"; import "../__chunks/FFSBKSAM.js"; import "../__chunks/US3TW2XI.js"; import "../__chunks/SWN3JYXT.js"; import "../__chunks/Q3KUZPD7.js"; import { createElement, createHook, forwardRef } from "../__chunks/ILRXHV7V.js"; import { useWrapElement } from "../__chunks/K2XTQB3X.js"; import "../__chunks/YXGXYGQX.js"; // src/tooltip/tooltip.tsx import { contains } from "@ariakit/core/utils/dom"; import { invariant, isFalsyBooleanCallback } from "@ariakit/core/utils/misc"; import { jsx } from "react/jsx-runtime"; var TagName = "div"; var useTooltip = createHook( function useTooltip2({ store, portal = true, gutter = 8, preserveTabOrder = false, hideOnHoverOutside = true, hideOnInteractOutside = true, ...props }) { const context = useTooltipProviderContext(); store = store || context; invariant( store, process.env.NODE_ENV !== "production" && "Tooltip must receive a `store` prop or be wrapped in a TooltipProvider component." ); props = useWrapElement( props, (element) => /* @__PURE__ */ jsx(TooltipScopedContextProvider, { value: store, children: element }), [store] ); const role = store.useState( (state) => state.type === "description" ? "tooltip" : "none" ); props = { role, ...props }; props = useHovercard({ ...props, store, portal, gutter, preserveTabOrder, hideOnHoverOutside(event) { if (isFalsyBooleanCallback(hideOnHoverOutside, event)) return false; const anchorElement = store == null ? void 0 : store.getState().anchorElement; if (!anchorElement) return true; if ("focusVisible" in anchorElement.dataset) return false; return true; }, hideOnInteractOutside: (event) => { if (isFalsyBooleanCallback(hideOnInteractOutside, event)) return false; const anchorElement = store == null ? void 0 : store.getState().anchorElement; if (!anchorElement) return true; if (contains(anchorElement, event.target)) return false; return true; } }); return props; } ); var Tooltip = createDialogComponent( forwardRef(function Tooltip2(props) { const htmlProps = useTooltip(props); return createElement(TagName, htmlProps); }), useTooltipProviderContext ); export { Tooltip, useTooltip };