UNPKG

@styleless-ui/react

Version:

Completely unstyled, headless and accessible React UI components.

1 lines 3.54 kB
"use strict";var __assign=this&&this.__assign||function(){return __assign=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e},__assign.apply(this,arguments)},__createBinding=this&&this.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var i=Object.getOwnPropertyDescriptor(t,n);i&&!("get"in i?!t.__esModule:i.writable||i.configurable)||(i={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,i)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),__importStar=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&__createBinding(t,e,n);return __setModuleDefault(t,e),t},__rest=this&&this.__rest||function(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(r=Object.getOwnPropertySymbols(e);i<r.length;i++)t.indexOf(r[i])<0&&Object.prototype.propertyIsEnumerable.call(e,r[i])&&(n[r[i]]=e[r[i]])}return n},__importDefault=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0});var jsx_runtime_1=require("react/jsx-runtime"),React=__importStar(require("react")),internals_1=require("../../internals"),utils_1=require("../../utils"),context_1=__importDefault(require("../context")),context_2=__importDefault(require("../RadioGroup/context")),slots_1=require("../slots"),useMenuItem_1=__importDefault(require("../useMenuItem")),MenuRadioItemBase=function(e,t){var n=e.children,r=e.className,i=e.disabled,o=void 0!==i&&i,u=e.value,a=e.onSelect,l=e.onClick,s=e.onMouseEnter,c=e.onMouseLeave,_=e.style,d=__rest(e,["children","className","disabled","value","onSelect","onClick","onMouseEnter","onMouseLeave","style"]),f=React.useContext(context_1.default),p=React.useContext(context_2.default);"production"!==process.env.NODE_ENV&&(p||console.error("[StylelessUI][Menu.RadioItem]: You can't use `<Menu.RadioItem>` outside of the `<Menu.RadioGroup>`."));var v=React.useRef(null),m=(0,utils_1.useForkedRefs)(t,v),b=!(!f||!v.current)&&f.activeElement===v.current,h=(null==p?void 0:p.value)===u,M={disabled:o,active:b,selected:h},y="function"==typeof n?n(M):n,g="function"==typeof r?r(M):r,O=(0,useMenuItem_1.default)({disabled:o,isActive:b,onClick:l,onMouseEnter:(0,utils_1.useEventCallback)((function(e){null==f||f.setActiveElement(v.current),null==s||s(e)})),onMouseLeave:(0,utils_1.useEventCallback)((function(e){null==f||f.setActiveElement(null),null==c||c(e)})),changeEmitter:(0,utils_1.useEventCallback)((function(e){null==a||a(e),null==p||p.onValueChange(u)}))});return(0,jsx_runtime_1.jsx)("div",__assign({},d,{role:"menuitemradio",ref:function(e){m(e),e&&(null==f||f.registerItem(v))},"data-slot":slots_1.RadioItemRoot,className:g,tabIndex:-1,onClick:O.handleClick,onMouseEnter:O.handleMouseEnter,onMouseLeave:O.handleMouseLeave,"aria-checked":h,"aria-disabled":o,"data-active":b?"":void 0,style:_?__assign(__assign({},_),internals_1.disableUserSelectCSSProperties):internals_1.disableUserSelectCSSProperties},{children:y}))},MenuRadioItem=(0,utils_1.componentWithForwardedRef)(MenuRadioItemBase);exports.default=MenuRadioItem;