UNPKG

@styleless-ui/react

Version:

Completely unstyled, headless and accessible React UI components.

1 lines 2.12 kB
var e=this&&this.__assign||function(){return e=Object.assign||function(e){for(var t,n=1,o=arguments.length;n<o;n++)for(var r in t=arguments[n])Object.prototype.hasOwnProperty.call(t,r)&&(e[r]=t[r]);return e},e.apply(this,arguments)},t=this&&this.__rest||function(e,t){var n={};for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&t.indexOf(o)<0&&(n[o]=e[o]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var r=0;for(o=Object.getOwnPropertySymbols(e);r<o.length;r++)t.indexOf(o[r])<0&&Object.prototype.propertyIsEnumerable.call(e,o[r])&&(n[o[r]]=e[o[r]])}return n};import{jsx as n}from"react/jsx-runtime";import*as o from"react";import{disableUserSelectCSSProperties as r}from"../../internals";import{componentWithForwardedRef as l,useControlledProp as a,useEventCallback as i,useForkedRefs as c}from"../../utils";import s from"../context";import{CheckItemRoot as u}from"../slots";import d from"../useMenuItem";var f=l((function(l,f){var m=l.children,h=l.className,p=l.disabled,v=void 0!==p&&p,y=l.checked,b=l.defaultChecked,k=l.onCheckChange,C=l.onSelect,O=l.onClick,M=l.onMouseEnter,g=l.onMouseLeave,E=l.style,x=t(l,["children","className","disabled","checked","defaultChecked","onCheckChange","onSelect","onClick","onMouseEnter","onMouseLeave","style"]),j=o.useContext(s),I=o.useRef(null),L=c(f,I),w=a(y,b,!1),P=w[0],S=w[1],_=!(!j||!I.current)&&j.activeElement===I.current,A={disabled:v,active:_,selected:P},N="function"==typeof m?m(A):m,R="function"==typeof h?h(A):h,q=d({disabled:v,isActive:_,onClick:O,onMouseEnter:i((function(e){null==j||j.setActiveElement(I.current),null==M||M(e)})),onMouseLeave:i((function(e){null==j||j.setActiveElement(null),null==g||g(e)})),changeEmitter:i((function(e){null==C||C(e),null==k||k(!P),S(!P)}))});return n("div",e({},x,{ref:function(e){L(e),e&&(null==j||j.registerItem(I))},className:R,onClick:q.handleClick,onMouseEnter:q.handleMouseEnter,onMouseLeave:q.handleMouseLeave,style:E?e(e({},E),r):r,tabIndex:-1,role:"menuitemcheckbox","data-slot":u,"data-active":_?"data-active":void 0,"aria-checked":P,"aria-disabled":v},{children:N}))}));export default f;