UNPKG

@lanaco/lnc-react-ui

Version:

React component library

7 lines (6 loc) 2.03 kB
"use strict";const o=require("react/jsx-runtime"),r=require("react"),t=require("./index-BPVoEhTF.cjs"),I=require("./emotion-styled.browser.esm-Cle7tAM9.cjs"),S=require("./utils-NZLCh-J5.cjs"),b=require("./motion-B_VPZaJq.cjs"),M=require("./emotion-element-f0de968e.browser.esm-B7k6i6lC.cjs"),q=require("./index-DZoWlChs.cjs"),j=I.newStyled(b.motion.div)` margin-left: 0.3rem; padding-left: 0.3rem; border-left: ${s=>`2px solid ${S.getColorRgbaValue(s.theme,"MenuItem",s.color,"focus","background")}`}; border-radius: 2px; `,p=r.forwardRef((s,O)=>{const{__TYPE__:h="NESTED_ITEM",item:c,onItemSelected:u=()=>{},defaultOpen:y=!1,animation:d={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:T="",style:_={},color:n="primary",size:i="small",children:E,...g}=s,N=M.useTheme(),[a,f]=r.useState(y),P=()=>{f(!a)},x=r.cloneElement(c,{isNested:!0,showNested:a,toggleNested:P,color:n,size:i}),w=r.Children.map(E,(e,D)=>{var m,l;return r.isValidElement(e)&&(e.props.__TYPE__=="MENU_ITEM"||((m=e==null?void 0:e.type)==null?void 0:m.displayName)==="MENU_ITEM"||e.props.__TYPE__=="NESTED_ITEM"||((l=e==null?void 0:e.type)==null?void 0:l.displayName)==="NESTED_ITEM")?r.cloneElement(e,{color:e.props.color?e.props.color:n,size:i,onItemSelected:u}):e});return o.jsxs(o.Fragment,{children:[o.jsx(o.Fragment,{children:x}),o.jsx(q.AnimatePresence,{children:a&&o.jsx(j,{...d,theme:N,color:n,size:i,className:"nested-item-lnc "+T,style:_,...g,children:w})})]})});p.propTypes={item:t.PropTypes.oneOfType([t.PropTypes.string,t.PropTypes.element]),defaultOpen:t.PropTypes.bool,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;