UNPKG

@useloops/design-system

Version:

The official React based Loops design system

2 lines (1 loc) 6.53 kB
import{jsx as e,jsxs as r}from"react/jsx-runtime";import{useTheme as o}from"@mui/material";import{useRef as t,useEffect as i,startTransition as a}from"react";import{useBreakpoint as p}from"../../../utils/breakpoint.hook.js";import{useScreenSize as s}from"../../../utils/screen.hook.js";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/SelectItem/SelectItem.js";import"../../WebCore/Accordion/Accordion.js";import"../../WebCore/Animations/FadeIn.js";import n from"../../WebCore/Typography/Typography.js";import"@mui/icons-material";import"../../WebCore/AutocompleteBaseField/_partials/AutocompleteListbox.js";import"../../WebCore/AutocompleteBaseField/_partials/StyledPopper.js";import"../../WebCore/AutocompleteBaseField/_partials/StyledAutocompleteField.js";import"../../WebCore/AutocompleteBaseField/_partials/AutocompleteChip.js";import"../../WebCore/AutocompleteBaseField/_partials/StyledAutocompleteInput.js";import"merge-sx";import"../../WebCore/Badge/Badge.js";import"../../WebCore/Breadcrumb/Breadcrumb.js";import l from"../../WebCore/Button/Button.js";import"../../WebCore/ButtonBase/ButtonBase.js";import"../../WebCore/ButtonTabGroup/_partials/ActiveIndicator.js";import"../../WebCore/ButtonTabGroup/_partials/ButtonTabsWrapper.js";import"../../WebCore/ButtonTabGroup/_partials/TabButton.js";import"../../WebCore/Checkbox/StyledCheckbox.js";import"../../WebCore/InputFieldBase/InputFieldBase.js";import"../../WebCore/CreatableAutocomplete/CreatableAutocomplete.js";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/KbdGroup/Kbd.js";import"../../WebCore/KbdGroup/KbdGroup.js";import"../../WebCore/KeyValueLabel/KeyValueLabel.js";import m from"../../WebCore/Label/Label.js";import"../../WebCore/Likert/LikertContainer.js";import"../../WebCore/Likert/LikertLabel.js";import"../../WebCore/Likert/LikertRadio.js";import d from"../../WebCore/Link/Link.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"../../WebCore/Pill/StyledPill.js";import"../../WebCore/ProgressBar/ProgressBar.js";import"../../WebCore/Radio/StyledRadio.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"../../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 b from"./FeatureListItem.js";import u from"./PlanTierCardContainers.js";import c from"./PlanTierCardSkeleton.js";import C from"./RespondentPricingCard.js";import j from"./SavingsPill.js";const h=({amount:h,billingType:W,body:g,bordered:f,ctaEvent:y=()=>{},ctaLink:B="#",ctaTarget:S="_self",ctaText:k,ctaVariation:I="primary",currencySymbol:L,currentPlan:T,featuresHeading:x,features:A=[],featuresIcon:v,heading:F,label:H,loading:P,respondentsTitle:R,respondentsFeatures:G,respondentsFeaturesIcon:M,saving:_,sectionHeights:w,updateSectionHeight:V,syncHeightsOnBreakpoints:E})=>{const K=o(),N=p(),{width:D}=s(),O=t(null),z=t(null),U=t(null),$=t(null);return P?e(c,{}):(i(()=>{a(()=>{if(w&&V){const e=[{ref:O,key:"headerHeight"},{ref:z,key:"bodyHeight"},{ref:U,key:"respondentCardHeight"},{ref:$,key:"bottomHeight"}];E?.includes(N)?e.forEach(({ref:e,key:r})=>{e.current?.offsetHeight&&e.current.offsetHeight>w[r]&&V(r,e.current.offsetHeight)}):e.forEach(({key:e})=>{0!==w[e]&&V(e,0)})}})},[N,E,D,V]),r(u.PlanTierCard,{bordered:f,children:[r(u.Top,{children:[r(u.Head,{ref:O,height:w?.headerHeight,children:[r(u.PlanTitle,{children:[e(n,{variation:"lg",component:"h1",weight:"bold",children:F}),H&&e(m,{body:H,weight:"heavy",sizing:"xxs",colorScheme:"purple",tone:900})]}),r(u.Billing,{children:[e(u.Price,{children:r(n,{variation:"xxl",component:"p",weight:"bold",children:[L,h]})}),W&&e(n,{variation:"sm",component:"p",sx:{color:K.custom.palette.text.secondary},children:W})]}),_&&e(j,{body:_,weight:"heavy"})]}),e(u.Body,{ref:z,height:w?.bodyHeight,children:g}),R&&e(C,{ref:U,height:w?.respondentCardHeight,respondentsTitle:R,respondentsFeatures:G,featuresIcon:M})]}),r(u.Bottom,{ref:$,height:w?.bottomHeight,children:[A?.length&&r(u.FeatureList,{children:[x&&e(n,{component:"p",variation:"sm",weight:"bold",mr:"auto",children:x}),A.map((r,o)=>e(b,{feature:r,featuresIcon:v},`${F}-feature-${o}`))]}),!T&&e(d,{href:B,title:k,target:S,onClick:()=>{F&&y(F)},sx:{"&:hover":{cursor:"pointer"}},children:e(l,{fullWidth:!0,variation:I,sizing:"lg",disabled:T,children:k})})]})]}))};export{h as default};