@liveblocks/react-ui
Version:
A set of React pre-built components for the Liveblocks products. Liveblocks is the all-in-one toolkit to build collaborative products like Figma, Notion, and more.
93 lines (86 loc) • 2.75 kB
JavaScript
"use client";
;
var jsxRuntime = require('react/jsx-runtime');
var DropdownMenuPrimitive = require('@radix-ui/react-dropdown-menu');
var react = require('react');
var config = require('../../config.cjs');
var constants = require('../../constants.cjs');
var overrides = require('../../overrides.cjs');
var classNames = require('../../utils/class-names.cjs');
function _interopNamespaceDefault(e) {
var n = Object.create(null);
if (e) {
Object.keys(e).forEach(function (k) {
if (k !== 'default') {
var d = Object.getOwnPropertyDescriptor(e, k);
Object.defineProperty(n, k, d.get ? d : {
enumerable: true,
get: function () { return e[k]; }
});
}
});
}
n.default = e;
return Object.freeze(n);
}
var DropdownMenuPrimitive__namespace = /*#__PURE__*/_interopNamespaceDefault(DropdownMenuPrimitive);
function Dropdown({
children,
content,
defaultOpen,
open,
onOpenChange,
className,
...props
}) {
const $ = overrides.useOverrides();
const { portalContainer } = config.useLiveblocksUIConfig();
return /* @__PURE__ */ jsxRuntime.jsxs(DropdownMenuPrimitive__namespace.Root, {
defaultOpen,
open,
onOpenChange,
dir: $.dir,
children: [
children,
/* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Portal, {
container: portalContainer,
children: /* @__PURE__ */ jsxRuntime.jsx(DropdownMenuPrimitive__namespace.Content, {
className: classNames.classNames(
"lb-root lb-portal lb-elevation lb-dropdown",
className
),
sideOffset: constants.FLOATING_ELEMENT_SIDE_OFFSET,
collisionPadding: constants.FLOATING_ELEMENT_COLLISION_PADDING,
...props,
children: content
})
})
]
});
}
const DropdownItem = react.forwardRef(
({ children, className, icon, ...props }, forwardedRef) => {
return /* @__PURE__ */ jsxRuntime.jsxs(DropdownMenuPrimitive__namespace.DropdownMenuItem, {
className: classNames.classNames("lb-dropdown-item", className),
...props,
ref: forwardedRef,
children: [
icon ? /* @__PURE__ */ jsxRuntime.jsx("span", {
className: "lb-dropdown-item-icon lb-icon-container",
children: icon
}) : null,
children ? /* @__PURE__ */ jsxRuntime.jsx("span", {
className: "lb-dropdown-item-label",
children
}) : null
]
});
}
);
Object.defineProperty(exports, 'DropdownTrigger', {
enumerable: true,
get: function () { return DropdownMenuPrimitive.DropdownMenuTrigger; }
});
exports.Dropdown = Dropdown;
exports.DropdownItem = DropdownItem;
//# sourceMappingURL=Dropdown.cjs.map