UNPKG

@ariakit/react-core

Version:

Ariakit React core

65 lines (62 loc) 1.79 kB
"use client"; import { usePopoverAnchor } from "./HMCFFQCB.js"; import { useDialogDisclosure } from "./ZTXFEM5L.js"; import { PopoverScopedContextProvider, usePopoverProviderContext } from "./Y67KZUMI.js"; import { createElement, createHook, forwardRef } from "./VOQWLFSQ.js"; import { useEvent, useWrapElement } from "./5GGHRIN3.js"; import { __objRest, __spreadProps, __spreadValues } from "./3YLGPPWQ.js"; // src/popover/popover-disclosure.tsx import { invariant } from "@ariakit/core/utils/misc"; import { jsx } from "react/jsx-runtime"; var TagName = "button"; var usePopoverDisclosure = createHook(function usePopoverDisclosure2(_a) { var _b = _a, { store } = _b, props = __objRest(_b, ["store"]); const context = usePopoverProviderContext(); store = store || context; invariant( store, process.env.NODE_ENV !== "production" && "PopoverDisclosure must receive a `store` prop or be wrapped in a PopoverProvider component." ); const onClickProp = props.onClick; const onClick = useEvent((event) => { store == null ? void 0 : store.setAnchorElement(event.currentTarget); onClickProp == null ? void 0 : onClickProp(event); }); props = useWrapElement( props, (element) => /* @__PURE__ */ jsx(PopoverScopedContextProvider, { value: store, children: element }), [store] ); props = __spreadProps(__spreadValues({}, props), { onClick }); props = usePopoverAnchor(__spreadValues({ store }, props)); props = useDialogDisclosure(__spreadValues({ store }, props)); return props; }); var PopoverDisclosure = forwardRef(function PopoverDisclosure2(props) { const htmlProps = usePopoverDisclosure(props); return createElement(TagName, htmlProps); }); export { usePopoverDisclosure, PopoverDisclosure };