UNPKG

@useloops/design-system

Version:

The official React based Loops design system

2 lines (1 loc) 2.64 kB
"use strict";var e=require("react/jsx-runtime"),i=require("@mui/lab"),t=require("@mui/lab/Timeline"),n=require("@mui/material"),r=require("motion/react"),o=require("react"),l=require("../../BrandCore/Icon/Icon.js"),s=require("../../WebCore/Button/Button.js"),c=require("./StyledTimeline.js");function a(e){return e&&e.__esModule?e:{default:e}}var d=a(t);const u=({children:i,complete:t,onClick:n})=>t?e.jsx(c.StyledBoxWrapper,{children:i}):e.jsx(c.StyledLinkWrapper,{underline:"none",component:"button",onClick:n,target:"_self",children:i}),m=({complete:i,title:t,description:n,onClick:r})=>e.jsx(c.ItemContainer,{children:e.jsxs(u,{complete:i,onClick:r,children:[e.jsx(c.TitleText,{component:"p",variation:"lg",children:t}),!i&&e.jsx(l.default,{name:"arrow-right",size:16}),!i&&n&&e.jsx(c.DescriptionText,{variation:"lg",component:"p",children:n})]})}),x=({item:t,showConnector:n})=>{const{complete:r,title:o,description:s,onClick:a}=t;return e.jsxs(i.TimelineItem,{children:[e.jsxs(i.TimelineSeparator,{children:[e.jsx(c.StyledDot,{completed:r,children:r?e.jsx(l.default,{name:"badge-tick-in-circle",size:24}):void 0}),n&&e.jsx(i.TimelineConnector,{sx:{backgroundColor:e=>e.custom.palette.icon.disabled}})]}),t&&e.jsx(i.TimelineContent,{sx:{pt:0},children:e.jsx(m,{complete:r,title:o,description:s,onClick:a})})]})},p={initial:{height:"auto",transition:{duration:0}},animate:e=>({height:e,transition:{duration:.4,ease:[.645,.045,.355,1]}})};module.exports=({expanded:t,onToggleExpanded:c,items:a})=>{const u=a.find(e=>!e.complete),m=o.useMemo(()=>t?a:[u],[t,a,u]),h=o.useRef(null),[j,g]=o.useState(),f=o.useCallback(()=>{if(!h.current)return;const e=h.current.scrollHeight;g(e)},[a]);return o.useEffect(()=>{f()},[t,f]),o.useEffect(()=>{const e=new ResizeObserver(f);return h.current&&e.observe(h.current),()=>e.disconnect()},[f]),e.jsx(r.motion.div,{variants:p,initial:"initial",animate:"auto"===j?"initial":["initial","animate"],custom:j,style:{overflow:"hidden"},children:e.jsx("div",{ref:h,style:{display:"flex"},children:e.jsxs(d.default,{sx:{paddingLeft:e=>e.spacing(e.custom.padding.xs),marginBottom:0,[`& .${i.timelineItemClasses.root}`]:{minHeight:0,":before":{flex:0,padding:0}}},children:[m.map((i,t)=>{const n=t<m.length-1;return i&&i?.title===u?.title?e.jsx(x,{item:i,showConnector:m.length>1?n:!!u?.description},`${i.title}-${i.complete}`):i&&e.jsx(x,{item:i,showConnector:n},i.title)}),!t&&e.jsx(n.Box,{sx:{marginTop:e=>e.spacing(e.custom.margin.md),alignSelf:"center"},children:e.jsx(s,{endIcon:e.jsx(l.default,{name:"chevron-down",size:16}),sizing:"xs",variation:"outlined",onClick:c,children:"Show more"})})]})})})};