UNPKG

@ariakit/react-core

Version:

Ariakit React core

133 lines (131 loc) 3.98 kB
"use client"; import { TooltipScopedContextProvider, useTooltipProviderContext } from "../__chunks/L3J7PHFC.js"; import { useHovercard } from "../__chunks/IUFFNNPK.js"; import "../__chunks/X7QOZUD3.js"; import "../__chunks/7Z7JH52O.js"; import "../__chunks/C6DAL6ZN.js"; import { createDialogComponent } from "../__chunks/CAGBPNDP.js"; import "../__chunks/M5DFOEFU.js"; import "../__chunks/AOQQTIBO.js"; import "../__chunks/5M6RIVE2.js"; import "../__chunks/S2F2XXEH.js"; import "../__chunks/DXGKYUAD.js"; import "../__chunks/LC6GJMGV.js"; import "../__chunks/6GXEOXGT.js"; import "../__chunks/JZEJYXOQ.js"; import "../__chunks/HLTQOHKZ.js"; import "../__chunks/PVECYOSC.js"; import "../__chunks/SOMPWLIQ.js"; import "../__chunks/W6WVJJEY.js"; import "../__chunks/CZ4GFWYL.js"; import "../__chunks/Z5GCVBAY.js"; import "../__chunks/IGR4SXG2.js"; import "../__chunks/677M2CI3.js"; import "../__chunks/S7U6BLGA.js"; import "../__chunks/FVE2C5B3.js"; import "../__chunks/3NDVDEB4.js"; import "../__chunks/AOUGVQZ3.js"; import "../__chunks/K2ZF5NU7.js"; import "../__chunks/63XF7ACK.js"; import "../__chunks/K4R5DNTX.js"; import "../__chunks/Y2U4BRIM.js"; import "../__chunks/T22PY7TE.js"; import "../__chunks/QJ4LGO2N.js"; import "../__chunks/Y67KZUMI.js"; import "../__chunks/T2AZQXQU.js"; import "../__chunks/ABN76PSX.js"; import "../__chunks/OE2EFRVA.js"; import "../__chunks/SWN3JYXT.js"; import "../__chunks/RTNCFSKZ.js"; import { createElement, createHook, forwardRef } from "../__chunks/VOQWLFSQ.js"; import { useWrapElement } from "../__chunks/5GGHRIN3.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 };