@nex-ui/react
Version:
🎉 A beautiful, modern, and reliable React component library.
38 lines (35 loc) • 1.11 kB
JavaScript
"use client";
import { jsx } from 'react/jsx-runtime';
import { useId, useMemo } from 'react';
import { PopoverProvider } from './PopoverContext.mjs';
import { useDefaultProps } from '../utils/useDefaultProps.mjs';
import { Popper } from '../popper/Popper.mjs';
const Popover = (inProps)=>{
const props = useDefaultProps({
name: 'Popover',
props: inProps
});
const id = useId();
const { children, open, defaultOpen, onOpenChange, openDelay = 0, closeDelay = 0, id: idProp, ...remainingProps } = props;
const rootId = idProp ?? `nui-popover-${id}`;
const ctx = useMemo(()=>({
id: rootId,
...remainingProps
}), [
remainingProps,
rootId
]);
return /*#__PURE__*/ jsx(Popper, {
open: open,
openDelay: openDelay,
closeDelay: closeDelay,
defaultOpen: defaultOpen,
onOpenChange: onOpenChange,
children: /*#__PURE__*/ jsx(PopoverProvider, {
value: ctx,
children: children
})
});
};
Popover.displayName = 'Popover';
export { Popover };