@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! ⚡
221 lines (220 loc) • 8.76 kB
JavaScript
"use client";
import { jsx, jsxs } from "react/jsx-runtime";
import { ContextMenu } from "@base-ui/react/context-menu";
import { mergeProps } from "@base-ui/react/merge-props";
import { useRender } from "@base-ui/react/use-render";
import { Check, ChevronRight, Circle } from "lucide-react";
import { cn } from "../../lib/utilities.js";
import context_menu_module from "./context-menu.module.js";
import * as __rspack_external_react from "react";
function context_menu_ContextMenu(props) {
return /*#__PURE__*/ jsx(ContextMenu.Root, {
...props
});
}
const ContextMenuGroup = ContextMenu.Group;
const ContextMenuPortal = ContextMenu.Portal;
const ContextMenuRadioGroup = ContextMenu.RadioGroup;
const ContextMenuSub = ContextMenu.SubmenuRoot;
const ContextMenuTrigger = /*#__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(ContextMenu.Trigger, {
ref: ref,
...otherProps,
render: useRender({
defaultTagName: "div",
render: renderProp,
props: mergeProps({
className
}, {})
}),
children: renderProp ? void 0 : children
});
});
function ContextMenuSubTrigger(props) {
const { className, children, inset = false, render, ...otherProps } = props;
return /*#__PURE__*/ jsxs(ContextMenu.SubmenuTrigger, {
...otherProps,
render: useRender({
defaultTagName: "div",
render: render,
props: mergeProps({
className: cn(context_menu_module.item, context_menu_module.subTrigger, inset && context_menu_module.inset, className)
}, {})
}),
children: [
children,
/*#__PURE__*/ jsx(ChevronRight, {
className: context_menu_module.subTriggerIcon
})
]
});
}
function ContextMenuSubContent(props) {
const { className, children, render, ...otherProps } = props;
return /*#__PURE__*/ jsx(ContextMenu.Positioner, {
...otherProps,
render: useRender({
defaultTagName: "div",
props: mergeProps({
className: context_menu_module.positioner
}, {})
}),
children: /*#__PURE__*/ jsx(ContextMenu.Popup, {
render: useRender({
defaultTagName: "div",
render: render,
props: mergeProps({
className: cn(context_menu_module.content, className)
}, {})
}),
children: children
})
});
}
const ContextMenuContent = /*#__PURE__*/ __rspack_external_react.forwardRef((props, ref)=>{
const { className, children, render, ...otherProps } = props;
return /*#__PURE__*/ jsx(ContextMenuPortal, {
children: /*#__PURE__*/ jsx(ContextMenu.Positioner, {
...otherProps,
render: useRender({
defaultTagName: "div",
props: mergeProps({
className: context_menu_module.positioner
}, {})
}),
children: /*#__PURE__*/ jsx(ContextMenu.Popup, {
ref: ref,
render: useRender({
defaultTagName: "div",
render: render,
props: mergeProps({
className: cn(context_menu_module.content, className)
}, {})
}),
children: children
})
})
});
});
function ContextMenuItem(props) {
const { asChild = false, children, className, inset = false, render, ...otherProps } = props;
const renderProp = asChild && /*#__PURE__*/ __rspack_external_react.isValidElement(children) ? children : render;
return /*#__PURE__*/ jsx(ContextMenu.Item, {
...otherProps,
render: useRender({
defaultTagName: "div",
render: renderProp,
props: mergeProps({
className: cn(context_menu_module.item, inset && context_menu_module.inset, className)
}, {})
}),
children: renderProp ? void 0 : children
});
}
function ContextMenuCheckboxItem(props) {
const { className, children, render, ...otherProps } = props;
return /*#__PURE__*/ jsxs(ContextMenu.CheckboxItem, {
...otherProps,
render: useRender({
defaultTagName: "div",
render: render,
props: mergeProps({
className: cn(context_menu_module.item, context_menu_module.indicatorItem, className)
}, {})
}),
children: [
/*#__PURE__*/ jsx("span", {
className: context_menu_module.indicatorSlot,
children: /*#__PURE__*/ jsx(ContextMenu.CheckboxItemIndicator, {
children: /*#__PURE__*/ jsx(Check, {
className: context_menu_module.indicatorIcon
})
})
}),
children
]
});
}
function ContextMenuRadioItem(props) {
const { className, children, render, ...otherProps } = props;
return /*#__PURE__*/ jsxs(ContextMenu.RadioItem, {
...otherProps,
render: useRender({
defaultTagName: "div",
render: render,
props: mergeProps({
className: cn(context_menu_module.item, context_menu_module.indicatorItem, className)
}, {})
}),
children: [
/*#__PURE__*/ jsx("span", {
className: context_menu_module.indicatorSlot,
children: /*#__PURE__*/ jsx(ContextMenu.RadioItemIndicator, {
children: /*#__PURE__*/ jsx(Circle, {
className: context_menu_module.radioIndicatorIcon
})
})
}),
children
]
});
}
function ContextMenuLabel(props) {
const { className, children, inset = false, render, ...otherProps } = props;
return /*#__PURE__*/ jsx(ContextMenu.GroupLabel, {
...otherProps,
render: useRender({
defaultTagName: "div",
render: render,
props: mergeProps({
className: cn(context_menu_module.label, inset && context_menu_module.inset, className)
}, {})
}),
children: children
});
}
function ContextMenuSeparator(props) {
const { className, render, ...otherProps } = props;
return /*#__PURE__*/ jsx(ContextMenu.Separator, {
...otherProps,
render: useRender({
defaultTagName: "div",
render: render,
props: mergeProps({
className: cn(context_menu_module.separator, className)
}, {})
})
});
}
function ContextMenuShortcut(props) {
const { asChild = false, children, className, render, ...otherProps } = props;
const renderProp = asChild && /*#__PURE__*/ __rspack_external_react.isValidElement(children) ? children : render;
return useRender({
defaultTagName: "span",
render: renderProp,
props: mergeProps({
className: cn(context_menu_module.shortcut, className)
}, otherProps, {
children: renderProp ? void 0 : children
})
});
}
context_menu_ContextMenu.displayName = "ContextMenu";
ContextMenuGroup.displayName = "ContextMenuGroup";
ContextMenuPortal.displayName = "ContextMenuPortal";
ContextMenuRadioGroup.displayName = "ContextMenuRadioGroup";
ContextMenuSub.displayName = "ContextMenuSub";
ContextMenuTrigger.displayName = "ContextMenuTrigger";
ContextMenuSubTrigger.displayName = "ContextMenuSubTrigger";
ContextMenuSubContent.displayName = "ContextMenuSubContent";
ContextMenuContent.displayName = "ContextMenuContent";
ContextMenuItem.displayName = "ContextMenuItem";
ContextMenuCheckboxItem.displayName = "ContextMenuCheckboxItem";
ContextMenuRadioItem.displayName = "ContextMenuRadioItem";
ContextMenuLabel.displayName = "ContextMenuLabel";
ContextMenuSeparator.displayName = "ContextMenuSeparator";
ContextMenuShortcut.displayName = "ContextMenuShortcut";
export { ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger, context_menu_ContextMenu as ContextMenu };
//# sourceMappingURL=context-menu.js.map