UNPKG

@styleless-ui/react

Version:

Completely unstyled, headless and accessible React UI components.

1 lines 3.38 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")),slots_1=require("../slots"),useMenuItem_1=__importDefault(require("../useMenuItem")),MenuCheckItemBase=function(e,t){var n=e.children,r=e.className,i=e.disabled,l=void 0!==i&&i,s=e.checked,u=e.defaultChecked,a=e.onCheckChange,o=e.onSelect,c=e.onClick,_=e.onMouseEnter,d=e.onMouseLeave,f=e.style,h=__rest(e,["children","className","disabled","checked","defaultChecked","onCheckChange","onSelect","onClick","onMouseEnter","onMouseLeave","style"]),p=React.useContext(context_1.default),m=React.useRef(null),v=(0,utils_1.useForkedRefs)(t,m),b=(0,utils_1.useControlledProp)(s,u,!1),M=b[0],g=b[1],y=!(!p||!m.current)&&p.activeElement===m.current,C={disabled:l,active:y,selected:M},k="function"==typeof n?n(C):n,O="function"==typeof r?r(C):r,j=(0,useMenuItem_1.default)({disabled:l,isActive:y,onClick:c,onMouseEnter:(0,utils_1.useEventCallback)((function(e){null==p||p.setActiveElement(m.current),null==_||_(e)})),onMouseLeave:(0,utils_1.useEventCallback)((function(e){null==p||p.setActiveElement(null),null==d||d(e)})),changeEmitter:(0,utils_1.useEventCallback)((function(e){null==o||o(e),null==a||a(!M),g(!M)}))});return(0,jsx_runtime_1.jsx)("div",__assign({},h,{ref:function(e){v(e),e&&(null==p||p.registerItem(m))},className:O,onClick:j.handleClick,onMouseEnter:j.handleMouseEnter,onMouseLeave:j.handleMouseLeave,style:f?__assign(__assign({},f),internals_1.disableUserSelectCSSProperties):internals_1.disableUserSelectCSSProperties,tabIndex:-1,role:"menuitemcheckbox","data-slot":slots_1.CheckItemRoot,"data-active":y?"data-active":void 0,"aria-checked":M,"aria-disabled":l},{children:k}))},MenuCheckItem=(0,utils_1.componentWithForwardedRef)(MenuCheckItemBase);exports.default=MenuCheckItem;