@useloops/design-system
Version:
The official React based Loops design system
2 lines (1 loc) • 1.24 kB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("material-ui-popup-state/hooks"),t=require("merge-sx"),s=require("../Popper/Popper.js"),p=require("./MenuItem.js");const o=(t,a,i,n)=>{const u=r.usePopupState({variant:"popper"});return t.children?.length?e.jsx(s,{popperProps:{placement:"right-end"},surfaceProps:{sx:{p:1,width:t.width}},bindOn:["trigger","hover"],state:u,trigger:e.jsx(p,{...t,active:u.isOpen}),children:e.jsx(e.Fragment,{children:t?.children?.map((e,r)=>o(e,r,i))})},`${t.label}-${a}`):e.jsx(p,{...t,onClick:e=>{return r=e,s=t?.onClick,r.stopPropagation(),void(s&&s(r));var r,s},baseState:i,showItemNumber:n,itemNumber:a+1},`${t.label}-${a}`)};exports.default=({menuItems:p,offset:a,placement:i,state:n,parentState:u,bindOn:m=["toggle"],trigger:l,width:c=192,showItemNumbers:d=!1,slotProps:g})=>{const h=n||r.usePopupState({variant:"popper",parentPopupState:u});return e.jsx(s,{popperProps:{modifiers:a&&[{name:"offset",options:{offset:a}}],placement:i,...g?.popper},surfaceProps:{...g?.surface,sx:t.mergeSx({ml:1,p:1,width:c},g?.surface?.sx)},bindOn:m,trigger:l,state:h,children:e.jsx(e.Fragment,{children:p?.map((e,r)=>o(e,r,h,d))})})},exports.mapMenuItems=o;