@arolariu/components
Version:
🎨 70+ beautiful, accessible React components built on Base UI. TypeScript-first, CSS Modules styling, tree-shakeable, SSR-ready. Perfect for modern web apps, design systems & rapid prototyping. Zero config, maximum flexibility! ⚡
75 lines (74 loc) • 2.87 kB
JavaScript
"use client";
import { jsx } from "react/jsx-runtime";
import { mergeProps } from "@base-ui/react/merge-props";
import { Popover } from "@base-ui/react/popover";
import { useRender } from "@base-ui/react/use-render";
import { cn } from "../../lib/utilities.js";
import popover_module from "./popover.module.js";
import * as __rspack_external_react from "react";
function popover_Popover(props) {
return /*#__PURE__*/ jsx(Popover.Root, {
...props
});
}
const PopoverTrigger = /*#__PURE__*/ __rspack_external_react.forwardRef((props, ref)=>{
const { asChild = false, children, className, render, ...otherProps } = props;
const renderProp = asChild && /*#__PURE__*/ __rspack_external_react.isValidElement(children) ? children : render;
return /*#__PURE__*/ jsx(Popover.Trigger, {
ref: ref,
...otherProps,
render: useRender({
defaultTagName: "button",
render: renderProp,
props: mergeProps({
className
}, {})
}),
children: renderProp ? void 0 : children
});
});
function PopoverAnchor(props) {
const { asChild = false, children, className, render, ...otherProps } = props;
const renderProp = asChild && /*#__PURE__*/ __rspack_external_react.isValidElement(children) ? children : render;
return useRender({
defaultTagName: "div",
render: renderProp,
props: mergeProps({
className: cn(popover_module.anchor, className)
}, otherProps, {
children: renderProp ? void 0 : children
})
});
}
const PopoverContent = /*#__PURE__*/ __rspack_external_react.forwardRef((props, ref)=>{
const { className, children, render, sideOffset = 4, ...otherProps } = props;
return /*#__PURE__*/ jsx(Popover.Portal, {
children: /*#__PURE__*/ jsx(Popover.Positioner, {
sideOffset: sideOffset,
...otherProps,
render: useRender({
defaultTagName: "div",
props: mergeProps({
className: popover_module.positioner
}, {})
}),
children: /*#__PURE__*/ jsx(Popover.Popup, {
ref: ref,
render: useRender({
defaultTagName: "div",
render: render,
props: mergeProps({
className: cn(popover_module.popup, className)
}, {})
}),
children: children
})
})
});
});
popover_Popover.displayName = "Popover";
PopoverTrigger.displayName = "PopoverTrigger";
PopoverAnchor.displayName = "PopoverAnchor";
PopoverContent.displayName = "PopoverContent";
export { PopoverAnchor, PopoverContent, PopoverTrigger, popover_Popover as Popover };
//# sourceMappingURL=popover.js.map