UNPKG

@mantine/core

Version:

React components library focused on usability, accessibility and developer experience

46 lines (45 loc) 1.75 kB
"use client"; import { useProps } from "../../../core/MantineProvider/use-props/use-props.mjs"; import { factory } from "../../../core/factory/factory.mjs"; import { useMenuContext } from "../Menu.context.mjs"; import { MenuSelectableItem } from "../MenuSelectableItem/MenuSelectableItem.mjs"; import Menu_module_default from "../Menu.module.mjs"; import { MenuRadioGroupContext } from "../MenuRadioGroup/MenuRadioGroup.context.mjs"; import { RadioIcon } from "../../Radio/RadioIcon.mjs"; import { use } from "react"; import { jsx } from "react/jsx-runtime"; //#region packages/@mantine/core/src/components/Menu/MenuRadioItem/MenuRadioItem.tsx const MenuRadioItem = factory((_props) => { const { classNames, className, style, styles, vars, color, closeMenuOnClick, rightSection, children, disabled, "data-disabled": dataDisabled, value, checked, onChange, checkIcon, ref, ...others } = useProps("MenuRadioItem", null, _props); const ctx = useMenuContext(); const groupCtx = use(MenuRadioGroupContext); const _checked = checked ?? (groupCtx ? groupCtx.value === value : false); return /* @__PURE__ */ jsx(MenuSelectableItem, { role: "menuitemradio", checked: _checked, indicator: checkIcon ?? ctx.checkIcon ?? /* @__PURE__ */ jsx(RadioIcon, { size: 5 }), onSelect: () => { if (!_checked) { if (onChange) onChange(value); else if (groupCtx) groupCtx.onChange(value); } }, color, closeMenuOnClick, rightSection, disabled, dataDisabled, className, style, styles, classNames, buttonRef: ref, others, children }); }); MenuRadioItem.classes = Menu_module_default; MenuRadioItem.displayName = "@mantine/core/MenuRadioItem"; //#endregion export { MenuRadioItem }; //# sourceMappingURL=MenuRadioItem.mjs.map