@useloops/design-system
Version:
The official React based Loops design system
2 lines (1 loc) • 11 kB
JavaScript
"use strict";var e=require("react/jsx-runtime"),r=require("@mui/material"),t=require("@number-flow/react"),o=require("merge-sx"),a=require("react"),i=require("react-truncate-list"),s=require("../../BrandCore/Icon/Icon.js");require("../../../utils/formValidation/misc.js"),require("../../BrandCore/primitiveVariables.js"),require("../../WebCore/utils/typography.util.js"),require("../../WebCore/AnnualController/AnnualController.js"),require("../../WebCore/SelectItem/SelectItem.js"),require("../../WebCore/Accordion/Accordion.js"),require("../../WebCore/Animations/FadeIn.js");var n=require("../../WebCore/Typography/Typography.js");require("@mui/icons-material"),require("../../WebCore/AutocompleteBaseField/_partials/AutocompleteListbox.js"),require("../../WebCore/AutocompleteBaseField/_partials/StyledPopper.js"),require("../../WebCore/AutocompleteBaseField/_partials/StyledAutocompleteField.js"),require("../../WebCore/AutocompleteBaseField/_partials/AutocompleteChip.js"),require("../../WebCore/AutocompleteBaseField/_partials/StyledAutocompleteInput.js"),require("../../WebCore/Badge/Badge.js"),require("../../WebCore/Breadcrumb/Breadcrumb.js"),require("../../WebCore/Button/Button.js"),require("../../WebCore/ButtonBase/ButtonBase.js"),require("../../WebCore/ButtonTabGroup/_partials/ActiveIndicator.js"),require("../../WebCore/ButtonTabGroup/_partials/ButtonTabsWrapper.js"),require("../../WebCore/ButtonTabGroup/_partials/TabButton.js"),require("../../WebCore/Checkbox/StyledCheckbox.js"),require("../../WebCore/InputFieldBase/InputFieldBase.js"),require("../../WebCore/CreatableAutocomplete/CreatableAutocomplete.js"),require("../../WebCore/InputLabelBase/StyledInputLabelBase.js"),require("../../WebCore/Differential/DifferentialContainer.js"),require("../../WebCore/Differential/DifferentialRadio.js"),require("../../WebCore/DropdownMenu/StyledMenu.js"),require("../../WebCore/ExpandableTypographyClamp/ExpandableTypographyClamp.js"),require("../../WebCore/FormGenerator/FormGenerator.js"),require("../../WebCore/GridOverlay/GridOverlay.js"),require("html-react-parser");var l=require("../../WebCore/IconButton/IconButton.js");require("../../WebCore/IconButtonBase/IconButtonBase.js"),require("../../WebCore/IconButtonGroup/IconButtonGroup.js"),require("../../WebCore/Image/Image.js"),require("../../WebCore/KbdGroup/Kbd.js"),require("../../WebCore/KbdGroup/KbdGroup.js");var u=require("../../WebCore/KeyValueLabel/KeyValueLabel.js"),d=require("../../WebCore/Label/Label.js");require("../../WebCore/Likert/LikertContainer.js"),require("../../WebCore/Likert/LikertLabel.js"),require("../../WebCore/Likert/LikertRadio.js"),require("../../WebCore/Link/StyledLink.js"),require("@lottiefiles/dotlottie-react"),require("../../WebCore/LoopsAiButton/LoopsAiButton.js"),require("markdown-to-jsx");var p=require("../../WebCore/Menu/Menu.js");require("../../WebCore/ModalLayout/_partials/ModalActionsWrapper.js"),require("../../WebCore/ModalLayout/_partials/ModalContentWrapper.js");var c=require("../../WebCore/Surface/Surface.js");require("../../WebCore/NavigationButton/NavigationButton.js"),require("material-ui-popup-state/hooks"),require("../../WebCore/Nudge/NudgeButton.js"),require("../../WebCore/NumberField/NumberField.js"),require("../../BrandCore/colorRamps.js"),require("../../BrandCore/semanticColor.js"),require("../../BrandCore/types.js"),require("../../BrandCore/typography.js"),require("../../WebCore/Progress/Progress.js"),require("../../WebCore/Pill/StyledPill.js");var m=require("../../WebCore/ProgressBar/ProgressBar.js");require("../../WebCore/Radio/StyledRadio.js"),require("../../WebCore/Select/StyledSelect.js"),require("../../WebCore/RankItem/RankItemContainer.js"),require("../../WebCore/RankItem/RankItemLabel.js"),require("../../WebCore/SortableList/SortableList.js"),require("../../WebCore/SortableList/components/SortableItem/SortableItem.js"),require("../../WebCore/SortableList/components/SortableOverlay/SortableOverlay.js"),require("@tiptap/extension-placeholder"),require("@tiptap/starter-kit"),require("mui-tiptap"),require("../../WebCore/RichTextField/StyledRichTextEditor.js");var x=require("../../WebCore/Skeleton/Skeleton.js");require("../../WebCore/Slider/StyledSlider.js"),require("../../WebCore/StarRating/StarRating.js"),require("../../WebCore/Switch/StyledSwitch.js"),require("../../WebCore/Textarea/Textarea.js"),require("../../WebCore/TrialCard/TrialCardContainers.js"),require("../../WebCore/TrialCard/TrialPill.js"),require("../../WebCore/UserMenu/UserMenuButton.js"),require("../../WebCore/VideoModal/VideoModal.js");var b=require("../TestStatus/TestStatus.js");function g(e){return e&&e.__esModule?e:{default:e}}var j=g(t);const C=({animated:t,label:o,primaryText:a,secondaryText:i})=>{const s=a.match(/\d{1,2}:\d{2}/),l=a.split(":"),u=!isNaN(Number(a)),d=i.includes("%")&&!isNaN(Number(i.replace("%","")));return e.jsxs(r.Stack,{sx:{background:e=>e.custom.palette.surface.default,minWidth:"92px",border:e=>`1px solid ${e.custom.palette.neutral[100]}`,borderRadius:1,padding:e=>`${e.spacing(e.custom.padding.sm)} ${e.spacing(e.custom.padding.md)}`,color:e=>e.custom.palette.text.primary,flexShrink:0,height:"100%"},direction:{sm:"row",md:"row",lg:"column"},alignItems:"center",gap:{sm:1,md:1,lg:0},children:[e.jsx(n,{component:"p",sx:{width:"100%",textAlign:{md:"left",lg:"center"},fontSize:e=>e.custom.typography.body.sm},children:o}),e.jsx(n,{component:"h3",sx:{fontSize:e=>({sm:e.custom.typography.body.sm,md:e.custom.typography.body.md,lg:e.custom.typography.body.xxl}),fontWeight:500,flexShrink:0},monospaced:!0,children:e.jsx(e.Fragment,{children:s||u?e.jsx(e.Fragment,{children:s?e.jsxs(e.Fragment,{children:[e.jsx(j.default,{value:Number(l[0]),format:{minimumIntegerDigits:2,useGrouping:!1},animated:t}),":",e.jsx(j.default,{value:Number(l[1]),format:{minimumIntegerDigits:2,useGrouping:!1},animated:t})]}):e.jsx(j.default,{value:Number(a),animated:t})}):e.jsx(e.Fragment,{children:a})})}),e.jsx(n,{component:"p",sx:{color:e=>e.custom.palette.text.secondary,fontSize:e=>e.custom.typography.body.sm,flexShrink:0},monospaced:!0,children:d?e.jsxs(e.Fragment,{children:[e.jsx(j.default,{value:Number(i.replace("%","")),animated:t}),"%"]}):i})]})},y=({animated:t,iconName:a,label:i,value:l,slotProps:u})=>e.jsxs(r.Box,{display:"flex",alignItems:"center",gap:.5,children:[e.jsx(s.default,{name:a,...u?.icon,sx:o.mergeSx({color:e=>e.custom.palette.icon.secondary},u?.icon?.sx)}),e.jsxs(n,{monospaced:!0,component:"p",sx:e=>({fontSize:e=>e.custom.typography.body.xs,color:e=>e.custom.palette.text.primary,"& > span":{color:e=>e.custom.palette.text.secondary,[e.breakpoints.up("lg")]:{display:"inline"},[e.breakpoints.down("lg")]:{display:"none"},[e.containerQueries.up("lg")]:{display:"inline"},[e.containerQueries.down("lg")]:{display:"none"}}}),children:[e.jsx(j.default,{value:l,animated:t})," ",e.jsx("span",{children:i})]})]});module.exports=({animated:t=!0,status:g,menuItems:j,title:h,tags:q,stats:W,user:f,slotProps:S,loading:B=!1,...k})=>{const I=r.useTheme(),[v,T]=a.useState(!1);return e.jsx(c,{variation:"raised",borderradius:"lg",...k,sx:o.mergeSx({padding:e=>e.spacing(e.custom.padding.md),border:e=>`1px solid ${e.custom.palette.stroke.light}`,width:"100%",cursor:"pointer","&:hover .TestItem__Menu":{opacity:1}},k.sx),children:e.jsxs(r.Stack,{component:"article",gap:2,children:[e.jsxs(r.Stack,{component:"header",gap:1,justifyContent:"space-between",children:[e.jsxs(r.Stack,{direction:"row",justifyContent:"space-between",alignItems:"center",gap:1,children:[B?e.jsx(x,{sx:{width:90,height:32}}):e.jsx(b,{status:g,...S?.status}),!B&&Boolean(j?.length)&&e.jsx(p.default,{trigger:e.jsx(l,{icon:e.jsx(s.default,{name:"more-horizontal",size:16}),variation:"outlined",className:"TestItem__Menu",sx:{width:28,aspectRatio:1,borderRadius:"100% !important",transition:"opacity 0.3s ease",opacity:0,"&:focus":{background:e=>`${e.custom.palette.interaction.press} !important`,opacity:1}}}),bindOn:["toggle"],menuItems:j,width:128,offset:[0,8],placement:"bottom-end",...S?.menu})]}),B?e.jsx(x,{}):e.jsx(n,{component:"h1",weight:"bold",...S?.title,sx:o.mergeSx({fontSize:e=>e.custom.typography.body.xl},S?.title?.sx),children:h})]}),e.jsx(r.Box,{children:B?e.jsx(r.Box,{display:"flex",flexDirection:"row",gap:.5,children:[...new Array(3).fill(void 0)].map((r,t)=>e.jsx(x,{sx:{maxWidth:50}},`test-item-skeleton-${t}`))}):Boolean(q?.length)&&e.jsx(i.TruncatedList,{style:{display:"flex",flexWrap:"wrap",alignItems:"center",maxHeight:56,gap:I.m.xs,listStyleType:"none",paddingInlineStart:0,margin:0,...v&&{maxHeight:"none"}},alwaysShowTruncator:v,renderTruncator:({hiddenItemsCount:r})=>r>0?e.jsx(d,{body:`+${r}`,weight:"light",onClick:e=>{e.stopPropagation(),T(!0)},...S?.tagsExpand,sx:o.mergeSx({background:e=>e.custom.palette.neutral[50]},S?.tagsExpand?.sx)}):e.jsx(l,{sizing:"sm",icon:e.jsx(s.default,{name:"chevron-up",size:16}),onClick:e=>{e.stopPropagation(),T(!1)},...S?.tagsCollapse,sx:o.mergeSx({color:e=>e.custom.palette.icon.primary},S?.tagsCollapse?.sx)}),children:q.map(({category:r,selection:t})=>e.jsx(u,{keyString:r,valueString:t},r))})}),!B&&W?.progress&&e.jsx(c,{variation:"sunken",borderradius:"md",sx:{border:e=>`1px solid ${e.custom.palette.neutral[100]}`,padding:e=>e.spacing(e.custom.padding.md)},children:e.jsxs(r.Stack,{gap:2,children:[e.jsx(m,{variation:"determinate",value:W.progress.percentage}),e.jsxs(r.Box,{gap:{sm:.5,md:1},justifyContent:"stretch",sx:e=>({display:"grid",[e.breakpoints.up("lg")]:{gridTemplateColumns:"repeat(3, 1fr)"},[e.breakpoints.down("lg")]:{gridTemplateColumns:"auto"},[e.containerQueries.up("lg")]:{gridTemplateColumns:"repeat(3, 1fr)"},[e.containerQueries.down("lg")]:{gridTemplateColumns:"auto"}}),children:[e.jsx(r.Box,{flexBasis:0,flexGrow:1,children:e.jsx(C,{animated:t,label:"Completed",primaryText:W.progress.completed.toString(),secondaryText:`of ${W.progress.total}`})}),e.jsx(r.Box,{flexBasis:0,flexGrow:1,children:e.jsx(C,{animated:t,label:"Incomplete",primaryText:W.progress.incomplete.toString(),secondaryText:`${W.progress.incompletePercentage}%`})}),e.jsx(r.Box,{flexBasis:0,flexGrow:1,children:e.jsx(C,{animated:t,label:"Duration",primaryText:W.progress.averageDuration,secondaryText:"average"})})]})]})}),e.jsxs(r.Box,{component:"footer",display:"flex",flexDirection:"row",justifyContent:f?"space-between":"end",gap:1,children:[f&&e.jsx(r.Box,{display:"flex",alignItems:"center",gap:1,children:B?e.jsxs(e.Fragment,{children:[e.jsx(x,{sx:{borderRadius:"50%",width:24,aspectRatio:1,flexShrink:0}}),e.jsx(x,{sx:{width:100}})]}):e.jsx(e.Fragment,{children:e.jsx(n,{component:"p",clamp:1,sx:{fontSize:e=>e.custom.typography.body.xs,color:e=>e.custom.palette.text.secondary},children:f.activityDescription})})}),!B&&"draft"!==g&&e.jsxs(r.Box,{display:"flex",alignItems:"center",gap:2,flexShrink:0,children:[e.jsx(y,{animated:t,iconName:"data-bar",label:"answers",value:W?.count?.answers??0}),e.jsx(y,{animated:t,iconName:"comment-filled",label:"comments",value:W?.count?.comments??0,slotProps:{icon:{size:20}}})]})]})]})})};