UNPKG

@ariakit/react-core

Version:

Ariakit React core

133 lines (131 loc) 3.98 kB
"use client"; import { TooltipScopedContextProvider, useTooltipProviderContext } from "../__chunks/F4IYJ42G.js"; import { useHovercard } from "../__chunks/ZFX5QU3H.js"; import "../__chunks/X7QOZUD3.js"; import "../__chunks/EM5CXX6A.js"; import "../__chunks/G7GW6PWC.js"; import { createDialogComponent } from "../__chunks/DVTPF4J4.js"; import "../__chunks/WAGAC6PJ.js"; import "../__chunks/AOQQTIBO.js"; import "../__chunks/5M6RIVE2.js"; import "../__chunks/W3VI7GFU.js"; import "../__chunks/XX67R432.js"; import "../__chunks/ZWYATQFU.js"; import "../__chunks/6GXEOXGT.js"; import "../__chunks/HP6HHD56.js"; import "../__chunks/HLTQOHKZ.js"; import "../__chunks/TOU75OXH.js"; import "../__chunks/BGQ3KQ5M.js"; import "../__chunks/YKJECYU7.js"; import "../__chunks/CZ4GFWYL.js"; import "../__chunks/Z5GCVBAY.js"; import "../__chunks/IGR4SXG2.js"; import "../__chunks/677M2CI3.js"; import "../__chunks/S7U6BLGA.js"; import "../__chunks/JEWPFJH2.js"; import "../__chunks/3NDVDEB4.js"; import "../__chunks/AOUGVQZ3.js"; import "../__chunks/K2ZF5NU7.js"; import "../__chunks/63XF7ACK.js"; import "../__chunks/KFH4SEIX.js"; import "../__chunks/BM6PGYQY.js"; import "../__chunks/WYCIER3C.js"; import "../__chunks/XL7CSKGW.js"; import "../__chunks/MTZPJQMC.js"; import "../__chunks/RS7LB2H4.js"; import "../__chunks/S6EF7IVO.js"; import "../__chunks/PFRGBC2K.js"; import "../__chunks/SWN3JYXT.js"; import "../__chunks/YV4JVR4I.js"; import { createElement, createHook, forwardRef } from "../__chunks/LMDWO4NN.js"; import { useWrapElement } from "../__chunks/ABQUS43J.js"; import "../__chunks/SK3NAZA3.js"; import { __objRest, __spreadProps, __spreadValues } from "../__chunks/3YLGPPWQ.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(_a) { var _b = _a, { store, portal = true, gutter = 8, preserveTabOrder = false, hideOnHoverOutside = true, hideOnInteractOutside = true } = _b, props = __objRest(_b, [ "store", "portal", "gutter", "preserveTabOrder", "hideOnHoverOutside", "hideOnInteractOutside" ]); 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 = __spreadValues({ role }, props); props = useHovercard(__spreadProps(__spreadValues({}, 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 };