@lanaco/lnc-react-ui
Version:
React component library
7 lines (6 loc) • 2.25 kB
JavaScript
"use strict";const o=require("react/jsx-runtime"),r=require("react"),t=require("./index-BPVoEhTF.cjs"),M=require("./emotion-styled.browser.esm-Cle7tAM9.cjs"),w=require("./utils-NZLCh-J5.cjs"),q=require("./motion-B_VPZaJq.cjs"),j=require("./emotion-element-f0de968e.browser.esm-B7k6i6lC.cjs"),O=require("./index-DZoWlChs.cjs"),$=M.newStyled(q.motion.div)`
${n=>n.tuckIn==!0&&`margin-left: ${n.tuckInSize};`}
${n=>n.tuckIn==!0&&`padding-left: ${n.tuckInSize};`}
${n=>n.tuckIn==!0&&`border-left: 2px solid ${w.getColorRgbaValue(n.theme,"MenuItem",n.color,"focus","background","backgroundOpacity")};`}
border-radius: 2px;
`,p=r.forwardRef((n,m)=>{const{item:l,onItemSelected:y=()=>{},defaultOpen:d=!1,tuckIn:T=!0,tuckInSize:_="0.3rem",animation:E={animate:{opacity:1,height:"auto"},exit:{opacity:0,height:0},initial:{opacity:0,height:0},transition:{type:"tween",duration:.15,opacity:{duration:.15,ease:"easeOut"},height:{duration:.15}}},className:g="",style:I={},color:i="primary",size:a="small",__TYPE__:h="NESTED_ITEM",children:N,...P}=n,f=j.useTheme(),[s,S]=r.useState(d),x=()=>{S(!s)},b=r.cloneElement(l,{isNested:!0,showNested:s,toggleNested:x,color:i,size:a}),k=r.Children.map(N,(e,z)=>{var c,u;if(r.isValidElement(e)&&(e.props.__TYPE__=="MENU_ITEM"||((c=e==null?void 0:e.type)==null?void 0:c.displayName)==="MENU_ITEM"||e.props.__TYPE__=="NESTED_ITEM"||((u=e==null?void 0:e.type)==null?void 0:u.displayName)==="NESTED_ITEM"))return r.cloneElement(e,{color:e.props.color?e.props.color:i,size:a,onItemSelected:y})});return o.jsxs(o.Fragment,{children:[o.jsx(o.Fragment,{children:b}),o.jsx(O.AnimatePresence,{children:s&&o.jsx($,{theme:f,tuckIn:T,tuckInSize:_,color:i,size:a,className:"nested-item-lnc "+g,style:I,ref:m,show:s,...E,...P,children:k})})]})});p.propTypes={item:t.PropTypes.oneOfType([t.PropTypes.string,t.PropTypes.element]),defaultOpen:t.PropTypes.bool,tuckIn:t.PropTypes.bool,tuckInSize:t.PropTypes.string,animation:t.PropTypes.object,className:t.PropTypes.string,style:t.PropTypes.object,color:t.PropTypes.oneOf(["primary","secondary","success","warning","danger","information","neutral","gray"]),size:t.PropTypes.oneOf(["small","medium","large"]),__TYPE__:t.PropTypes.string};p.displayName="NESTED_ITEM";module.exports=p;