UNPKG

@useloops/design-system

Version:

The official React based Loops design system

2 lines (1 loc) 6.54 kB
import{jsx as e,Fragment as o,jsxs as t}from"react/jsx-runtime";import{useTheme as r,Box as i}from"@mui/material";import a from"@number-flow/react";import{mergeSx as n}from"merge-sx";import{useState as s,useEffect as p}from"react";import"../../../../../utils/formValidation/misc.js";import"../../../../BrandCore/Icon/Icon.js";import"../../../../BrandCore/primitiveVariables.js";import"../../../../WebCore/utils/typography.util.js";import"../../../../WebCore/AnnualController/AnnualController.js";import"../../../../WebCore/Accordion/Accordion.js";import l from"../../../../WebCore/Typography/Typography.js";import"../../../../WebCore/Badge/Badge.js";import"../../../../WebCore/Breadcrumb/Breadcrumb.js";import"../../../../WebCore/Button/Button.js";import"../../../../WebCore/ButtonBase/ButtonBase.js";import"../../../../WebCore/Checkbox/StyledCheckbox.js";import"../../../../WebCore/InputFieldBase/InputFieldBase.js";import"../../../../WebCore/CreatableAutocomplete/CreatableAutocomplete.js";import"@mui/icons-material";import"../../../../WebCore/InputLabelBase/StyledInputLabelBase.js";import"../../../../WebCore/Differential/DifferentialContainer.js";import"../../../../WebCore/Differential/DifferentialRadio.js";import"../../../../WebCore/DropdownMenu/StyledMenu.js";import"../../../../WebCore/ExpandableTypographyClamp/ExpandableTypographyClamp.js";import"../../../../WebCore/FormGenerator/FormGenerator.js";import"../../../../WebCore/GridOverlay/GridOverlay.js";import"html-react-parser";import"../../../../WebCore/IconButton/IconButton.js";import"../../../../WebCore/IconButtonBase/IconButtonBase.js";import"../../../../WebCore/IconButtonGroup/IconButtonGroup.js";import"../../../../WebCore/Image/Image.js";import"../../../../WebCore/Label/Label.js";import"../../../../WebCore/Likert/LikertContainer.js";import"../../../../WebCore/Likert/LikertLabel.js";import"../../../../WebCore/Likert/LikertRadio.js";import"../../../../WebCore/Link/StyledLink.js";import"@lottiefiles/dotlottie-react";import"../../../../WebCore/LoopsAiButton/LoopsAiButton.js";import"markdown-to-jsx";import"material-ui-popup-state/hooks";import"../../../../WebCore/Surface/Surface.js";import"../../../../WebCore/Menu/MenuItem.js";import"../../../../WebCore/ModalLayout/_partials/ModalActionsWrapper.js";import"../../../../WebCore/ModalLayout/_partials/ModalContentWrapper.js";import"../../../../WebCore/NavigationButton/NavigationButton.js";import"../../../../WebCore/Nudge/NudgeButton.js";import"../../../../WebCore/NumberField/NumberField.js";import"../../../../BrandCore/colorRamps.js";import"../../../../BrandCore/semanticColor.js";import"../../../../BrandCore/types.js";import"../../../../BrandCore/typography.js";import"../../../../WebCore/Progress/Progress.js";import m from"../../../../WebCore/Tooltip/Tooltip.js";import"../../../../WebCore/Pill/StyledPill.js";import"../../../../WebCore/ProgressBar/ProgressBar.js";import"../../../../WebCore/Radio/StyledRadio.js";import"../../../../WebCore/utils/autocomplete.styles.js";import"../../../../WebCore/Select/AutocompleteListbox.js";import"../../../../WebCore/Select/StyledAutocomplete.js";import"../../../../WebCore/Select/SelectItem.js";import"../../../../WebCore/Select/StyledSelect.js";import"../../../../WebCore/RankItem/RankItemContainer.js";import"../../../../WebCore/RankItem/RankItemLabel.js";import"../../../../WebCore/SortableList/SortableList.js";import"../../../../WebCore/SortableList/components/SortableItem/SortableItem.js";import"../../../../WebCore/SortableList/components/SortableOverlay/SortableOverlay.js";import"@tiptap/extension-placeholder";import"@tiptap/starter-kit";import"mui-tiptap";import"../../../../WebCore/RichTextField/StyledRichTextEditor.js";import d from"../../../../WebCore/Skeleton/Skeleton.js";import"../../../../WebCore/Slider/StyledSlider.js";import"../../../../WebCore/StarRating/StarRating.js";import"../../../../WebCore/Switch/StyledSwitch.js";import"../../../../WebCore/Textarea/Textarea.js";import"../../../../WebCore/TrialCard/TrialCardContainers.js";import"../../../../WebCore/TrialCard/TrialPill.js";import"../../../../WebCore/UserMenu/UserMenuButton.js";import"../../../../WebCore/VideoModal/VideoModal.js";import{getTextColor as c}from"../../utils/getIndicatorColor.js";import{motion as b}from"../../../../../node_modules/framer-motion/dist/es/render/components/motion/proxy.js";const u=({relativePercentage:u,amount:C,color:j,animateBars:W,disabled:y,loading:h,toolTipContent:g,hideAmount:B,disableTooltips:S,checked:f,hidePercentageSymbol:x,slotProps:I})=>{const L=r(),k=u&&u>8,[v,T]=s(0);return p(()=>{const e=h?20:u||0,o=W?v||0:e,t=performance.now(),r=i=>{const a=i-t,n=Math.min(a/250,1);T(o+(e-o)*(n*(2-n))),n<1&&requestAnimationFrame(r)},i=requestAnimationFrame(r);return()=>cancelAnimationFrame(i)},[C,h]),e(i,{component:b.div,...I?.graphBar,sx:n({height:"100%",width:`${v}%`,background:y||!f?L.custom.palette.neutral[100]:h?L.custom.palette.interaction.none:j,borderRadius:L.spacing(L.custom.radius.sm),border:`1px solid ${L.custom.palette.icon.lockedWhite}`,boxSizing:"border-box",position:"relative",overflow:"hidden",display:"flex",alignItems:"center",justifyContent:"center"},I?.graphBar?.sx),initial:{opacity:0,scale:.8},animate:{opacity:1,scale:1},transition:{duration:.3,ease:"easeOut"},children:e(m,{message:g,placement:"top",disableHoverListener:!g||y||h||S,followCursor:!0,...I?.graphBarTooltip,slotProps:{wrapper:{sx:{width:1,height:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",...I?.graphBarTooltip?.slotProps?.wrapper?.sx}}},children:e(o,{children:h?e(d,{width:"100%",height:"100%",sx:{borderRadius:L.spacing(L.custom.radius.sm)}}):t(b.div,{style:{width:"100%",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center"},initial:{opacity:0},animate:{opacity:k?1:0},transition:{duration:.3,ease:"easeInOut",delay:k?.1:0},children:[e(b.div,{initial:{y:10,opacity:0},animate:{y:k?0:10,opacity:k?1:0},transition:{duration:.3,ease:"easeOut"},children:e(l,{monospaced:!0,variation:"xs",component:"p",weight:"bold",sx:{whiteSpace:"nowrap",color:y||!f?L.custom.palette.text.disabled:c(j,L)},children:k?t(o,{children:[e(a,{value:u,animated:W}),x?"":"%"]}):null})}),e(b.div,{initial:{y:10,opacity:0},animate:{y:k?0:10,opacity:k?1:0},transition:{duration:.3,ease:"easeOut",delay:.05},children:!B&&e(l,{monospaced:!0,variation:"xs",component:"p",sx:{color:y||!f?L.custom.palette.text.disabled:c(j,L)},children:k?e(a,{value:C,animated:W}):null})})]})})})})};export{u as default};