@stigg/react-sdk 6.1.0 → 6.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/paywall/EntitlementRow.d.ts +1 -0
- package/dist/react-sdk.cjs.development.js +17 -9
- package/dist/react-sdk.cjs.development.js.map +1 -1
- package/dist/react-sdk.cjs.production.min.js +1 -1
- package/dist/react-sdk.cjs.production.min.js.map +1 -1
- package/dist/react-sdk.esm.js +17 -9
- package/dist/react-sdk.esm.js.map +1 -1
- package/package.json +2 -2
- package/src/components/paywall/EntitlementRow.tsx +7 -0
- package/src/components/paywall/PlanEntitlements.tsx +1 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"react-sdk.esm.js","sources":["../src/components/paywall/utils/calculateUnitQuantityText.ts","../src/components/utils/formatNumber.ts","../src/components/common/Typography.tsx","../src/components/common/iconColor.ts","../src/assets/addons.svg","../src/assets/billing-info-customer.svg","../src/assets/contact-support.svg","../src/assets/credit-card.svg","../src/assets/dollar-coin.svg","../src/assets/mini-schedule.svg","../src/assets/promotions.svg","../src/assets/restore.svg","../src/assets/schedule-box.svg","../src/assets/schedule.svg","../src/assets/subscription-renews-icon.svg","../src/assets/trash.svg","../src/assets/payment-method.svg","../src/assets/outlined-circle.svg","../src/assets/outlined-checked-circle.svg","../src/assets/outlined-checked-circle-disabled.svg","../src/assets/arrow-forward.svg","../src/assets/close.svg","../src/assets/check.svg","../src/assets/pay-as-you-go-charge.svg","../src/assets/coupon.svg","../src/assets/add.svg","../src/assets/remove.svg","../src/assets/entitlement-check.svg","../src/components/common/Icon.tsx","../src/components/paywall/EntitlementRow.tsx","../src/components/paywall/PlanEntitlements.tsx","../src/components/paywall/types.ts","../src/theme/getResolvedTheme.ts","../src/components/utils/getSubscriptionScheduleUpdateTexts.tsx","../src/components/utils/priceTierUtils.ts","../src/components/paywall/PlanOfferingButton.tsx","../src/components/utils/currencyUtils.ts","../src/components/utils/numberUtils.ts","../src/components/utils/getPaidPriceText.ts","../src/components/utils/getPlanPrice.ts","../src/components/checkout/components/Button.tsx","../src/components/checkout/components/InputField.tsx","../src/components/checkout/components/Skeletons.style.ts","../src/components/checkout/components/ContentLoadingSkeleton.tsx","../src/components/utils/onWheelBlur.ts","../src/components/common/VolumePerUnitInput.tsx","../src/components/common/VolumeBulkSelect.tsx","../src/components/common/TiersSelectContainer.tsx","../src/components/paywall/PlanPrice.tsx","../src/components/paywall/PlanCompatibleAddons.tsx","../src/components/paywall/PlanOffering.tsx","../src/components/paywall/BillingPeriodPicker.tsx","../src/components/utils/calculateDiscountRate.ts","../src/assets/powered-by-stigg.svg","../src/components/common/PoweredByStigg.tsx","../src/components/paywall/utils/hasPricePoints.ts","../src/components/paywall/utils/getPlansToDisplay.ts","../src/components/paywall/Paywall.tsx","../node_modules/regenerator-runtime/runtime.js","../src/services/logger.ts","../src/components/paywall/utils/computeDefaultBillingPeriod.ts","../src/components/paywall/utils/calculateTrialDaysLeft.ts","../src/components/checkout/configurations/typography.ts","../src/components/common/mapExternalTheme.ts","../src/components/paywall/utils/mapPaywallData.ts","../src/components/StiggProvider.tsx","../src/hooks/useStiggContext.ts","../src/components/paywall/hooks/useLoadPaywallData.ts","../src/components/paywall/paywallTextOverrides.ts","../src/assets/check-stigg.svg","../src/components/paywall/PaywallLoader.tsx","../src/theme/Fonts.tsx","../src/theme/Theme.tsx","../src/components/customerPortal/hooks/useCustomerPortal.ts","../src/components/customerPortal/customerPortalTextOverrides.ts","../src/components/customerPortal/customerPortalTheme.ts","../src/components/customerPortal/CustomerPortalProvider.tsx","../src/components/paywall/PaywallContainer.tsx","../src/components/customerPortal/common/StyledButton.tsx","../src/assets/edit-icon.svg","../src/components/customerPortal/common/SectionHeader.ts","../src/components/customerPortal/common/SectionTitle.tsx","../src/components/customerPortal/types.ts","../src/components/customerPortal/subscriptionOverview/SubscriptionsOverviewHeader.tsx","../src/components/customerPortal/subscriptionOverview/tabs/AddonsList.tsx","../src/components/customerPortal/subscriptionOverview/tabs/Promotions.tsx","../src/components/customerPortal/subscriptionOverview/tabs/SubscriptionTabs.style.tsx","../src/components/customerPortal/subscriptionOverview/tabs/SubscriptionTabs.tsx","../src/components/common/mediaQuery.ts","../src/components/hooks/useIsScreenWiderThan.ts","../src/components/customerPortal/subscriptionOverview/SubscriptionOverviewLoader.tsx","../src/components/customerPortal/subscriptionOverview/subscriptionScheduledUpdates/SubscriptionScheduledUpdateRow.tsx","../src/components/customerPortal/subscriptionOverview/subscriptionScheduledUpdates/SubscriptionScheduledUpdatesAlert.tsx","../src/components/customerPortal/common/SectionContainer.tsx","../src/components/customerPortal/subscriptionOverview/upcomingBilling/NextEstimatedBill.tsx","../src/components/customerPortal/subscriptionOverview/upcomingBilling/NoUpcomingBilling.tsx","../src/components/customerPortal/subscriptionOverview/ContactCustomerSupport.tsx","../src/components/customerPortal/subscriptionOverview/upcomingBilling/UpcomingBilling.tsx","../src/assets/sand-clock.svg","../src/components/common/InformationTooltip.tsx","../src/components/common/LongText.tsx","../src/components/customerPortal/subscriptionOverview/subscriptionView/TrialPanel.tsx","../src/components/customerPortal/subscriptionOverview/subscriptionView/SubscriptionView.tsx","../src/components/customerPortal/usage/featureUsage/FeatureUsage.helper.ts","../src/components/customerPortal/usage/featureUsage/FeatureUsageProgressBar.tsx","../src/components/customerPortal/usage/featureUsage/EntitlementCTAButton.tsx","../src/components/customerPortal/subscriptionOverview/charges/ChargeItem.tsx","../src/components/customerPortal/subscriptionOverview/charges/ChargeList.tsx","../src/components/customerPortal/subscriptionOverview/SubscriptionsOverview.tsx","../src/components/customerPortal/CustomerPortalHeader.tsx","../src/components/customerPortal/common/ExternalLinkButton.tsx","../src/components/customerPortal/billing/InformationGrid.tsx","../src/components/customerPortal/common/SkeletonButton.tsx","../src/components/customerPortal/billing/PaymentDetailsSection.tsx","../src/components/customerPortal/paywall/CustomerPortalPaywall.style.ts","../src/components/customerPortal/paywall/CustomerPortalPaywall.tsx","../src/components/customerPortal/CustomerPortal.style.ts","../src/components/utils/getFeatureName.ts","../src/components/customerPortal/usage/featureUsage/FeatureUsage.style.ts","../src/components/customerPortal/usage/featureUsage/FeatureUsage.tsx","../src/components/customerPortal/usage/CustomerUsageData.style.tsx","../src/components/customerPortal/usage/CustomerUsageData.tsx","../src/components/customerPortal/CustomerPortalContainer.tsx","../src/components/customerPortal/CustomerPortal.tsx","../src/components/customerPortal/billing/InvoicesSection.tsx","../src/components/checkout/steps/addons/addon.utils.ts","../src/components/checkout/hooks/useAddonsStepModel.ts","../src/components/checkout/hooks/useCheckoutModel.ts","../src/components/checkout/hooks/useLoadCheckout.ts","../src/components/utils/priceUtils.ts","../src/components/utils/planPrices.ts","../src/components/checkout/hooks/usePlanStepModel.ts","../src/components/checkout/hooks/useProgressBarModel.ts","../src/components/checkout/hooks/useSubscriptionModel.ts","../src/components/checkout/hooks/usePreviewSubscription.ts","../src/components/checkout/hooks/usePaymentStepModel.ts","../src/components/checkout/configurations/textOverrides.ts","../src/components/checkout/configurations/theme.ts","../src/components/checkout/CheckoutProvider.tsx","../src/components/checkout/CheckoutContainer.style.ts","../src/components/checkout/progressBar/CheckoutProgressBar.style.ts","../src/components/checkout/progressBar/CheckoutProgressBar.tsx","../src/components/hooks/useChargeSort.ts","../src/components/checkout/hooks/useCouponModel.ts","../src/assets/plus-icon.svg","../src/components/checkout/promotionCode/AddPromotionCodeButton.tsx","../src/components/checkout/promotionCode/AddPromotionCode.tsx","../src/components/checkout/promotionCode/AppliedPromotionCode.tsx","../src/components/checkout/promotionCode/PromotionCodeSection.tsx","../src/components/checkout/steps/payment/stripe/StripePaymentForm.tsx","../src/components/checkout/steps/payment/stripe/useStripeIntegration.ts","../src/components/checkout/hooks/useSubscriptionState.ts","../src/components/checkout/steps/payment/stripe/stripe.utils.ts","../src/components/checkout/summary/CheckoutSuccess.tsx","../src/components/checkout/steps/payment/stripe/useSubmit.ts","../src/components/checkout/summary/components/WithSkeleton.tsx","../src/components/checkout/summary/components/CheckoutCaptions.tsx","../src/components/checkout/summary/components/getPriceBreakdownString.ts","../src/components/checkout/summary/components/GraduatedPriceBreakdown.tsx","../src/components/common/CollapsableSectionIcon.tsx","../src/components/checkout/summary/components/LineItems.tsx","../src/components/checkout/summary/CheckoutSummary.tsx","../src/components/checkout/summary/CheckoutSummarySkeleton.tsx","../src/components/checkout/steps/addons/CheckoutAddonsStep.style.tsx","../src/components/checkout/steps/addons/CheckoutAddonsStep.tsx","../src/components/checkout/steps/payment/PaymentMethods.style.ts","../src/components/checkout/steps/payment/PaymentMethods.tsx","../src/components/checkout/steps/payment/PaymentStep.tsx","../src/components/checkout/components/ChangePlanButton.tsx","../src/components/checkout/planHeader/PlanHeader.tsx","../src/components/checkout/formatting.ts","../src/components/checkout/steps/plan/BillingPeriodPicker.style.tsx","../src/components/checkout/steps/plan/BillingPeriodPicker.tsx","../src/components/checkout/steps/plan/CheckoutChargeList.tsx","../src/components/checkout/steps/plan/CheckoutPlanStep.style.tsx","../src/components/checkout/steps/plan/CheckoutPlanStep.tsx","../src/assets/arrow-right.svg","../src/components/checkout/components/StyledArrow.tsx","../src/components/checkout/components/DowngradeToFreeContainer.tsx","../src/components/checkout/CheckoutContainer.tsx","../src/components/checkout/Checkout.tsx","../src/components/hooks/useWaitForCheckoutCompleted.ts","../src/hooks/useBooleanEntitlement.ts","../src/hooks/useNumericEntitlement.ts","../src/hooks/useMeteredEntitlement.ts","../src/hooks/useFetch.ts","../src/hooks/useActiveSubscriptions.ts","../src/hooks/usePaywall.ts","../src/hooks/useCustomerPortal.ts","../src/components/BooleanEntitlementGuard.tsx","../src/components/NumericEntitlementGuard.tsx","../src/components/MeteredEntitlementGuard.tsx"],"sourcesContent":["export function calculateUnitQuantityText(\n minUnitQuantity?: number | null,\n maxUnitQuantity?: number | null,\n unitsPlural?: string | null,\n) {\n const unitsText = unitsPlural ? ` ${unitsPlural}` : '';\n\n // copy for only maxunit\n if ((!minUnitQuantity || minUnitQuantity === 1) && maxUnitQuantity) {\n return `Up to ${maxUnitQuantity}${unitsText}`;\n }\n\n // both limits\n if (minUnitQuantity && minUnitQuantity > 1 && maxUnitQuantity) {\n return `${minUnitQuantity}-${maxUnitQuantity}${unitsText}`;\n }\n\n if (minUnitQuantity && minUnitQuantity > 1) {\n return `Minimum ${minUnitQuantity}${unitsText}`;\n }\n\n return '';\n}\n","export function formatNumber(usageLimit: number | null | undefined) {\n return usageLimit?.toLocaleString('en-US', {\n maximumFractionDigits: 0,\n });\n}\n","import React, { CSSProperties, forwardRef } from 'react';\nimport styled from '@emotion/styled/macro';\nimport { FontWeight as StyledFontWeight, Text, TypeProps } from 'styled-typography';\nimport { Theme, useTheme } from '@emotion/react';\nimport { FontWeight } from '../../theme/types';\n\ntype Colors =\n | 'primary'\n | 'primary.main'\n | 'primary.main.light'\n | 'secondary'\n | 'tertiary'\n | 'disabled'\n | 'white'\n | 'warning'\n | 'error';\n\nexport type TypographyProps = {\n children: React.ReactNode;\n variant?: 'h1' | 'h3' | 'h6' | 'body1' | 'caption';\n style?: CSSProperties | undefined;\n color?: Colors;\n // This is being used when passing color from the theming which\n // can be any color and not from the closed list of colors above\n overrideColor?: string;\n className?: string;\n bold?: boolean;\n span?: boolean;\n as?: 'div' | 'p' | 'span';\n} & Omit<TypeProps, 'color' | 'level'>;\n\nfunction getColor(theme: Theme, $color: Colors) {\n switch ($color) {\n case 'white':\n return 'white';\n case 'primary.main':\n return theme.stigg.palette.primary;\n case 'primary.main.light':\n return theme.stigg.palette.primaryLight;\n case 'warning':\n return theme.stigg.palette.warning;\n case 'error':\n return theme.stigg.palette.error;\n default:\n return theme.stigg.palette.text[$color];\n }\n}\n\nconst StyledText = styled(Text)<{ $span?: boolean }>`\n margin: 0;\n ${({ $span }) => $span && `display: inline`};\n`;\n\nfunction getLevel(variant: TypographyProps['variant']) {\n switch (variant) {\n case 'h1':\n return 1;\n case 'h3':\n return 2;\n case 'h6':\n return 3;\n case 'body1':\n return 4;\n case 'caption':\n return 5;\n default:\n return 3;\n }\n}\n\nfunction mapFontWeight(fontWeight: FontWeight) {\n switch (fontWeight) {\n case 'bold':\n return StyledFontWeight.Bold;\n case 'normal':\n return StyledFontWeight.Normal;\n default:\n return StyledFontWeight.Normal;\n }\n}\n\nfunction getFontWeight(theme: Theme, variant: TypographyProps['variant']) {\n const { typography } = theme.stigg;\n switch (variant) {\n case 'h1':\n return mapFontWeight(typography.h1.fontWeight);\n case 'h3':\n return mapFontWeight(typography.h2.fontWeight);\n case 'h6':\n return mapFontWeight(typography.h3.fontWeight);\n case 'body1':\n return mapFontWeight(typography.body.fontWeight);\n case 'caption':\n return mapFontWeight(typography.caption.fontWeight);\n default:\n return StyledFontWeight.Normal;\n }\n}\n\nexport const Typography = forwardRef((props: TypographyProps, ref) => {\n const {\n children,\n span,\n style,\n fontWeight,\n variant = 'body1',\n color = 'primary',\n overrideColor,\n bold,\n as = 'p',\n ...rest\n } = props;\n const theme = useTheme();\n const level = getLevel(variant);\n const levelClassName = `typography-level-${level}`;\n const className = props.className ? `${props.className} ${levelClassName}` : levelClassName;\n\n return (\n <StyledText\n as={as}\n ref={ref}\n {...rest}\n className={className}\n style={style}\n level={level}\n color={overrideColor || getColor(theme, color)}\n fontWeight={fontWeight ?? (bold ? StyledFontWeight.Bold : getFontWeight(theme, variant))}\n $span={span}>\n {children}\n </StyledText>\n );\n});\n","import { Theme } from '@emotion/react';\n\nexport type IconColor = 'primary' | 'secondary';\n\nexport const getIconColor = (color: IconColor | string | undefined, theme: Theme) => {\n switch (color) {\n case 'primary':\n return theme.stigg.palette.text.primary;\n case 'secondary':\n return theme.stigg.palette.text.secondary;\n default:\n return color;\n }\n};\n","<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g clip-path=\"url(#clip0_834_118930)\">\n<path d=\"M12 6.85712V17.1428\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M6.85712 12H17.1428\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M18 0.857117H5.99997C3.15966 0.857117 0.857117 3.15966 0.857117 5.99997V18C0.857117 20.8404 3.15966 23.1428 5.99997 23.1428H18C20.8404 23.1428 23.1428 20.8404 23.1428 18V5.99997C23.1428 3.15966 20.8404 0.857117 18 0.857117Z\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n<defs>\n<clipPath id=\"clip0_834_118930\">\n<rect width=\"24\" height=\"24\" fill=\"white\"/>\n</clipPath>\n</defs>\n</svg>\n","<svg width=\"36\" height=\"36\" viewBox=\"0 0 36 36\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<rect width=\"36\" height=\"36\" rx=\"10\" fill=\"#F5F6F9\"/>\n<path d=\"M26 27V25C26 22.7909 24.2091 21 22 21H14C11.7909 21 10 22.7909 10 25V27\" stroke=\"#7586B0\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18 17C20.2091 17 22 15.2091 22 13C22 10.7909 20.2091 9 18 9C15.7909 9 14 10.7909 14 13C14 15.2091 15.7909 17 18 17Z\" stroke=\"#7586B0\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<defs>\n<linearGradient id=\"paint0_linear_67_8545\" x1=\"35.0204\" y1=\"1.22449\" x2=\"0\" y2=\"36\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#56ACF6\"/>\n<stop offset=\"1\" stop-color=\"#1559E6\"/>\n</linearGradient>\n</defs>\n</svg>\n","<svg width=\"36\" height=\"36\" viewBox=\"0 0 36 36\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<rect width=\"36\" height=\"36\" rx=\"10\" fill=\"#F5F6F9\"/>\n<path d=\"M27 18.22C27 12.73 22.74 9 18 9C13.31 9 9 12.65 9 18.28C8.4 18.62 8 19.26 8 20V22C8 23.1 8.9 24 10 24H11V17.9C11 14.03 14.13 10.9 18 10.9C21.87 10.9 25 14.03 25 17.9V25H17V27H25C26.1 27 27 26.1 27 25V23.78C27.59 23.47 28 22.86 28 22.14V19.84C28 19.14 27.59 18.53 27 18.22Z\" fill=\"#7586B0\"/>\n<path d=\"M15 20C15.5523 20 16 19.5523 16 19C16 18.4477 15.5523 18 15 18C14.4477 18 14 18.4477 14 19C14 19.5523 14.4477 20 15 20Z\" fill=\"#7586B0\"/>\n<path d=\"M21 20C21.5523 20 22 19.5523 22 19C22 18.4477 21.5523 18 21 18C20.4477 18 20 18.4477 20 19C20 19.5523 20.4477 20 21 20Z\" fill=\"#7586B0\"/>\n<path d=\"M24 17.03C23.52 14.18 21.04 12 18.05 12C15.02 12 11.76 14.51 12.02 18.45C14.49 17.44 16.35 15.24 16.88 12.56C18.19 15.19 20.88 17 24 17.03Z\" fill=\"#7586B0\"/>\n<defs>\n<linearGradient id=\"paint0_linear_267_19310\" x1=\"35.0204\" y1=\"1.22449\" x2=\"0\" y2=\"36\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#56ACF6\"/>\n<stop offset=\"1\" stop-color=\"#1559E6\"/>\n</linearGradient>\n</defs>\n</svg>\n","<svg width=\"36\" height=\"36\" viewBox=\"0 0 36 36\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<rect width=\"36\" height=\"36\" rx=\"10\" fill=\"#F5F6F9\"/>\n<path d=\"M26 10H10C8.89 10 8.01 10.89 8.01 12L8 24C8 25.11 8.89 26 10 26H26C27.11 26 28 25.11 28 24V12C28 10.89 27.11 10 26 10ZM26 24H10V18H26V24ZM26 14H10V12H26V14Z\" fill=\"#7586B0\"/>\n<defs>\n<linearGradient id=\"paint0_linear_67_8556\" x1=\"35.0204\" y1=\"1.22449\" x2=\"0\" y2=\"36\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#56ACF6\"/>\n<stop offset=\"1\" stop-color=\"#1559E6\"/>\n</linearGradient>\n</defs>\n</svg>\n","<svg width=\"21\" height=\"20\" viewBox=\"0 0 21 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g clip-path=\"url(#clip0_834_120339)\">\n<path d=\"M10.3336 19.2858C15.462 19.2858 19.6193 15.1285 19.6193 10.0001C19.6193 4.87171 15.462 0.714355 10.3336 0.714355C5.20521 0.714355 1.04785 4.87171 1.04785 10.0001C1.04785 15.1285 5.20521 19.2858 10.3336 19.2858Z\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M12.7649 7.46052C12.6813 7.22393 12.5523 7.0088 12.3883 6.8256C12.0395 6.43592 11.5327 6.19067 10.9685 6.19067H9.4942C8.55517 6.19067 7.79395 6.9519 7.79395 7.89093C7.79395 8.68995 8.3503 9.38116 9.13086 9.5519L11.3756 10.0429C12.25 10.2342 12.8733 11.0091 12.8733 11.9043C12.8733 12.9562 12.0205 13.8097 10.9685 13.8097H9.6987C8.86936 13.8097 8.16382 13.2797 7.90233 12.5399\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M10.3335 6.19065V4.28589\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M10.3335 15.7144V13.8096\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n<defs>\n<clipPath id=\"clip0_834_120339\">\n<rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(0.333496)\"/>\n</clipPath>\n</defs>\n</svg>\n","<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6.95392 1.03353C7.1196 1.56038 6.82682 2.12178 6.29997 2.28746C5.79034 2.44773 5.30237 2.68036 4.85175 2.98146C3.76168 3.70982 2.95789 4.79361 2.57732 6.04817C2.19675 7.30273 2.26296 8.65044 2.76466 9.86166C3.26637 11.0729 4.17252 12.0727 5.32873 12.6907C6.48494 13.3087 7.81967 13.5067 9.10549 13.2509C10.3913 12.9951 11.5487 12.3014 12.3804 11.288C13.2121 10.2746 13.6666 9.00413 13.6666 7.69312C13.6666 7.14083 14.1144 6.69312 14.6666 6.69312C15.2189 6.69312 15.6666 7.14083 15.6666 7.69312C15.6666 7.92228 15.6564 8.15052 15.6361 8.37721C15.6465 8.44937 15.6492 8.52379 15.6432 8.59952L15.6392 8.64883C15.6298 8.75932 15.6028 8.86407 15.5612 8.96057C15.3409 10.2743 14.7807 11.5158 13.9264 12.5568C12.8012 13.9279 11.2353 14.8664 9.49568 15.2125C7.75603 15.5585 5.95022 15.2906 4.38594 14.4545C2.82166 13.6184 1.59568 12.2657 0.916905 10.627C0.238131 8.98832 0.148554 7.16495 0.663439 5.4676C1.17832 3.77025 2.26581 2.30394 3.74061 1.31852C4.35023 0.911179 5.01049 0.596408 5.69999 0.379577C6.22684 0.213898 6.78824 0.506683 6.95392 1.03353ZM7.56761 1.27284C7.61434 0.722538 8.09832 0.314306 8.64863 0.361031L8.69791 0.365373C9.24791 0.415584 9.65307 0.902149 9.60286 1.45215C9.55265 2.00214 9.06608 2.4073 8.51608 2.35709L8.47942 2.35386C7.92912 2.30714 7.52089 1.82315 7.56761 1.27284ZM12.4186 2.90891C12.8384 2.55014 13.4697 2.59967 13.8284 3.01954C13.8498 3.04454 13.871 3.06967 13.892 3.09494C14.2454 3.51937 14.1878 4.14991 13.7634 4.50329C13.339 4.85667 12.7084 4.79906 12.355 4.37463C12.3395 4.35592 12.3238 4.33731 12.3079 4.31879C11.9492 3.89892 11.9987 3.26769 12.4186 2.90891ZM8.99998 5.33352C8.99998 4.78124 8.55226 4.33352 7.99998 4.33352C7.44769 4.33352 6.99998 4.78124 6.99998 5.33352V8.00019C6.99998 8.55247 7.44769 9.00019 7.99998 9.00019H10.6666C11.2189 9.00019 11.6666 8.55247 11.6666 8.00019C11.6666 7.4479 11.2189 7.00019 10.6666 7.00019H8.99998V5.33352Z\" fill=\"#7586B0\"/>\n</svg>\n","<svg width=\"24\" height=\"25\" viewBox=\"0 0 24 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g clip-path=\"url(#clip0_834_116282)\">\n<path d=\"M21.4286 5.32483H2.57146C1.62469 5.32483 0.857178 6.09235 0.857178 7.03911V10.4677C0.857178 11.4145 1.62469 12.182 2.57146 12.182H21.4286C22.3754 12.182 23.1429 11.4145 23.1429 10.4677V7.03911C23.1429 6.09235 22.3754 5.32483 21.4286 5.32483Z\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M21.4287 12.182V21.6106C21.4287 22.0652 21.248 22.5013 20.9266 22.8227C20.6051 23.1442 20.169 23.3249 19.7144 23.3249H4.28582C3.83116 23.3249 3.39513 23.1442 3.07363 22.8227C2.75215 22.5013 2.57153 22.0652 2.57153 21.6106V12.182\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M12 5.32483V23.3248\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M17.1429 1.03912L12 5.32484L6.85718 1.03912\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n<defs>\n<clipPath id=\"clip0_834_116282\">\n<rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0 0.182007)\"/>\n</clipPath>\n</defs>\n</svg>\n","<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M10.8333 2.5C6.69168 2.5 3.33334 5.85833 3.33334 10H0.833344L4.07501 13.2417L4.13334 13.3583L7.50001 10H5.00001C5.00001 6.775 7.60834 4.16667 10.8333 4.16667C14.0583 4.16667 16.6667 6.775 16.6667 10C16.6667 13.225 14.0583 15.8333 10.8333 15.8333C9.22501 15.8333 7.76668 15.175 6.71668 14.1167L5.53334 15.3C6.89168 16.6583 8.75834 17.5 10.8333 17.5C14.975 17.5 18.3333 14.1417 18.3333 10C18.3333 5.85833 14.975 2.5 10.8333 2.5ZM10 6.66667V10.8333L13.5667 12.95L14.1667 11.9417L11.25 10.2083V6.66667H10Z\" fill=\"#6678A7\"/>\n</svg>\n","<svg width=\"36\" height=\"36\" viewBox=\"0 0 36 36\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<rect width=\"36\" height=\"36\" rx=\"10\" fill=\"url(#paint0_linear_834_118583)\"/>\n<rect width=\"36\" height=\"36\" rx=\"10\" fill=\"#F5F6F9\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.9539 7.70028C16.1196 8.22713 15.8268 8.78853 15.3 8.95421C14.4906 9.20875 13.7155 9.57824 12.9999 10.0564C11.2686 11.2132 9.99197 12.9346 9.38754 14.9271C8.78311 16.9196 8.88826 19.0601 9.68509 20.9838C10.4819 22.9075 11.9211 24.4954 13.7574 25.477C15.5938 26.4585 17.7136 26.7729 19.7558 26.3667C21.798 25.9605 23.6362 24.8588 24.9571 23.2492C26.278 21.6396 27 19.6219 27 17.5397C27 16.9874 27.4477 16.5397 28 16.5397C28.5523 16.5397 29 16.9874 29 17.5397C29 17.8969 28.9826 18.2526 28.9483 18.6056C28.9662 18.6949 28.9722 18.7883 28.9645 18.8837L28.9606 18.9309C28.9496 19.0607 28.9143 19.1825 28.8595 19.2924C28.5513 21.2017 27.7432 23.007 26.5031 24.518C24.8886 26.4852 22.642 27.8318 20.146 28.3283C17.65 28.8248 15.059 28.4405 12.8146 27.2408C10.5702 26.0411 8.81122 24.1004 7.83733 21.7492C6.86343 19.398 6.73491 16.7819 7.47366 14.3465C8.21241 11.9112 9.77272 9.80737 11.8887 8.3935C12.7634 7.80905 13.7107 7.35743 14.7 7.04633C15.2269 6.88065 15.7883 7.17343 15.9539 7.70028ZM17.8497 7.95155C17.8964 7.40125 18.3804 6.99302 18.9307 7.03974L18.9779 7.04385C19.528 7.0929 19.9342 7.57861 19.8851 8.12871C19.8361 8.67881 19.3503 9.085 18.8002 9.03595L18.7615 9.03257C18.2112 8.98585 17.8029 8.50186 17.8497 7.95155ZM22.8579 9.19953C23.172 8.74525 23.7949 8.63161 24.2492 8.9457C24.2751 8.96361 24.3009 8.98162 24.3266 8.99974C24.7782 9.31772 24.8865 9.94155 24.5685 10.3931C24.2505 10.8447 23.6267 10.953 23.1751 10.635C23.1541 10.6202 23.1329 10.6054 23.1118 10.5908C22.6575 10.2767 22.5438 9.6538 22.8579 9.19953ZM26.6058 12.8085C27.1045 12.5712 27.7011 12.7831 27.9384 13.2818C27.9519 13.3102 27.9653 13.3387 27.9786 13.3672C28.2116 13.868 27.9946 14.4628 27.4939 14.6958C26.9931 14.9288 26.3983 14.7117 26.1653 14.211L26.1506 14.1796L26.1324 14.1411C25.8951 13.6424 26.1071 13.0458 26.6058 12.8085ZM19 14.0003C19 13.448 18.5523 13.0003 18 13.0003C17.4477 13.0003 17 13.448 17 14.0003V18.0003C17 18.5526 17.4477 19.0003 18 19.0003H22C22.5523 19.0003 23 18.5526 23 18.0003C23 17.448 22.5523 17.0003 22 17.0003H19V14.0003Z\" fill=\"#7586B0\"/>\n<defs>\n<linearGradient id=\"paint0_linear_834_118583\" x1=\"35.0204\" y1=\"1.22449\" x2=\"0\" y2=\"36\" gradientUnits=\"userSpaceOnUse\">\n</linearGradient>\n</defs>\n</svg>\n","<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M9.95394 1.70028C10.1196 2.22713 9.82684 2.78853 9.29999 2.95421C8.49057 3.20875 7.71555 3.57824 6.99987 4.05644C5.26859 5.21324 3.99197 6.93456 3.38754 8.9271C2.78311 10.9196 2.88826 13.0601 3.68509 14.9838C4.48191 16.9075 5.9211 18.4954 7.75743 19.477C9.59377 20.4585 11.7136 20.7729 13.7558 20.3667C15.798 19.9605 17.6362 18.8588 18.9571 17.2492C20.278 15.6396 21 13.6219 21 11.5397C21 10.9874 21.4477 10.5397 22 10.5397C22.5523 10.5397 23 10.9874 23 11.5397C23 11.8969 22.9826 12.2526 22.9483 12.6056C22.9662 12.6949 22.9722 12.7883 22.9645 12.8837L22.9606 12.9309C22.9496 13.0607 22.9143 13.1825 22.8595 13.2924C22.5513 15.2017 21.7432 17.007 20.5031 18.518C18.8886 20.4852 16.642 21.8318 14.146 22.3283C11.65 22.8248 9.05905 22.4405 6.81464 21.2408C4.57023 20.0411 2.81122 18.1004 1.83733 15.7492C0.863434 13.398 0.734911 10.7819 1.47366 8.34653C2.21241 5.91121 3.77272 3.80737 5.88873 2.3935C6.76341 1.80905 7.71072 1.35743 8.70001 1.04633C9.22686 0.880646 9.78826 1.17343 9.95394 1.70028ZM11.8497 1.95155C11.8964 1.40125 12.3804 0.993017 12.9307 1.03974L12.9779 1.04385C13.528 1.0929 13.9342 1.57861 13.8851 2.12871C13.8361 2.67881 13.3503 3.085 12.8002 3.03595L12.7615 3.03257C12.2112 2.98585 11.8029 2.50186 11.8497 1.95155ZM16.8579 3.19953C17.172 2.74525 17.7949 2.63161 18.2492 2.9457C18.2751 2.96361 18.3009 2.98162 18.3266 2.99974C18.7782 3.31772 18.8865 3.94155 18.5685 4.39311C18.2505 4.84467 17.6267 4.95296 17.1751 4.63498C17.1541 4.62016 17.1329 4.60542 17.1118 4.59078C16.6575 4.27669 16.5438 3.6538 16.8579 3.19953ZM20.6058 6.80846C21.1045 6.57117 21.7011 6.78308 21.9384 7.28179C21.9519 7.3102 21.9653 7.33869 21.9786 7.36723C22.2116 7.86796 21.9946 8.46276 21.4939 8.69577C20.9931 8.92877 20.3983 8.71174 20.1653 8.21101L20.1506 8.17957L20.1324 8.14112C19.8951 7.64241 20.1071 7.04576 20.6058 6.80846ZM13 8.00027C13 7.44798 12.5523 7.00027 12 7.00027C11.4477 7.00027 11 7.44798 11 8.00027V12.0003C11 12.5526 11.4477 13.0003 12 13.0003H16C16.5523 13.0003 17 12.5526 17 12.0003C17 11.448 16.5523 11.0003 16 11.0003H13V8.00027Z\" fill=\"#7586B0\"/>\n</svg>\n","<svg width=\"36\" height=\"36\" viewBox=\"0 0 36 36\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\n<rect width=\"36\" height=\"36\" rx=\"10\" fill=\"#F5F6F9\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M9 12C9 10.8954 9.89543 10 11 10H25C26.1046 10 27 10.8954 27 12V26C27 27.1046 26.1046 28 25 28H11C9.89543 28 9 27.1046 9 26V12Z\" stroke=\"#7586B0\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M22 8V12\" stroke=\"#7586B0\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M14 8V12\" stroke=\"#7586B0\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M9 16H27\" stroke=\"#7586B0\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<defs>\n<linearGradient id=\"paint0_linear_45_8861\" x1=\"35.0204\" y1=\"1.22449\" x2=\"0\" y2=\"36\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#56ACF6\"/>\n<stop offset=\"1\" stop-color=\"#1559E6\"/>\n</linearGradient>\n</defs>\n</svg>\n","<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g id=\"trash-2\">\n<path id=\"Shape\" d=\"M3 6H5H21\" stroke=\"#F88078\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path id=\"Shape_2\" d=\"M20 6C20 5.44772 19.5523 5 19 5C18.4477 5 18 5.44772 18 6H20ZM6 6C6 5.44772 5.55228 5 5 5C4.44772 5 4 5.44772 4 6H6ZM7 6C7 6.55228 7.44772 7 8 7C8.55228 7 9 6.55228 9 6H7ZM15 6C15 6.55228 15.4477 7 16 7C16.5523 7 17 6.55228 17 6H15ZM18 6V20H20V6H18ZM18 20C18 20.5523 17.5523 21 17 21V23C18.6569 23 20 21.6569 20 20H18ZM17 21H7V23H17V21ZM7 21C6.44772 21 6 20.5523 6 20H4C4 21.6569 5.34315 23 7 23V21ZM6 20V6H4V20H6ZM9 6V4H7V6H9ZM9 4C9 3.44772 9.44772 3 10 3V1C8.34315 1 7 2.34315 7 4H9ZM10 3H14V1H10V3ZM14 3C14.5523 3 15 3.44772 15 4H17C17 2.34315 15.6569 1 14 1V3ZM15 4V6H17V4H15Z\" fill=\"#F88078\"/>\n<path id=\"Shape_3\" d=\"M10 11V17\" stroke=\"#F88078\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path id=\"Shape_4\" d=\"M14 11V17\" stroke=\"#F88078\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n</svg>\n","<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M21.1667 4H2.83333C1.82081 4 1 4.89543 1 6V18C1 19.1046 1.82081 20 2.83333 20H21.1667C22.1792 20 23 19.1046 23 18V6C23 4.89543 22.1792 4 21.1667 4Z\" fill=\"#C6C6C7\"/>\n<path opacity=\"0.3\" d=\"M19.75 16.4286H17.5C17.0125 16.4286 16.75 16.2 16.75 15.6667C16.75 15.1334 17.0125 14.9048 17.5 14.9048H19.75C20.2375 14.9048 20.5 15.1334 20.5 15.6667C20.5 16.2 20.2375 16.4286 19.75 16.4286ZM15.25 16.4286H13C12.5125 16.4286 12.25 16.2 12.25 15.6667C12.25 15.1334 12.5125 14.9048 13 14.9048H15.25C15.7375 14.9048 16 15.1334 16 15.6667C16 16.2 15.7375 16.4286 15.25 16.4286ZM10.75 16.4286H8.5C8.0125 16.4286 7.75 16.2 7.75 15.6667C7.75 15.1334 8.0125 14.9048 8.5 14.9048H10.75C11.2375 14.9048 11.5 15.1334 11.5 15.6667C11.5 16.2 11.2375 16.4286 10.75 16.4286ZM6.25 16.4286H4C3.5125 16.4286 3.25 16.2 3.25 15.6667C3.25 15.1334 3.5125 14.9048 4 14.9048H6.25C6.7375 14.9048 7 15.1334 7 15.6667C7 16.2 6.7375 16.4286 6.25 16.4286Z\" fill=\"black\"/>\n</svg>\n","<svg width=\"21\" height=\"20\" viewBox=\"0 0 21 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<circle cx=\"10.333\" cy=\"10\" r=\"9\" fill=\"white\" stroke=\"#327EEE\" stroke-width=\"2\"/>\n</svg>\n","<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g id=\"Group 16159\">\n<circle id=\"Ellipse 5\" cx=\"10\" cy=\"10\" r=\"9.25\" fill=\"#327EEE\" stroke=\"#327EEE\" stroke-width=\"1.5\"/>\n<path id=\"Shape\" d=\"M5 10.3636L8.63667 14L12.637 10L14.6372 8\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n</svg>\n","<svg width=\"21\" height=\"20\" viewBox=\"0 0 21 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g id=\"Stepper indicators\">\n<circle id=\"Ellipse 5\" cx=\"10.667\" cy=\"10\" r=\"9.25\" fill=\"#B3BCD3\" stroke=\"#B3BCD3\" stroke-width=\"1.5\"/>\n<path id=\"Shape\" d=\"M5.66699 10.3636L9.30366 14L13.304 10L15.3042 8\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n</svg>\n","<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M9 3L7.9425 4.0575L12.1275 8.25H3V9.75H12.1275L7.9425 13.9425L9 15L15 9L9 3Z\" fill=\"white\"/>\n</svg>\n","<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M15.8337 5.34199L14.6587 4.16699L10.0003 8.82533L5.34199 4.16699L4.16699 5.34199L8.82533 10.0003L4.16699 14.6587L5.34199 15.8337L10.0003 11.1753L14.6587 15.8337L15.8337 14.6587L11.1753 10.0003L15.8337 5.34199Z\" fill=\"#327EEE\"/>\n</svg>\n","<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g id=\"check\">\n<path id=\"Shape\" d=\"M20 7L9 18L4 13\" stroke=\"#F5F6F9\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n</svg>","<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g clip-path=\"url(#clip0_1889_12169)\">\n<path d=\"M11.4286 7.42578L8 13.1401\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M14.857 13.1412C15.3274 12.0123 15.5118 10.7848 15.3938 9.56751C15.2758 8.35027 14.8592 7.18097 14.1808 6.16341C13.5024 5.14585 12.5833 4.31152 11.5051 3.73446C10.4268 3.1574 9.22281 2.85547 7.99986 2.85547C6.77691 2.85547 5.57288 3.1574 4.49463 3.73446C3.41639 4.31152 2.49729 5.14585 1.81892 6.16341C1.14055 7.18097 0.723889 8.35027 0.605928 9.56751C0.487968 10.7848 0.672354 12.0123 1.14272 13.1412H14.857Z\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n<defs>\n<clipPath id=\"clip0_1889_12169\">\n<rect width=\"16\" height=\"16\" fill=\"white\"/>\n</clipPath>\n</defs>\n</svg>\n","<svg width=\"16\" height=\"16\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g id=\"tag--tags-bookmark-favorite\">\n<path id=\"Vector\" d=\"M1.26995 11.9426L6.05743 16.7301C6.2305 16.903 6.4651 17.0001 6.7097 17.0001C6.95431 17.0001 7.18891 16.903 7.36198 16.7301L16.8631 7.22895C16.9108 7.18332 16.9478 7.12758 16.9712 7.06583C16.9946 7.00408 17.0039 6.93787 16.9985 6.87205L16.2724 2.15839C16.2664 2.04607 16.2192 1.93992 16.1396 1.86038C16.0601 1.78085 15.9539 1.73357 15.8416 1.72764L11.128 1.00152C11.0622 0.996055 10.9959 1.00538 10.9342 1.0288C10.8724 1.05222 10.8167 1.08916 10.7711 1.1369L1.26995 10.638C1.09709 10.8111 1 11.0457 1 11.2903C1 11.5349 1.09709 11.7695 1.26995 11.9426Z\" stroke=\"#327EEE\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path id=\"Vector_2\" d=\"M12.5548 6.05884C12.3916 6.05884 12.2351 5.99401 12.1197 5.87861C12.0043 5.76321 11.9395 5.60669 11.9395 5.44348C11.9395 5.28028 12.0043 5.12376 12.1197 5.00836C12.2351 4.89296 12.3916 4.82812 12.5548 4.82812C12.718 4.82812 12.8745 4.89296 12.9899 5.00836C13.1053 5.12376 13.1702 5.28028 13.1702 5.44348C13.1702 5.60669 13.1053 5.76321 12.9899 5.87861C12.8745 5.99401 12.718 6.05884 12.5548 6.05884Z\" stroke=\"#327EEE\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n</svg>\n","<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12 3V21.0001M3 11.9446H21\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>","<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M3 12H21\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>","<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M3 11.1429L9.71572 17.8586C9.79383 17.9367 9.92046 17.9367 9.99856 17.8586L21.8571 6\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n</svg> ","import styled from '@emotion/styled/macro';\nimport React, { CSSProperties } from 'react';\nimport { css, useTheme } from '@emotion/react';\nimport { getIconColor, IconColor } from './iconColor';\nimport * as customIcons from './customIcons';\n\nexport type Icons = keyof typeof customIcons;\n\nconst IconWrapper = styled.div<{ $pathColor?: string; $rectColor?: string; $strokeColor?: string }>`\n ${({ $pathColor }) =>\n $pathColor &&\n css`\n path {\n fill: ${$pathColor};\n }\n `}\n\n ${({ $rectColor }) =>\n $rectColor &&\n css`\n svg rect {\n fill: ${$rectColor};\n }\n `}\n\n\n ${({ $strokeColor }) =>\n $strokeColor &&\n css`\n g {\n stroke: ${$strokeColor};\n }\n `}\n`;\n\nexport type IconProps = {\n icon: Icons;\n className?: string;\n style?: CSSProperties;\n svgPathColor?: IconColor | string;\n svgRectColor?: IconColor | string;\n svgStrokeColor?: IconColor | string;\n};\n\nexport function Icon({ icon, className, style, svgPathColor, svgRectColor, svgStrokeColor }: IconProps) {\n const IconComponent = (customIcons as any)[icon];\n const theme = useTheme();\n\n return (\n <IconWrapper\n className={className}\n style={style}\n $pathColor={getIconColor(svgPathColor, theme)}\n $rectColor={getIconColor(svgRectColor, theme)}\n $strokeColor={getIconColor(svgStrokeColor, theme)}>\n <IconComponent />\n </IconWrapper>\n );\n}\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { EntitlementResetPeriod } from '@stigg/js-client-sdk';\nimport { calculateUnitQuantityText } from './utils/calculateUnitQuantityText';\nimport { formatNumber } from '../utils/formatNumber';\nimport { Typography } from '../common/Typography';\nimport { Icon } from '../common/Icon';\n\nconst EntitlementName = styled(Typography)`\n margin: 0;\n`;\n\nconst EntitlementRowContainer = styled.div`\n display: flex;\n align-items: center;\n gap: 16px;\n`;\n\nconst EntitlementIconContainer = styled.div`\n display: flex;\n align-items: center;\n flex-shrink: 0;\n`;\n\nconst EntitlementIcon = styled(Icon)`\n width: 24px;\n height: 24px;\n color: ${({ theme }) => theme.stigg.palette.primary};\n`;\n\ntype EntitlementRowProps = {\n hasUnlimitedUsage?: boolean | null;\n isCustom?: boolean | null;\n usageLimit?: number | null;\n minUnitQuantity?: number | null;\n maxUnitQuantity?: number | null;\n resetPeriod?: EntitlementResetPeriod | null;\n displayNameOverride?: string | null;\n feature?: {\n id: string;\n units?: string | null | undefined;\n unitsPlural?: string | null | undefined;\n unitQuantity?: number | null;\n displayName: string;\n } | null;\n};\n\nfunction getResetPeriodText(resetPeriod?: EntitlementResetPeriod) {\n if (!resetPeriod) {\n return '';\n }\n\n switch (resetPeriod) {\n case EntitlementResetPeriod.Day: {\n return 'per day';\n }\n case EntitlementResetPeriod.Hour: {\n return 'per hour';\n }\n case EntitlementResetPeriod.Week: {\n return 'per week';\n }\n case EntitlementResetPeriod.Month: {\n return 'per month';\n }\n case EntitlementResetPeriod.Year: {\n return 'per year';\n }\n default: {\n return '';\n }\n }\n}\n\nfunction getEntitlementDisplay({\n hasUnlimitedUsage,\n feature,\n resetPeriod,\n usageLimit,\n minUnitQuantity,\n maxUnitQuantity,\n isCustom,\n}: EntitlementRowProps) {\n const unitBasedEntitlement = minUnitQuantity || maxUnitQuantity;\n const resetPeriodSuffix = `${resetPeriod && usageLimit ? `${getResetPeriodText(resetPeriod)}` : ''}`;\n\n if (hasUnlimitedUsage) {\n return `Unlimited ${feature?.unitsPlural}`;\n }\n\n if (isCustom) {\n return `Custom ${feature?.unitsPlural}`;\n }\n\n if (usageLimit) {\n const featureUnits = usageLimit === 1 ? feature?.units : feature?.unitsPlural;\n return `${formatNumber(usageLimit)} ${featureUnits} ${resetPeriodSuffix}`;\n }\n\n if (unitBasedEntitlement) {\n return calculateUnitQuantityText(minUnitQuantity, maxUnitQuantity, feature?.unitsPlural);\n }\n\n return feature?.displayName;\n}\n\nexport function EntitlementRow(props: EntitlementRowProps) {\n const { displayNameOverride, ...restProps } = props;\n const displayName = getEntitlementDisplay(restProps);\n\n return (\n <EntitlementRowContainer className={`stigg-entitlement-row-container stigg-entitlement-${restProps.feature?.id}`}>\n <EntitlementIconContainer>\n <EntitlementIcon icon=\"EntitlementCheck\" className=\"stigg-entitlement-row-icon\" />\n </EntitlementIconContainer>\n <EntitlementName className=\"stigg-entitlement-name\" variant=\"h6\" color=\"secondary\">\n {displayNameOverride || displayName}\n </EntitlementName>\n </EntitlementRowContainer>\n );\n}\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { BillingPeriod, WidgetType } from '@stigg/js-client-sdk';\nimport { EntitlementRow } from './EntitlementRow';\nimport { PaywallPlan } from './types';\nimport { PaywallLocalization } from './paywallTextOverrides';\nimport { Typography } from '../common/Typography';\n\nconst PlanEntitlementsContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 16px;\n`;\n\nfunction getTitle(plan: PaywallPlan, paywallLocale: PaywallLocalization, hasFeatures: boolean) {\n if (paywallLocale.entitlementsTitle) {\n return paywallLocale.entitlementsTitle(plan);\n }\n let title = hasFeatures ? `Includes:` : '';\n if (plan.basePlan) {\n title = `Everything in ${plan.basePlan.displayName}${hasFeatures ? ', plus:' : ''}`;\n }\n\n return title;\n}\n\nexport function PlanEntitlements({\n plan,\n billingPeriod,\n paywallLocale,\n}: {\n plan: PaywallPlan;\n billingPeriod: BillingPeriod;\n paywallLocale: PaywallLocalization;\n}) {\n const prices = plan.pricePoints?.filter((price) => price.billingPeriod === billingPeriod) || [];\n const unitBasedEntitlements = prices\n .filter((price) => (price?.minUnitQuantity && price?.minUnitQuantity > 1) || price?.maxUnitQuantity)\n .map((price) => {\n return (\n <EntitlementRow\n key={`priceUnitEntitlement-${price?.feature?.displayName}`}\n feature={price?.feature ? { ...price.feature, id: price.feature.featureId } : null}\n minUnitQuantity={price?.minUnitQuantity}\n maxUnitQuantity={price?.maxUnitQuantity}\n />\n );\n });\n\n const visibleEntitlements = plan.entitlements.filter(\n (entitlement) => !(entitlement.hiddenFromWidgets || []).includes(WidgetType.Paywall),\n );\n\n const hasFeatures = unitBasedEntitlements.length > 0 || visibleEntitlements.length > 0;\n\n return (\n <PlanEntitlementsContainer className=\"stigg-plan-entitlements-container\">\n <Typography className=\"stigg-plan-entitlements-title\" color=\"secondary\" variant=\"h6\" bold>\n {getTitle(plan, paywallLocale, hasFeatures)}\n </Typography>\n {unitBasedEntitlements}\n {visibleEntitlements.map((entitlement) => (\n <EntitlementRow\n key={entitlement.feature?.id}\n displayNameOverride={entitlement.displayNameOverride}\n feature={entitlement.feature}\n resetPeriod={entitlement.resetPeriod}\n hasUnlimitedUsage={entitlement.hasUnlimitedUsage}\n usageLimit={entitlement.usageLimit}\n isCustom={entitlement.isCustom}\n />\n ))}\n </PlanEntitlementsContainer>\n );\n}\n","import {\n BillingPeriod,\n Customer,\n Plan,\n Subscription,\n CustomerPortalSubscriptionScheduledUpdateDataFragment,\n PaywallCurrency,\n PaywallCalculatedPricePoint,\n BillableFeature,\n} from '@stigg/js-client-sdk';\nimport { CustomizedTheme } from '../../theme/Theme';\n\nexport type PaywallData = {\n plans: PaywallPlan[] | null;\n customer: Customer | null;\n currentSubscription: Subscription | null;\n currentSubscriptionOverride?: CurrentSubscriptionOverride | null;\n isCustomerOnTrial: boolean;\n isLoading: boolean;\n selectedBillingPeriod: BillingPeriod;\n setSelectedBillingPeriod: (billingPeriod: BillingPeriod) => void;\n availableBillingPeriods: BillingPeriod[];\n locale: string;\n configuration?: CustomizedTheme;\n};\n\nexport type CurrentSubscriptionOverride = {\n planId: string;\n billableFeatures: BillableFeature[];\n};\n\nexport enum SubscribeIntentionType {\n START_TRIAL = 'START_TRIAL',\n UPGRADE_TRIAL_TO_PAID = 'UPGRADE_TRIAL_TO_PAID',\n REQUEST_CUSTOM_PLAN_ACCESS = 'REQUEST_CUSTOM_PLAN_ACCESS',\n CHANGE_BILLING_PERIOD = 'CHANGE_BILLING_PERIOD',\n CHANGE_UNIT_QUANTITY = 'CHANGE_UNIT_QUANTITY',\n UPGRADE_PLAN = 'UPGRADE_PLAN',\n DOWNGRADE_PLAN = 'DOWNGRADE_PLAN',\n CANCEL_SCHEDULED_UPDATES = 'CANCEL_SCHEDULED_UPDATES',\n}\n\nexport type PaywallPlan = Plan & {\n isLowerThanCurrentPlan?: boolean;\n isTriable: boolean;\n isCurrentCustomerPlan: boolean;\n currentCustomerPlanBillingPeriod?: BillingPeriod;\n trialDaysLeft?: number;\n isNextPlan?: (billingPeriod: BillingPeriod) => boolean;\n scheduledUpdate?: CustomerPortalSubscriptionScheduledUpdateDataFragment;\n paywallCurrency?: PaywallCurrency;\n paywallCalculatedPricePoints?: PaywallCalculatedPricePoint[];\n};\n\nexport type OnPlanSelectedCallbackFn = ({\n plan,\n customer,\n subscription,\n intentionType,\n selectedBillingPeriod,\n billableFeatures,\n}: {\n plan: Plan;\n customer: Customer | null;\n subscription: Subscription | null;\n intentionType: SubscribeIntentionType;\n selectedBillingPeriod: BillingPeriod;\n billableFeatures?: BillableFeature[];\n}) => void | Promise<void>;\n\nexport type ShouldHidePlanFn = ({ plan }: { plan: PaywallPlan }) => boolean | Promise<boolean>;\n\nexport type CurrentSubscriptionOverrideFn = ({\n currentSubscription,\n}: {\n currentSubscription: Subscription | null;\n}) => CurrentSubscriptionOverride | null | undefined;\n\nexport type SelectDefaultTierIndexFn = ({ plan }: { plan: PaywallPlan }) => number;\n","import Color from 'color';\nimport merge from 'lodash/merge';\nimport { HorizontalAlignment, StiggTheme } from './types';\nimport { CustomizedTheme } from './Theme';\n\nexport const flexLayoutMapper = (horizontalAlignment: HorizontalAlignment) => {\n return {\n left: 'flex-start',\n center: 'center',\n right: 'flex-end',\n }[horizontalAlignment];\n};\n\nexport const getResolvedTheme = (customizedTheme?: CustomizedTheme): StiggTheme => {\n const primaryColor = Color(customizedTheme?.palette?.primary || '#327EEE');\n const textColor = Color(customizedTheme?.palette?.text?.primary || '#001E6C');\n const successColor = Color('#4CAF50');\n const errorColor = Color('#f44336');\n\n const baseTheme: StiggTheme = {\n palette: {\n primary: primaryColor.hex(),\n primaryDark: primaryColor.darken(0.3).hex(),\n primaryLight: primaryColor.alpha(0.5).toString(),\n backgroundPaper: '#FFFFFF',\n backgroundHighlight: '#F5F6F9',\n backgroundSection: primaryColor.alpha(0.1).toString(),\n backgroundButton: primaryColor.alpha(0.08).toString(),\n outlinedBorder: '#C4CBDD',\n outlinedRestingBorder: primaryColor.alpha(0.5).toString(),\n outlinedHoverBackground: primaryColor.lightness(95).hex(),\n switchBorder: primaryColor.lighten(0.1).hex(),\n switchFill: primaryColor.lighten(0.5).hex(),\n switchHandle: primaryColor.hex(),\n warning: '#ed6c02',\n error: errorColor.hex(),\n errorDark: errorColor.darken(0.3).hex(),\n success: successColor.hex(),\n successDark: successColor.darken(0.3).hex(),\n white: '#FFFFFF',\n text: {\n primary: textColor.hex(),\n secondary: textColor.alpha(0.75).toString(),\n tertiary: textColor.alpha(0.5).toString(),\n disabled: textColor.alpha(0.35).toString(),\n },\n },\n layout: {\n planMinWidth: '330px',\n planMaxWidth: '330px',\n planMargin: '20px',\n planPadding: '40px',\n ctaAlignment: 'left',\n headerAlignment: 'left',\n descriptionAlignment: 'left',\n descriptionMinHeight: '80px',\n switchBottomSpacing: '40px',\n },\n shadows: {\n light: '0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px rgba(0, 0, 0, 0.14), 0px 1px 3px rgba(0, 0, 0, 0.12)',\n popover:\n '0px 4px 5px -2px rgba(0, 30, 108, 0.2), 0px 7px 10px 1px rgba(0, 30, 108, 0.14), 0px 2px 16px 1px rgba(0, 30, 108, 0.12)',\n },\n border: {\n radius: '10px',\n },\n typography: {\n fontFamily: 'custom-font, DM Sans, sans-serif',\n h1: {\n fontSize: '32px',\n fontWeight: 'bold',\n },\n h2: {\n fontSize: '24px',\n fontWeight: 'normal',\n },\n h3: {\n fontSize: '16px',\n fontWeight: 'normal',\n },\n body: {\n fontSize: '14px',\n fontWeight: 'normal',\n },\n caption: {\n fontSize: '12px',\n fontWeight: 'normal',\n },\n },\n customCss: '',\n };\n\n return merge(baseTheme, customizedTheme);\n};\n","import React from 'react';\nimport moment from 'moment';\nimport isNil from 'lodash/isNil';\nimport {\n CustomerPortalSubscription,\n CustomerPortalSubscriptionScheduledUpdateDataFragment,\n SubscriptionScheduleType,\n} from '@stigg/js-client-sdk';\nimport { CustomerPortalSubscriptionPriceFragment } from '@stigg/api-client-js/src/generated/sdk';\nimport { compact, map } from 'lodash';\nimport { BillingPeriodChangeVariables, UnitAmountChangeVariables } from '../../types';\n\nconst formatDate = (date: string) => moment.utc(date).format('MMMM Do, yyyy');\n\ntype GetSubscriptionScheduleUpdateTextsProps = {\n scheduledUpdate: CustomerPortalSubscriptionScheduledUpdateDataFragment | undefined;\n subscriptionPrices?: CustomerPortalSubscriptionPriceFragment[];\n billingPeriodRange?: CustomerPortalSubscription['billingPeriodRange'];\n options?: { withDate?: boolean; postfix?: string };\n};\n\nexport function getSubscriptionScheduleUpdateTexts({\n scheduledUpdate,\n subscriptionPrices,\n billingPeriodRange,\n options = {},\n}: GetSubscriptionScheduleUpdateTextsProps) {\n if (!scheduledUpdate) {\n return {};\n }\n const { withDate, postfix = '' } = options;\n\n switch (scheduledUpdate.subscriptionScheduleType) {\n case SubscriptionScheduleType.Downgrade: {\n let shouldShowDate = withDate;\n if (isNil(shouldShowDate) && billingPeriodRange?.end) {\n shouldShowDate = !moment(scheduledUpdate.scheduledExecutionTime).isSame(billingPeriodRange?.end, 'day');\n }\n\n const line1 = (\n <>\n Your subscription will be downgraded to the <b>{scheduledUpdate.targetPackage?.displayName} plan</b>{' '}\n {shouldShowDate ? <>on {formatDate(scheduledUpdate.scheduledExecutionTime)}</> : postfix}.\n </>\n );\n const line2 = `Until then you still have access to your current plan.`;\n\n return { line1, line2 };\n }\n\n case SubscriptionScheduleType.BillingPeriod: {\n const variables = scheduledUpdate.scheduleVariables as BillingPeriodChangeVariables;\n const line1 = (\n <>\n Your billing cycle will change to <b>{variables.billingPeriod?.toLocaleLowerCase()}</b>{' '}\n {withDate ? <>on {formatDate(scheduledUpdate.scheduledExecutionTime)}</> : postfix}.\n </>\n );\n\n return { line1 };\n }\n\n case SubscriptionScheduleType.UnitAmount: {\n const variables = scheduledUpdate.scheduleVariables as UnitAmountChangeVariables;\n const feature = compact(map(subscriptionPrices, 'feature')).find(({ id }) => id === variables.featureId);\n const { featureUnits, featureUnitsPlural } = feature || {};\n const unitsText = variables.newUnitAmount === 1 ? featureUnits : featureUnitsPlural;\n\n const line1 = (\n <>\n Your subscription will be updated to <b>{variables.newUnitAmount}</b> {unitsText}{' '}\n {withDate ? <>on {formatDate(scheduledUpdate.scheduledExecutionTime)}</> : postfix}.\n </>\n );\n\n const line2 = `Until then you still have access to your current ${featureUnits} count.`;\n\n return { line1, line2 };\n }\n\n default: {\n return {};\n }\n }\n}\n","import { BillingModel, TiersMode, BillingPeriod, Price, PriceTierFragment, Subscription } from '@stigg/js-client-sdk';\nimport isNil from 'lodash/isNil';\nimport { sum } from 'lodash';\nimport { PaywallPlan } from '../paywall';\nimport { CurrentSubscriptionOverride, SelectDefaultTierIndexFn } from '../paywall/types';\n\nexport function getPriceFeatureUnit(price: Price) {\n if (!price.feature) {\n return '';\n }\n\n return (price.feature.unitQuantity !== 1 ? price.feature.unitsPlural : price.feature.units) || '';\n}\n\nexport function getTierByQuantity(tiers: PriceTierFragment[], quantity: number): PriceTierFragment {\n const ascendingTiers = [...tiers];\n // Sort tiers by upTo value, ascending, if upTo is not set,\n // put it at the end as it represent the last infinity tier\n ascendingTiers.sort((a, b) => (!a.upTo ? 1 : !b.upTo ? -1 : a.upTo - b.upTo));\n\n for (const tier of ascendingTiers) {\n if (tier.upTo && quantity <= tier.upTo) {\n return tier;\n }\n }\n\n return ascendingTiers[ascendingTiers.length - 1];\n}\n\nfunction getAmount(amount: number, selectedBillingPeriod?: BillingPeriod, shouldShowMonthlyPriceAmount?: boolean) {\n return selectedBillingPeriod === BillingPeriod.Annually && shouldShowMonthlyPriceAmount ? amount / 12 : amount;\n}\n\nfunction calculateTierPriceVolume(\n currentTier: PriceTierFragment,\n perUnitQuantity: number,\n selectedBillingPeriod?: BillingPeriod,\n shouldShowMonthlyPriceAmount?: boolean,\n): number {\n let amount = 0;\n\n if (currentTier.unitPrice) {\n const unitPrice = getAmount(currentTier.unitPrice.amount, selectedBillingPeriod, shouldShowMonthlyPriceAmount);\n amount += unitPrice * perUnitQuantity;\n }\n\n if (currentTier.flatPrice) {\n amount += getAmount(currentTier.flatPrice.amount, selectedBillingPeriod, shouldShowMonthlyPriceAmount);\n }\n\n return amount;\n}\n\nexport function calculateTierPriceGraduated(\n tiers: PriceTierFragment[],\n unitQuantity: number,\n selectedBillingPeriod?: BillingPeriod,\n shouldShowMonthlyPriceAmount?: boolean,\n): { total: number; breakdown: Array<{ unitQuantity: number; amount: number }> } {\n let remainingQuantity = unitQuantity;\n let prevUpTo = 0;\n let currentTierIndex = 0;\n\n const breakdown: Array<{ unitQuantity: number; amount: number }> = [];\n\n while (remainingQuantity > 0 && currentTierIndex < tiers.length) {\n const tier = tiers[currentTierIndex];\n const { upTo } = tier;\n\n if (isNil(upTo)) {\n breakdown.push({\n unitQuantity: remainingQuantity,\n amount: calculateTierPriceVolume(tier, remainingQuantity, selectedBillingPeriod, shouldShowMonthlyPriceAmount),\n });\n remainingQuantity = 0;\n } else {\n const unitsInTier = upTo - prevUpTo;\n const consumed = Math.min(remainingQuantity, unitsInTier);\n breakdown.push({\n unitQuantity: consumed,\n amount: calculateTierPriceVolume(tier, consumed, selectedBillingPeriod, shouldShowMonthlyPriceAmount),\n });\n remainingQuantity -= consumed;\n prevUpTo = upTo;\n }\n\n currentTierIndex += 1;\n }\n\n const total = sum(breakdown.map(({ amount }) => amount));\n\n return {\n breakdown,\n total,\n };\n}\n\nexport function calculateTierPrice(\n price: Pick<Price, 'tiers' | 'tiersMode'>,\n unitQuantity: number,\n selectedBillingPeriod?: BillingPeriod,\n shouldShowMonthlyPriceAmount?: boolean,\n): number {\n if (!price.tiers) {\n return 0;\n }\n\n switch (price.tiersMode) {\n case TiersMode.Volume: {\n const currentTier = getTierByQuantity(price.tiers, unitQuantity);\n return calculateTierPriceVolume(currentTier, unitQuantity, selectedBillingPeriod, shouldShowMonthlyPriceAmount);\n }\n case TiersMode.Graduated: {\n return calculateTierPriceGraduated(price.tiers, unitQuantity, selectedBillingPeriod, shouldShowMonthlyPriceAmount)\n .total;\n }\n default:\n return 0;\n }\n}\n\nexport function hasTierWithUnitPrice(tiers: PriceTierFragment[] | null | undefined) {\n return tiers?.some(({ unitPrice, upTo }) => unitPrice && !isNil(upTo));\n}\n\nexport function isBulkTiers(tiers: PriceTierFragment[] | null | undefined) {\n return tiers?.every(({ unitPrice, upTo }) => !unitPrice || isNil(upTo));\n}\n\nexport function isQuantityInFirstTier(tiers: PriceTierFragment[] | null | undefined, quantity: number) {\n return tiers?.[0].upTo && quantity <= tiers[0].upTo;\n}\n\nexport function getTiersPerUnitQuantities({\n plan,\n billingPeriod,\n currentSubscription,\n currentSubscriptionOverride,\n selectDefaultTierIndex,\n}: {\n plan: PaywallPlan;\n billingPeriod: BillingPeriod;\n currentSubscription: Subscription | null;\n currentSubscriptionOverride?: CurrentSubscriptionOverride | null;\n selectDefaultTierIndex?: SelectDefaultTierIndexFn;\n}): Record<string, number> {\n const planTierPrices = plan.pricePoints.filter(\n (price) => price.billingPeriod === billingPeriod && price.isTieredPrice,\n );\n\n if (planTierPrices.length === 1) {\n const [price] = planTierPrices;\n const { featureId } = price.feature!;\n const selectedDefaultTierIndex = selectDefaultTierIndex ? selectDefaultTierIndex({ plan }) : 0;\n const currentTier = price.tiers![selectedDefaultTierIndex];\n let quantity = hasTierWithUnitPrice(price.tiers) ? 1 : currentTier.upTo || 1;\n\n if (currentSubscription && currentSubscription.plan.id === plan.id) {\n const tieredPrice = currentSubscription.prices.find(\n (subscriptionPrice) =>\n subscriptionPrice.pricingModel === BillingModel.PerUnit &&\n subscriptionPrice.tiersMode &&\n subscriptionPrice.feature?.featureId === featureId,\n );\n\n if (tieredPrice) {\n quantity = tieredPrice.feature!.unitQuantity || 1;\n }\n }\n\n if (currentSubscriptionOverride?.planId === plan.id) {\n const billableFeature = currentSubscriptionOverride.billableFeatures.find(\n (billableFeature) => billableFeature.featureId === featureId,\n );\n if (billableFeature) {\n quantity = billableFeature.quantity;\n }\n }\n\n const result: Record<string, number> = {};\n result[featureId] = quantity;\n\n return result;\n }\n\n return {};\n}\n\nexport enum PriceTierComparison {\n Lower = -1,\n Equal = 0,\n Higher = 1,\n}\n\nexport function compareSelectedTierToCurrentTier({\n perUnitQuantityByFeature,\n plan,\n currentSubscription,\n currentSubscriptionOverride,\n}: {\n perUnitQuantityByFeature: Record<string, number>;\n plan: PaywallPlan;\n currentSubscription: Subscription | null;\n currentSubscriptionOverride?: CurrentSubscriptionOverride | null;\n}): PriceTierComparison {\n if (!currentSubscription) {\n return PriceTierComparison.Equal;\n }\n\n let currentTierPrice = currentSubscription.prices.find(\n (price) => price.pricingModel === BillingModel.PerUnit && price.tiersMode,\n );\n\n const isCurrentPlanOverride = plan.id === currentSubscriptionOverride?.planId;\n if (isCurrentPlanOverride) {\n currentTierPrice =\n plan.pricePoints.find((price) => price.pricingModel === BillingModel.PerUnit && price.tiersMode) ??\n currentTierPrice;\n }\n\n if (!currentTierPrice) {\n return PriceTierComparison.Equal;\n }\n\n const { featureId, unitQuantity } = currentTierPrice.feature!;\n let oldQuantity = unitQuantity;\n\n if (isCurrentPlanOverride) {\n const billableFeature = currentSubscriptionOverride?.billableFeatures?.find(\n (billableFeature) => billableFeature.featureId === featureId,\n );\n if (billableFeature) {\n oldQuantity = billableFeature.quantity;\n }\n }\n\n if (isNil(oldQuantity)) {\n return PriceTierComparison.Equal;\n }\n\n const newQuantity = perUnitQuantityByFeature[featureId];\n\n if (newQuantity < oldQuantity) {\n return PriceTierComparison.Lower;\n }\n if (newQuantity > oldQuantity) {\n return PriceTierComparison.Higher;\n }\n return PriceTierComparison.Equal;\n}\n","import React, { useState } from 'react';\nimport { BillingPeriod, Customer, PricingType, Subscription } from '@stigg/js-client-sdk';\nimport { isFunction } from 'lodash';\nimport ClipLoader from 'react-spinners/ClipLoader';\nimport styled from '@emotion/styled/macro';\nimport { css, useTheme } from '@emotion/react';\nimport { CurrentSubscriptionOverride, PaywallPlan, SubscribeIntentionType } from './types';\nimport { PaywallLocalization } from './paywallTextOverrides';\nimport { flexLayoutMapper } from '../../theme/getResolvedTheme';\nimport { Typography } from '../common/Typography';\nimport { getSubscriptionScheduleUpdateTexts } from '../utils/getSubscriptionScheduleUpdateTexts';\nimport { compareSelectedTierToCurrentTier, PriceTierComparison } from '../utils/priceTierUtils';\n\nconst LoadingIndicator = styled(ClipLoader)`\n margin-left: 10px;\n`;\n\nconst OfferingButton = styled.button<{ $disabled?: boolean }>`\n cursor: ${({ $disabled }) => ($disabled ? 'default' : 'pointer')};\n padding: 8px 12px;\n background-color: ${({ theme }) => theme.stigg.palette.backgroundButton};\n border: ${({ theme }) => `1px solid ${theme.stigg.palette.outlinedRestingBorder}`};\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 42px;\n min-width: 120px;\n\n ${({ $disabled }) =>\n $disabled &&\n css`\n opacity: 0.5;\n `}\n\n &:hover {\n background-color: ${({ theme, $disabled }) =>\n $disabled ? theme.stigg.palette.backgroundButton : theme.stigg.palette.outlinedHoverBackground};\n }\n`;\n\nconst ButtonText = styled(Typography)`\n margin: 0;\n font-size: 15px;\n`;\n\nconst ScheduledUpdateText = styled(Typography)`\n min-height: 87px;\n`;\n\nconst CancelScheduledUpdateButton = styled.button<{ $disabled?: boolean }>`\n background: none;\n border: none;\n padding: 0;\n color: ${({ theme }) => theme.stigg.palette.text.secondary};\n\n text-decoration: underline;\n cursor: pointer;\n`;\n\nconst TrialDaysLeft = styled(Typography)`\n margin-top: 8px;\n margin-bottom: 17px;\n min-height: 20px;\n`;\n\nconst ButtonLayout = styled.div`\n display: flex;\n flex-direction: column;\n margin-top: 4px;\n align-self: ${({ theme }) => flexLayoutMapper(theme.stigg.layout.ctaAlignment)};\n width: 100%;\n`;\n\ntype PlanOfferingButtonProps = {\n isNextPlan?: boolean;\n customer: Customer | null;\n plan: PaywallPlan;\n currentSubscription: Subscription | null;\n currentSubscriptionOverride?: CurrentSubscriptionOverride | null;\n billingPeriod: BillingPeriod;\n isCustomerOnTrial: boolean;\n paywallLocale: PaywallLocalization;\n onPlanSelected: (intentionType: SubscribeIntentionType) => void | Promise<void>;\n withTrialLeftRow: boolean;\n perUnitQuantityByFeature: Record<string, number>;\n};\n\nexport function PlanOfferingButton({\n isNextPlan,\n customer,\n plan,\n billingPeriod,\n isCustomerOnTrial,\n onPlanSelected,\n paywallLocale,\n withTrialLeftRow,\n currentSubscription,\n currentSubscriptionOverride,\n perUnitQuantityByFeature,\n}: PlanOfferingButtonProps) {\n const theme = useTheme();\n const [isLoading, setIsLoading] = useState(false);\n const {\n currentPlan,\n custom,\n downgrade,\n startTrial,\n upgrade,\n startNew,\n switchToBillingPeriod,\n cancelScheduledUpdate,\n } = paywallLocale.planCTAButton;\n const resolvedDowngrade = isFunction(downgrade) ? downgrade(plan) : downgrade;\n const resolvedUpgrade = isFunction(upgrade) ? upgrade(plan) : upgrade;\n\n const buttonProps: {\n title: string;\n disabled: boolean;\n intentionType: SubscribeIntentionType;\n } = {\n title: customer ? (plan.isLowerThanCurrentPlan ? resolvedDowngrade : resolvedUpgrade) : startNew,\n disabled: false,\n intentionType: plan.isLowerThanCurrentPlan\n ? SubscribeIntentionType.DOWNGRADE_PLAN\n : isCustomerOnTrial\n ? SubscribeIntentionType.UPGRADE_TRIAL_TO_PAID\n : SubscribeIntentionType.UPGRADE_PLAN,\n };\n const isCustomPrice = plan.pricingType === PricingType.Custom;\n\n const { line1: scheduledUpdateText } = getSubscriptionScheduleUpdateTexts({\n scheduledUpdate: plan.scheduledUpdate,\n options: { withDate: true },\n });\n\n if (plan.isTriable && !plan.isCurrentCustomerPlan && !isCustomerOnTrial) {\n buttonProps.title = startTrial(plan);\n buttonProps.intentionType = SubscribeIntentionType.START_TRIAL;\n } else if (plan.isCurrentCustomerPlan && !isCustomerOnTrial) {\n const isSameBillingPeriod = billingPeriod === plan.currentCustomerPlanBillingPeriod;\n\n if (\n isSameBillingPeriod ||\n (plan.pricingType && [PricingType.Free, PricingType.Custom].includes(plan.pricingType))\n ) {\n const planComparison = compareSelectedTierToCurrentTier({\n perUnitQuantityByFeature,\n plan,\n currentSubscription,\n currentSubscriptionOverride,\n });\n switch (planComparison) {\n case PriceTierComparison.Lower:\n buttonProps.intentionType = SubscribeIntentionType.CHANGE_UNIT_QUANTITY;\n buttonProps.title = resolvedDowngrade;\n break;\n case PriceTierComparison.Higher:\n buttonProps.intentionType = SubscribeIntentionType.CHANGE_UNIT_QUANTITY;\n buttonProps.title = resolvedUpgrade;\n break;\n\n default:\n buttonProps.title = currentPlan;\n buttonProps.disabled = true;\n break;\n }\n } else {\n buttonProps.title = switchToBillingPeriod(billingPeriod);\n buttonProps.intentionType = SubscribeIntentionType.CHANGE_BILLING_PERIOD;\n }\n } else if (isCustomPrice) {\n buttonProps.title = typeof custom === 'function' ? custom({ plan, selectedBillingPeriod: billingPeriod }) : custom;\n buttonProps.intentionType = SubscribeIntentionType.REQUEST_CUSTOM_PLAN_ACCESS;\n }\n\n if (isNextPlan && plan.scheduledUpdate) {\n buttonProps.disabled = false;\n buttonProps.title = cancelScheduledUpdate;\n buttonProps.intentionType = SubscribeIntentionType.CANCEL_SCHEDULED_UPDATES;\n }\n\n const isDisabled = isLoading || buttonProps.disabled;\n return (\n <>\n <ButtonLayout className=\"stigg-paywall-plan-button-layout\">\n {isNextPlan && scheduledUpdateText ? (\n <ScheduledUpdateText color=\"secondary\" variant=\"body1\" className=\"stigg-paywall-schedule-update-text\">\n {scheduledUpdateText}{' '}\n <CancelScheduledUpdateButton\n color=\"secondary\"\n onClick={() => {\n setIsLoading(true);\n Promise.resolve(onPlanSelected(buttonProps.intentionType)).finally(() => setIsLoading(false));\n }}>\n {buttonProps.title}\n </CancelScheduledUpdateButton>\n </ScheduledUpdateText>\n ) : (\n <>\n <OfferingButton\n className=\"stigg-paywall-plan-button\"\n data-testid={`paywall-card-cta-${plan.displayName}`}\n disabled={isDisabled}\n $disabled={isDisabled}\n onClick={() => {\n setIsLoading(true);\n Promise.resolve(onPlanSelected(buttonProps.intentionType)).finally(() => setIsLoading(false));\n }}>\n <ButtonText className=\"stigg-paywall-plan-button-text\" variant=\"h6\" color=\"primary.main\">\n {buttonProps.title}\n </ButtonText>\n {isLoading && <LoadingIndicator color={theme.stigg.palette.text.disabled} loading size={16} />}\n </OfferingButton>\n\n {!withTrialLeftRow ? (\n <div style={{ height: '20px' }} />\n ) : (\n <TrialDaysLeft className=\"stigg-trial-days-left-text\" variant=\"h6\" color=\"secondary\">\n {plan.isCurrentCustomerPlan && plan.trialDaysLeft && (\n <>\n <b>{plan.trialDaysLeft} days</b> left on your free trial\n </>\n )}\n </TrialDaysLeft>\n )}\n </>\n )}\n </ButtonLayout>\n </>\n );\n}\n","import { Currency } from '@stigg/js-client-sdk';\nimport getSymbolFromCurrency from 'currency-symbol-map';\n\nexport const currencyPriceFormatter = ({\n amount,\n currency = Currency.Usd,\n locale,\n maximumFractionDigits = 5,\n minimumFractionDigits = 0,\n removeTrailingZero,\n}: {\n amount: number;\n currency?: Currency | string;\n locale?: string;\n maximumFractionDigits?: number;\n minimumFractionDigits?: number;\n removeTrailingZero?: boolean;\n}) => {\n const currencyString = currency.toString();\n const currencySymbol = getSymbolFromCurrency(currencyString);\n let formattedPrice = new Intl.NumberFormat(locale, {\n maximumFractionDigits,\n minimumFractionDigits,\n style: 'currency',\n currency: currencyString,\n trailingZeroDisplay: removeTrailingZero ? 'stripIfInteger' : 'auto',\n ...(currencySymbol ? { currencyDisplay: 'code' } : {}),\n } as Intl.NumberFormatOptions).format(amount || 0);\n\n if (currencySymbol) {\n formattedPrice = formattedPrice.replace(currencyString, currencySymbol);\n }\n\n // remove space between currency symbol and price\n formattedPrice = formattedPrice.replace(/\\s/g, '');\n\n return formattedPrice;\n};\n","export function numberFormatter(number: number, { locale }: { locale?: string } = {}) {\n return new Intl.NumberFormat(locale).format(number);\n}\n","import { BillingModel, BillingPeriod, PaywallCalculatedPricePoint, Price } from '@stigg/js-client-sdk';\nimport { currencyPriceFormatter } from './currencyUtils';\nimport { PlanPriceText } from './getPlanPrice';\nimport { calculateTierPrice, getPriceFeatureUnit } from './priceTierUtils';\nimport { PaywallLocalization } from '../paywall';\nimport { numberFormatter } from './numberUtils';\n\ntype GetPaidPriceTextParams = {\n planPrices: Price[];\n paywallCalculatedPrice?: PaywallCalculatedPricePoint;\n selectedBillingPeriod: BillingPeriod;\n locale: string;\n shouldShowMonthlyPriceAmount: boolean;\n paywallLocale: PaywallLocalization;\n perUnitQuantityByFeature?: Record<string, number>;\n};\n\nexport function getPaidPriceText({\n planPrices,\n paywallCalculatedPrice,\n selectedBillingPeriod,\n locale,\n shouldShowMonthlyPriceAmount,\n paywallLocale,\n perUnitQuantityByFeature,\n}: GetPaidPriceTextParams): PlanPriceText {\n const { amount, currency } = paywallCalculatedPrice || planPrices[0];\n const priceAmount = amount || 0;\n\n const isSinglePrice = planPrices.length === 1;\n let priceNumber =\n selectedBillingPeriod === BillingPeriod.Annually && shouldShowMonthlyPriceAmount ? priceAmount / 12 : priceAmount;\n\n let tiers;\n let tierUnits;\n const pricePeriod = paywallLocale.price.pricePeriod(\n shouldShowMonthlyPriceAmount ? BillingPeriod.Monthly : BillingPeriod.Annually,\n );\n let unit = pricePeriod;\n\n for (const price of planPrices) {\n if (price.isTieredPrice && price.tiers) {\n const quantity = perUnitQuantityByFeature?.[price.feature!.featureId] || 1;\n tiers = price.tiers;\n tierUnits = getPriceFeatureUnit(price);\n\n priceNumber += calculateTierPrice(price, quantity, selectedBillingPeriod, shouldShowMonthlyPriceAmount);\n }\n }\n\n if (isSinglePrice) {\n const price = planPrices[0];\n const formattedUnits =\n price.blockSize && price.blockSize > 1\n ? `for ${numberFormatter(price.blockSize)} ${price.feature?.unitsPlural || price.feature?.units || ''}`\n : `per ${price.feature?.units || ''}`;\n\n if (price.pricingModel === BillingModel.PerUnit && !price.isTieredPrice) {\n unit = `${formattedUnits} ${pricePeriod}`;\n } else if (price.pricingModel === BillingModel.UsageBased) {\n unit = `${formattedUnits}`;\n }\n }\n\n return {\n price: currencyPriceFormatter({\n amount: priceNumber,\n currency,\n locale,\n minimumFractionDigits: 2,\n removeTrailingZero: true,\n }),\n unit,\n tiers,\n tierUnits,\n };\n}\n","import { BillingPeriod, PriceTierFragment, PricingType } from '@stigg/js-client-sdk';\nimport { getPaidPriceText } from './getPaidPriceText';\nimport { PaywallPlan, PaywallLocalization } from '../paywall';\n\nexport type PlanPriceText = {\n price: string;\n unit?: string;\n tiers?: PriceTierFragment[] | null | undefined;\n tierUnits?: string;\n};\n\nexport function getPlanPrice(\n plan: PaywallPlan,\n billingPeriod: BillingPeriod,\n paywallLocale: PaywallLocalization,\n locale: string,\n shouldShowMonthlyPriceAmount: boolean,\n perUnitQuantityByFeature?: Record<string, number>,\n): PlanPriceText {\n switch (plan.pricingType) {\n case PricingType.Free:\n if (typeof paywallLocale.price.free === 'function') {\n return paywallLocale.price.free(plan.paywallCurrency);\n }\n\n return paywallLocale.price.free;\n case PricingType.Custom:\n return {\n price:\n typeof paywallLocale.price.custom === 'function'\n ? paywallLocale.price.custom({ plan, selectedBillingPeriod: billingPeriod })\n : paywallLocale.price.custom,\n };\n case PricingType.Paid: {\n const planPrices = plan.pricePoints.filter((pricePoint) => pricePoint.billingPeriod === billingPeriod);\n const paywallCalculatedPrice = plan.paywallCalculatedPricePoints?.find(\n (pricePoint) => pricePoint.billingPeriod === billingPeriod,\n );\n\n if (!planPrices?.length && !paywallCalculatedPrice) {\n return {\n price: paywallLocale.price.priceNotSet,\n };\n }\n\n const paidParams = {\n planPrices,\n paywallCalculatedPrice,\n selectedBillingPeriod: billingPeriod,\n perUnitQuantityByFeature: perUnitQuantityByFeature || {},\n };\n\n return paywallLocale.price.paid\n ? paywallLocale.price.paid({ ...paidParams, plan })\n : getPaidPriceText({ ...paidParams, locale, shouldShowMonthlyPriceAmount, paywallLocale });\n }\n default:\n return {\n price: '',\n };\n }\n}\n","import React from 'react';\n\nimport styled from '@emotion/styled/macro';\nimport MuiButton, { ButtonProps } from '@mui/material/Button';\n\nexport type StyledButtonProps = { $success?: boolean; $error?: boolean };\n\nconst StyledButton = styled(MuiButton, { shouldForwardProp: (prop) => !prop.startsWith('$') })<StyledButtonProps>`\n border-radius: 10px;\n text-transform: none;\n\n background-color: ${({ theme, $success, $error }) => {\n if ($success) {\n return theme.stigg.palette.success;\n }\n if ($error) {\n return theme.stigg.palette.error;\n }\n return '';\n }};\n\n &:hover {\n background-color: ${({ theme, $success, $error }) => {\n if ($success) {\n return theme.stigg.palette.successDark;\n }\n if ($error) {\n return theme.stigg.palette.errorDark;\n }\n return '';\n }};\n }\n`;\n\nexport const Button = ({ variant = 'outlined', ...props }: ButtonProps & StyledButtonProps) => {\n return <StyledButton variant={variant} {...props} />;\n};\n","import styled from '@emotion/styled';\nimport { OutlinedInputProps } from '@mui/material/OutlinedInput';\nimport TextField from '@mui/material/TextField';\n\nexport const InputField = styled(TextField)<OutlinedInputProps>(({ theme }) => ({\n '& .MuiOutlinedInput-root': {\n height: '42px',\n borderRadius: theme.stigg.border.radius,\n fieldset: {\n borderColor: theme.stigg.palette.outlinedBorder,\n },\n '&:not(.Mui-focused):hover fieldset': {\n borderColor: theme.stigg.palette.outlinedRestingBorder,\n },\n },\n '& .MuiInputBase-input': {\n padding: '8px 12px',\n borderRadius: theme.stigg.border.radius,\n fontFamily: theme.stigg.typography.fontFamily,\n color: theme.stigg.palette.text.primary,\n ...theme.stigg.typography.body,\n },\n '& .Mui-error': {\n fontFamily: theme.stigg.typography.fontFamily,\n },\n}));\n","import styled from '@emotion/styled/macro';\nimport Grid from '@mui/material/Grid';\nimport ReactSkeleton from 'react-loading-skeleton';\n\nexport const SkeletonsContainer = styled(Grid, { shouldForwardProp: (prop) => !prop.startsWith('$') })<{\n $gap: number;\n $flexDirection?: 'row' | 'column';\n}>`\n display: flex;\n flex-direction: ${({ $flexDirection }) => $flexDirection || 'row'};\n gap: ${({ $gap }) => $gap}px;\n`;\n\nexport const FlexedSkeletonContainer = styled(SkeletonsContainer)`\n span {\n display: flex;\n flex: 1;\n }\n`;\n\nexport const FlexedSkeleton = styled(Grid)<{ flex: number }>`\n span {\n display: flex;\n flex: ${({ flex }) => flex};\n }\n`;\n\nexport const Skeleton = styled(ReactSkeleton)`\n border-radius: 4px;\n`;\n","import React from 'react';\nimport Divider from '@mui/material/Divider';\nimport Grid from '@mui/material/Grid';\nimport styled from '@emotion/styled/macro';\nimport { FlexedSkeleton, FlexedSkeletonContainer, Skeleton, SkeletonsContainer } from './Skeletons.style';\n\nconst ContentContainer = styled(Grid)`\n display: flex;\n flex-direction: column;\n`;\n\nexport function ContentLoadingSkeleton() {\n return (\n <ContentContainer container>\n <SkeletonsContainer item $gap={48}>\n <Skeleton width={120} height={20} />\n <Skeleton width={120} height={20} />\n </SkeletonsContainer>\n\n <Divider className=\"stigg-checkout-plan-header-divider\" sx={{ marginY: 2 }} />\n\n <ContentContainer item>\n <Skeleton width={120} height={20} />\n\n <FlexedSkeletonContainer $gap={16} marginTop={3}>\n <Skeleton height={20} />\n <Skeleton height={20} />\n </FlexedSkeletonContainer>\n\n <SkeletonsContainer $gap={130} marginTop={3}>\n <FlexedSkeleton flex={1}>\n <Skeleton height={20} />\n </FlexedSkeleton>\n\n <FlexedSkeleton flex={3}>\n <Skeleton height={20} />\n </FlexedSkeleton>\n </SkeletonsContainer>\n </ContentContainer>\n </ContentContainer>\n );\n}\n","import React from 'react';\n\nexport const ON_WHEEL_BLUR = (e: React.WheelEvent<HTMLInputElement>) => (e.target as HTMLElement).blur();\n","import InputAdornment from '@mui/material/InputAdornment';\nimport React from 'react';\nimport { Typography } from './Typography';\nimport { InputField } from '../checkout/components';\nimport { TiersSelectContainerProps } from './TiersSelectContainer';\nimport { ON_WHEEL_BLUR } from '../utils/onWheelBlur';\n\nexport function VolumePerUnitInput({\n width,\n tierUnits,\n value,\n handleChange,\n}: Pick<TiersSelectContainerProps, 'width' | 'tierUnits' | 'value'> & {\n handleChange: (quantity: number) => void;\n}) {\n return (\n <InputField\n type=\"number\"\n onWheel={ON_WHEEL_BLUR}\n fullWidth\n sx={{ minHeight: '46px', width }}\n InputProps={{\n endAdornment: (\n <InputAdornment position=\"end\">\n <Typography variant=\"body1\" color=\"primary\">\n {tierUnits}\n </Typography>\n </InputAdornment>\n ),\n }}\n value={value}\n onChange={(event) => {\n const quantity = event?.target?.value ? Number(event?.target?.value) : null;\n if (quantity) {\n handleChange(quantity);\n }\n }}\n />\n );\n}\n","import { PriceTierFragment } from '@stigg/js-client-sdk';\nimport styled from '@emotion/styled/macro';\nimport OutlinedInput from '@mui/material/OutlinedInput';\nimport Select from '@mui/material/Select';\nimport MenuItem from '@mui/material/MenuItem';\nimport { map } from 'lodash';\nimport React from 'react';\nimport { Typography } from './Typography';\nimport { TiersSelectContainerProps } from './TiersSelectContainer';\nimport { formatNumber } from '../utils/formatNumber';\n\nconst TierSelect = styled(Select)`\n border-radius: 10px;\n min-height: 42px;\n min-width: 120px;\n\n &:hover .MuiOutlinedInput-notchedOutline {\n border-color: ${({ theme }) => theme.stigg.palette.outlinedBorder};\n }\n`;\n\nconst TierInput = styled(OutlinedInput)`\n & .MuiInputBase-input {\n padding: 10px 12px;\n }\n\n &.Mui-focused .MuiOutlinedInput-notchedOutline {\n border-color: ${({ theme }) => theme.stigg.palette.primary} !important;\n }\n`;\n\nexport function VolumeBulkSelect({\n value,\n componentId,\n tierUnits,\n tiers,\n handleChange,\n}: Pick<TiersSelectContainerProps, 'value' | 'componentId' | 'tiers' | 'tierUnits'> & {\n handleChange: (quantity: number) => void;\n}) {\n if (!tiers) {\n return null;\n }\n\n return (\n <TierSelect\n value={value.toString()}\n fullWidth\n onChange={(event) => {\n const quantity = event?.target?.value ? Number(event?.target?.value) : null;\n if (quantity) {\n handleChange(quantity);\n }\n }}\n id={componentId}\n input={<TierInput />}\n MenuProps={{\n MenuListProps: { disablePadding: true },\n PaperProps: {\n sx: { marginTop: '4px', borderRadius: '10px' },\n },\n }}>\n {map(tiers, (tier: PriceTierFragment) => (\n <MenuItem className=\"stigg-price-tier-menu-item-text\" key={tier.upTo} value={tier.upTo?.toString()}>\n <Typography variant=\"body1\" color=\"primary\" style={{ lineHeight: 'unset' }}>\n {formatNumber(tier.upTo)} {tierUnits}\n </Typography>\n </MenuItem>\n ))}\n </TierSelect>\n );\n}\n","import { PriceTierFragment, TiersMode } from '@stigg/js-client-sdk';\nimport React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { hasTierWithUnitPrice } from '../utils/priceTierUtils';\nimport { Typography } from './Typography';\nimport { VolumePerUnitInput } from './VolumePerUnitInput';\nimport { VolumeBulkSelect } from './VolumeBulkSelect';\n\nexport type TiersSelectContainerProps = {\n componentId: string;\n tiers?: PriceTierFragment[] | null;\n tierUnits?: string;\n tiersMode?: TiersMode | null;\n handleChange: (quantity: number) => void;\n value: number;\n width?: number;\n};\n\nconst TiersSelectLayout = styled(Typography)`\n min-height: 46px;\n`;\n\nexport function TiersSelectContainer(props: TiersSelectContainerProps) {\n const { tiers } = props;\n\n return (\n <TiersSelectLayout as=\"div\" className=\"stigg-price-tier-select\">\n {hasTierWithUnitPrice(tiers) ? <VolumePerUnitInput {...props} /> : <VolumeBulkSelect {...props} />}\n </TiersSelectLayout>\n );\n}\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { BillingPeriod } from '@stigg/js-client-sdk';\nimport { PaywallPlan } from './types';\nimport { PaywallLocalization } from './paywallTextOverrides';\nimport { getPlanPrice } from '../utils/getPlanPrice';\nimport { Typography } from '../common/Typography';\nimport { TiersSelectContainer } from '../common/TiersSelectContainer';\n\nconst EMPTY_CHAR = '';\n\nconst PlanPriceContainer = styled(Typography)`\n word-break: break-word;\n width: 100%;\n`;\n\nconst UnitSpan = styled(Typography)`\n white-space: nowrap;\n`;\n\nconst PriceSpan = styled(Typography)`\n white-space: normal;\n min-height: 39px;\n`;\n\ntype PriceBillingPeriodProps = {\n plan: PaywallPlan;\n billingPeriod: BillingPeriod;\n hasMonthlyPrice: boolean;\n hasAnnuallyPrice: boolean;\n paywallLocale: PaywallLocalization;\n};\n\nfunction PriceBillingPeriod({\n plan,\n billingPeriod,\n hasMonthlyPrice,\n hasAnnuallyPrice,\n paywallLocale,\n}: PriceBillingPeriodProps) {\n const hasPrice = plan.pricePoints.find((pricePoint) => pricePoint.billingPeriod === billingPeriod);\n\n let content = EMPTY_CHAR;\n if (hasPrice && hasMonthlyPrice && hasAnnuallyPrice) {\n content = paywallLocale.price.billingPeriod?.(billingPeriod) || `, billed ${billingPeriod.toLowerCase()}`;\n }\n\n return (\n <Typography span className=\"stigg-price-billing-period-text\" variant=\"h6\" color=\"secondary\">\n {content}\n </Typography>\n );\n}\n\nexport const PlanPrice = ({\n showStartingAt,\n withUnitPriceRow,\n withStartingAtRow,\n withTiersRow,\n plan,\n billingPeriod,\n paywallLocale,\n locale,\n hasMonthlyPrice,\n hasAnnuallyPrice,\n perUnitQuantityByFeature,\n setPerUnitQuantityByFeature,\n}: {\n showStartingAt: boolean;\n withUnitPriceRow: boolean;\n withStartingAtRow: boolean;\n withTiersRow: boolean;\n perUnitQuantityByFeature: Record<string, number>;\n setPerUnitQuantityByFeature: React.Dispatch<React.SetStateAction<Record<string, number>>>;\n plan: PaywallPlan;\n billingPeriod: BillingPeriod;\n paywallLocale: PaywallLocalization;\n hasMonthlyPrice: boolean;\n hasAnnuallyPrice: boolean;\n locale: string;\n}) => {\n const { price, unit, tiers, tierUnits } = getPlanPrice(\n plan,\n billingPeriod,\n paywallLocale,\n locale,\n hasMonthlyPrice,\n perUnitQuantityByFeature,\n );\n\n // We currently only support prices with one tier - so we select the first one\n const tieredPrice = plan.pricePoints.find((planPrice) => {\n return planPrice.billingPeriod === billingPeriod && planPrice.isTieredPrice;\n });\n const featureId = tieredPrice ? tieredPrice.feature!.featureId : undefined;\n const perUnitQuantity = perUnitQuantityByFeature[featureId || ''] ?? 1;\n\n const handlePerUnitQuantityChange = (quantity: number) => {\n if (!featureId) {\n return;\n }\n\n setPerUnitQuantityByFeature((prevState) => ({\n ...prevState,\n [featureId]: quantity,\n }));\n };\n\n return (\n <PlanPriceContainer as=\"div\" className=\"stigg-price-text\">\n <>\n {withStartingAtRow && (\n <Typography\n style={{ minHeight: '20px' }}\n className=\"stigg-starting-at-text\"\n variant=\"body1\"\n color=\"secondary\">\n {showStartingAt ? paywallLocale.price.startingAtCaption : EMPTY_CHAR}\n </Typography>\n )}\n\n <PriceSpan className=\"stigg-price-point\" variant=\"h1\">\n {price}\n </PriceSpan>\n\n {withUnitPriceRow && (\n <Typography as=\"div\" className=\"stigg-price-unit-and-billing-period-text\" style={{ minHeight: '48px' }}>\n <UnitSpan className=\"stigg-price-unit-text\" span variant=\"h6\" color=\"secondary\">\n {unit}\n </UnitSpan>\n\n <PriceBillingPeriod\n plan={plan}\n billingPeriod={billingPeriod}\n hasAnnuallyPrice={hasAnnuallyPrice}\n hasMonthlyPrice={hasMonthlyPrice}\n paywallLocale={paywallLocale}\n />\n </Typography>\n )}\n\n {withTiersRow ? (\n <TiersSelectContainer\n componentId={`${plan.id}_${featureId}_tier`}\n tiers={tiers}\n tierUnits={tierUnits}\n tiersMode={tieredPrice?.tiersMode}\n handleChange={handlePerUnitQuantityChange}\n value={perUnitQuantity}\n />\n ) : null}\n </>\n </PlanPriceContainer>\n );\n};\n","import React, { useState } from 'react';\nimport { Addon, WidgetType } from '@stigg/js-client-sdk';\nimport MuiButton from '@mui/material/Button';\nimport styled from '@emotion/styled/macro';\nimport classNames from 'classnames';\nimport { Typography } from '../common/Typography';\nimport { PaywallLocalization } from './paywallTextOverrides';\nimport { Icon } from '../common/Icon';\n\nexport const StyledButton = styled(MuiButton)`\n padding: 0px;\n text-transform: none;\n margin-left: 0px;\n`;\n\nconst ButtonText = styled(Typography)`\n font-size: 14px;\n font-weight: 500;\n`;\n\nconst AddonsBox = styled.div`\n width: 100%;\n gap: 10px;\n`;\n\nconst AddonsList = styled.div`\n margin-top: 10px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n gap: 4px;\n width: 100%;\n`;\n\nconst AddonRow = styled.div`\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n align-items: center;\n justify-content: space-between;\n padding: 8px 0px;\n max-height: 44px;\n gap: 16px;\n`;\n\nconst AddonName = styled(Typography)`\n overflow: hidden;\n font-feature-settings: 'liga' off, 'clig' off;\n text-overflow: ellipsis;\n font-family: 'DM Sans';\n letter-spacing: 0.15px;\n white-space: nowrap;\n min-width: 0;\n flex-shrink: 1;\n`;\n\nconst AddonIcon = styled(Icon)`\n width: 24px;\n height: 24px;\n color: ${({ theme }) => theme.stigg.palette.primary};\n`;\n\nconst AddonContent = styled.div`\n flex: 1;\n min-width: 0;\n`;\n\nconst Footer = styled.div`\n margin-top: 16px;\n display: flex;\n`;\n\nconst MAX_ADDONS = 4;\n\ntype PlanCompatibleAddonsProps = {\n addons: Addon[];\n paywallLocale: PaywallLocalization;\n};\n\nexport function PlanCompatibleAddons({ addons, paywallLocale }: PlanCompatibleAddonsProps) {\n const [showAllAddons, setShowAllAddons] = useState(false);\n\n if (!addons || addons.length === 0) return null;\n\n const visibleAddons = addons.filter((addon) => !addon.hiddenFromWidgets?.includes(WidgetType.Paywall));\n\n const toggleShowAllAddons = () => {\n setShowAllAddons(!showAllAddons);\n };\n\n const displayedAddons = showAllAddons ? visibleAddons : visibleAddons.slice(0, MAX_ADDONS);\n\n return (\n <AddonsBox className=\"stigg-compatible-addons-container\">\n <Typography className=\"stigg-compatible-addons-header\" color=\"secondary\" variant=\"body1\" bold>\n {paywallLocale.addonsTitle}\n </Typography>\n <AddonsList className=\"stigg-compatible-addons-list\">\n {displayedAddons.map((addon) => {\n return (\n <AddonRow\n key={addon.id}\n className={classNames(`stigg-compatible-addon--${addon.id}`, 'stigg-compatible-addon-item')}>\n <AddonIcon icon=\"Add\" className=\"stigg-compatible-addon-icon\" />\n <AddonContent className=\"stigg-compatible-addon-content\">\n <AddonName variant=\"body1\" color=\"primary\" className=\"stigg-compatible-addon-name\">\n {addon.displayName}\n </AddonName>\n </AddonContent>\n </AddonRow>\n );\n })}\n </AddonsList>\n {visibleAddons.length > MAX_ADDONS && (\n <Footer>\n <StyledButton variant=\"text\" onClick={toggleShowAllAddons}>\n <ButtonText color=\"primary.main\">\n {showAllAddons ? 'Show less' : `Show ${visibleAddons.length - MAX_ADDONS} more`}\n </ButtonText>\n </StyledButton>\n </Footer>\n )}\n </AddonsBox>\n );\n}\n","import React, { useState } from 'react';\nimport { BillableFeature, BillingPeriod, Customer, PricingType, Subscription } from '@stigg/js-client-sdk';\nimport styled from '@emotion/styled/macro';\nimport classNames from 'classnames';\nimport Grid from '@mui/material/Grid';\nimport { PlanEntitlements } from './PlanEntitlements';\nimport { PlanOfferingButton } from './PlanOfferingButton';\nimport { CurrentSubscriptionOverride, PaywallPlan, SelectDefaultTierIndexFn, SubscribeIntentionType } from './types';\nimport { PaywallLocalization } from './paywallTextOverrides';\nimport { flexLayoutMapper } from '../../theme/getResolvedTheme';\nimport { Typography } from '../common/Typography';\nimport MiniSchedule from '../../assets/mini-schedule.svg';\nimport { PlanPrice } from './PlanPrice';\nimport { getTiersPerUnitQuantities } from '../utils/priceTierUtils';\nimport { PlanCompatibleAddons } from './PlanCompatibleAddons';\n\nconst PlanOfferingButtonHeight = '66px';\n\nconst PlanOfferingContainer = styled.div<{ $isHighlighted: boolean; $isCurrentPlan: boolean }>`\n position: relative;\n background-color: ${({ theme, $isCurrentPlan }) =>\n $isCurrentPlan ? theme.stigg.palette.backgroundHighlight : theme.stigg.palette.backgroundPaper};\n border: ${({ theme, $isHighlighted }) =>\n $isHighlighted ? `3px solid ${theme.stigg.palette.primary}` : `1px solid ${theme.stigg.palette.outlinedBorder}`};\n border-radius: 10px;\n padding: ${({ theme }) => theme.stigg.layout.planPadding};\n display: flex;\n min-width: ${({ theme }) => theme.stigg.layout.planMinWidth};\n max-width: ${({ theme }) => theme.stigg.layout.planMaxWidth};\n flex-direction: column;\n align-items: flex-start;\n justify-content: flex-start;\n position: relative;\n`;\n\nconst AddonsContainer = styled.div<{ $planHasEntitlements: boolean }>`\n margin-top: ${({ $planHasEntitlements }) => ($planHasEntitlements ? '32px' : '0px')};\n`;\n\nconst PlanHeader = styled(Typography)`\n padding-bottom: 8px;\n`;\n\nconst Divider = styled.div`\n height: 2px;\n width: 100%;\n background-color: ${({ theme }) => theme.stigg.palette.outlinedBorder};\n margin-bottom: 40px;\n`;\n\nconst PlanDescription = styled(Typography)`\n text-align: ${({ theme }) => theme.stigg.layout.descriptionAlignment};\n min-height: ${({ theme }) => theme.stigg.layout.descriptionMinHeight};\n`;\n\nconst HighlightBadge = styled.div`\n background-color: ${({ theme }) => theme.stigg.palette.primary};\n border-radius: 40px;\n position: absolute;\n top: -12px;\n`;\n\nconst HighlightText = styled(Typography)`\n margin: 0;\n padding: 2px 8px;\n`;\n\nconst HeaderWrapper = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: ${({ theme }) => flexLayoutMapper(theme.stigg.layout.headerAlignment)};\n`;\n\ntype PlanOfferingProps = {\n withUnitPriceRow: boolean;\n withTiersRow: boolean;\n withTrialLeftRow: boolean;\n customer: Customer | null;\n plan: PaywallPlan;\n billingPeriod: BillingPeriod;\n currentSubscription: Subscription | null;\n currentSubscriptionOverride?: CurrentSubscriptionOverride | null;\n isHighlighted: boolean;\n shouldShowDescriptionSection: boolean;\n hasAnnuallyPrice: boolean;\n hasMonthlyPrice: boolean;\n isCustomerOnTrial: boolean;\n onPlanSelected: (intentionType: SubscribeIntentionType, billableFeatures: BillableFeature[]) => void | Promise<void>;\n paywallLocale: PaywallLocalization;\n locale: string;\n withStartingAtRow: boolean;\n isCustomerInCustomPlan: boolean;\n selectDefaultTierIndex?: SelectDefaultTierIndexFn;\n hideCompatibleAddons?: boolean;\n};\n\nconst NextPlanTagContainer = styled.div`\n position: absolute;\n top: 0;\n background-color: ${({ theme }) => theme.stigg.palette.outlinedBorder};\n border-radius: 0px 0px 10px 10px;\n padding: 3px 12px;\n`;\n\nconst StyledMiniSchedule = styled(MiniSchedule)<{ $iconsColor?: string }>`\n display: flex;\n height: 100%;\n margin-right: 4px;\n\n path {\n fill: ${({ theme }) => theme.stigg.palette.text.primary};\n }\n`;\n\nfunction UpcomingChangeTag({ text = 'Next', iconsColor }: { text?: string; iconsColor?: string }) {\n return (\n <NextPlanTagContainer>\n <Grid display=\"flex\" alignItems=\"center\" gap={1}>\n <StyledMiniSchedule $iconsColor={iconsColor} />\n <Typography color=\"primary\" variant=\"body1\">\n {text}\n </Typography>\n </Grid>\n </NextPlanTagContainer>\n );\n}\n\nexport function PlanOffering({\n withUnitPriceRow,\n withTiersRow,\n withTrialLeftRow,\n customer,\n plan,\n billingPeriod,\n isHighlighted,\n currentSubscription,\n currentSubscriptionOverride,\n shouldShowDescriptionSection,\n hasMonthlyPrice,\n hasAnnuallyPrice,\n isCustomerOnTrial,\n onPlanSelected,\n paywallLocale,\n locale,\n withStartingAtRow,\n isCustomerInCustomPlan,\n selectDefaultTierIndex,\n hideCompatibleAddons,\n}: PlanOfferingProps) {\n const isNextPlan = plan.isNextPlan && plan.isNextPlan(billingPeriod);\n const planPrices = plan.pricePoints.filter((pricePoint) => pricePoint.billingPeriod === billingPeriod);\n const paywallCalculatedPrice = plan.paywallCalculatedPricePoints?.find(\n (pricePoint) => pricePoint.billingPeriod === billingPeriod,\n );\n const showStartingAt = planPrices.length > 1 && !!paywallCalculatedPrice?.additionalChargesMayApply;\n const showCTAButton = !isCustomerInCustomPlan || plan.pricingType === PricingType.Custom;\n\n let planBadge = null;\n if (isNextPlan) {\n planBadge = <UpcomingChangeTag text=\"Next plan\" />;\n } else if (isHighlighted && paywallLocale.highlightChip) {\n planBadge = (\n <HighlightBadge className=\"stigg-highlight-badge\">\n <HighlightText className=\"stigg-highlight-badge-text\" color=\"white\" bold>\n {paywallLocale.highlightChip}\n </HighlightText>\n </HighlightBadge>\n );\n }\n\n const [perUnitQuantityByFeature, setPerUnitQuantityByFeature] = useState<Record<string, number>>(\n getTiersPerUnitQuantities({\n plan,\n billingPeriod,\n currentSubscription,\n currentSubscriptionOverride,\n selectDefaultTierIndex,\n }),\n );\n\n const onPlanButtonClick = (intentionType: SubscribeIntentionType) => {\n const perUnitBillableFeatures: BillableFeature[] = Object.keys(perUnitQuantityByFeature).map((featureId) => ({\n featureId,\n quantity: perUnitQuantityByFeature[featureId],\n }));\n\n return onPlanSelected(intentionType, perUnitBillableFeatures);\n };\n\n return (\n <PlanOfferingContainer\n className={classNames(`stigg-${plan.id}`, 'stigg-plan-offering-container', {\n 'stigg-current-plan': plan.isCurrentCustomerPlan,\n })}\n $isHighlighted={isHighlighted}\n $isCurrentPlan={plan.isCurrentCustomerPlan}>\n {planBadge}\n\n <HeaderWrapper className=\"stigg-header-wrapper\">\n <PlanHeader className=\"stigg-plan-header\" variant=\"h3\">\n {plan.displayName}\n </PlanHeader>\n\n {shouldShowDescriptionSection && (\n <PlanDescription className=\"stigg-plan-description\" variant=\"h6\" color=\"secondary\">\n {plan.description}\n </PlanDescription>\n )}\n\n <PlanPrice\n showStartingAt={showStartingAt}\n withUnitPriceRow={withUnitPriceRow}\n withStartingAtRow={withStartingAtRow}\n withTiersRow={withTiersRow}\n plan={plan}\n billingPeriod={billingPeriod}\n paywallLocale={paywallLocale}\n locale={locale}\n hasAnnuallyPrice={hasAnnuallyPrice}\n hasMonthlyPrice={hasMonthlyPrice}\n setPerUnitQuantityByFeature={setPerUnitQuantityByFeature}\n perUnitQuantityByFeature={perUnitQuantityByFeature}\n />\n\n {showCTAButton ? (\n <PlanOfferingButton\n isNextPlan={isNextPlan}\n customer={customer}\n plan={plan}\n currentSubscription={currentSubscription}\n currentSubscriptionOverride={currentSubscriptionOverride}\n billingPeriod={billingPeriod}\n isCustomerOnTrial={isCustomerOnTrial}\n onPlanSelected={onPlanButtonClick}\n paywallLocale={paywallLocale}\n withTrialLeftRow={withTrialLeftRow}\n perUnitQuantityByFeature={perUnitQuantityByFeature}\n />\n ) : (\n <div style={{ height: PlanOfferingButtonHeight }} />\n )}\n\n <Divider className=\"stigg-plan-header-divider\" />\n </HeaderWrapper>\n\n <PlanEntitlements plan={plan} billingPeriod={billingPeriod} paywallLocale={paywallLocale} />\n\n <AddonsContainer $planHasEntitlements={plan.entitlements.length > 0} className=\"stigg-addons-container\">\n {!hideCompatibleAddons && plan.compatibleAddons && plan.compatibleAddons.length > 0 && (\n <PlanCompatibleAddons addons={plan.compatibleAddons} paywallLocale={paywallLocale} />\n )}\n </AddonsContainer>\n </PlanOfferingContainer>\n );\n}\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport Switch from 'react-switch';\nimport { BillingPeriod } from '@stigg/js-client-sdk';\nimport { Typography } from '../common/Typography';\n\nconst PickerContainer = styled.div`\n height: 40px;\n padding: 0 20px;\n margin-bottom: ${({ theme }) => theme.stigg.layout.switchBottomSpacing};\n border-radius: 10px;\n border: ${({ theme }) => `1px solid ${theme.stigg.palette.outlinedBorder}`};\n background-color: ${({ theme }) => theme.stigg.palette.backgroundPaper};\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nconst PeriodText = styled(Typography)`\n margin: 0 8px;\n`;\n\nconst StyledSwitch = styled(Switch)`\n & .react-switch-bg {\n border: ${({ theme }) => `1px solid ${theme.stigg.palette.switchBorder}`};\n background: ${({ theme }) => theme.stigg.palette.switchFill} !important;\n }\n\n & .react-switch-handle {\n box-shadow: ${({ theme }) => theme.stigg.shadows.light};\n background: ${({ theme }) => theme.stigg.palette.switchHandle} !important;\n top: 0.5px !important;\n }\n`;\n\nfunction DiscountRate({ discount, disabled }: { discount: number; disabled: boolean }) {\n return (\n <Typography variant=\"h6\" color={disabled ? 'disabled' : 'primary'} className=\"stigg-discount-rate-text\">\n {discount}% off\n </Typography>\n );\n}\n\nexport function BillingPeriodPicker({\n discountRate,\n selectedBillingPeriod,\n onBillingPeriodChanged,\n availableBillingPeriods,\n}: {\n discountRate: number;\n selectedBillingPeriod: BillingPeriod;\n onBillingPeriodChanged: (billingPeriod: BillingPeriod) => void;\n availableBillingPeriods: BillingPeriod[];\n}) {\n if (availableBillingPeriods.length <= 1) {\n return null;\n }\n\n const isMonthlyBillingPeriod = selectedBillingPeriod === BillingPeriod.Monthly;\n\n return (\n <PickerContainer className=\"stigg-period-picker-container\">\n <PeriodText\n variant=\"h6\"\n className=\"stigg-monthly-period-text\"\n color={isMonthlyBillingPeriod ? 'primary' : 'disabled'}>\n Monthly\n </PeriodText>\n <StyledSwitch\n className=\"stigg-period-switch\"\n uncheckedIcon={false}\n checkedIcon={false}\n height={16}\n width={33}\n onChange={(isAnnuallySelected) =>\n onBillingPeriodChanged(isAnnuallySelected ? BillingPeriod.Annually : BillingPeriod.Monthly)\n }\n checked={!isMonthlyBillingPeriod}\n borderRadius={10}\n handleDiameter={19}\n />\n <PeriodText\n variant=\"h6\"\n className=\"stigg-annual-period-text\"\n color={!isMonthlyBillingPeriod ? 'primary' : 'disabled'}>\n Annual\n </PeriodText>\n {discountRate !== 0 && <DiscountRate discount={discountRate} disabled={isMonthlyBillingPeriod} />}\n </PickerContainer>\n );\n}\n","import { BillingPeriod, PaywallCalculatedPricePoint, Price } from '@stigg/js-client-sdk';\nimport isNil from 'lodash/isNil';\nimport { PaywallPlan } from '../paywall';\nimport { calculateTierPrice } from './priceTierUtils';\n\nexport function calculateDiscountRate(monthlyPrice?: number | null, annuallyPrice?: number | null) {\n if (!isNil(monthlyPrice) && !isNil(annuallyPrice)) {\n const annuallyPerMonthPrice = annuallyPrice / 12;\n return Math.round(((monthlyPrice - annuallyPerMonthPrice) / monthlyPrice) * 100);\n }\n\n return null;\n}\n\nfunction getPlanBillingPeriodAmount(plan: PaywallPlan, billingPeriod: BillingPeriod) {\n let pricePoint: PaywallCalculatedPricePoint | Price | undefined;\n\n pricePoint = plan.paywallCalculatedPricePoints?.find((price) => price.billingPeriod === billingPeriod);\n\n if (!pricePoint) {\n pricePoint = plan.pricePoints.find((price) => price.billingPeriod === billingPeriod);\n }\n\n if (!pricePoint?.amount) {\n const tieredPrice = plan.pricePoints.find((price) => {\n return price.isTieredPrice && price.billingPeriod === billingPeriod;\n });\n\n if (tieredPrice) {\n return calculateTierPrice(tieredPrice, 1);\n }\n }\n\n return pricePoint?.amount;\n}\n\nexport function calculatePaywallDiscountRate(plans: PaywallPlan[]) {\n return plans.reduce((maxDiscount, plan) => {\n const monthlyAmount = getPlanBillingPeriodAmount(plan, BillingPeriod.Monthly);\n const annuallyAmount = getPlanBillingPeriodAmount(plan, BillingPeriod.Annually);\n\n const discountRate = calculateDiscountRate(monthlyAmount, annuallyAmount);\n if (discountRate) {\n maxDiscount = Math.max(maxDiscount, discountRate);\n }\n\n return maxDiscount;\n }, 0);\n}\n","<svg width=\"135\" height=\"16\" viewBox=\"0 0 135 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M0.0987549 3.43016V12.9878H1.15589V9.52681H3.96527C5.94922 9.52681 7.28874 8.25245 7.28874 6.47848C7.28874 4.70452 5.94922 3.43016 3.96527 3.43016H0.0987549ZM1.15589 8.55656V4.40765H4.04492C5.33376 4.40765 6.18816 5.26205 6.18816 6.47848C6.18816 7.69492 5.33376 8.55656 4.04492 8.55656H1.15589Z\" fill=\"#001E6C\"/>\n<path d=\"M11.7787 13.1616C13.9075 13.1616 15.6525 11.5397 15.6525 9.38199C15.6525 7.21703 13.9365 5.62408 11.8077 5.62408C9.64999 5.62408 7.93395 7.24599 7.93395 9.41095C7.93395 11.5687 9.62103 13.1616 11.7787 13.1616ZM11.7932 12.2276C10.2365 12.2276 9.02005 11.0256 9.02005 9.39647C9.02005 7.76732 10.2365 6.56537 11.7932 6.56537C13.321 6.56537 14.5664 7.76732 14.5664 9.39647C14.5664 11.0256 13.321 12.2276 11.7932 12.2276Z\" fill=\"#001E6C\"/>\n<path d=\"M19.9054 12.9878L21.4766 6.94189H21.5056L23.0623 12.9878H24.4018L26.5958 5.8051H25.4155L23.7936 11.909H23.7647L22.2152 5.8051H20.7815L19.232 11.909H19.203L17.5522 5.8051H16.3575L18.5659 12.9878H19.9054Z\" fill=\"#001E6C\"/>\n<path d=\"M34.9835 9.42544C34.9835 7.30392 33.4051 5.62408 31.1532 5.62408C29.0534 5.62408 27.3084 7.18083 27.3084 9.41095C27.3084 11.5542 28.9086 13.1616 31.1822 13.1616C32.7679 13.1616 34.0567 12.3941 34.6794 11.1922L33.7816 10.707C33.3688 11.6049 32.3696 12.2348 31.1966 12.2348C29.5241 12.2348 28.5031 10.9894 28.4017 9.7223H34.969C34.9835 9.59197 34.9835 9.54129 34.9835 9.42544ZM31.1387 6.55089C32.5434 6.55089 33.6657 7.49942 33.854 8.80998H28.4307C28.6552 7.5501 29.7558 6.55089 31.1387 6.55089Z\" fill=\"#001E6C\"/>\n<path d=\"M39.5922 5.68201C38.564 5.68201 37.8182 6.20334 37.4924 6.93464L37.391 5.8051H36.486V12.9878H37.5431V8.5638C37.5431 7.44873 38.1585 6.77535 39.3171 6.77535H39.9977V5.68201H39.5922Z\" fill=\"#001E6C\"/>\n<path d=\"M48.2486 9.42544C48.2486 7.30392 46.6702 5.62408 44.4183 5.62408C42.3185 5.62408 40.5735 7.18083 40.5735 9.41095C40.5735 11.5542 42.1737 13.1616 44.4473 13.1616C46.033 13.1616 47.3218 12.3941 47.9445 11.1922L47.0467 10.707C46.634 11.6049 45.6348 12.2348 44.4618 12.2348C42.7892 12.2348 41.7682 10.9894 41.6669 9.7223H48.2342C48.2486 9.59197 48.2486 9.54129 48.2486 9.42544ZM44.4039 6.55089C45.8085 6.55089 46.9308 7.49942 47.1191 8.80998H41.6958C41.9203 7.5501 43.0209 6.55089 44.4039 6.55089Z\" fill=\"#001E6C\"/>\n<path d=\"M55.846 7.02877C55.2161 6.13817 54.2024 5.63132 53.0149 5.63132C50.9224 5.63132 49.2425 7.21703 49.2425 9.39647C49.2425 11.5759 50.8934 13.1616 52.986 13.1616C54.1807 13.1616 55.2161 12.6403 55.8533 11.7425L55.9981 12.9878H56.9032V2.56128L55.846 2.67713V7.02877ZM53.0294 12.2276C51.5306 12.2276 50.3286 11.0401 50.3286 9.39647C50.3286 7.75284 51.5306 6.56537 53.0294 6.56537C54.5789 6.56537 55.846 7.76732 55.846 9.39647C55.846 11.0256 54.5789 12.2276 53.0294 12.2276Z\" fill=\"#001E6C\"/>\n<path d=\"M65.7314 5.63132C64.5367 5.63132 63.5085 6.14541 62.8713 7.04325V2.56128L61.8142 2.67713V12.9878H62.7192L62.8641 11.7497C63.494 12.6475 64.5077 13.1616 65.7024 13.1616C67.795 13.1616 69.4748 11.5759 69.4748 9.39647C69.4748 7.21703 67.8239 5.63132 65.7314 5.63132ZM65.6879 12.2276C64.1384 12.2276 62.8713 11.0256 62.8713 9.39647C62.8713 7.76732 64.1384 6.56537 65.6879 6.56537C67.1867 6.56537 68.3887 7.75284 68.3887 9.39647C68.3887 11.0401 67.1867 12.2276 65.6879 12.2276Z\" fill=\"#001E6C\"/>\n<path d=\"M76.2187 5.8051V9.9178C76.2187 11.3297 75.3136 12.1841 74.0465 12.1841C72.7866 12.1841 72.077 11.4456 72.077 10.1133V5.8051H71.0199V10.2726C71.0199 11.9669 72.1349 13.0965 73.7641 13.0965C74.843 13.0965 75.6901 12.6765 76.2187 11.9814V12.8937C76.2187 14.1608 75.2629 15.0804 73.8727 15.0804C72.7504 15.0804 71.8236 14.4794 71.5847 13.4295L70.6579 13.9074C71.0995 15.16 72.3087 16 73.8582 16C75.8132 16 77.2758 14.5953 77.2758 12.7923V5.8051H76.2187Z\" fill=\"#001E6C\"/>\n<path d=\"M108.672 10.4867C108.672 11.9077 107.411 12.7873 105.491 12.7873C104.464 12.7873 103.634 12.6028 102.84 12.2091C102.914 11.76 102.982 11.2187 103 10.5913C103.738 11.0219 104.575 11.231 105.381 11.231C106.34 11.231 106.839 11.0096 106.839 10.5421C106.857 10.0807 106.5 9.87155 105.067 9.59473C103.406 9.26255 102.668 8.57359 102.668 7.35559C102.668 5.97767 103.929 5.0857 105.848 5.0857C106.697 5.0857 107.54 5.24564 108.186 5.52246L107.866 7.06647C107.226 6.7712 106.537 6.63587 105.848 6.63587C104.95 6.63587 104.507 6.85733 104.507 7.29408C104.507 7.67547 104.815 7.83541 106.217 8.12453C108.007 8.50592 108.678 9.19488 108.678 10.4744L108.672 10.4867ZM112.879 11.0957C112.16 11.0957 111.581 10.7143 111.581 9.70546V6.88808H113.408L113.747 5.25794H111.581V2.93884C111.157 3.06187 110.517 3.2095 109.681 3.28332L109.662 10.0315C109.662 11.8708 110.763 12.7996 112.412 12.7996C112.787 12.7996 113.113 12.7627 113.39 12.6951L113.753 10.9665C113.525 11.0465 113.236 11.1018 112.879 11.1018V11.0957ZM114.965 12.6889H116.884V5.25794H114.965V12.6889ZM115.93 2.21912C115.309 2.21297 114.829 2.66817 114.823 3.27102C114.823 3.89232 115.278 4.35983 115.894 4.36598C116.515 4.36598 116.976 3.92923 116.989 3.32638C117.001 2.70508 116.546 2.23142 115.937 2.21912H115.93ZM126.056 5.25794V11.5263C126.056 13.8946 124.456 15.5247 121.756 15.5247C120.784 15.5247 119.714 15.3094 118.994 14.8973C119.492 14.3867 119.831 13.9438 120.046 13.6239C120.532 13.79 121.042 13.8762 121.565 13.8762C123.275 13.8762 124.143 12.9288 124.143 11.7354V11.4955C123.534 12.1968 122.654 12.6336 121.602 12.6336C119.584 12.6336 118.065 11.1326 118.065 8.90577C118.065 6.67893 119.726 5.098 121.756 5.098C122.808 5.098 123.724 5.4794 124.333 6.19912L124.395 5.25179H126.062L126.056 5.25794ZM124.155 8.90577C124.155 7.72468 123.294 6.82657 122.107 6.82657C120.919 6.82657 120.046 7.72468 120.046 8.90577C120.046 10.0868 120.907 10.9542 122.107 10.9542C123.306 10.9542 124.155 10.0561 124.155 8.90577ZM134.994 5.25794V11.5263C134.994 13.8946 133.394 15.5247 130.694 15.5247C129.722 15.5247 128.652 15.3094 127.932 14.8973C128.43 14.3867 128.769 13.9438 128.984 13.6239C129.47 13.79 129.98 13.8762 130.503 13.8762C132.213 13.8762 133.081 12.9288 133.081 11.7354V11.4955C132.472 12.1968 131.592 12.6336 130.54 12.6336C128.523 12.6336 127.003 11.1326 127.003 8.90577C127.003 6.67893 128.664 5.098 130.694 5.098C131.746 5.098 132.662 5.4794 133.271 6.19912L133.333 5.25179H135L134.994 5.25794ZM133.093 8.90577C133.093 7.72468 132.232 6.82657 131.045 6.82657C129.857 6.82657 128.984 7.72468 128.984 8.90577C128.984 10.0868 129.845 10.9542 131.045 10.9542C132.244 10.9542 133.093 10.0561 133.093 8.90577Z\" fill=\"#001E6C\"/>\n<path d=\"M95.7092 14.9825C95.6354 15.0194 94.2267 15.6407 91.7353 15.5238C90.4374 15.4623 89.3117 15.2224 88.512 15.0009L92.8241 9.99361C93.5931 10.1905 94.5835 10.375 95.7092 10.4304C98.2005 10.5534 99.6092 9.92594 99.683 9.88903L95.7092 14.9886V14.9825ZM89.2686 5.36155C88.5612 2.96863 88.838 1.45537 88.8564 1.3754L84.8457 6.44421C84.8334 6.52418 84.5566 8.03744 85.2578 10.4304C85.6269 11.673 86.1252 12.7126 86.5312 13.4384L90.3759 8.0682C90.0068 7.36693 89.5885 6.44421 89.2686 5.3677V5.36155ZM99.2647 5.89058C98.6988 3.97132 97.813 2.55033 97.4501 2.009L93.8822 6.55494L94.5527 9.77216C94.9526 9.82752 95.3462 9.86443 95.7461 9.88903C95.9491 9.89518 96.1521 9.90134 96.3489 9.90134C98.2805 9.90134 99.357 9.44613 99.4739 9.39076L99.7507 9.26773C99.7753 8.60338 99.7322 7.42844 99.2709 5.88443L99.2647 5.89058ZM97.0256 1.68297C96.4166 1.45537 94.8295 0.932493 92.8303 0.83407C91.2248 0.754101 90.0744 0.987856 89.4347 1.1724L89.3793 1.46767C89.367 1.52919 89.121 2.96248 89.7792 5.20777C89.8899 5.58916 90.0252 5.9644 90.1729 6.33964L93.4577 6.22891L97.0318 1.68912L97.0256 1.68297Z\" fill=\"#001E6C\"/>\n</svg>\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport PoweredByStiggSvg from '../../assets/powered-by-stigg.svg';\n\nexport const STIGG_WATERMARK_CLASSNAME = 'stigg-watermark';\n\nexport type PoweredByStiggSources = 'paywall' | 'customer_portal' | 'checkout';\n\nconst PoweredByStiggThemedSvg = styled(PoweredByStiggSvg)`\n * {\n fill: ${({ theme }) => theme.stigg.palette.text.secondary};\n }\n`;\n\ntype PoweredByStiggProps = {\n source: PoweredByStiggSources;\n showWatermark?: boolean;\n style?: React.CSSProperties;\n align?: 'center' | 'end';\n};\n\nconst StyledPoweredByStigg = styled.div<{ $alignSelf?: string }>`\n align-self: ${({ $alignSelf }) => $alignSelf || 'unset'};\n\n @media (max-width: 1040px) {\n align-self: center;\n }\n`;\n\nexport function PoweredByStigg({ source, showWatermark, align, style = {} }: PoweredByStiggProps) {\n if (!showWatermark) {\n return null;\n }\n\n const onWatermarkClick = () => {\n const sourceDomain = window.location.hostname.replace('www.', '');\n window.open(\n `https://www.stigg.io/?utm_source=${sourceDomain}&utm_medium=referral&utm_campaign=${source}`,\n '_blank',\n );\n };\n\n return (\n <StyledPoweredByStigg\n $alignSelf={align}\n className={STIGG_WATERMARK_CLASSNAME}\n style={{ cursor: 'pointer', ...style }}\n onClick={onWatermarkClick}>\n <PoweredByStiggThemedSvg />\n </StyledPoweredByStigg>\n );\n}\n","import { BillingPeriod } from '@stigg/js-client-sdk';\nimport { PaywallPlan } from '../types';\n\nexport function hasPricePoints(plan: PaywallPlan, billingPeriod: BillingPeriod): boolean {\n return plan.pricePoints.some((pricePoint) => pricePoint.billingPeriod === billingPeriod);\n}\n\nexport function hasPricePointsForPlans(plans: PaywallPlan[], billingPeriod: BillingPeriod): boolean {\n return plans.some((plan) => hasPricePoints(plan, billingPeriod));\n}\n","import { BillingPeriod, PricingType } from '@stigg/js-client-sdk';\nimport { ShouldHidePlanFn, PaywallPlan } from '../types';\nimport { hasPricePoints } from './hasPricePoints';\n\nexport function getPlansToDisplay(\n plans: PaywallPlan[],\n selectedBillingPeriod: BillingPeriod,\n shouldHidePlan?: ShouldHidePlanFn,\n): PaywallPlan[] {\n return plans\n .filter((plan) => plan.pricingType !== PricingType.Paid || hasPricePoints(plan, selectedBillingPeriod))\n .filter((plan) => !shouldHidePlan || !shouldHidePlan({ plan }));\n}\n","import { BillableFeature, BillingPeriod, Customer, Plan, PricingType, Subscription } from '@stigg/js-client-sdk';\nimport React, { useCallback, useMemo } from 'react';\nimport styled from '@emotion/styled/macro';\nimport { PlanOffering } from './PlanOffering';\nimport { BillingPeriodPicker } from './BillingPeriodPicker';\nimport { calculatePaywallDiscountRate } from '../utils/calculateDiscountRate';\nimport {\n ShouldHidePlanFn,\n OnPlanSelectedCallbackFn,\n PaywallPlan,\n SubscribeIntentionType,\n SelectDefaultTierIndexFn,\n CurrentSubscriptionOverride,\n} from './types';\nimport { PaywallLocalization } from './paywallTextOverrides';\nimport { PoweredByStigg } from '../common/PoweredByStigg';\nimport { useStiggContext } from '../..';\nimport { hasPricePointsForPlans } from './utils/hasPricePoints';\nimport { getPlansToDisplay } from './utils/getPlansToDisplay';\nimport { getPlanPrice } from '../utils/getPlanPrice';\nimport { getTiersPerUnitQuantities } from '../utils/priceTierUtils';\n\nconst PaywallPlansContainer = styled.div`\n color: ${({ theme }) => theme.stigg.palette.text.primary};\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: wrap;\n padding: 10px 0;\n gap: ${({ theme }) => theme.stigg.layout.planMargin};\n`;\n\nconst PaywallContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n\n & * {\n box-sizing: border-box;\n }\n`;\n\nconst PaywallLayout = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\ntype PaywallProps = {\n plans: PaywallPlan[];\n customer: Customer | null;\n currentSubscription: Subscription | null;\n currentSubscriptionOverride?: CurrentSubscriptionOverride | null;\n selectedBillingPeriod: BillingPeriod;\n highlightedPlanId?: string;\n onBillingPeriodChanged: (billingPeriod: BillingPeriod) => void;\n availableBillingPeriods: BillingPeriod[];\n isCustomerOnTrial: boolean;\n onPlanSelected: OnPlanSelectedCallbackFn;\n paywallLocale: PaywallLocalization;\n locale: string;\n shouldHidePlan?: ShouldHidePlanFn;\n selectDefaultTierIndex?: SelectDefaultTierIndexFn;\n hideCompatibleAddons?: boolean;\n};\n\nexport const Paywall = ({\n plans,\n customer,\n currentSubscription,\n highlightedPlanId,\n selectedBillingPeriod,\n onBillingPeriodChanged,\n availableBillingPeriods,\n isCustomerOnTrial,\n onPlanSelected,\n paywallLocale,\n locale,\n shouldHidePlan,\n selectDefaultTierIndex,\n currentSubscriptionOverride,\n hideCompatibleAddons,\n}: PaywallProps) => {\n const { stigg } = useStiggContext();\n const discountRate = calculatePaywallDiscountRate(plans);\n const shouldShowDescriptionSection = plans.some((plan) => !!plan.description);\n const hasMonthlyPrice = hasPricePointsForPlans(plans, BillingPeriod.Monthly);\n const hasAnnuallyPrice = hasPricePointsForPlans(plans, BillingPeriod.Annually);\n const plansToShow = getPlansToDisplay(plans, selectedBillingPeriod, shouldHidePlan);\n\n const handleOnSubscribe = useCallback(\n (plan: Plan, intentionType: SubscribeIntentionType, billableFeatures: BillableFeature[]) => {\n return onPlanSelected({\n plan,\n customer,\n subscription: currentSubscription,\n intentionType,\n selectedBillingPeriod,\n billableFeatures,\n });\n },\n [customer, selectedBillingPeriod, currentSubscription, onPlanSelected],\n );\n\n const isCustomerInCustomPlan = !!currentSubscription && currentSubscription.plan.pricingType === PricingType.Custom;\n\n const withStartingAtRow = useMemo(\n () =>\n plansToShow.some((plan) => {\n const planPrices = plan.pricePoints.filter((pricePoint) => pricePoint.billingPeriod === selectedBillingPeriod);\n const paywallCalculatedPrice = plan.paywallCalculatedPricePoints?.find(\n (pricePoint) => pricePoint.billingPeriod === selectedBillingPeriod,\n );\n return planPrices.length > 1 && !!paywallCalculatedPrice?.additionalChargesMayApply;\n }),\n [selectedBillingPeriod, plansToShow],\n );\n\n const withUnitPriceRow = useMemo(\n () =>\n plansToShow.some((plan) => {\n return !!getPlanPrice(plan, selectedBillingPeriod, paywallLocale, locale, hasMonthlyPrice).unit;\n }),\n [selectedBillingPeriod, hasMonthlyPrice, locale, paywallLocale, plansToShow],\n );\n\n const withTiersRow = useMemo(() => {\n return (\n !isCustomerInCustomPlan &&\n plansToShow.some((plan) => {\n const tiers = getTiersPerUnitQuantities({\n plan,\n billingPeriod: selectedBillingPeriod,\n currentSubscription,\n currentSubscriptionOverride,\n });\n return Object.values(tiers).length > 0;\n })\n );\n }, [selectedBillingPeriod, currentSubscription, currentSubscriptionOverride, isCustomerInCustomPlan, plansToShow]);\n\n const withTrialLeftRow = plansToShow.some((plan) => {\n return plan.isCurrentCustomerPlan && plan.trialDaysLeft;\n });\n\n return (\n <PaywallContainer className=\"stigg-paywall-container\">\n <PaywallLayout className=\"stigg-paywall-layout\">\n <BillingPeriodPicker\n onBillingPeriodChanged={onBillingPeriodChanged}\n selectedBillingPeriod={selectedBillingPeriod}\n availableBillingPeriods={availableBillingPeriods}\n discountRate={discountRate}\n />\n\n <PaywallPlansContainer className=\"stigg-paywall-plans-layout\">\n {plansToShow.map((plan) => (\n <PlanOffering\n withUnitPriceRow={withUnitPriceRow}\n withTiersRow={withTiersRow}\n withTrialLeftRow={withTrialLeftRow}\n key={plan.id}\n shouldShowDescriptionSection={shouldShowDescriptionSection}\n hasMonthlyPrice={hasMonthlyPrice}\n hasAnnuallyPrice={hasAnnuallyPrice}\n plan={plan}\n withStartingAtRow={withStartingAtRow}\n currentSubscription={currentSubscription}\n currentSubscriptionOverride={currentSubscriptionOverride}\n billingPeriod={selectedBillingPeriod}\n isHighlighted={plan.id === highlightedPlanId}\n isCustomerOnTrial={isCustomerOnTrial}\n onPlanSelected={(intentionType: SubscribeIntentionType, billableFeatures: BillableFeature[]) =>\n handleOnSubscribe(plan, intentionType, billableFeatures)\n }\n paywallLocale={paywallLocale}\n locale={locale}\n customer={customer}\n isCustomerInCustomPlan={isCustomerInCustomPlan}\n selectDefaultTierIndex={selectDefaultTierIndex}\n hideCompatibleAddons={hideCompatibleAddons}\n />\n ))}\n </PaywallPlansContainer>\n <PoweredByStigg\n source=\"paywall\"\n align=\"end\"\n style={{ marginTop: 16 }}\n showWatermark={stigg.isWidgetWatermarkEnabled}\n />\n </PaywallLayout>\n </PaywallContainer>\n );\n};\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","export interface Logger {\n log: (message: string, object?: Record<string, string>) => void;\n debug: (message: string, object?: Record<string, string>) => void;\n error: (message: string, error?: Error, ...params: Record<string, string>[]) => void;\n}\n\nexport class LoggerService implements Logger {\n error(message: string, error?: Error, ...params: Record<string, string>[]): void {\n console.error(message, error || {}, params);\n }\n\n log(message: string, object?: Record<string, string>): void {\n console.log(message, object || {});\n }\n\n debug(message: string, object?: Record<string, string> | undefined): void {\n console.debug(message, object || {});\n }\n}\n\n// Export a singleton logger service, in the future we might allow to user to configure external logger\nexport default new LoggerService();\n","import { BillingPeriod, Plan, Subscription, SubscriptionStatus } from '@stigg/js-client-sdk';\nimport { countBy, uniq } from 'lodash';\n\nexport function computeBillingPeriods(\n plans: Plan[],\n activeSubscriptions?: Subscription[] | null,\n preferredBillingPeriod?: BillingPeriod,\n): { defaultBillingPeriod: BillingPeriod; availableBillingPeriods: BillingPeriod[] } {\n const billingPeriods = plans.flatMap((x) => x.pricePoints).map((x) => x.billingPeriod);\n const counts = countBy(billingPeriods);\n\n const availableBillingPeriods = uniq(billingPeriods);\n let defaultBillingPeriod: BillingPeriod | undefined;\n\n if (preferredBillingPeriod && availableBillingPeriods.includes(preferredBillingPeriod)) {\n defaultBillingPeriod = preferredBillingPeriod;\n } else if (activeSubscriptions) {\n const activeSubscription = activeSubscriptions.find((x) => x.status === SubscriptionStatus.Active);\n\n if (activeSubscription && activeSubscription.prices.length > 0) {\n defaultBillingPeriod = activeSubscription?.prices[0].billingPeriod;\n }\n }\n\n if (!defaultBillingPeriod) {\n defaultBillingPeriod =\n (counts[BillingPeriod.Monthly] || 0) > (counts[BillingPeriod.Annually] || 0)\n ? BillingPeriod.Monthly\n : BillingPeriod.Annually;\n }\n\n return { defaultBillingPeriod, availableBillingPeriods };\n}\n","import moment from 'moment';\n\nexport function calculateTrialDaysLeft(trialEndDate: Date) {\n return moment.utc(trialEndDate).diff(moment.utc(), 'days', false) + 1;\n}\n","import { FontWeight, TypographyConfiguration } from '@stigg/js-client-sdk';\n\nexport const defaultCheckoutTypography: TypographyConfiguration = {\n h1: {\n fontSize: 24,\n fontWeight: FontWeight.Bold,\n },\n h2: {\n fontSize: 16,\n fontWeight: FontWeight.Normal,\n },\n h3: {\n fontSize: 16,\n fontWeight: FontWeight.Normal,\n },\n body: {\n fontSize: 14,\n fontWeight: FontWeight.Normal,\n },\n};\n","import {\n Alignment,\n CheckoutConfiguration,\n CustomerPortalConfiguration,\n FontWeight as JSFontWeight,\n PaywallConfiguration,\n TypographyConfiguration,\n} from '@stigg/js-client-sdk';\nimport { CustomizedTheme } from '../../theme/Theme';\nimport { HorizontalAlignment, FontWeight } from '../../theme/types';\nimport { defaultCheckoutTypography } from '../checkout/configurations/typography';\n\nfunction addCssUnits(value?: number | null, unit = 'px') {\n if (!value) {\n return undefined;\n }\n return `${value}${unit}`;\n}\n\nfunction mapFontWeight(defaultValue: FontWeight, fontWeight?: JSFontWeight | null): FontWeight {\n if (!fontWeight) {\n return defaultValue;\n }\n\n switch (fontWeight) {\n case JSFontWeight.Normal:\n return 'normal';\n case JSFontWeight.Bold:\n return 'bold';\n default:\n return 'normal';\n }\n}\n\nexport function mapTypography(\n typography?: TypographyConfiguration | null,\n defaultTypography?: TypographyConfiguration | null,\n): CustomizedTheme['typography'] {\n return {\n fontFamilyUrl: typography?.fontFamily || undefined,\n h1: {\n fontSize: addCssUnits(typography?.h1?.fontSize || defaultTypography?.h1?.fontSize),\n fontWeight: mapFontWeight('bold', typography?.h1?.fontWeight || defaultTypography?.h1?.fontWeight),\n },\n h2: {\n fontSize: addCssUnits(typography?.h2?.fontSize || defaultTypography?.h2?.fontSize),\n fontWeight: mapFontWeight('normal', defaultTypography?.h2?.fontWeight),\n },\n h3: {\n fontSize: addCssUnits(typography?.h3?.fontSize || defaultTypography?.h3?.fontSize),\n fontWeight: mapFontWeight('normal', typography?.h3?.fontWeight || defaultTypography?.h3?.fontWeight),\n },\n body: {\n fontSize: addCssUnits(typography?.body?.fontSize || defaultTypography?.body?.fontSize),\n fontWeight: mapFontWeight('normal', typography?.body?.fontWeight || defaultTypography?.body?.fontWeight),\n },\n };\n}\n\nfunction mapAlignment(alignment?: Alignment | null): HorizontalAlignment | undefined {\n if (!alignment) {\n return undefined;\n }\n\n switch (alignment) {\n case Alignment.Left:\n return 'left';\n case Alignment.Center:\n return 'center';\n case Alignment.Right:\n return 'right';\n default: {\n return undefined;\n }\n }\n}\n\nexport function mapCustomerPortalConfiguration(configuration: CustomerPortalConfiguration): CustomizedTheme {\n const { palette, customCss, typography } = configuration;\n return {\n palette: {\n primary: palette?.primary || undefined,\n backgroundPaper: palette?.paywallBackgroundColor || undefined,\n outlinedBorder: palette?.borderColor || undefined,\n backgroundHighlight: palette?.currentPlanBackground || undefined,\n text: {\n primary: palette?.textColor || undefined,\n },\n },\n typography: mapTypography(typography),\n customCss: customCss || undefined,\n };\n}\n\nexport function mapPaywallConfiguration(paywallConfiguration: PaywallConfiguration): CustomizedTheme {\n const { palette, layout, customCss, typography } = paywallConfiguration;\n return {\n customCss: customCss || undefined,\n palette: {\n primary: palette?.primary || undefined,\n backgroundPaper: palette?.backgroundColor || undefined,\n outlinedBorder: palette?.borderColor || undefined,\n backgroundHighlight: palette?.currentPlanBackground || undefined,\n text: {\n primary: palette?.textColor || undefined,\n },\n },\n typography: mapTypography(typography),\n layout: {\n ctaAlignment: mapAlignment(layout?.alignment),\n headerAlignment: mapAlignment(layout?.alignment),\n descriptionAlignment: mapAlignment(layout?.alignment),\n planMaxWidth: addCssUnits(layout?.planWidth),\n planMinWidth: addCssUnits(layout?.planWidth),\n planMargin: addCssUnits(layout?.planMargin),\n planPadding: addCssUnits(layout?.planPadding),\n },\n };\n}\n\nexport function mapCheckoutConfiguration(configuration: CheckoutConfiguration): CustomizedTheme {\n const { palette, typography, customCss } = configuration;\n return {\n palette: {\n primary: palette?.primary || undefined,\n backgroundPaper: palette?.backgroundColor || undefined,\n outlinedBorder: palette?.borderColor || undefined,\n text: {\n primary: palette?.textColor || undefined,\n },\n backgroundHighlight: palette?.summaryBackgroundColor || undefined,\n },\n typography: mapTypography(typography, defaultCheckoutTypography),\n customCss: customCss || undefined,\n };\n}\n","import {\n BillingPeriod,\n SubscriptionStatus,\n Paywall,\n Plan,\n Subscription,\n SubscriptionScheduleType,\n} from '@stigg/js-client-sdk';\nimport isNil from 'lodash/isNil';\nimport sortBy from 'lodash/sortBy';\nimport { CurrentSubscriptionOverride, CurrentSubscriptionOverrideFn, PaywallPlan } from '../types';\nimport { calculateTrialDaysLeft } from './calculateTrialDaysLeft';\nimport { BillingPeriodChangeVariables, DeepPartial, DowngradeChangeVariables } from '../../../types';\nimport { StiggTheme } from '../../../theme/types';\nimport { mapPaywallConfiguration } from '../../common/mapExternalTheme';\n\nfunction getCustomerSubscriptionDetails(activeSubscriptions?: Subscription[] | null) {\n let isCustomerOnTrial = true;\n let currentSubscription: Subscription | null =\n activeSubscriptions?.find((s) => s.status === SubscriptionStatus.InTrial) || null;\n let currentPlan = currentSubscription?.plan;\n const trialDaysLeft = currentSubscription?.trialEndDate\n ? calculateTrialDaysLeft(currentSubscription.trialEndDate)\n : undefined;\n if (!currentPlan) {\n isCustomerOnTrial = false;\n currentSubscription = activeSubscriptions?.find((s) => s.status === SubscriptionStatus.Active) || null;\n currentPlan = currentSubscription?.plan;\n }\n\n return {\n currentSubscription,\n currentPlan,\n isCustomerOnTrial,\n trialDaysLeft,\n };\n}\n\ntype PaywallData = {\n currentPlan?: Plan;\n currentSubscription: Subscription | null;\n currentSubscriptionOverride: CurrentSubscriptionOverride | null | undefined;\n isCustomerOnTrial: boolean;\n plans: PaywallPlan[];\n paywallConfiguration?: DeepPartial<StiggTheme>;\n};\n\nexport function mapPaywallData(\n paywall: Paywall | null,\n showOnlyEligiblePlans?: boolean,\n currentSubscriptionOverrideFn?: CurrentSubscriptionOverrideFn,\n): PaywallData {\n const { plans, currency, configuration, customer, activeSubscriptions, paywallCalculatedPricePoints } = paywall || {};\n const { currentSubscription, currentPlan, isCustomerOnTrial, trialDaysLeft } =\n getCustomerSubscriptionDetails(activeSubscriptions);\n\n const currentSubscriptionOverride = currentSubscriptionOverrideFn?.({ currentSubscription });\n\n const scheduledUpdates = currentSubscription?.scheduledUpdates || [];\n const currentCustomerPlanBillingPeriod = currentSubscription?.price?.billingPeriod;\n const downgradeSchedule = scheduledUpdates.find(\n ({ subscriptionScheduleType }) => subscriptionScheduleType === SubscriptionScheduleType.Downgrade,\n );\n const billingChangedSchedule = scheduledUpdates.find(\n ({ subscriptionScheduleType }) => subscriptionScheduleType === SubscriptionScheduleType.BillingPeriod,\n );\n\n let paywallPlans: PaywallPlan[] = sortBy(plans, (plan) => plan.order).map((plan) => {\n const eligibleForProductTrial = customer?.eligibleForTrial?.find(\n (productTrial) => productTrial.productId === plan.product.id,\n );\n const isCurrentCustomerPlan = currentSubscriptionOverride?.planId\n ? currentSubscriptionOverride?.planId === plan.id\n : plan.id === currentPlan?.id;\n\n const isNextPlan = (currentBillingPeriod: BillingPeriod) => {\n const downgradeVariables = downgradeSchedule?.scheduleVariables as DowngradeChangeVariables;\n const billingChangedVariables = billingChangedSchedule?.scheduleVariables as BillingPeriodChangeVariables;\n const isPlanHasBillingPeriodPrice = plan.pricePoints.some(\n (price) => price.billingPeriod === currentBillingPeriod,\n );\n\n return downgradeSchedule\n ? downgradeSchedule.targetPackage?.refId === plan.id &&\n (!isPlanHasBillingPeriodPrice || downgradeVariables.billingPeriod === currentBillingPeriod)\n : billingChangedSchedule && isCurrentCustomerPlan\n ? billingChangedVariables.billingPeriod === currentBillingPeriod\n : false;\n };\n\n return {\n ...plan,\n paywallCalculatedPricePoints: paywallCalculatedPricePoints?.filter((pricePoint) => pricePoint.planId === plan.id),\n isTriable: !isNil(plan.defaultTrialConfig) && (!eligibleForProductTrial || eligibleForProductTrial.eligible),\n isCurrentCustomerPlan,\n currentCustomerPlanBillingPeriod,\n isUpcomingPlan: false,\n trialDaysLeft,\n isNextPlan,\n paywallCurrency: currency,\n scheduledUpdate: downgradeSchedule || billingChangedSchedule,\n };\n });\n if (plans && currentPlan) {\n const currentPlanOrder = currentPlan && plans?.find((x) => x.id === currentPlan?.id)?.order;\n if (!isNil(currentPlanOrder)) {\n paywallPlans = paywallPlans.map<PaywallPlan>((plan) => ({\n ...plan,\n isLowerThanCurrentPlan: currentPlanOrder > plan.order,\n }));\n if (showOnlyEligiblePlans) {\n paywallPlans = paywallPlans.filter((plan) => plan.order >= currentPlanOrder);\n }\n }\n }\n const paywallConfiguration = configuration ? mapPaywallConfiguration(configuration) : undefined;\n\n return {\n currentPlan,\n currentSubscription,\n currentSubscriptionOverride,\n isCustomerOnTrial,\n plans: paywallPlans,\n paywallConfiguration,\n };\n}\n","import React, { useEffect, useState, PropsWithChildren, useRef } from 'react';\nimport * as StiggJs from '@stigg/js-client-sdk';\nimport Stigg, { ClientConfiguration, EntitlementsFallback } from '@stigg/js-client-sdk';\nimport { SkeletonTheme } from 'react-loading-skeleton';\nimport { CustomizedTheme } from '../theme/Theme';\nimport logger from '../services/logger';\nimport { name as CLIENT_NAME, version as CLIENT_VERSION } from '../../package.json';\n\nexport interface StiggContextValue {\n stigg: StiggJs.StiggClient;\n isInitialized: boolean;\n locale: string;\n updatedAt?: Date;\n customerPortalUpdatedAt?: Date;\n refreshData: () => Promise<void>;\n theme?: CustomizedTheme;\n}\n\nexport const StiggContext = React.createContext<StiggContextValue | null>(null);\nStiggContext.displayName = 'StiggContext';\n\nexport type StiggProviderProps = {\n apiKey: string;\n baseUri?: string;\n baseEdgeUri?: string;\n enableEdge?: boolean;\n entitlementsFallback?: EntitlementsFallback;\n customerId?: string;\n customerToken?: string;\n resourceId?: string;\n theme?: CustomizedTheme;\n locale?: string;\n offline?: boolean;\n cacheTtlMs?: number;\n /** @deprecated not longer in use */\n useEntitlementPolling?: boolean;\n /** @deprecated not longer in use */\n entitlementPollingInterval?: number;\n stiggClient?: StiggJs.StiggClient;\n clientName?: string;\n clientVersion?: string;\n};\n\nconst DEFAULT_LOCALE = 'en-US';\n\nexport const StiggProvider: React.FC<PropsWithChildren<StiggProviderProps>> = ({\n apiKey,\n baseUri,\n baseEdgeUri,\n enableEdge,\n customerId,\n customerToken,\n resourceId,\n theme,\n locale,\n cacheTtlMs,\n useEntitlementPolling,\n entitlementPollingInterval,\n entitlementsFallback,\n stiggClient,\n children,\n offline,\n clientName = CLIENT_NAME,\n clientVersion = CLIENT_VERSION,\n}) => {\n const currentApiKey = useRef(apiKey);\n const initializeParams: ClientConfiguration = {\n apiKey,\n customerId,\n customerToken,\n resourceId,\n baseUri,\n baseEdgeUri,\n enableEdge,\n entitlementsFallback,\n cacheTtlMs,\n useEntitlementPolling,\n entitlementPollingInterval,\n clientName,\n clientVersion,\n offline,\n };\n const [ctx, setContext] = useState<StiggContextValue>(() => ({\n stigg:\n stiggClient ??\n Stigg.initialize({\n ...initializeParams,\n lazyLoad: true,\n }),\n locale: locale || DEFAULT_LOCALE,\n isInitialized: false,\n theme,\n refreshData: async () => {\n setContext((ctx) => ({ ...ctx, customerPortalUpdatedAt: new Date() }));\n await ctx.stigg.refresh();\n },\n }));\n\n useEffect(() => {\n let isMounted = true;\n\n const safeSetContext = (setContextFunc: React.SetStateAction<StiggContextValue>) => {\n if (isMounted) {\n setContext(setContextFunc);\n }\n };\n\n const onEntitlementsUpdated = () => safeSetContext((ctx) => ({ ...ctx, updatedAt: new Date() }));\n\n const setStiggInstance = (stigg: StiggJs.StiggClient) =>\n safeSetContext((ctx) => {\n if (ctx.stigg) {\n ctx.stigg.removeListener('entitlementsUpdated', onEntitlementsUpdated);\n }\n stigg.addListener('entitlementsUpdated', onEntitlementsUpdated);\n\n return {\n ...ctx,\n stigg,\n isInitialized: true,\n updatedAt: new Date(),\n };\n });\n\n const loadStiggClient = async () => {\n let stiggClient = ctx.stigg;\n if (apiKey !== currentApiKey.current) {\n logger.log('Updating stigg client', { apiKey });\n currentApiKey.current = apiKey;\n stiggClient = Stigg.initialize({\n ...initializeParams,\n });\n safeSetContext((ctx) => ({ ...ctx, isInitialized: false, updatedAt: new Date() }));\n }\n await stiggClient.waitForInitialization();\n setStiggInstance(stiggClient);\n };\n\n void loadStiggClient();\n\n return () => {\n isMounted = false;\n ctx.stigg.removeListener('entitlementsUpdated', onEntitlementsUpdated);\n ctx.stigg.clearCustomer();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [apiKey]);\n\n useEffect(() => {\n const stiggClient = ctx.stigg;\n if (customerId) {\n void stiggClient.setCustomerId(customerId, customerToken, resourceId);\n } else {\n stiggClient.clearCustomer();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [customerId, customerToken, resourceId]);\n\n useEffect(() => {\n setContext((ctx) => ({ ...ctx, theme }));\n }, [theme]);\n\n return (\n <StiggContext.Provider value={ctx}>\n <SkeletonTheme baseColor=\"#F5F6F9\" highlightColor=\"#e5e6ea\">\n {children}\n </SkeletonTheme>\n </StiggContext.Provider>\n );\n};\n","import { useContext } from 'react';\nimport { StiggContext, StiggContextValue } from '../components/StiggProvider';\n\nexport function useStiggContext(options?: { optional?: false }): StiggContextValue;\nexport function useStiggContext(options: { optional: true }): StiggContextValue | null;\nexport function useStiggContext(options?: { optional?: boolean }): StiggContextValue | null {\n const { optional } = options || {};\n const ctx = useContext(StiggContext);\n if (!ctx && !optional) {\n throw new Error('Could not find Stigg context; You need to wrap your app in an <StiggProvider> component.');\n }\n return ctx;\n}\n","import { BillingPeriod, Paywall } from '@stigg/js-client-sdk';\nimport { useEffect, useState } from 'react';\nimport logger from '../../../services/logger';\nimport { CurrentSubscriptionOverrideFn, PaywallData } from '../types';\nimport { computeBillingPeriods } from '../utils/computeDefaultBillingPeriod';\nimport { mapPaywallData } from '../utils/mapPaywallData';\nimport { useStiggContext } from '../../../hooks/useStiggContext';\n\ntype UseLoadPaywallDataProps = {\n productId?: string;\n resourceId?: string;\n showOnlyEligiblePlans?: boolean;\n billingCountryCode?: string;\n preferredBillingPeriod?: BillingPeriod;\n currentSubscriptionOverrideFn?: CurrentSubscriptionOverrideFn;\n};\n\nexport function useLoadPaywallData({\n productId,\n resourceId,\n showOnlyEligiblePlans,\n billingCountryCode,\n preferredBillingPeriod,\n currentSubscriptionOverrideFn,\n}: UseLoadPaywallDataProps): PaywallData {\n const { stigg, locale } = useStiggContext();\n const [selectedBillingPeriod, setSelectedBillingPeriod] = useState(BillingPeriod.Annually);\n const [availableBillingPeriods, setAvailableBillingPeriods] = useState<BillingPeriod[]>([]);\n const [paywall, setPaywall] = useState<Paywall | null>(null);\n const [isLoading, setIsLoading] = useState<boolean>(true);\n\n useEffect(() => {\n const loadPaywall = async () => {\n try {\n setIsLoading(true);\n\n await stigg.waitForInitialization();\n const paywallResult = await stigg.getPaywall({\n productId,\n resourceId,\n billingCountryCode,\n });\n const { availableBillingPeriods, defaultBillingPeriod } = computeBillingPeriods(\n paywallResult.plans,\n paywallResult.activeSubscriptions,\n preferredBillingPeriod,\n );\n\n setPaywall(paywallResult);\n setAvailableBillingPeriods(availableBillingPeriods);\n setSelectedBillingPeriod(defaultBillingPeriod);\n } catch (err) {\n logger.error(`Failed to load paywall ${(err as any)?.message}`, err as any);\n } finally {\n setIsLoading(false);\n }\n };\n\n void loadPaywall();\n }, [stigg, productId, stigg.isCustomerLoaded, billingCountryCode, resourceId, preferredBillingPeriod]);\n\n const paywallData = mapPaywallData(paywall, showOnlyEligiblePlans, currentSubscriptionOverrideFn);\n\n return {\n customer: paywall?.customer || null,\n isLoading,\n selectedBillingPeriod,\n setSelectedBillingPeriod,\n availableBillingPeriods,\n locale,\n configuration: paywallData.paywallConfiguration,\n ...paywallData,\n };\n}\n","import {\n BillingPeriod,\n PaywallCalculatedPricePoint,\n PaywallCurrency,\n Plan,\n Price,\n PriceTierFragment,\n} from '@stigg/js-client-sdk';\nimport merge from 'lodash/merge';\nimport { DeepPartial } from '../../types';\nimport { PlanPriceText } from '../utils/getPlanPrice';\nimport { PaywallPlan } from './types';\n\nexport { PlanPriceText } from '../utils/getPlanPrice';\n\nexport type CurrentPlanParams = {\n plan: Plan;\n selectedBillingPeriod: BillingPeriod;\n};\n\nexport type PaywallLocalization = {\n highlightChip: string;\n entitlementsTitle?: (plan: PaywallPlan) => string;\n addonsTitle?: string;\n planCTAButton: {\n upgrade: string | ((plan: PaywallPlan) => string);\n downgrade: string | ((plan: PaywallPlan) => string);\n startTrial: (plan: PaywallPlan) => string;\n custom: ((data: CurrentPlanParams) => string) | string;\n currentPlan: string;\n startNew: string;\n switchToBillingPeriod: (billingPeriod: BillingPeriod) => string;\n cancelScheduledUpdate: string;\n };\n price: {\n startingAtCaption: string;\n billingPeriod?: (billingPeriod: BillingPeriod) => string;\n pricePeriod: (billingPeriod: BillingPeriod) => string;\n custom: ((data: CurrentPlanParams) => string) | string;\n priceNotSet: string;\n free: PlanPriceText | ((currency?: PaywallCurrency) => PlanPriceText);\n paid?: (priceData: {\n planPrices: Price[];\n paywallCalculatedPrice?: PaywallCalculatedPricePoint;\n plan: Plan;\n selectedBillingPeriod: BillingPeriod;\n selectedTier?: PriceTierFragment;\n }) => PlanPriceText;\n };\n};\n\nexport function getResolvedPaywallLocalize(localizeOverride?: DeepPartial<PaywallLocalization>) {\n const paywallDefaultLocalization: PaywallLocalization = {\n highlightChip: 'Recommended',\n addonsTitle: 'Available add-ons:',\n planCTAButton: {\n upgrade: 'Upgrade',\n downgrade: 'Downgrade',\n startTrial: (plan: PaywallPlan) => `Start ${plan.defaultTrialConfig?.duration} day trial`,\n custom: 'Contact us',\n currentPlan: 'Current plan',\n startNew: 'Get started',\n switchToBillingPeriod: (billingPeriod) => {\n return billingPeriod === BillingPeriod.Monthly ? 'Switch to monthly billing' : 'Switch to annual billing';\n },\n cancelScheduledUpdate: 'Cancel',\n },\n price: {\n startingAtCaption: 'Starts at',\n pricePeriod: (billingPeriod: BillingPeriod) => (billingPeriod === BillingPeriod.Monthly ? '/ month' : '/ year'),\n free: (currency) => ({\n price: `${currency?.symbol}0`,\n }),\n custom: 'Custom',\n priceNotSet: 'Price not set',\n },\n };\n return merge(paywallDefaultLocalization, localizeOverride);\n}\n","<svg width=\"15\" height=\"11\" viewBox=\"0 0 15 11\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M5.59 7.9899L2.125 4.5249C1.73524 4.13514 1.10365 4.13402 0.712509 4.52241V4.52241C0.319409 4.91274 0.318286 5.54819 0.710005 5.9399L5.59 10.8199L14.2948 2.11513C14.6843 1.72565 14.6843 1.09417 14.2948 0.704691V0.704691C13.9055 0.315381 13.2743 0.315184 12.8848 0.70425L5.59 7.9899Z\" fill=\"#B2BBD3\"/>\n</svg>\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport Skeleton from 'react-loading-skeleton';\nimport CheckUrl from '../../assets/check-stigg.svg';\n\nconst SkeletonContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\nconst EntitlementCheckIcon = styled(CheckUrl)`\n margin-right: 16px;\n`;\n\nconst PlanOfferingSkeleton = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 20px;\n border-radius: 10px;\n padding: ${({ theme }) => theme.stigg.layout.planPadding};\n background-color: ${({ theme }) => theme.stigg.palette.backgroundPaper};\n min-width: ${({ theme }) => theme.stigg.layout.planMinWidth};\n max-width: ${({ theme }) => theme.stigg.layout.planMaxWidth};\n min-height: 450px;\n border: ${({ theme }) => `1px solid ${theme.stigg.palette.outlinedBorder}`};\n`;\n\nconst PlansContainer = styled.div`\n display: flex;\n gap: ${({ theme }) => theme.stigg.layout.planMargin};\n flex-wrap: wrap;\n justify-content: center;\n`;\n\nconst EntitlementContainer = styled.div`\n display: flex;\n align-items: center;\n margin-bottom: 12px;\n`;\n\nconst FooterSkeletonLoader = styled.div`\n margin-top: auto;\n`;\n\nconst BillingPeriodLoader = styled.div`\n width: 150px;\n margin-bottom: ${({ theme }) => theme.stigg.layout.switchBottomSpacing};\n padding: 12px 12px;\n border-radius: 10px;\n background-color: white;\n border: ${({ theme }) => `1px solid ${theme.stigg.palette.outlinedBorder}`};\n`;\n\nfunction PlanOfferingLoader() {\n return (\n <PlanOfferingSkeleton>\n <Skeleton width={120} borderRadius={4} />\n <Skeleton circle width={40} height={40} />\n <Skeleton style={{ marginBottom: 33 }} width={120} borderRadius={4} />\n\n <EntitlementContainer>\n <EntitlementCheckIcon />\n <Skeleton width={120} borderRadius={4} />\n </EntitlementContainer>\n <EntitlementContainer>\n <EntitlementCheckIcon />\n <Skeleton width={120} borderRadius={4} />\n </EntitlementContainer>\n <EntitlementContainer>\n <EntitlementCheckIcon />\n <Skeleton width={120} borderRadius={4} />\n </EntitlementContainer>\n\n <FooterSkeletonLoader>\n <Skeleton height={50} borderRadius={4} />\n </FooterSkeletonLoader>\n </PlanOfferingSkeleton>\n );\n}\n\nexport function PaywallLoader() {\n return (\n <SkeletonContainer className=\"stigg-skeleton-loader-container\">\n <BillingPeriodLoader className=\"stigg-skeleton-loader-billing-period\">\n <Skeleton borderRadius={4} />\n </BillingPeriodLoader>\n\n <PlansContainer className=\"stigg-skeleton-loader-plans-container\">\n <PlanOfferingLoader />\n <PlanOfferingLoader />\n <PlanOfferingLoader />\n </PlansContainer>\n </SkeletonContainer>\n );\n}\n","import React from 'react';\nimport { Global, css } from '@emotion/react';\n\nexport const Fonts = ({ externalFontUrl }: { externalFontUrl?: string }) => {\n return (\n <Global\n styles={css`\n ${externalFontUrl &&\n `\n @font-face {\n font-family: 'custom-font';\n font-style: normal;\n font-weight: normal;\n src: local('custom-font'), url(${externalFontUrl}) format('woff');\n }\n `}\n\n /* latin-ext */\n @font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/dmsans/v11/rP2Hp2ywxg089UriCZ2IHTWEBlwu8Q.woff2) format('woff2');\n unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F,\n U+A720-A7FF;\n }\n /* latin */\n @font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/dmsans/v11/rP2Hp2ywxg089UriCZOIHTWEBlw.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074,\n U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n }\n /* latin-ext */\n @font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/dmsans/v11/rP2Cp2ywxg089UriAWCrCBamC3YU-CnE6Q.woff2) format('woff2');\n unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F,\n U+A720-A7FF;\n }\n /* latin */\n @font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/dmsans/v11/rP2Cp2ywxg089UriAWCrCBimC3YU-Ck.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074,\n U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n }\n /* latin-ext */\n @font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/dmsans/v11/rP2Cp2ywxg089UriASitCBamC3YU-CnE6Q.woff2) format('woff2');\n unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F,\n U+A720-A7FF;\n }\n /* latin */\n @font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/dmsans/v11/rP2Cp2ywxg089UriASitCBimC3YU-Ck.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074,\n U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n }\n `}\n />\n );\n};\n","import { merge } from 'lodash';\nimport React, { PropsWithChildren } from 'react';\nimport { ThemeProvider as StyledThemeProvider } from 'styled-components';\nimport { TypographyProps } from 'styled-typography';\nimport { css, ThemeProvider } from '@emotion/react';\nimport styled from '@emotion/styled/macro';\nimport { createTheme, ThemeProvider as MuiThemeProvider, THEME_ID } from '@mui/material/styles';\n\nimport { DeepPartial } from '../types';\nimport { Fonts } from './Fonts';\nimport { getResolvedTheme } from './getResolvedTheme';\nimport { StiggTheme } from './types';\nimport { useStiggContext } from '../hooks/useStiggContext';\n\nexport type CustomizedTheme = DeepPartial<StiggTheme>;\n\nconst CustomCssGlobal = styled.div<{ customCss?: string }>`\n ${({ customCss }) =>\n customCss &&\n css`\n ${customCss}\n `}\n`;\n\ntype SdkThemeProviderProps = {\n componentTheme?: CustomizedTheme;\n};\n\n/*\n This merge the theme from 3 places:\n 1. External theme that we got from the user in StiggProvider\n 2. Remote theme from api\n 3. Default theme\n*/\nexport function useStiggTheme(remoteThemeOverride?: CustomizedTheme): StiggTheme {\n const { theme: externalTheme } = useStiggContext();\n const mergedTheme = merge(remoteThemeOverride, externalTheme);\n const resolvedTheme = getResolvedTheme(mergedTheme);\n\n return resolvedTheme;\n}\n\nfunction createTypographyTheme(theme: StiggTheme): Partial<TypographyProps> {\n const { typography } = theme;\n const htmlFontSize = 16;\n const coef = Number(typography.body.fontSize.replace('px', '')) / 14;\n\n return {\n // Hack to fix theming issues\n // @ts-ignore\n pxToRem: (size) => `${(size / htmlFontSize) * coef}rem`,\n bodyFontFamily: typography.fontFamily,\n headingFontFamily: typography.fontFamily,\n fontSizes: [\n typography.h1.fontSize,\n typography.h2.fontSize,\n typography.h3.fontSize,\n typography.body.fontSize,\n '12px',\n '10px',\n ],\n };\n}\n\nconst createMuiPalette = (theme: StiggTheme) => {\n return {\n primary: {\n main: theme.palette.primary,\n },\n };\n};\n\nexport const SdkThemeProvider: React.FC<PropsWithChildren<SdkThemeProviderProps>> = ({ children, componentTheme }) => {\n const theme = useStiggTheme(componentTheme);\n const muiPalette = createMuiPalette(theme);\n const materialTheme = createTheme({ palette: muiPalette, stigg: theme });\n\n return (\n // We are using styled-components theme here only because we are using styled-typography\n // which depends on styled-components for the typography theming\n <MuiThemeProvider theme={{ [THEME_ID]: materialTheme }}>\n <ThemeProvider theme={{ stigg: theme }}>\n <CustomCssGlobal customCss={theme.customCss}>\n <Fonts externalFontUrl={theme.typography.fontFamilyUrl} />\n <StyledThemeProvider theme={{ typography: createTypographyTheme(theme) }}>{children}</StyledThemeProvider>\n </CustomCssGlobal>\n </ThemeProvider>\n </MuiThemeProvider>\n );\n};\n","import { CustomerPortal } from '@stigg/js-client-sdk';\nimport { useEffect, useState } from 'react';\nimport logger from '../../../services/logger';\nimport { useStiggContext } from '../../../hooks/useStiggContext';\n\ntype UseCustomerPortalProps = {\n resourceId?: string;\n productId?: string;\n};\n\nexport function useCustomerPortal({ resourceId, productId }: UseCustomerPortalProps) {\n const { stigg, customerPortalUpdatedAt } = useStiggContext();\n const [isLoading, setIsLoading] = useState(false);\n const [customerPortal, setCustomerPortal] = useState<CustomerPortal | null>();\n\n useEffect(() => {\n const loadCustomerPortal = async () => {\n if (stigg.isCustomerLoaded) {\n try {\n setIsLoading(true);\n const customerPortalData = await stigg.getCustomerPortal({ resourceId, productId });\n setCustomerPortal(customerPortalData);\n } catch (err) {\n logger.error(`Failed to load customer portal ${(err as any)?.message}`, err as any);\n } finally {\n setIsLoading(false);\n }\n }\n };\n\n void loadCustomerPortal();\n }, [stigg, stigg.isCustomerLoaded, customerPortalUpdatedAt, resourceId, productId]);\n\n return {\n customerPortal,\n isLoading,\n };\n}\n","import merge from 'lodash/merge';\nimport { DeepPartial } from '../../types';\n\nexport type CustomerPortalLocalization = {\n manageSubscription: string;\n usageTabTitle: string;\n addonsTabTitle: string;\n promotionsTabTitle: string;\n promotionsSubtitle: string;\n contactSupportTitle: string;\n contactSupportLink: string;\n editBilling: string;\n invoicesTitle: string;\n viewInvoiceHistory: string;\n editPaymentDetails: string;\n paywallSectionTitle: string;\n cancelScheduledUpdatesButtonTitle: string;\n};\n\nexport function getResolvedCustomerPortalLocalize(\n localizeOverride?: DeepPartial<CustomerPortalLocalization>,\n): CustomerPortalLocalization {\n const customerPortalDefaultLocalization: CustomerPortalLocalization = {\n manageSubscription: 'Manage',\n usageTabTitle: 'Usage',\n addonsTabTitle: 'Add-ons',\n promotionsTabTitle: 'Promotions',\n promotionsSubtitle: 'You were granted access to additional functionality at no additional cost.',\n contactSupportTitle: 'Have questions about your subscription?',\n contactSupportLink: 'Contact support',\n editBilling: 'Edit billing details',\n invoicesTitle: 'Invoices',\n viewInvoiceHistory: 'View invoice history',\n editPaymentDetails: 'Edit',\n paywallSectionTitle: 'Plans',\n cancelScheduledUpdatesButtonTitle: 'Cancel',\n };\n return merge(customerPortalDefaultLocalization, localizeOverride);\n}\n","import { CustomerPortalConfiguration } from '@stigg/js-client-sdk';\nimport { StiggTheme } from '../../theme/types';\nimport { DeepPartial } from '../../types';\n\nexport type CustomerPortalTheme = {\n sectionTitleColor: string;\n planNameColor: string;\n backgroundColor: string;\n borderColor: string;\n listItemBackgroundColor: string;\n tabMaxHeight: string;\n iconsColor?: string;\n iconsBackgroundColor?: string;\n};\n\nexport function getResolvedCustomerPortalTheme(\n globalTheme: StiggTheme,\n themeOverride?: DeepPartial<CustomerPortalTheme>,\n remoteConfiguration?: CustomerPortalConfiguration | null,\n) {\n const customerPortalDefaultTheme: CustomerPortalTheme = {\n sectionTitleColor: themeOverride?.sectionTitleColor || globalTheme.palette.text.secondary,\n planNameColor: themeOverride?.planNameColor || globalTheme.palette.text.primary,\n backgroundColor: themeOverride?.backgroundColor || remoteConfiguration?.palette?.backgroundColor || 'white',\n borderColor: themeOverride?.borderColor || remoteConfiguration?.palette?.borderColor || 'rgba(0, 30, 108, 0.15)',\n listItemBackgroundColor: themeOverride?.backgroundColor || remoteConfiguration?.palette?.backgroundColor || 'white',\n tabMaxHeight: themeOverride?.tabMaxHeight || '380px',\n\n // add icons background color and apply to scheduled updates and customer support icons\n iconsColor: themeOverride?.iconsColor || remoteConfiguration?.palette?.iconsColor || undefined,\n iconsBackgroundColor: themeOverride?.iconsBackgroundColor,\n };\n\n return customerPortalDefaultTheme;\n}\n","import React, { useContext } from 'react';\nimport { CustomerPortal } from '@stigg/js-client-sdk';\nimport { useCustomerPortal } from './hooks/useCustomerPortal';\nimport { DeepPartial } from '../../types';\nimport { CustomerPortalLocalization, getResolvedCustomerPortalLocalize } from './customerPortalTextOverrides';\nimport { CustomerPortalTheme, getResolvedCustomerPortalTheme } from './customerPortalTheme';\nimport { SdkThemeProvider, useStiggTheme } from '../../theme/Theme';\nimport { useStiggContext } from '../..';\nimport { mapCustomerPortalConfiguration } from '../common/mapExternalTheme';\n\nexport interface CustomerPortalContextValue {\n customerPortal?: CustomerPortal | null;\n textOverrides: CustomerPortalLocalization;\n theme: CustomerPortalTheme;\n isLoading: boolean;\n resourceId?: string;\n}\n\nexport const CustomerPortalContext = React.createContext<CustomerPortalContextValue | null>(null);\nCustomerPortalContext.displayName = 'CustomerPortalContext';\n\nexport const useCustomerPortalContext = (): CustomerPortalContextValue => {\n const ctx = useContext(CustomerPortalContext);\n if (!ctx) {\n throw new Error(\n 'Could not find Customer portal context; You need to wrap your customer portal components in an <CustomerPortalProvider> component.',\n );\n }\n return ctx;\n};\n\nexport function useCheckContextExists<T>(contextType: React.Context<T>) {\n const ctx = useContext(contextType);\n return !!ctx;\n}\n\nexport function CustomerPortalProvider({\n children,\n textOverrides,\n theme,\n resourceId,\n productId,\n}: {\n children: React.ReactNode;\n textOverrides?: DeepPartial<CustomerPortalLocalization>;\n theme?: DeepPartial<CustomerPortalTheme>;\n resourceId?: string;\n productId?: string;\n}) {\n const { customerPortalUpdatedAt } = useStiggContext();\n const { customerPortal, isLoading } = useCustomerPortal({ resourceId, productId });\n const configuration = customerPortal?.configuration\n ? mapCustomerPortalConfiguration(customerPortal.configuration)\n : undefined;\n const globalTheme = useStiggTheme(configuration);\n const customerPortalTheme = getResolvedCustomerPortalTheme(globalTheme, theme, customerPortal?.configuration);\n const resolvedTextOverrides = getResolvedCustomerPortalLocalize(textOverrides);\n\n return (\n <SdkThemeProvider componentTheme={configuration}>\n <CustomerPortalContext.Provider\n key={customerPortalUpdatedAt?.toString()}\n value={{\n customerPortal,\n isLoading,\n textOverrides: resolvedTextOverrides,\n theme: customerPortalTheme,\n resourceId,\n }}>\n {children}\n </CustomerPortalContext.Provider>\n </SdkThemeProvider>\n );\n}\n","import React from 'react';\nimport { BillingPeriod } from '@stigg/js-client-sdk';\nimport { Paywall } from './Paywall';\nimport { useLoadPaywallData } from './hooks/useLoadPaywallData';\nimport {\n ShouldHidePlanFn,\n OnPlanSelectedCallbackFn,\n SelectDefaultTierIndexFn,\n CurrentSubscriptionOverrideFn,\n} from './types';\nimport { getResolvedPaywallLocalize, PaywallLocalization } from './paywallTextOverrides';\nimport { DeepPartial } from '../../types';\nimport { PaywallLoader } from './PaywallLoader';\nimport { SdkThemeProvider } from '../../theme/Theme';\nimport {\n CustomerPortalContext,\n useCheckContextExists,\n useCustomerPortalContext,\n} from '../customerPortal/CustomerPortalProvider';\n\nexport type PaywallContainerProps = {\n productId?: string;\n resourceId?: string;\n highlightedPlanId?: string;\n showOnlyEligiblePlans?: boolean;\n onPlanSelected: OnPlanSelectedCallbackFn;\n preferredBillingPeriod?: BillingPeriod;\n onBillingPeriodChange?: (billingPeriod: BillingPeriod) => void;\n textOverrides?: DeepPartial<PaywallLocalization>;\n billingCountryCode?: string;\n shouldHidePlan?: ShouldHidePlanFn;\n selectDefaultTierIndex?: SelectDefaultTierIndexFn;\n hideCompatibleAddons?: boolean;\n // This is used to override the current subscription in case a many to one plan mapping is needed\n // Many plans mapped to one (fictive) plan\n currentSubscriptionOverride?: CurrentSubscriptionOverrideFn;\n};\n\nexport const PaywallContainer = ({\n productId,\n resourceId,\n highlightedPlanId,\n showOnlyEligiblePlans,\n textOverrides,\n onPlanSelected,\n preferredBillingPeriod,\n onBillingPeriodChange,\n billingCountryCode,\n shouldHidePlan,\n selectDefaultTierIndex,\n currentSubscriptionOverride: currentSubscriptionOverrideFn,\n hideCompatibleAddons,\n}: PaywallContainerProps) => {\n const hasCustomerPortalContext = useCheckContextExists(CustomerPortalContext);\n let isCustomerPortalLoading = false;\n if (hasCustomerPortalContext) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const { isLoading, resourceId: customerPortalResourceId } = useCustomerPortalContext();\n isCustomerPortalLoading = isLoading;\n resourceId = customerPortalResourceId;\n }\n const {\n plans,\n customer,\n currentSubscription,\n currentSubscriptionOverride,\n isCustomerOnTrial,\n isLoading,\n selectedBillingPeriod,\n setSelectedBillingPeriod,\n availableBillingPeriods,\n locale,\n configuration,\n } = useLoadPaywallData({\n productId,\n resourceId,\n showOnlyEligiblePlans,\n billingCountryCode,\n preferredBillingPeriod,\n currentSubscriptionOverrideFn,\n });\n const paywallLocale = getResolvedPaywallLocalize(textOverrides);\n const handlePeriodChange = (billingPeriod: BillingPeriod) => {\n setSelectedBillingPeriod(billingPeriod);\n if (onBillingPeriodChange) {\n onBillingPeriodChange(billingPeriod);\n }\n };\n\n const component =\n !plans || isLoading || isCustomerPortalLoading ? (\n <PaywallLoader />\n ) : (\n <Paywall\n plans={plans}\n customer={customer}\n currentSubscription={currentSubscription}\n currentSubscriptionOverride={currentSubscriptionOverride}\n selectedBillingPeriod={selectedBillingPeriod}\n onBillingPeriodChanged={handlePeriodChange}\n availableBillingPeriods={availableBillingPeriods}\n highlightedPlanId={highlightedPlanId}\n isCustomerOnTrial={isCustomerOnTrial}\n onPlanSelected={onPlanSelected}\n paywallLocale={paywallLocale}\n locale={locale}\n shouldHidePlan={shouldHidePlan}\n selectDefaultTierIndex={selectDefaultTierIndex}\n hideCompatibleAddons={hideCompatibleAddons}\n />\n );\n\n // When rendering the paywall in the customer portal context we don't want to apply paywall theme\n if (hasCustomerPortalContext) {\n return component;\n }\n return <SdkThemeProvider componentTheme={configuration}>{component}</SdkThemeProvider>;\n};\n","import styled from '@emotion/styled/macro';\nimport MuiButton from '@mui/material/Button';\n\nexport const StyledButton = styled(MuiButton)`\n border-radius: 10px;\n padding: 8px 16px;\n text-transform: none;\n\n &,\n &:hover {\n border-color: ${({ theme }) => theme.stigg.palette.outlinedRestingBorder};\n }\n`;\n","<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M13.3333 2.5L17.5 6.66667L6.66667 17.5H2.5V13.3333L13.3333 2.5V2.5Z\" stroke=\"#327EEE\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>\n","import styled from '@emotion/styled/macro';\n\nexport const SectionHeader = styled.div<{ $disableMargin?: boolean }>`\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n ${({ $disableMargin }) =>\n !$disableMargin &&\n `\n &:not(:last-child) {\n margin-bottom: 32px;\n }\n `};\n`;\n","import React from 'react';\nimport Skeleton from 'react-loading-skeleton';\nimport { Typography } from '../../common/Typography';\nimport { useCustomerPortalContext } from '../CustomerPortalProvider';\n\nexport type SectionTitleProps = {\n title: string;\n className: string;\n isLoading?: boolean;\n};\n\nexport function SectionTitle({ title, className, isLoading }: SectionTitleProps) {\n const { theme } = useCustomerPortalContext();\n\n if (isLoading) {\n return <Skeleton width={120} />;\n }\n\n return (\n <Typography className={className} overrideColor={theme.sectionTitleColor} variant=\"h3\" bold>\n {title}\n </Typography>\n );\n}\n","import { CustomerPortalEntitlement, CustomerPortalSubscription } from '@stigg/js-client-sdk';\nimport { FeatureFragment } from '@stigg/api-client-js/src/generated/sdk';\n\nexport type OnBuyMoreCallbackFn = (feature: FeatureFragment, entitlement: CustomerPortalEntitlement) => void;\n\nexport type FilterEntitlementsFn = (entitlements: CustomerPortalEntitlement[]) => CustomerPortalEntitlement[];\n\nexport enum CustomerPortalIntentionType {\n MANAGE_SUBSCRIPTION = 'MANAGE_SUBSCRIPTION',\n UPGRADE_PLAN = 'UPGRADE_PLAN',\n UPGRADE_TRIAL_PLAN = 'UPGRADE_TRIAL_PLAN',\n}\n\nexport type OnManageSubscriptionFn = ({\n intentionType,\n customerSubscriptions,\n}: {\n intentionType: CustomerPortalIntentionType;\n customerSubscriptions: CustomerPortalSubscription[];\n}) => Promise<void> | void;\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { StyledButton } from '../common/StyledButton';\nimport { Typography } from '../../common/Typography';\nimport EditIcon from '../../../assets/edit-icon.svg';\nimport { CustomerPortalLocalization } from '../customerPortalTextOverrides';\nimport { SectionHeader } from '../common/SectionHeader';\nimport { SectionTitle } from '../common/SectionTitle';\nimport { OnManageClick } from '../CustomerPortalContainer';\nimport { CustomerPortalIntentionType } from '../types';\n\ntype SubscriptionsOverviewHeaderProps = {\n onManageSubscription: OnManageClick;\n hideManageButton: boolean;\n textOverrides: CustomerPortalLocalization;\n};\n\nconst StyledEditIcon = styled(EditIcon)`\n path {\n stroke: ${({ theme }) => theme.stigg.palette.primary};\n }\n`;\n\nexport function SubscriptionsOverviewHeader({\n onManageSubscription,\n hideManageButton,\n textOverrides,\n}: SubscriptionsOverviewHeaderProps) {\n return (\n <SectionHeader className=\"stigg-customer-portal-overview-header\" $disableMargin>\n <SectionTitle title=\"Subscription\" className=\"stigg-overview-title\" />\n {!hideManageButton && (\n <StyledButton\n className=\"stigg-manage-subscription-button\"\n variant=\"outlined\"\n onClick={() => onManageSubscription({ intentionType: CustomerPortalIntentionType.MANAGE_SUBSCRIPTION })}>\n <StyledEditIcon className=\"stigg-manage-subscription-button-image\" />\n <Typography\n className=\"stigg-manage-subscription-button-text\"\n color=\"primary.main\"\n style={{ marginLeft: '8px' }}\n variant=\"body1\">\n {textOverrides?.manageSubscription}\n </Typography>\n </StyledButton>\n )}\n </SectionHeader>\n );\n}\n","import flatMap from 'lodash/flatMap';\nimport isEmpty from 'lodash/isEmpty';\nimport React from 'react';\nimport { Typography } from '../../../common/Typography';\nimport { useCustomerPortalContext } from '../../CustomerPortalProvider';\n\nexport function AddonsList() {\n const { customerPortal } = useCustomerPortalContext();\n const addons = flatMap(customerPortal?.subscriptions, (subscription) => subscription.addons);\n if (isEmpty(addons)) {\n return null;\n }\n\n return (\n <div className=\"stigg-addons-list-layout\">\n {addons.map((addon, index) => (\n <Typography key={addon.addonId} span className=\"stigg-addon-list-item-text\" variant=\"body1\">\n {addon.quantity > 1 && `${addon.quantity} X `}\n {addon.displayName}\n {index === addons.length - 1 ? '' : ', '}\n </Typography>\n ))}\n </div>\n );\n}\n","import { CustomerPortalPromotionalEntitlement } from '@stigg/js-client-sdk';\nimport moment from 'moment';\nimport React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { Typography } from '../../../common/Typography';\nimport { useCustomerPortalContext } from '../../CustomerPortalProvider';\n\nconst Row = styled.div<{ $borderColor: string }>`\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 64px;\n border-bottom: ${({ $borderColor }) => `1px solid ${$borderColor}`};\n padding: 16px 0;\n\n & > *:first-of-type {\n max-width: 60%;\n }\n`;\n\nfunction getPromotionTitle(promotionalEntitlement: CustomerPortalPromotionalEntitlement) {\n const { displayName, usageLimit, hasUnlimitedUsage } = promotionalEntitlement;\n\n if (hasUnlimitedUsage) {\n return `Unlimited ${displayName}`;\n }\n if (usageLimit) {\n return `${displayName} x ${promotionalEntitlement.usageLimit?.toLocaleString()}`;\n }\n\n return displayName;\n}\n\nexport function Promotions() {\n const { customerPortal, textOverrides, theme } = useCustomerPortalContext();\n const promotionalEntitlements = customerPortal?.promotionalEntitlements;\n\n return (\n <div style={{ display: 'flex', flexDirection: 'column' }}>\n <Typography color=\"secondary\">{textOverrides.promotionsSubtitle}</Typography>\n <div style={{ display: 'flex', flexDirection: 'column' }}>\n <Row $borderColor={theme.borderColor}>\n <Typography variant=\"body1\" bold>\n Feature\n </Typography>\n <Typography variant=\"body1\" bold>\n Expiration date\n </Typography>\n </Row>\n {promotionalEntitlements?.map((promotionalEntitlement, index) => (\n <Row key={`${promotionalEntitlement.displayName}-${index}`} $borderColor={theme.borderColor}>\n <Typography variant=\"body1\">{getPromotionTitle(promotionalEntitlement)}</Typography>\n <Typography variant=\"body1\" color=\"disabled\">\n {promotionalEntitlement.endDate\n ? moment.utc(promotionalEntitlement.endDate).format('MMM Do, YYYY')\n : 'None'}\n </Typography>\n </Row>\n ))}\n </div>\n </div>\n );\n}\n","import styled from '@emotion/styled/macro';\nimport Box from '@mui/material/Box';\nimport Tabs from '@mui/material/Tabs';\n\nexport const StyledTabs = styled(Tabs)`\n .MuiTabs-indicator {\n background-color: #001e6c;\n }\n`;\n\nexport const TabsLayout = styled.div`\n width: 100%;\n flex: 1;\n margin-top: 16px;\n`;\n\nexport const TabContent = styled(Box, { shouldForwardProp: (prop) => !prop.startsWith('$') })<{ $maxHeight: string }>`\n margin-top: 16px;\n max-height: ${({ $maxHeight }) => $maxHeight};\n overflow-y: auto;\n`;\n\nexport const ListBox = styled.div<{ $backgroundColor: string; $borderColor: string }>`\n display: flex;\n flex-direction: column;\n padding: 24px;\n border: ${({ $borderColor }) => `1px solid ${$borderColor}`};\n border-radius: 10px;\n margin-bottom: 16px;\n row-gap: 16px;\n background-color: ${({ $backgroundColor }) => $backgroundColor};\n`;\n","import React, { useState } from 'react';\nimport { CustomerPortal } from '@stigg/js-client-sdk';\nimport flatMap from 'lodash/flatMap';\nimport Box from '@mui/material/Box';\nimport Tab from '@mui/material/Tab';\nimport { FontWeight } from 'styled-typography';\nimport { Typography } from '../../../common/Typography';\nimport { AddonsList } from './AddonsList';\nimport { Promotions } from './Promotions';\nimport { CustomerPortalSection } from '../../CustomerPortal';\nimport { CustomerPortalLocalization } from '../../customerPortalTextOverrides';\nimport { StyledTabs, TabContent, TabsLayout } from './SubscriptionTabs.style';\nimport { CustomerPortalTheme } from '../../customerPortalTheme';\nimport { Icon, Icons } from '../../../common/Icon';\n\ntype TabPanelProps = {\n children?: React.ReactNode;\n index: number;\n value: number;\n maxHeight: string;\n};\n\nfunction TabPanel(props: TabPanelProps) {\n const { children, value, index, maxHeight, ...other } = props;\n\n return (\n <div role=\"tabpanel\" hidden={value !== index} {...other}>\n {value === index && <TabContent $maxHeight={maxHeight}>{children}</TabContent>}\n </div>\n );\n}\n\nexport type SubscriptionTabsProps = {\n customerPortal: CustomerPortal;\n hiddenSections?: CustomerPortalSection[];\n textOverrides: CustomerPortalLocalization;\n theme: CustomerPortalTheme;\n};\n\nfunction TabTitle({ isSelected, label, icon }: { isSelected: boolean; label: string; icon: Icons }) {\n const color = isSelected ? 'primary' : 'secondary';\n return (\n <div style={{ display: 'flex', gap: 8, alignItems: 'center' }}>\n <Icon icon={icon} svgStrokeColor={color} />\n <Typography variant=\"h6\" bold={isSelected} fontWeight={FontWeight.Medium} color={color}>\n {label}\n </Typography>\n </div>\n );\n}\n\nexport function SubscriptionTabs({ customerPortal, hiddenSections, textOverrides, theme }: SubscriptionTabsProps) {\n const allAddons = flatMap(customerPortal.subscriptions, (subscription) => subscription.addons);\n const isSectionHidden = (sectionName: CustomerPortalSection) =>\n hiddenSections?.some((section) => section === sectionName);\n const showAddons = allAddons.length > 0 && !isSectionHidden('addons');\n const showPromotions =\n customerPortal.promotionalEntitlements.length > 0 && !isSectionHidden('promotionalEntitlements');\n const [value, setValue] = useState(showAddons ? 1 : 2);\n\n const handleChange = (_: React.SyntheticEvent, newValue: number) => {\n setValue(newValue);\n };\n const shouldShowTabs = showAddons || showPromotions;\n\n if (!shouldShowTabs) {\n return null;\n }\n\n return (\n <TabsLayout>\n <Box sx={{ borderBottom: 1, borderColor: 'divider' }}>\n <StyledTabs value={value} onChange={handleChange}>\n {showAddons ? (\n <Tab\n sx={{ textTransform: 'none' }}\n value={1}\n label={<TabTitle isSelected={value === 1} label={textOverrides.addonsTabTitle} icon=\"Addons\" />}\n />\n ) : null}\n {showPromotions ? (\n <Tab\n sx={{ textTransform: 'none' }}\n value={2}\n label={<TabTitle isSelected={value === 2} label={textOverrides.promotionsTabTitle} icon=\"Promotions\" />}\n />\n ) : null}\n </StyledTabs>\n </Box>\n <TabPanel value={value} index={1} maxHeight={theme.tabMaxHeight}>\n <AddonsList />\n </TabPanel>\n <TabPanel value={value} index={2} maxHeight={theme.tabMaxHeight}>\n <Promotions />\n </TabPanel>\n </TabsLayout>\n );\n}\n","export const breakpoints = {\n xs: 320,\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n xxl: 1536,\n} as const;\n\nexport type Breakpoints = typeof breakpoints;\n\nexport type Breakpoint = keyof Breakpoints;\n\nexport const mqMinWidth = (breakpoint: Breakpoint) => `(min-width: ${breakpoints[breakpoint]}px)`;\n\nexport const mq = Object.keys(breakpoints).reduce(\n (obj, breakpoint) => ({ ...obj, [breakpoint]: `@media ${mqMinWidth(breakpoint as Breakpoint)}` }),\n {} as Record<Breakpoint, string>,\n);\n","import { useMediaQuery as useMediaQueryMui } from '@mui/material';\nimport { Breakpoint, mqMinWidth } from '../common/mediaQuery';\n\nexport function useIsScreenWiderThan(breakpoint: Breakpoint) {\n return useMediaQueryMui(mqMinWidth(breakpoint));\n}\n","import styled from '@emotion/styled/macro';\nimport React from 'react';\nimport Skeleton from 'react-loading-skeleton';\nimport { useIsScreenWiderThan } from '../../hooks/useIsScreenWiderThan';\n\nconst SkeletonLayout = styled.div`\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n`;\n\nconst SkeletonLayoutLeft = styled.div`\n display: flex;\n flex-direction: column;\n gap: 32px;\n`;\n\nexport function SubscriptionOverviewLoader() {\n const isScreenWiderThanMd = useIsScreenWiderThan('md');\n return (\n <SkeletonLayout className=\"stigg-subscription-overview-skeleton-layout\">\n <SkeletonLayoutLeft>\n <Skeleton width={120} />\n <Skeleton width={120} />\n </SkeletonLayoutLeft>\n <Skeleton width={isScreenWiderThanMd ? 295 : 260} height={193} />\n </SkeletonLayout>\n );\n}\n","import React from 'react';\nimport { ArrowDown } from 'react-feather';\nimport Grid from '@mui/material/Grid';\nimport {\n CustomerPortalSubscription,\n CustomerPortalSubscriptionScheduledUpdateDataFragment,\n SubscriptionScheduleType,\n BillingPeriod,\n} from '@stigg/js-client-sdk';\nimport { compact, map } from 'lodash';\nimport { Typography } from '../../../common/Typography';\nimport { BillingPeriodChangeVariables, UnitAmountChangeVariables } from '../../../../types';\n\nexport type SubscriptionScheduledUpdateRowProps = {\n scheduleUpdate: CustomerPortalSubscriptionScheduledUpdateDataFragment;\n};\n\nfunction SubscriptionScheduledUpdateDowngradeRow({ scheduleUpdate }: SubscriptionScheduledUpdateRowProps) {\n const { targetPackage } = scheduleUpdate;\n return (\n <Grid container alignItems=\"center\">\n <Grid>\n <ArrowDown color=\"#D94052\" height={20} className=\"stigg-scheduled-updates-arrow-down\" />\n </Grid>\n <Grid item>\n <Typography className=\"stigg-scheduled-updates-description\" variant=\"body1\">\n Downgrade to the <b>{targetPackage?.displayName}</b> plan\n </Typography>\n </Grid>\n </Grid>\n );\n}\n\nfunction SubscriptionScheduledUpdateBillingPeriodChangeRow({ scheduleUpdate }: SubscriptionScheduledUpdateRowProps) {\n const { scheduleVariables } = scheduleUpdate;\n const { billingPeriod } = scheduleVariables as BillingPeriodChangeVariables;\n const currentBillingPeriod = billingPeriod === BillingPeriod.Monthly ? 'annually' : 'monthly';\n const nextBillingPeriod = billingPeriod === BillingPeriod.Monthly ? 'monthly' : 'annually';\n\n return (\n <Grid container alignItems=\"center\">\n <Grid>\n <ArrowDown color=\"#D94052\" height={20} className=\"stigg-scheduled-updates-arrow-down\" />\n </Grid>\n <Grid item>\n <Typography className=\"stigg-scheduled-updates-description\" variant=\"body1\">\n Change from an {currentBillingPeriod} to a <b>{nextBillingPeriod}</b> billing cycle\n </Typography>\n </Grid>\n </Grid>\n );\n}\n\nfunction SubscriptionScheduledUpdateUnitQuantityChangeRow({\n subscription,\n scheduleUpdate,\n}: SubscriptionScheduledUpdateRowProps & { subscription: CustomerPortalSubscription }) {\n const { scheduleVariables } = scheduleUpdate;\n const { newUnitAmount, featureId } = scheduleVariables as UnitAmountChangeVariables;\n const feature = compact(map(subscription.prices, 'feature')).find(({ id }) => id === featureId);\n\n if (!feature) {\n return null;\n }\n\n const { featureUnits, featureUnitsPlural } = feature;\n const newQuantityUnits = newUnitAmount === 1 ? featureUnits : featureUnitsPlural;\n\n return (\n <Grid container alignItems=\"flex-start\" flexWrap=\"nowrap\">\n <Grid>\n <ArrowDown color=\"#D94052\" height={20} className=\"stigg-scheduled-updates-arrow-down\" />\n </Grid>\n <Grid item>\n <Typography className=\"stigg-scheduled-updates-description\" variant=\"body1\">\n Reduce the <b>{featureUnits}</b> quantity to {newUnitAmount} {newQuantityUnits}\n </Typography>\n </Grid>\n </Grid>\n );\n}\n\nexport function SubscriptionScheduledUpdateRow({\n scheduleUpdate,\n subscription,\n}: {\n scheduleUpdate: CustomerPortalSubscriptionScheduledUpdateDataFragment;\n subscription: CustomerPortalSubscription;\n}) {\n switch (scheduleUpdate.subscriptionScheduleType) {\n case SubscriptionScheduleType.Downgrade: {\n return <SubscriptionScheduledUpdateDowngradeRow scheduleUpdate={scheduleUpdate} />;\n }\n\n case SubscriptionScheduleType.BillingPeriod: {\n return <SubscriptionScheduledUpdateBillingPeriodChangeRow scheduleUpdate={scheduleUpdate} />;\n }\n\n case SubscriptionScheduleType.UnitAmount: {\n return (\n <SubscriptionScheduledUpdateUnitQuantityChangeRow scheduleUpdate={scheduleUpdate} subscription={subscription} />\n );\n }\n\n default: {\n return null;\n }\n }\n}\n","import React, { useState } from 'react';\nimport Box from '@mui/material/Box';\nimport Grid from '@mui/material/Grid';\nimport { CustomerPortalSubscription } from '@stigg/js-client-sdk';\nimport styled from '@emotion/styled/macro';\nimport { useTheme } from '@emotion/react';\nimport ClipLoader from 'react-spinners/ClipLoader';\nimport { CustomerPortalTheme } from '../../customerPortalTheme';\nimport Restore from '../../../../assets/restore.svg';\nimport { Icon } from '../../../common/Icon';\nimport { Typography } from '../../../common/Typography';\nimport { SubscriptionScheduledUpdateRow } from './SubscriptionScheduledUpdateRow';\nimport { getSubscriptionScheduleUpdateTexts } from '../../../utils/getSubscriptionScheduleUpdateTexts';\nimport { StyledButton } from '../../common/StyledButton';\n\nexport type SubscriptionScheduledUpdatesAlertProps = {\n subscription: CustomerPortalSubscription;\n onCancelScheduledUpdates?: (subscription: CustomerPortalSubscription) => void;\n theme: CustomerPortalTheme;\n cancelScheduledUpdatesButtonTitle: string;\n};\n\nconst SubscriptionScheduleUpdateAlertContainer = styled(Box)<{ $borderColor: string }>`\n border-bottom: ${({ $borderColor }) => `1px solid ${$borderColor}`};\n border-top-left-radius: 10px;\n border-top-right-radius: 10px;\n margin: -64px -64px 64px -64px;\n padding: 24px 32px;\n`;\n\nconst LoadingIndicator = styled(ClipLoader)`\n margin-left: 4px;\n`;\n\nconst StyledRestoreIcon = styled(Restore)`\n color: ${({ theme }) => theme.stigg.palette.primary};\n path {\n fill: ${({ theme }) => theme.stigg.palette.primary};\n }\n`;\n\nfunction MultipleScheduledUpdates({ subscription }: Pick<SubscriptionScheduledUpdatesAlertProps, 'subscription'>) {\n const { scheduledUpdates } = subscription;\n\n return (\n <>\n <Grid container alignItems=\"center\" justifyContent=\"space-between\" gap={1}>\n <Grid>\n <Typography className=\"stigg-scheduled-updates-description\" variant=\"body1\">\n The following updates will take effect in the next billing cycle:\n </Typography>\n </Grid>\n </Grid>\n <Grid>\n {(scheduledUpdates || []).map((scheduleUpdate) => (\n <SubscriptionScheduledUpdateRow\n key={scheduleUpdate.subscriptionScheduleType}\n scheduleUpdate={scheduleUpdate}\n subscription={subscription}\n />\n ))}\n </Grid>\n </>\n );\n}\n\nfunction SingleScheduledUpdate({ subscription }: Pick<SubscriptionScheduledUpdatesAlertProps, 'subscription'>) {\n const { scheduledUpdates } = subscription;\n const [scheduledUpdate] = scheduledUpdates || [];\n\n const { line1, line2 } = getSubscriptionScheduleUpdateTexts({\n scheduledUpdate,\n subscriptionPrices: subscription.prices,\n billingPeriodRange: subscription.billingPeriodRange,\n options: {\n postfix: 'at the end of the current billing period', // We can later remove this if unnecessary\n },\n });\n\n return (\n <>\n <Grid container alignItems=\"center\" justifyContent=\"space-between\" gap={1}>\n <Grid>\n <Typography className=\"stigg-scheduled-updates-title\" variant=\"body1\" color=\"primary\">\n {line1}\n </Typography>\n </Grid>\n </Grid>\n {line2 && (\n <Grid>\n <Typography className=\"stigg-scheduled-updates-subtitle\" variant=\"body1\" color=\"secondary\">\n {line2}\n </Typography>\n </Grid>\n )}\n </>\n );\n}\n\nexport function SubscriptionScheduledUpdatesAlert({\n subscription,\n onCancelScheduledUpdates,\n theme,\n cancelScheduledUpdatesButtonTitle,\n}: SubscriptionScheduledUpdatesAlertProps) {\n const stiggTheme = useTheme();\n const [isLoading, setIsLoading] = useState(false);\n const { scheduledUpdates } = subscription;\n\n if (!scheduledUpdates || scheduledUpdates.length === 0) {\n return null;\n }\n\n const isSingleScheduledUpdate = scheduledUpdates.length === 1;\n\n return (\n <SubscriptionScheduleUpdateAlertContainer\n $borderColor={theme.borderColor}\n className=\"stigg-scheduled-updates-alert-container\">\n <Grid container alignItems={isSingleScheduledUpdate ? 'center' : 'flex-start'} gap={2}>\n <Grid item display=\"flex\">\n <Icon icon=\"ScheduleBox\" svgPathColor={theme.iconsColor} svgRectColor={theme.iconsBackgroundColor} />\n </Grid>\n\n <Grid item flex={1}>\n {isSingleScheduledUpdate ? (\n <SingleScheduledUpdate subscription={subscription} />\n ) : (\n <MultipleScheduledUpdates subscription={subscription} />\n )}\n </Grid>\n\n {!!onCancelScheduledUpdates && (\n <Grid item>\n <StyledButton\n variant=\"outlined\"\n onClick={() => {\n setIsLoading(true);\n Promise.resolve(onCancelScheduledUpdates(subscription)).finally(() => setIsLoading(false));\n }}>\n {isLoading ? (\n <LoadingIndicator loading size={16} color={stiggTheme.stigg.palette.text.disabled} />\n ) : (\n <StyledRestoreIcon\n style={{ display: 'flex', marginRight: 4 }}\n className=\"stigg-scheduled-updates-cancel-update-button-icon\"\n />\n )}\n <Typography variant=\"body1\" color=\"primary.main\" className=\"stigg-scheduled-updates-cancel-update-button\">\n {cancelScheduledUpdatesButtonTitle}\n </Typography>\n </StyledButton>\n </Grid>\n )}\n </Grid>\n </SubscriptionScheduleUpdateAlertContainer>\n );\n}\n","import styled from '@emotion/styled/macro';\nimport { mq } from '../../common/mediaQuery';\n\nexport const SectionContainer = styled.div<{ $backgroundColor: string; $borderColor: string }>`\n width: 100%;\n display: flex;\n flex-direction: column;\n border-radius: 10px;\n background-color: ${({ $backgroundColor }) => $backgroundColor};\n border: ${({ $borderColor }) => `1px solid ${$borderColor}`};\n\n padding: 16px;\n ${mq.sm} {\n padding: 32px;\n }\n ${mq.md} {\n padding: 48px;\n }\n ${mq.lg} {\n padding: 64px;\n }\n`;\n","import { BillingPeriod, Currency } from '@stigg/js-client-sdk';\nimport moment from 'moment';\nimport React from 'react';\nimport { currencyPriceFormatter } from '../../../utils/currencyUtils';\nimport { Typography } from '../../../common/Typography';\n\nexport type NextEstimatedBillProps = {\n billingPeriod: BillingPeriod;\n rangeEnd: string;\n amount: number;\n currency: Currency;\n};\n\nexport function NextEstimatedBill({ billingPeriod, rangeEnd, amount, currency }: NextEstimatedBillProps) {\n return (\n <>\n <Typography variant=\"h6\">Next estimated bill</Typography>\n <Typography variant=\"h1\">{currencyPriceFormatter({ amount, currency, maximumFractionDigits: 2 })}</Typography>\n <Typography as=\"div\" variant=\"body1\" color=\"secondary\">\n Billed {billingPeriod === BillingPeriod.Monthly ? 'monthly' : 'annually'} on{' '}\n <Typography variant=\"body1\" span color=\"primary\">\n {moment.utc(rangeEnd).format('MMM Do, YYYY')}\n </Typography>\n </Typography>\n <Typography variant=\"body1\" color=\"secondary\">\n * Additional tax rates may apply\n </Typography>\n </>\n );\n}\n","import React from 'react';\nimport { Typography } from '../../../common/Typography';\n\ntype NoUpcomingBillingProps = {\n description: string;\n};\n\nexport function NoUpcomingBilling({ description }: NoUpcomingBillingProps) {\n return (\n <>\n <Typography variant=\"h6\" color=\"secondary\">\n No upcoming bill\n </Typography>\n <Typography variant=\"body1\" color=\"secondary\">\n {description}\n </Typography>\n </>\n );\n}\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport Button from '@mui/material/Button';\nimport { Typography } from '../../common/Typography';\n\nconst ContactCustomerSupportLayout = styled.div`\n display: flex;\n flex-direction: column;\n align-items: left;\n gap: 8px;\n`;\n\nconst ContactSupportButton = styled(Button)`\n width: fit-content;\n &.MuiButton-root {\n padding: 0;\n &:hover {\n background: none;\n }\n }\n`;\n\ntype ContactCustomerSupportProps = {\n onContactSupport?: () => void;\n label: string;\n linkLabel: string;\n};\n\nexport function ContactCustomerSupport({ onContactSupport, label, linkLabel }: ContactCustomerSupportProps) {\n const contactSupportText = (\n <Typography color={onContactSupport ? 'primary.main' : 'secondary'}>{linkLabel}</Typography>\n );\n return (\n <ContactCustomerSupportLayout className=\"stigg-contact-support-layout\">\n <Typography className=\"stigg-contact-support-label\" color=\"secondary\">\n {label}\n </Typography>\n {onContactSupport ? (\n <ContactSupportButton\n className=\"stigg-contact-support-button\"\n style={{ textTransform: 'none' }}\n variant=\"text\"\n onClick={onContactSupport}>\n {contactSupportText}\n </ContactSupportButton>\n ) : (\n contactSupportText\n )}\n </ContactCustomerSupportLayout>\n );\n}\n","import styled from '@emotion/styled/macro';\nimport React, { ReactNode } from 'react';\nimport {\n BillingModel,\n CustomerPortalSubscription,\n PricingType,\n SubscriptionScheduleType,\n SubscriptionStatus,\n} from '@stigg/js-client-sdk';\nimport { CustomerPortalTheme } from '../../customerPortalTheme';\nimport { NextEstimatedBill } from './NextEstimatedBill';\nimport { NoUpcomingBilling } from './NoUpcomingBilling';\nimport { ContactCustomerSupport } from '../ContactCustomerSupport';\nimport { CustomerPortalLocalization } from '../../customerPortalTextOverrides';\n\nconst Container = styled.div<{ $borderColor: string }>`\n max-height: 278px;\n display: flex;\n flex-direction: column;\n border-radius: 10px;\n background-color: ${({ theme }) => theme.stigg.palette.backgroundSection};\n border: ${({ $borderColor }) => `1px solid ${$borderColor}`};\n padding: 32px;\n gap: 16px;\n`;\n\nexport type UpcomingBillingProps = {\n subscription: CustomerPortalSubscription;\n theme: CustomerPortalTheme;\n textOverrides: CustomerPortalLocalization;\n onContactSupport?: () => Promise<void> | void;\n};\n\nexport function UpcomingBilling({ subscription, theme, textOverrides, onContactSupport }: UpcomingBillingProps) {\n const { pricingType } = subscription;\n let content: ReactNode;\n const noUsageBasedPrices =\n subscription.prices?.every((price) => price.billingModel !== BillingModel.UsageBased) ?? true;\n const scheduledDowngradeToFree = subscription.scheduledUpdates?.find(\n ({ subscriptionScheduleType, targetPackage }) =>\n subscriptionScheduleType === SubscriptionScheduleType.Downgrade &&\n targetPackage?.pricingType === PricingType.Free,\n );\n\n if (pricingType === PricingType.Free) {\n content = <NoUpcomingBilling description=\"You're on a free plan, so you don’t have any upcoming charges\" />;\n } else if (pricingType === PricingType.Paid) {\n if (scheduledDowngradeToFree && noUsageBasedPrices) {\n content = (\n <NoUpcomingBilling description=\"Your plan will be downgraded to a free plan, so you don’t have any upcoming charges\" />\n );\n } else if (subscription.status === SubscriptionStatus.InTrial) {\n content = (\n <NoUpcomingBilling\n description={`You’re on a free trial of the ${subscription.planName} plan, so you don’t have any upcoming charges`}\n />\n );\n } else {\n const billingPeriod = subscription.prices?.[0]?.billingPeriod;\n const rangeEnd = subscription.billingPeriodRange?.end;\n const total = subscription.totalPrice?.total;\n\n if (billingPeriod && rangeEnd && total) {\n content = (\n <NextEstimatedBill\n billingPeriod={billingPeriod}\n rangeEnd={rangeEnd}\n amount={total.amount}\n currency={total.currency}\n />\n );\n }\n }\n } else if (pricingType === PricingType.Custom) {\n content = (\n <ContactCustomerSupport\n onContactSupport={onContactSupport}\n label={textOverrides.contactSupportTitle}\n linkLabel={textOverrides.contactSupportLink}\n />\n );\n }\n\n return (\n <Container className=\"stigg-subscription-total-price-layout\" $borderColor={theme.borderColor}>\n {content}\n </Container>\n );\n}\n","<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M12.9469 13.5999H11.9344L11.935 10.7756C11.935 10.6288 11.87 10.4819 11.7557 10.3838L8.62061 7.91816L11.755 5.4532C11.8694 5.35507 11.9344 5.22444 11.9344 5.06132L11.935 2.40004H12.9475C13.225 2.40004 13.4375 2.18755 13.4375 1.91004C13.4375 1.63254 13.225 1.42004 12.9475 1.42004L3.05311 1.42067C2.77561 1.42067 2.56311 1.63316 2.56311 1.91067C2.56311 2.18817 2.77561 2.40067 3.05311 2.40067H4.06561L4.06498 5.06131C4.06498 5.20818 4.12998 5.35505 4.24436 5.45318L7.36244 7.91814L4.245 10.3837C4.13062 10.4819 4.06562 10.6125 4.06562 10.7756V13.5999H3.05313C2.77562 13.5999 2.56313 13.8124 2.56313 14.0899C2.56313 14.3674 2.77562 14.5799 3.05313 14.5799H12.9469C13.2244 14.5799 13.4369 14.3674 13.4369 14.0899C13.4369 13.8124 13.2244 13.5999 12.9469 13.5999ZM5.04498 2.39995H10.9551V4.81627L8.00002 7.16747L5.04498 4.81627V2.39995ZM5.04498 11.0206L8.00002 8.66939L10.9551 11.0044V13.5838H5.04498V11.0206Z\" fill=\"white\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3.05303 1.25404L12.9474 1.25342C13.317 1.25342 13.6041 1.54053 13.6041 1.91008C13.6041 2.27964 13.317 2.56675 12.9474 2.56675H12.1016L12.101 5.06136V5.06136C12.101 5.2747 12.0135 5.45101 11.8635 5.57973L11.8581 5.58436L8.89014 7.9182L11.8642 10.2572C12.0164 10.3878 12.1016 10.5814 12.1016 10.7757L12.101 13.4333H12.9468C13.3164 13.4333 13.6035 13.7204 13.6035 14.09C13.6035 14.4595 13.3164 14.7466 12.9468 14.7466H3.05304C2.68349 14.7466 2.39638 14.4595 2.39638 14.09C2.39638 13.7204 2.68349 13.4333 3.05304 13.4333H3.89887V10.7757C3.89887 10.5623 3.98635 10.386 4.13639 10.2573L4.14144 10.253L7.09365 7.91821L4.13566 5.57982C3.98346 5.44923 3.89823 5.25562 3.89823 5.06135L3.89882 2.56738H3.05303C2.68348 2.56738 2.39636 2.28026 2.39636 1.91071C2.39636 1.54116 2.68348 1.25405 3.05303 1.25404V1.25404ZM12.9474 1.58675L3.05304 1.58738C2.86758 1.58738 2.7297 1.72525 2.7297 1.91071C2.7297 2.09617 2.86757 2.23404 3.05303 2.23404H4.23223L4.23157 5.06135V5.06135C4.23158 5.15983 4.27538 5.25908 4.35053 5.32476L7.63107 7.91815L4.35113 10.5123C4.2739 10.5795 4.23221 10.6639 4.23221 10.7757V13.7666H3.05304C2.86759 13.7666 2.72971 13.9045 2.72971 14.09C2.72971 14.2754 2.86759 14.4133 3.05304 14.4133H12.9468C13.1323 14.4133 13.2701 14.2754 13.2701 14.09C13.2701 13.9045 13.1323 13.7667 12.9468 13.7667H11.7676L11.7683 10.7757V10.7757C11.7683 10.6772 11.7245 10.5781 11.6495 10.5124L8.35092 7.91819L11.6489 5.32461C11.726 5.25743 11.7676 5.17306 11.7676 5.06136L11.7683 2.23342H12.9474C13.1329 2.23342 13.2708 2.09554 13.2708 1.91008C13.2708 1.72463 13.1329 1.58676 12.9474 1.58675V1.58675ZM4.87823 2.23332H11.1216V4.89669L7.99994 7.3805L4.87823 4.89669V2.23332ZM5.21157 2.56666V4.73593L7.99994 6.95452L10.7883 4.73593V2.56666H5.21157ZM7.99958 8.45673L11.1216 10.9237V13.7505H4.87823V10.9403L7.99958 8.45673ZM8.0003 8.88213L5.21157 11.101V13.4172H10.7883V11.0852L8.0003 8.88213Z\" fill=\"white\"/>\n</svg>\n","import React from 'react';\nimport Tooltip, { tooltipClasses, TooltipProps } from '@mui/material/Tooltip';\nimport styled from '@emotion/styled/macro';\n\nexport type InformationTooltipProps = TooltipProps & { $padding?: number; $maxWidth?: number };\n\nexport const InformationTooltip = styled(\n ({ children, className, placement = 'top', ...props }: InformationTooltipProps) => (\n <Tooltip\n arrow\n placement={placement}\n {...props}\n classes={{ popper: className, tooltip: 'stigg-tooltip', arrow: 'stigg-tooltip-arrow' }}>\n <div>{children}</div>\n </Tooltip>\n ),\n)(({ theme, $padding = 8, $maxWidth = 300 }) => ({\n [`& .${tooltipClasses.tooltip}`]: {\n backgroundColor: theme.stigg.palette.white,\n maxWidth: $maxWidth,\n boxShadow: theme.stigg.shadows.popover,\n padding: $padding,\n borderRadius: theme.stigg.border.radius,\n color: theme.stigg.palette.text.primary,\n },\n [`& .${tooltipClasses.arrow}`]: {\n color: theme.stigg.palette.white,\n },\n}));\n","import React, { CSSProperties, ReactNode, useEffect, useRef, useState } from 'react';\nimport styled, { css } from 'styled-components';\nimport { TooltipProps } from '@mui/material/Tooltip';\nimport { InformationTooltip } from './InformationTooltip';\nimport { Typography, TypographyProps } from './Typography';\n\nconst StyledText = styled(Typography)<{ $maxLines: number; $wordBreak?: boolean; $display: string; $bold?: boolean }>`\n display: ${({ $display }) => $display};\n -webkit-line-clamp: ${({ $maxLines }) => $maxLines};\n -webkit-box-orient: vertical;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: normal;\n ${({ $wordBreak }) =>\n $wordBreak &&\n css`\n word-break: break-word;\n `}\n\n ${({ $bold }) =>\n $bold &&\n css`\n font-weight: bold;\n `}\n`;\n\nfunction checkTextClamped(element: HTMLSpanElement) {\n return element && (element.clientHeight < element.scrollHeight || element.offsetWidth < element.scrollWidth);\n}\n\nexport const LongText = ({\n leaveDelay,\n children,\n variant,\n color,\n maxLines = 1,\n wordBreak,\n bold,\n tooltipPlacement = 'top',\n className,\n display = '-webkit-box',\n style,\n 'data-testid': dataTestId,\n}: {\n children: ReactNode;\n leaveDelay?: number;\n variant?: TypographyProps['variant'];\n color?: TypographyProps['color'];\n maxLines?: number;\n wordBreak?: boolean;\n bold?: boolean;\n tooltipPlacement?: TooltipProps['placement'];\n className?: string;\n display?: string;\n style?: CSSProperties;\n ['data-testid']?: string;\n}) => {\n const [isTextClamped, setIsTextClamped] = useState(false);\n const ref = useRef<HTMLSpanElement>(null);\n const content = (\n <StyledText\n ref={ref}\n variant={variant}\n color={color}\n $maxLines={maxLines}\n $wordBreak={wordBreak}\n $bold={bold}\n className={className}\n $display={display}\n style={style}\n data-testid={dataTestId}>\n {children}\n </StyledText>\n );\n\n // Trigger recalculate of text clamped since ref is not always exists on first render\n useEffect(() => {\n if (ref?.current) {\n const textClamped = checkTextClamped(ref.current);\n setIsTextClamped(textClamped);\n }\n }, [ref]);\n\n const textClamped = ref?.current && checkTextClamped(ref.current);\n return (\n <span>\n {isTextClamped || textClamped ? (\n <InformationTooltip\n placement={tooltipPlacement}\n leaveDelay={leaveDelay}\n title={<Typography variant=\"body1\">{children}</Typography>}>\n {content}\n </InformationTooltip>\n ) : (\n content\n )}\n </span>\n );\n};\n","import styled from '@emotion/styled/macro';\nimport React from 'react';\nimport { CustomerPortalSubscription, SubscriptionStatus } from '@stigg/js-client-sdk';\nimport Link from '@mui/material/Link';\nimport SandClockIcon from '../../../../assets/sand-clock.svg';\nimport { Typography } from '../../../common/Typography';\nimport { LongText } from '../../../common/LongText';\nimport { OnManageClick } from '../../CustomerPortalContainer';\nimport { CustomerPortalIntentionType } from '../../types';\n\nconst OnTrialBadge = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n gap: 4px;\n background-color: ${({ theme }) => theme.stigg.palette.warning};\n border-radius: 10px;\n padding: 8px 16px;\n margin-top: 16px;\n`;\n\nconst StyledLink = styled(Link)`\n text-decoration-color: white;\n color: white;\n cursor: pointer;\n`;\n\nexport function TrialPanel({\n subscription,\n includePlanName,\n onManageSubscription,\n}: {\n subscription: CustomerPortalSubscription | undefined;\n includePlanName: boolean;\n onManageSubscription: OnManageClick;\n}) {\n if (subscription?.status !== SubscriptionStatus.InTrial) {\n return null;\n }\n\n return (\n <OnTrialBadge className=\"stigg-subscription-trial-badge\">\n <SandClockIcon className=\"stigg-subscription-trial-badge-image\" />\n\n <div style={{ flex: 1, marginRight: 4 }}>\n <LongText variant=\"body1\" className=\"stigg-subscription-trial-badge-text\" color=\"white\">\n {`${subscription.trialRemainingDays} days remaining in trial`}\n {includePlanName && ` of the ${subscription.planName} plan`}\n </LongText>\n </div>\n\n <StyledLink\n className=\"stigg-subscription-trial-upgrade-button\"\n onClick={() => onManageSubscription({ intentionType: CustomerPortalIntentionType.UPGRADE_TRIAL_PLAN })}>\n <Typography color=\"white\">Upgrade plan</Typography>\n </StyledLink>\n </OnTrialBadge>\n );\n}\n","import React from 'react';\nimport { CustomerPortalSubscription } from '@stigg/js-client-sdk';\nimport { Typography } from '../../../common/Typography';\nimport { TrialPanel } from './TrialPanel';\nimport { CustomerPortalTheme } from '../../customerPortalTheme';\nimport { OnManageClick } from '../../CustomerPortalContainer';\n\ntype SubscriptionViewProps = {\n mainSubscription: CustomerPortalSubscription;\n trialSubscription: CustomerPortalSubscription | undefined;\n onManageSubscription: OnManageClick;\n theme: CustomerPortalTheme;\n};\n\nexport function SubscriptionView({\n mainSubscription,\n trialSubscription,\n onManageSubscription,\n theme,\n}: SubscriptionViewProps) {\n return (\n <div className=\"stigg-subscription-view-layout\">\n <Typography\n className=\"stigg-subscription-plan-name\"\n variant=\"h1\"\n overrideColor={theme.planNameColor}\n style={{ marginTop: 8 }}>\n {mainSubscription.planName} plan\n </Typography>\n\n <TrialPanel\n subscription={trialSubscription}\n includePlanName={trialSubscription?.planName !== mainSubscription.planName}\n onManageSubscription={onManageSubscription}\n />\n </div>\n );\n}\n","import { CustomerPortalEntitlement } from '@stigg/js-client-sdk';\nimport moment from 'moment';\n\nexport const USAGE_PERCENTAGE_WARNING_THRESHOLD = 70;\n\nexport function getUsagePercentage(currentUsage: number, limit: number) {\n return Math.min(Math.floor((currentUsage / limit) * 100), 100);\n}\n\nexport function getUsageProgressStatus(currentUsage: number) {\n let status: 'standard' | 'warning' | 'error';\n\n if (currentUsage < USAGE_PERCENTAGE_WARNING_THRESHOLD) {\n status = 'standard';\n } else if (currentUsage < 100) {\n status = 'warning';\n } else {\n status = 'error';\n }\n\n return status;\n}\n\nexport function getResetUsageText(entitlement: CustomerPortalEntitlement) {\n if (!entitlement.resetPeriod || !entitlement.usagePeriodEnd) {\n return null;\n }\n\n const calculateResetDiff = (unit: 'days' | 'hours' | 'minutes') => {\n return moment.utc(entitlement.usagePeriodEnd).diff(moment.utc(), unit);\n };\n\n switch (entitlement.resetPeriod) {\n case 'MONTH':\n return `Resets monthly - in ${calculateResetDiff('days')} days`;\n case 'WEEK':\n return `Resets weekly - in ${calculateResetDiff('days')} days`;\n case 'DAY':\n return `Resets daily - in ${calculateResetDiff('hours')} hours`;\n case 'HOUR':\n return `Resets hourly - in ${calculateResetDiff('minutes')} minutes`;\n default:\n return null;\n }\n}\n","import styled from '@emotion/styled/macro';\nimport LinearProgress from '@mui/material/LinearProgress';\nimport React from 'react';\nimport { CustomerPortalEntitlement } from '@stigg/js-client-sdk';\nimport Divider from '@mui/material/Divider';\nimport Color from 'color';\nimport { getUsagePercentage, getUsageProgressStatus } from './FeatureUsage.helper';\n\nexport const StyledLinearProgress = styled(LinearProgress, { shouldForwardProp: (prop) => !prop.startsWith('$') })<{\n $progressStatus: 'standard' | 'warning' | 'error';\n}>`\n height: 4px;\n background-color: ${({ theme }) => Color(theme.stigg.palette.primary).alpha(0.4).string()};\n\n span {\n background-color: ${({ $progressStatus, theme }) => {\n switch ($progressStatus) {\n case 'standard':\n return theme.stigg.palette.primary;\n case 'warning':\n return theme.stigg.palette.warning;\n case 'error':\n return theme.stigg.palette.error;\n default:\n return theme.stigg.palette.primary;\n }\n }};\n }\n`;\n\nexport const StyledDivider = styled(Divider)`\n border-style: dotted;\n border-bottom-width: 2px;\n border-color: ${({ theme }) => Color(theme.stigg.palette.outlinedRestingBorder).alpha(0.4).string()};\n`;\n\nexport type FeatureUsageProgressBarProps = {\n entitlement: CustomerPortalEntitlement;\n};\n\nexport function FeatureUsageProgressBar({ entitlement }: FeatureUsageProgressBarProps) {\n if (entitlement.hasUnlimitedUsage) {\n return <StyledDivider />;\n }\n\n const usagePercentage = getUsagePercentage(entitlement.currentUsage || 0, entitlement.usageLimit!);\n const linearProgressStatus = getUsageProgressStatus(usagePercentage);\n\n return (\n <StyledLinearProgress\n $progressStatus={linearProgressStatus}\n className={`stigg-feature-usage-progress-bar-${linearProgressStatus.toString()}`}\n variant=\"determinate\"\n value={usagePercentage}\n />\n );\n}\n","import { CustomerPortalEntitlement } from '@stigg/js-client-sdk';\nimport { FeatureFragment } from '@stigg/api-client-js/src/generated/sdk';\nimport Button from '@mui/material/Button';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { getUsagePercentage, USAGE_PERCENTAGE_WARNING_THRESHOLD } from './FeatureUsage.helper';\nimport { Typography } from '../../../common/Typography';\nimport { CustomerPortalIntentionType, OnBuyMoreCallbackFn } from '../../types';\nimport { OnManageClick } from '../../CustomerPortalContainer';\n\nconst StyledButton = styled(Button)`\n text-transform: none;\n padding: 0;\n white-space: nowrap;\n`;\n\nexport type EntitlementCtaButtonProps = {\n entitlement: Exclude<CustomerPortalEntitlement, 'feature'>;\n feature: FeatureFragment;\n onManageSubscription: OnManageClick | undefined;\n onBuyMore?: OnBuyMoreCallbackFn;\n canBuyMore: boolean;\n canUpgradeSubscription: boolean;\n hasCustomSubscription: boolean;\n};\n\nexport function EntitlementCtaButton({\n entitlement,\n feature,\n onManageSubscription,\n onBuyMore,\n canBuyMore,\n canUpgradeSubscription,\n hasCustomSubscription,\n}: EntitlementCtaButtonProps) {\n if (hasCustomSubscription || entitlement.hasUnlimitedUsage) {\n return null;\n }\n\n if (getUsagePercentage(entitlement.currentUsage || 0, entitlement.usageLimit!) < USAGE_PERCENTAGE_WARNING_THRESHOLD) {\n return null;\n }\n\n if (canBuyMore) {\n return onBuyMore ? (\n <StyledButton variant=\"text\" onClick={() => onBuyMore(feature, entitlement)}>\n <Typography color=\"primary.main\">Buy more</Typography>\n </StyledButton>\n ) : null;\n }\n\n if (canUpgradeSubscription) {\n return onManageSubscription ? (\n <StyledButton\n variant=\"text\"\n onClick={() => onManageSubscription({ intentionType: CustomerPortalIntentionType.UPGRADE_PLAN })}>\n <Typography color=\"primary.main\">Upgrade</Typography>\n </StyledButton>\n ) : null;\n }\n\n return null;\n}\n","import { Currency, CustomerPortalEntitlement } from '@stigg/js-client-sdk';\nimport React from 'react';\nimport { FeatureFragment } from '@stigg/api-client-js/src/generated/sdk';\nimport { Typography } from '../../../common/Typography';\nimport { currencyPriceFormatter } from '../../../utils/currencyUtils';\nimport { FeatureUsageProgressBar } from '../../usage/featureUsage/FeatureUsageProgressBar';\nimport { LongText } from '../../../common/LongText';\nimport { EntitlementCtaButton } from '../../usage/featureUsage/EntitlementCTAButton';\nimport { OnBuyMoreCallbackFn } from '../../types';\nimport { OnManageClick } from '../../CustomerPortalContainer';\n\nexport type UsageBasedChargeProps = {\n entitlement: Exclude<CustomerPortalEntitlement, 'feature'>;\n feature: FeatureFragment;\n amount: number;\n blockSize?: number | null;\n currency: Currency;\n onBuyMore?: OnBuyMoreCallbackFn;\n onManageSubscription: OnManageClick;\n canUpgradeSubscription: boolean;\n hasCustomSubscription: boolean;\n hideChargePrice?: boolean;\n};\n\nexport function ChargeItem({\n amount,\n currency,\n blockSize,\n entitlement,\n feature,\n hideChargePrice,\n onBuyMore,\n onManageSubscription,\n canUpgradeSubscription,\n hasCustomSubscription,\n}: UsageBasedChargeProps) {\n return (\n <div\n className={`stigg-charge-list-item stigg-charge-list-item-${entitlement.feature!.refId}`}\n style={{ display: 'flex', flexDirection: 'column', gap: 12 }}>\n <div style={{ display: 'flex', justifyContent: 'space-between', gap: 12 }}>\n <div style={{ display: 'flex', gap: 12 }}>\n <LongText variant=\"body1\" color=\"primary\">\n {feature.displayName}\n </LongText>\n {!hideChargePrice && (\n <LongText variant=\"body1\" color=\"secondary\">\n {currencyPriceFormatter({ amount, currency })} per {blockSize ? `${blockSize} ` : ''}\n {blockSize ? feature.featureUnitsPlural : feature.featureUnits}\n </LongText>\n )}\n </div>\n\n <div style={{ display: 'flex', gap: 12 }}>\n <EntitlementCtaButton\n entitlement={entitlement}\n feature={feature}\n canBuyMore\n onBuyMore={onBuyMore}\n onManageSubscription={onManageSubscription}\n canUpgradeSubscription={canUpgradeSubscription}\n hasCustomSubscription={hasCustomSubscription}\n />\n <Typography variant=\"body1\" color=\"primary\" style={{ whiteSpace: 'nowrap' }}>\n {entitlement.hasUnlimitedUsage\n ? entitlement.currentUsage?.toLocaleString()\n : `${entitlement.currentUsage?.toLocaleString()} of ${entitlement.usageLimit?.toLocaleString()}`}\n </Typography>\n </div>\n </div>\n\n <FeatureUsageProgressBar entitlement={entitlement} />\n </div>\n );\n}\n","import { BillingModel, CustomerPortalEntitlement, CustomerPortalSubscription } from '@stigg/js-client-sdk';\nimport React from 'react';\nimport { keyBy } from 'lodash';\nimport { ChargeItem } from './ChargeItem';\nimport { OnBuyMoreCallbackFn } from '../../types';\nimport { OnManageClick } from '../../CustomerPortalContainer';\n\nexport type ChargesProps = {\n subscription: CustomerPortalSubscription;\n entitlements: CustomerPortalEntitlement[];\n onBuyMore?: OnBuyMoreCallbackFn;\n onManageSubscription: OnManageClick;\n canUpgradeSubscription: boolean;\n hasCustomSubscription: boolean;\n};\n\nexport function ChargeList({\n subscription,\n entitlements,\n onBuyMore,\n onManageSubscription,\n hasCustomSubscription,\n canUpgradeSubscription,\n}: ChargesProps) {\n const entitlementByFeature = keyBy(entitlements, 'feature.refId');\n\n const filteredSubscriptionPrices = subscription.prices.filter(\n ({ feature, price }) => !!feature && entitlementByFeature[feature.refId] && !!price,\n );\n\n if (!filteredSubscriptionPrices.length) {\n return null;\n }\n\n return (\n <div className=\"stigg-charge-list\" style={{ display: 'flex', flexDirection: 'column', gap: 16, marginTop: 32 }}>\n {filteredSubscriptionPrices.map(({ feature, price, blockSize, billingModel }) => {\n if (!feature || !price) {\n return null;\n }\n\n const entitlement = entitlementByFeature[feature.refId];\n\n if (!entitlement || !entitlement.feature) {\n return null;\n }\n\n return (\n <ChargeItem\n key={feature.refId}\n entitlement={entitlement}\n feature={entitlement.feature}\n amount={price.amount}\n blockSize={blockSize}\n currency={price.currency}\n hideChargePrice={billingModel === BillingModel.PerUnit}\n onBuyMore={onBuyMore}\n onManageSubscription={onManageSubscription}\n canUpgradeSubscription={canUpgradeSubscription}\n hasCustomSubscription={hasCustomSubscription}\n />\n );\n })}\n </div>\n );\n}\n","import React from 'react';\nimport { CustomerPortalSubscription, PricingType, SubscriptionStatus } from '@stigg/js-client-sdk';\nimport { SubscriptionsOverviewHeader } from './SubscriptionsOverviewHeader';\nimport { SubscriptionTabs } from './tabs/SubscriptionTabs';\nimport { useCustomerPortalContext } from '../CustomerPortalProvider';\nimport { SubscriptionOverviewLoader } from './SubscriptionOverviewLoader';\nimport { CustomerPortalSection } from '../CustomerPortal';\nimport { SubscriptionScheduledUpdatesAlert } from './subscriptionScheduledUpdates/SubscriptionScheduledUpdatesAlert';\nimport { SectionContainer } from '../common/SectionContainer';\nimport { UpcomingBilling } from './upcomingBilling/UpcomingBilling';\nimport { SubscriptionView } from './subscriptionView/SubscriptionView';\nimport { ChargeList } from './charges/ChargeList';\nimport { OnBuyMoreCallbackFn } from '../types';\nimport { OnManageClick } from '../CustomerPortalContainer';\n\nexport type SubscriptionsOverviewProps = {\n onManageSubscription: OnManageClick;\n onBuyMore?: OnBuyMoreCallbackFn;\n onCancelScheduledUpdates?: (subscription: CustomerPortalSubscription) => void;\n onContactSupport?: () => void;\n hiddenSections?: CustomerPortalSection[];\n cancelScheduledUpdatesButtonTitle: string;\n};\n\nexport function SubscriptionsOverview({\n onManageSubscription,\n onBuyMore,\n onCancelScheduledUpdates,\n onContactSupport,\n hiddenSections,\n cancelScheduledUpdatesButtonTitle,\n}: SubscriptionsOverviewProps) {\n const { customerPortal, isLoading, textOverrides, theme } = useCustomerPortalContext();\n const isLoadingData = isLoading || !customerPortal;\n const { subscriptions, entitlements, canUpgradeSubscription } = customerPortal || {};\n\n const activeSubscription = subscriptions?.find(({ status }) => status === SubscriptionStatus.Active);\n const trialSubscription = subscriptions?.find(({ status }) => status === SubscriptionStatus.InTrial);\n const hasCustomSubscription = activeSubscription?.pricingType === PricingType.Custom;\n const mainSubscription = activeSubscription || trialSubscription;\n\n return (\n <SectionContainer\n className=\"stigg-customer-portal-subscriptions-overview\"\n $backgroundColor={theme.backgroundColor}\n $borderColor={theme.borderColor}>\n {!isLoadingData && activeSubscription && activeSubscription.scheduledUpdates && (\n <SubscriptionScheduledUpdatesAlert\n theme={theme}\n subscription={activeSubscription}\n onCancelScheduledUpdates={onCancelScheduledUpdates}\n cancelScheduledUpdatesButtonTitle={cancelScheduledUpdatesButtonTitle}\n />\n )}\n\n {isLoadingData || !mainSubscription ? (\n <SubscriptionOverviewLoader />\n ) : (\n <div\n className=\"stigg-overview-layout\"\n style={{ display: 'flex', alignItems: 'flex-start', gap: 64, flexWrap: 'wrap' }}>\n <div style={{ display: 'flex', flexDirection: 'column', flex: 1 }}>\n <SubscriptionsOverviewHeader\n onManageSubscription={onManageSubscription}\n hideManageButton={hasCustomSubscription}\n textOverrides={textOverrides}\n />\n\n <SubscriptionView\n mainSubscription={mainSubscription}\n trialSubscription={trialSubscription}\n theme={theme}\n onManageSubscription={onManageSubscription}\n />\n\n {activeSubscription && entitlements && (\n <ChargeList\n subscription={activeSubscription}\n entitlements={entitlements}\n onBuyMore={onBuyMore}\n onManageSubscription={onManageSubscription}\n canUpgradeSubscription={!!canUpgradeSubscription}\n hasCustomSubscription={hasCustomSubscription}\n />\n )}\n\n <SubscriptionTabs\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n customerPortal={customerPortal!}\n hiddenSections={hiddenSections}\n textOverrides={textOverrides}\n theme={theme}\n />\n </div>\n\n <div style={{ display: 'flex', flexDirection: 'column', width: 319, gap: 24 }}>\n <UpcomingBilling\n subscription={mainSubscription}\n theme={theme}\n onContactSupport={onContactSupport}\n textOverrides={textOverrides}\n />\n </div>\n </div>\n )}\n </SectionContainer>\n );\n}\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { PoweredByStigg } from '../common/PoweredByStigg';\n\nconst CustomerPortalHeaderLayout = styled.div`\n display: flex;\n width: 100%;\n align-items: flex-end;\n justify-content: flex-end;\n margin-bottom: 24px;\n`;\n\nexport function CustomerPortalHeader({ showWatermark }: { showWatermark?: boolean }) {\n return (\n <CustomerPortalHeaderLayout className=\"stigg-customer-portal-header-layout\">\n <PoweredByStigg source=\"customer_portal\" showWatermark={showWatermark} />\n </CustomerPortalHeaderLayout>\n );\n}\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { ExternalLink as ExternalLinkIcon } from 'react-feather';\nimport { Typography } from '../../common/Typography';\nimport { StyledButton } from './StyledButton';\n\nconst ExternalLinkText = styled(Typography)`\n text-transform: none;\n`;\n\nconst LinkIcon = styled(ExternalLinkIcon)`\n color: ${({ theme }) => theme.stigg.palette.primary};\n`;\n\nexport type ExternalLinkButtonProps = {\n text: string;\n url: string;\n className: string;\n};\n\nexport function ExternalLinkButton({ text, url, className }: ExternalLinkButtonProps) {\n const onClick = () => {\n window.open(url, '_blank');\n };\n\n return (\n <StyledButton\n className={className}\n variant=\"outlined\"\n startIcon={<LinkIcon size={20} strokeWidth={2.5} />}\n onClick={onClick}>\n <ExternalLinkText color=\"primary.main\">{text}</ExternalLinkText>\n </StyledButton>\n );\n}\n","import styled from '@emotion/styled/macro';\nimport React from 'react';\nimport { FontWeight } from 'styled-typography';\nimport { Typography, TypographyProps } from '../../common/Typography';\n\nexport const InformationGridContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 16px;\n flex: 1 0 0;\n`;\n\nconst InformationGridRow = styled.div`\n display: flex;\n align-items: flex-start;\n gap: 16px;\n align-self: stretch;\n flex-wrap: wrap;\n`;\n\nexport type InformationGridProps = {\n title: string;\n rows: Array<{\n classNamePrefix: string;\n label: string;\n value: string;\n labelTypographyProps?: Partial<TypographyProps>;\n valueTypographyProps?: Partial<TypographyProps>;\n }>;\n};\n\nexport function InformationGrid({ title, rows }: InformationGridProps) {\n return (\n <InformationGridContainer>\n <Typography variant=\"h6\" color=\"secondary\" fontWeight={FontWeight.Medium}>\n {title}\n </Typography>\n {rows.map(({ classNamePrefix, label, value, labelTypographyProps, valueTypographyProps }) => (\n <InformationGridRow key={label}>\n <Typography\n className={`${classNamePrefix}-label`}\n variant=\"body1\"\n color=\"secondary\"\n style={{ width: 80 }}\n {...labelTypographyProps}>\n {label}\n </Typography>\n <Typography className={`${classNamePrefix}-text`} variant=\"body1\" color=\"secondary\" {...valueTypographyProps}>\n {value}\n </Typography>\n </InformationGridRow>\n ))}\n </InformationGridContainer>\n );\n}\n","import Skeleton from 'react-loading-skeleton';\nimport React from 'react';\n\nexport function SkeletonButton() {\n return <Skeleton width={220} height={42} />;\n}\n","import React, { ReactElement } from 'react';\nimport Divider from '@mui/material/Divider';\nimport { padStart } from 'lodash';\nimport Skeleton from 'react-loading-skeleton';\nimport { useCustomerPortalContext } from '../CustomerPortalProvider';\nimport { SectionTitle } from '../common/SectionTitle';\nimport { SectionContainer } from '../common/SectionContainer';\nimport { ExternalLinkButton } from '../common/ExternalLinkButton';\nimport { InformationGrid, InformationGridContainer } from './InformationGrid';\nimport { SectionHeader } from '../common/SectionHeader';\nimport { SkeletonButton } from '../common/SkeletonButton';\nimport { useIsScreenWiderThan } from '../../hooks/useIsScreenWiderThan';\n\nexport const EMPTY_CHAR = '-';\n\nexport function PaymentDetailsSection() {\n const { customerPortal, isLoading, textOverrides, theme } = useCustomerPortalContext();\n const isScreenWiderThanMd = useIsScreenWiderThan('md');\n const { billingInformation } = customerPortal || {};\n const isLoadingData = !billingInformation || isLoading;\n\n const items: ReactElement[] = [];\n\n if (isLoadingData) {\n items.push(\n ...[\n <InformationGridContainer key=\"information-loading-data-top\">\n <Skeleton width={220} height={12} />\n <Skeleton width={220} height={12} />\n <Skeleton width={220} height={12} />\n </InformationGridContainer>,\n <Divider\n key=\"information-loading-data-divider\"\n orientation=\"vertical\"\n style={{ minHeight: 93, display: isScreenWiderThanMd ? 'block' : 'none' }}\n />,\n <InformationGridContainer key=\"information-loading-data-bottom\">\n <Skeleton width={220} height={12} />\n <Skeleton width={220} height={12} />\n <Skeleton width={220} height={12} />\n </InformationGridContainer>,\n ],\n );\n } else {\n items.push(\n <InformationGrid\n key=\"information-billing-data-billed-to\"\n title=\"Billed to\"\n rows={[\n {\n classNamePrefix: 'stigg-customer-name',\n label: 'Name',\n value: billingInformation?.name || EMPTY_CHAR,\n valueTypographyProps: billingInformation?.name ? {} : { color: 'disabled' },\n },\n {\n classNamePrefix: 'stigg-customer-email',\n label: 'Email',\n value: billingInformation?.email || EMPTY_CHAR,\n valueTypographyProps: billingInformation?.email ? {} : { color: 'disabled' },\n },\n ]}\n />,\n );\n\n if (\n billingInformation?.defaultPaymentMethodId &&\n billingInformation.defaultPaymentMethodLast4Digits &&\n billingInformation.defaultPaymentExpirationMonth &&\n billingInformation.defaultPaymentExpirationYear\n ) {\n items.unshift(\n <Divider\n key=\"information-billing-data-divider\"\n orientation=\"vertical\"\n style={{ minHeight: 93, display: isScreenWiderThanMd ? 'block' : 'none' }}\n />,\n );\n items.unshift(\n <InformationGrid\n key=\"information-billing-data-payment-method\"\n title=\"Payment method\"\n rows={[\n {\n classNamePrefix: 'stigg-credit-card',\n label: 'Card',\n value: `Ending in ${billingInformation.defaultPaymentMethodLast4Digits}`,\n },\n {\n classNamePrefix: 'stigg-credit-card-expiration',\n label: 'Expires',\n value: `${padStart(billingInformation.defaultPaymentExpirationMonth.toString(), 2, '0')}/${\n billingInformation.defaultPaymentExpirationYear\n }`,\n },\n ]}\n />,\n );\n }\n }\n\n if (\n !isLoadingData &&\n !billingInformation?.name &&\n !billingInformation?.email &&\n !billingInformation?.defaultPaymentMethodId\n ) {\n return null;\n }\n\n const editButton = isLoadingData ? (\n <SkeletonButton />\n ) : customerPortal?.billingPortalUrl ? (\n <ExternalLinkButton\n url={customerPortal.billingPortalUrl}\n text={textOverrides.editPaymentDetails}\n className=\"stigg-edit-payment-details-button\"\n />\n ) : null;\n\n return (\n <SectionContainer\n className=\"stigg-payment-details-section-layout\"\n $backgroundColor={theme.backgroundColor}\n $borderColor={theme.borderColor}>\n <SectionHeader className=\"stigg-payment-details-section-header\">\n <SectionTitle\n isLoading={isLoadingData}\n className=\"stigg-payment-details-section-title\"\n title=\"Payment details\"\n />\n {editButton}\n </SectionHeader>\n\n <div style={{ display: 'flex', alignItems: 'stretch', gap: isScreenWiderThanMd ? 64 : 32, flexWrap: 'wrap' }}>\n {items}\n </div>\n </SectionContainer>\n );\n}\n","import styled from '@emotion/styled/macro';\nimport { STIGG_WATERMARK_CLASSNAME } from '../../common/PoweredByStigg';\nimport { SectionContainer } from '../common/SectionContainer';\n\nexport const CustomerPortalPaywallLayout = styled(SectionContainer)<{\n $backgroundColor: string;\n $borderColor: string;\n}>`\n position: relative;\n\n .stigg-paywall-layout {\n width: 100%;\n }\n\n .stigg-paywall-plans-layout {\n flex-wrap: nowrap;\n width: 100%;\n overflow-x: auto;\n justify-content: unset;\n padding: 10px 0px 0px 0px;\n }\n\n .stigg-paywall-plans-layout .stigg-plan-offering-container:first-of-type {\n margin-left: auto;\n }\n .stigg-paywall-plans-layout .stigg-plan-offering-container:last-child {\n margin-right: auto;\n }\n\n .${STIGG_WATERMARK_CLASSNAME} {\n display: none;\n }\n`;\n","import React from 'react';\nimport { CustomerPortalTheme } from '../customerPortalTheme';\nimport { CustomerPortalPaywallLayout } from './CustomerPortalPaywall.style';\nimport { SectionTitle } from '../common/SectionTitle';\nimport { SectionHeader } from '../common/SectionHeader';\n\ntype CustomerPortalPaywallProps = {\n paywallComponent?: React.ReactNode;\n theme: CustomerPortalTheme;\n title: string;\n isLoading: boolean;\n};\n\nexport const CustomerPortalPaywall = React.forwardRef<HTMLDivElement, CustomerPortalPaywallProps>(\n ({ paywallComponent, theme, title, isLoading }, ref) => {\n if (!paywallComponent) {\n return null;\n }\n\n return (\n <CustomerPortalPaywallLayout\n className=\"stigg-customer-portal-paywall-section\"\n ref={ref}\n $backgroundColor={theme.backgroundColor}\n $borderColor={theme.borderColor}>\n <SectionHeader className=\"stigg-customer-portal-paywall-header\">\n <SectionTitle isLoading={isLoading} className=\"stigg-customer-portal-paywall-section-title\" title={title} />\n </SectionHeader>\n\n {paywallComponent}\n </CustomerPortalPaywallLayout>\n );\n },\n);\n","import styled from '@emotion/styled/macro';\n\nexport const CustomerPortalLayout = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n\n & * {\n box-sizing: border-box;\n }\n`;\n\nexport const CustomerPortalSections = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n row-gap: 24px;\n`;\n","import { FeatureFragment } from '@stigg/api-client-js/src/generated/sdk';\nimport lowercase from 'lodash/lowerCase';\n\nexport function getFeatureDisplayNameText(\n featureDisplayName: string,\n featureUnits: string | undefined | null,\n featureUnitsPlural: string | undefined | null,\n) {\n if (!featureUnits && !featureUnitsPlural) {\n return featureDisplayName;\n }\n\n const displayNameLowerCase = lowercase(featureDisplayName);\n if (\n displayNameLowerCase === lowercase(featureUnits || '') ||\n displayNameLowerCase === lowercase(featureUnitsPlural || '')\n ) {\n return featureDisplayName;\n }\n\n return `${featureDisplayName} (${featureUnitsPlural})`;\n}\n\nexport function getFeatureDisplayName(feature: FeatureFragment) {\n return getFeatureDisplayNameText(feature.displayName, feature.featureUnits, feature.featureUnitsPlural);\n}\n","import styled from '@emotion/styled/macro';\n\nexport const FeatureUsageContainer = styled.div<{ $highlight: boolean; $borderColor: string }>`\n display: flex;\n flex-direction: column;\n padding: 24px;\n border: ${({ $borderColor }) => `1px solid ${$borderColor}`};\n border-radius: 10px;\n row-gap: 16px;\n height: 100%;\n\n ${({ theme, $highlight }) => $highlight && `background-color: ${theme.stigg.palette.backgroundSection}`};\n`;\n","import isUndefined from 'lodash/isUndefined';\nimport React from 'react';\nimport { BillingModel, CustomerPortalEntitlement } from '@stigg/js-client-sdk';\nimport { CustomerPortalSubscriptionPriceFragment } from '@stigg/api-client-js/src/generated/sdk';\nimport { Typography } from '../../../common/Typography';\nimport { useCustomerPortalContext } from '../../CustomerPortalProvider';\nimport { getResetUsageText, getUsagePercentage } from './FeatureUsage.helper';\nimport { getFeatureDisplayName } from '../../../utils/getFeatureName';\nimport { FeatureUsageContainer } from './FeatureUsage.style';\nimport { FeatureUsageProgressBar } from './FeatureUsageProgressBar';\nimport { Icon } from '../../../common/Icon';\nimport { InformationTooltip } from '../../../common/InformationTooltip';\nimport { LongText } from '../../../common/LongText';\nimport { EntitlementCtaButton } from './EntitlementCTAButton';\nimport { OnBuyMoreCallbackFn } from '../../types';\nimport { OnManageClick } from '../../CustomerPortalContainer';\n\nexport type UsageBoxProps = {\n entitlement: CustomerPortalEntitlement;\n subscriptionPrice: CustomerPortalSubscriptionPriceFragment | undefined;\n onManageSubscription: OnManageClick | undefined;\n onBuyMore?: OnBuyMoreCallbackFn;\n hasCustomSubscription: boolean;\n canUpgradeSubscription: boolean;\n};\n\nexport function FeatureUsage({\n entitlement,\n subscriptionPrice,\n onManageSubscription,\n onBuyMore,\n hasCustomSubscription,\n canUpgradeSubscription,\n}: UsageBoxProps) {\n const { theme } = useCustomerPortalContext();\n\n const hasOverageUsage = !entitlement.hasUnlimitedUsage && entitlement.currentUsage! > entitlement.usageLimit!;\n\n if (!entitlement.feature) {\n return null;\n }\n\n return (\n <FeatureUsageContainer $highlight={!!subscriptionPrice} $borderColor={theme.borderColor}>\n <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', gap: 16 }}>\n <LongText variant=\"body1\">{entitlement.feature && getFeatureDisplayName(entitlement.feature)}</LongText>\n {subscriptionPrice && (\n <InformationTooltip\n title={\n <Typography variant=\"body1\">\n {subscriptionPrice.billingModel === BillingModel.PerUnit\n ? 'Billed for committed usage'\n : 'Billed for actual usage'}\n </Typography>\n }>\n <Icon icon=\"DollarCoin\" svgStrokeColor={theme.iconsColor} />\n </InformationTooltip>\n )}\n </div>\n\n <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', gap: 8 }}>\n <LongText\n variant=\"body1\"\n color={hasOverageUsage ? 'error' : 'primary'}\n data-testid={`usage-data-${entitlement.feature?.refId}`}>\n {entitlement.currentUsage?.toLocaleString()}\n {!entitlement.hasUnlimitedUsage &&\n ` / ${entitlement.usageLimit?.toLocaleString()} (${getUsagePercentage(\n entitlement.currentUsage || 0,\n entitlement.usageLimit!,\n )}%)`}\n </LongText>\n\n <EntitlementCtaButton\n entitlement={entitlement}\n feature={entitlement.feature}\n onBuyMore={onBuyMore}\n canBuyMore={!!subscriptionPrice}\n onManageSubscription={onManageSubscription}\n canUpgradeSubscription={canUpgradeSubscription}\n hasCustomSubscription={hasCustomSubscription}\n />\n </div>\n\n <FeatureUsageProgressBar entitlement={entitlement} />\n\n {!entitlement.hasUnlimitedUsage &&\n !isUndefined(entitlement.usageLimit) &&\n !isUndefined(entitlement.currentUsage) &&\n entitlement.resetPeriod &&\n entitlement.usagePeriodEnd ? (\n <Typography color=\"secondary\">{getResetUsageText(entitlement)}</Typography>\n ) : null}\n {entitlement.hasUnlimitedUsage && <Typography color=\"secondary\">In current billing period</Typography>}\n </FeatureUsageContainer>\n );\n}\n","import styled from '@emotion/styled/macro';\nimport Grid from '@mui/material/Grid';\nimport { range } from 'lodash';\nimport Skeleton from 'react-loading-skeleton';\nimport React from 'react';\nimport { useIsScreenWiderThan } from '../../hooks/useIsScreenWiderThan';\n\nexport const Footer = styled.div`\n margin-top: 32px;\n`;\n\nexport function CustomerUsageLoader() {\n const isMdScreen = useIsScreenWiderThan('md');\n return (\n <Grid container spacing={4} className=\"stigg-subscription-usage-skeleton-layout\" sx={{ flexWrap: 'wrap' }}>\n {range(6).map((item) => (\n <Grid key={item} item xs={isMdScreen ? 4 : 12}>\n <Skeleton width={280} height={120} />\n </Grid>\n ))}\n </Grid>\n );\n}\n","import { MeterType, PricingType, SubscriptionStatus } from '@stigg/js-client-sdk';\nimport React, { useState } from 'react';\nimport { compact, keyBy } from 'lodash';\nimport { Minus, Plus } from 'react-feather';\nimport Grid from '@mui/material/Grid';\nimport { useCustomerPortalContext } from '../CustomerPortalProvider';\nimport { FeatureUsage } from './featureUsage/FeatureUsage';\nimport { Footer, CustomerUsageLoader } from './CustomerUsageData.style';\nimport { SectionContainer } from '../common/SectionContainer';\nimport { SectionHeader } from '../common/SectionHeader';\nimport { SectionTitle } from '../common/SectionTitle';\nimport { StyledButton } from '../common/StyledButton';\nimport { FilterEntitlementsFn, OnBuyMoreCallbackFn } from '../types';\nimport { OnManageClick } from '../CustomerPortalContainer';\nimport { useIsScreenWiderThan } from '../../hooks/useIsScreenWiderThan';\n\nconst MAX_BOXES = 6;\n\nexport type CustomerUsageDataProps = {\n onManageSubscription?: OnManageClick;\n onBuyMore?: OnBuyMoreCallbackFn;\n filterEntitlements?: FilterEntitlementsFn;\n};\n\nexport function CustomerUsageData({ onManageSubscription, onBuyMore, filterEntitlements }: CustomerUsageDataProps) {\n const [showAll, setShowAll] = useState(false);\n const isMdScreen = useIsScreenWiderThan('md');\n\n const { customerPortal, isLoading, textOverrides, theme } = useCustomerPortalContext();\n const isLoadingData = isLoading || !customerPortal;\n const { entitlements, subscriptions } = customerPortal || {};\n const meteredEntitlements = entitlements?.filter(\n (entitlement) =>\n entitlement.feature?.meterType === MeterType.Fluctuating ||\n entitlement.feature?.meterType === MeterType.Incremental,\n );\n const activeSubscription = subscriptions?.find(({ status }) => status === SubscriptionStatus.Active);\n const hasCustomSubscription = activeSubscription?.pricingType === PricingType.Custom;\n const canUpgradeSubscription = !!customerPortal?.canUpgradeSubscription;\n\n const subscriptionPriceByFeature = keyBy(activeSubscription?.prices, 'feature.refId');\n const entitlementByFeature = keyBy(meteredEntitlements, 'feature.refId');\n\n // sort features by prices first, then other entitlements\n const priceEntitlements = compact(\n activeSubscription?.prices.map(\n (subscriptionPrice) => subscriptionPrice.feature && entitlementByFeature[subscriptionPrice.feature.refId],\n ),\n );\n const otherEntitlements = compact(\n meteredEntitlements?.filter((entitlement) => !subscriptionPriceByFeature[entitlement.feature!.refId]),\n );\n const sortedEntitlements = [...priceEntitlements, ...otherEntitlements];\n\n const filteredEntitlements = filterEntitlements ? filterEntitlements(sortedEntitlements) : sortedEntitlements;\n\n // 4 -> 3 per row, 6 -> 2 per row\n const xs = isMdScreen ? (filteredEntitlements.length > 2 ? 4 : 6) : 12;\n\n const entitlementsToShow = showAll ? filteredEntitlements : filteredEntitlements.slice(0, MAX_BOXES);\n\n const toggleShowAll = () => setShowAll((prevState) => !prevState);\n\n if (!isLoadingData && !meteredEntitlements?.length) {\n return null;\n }\n\n return (\n <SectionContainer\n className=\"stigg-subscription-usage-layout\"\n $backgroundColor={theme.backgroundColor}\n $borderColor={theme.borderColor}>\n <SectionHeader>\n <SectionTitle\n title={textOverrides.usageTabTitle}\n className=\"stigg-customer-portal-usage-section-title\"\n isLoading={isLoadingData}\n />\n </SectionHeader>\n\n {isLoadingData ? (\n <CustomerUsageLoader />\n ) : (\n <>\n <Grid container spacing={4}>\n {entitlementsToShow.map((entitlement) => (\n <Grid\n className={`stigg-entitlement-usage-${entitlement.feature!.refId}`}\n key={entitlement.feature!.refId}\n item\n xs={xs}>\n <FeatureUsage\n key={entitlement.feature!.refId}\n subscriptionPrice={subscriptionPriceByFeature[entitlement.feature!.refId]}\n entitlement={entitlement}\n onManageSubscription={onManageSubscription}\n onBuyMore={onBuyMore}\n hasCustomSubscription={hasCustomSubscription}\n canUpgradeSubscription={canUpgradeSubscription}\n />\n </Grid>\n ))}\n </Grid>\n\n {filteredEntitlements.length > MAX_BOXES && (\n <Footer>\n <StyledButton\n className=\"stigg-usage-toggle-many-button\"\n variant=\"text\"\n startIcon={showAll ? <Minus /> : <Plus />}\n onClick={toggleShowAll}>\n {showAll ? 'Show less' : 'Show more'}\n </StyledButton>\n </Footer>\n )}\n </>\n )}\n </SectionContainer>\n );\n}\n","import React, { useRef } from 'react';\nimport { SubscriptionsOverview } from './subscriptionOverview/SubscriptionsOverview';\nimport { CustomerPortalHeader } from './CustomerPortalHeader';\nimport { PaymentDetailsSection } from './billing/PaymentDetailsSection';\nimport { CustomerPortalPaywall } from './paywall/CustomerPortalPaywall';\nimport { useCustomerPortalContext } from './CustomerPortalProvider';\nimport { CustomerPortalLayout, CustomerPortalSections } from './CustomerPortal.style';\nimport { CustomerPortalProps } from './CustomerPortal';\nimport { InvoicesSection, useStiggContext } from '../..';\nimport { CustomerUsageData } from './usage/CustomerUsageData';\nimport { CustomerPortalIntentionType } from './types';\n\nexport type OnManageClick = ({ intentionType }: { intentionType: CustomerPortalIntentionType }) => void;\n\nexport function CustomerPortalContainer({\n onManageSubscription,\n onBuyMore,\n onCancelScheduledUpdates,\n onContactSupport,\n paywallComponent,\n hiddenSections,\n filterEntitlements,\n}: CustomerPortalProps) {\n const { stigg } = useStiggContext();\n const { customerPortal, textOverrides, theme, isLoading } = useCustomerPortalContext();\n const customerPortalSectionRef = useRef<HTMLDivElement>(null);\n\n const onManageClick: OnManageClick = ({ intentionType }: { intentionType: CustomerPortalIntentionType }) => {\n if (onManageSubscription) {\n void onManageSubscription({\n intentionType,\n customerSubscriptions: customerPortal?.subscriptions ?? [],\n });\n } else {\n customerPortalSectionRef?.current?.scrollIntoView({ behavior: 'smooth' });\n }\n };\n\n const shouldShowUsage = !hiddenSections?.some((section) => section === 'usage');\n const shouldShowPaymentDetails = !hiddenSections?.some(\n (section) => section === 'paymentDetails' || section === 'billingInformation',\n );\n const shouldShowInvoices = !hiddenSections?.some(\n (section) => section === 'invoices' || section === 'billingInformation',\n );\n\n return (\n <CustomerPortalLayout className=\"stigg-customer-portal-layout\">\n <CustomerPortalHeader showWatermark={stigg.isWidgetWatermarkEnabled && !!customerPortal} />\n <CustomerPortalSections className=\"stigg-customer-portal-sections\">\n <SubscriptionsOverview\n onCancelScheduledUpdates={onCancelScheduledUpdates}\n onBuyMore={onBuyMore}\n onManageSubscription={onManageClick}\n onContactSupport={onContactSupport}\n hiddenSections={hiddenSections}\n cancelScheduledUpdatesButtonTitle={textOverrides.cancelScheduledUpdatesButtonTitle}\n />\n {shouldShowUsage && (\n <CustomerUsageData\n onManageSubscription={onManageClick}\n onBuyMore={onBuyMore}\n filterEntitlements={filterEntitlements}\n />\n )}\n <CustomerPortalPaywall\n ref={customerPortalSectionRef}\n paywallComponent={paywallComponent}\n theme={theme}\n title={textOverrides.paywallSectionTitle}\n isLoading={!customerPortal || isLoading}\n />\n {shouldShowPaymentDetails && <PaymentDetailsSection />}\n {shouldShowInvoices && <InvoicesSection />}\n </CustomerPortalSections>\n </CustomerPortalLayout>\n );\n}\n","import React from 'react';\nimport { CustomerPortalSubscription } from '@stigg/js-client-sdk';\nimport { CustomerPortalProvider } from './CustomerPortalProvider';\nimport { CustomerPortalContainer } from './CustomerPortalContainer';\nimport { DeepPartial } from '../../types';\nimport { CustomerPortalLocalization } from './customerPortalTextOverrides';\nimport { CustomerPortalTheme } from './customerPortalTheme';\nimport { FilterEntitlementsFn, OnBuyMoreCallbackFn, OnManageSubscriptionFn } from './types';\n\nexport type CustomerPortalSection =\n | 'usage'\n | 'addons'\n | 'promotionalEntitlements'\n | 'billingInformation'\n | 'paymentDetails'\n | 'invoices';\n\nexport type CustomerPortalProps = {\n onManageSubscription?: OnManageSubscriptionFn;\n onBuyMore?: OnBuyMoreCallbackFn;\n onCancelScheduledUpdates?: (subscription: CustomerPortalSubscription) => Promise<void> | void;\n onContactSupport?: () => Promise<void> | void;\n paywallComponent?: React.ReactNode;\n hiddenSections?: CustomerPortalSection[];\n textOverrides?: DeepPartial<CustomerPortalLocalization>;\n theme?: DeepPartial<CustomerPortalTheme>;\n filterEntitlements?: FilterEntitlementsFn;\n resourceId?: string;\n productId?: string;\n};\n\nexport function CustomerPortal({ textOverrides, theme, resourceId, productId, ...restProps }: CustomerPortalProps) {\n return (\n <CustomerPortalProvider textOverrides={textOverrides} theme={theme} resourceId={resourceId} productId={productId}>\n <CustomerPortalContainer {...restProps} />\n </CustomerPortalProvider>\n );\n}\n","import React from 'react';\nimport { useCustomerPortalContext } from '../CustomerPortalProvider';\nimport { SectionTitle } from '../common/SectionTitle';\nimport { ExternalLinkButton } from '../common/ExternalLinkButton';\nimport { SectionContainer } from '../common/SectionContainer';\nimport { SectionHeader } from '../common/SectionHeader';\nimport { SkeletonButton } from '../common/SkeletonButton';\n\nexport function InvoicesSection() {\n const { customerPortal, isLoading, textOverrides, theme } = useCustomerPortalContext();\n const isLoadingData = !customerPortal || isLoading;\n\n const viewInvoiceHistoryButton = isLoadingData ? (\n <SkeletonButton />\n ) : customerPortal?.billingPortalUrl ? (\n <ExternalLinkButton\n url={customerPortal.billingPortalUrl}\n text={textOverrides.viewInvoiceHistory}\n className=\"stigg-view-invoice-history-button\"\n />\n ) : null;\n\n if (!isLoadingData && !customerPortal?.billingPortalUrl) {\n return null;\n }\n\n return (\n <SectionContainer\n className=\"stigg-invoices-section-layout\"\n $backgroundColor={theme.backgroundColor}\n $borderColor={theme.borderColor}>\n <SectionHeader className=\"stigg-invoices-section-header\">\n <SectionTitle\n isLoading={isLoadingData}\n className=\"stigg-invoices-section-title\"\n title={textOverrides.invoicesTitle}\n />\n {viewInvoiceHistoryButton}\n </SectionHeader>\n </SectionContainer>\n );\n}\n","import sortBy from 'lodash/sortBy';\nimport { Addon, BillingPeriod, Currency, SubscriptionAddon } from '@stigg/js-client-sdk';\n\ntype FilterAddonsBaseProps = {\n billingPeriod: BillingPeriod;\n currency: Currency;\n billingCountryCode?: string;\n};\n\nexport const sortAddons = (addons: Addon[]) => {\n return sortBy(addons, 'displayName');\n};\n\nexport const sortSubscriptionAddons = (addons: SubscriptionAddon[]) => {\n return sortBy(addons, 'addon.displayName');\n};\n\nfunction filterAddonPricePointsByBillingPeriod(addon: Addon, billingPeriod: BillingPeriod) {\n return addon.pricePoints.some((pricePoint) => pricePoint.billingPeriod === billingPeriod);\n}\n\nfunction mapAddonPricePointsByBillingCountryCode({\n addon,\n currency,\n billingCountryCode,\n}: {\n addon: Addon;\n currency: Currency;\n billingCountryCode?: string;\n}) {\n return {\n ...addon,\n pricePoints: addon.pricePoints.filter(\n (pricePoint) =>\n pricePoint.currency === currency &&\n (billingCountryCode ? pricePoint.billingCountryCode === billingCountryCode : true),\n ),\n };\n}\n\nexport function filterAddons({\n addons,\n billingPeriod,\n billingCountryCode,\n currency,\n}: { addons?: Addon[] } & FilterAddonsBaseProps): Addon[] {\n return (\n addons\n ?.filter((addon) => filterAddonPricePointsByBillingPeriod(addon, billingPeriod))\n ?.map((addon) => mapAddonPricePointsByBillingCountryCode({ addon, currency, billingCountryCode })) || []\n );\n}\n\nexport function filterSubscriptionAddons({\n addons,\n billingPeriod,\n billingCountryCode,\n currency,\n}: { addons?: SubscriptionAddon[] } & FilterAddonsBaseProps): SubscriptionAddon[] {\n return (\n addons\n ?.filter((addon) => filterAddonPricePointsByBillingPeriod(addon.addon, billingPeriod))\n ?.map((addon) => ({\n ...addon,\n addon: mapAddonPricePointsByBillingCountryCode({ addon: addon.addon, currency, billingCountryCode }),\n })) || []\n );\n}\n","import cloneDeep from 'lodash/cloneDeep';\nimport remove from 'lodash/remove';\nimport { Addon, BillingPeriod, Currency, Plan, Subscription, SubscriptionAddon } from '@stigg/js-client-sdk';\nimport { useCheckoutContext } from '../CheckoutProvider';\nimport {\n filterAddons,\n filterSubscriptionAddons,\n sortAddons,\n sortSubscriptionAddons,\n} from '../steps/addons/addon.utils';\n\nexport type AddonsStepState = {\n addons: SubscriptionAddon[];\n initialAddons?: SubscriptionAddon[];\n availableAddons?: Addon[];\n};\n\ntype GetAddonsStepInitialStateProps = {\n plan?: Plan;\n billingPeriod: BillingPeriod;\n activeSubscription?: Subscription | null;\n billingCountryCode?: string;\n};\n\nexport function getAddonsStepInitialState({\n activeSubscription,\n plan,\n billingPeriod,\n billingCountryCode,\n}: GetAddonsStepInitialStateProps): AddonsStepState {\n let addons: SubscriptionAddon[] = [];\n const currency = plan?.pricePoints?.[0]?.currency || Currency.Usd;\n const availableAddons = sortAddons(\n filterAddons({\n addons: plan?.compatibleAddons,\n billingPeriod,\n billingCountryCode,\n currency,\n }),\n );\n\n const activeSubscriptionAddons = filterSubscriptionAddons({\n addons: activeSubscription?.addons,\n billingPeriod,\n billingCountryCode,\n currency,\n });\n\n if (activeSubscriptionAddons?.length && availableAddons?.length) {\n addons = sortSubscriptionAddons(\n activeSubscriptionAddons.filter((addon) => availableAddons.some((planAddon) => planAddon.id === addon.addon.id)),\n );\n }\n\n return { addons, initialAddons: cloneDeep(addons), availableAddons };\n}\n\nfunction useSetAddon() {\n const [, setState] = useCheckoutContext();\n\n return (addon: Addon, quantity: number) =>\n setState((draft) => {\n const addonToUpdate = draft.addonsStep.addons.find((currentAddon) => currentAddon.addon.id === addon.id);\n\n if (addonToUpdate) {\n addonToUpdate.quantity = quantity;\n } else {\n draft.addonsStep.addons.push({ addon, quantity });\n draft.addonsStep.addons = sortSubscriptionAddons(draft.addonsStep.addons);\n }\n });\n}\n\nfunction useRemoveAddon() {\n const [, setState] = useCheckoutContext();\n\n return (addonId: string) =>\n setState((draft) => {\n remove(draft.addonsStep.addons, (addon) => addon.addon.id === addonId);\n });\n}\n\nfunction useAddonsState() {\n const [{ addonsStep }] = useCheckoutContext();\n return addonsStep;\n}\n\nexport function useAddonsStepModel() {\n const state = useAddonsState();\n\n return {\n ...state,\n setAddon: useSetAddon(),\n removeAddon: useRemoveAddon(),\n };\n}\n","import { useCheckoutContext } from '../CheckoutProvider';\n\nexport type WidgetState = {\n readOnly?: boolean;\n isLoadingCheckoutData?: boolean;\n isValid?: boolean;\n};\n\nfunction useCheckoutState() {\n const [{ checkout, widgetState, checkoutLocalization }] = useCheckoutContext();\n return { checkoutState: checkout, widgetState, checkoutLocalization };\n}\n\nfunction useSetWidgetReadonly() {\n const [, setState] = useCheckoutContext();\n\n return (readOnly: boolean) =>\n setState((draft) => {\n draft.widgetState.readOnly = readOnly;\n });\n}\n\nfunction useSetIsValid() {\n const [, setState] = useCheckoutContext();\n\n return (isValid: boolean) =>\n setState((draft) => {\n draft.widgetState.isValid = isValid;\n });\n}\n\nexport function useCheckoutModel() {\n const { checkoutState, widgetState, checkoutLocalization } = useCheckoutState();\n\n return {\n checkoutState,\n widgetState,\n checkoutLocalization,\n setWidgetReadOnly: useSetWidgetReadonly(),\n setIsValid: useSetIsValid(),\n };\n}\n","import { GetCheckoutStateResults } from '@stigg/js-client-sdk';\nimport { useEffect, useState } from 'react';\nimport logger from '../../../services/logger';\nimport { MockCheckoutStateCallback } from '../types';\nimport { useStiggContext } from '../../../hooks/useStiggContext';\n\ntype UseLoadCheckoutProps = {\n planId: string;\n resourceId?: string;\n billingCountryCode?: string;\n onMockCheckoutState?: MockCheckoutStateCallback;\n};\n\nexport function useLoadCheckout({ planId, resourceId, billingCountryCode, onMockCheckoutState }: UseLoadCheckoutProps) {\n const { stigg } = useStiggContext();\n const [isLoading, setIsLoading] = useState(true);\n const [checkout, setCheckout] = useState<GetCheckoutStateResults | null>();\n\n useEffect(() => {\n const loadCheckout = async () => {\n try {\n const checkout = await stigg.getCheckoutState({ planId, resourceId, billingCountryCode });\n setCheckout(checkout);\n } catch (err) {\n logger.error(`Failed to load checkout ${(err as any)?.message}`, err as any);\n } finally {\n setIsLoading(false);\n }\n };\n\n if (onMockCheckoutState) {\n setIsLoading(false);\n setCheckout(onMockCheckoutState({ planId, resourceId, billingCountryCode }));\n return;\n }\n\n if (stigg.isCustomerLoaded) {\n setIsLoading(true);\n void loadCheckout();\n }\n }, [stigg, stigg.isCustomerLoaded, resourceId, planId, billingCountryCode, onMockCheckoutState]);\n\n return {\n checkout,\n isLoading,\n isWidgetWatermarkEnabled: stigg.isWidgetWatermarkEnabled,\n };\n}\n","import { Price } from '@stigg/js-client-sdk';\n\nexport const getValidPriceQuantity = (price: Price, quantity: number) => {\n if (price.minUnitQuantity && quantity < price.minUnitQuantity) {\n return price.minUnitQuantity;\n }\n if (price.maxUnitQuantity && quantity > price.maxUnitQuantity) {\n return price.maxUnitQuantity;\n }\n return quantity;\n};\n","import { Plan } from '@stigg/js-client-sdk';\nimport { BillingPeriod } from '@stigg/api-client-js/src/generated/sdk';\n\nexport const hasMonthlyPrices = (plan?: Plan) =>\n !!plan?.pricePoints.some((pricePoint) => pricePoint.billingPeriod === BillingPeriod.Monthly);\n\nexport const hasAnnualPrices = (plan?: Plan) =>\n !!plan?.pricePoints.some((pricePoint) => pricePoint.billingPeriod === BillingPeriod.Annually);\n\nexport const hasMultipleBillingPeriods = (plan?: Plan) => hasMonthlyPrices(plan) && hasAnnualPrices(plan);\n","import keyBy from 'lodash/keyBy';\nimport compact from 'lodash/compact';\nimport { BillableFeatureInput, BillingPeriod } from '@stigg/api-client-js/src/generated/sdk';\nimport { BillableFeature, BillingModel, Plan, Price, Subscription } from '@stigg/js-client-sdk';\nimport { useCheckoutContext } from '../CheckoutProvider';\nimport { getTierByQuantity, hasTierWithUnitPrice } from '../../utils/priceTierUtils';\nimport { getValidPriceQuantity } from '../../utils/priceUtils';\nimport { hasAnnualPrices, hasMonthlyPrices } from '../../utils/planPrices';\n\nexport type PlanStepState = {\n billingPeriod: BillingPeriod;\n billableFeatures: BillableFeatureInput[];\n billingCountryCode?: string;\n};\n\ntype GetPlanStepInitialStateProps = {\n preferredBillingPeriod?: BillingPeriod;\n plan?: Plan;\n activeSubscription?: Subscription | null;\n billingCountryCode?: string;\n preconfiguredBillableFeatures: BillableFeature[];\n};\n\nconst getBillingPeriod = (billingPeriod: BillingPeriod, hasMonthlyPrices?: boolean, hasAnnualPrices?: boolean) => {\n if (billingPeriod === BillingPeriod.Monthly && hasMonthlyPrices) {\n return billingPeriod;\n }\n if (billingPeriod === BillingPeriod.Annually && hasAnnualPrices) {\n return billingPeriod;\n }\n return null;\n};\n\nconst isInAdvanceCommitmentCharge = ({ pricingModel }: Price) => {\n return pricingModel === BillingModel.PerUnit;\n};\n\nfunction getBillableFeatures(\n preconfiguredBillableFeatures: BillableFeature[],\n planPrices?: Price[],\n activeSubscription?: Subscription | null,\n): BillableFeature[] {\n if (!planPrices) return [];\n\n const preconfBillableFeaturesByFeatureId = keyBy(preconfiguredBillableFeatures, 'featureId');\n\n const quantityByFeatureId = keyBy(\n compact(\n activeSubscription?.prices?.map((charge) => {\n const { feature } = charge;\n if (!feature || !isInAdvanceCommitmentCharge(charge)) {\n return null;\n }\n\n return {\n featureId: feature.featureId,\n quantity: feature.unitQuantity || null,\n };\n }),\n ),\n 'featureId',\n );\n\n return compact(\n planPrices?.map((price) => {\n const featureId = price.feature?.featureId;\n if (!featureId || !isInAdvanceCommitmentCharge(price)) {\n return null;\n }\n\n let quantity;\n const preconfiguredQuantity =\n preconfBillableFeaturesByFeatureId[featureId]?.quantity || quantityByFeatureId[featureId]?.quantity;\n\n quantity = getValidPriceQuantity(price, preconfiguredQuantity || 1);\n\n if (price.isTieredPrice && !hasTierWithUnitPrice(price.tiers)) {\n const tier = getTierByQuantity(price.tiers!, quantity);\n quantity = tier.upTo!;\n }\n\n return {\n featureId,\n quantity,\n };\n }),\n );\n}\n\nfunction resolveBillingPeriod({\n plan,\n activeSubscription,\n preferredBillingPeriod,\n}: {\n plan?: Plan;\n activeSubscription?: Subscription | null;\n preferredBillingPeriod?: BillingPeriod;\n}) {\n const hasMonthlyPlan = hasMonthlyPrices(plan);\n const hasAnnualPlan = hasAnnualPrices(plan);\n\n if (preferredBillingPeriod) {\n const billingPeriod = getBillingPeriod(preferredBillingPeriod, hasMonthlyPlan, hasAnnualPlan);\n if (billingPeriod) {\n return billingPeriod;\n }\n }\n\n const isUpdate = activeSubscription?.plan?.id === plan?.id;\n if (isUpdate) {\n return activeSubscription?.price?.billingPeriod || BillingPeriod.Monthly;\n }\n\n if (activeSubscription?.prices && activeSubscription?.prices.length > 0) {\n const billingPeriod = getBillingPeriod(activeSubscription?.prices[0].billingPeriod, hasMonthlyPlan, hasAnnualPlan);\n if (billingPeriod) {\n return billingPeriod;\n }\n }\n\n return hasAnnualPlan ? BillingPeriod.Annually : BillingPeriod.Monthly;\n}\n\nexport function getPlanStepInitialState({\n preferredBillingPeriod,\n plan,\n activeSubscription,\n billingCountryCode,\n preconfiguredBillableFeatures,\n}: GetPlanStepInitialStateProps): PlanStepState {\n const billingPeriod = resolveBillingPeriod({ plan, activeSubscription, preferredBillingPeriod });\n const planPrices = plan?.pricePoints.filter((pricePoint) => pricePoint.billingPeriod === billingPeriod);\n const billableFeatures = getBillableFeatures(preconfiguredBillableFeatures, planPrices, activeSubscription);\n\n return {\n billingPeriod,\n billableFeatures,\n billingCountryCode,\n };\n}\n\nfunction usePlanState() {\n const [{ planStep }] = useCheckoutContext();\n return planStep;\n}\n\nfunction useSetBillableFeature() {\n const [, setState] = useCheckoutContext();\n\n return (featureId: string, quantity: number) =>\n setState((draft) => {\n const billableFeature = draft.planStep.billableFeatures.find(\n (billableFeature) => billableFeature.featureId === featureId,\n );\n\n if (billableFeature) {\n billableFeature.quantity = quantity;\n } else {\n draft.planStep.billableFeatures.push({ featureId, quantity });\n }\n });\n}\n\nfunction useSetBillingPeriod() {\n const [, setState] = useCheckoutContext();\n\n return (billingPeriod: BillingPeriod) =>\n setState((draft) => {\n draft.planStep.billingPeriod = billingPeriod;\n });\n}\n\nexport function usePlanStepModel() {\n const state = usePlanState();\n\n return {\n ...state,\n setBillingPeriod: useSetBillingPeriod(),\n setBillableFeature: useSetBillableFeature(),\n };\n}\n","import { BillableFeatureInput } from '@stigg/api-client-js/src/generated/sdk';\nimport { Addon, BillableFeature, BillingPeriod, CheckoutStatePlan } from '@stigg/js-client-sdk';\nimport { useCheckoutContext } from '../CheckoutProvider';\nimport { CheckoutSteps } from '../configurations/steps';\nimport { hasMultipleBillingPeriods } from '../../utils/planPrices';\n\nexport enum CheckoutStepKey {\n PLAN = 'PLAN',\n ADDONS = 'ADDONS',\n PAYMENT = 'PAYMENT',\n}\n\nexport type CheckoutStep = {\n key: CheckoutStepKey;\n label: string;\n};\n\nconst CHECKOUT_STEPS: CheckoutStep[] = [\n { key: CheckoutStepKey.PLAN, label: 'Plan' },\n { key: CheckoutStepKey.ADDONS, label: 'Add-ons' },\n { key: CheckoutStepKey.PAYMENT, label: 'Payment details' },\n];\n\nexport type ProgressBarState = {\n activeStep: number;\n completedSteps: number[];\n steps: CheckoutStep[];\n isDisabled: boolean;\n};\n\nconst INITIAL_STATE: ProgressBarState = {\n activeStep: 0,\n completedSteps: [],\n steps: CHECKOUT_STEPS,\n isDisabled: false,\n};\n\ntype GetProgressBarInitialStateProps = {\n isLoading: boolean;\n skipCheckoutSteps: CheckoutSteps[];\n plan?: CheckoutStatePlan;\n availableAddons?: Addon[];\n availableCharges: BillableFeatureInput[];\n preferredBillingPeriod?: BillingPeriod;\n preconfiguredBillableFeatures: BillableFeature[];\n};\n\nconst canSkipPlanStep = (\n plan: CheckoutStatePlan,\n availableCharges: BillableFeatureInput[],\n preconfiguredBillableFeatures: BillableFeature[],\n preferredBillingPeriod?: BillingPeriod,\n) => {\n // if multiple billing periods are available, a preferred billing period must be selected\n if (hasMultipleBillingPeriods(plan) && !preferredBillingPeriod) {\n return false;\n }\n\n const availableChargesIds = availableCharges.map((charge) => charge.featureId);\n const preconfiguredChargesIds = preconfiguredBillableFeatures.map((charge) => charge.featureId);\n\n // if there are available charges, they must be preconfigured\n if (\n availableChargesIds.length !== preconfiguredChargesIds.length ||\n !availableChargesIds.every((charge) => preconfiguredChargesIds.includes(charge))\n ) {\n return false;\n }\n\n return true;\n};\n\nexport function getProgressBarInitialState({\n isLoading,\n skipCheckoutSteps,\n plan,\n availableAddons,\n availableCharges,\n preferredBillingPeriod,\n preconfiguredBillableFeatures,\n}: GetProgressBarInitialStateProps) {\n if (isLoading || !plan) {\n return INITIAL_STATE;\n }\n\n const stepsToFilter: CheckoutStepKey[] = [];\n\n if (\n skipCheckoutSteps.includes('PLAN') &&\n canSkipPlanStep(plan, availableCharges, preconfiguredBillableFeatures, preferredBillingPeriod)\n ) {\n stepsToFilter.push(CheckoutStepKey.PLAN);\n }\n\n if (availableAddons?.length === 0 || skipCheckoutSteps.includes('ADDONS')) {\n stepsToFilter.push(CheckoutStepKey.ADDONS);\n }\n\n return { ...INITIAL_STATE, steps: CHECKOUT_STEPS.filter((step) => !stepsToFilter.includes(step.key)) };\n}\n\nfunction useProgressBarState() {\n const [{ progressBar }] = useCheckoutContext();\n return progressBar;\n}\n\nfunction useSetActiveStep() {\n const [, setState] = useCheckoutContext();\n return (stepNumber: number) =>\n setState(({ progressBar }) => {\n progressBar.activeStep = stepNumber;\n });\n}\nfunction useMarkStepAsCompleted() {\n const [, setState] = useCheckoutContext();\n return (stepNumber: number) =>\n setState(({ progressBar }) => {\n progressBar.completedSteps.push(stepNumber);\n });\n}\n\nfunction isCheckoutComplete(progressBar: ProgressBarState) {\n return progressBar.completedSteps.length >= progressBar.steps.length - 1;\n}\n\nfunction useGoNext() {\n const [, setState] = useCheckoutContext();\n return () =>\n setState(({ progressBar }) => {\n if (progressBar.isDisabled) {\n return;\n }\n\n if (!progressBar.completedSteps.includes(progressBar.activeStep)) {\n progressBar.completedSteps.push(progressBar.activeStep);\n }\n\n if (progressBar.activeStep < progressBar.steps.length - 1) {\n progressBar.activeStep += 1;\n }\n });\n}\n\nfunction useSetIsDisabled() {\n const [, setState] = useCheckoutContext();\n return (isDisabled?: boolean) =>\n setState(({ progressBar }) => {\n progressBar.isDisabled = !!isDisabled;\n });\n}\n\nexport function useProgressBarModel() {\n const progressBarState = useProgressBarState();\n const currentStep = progressBarState.steps[progressBarState.activeStep];\n\n return {\n currentStep,\n progressBarState,\n isLastStep: progressBarState.activeStep === progressBarState.steps.length - 1,\n isCheckoutComplete: isCheckoutComplete(progressBarState),\n setActiveStep: useSetActiveStep(),\n markStepAsCompleted: useMarkStepAsCompleted(),\n goNext: useGoNext(),\n setIsDisabled: useSetIsDisabled(),\n };\n}\n","import { useCheckoutContext } from '../CheckoutProvider';\nimport { AddonsStepState } from './useAddonsStepModel';\nimport { PromotionCodeState } from './useCouponModel';\nimport { PaymentStepState } from './usePaymentStepModel';\nimport { PlanStepState } from './usePlanStepModel';\n\nexport type SubscriptionState = PlanStepState &\n PromotionCodeState &\n Pick<AddonsStepState, 'addons'> &\n Pick<PaymentStepState, 'billingAddress' | 'taxPercentage'>;\n\nexport function useSubscriptionModel(): SubscriptionState {\n const [{ planStep, addonsStep, promotionCode, paymentStep }] = useCheckoutContext();\n\n return {\n ...planStep,\n addons: addonsStep.addons,\n promotionCode,\n billingAddress: paymentStep.billingAddress,\n taxPercentage: paymentStep.taxPercentage,\n };\n}\n","import { useCallback, useEffect, useState } from 'react';\nimport isEmpty from 'lodash/isEmpty';\nimport { BillingAddress, PreviewSubscription, StiggClient, SubscriptionPreviewV2 } from '@stigg/js-client-sdk';\nimport { useCheckoutContext } from '../CheckoutProvider';\nimport { useCheckoutModel } from './useCheckoutModel';\nimport { SubscriptionState, useSubscriptionModel } from './useSubscriptionModel';\nimport { MockCheckoutPreviewCallback } from '../types';\nimport { useStiggContext } from '../../../hooks/useStiggContext';\n\nfunction mapBillingInformation({\n billingAddress,\n taxPercentage,\n}: {\n billingAddress?: BillingAddress;\n taxPercentage?: number;\n}): Pick<PreviewSubscription, 'billingInformation'> {\n if (!billingAddress && !taxPercentage) {\n return {};\n }\n\n return {\n billingInformation: {\n ...(billingAddress ? { billingAddress } : {}),\n ...(taxPercentage ? { taxPercentage } : {}),\n },\n };\n}\n\ntype UsePreviewSubscriptionProps = {\n onMockCheckoutPreview?: MockCheckoutPreviewCallback;\n};\n\nexport type PreviewSubscriptionProps = {\n customerId?: string;\n planId?: string;\n resourceId?: string;\n stigg: StiggClient;\n} & SubscriptionState &\n UsePreviewSubscriptionProps;\n\nconst previewSubscription = async ({\n stigg,\n customerId,\n planId,\n resourceId,\n promotionCode,\n addons,\n billableFeatures,\n billingCountryCode,\n billingPeriod,\n billingAddress,\n taxPercentage,\n onMockCheckoutPreview,\n}: PreviewSubscriptionProps) => {\n const estimateAddons = addons.map(({ addon, quantity }) => ({ addonId: addon.id, quantity }));\n let subscriptionPreview: SubscriptionPreviewV2 | null = null;\n let errorMessage: string | null = null;\n\n try {\n if (customerId && planId) {\n const previewSubscriptionProps: PreviewSubscription = {\n customerId,\n planId,\n resourceId,\n billingCountryCode,\n addons: estimateAddons,\n billingPeriod,\n promotionCode,\n billableFeatures: isEmpty(billableFeatures) ? undefined : billableFeatures,\n ...mapBillingInformation({ billingAddress, taxPercentage }),\n };\n\n subscriptionPreview = onMockCheckoutPreview\n ? onMockCheckoutPreview(previewSubscriptionProps)\n : await stigg.previewSubscription(previewSubscriptionProps);\n }\n } catch (error) {\n const [, errorMsg] = (error as any)?.message?.split('Error:') || [];\n\n errorMessage = errorMsg?.trim();\n }\n\n return { subscriptionPreview, errorMessage };\n};\n\nexport const usePreviewSubscriptionAction = ({ onMockCheckoutPreview }: UsePreviewSubscriptionProps = {}) => {\n const { stigg } = useStiggContext();\n const subscription = useSubscriptionModel();\n const [{ resourceId }] = useCheckoutContext();\n const { checkoutState, widgetState } = useCheckoutModel();\n const { plan, customer } = checkoutState || {};\n\n const previewSubscriptionAction = useCallback(\n async ({ promotionCode }: { promotionCode?: string | null } = {}) => {\n if (!widgetState.isValid) {\n return { subscriptionPreview: null, errorMessage: null };\n }\n\n return previewSubscription({\n stigg,\n customerId: customer?.id,\n planId: plan?.id,\n resourceId,\n addons: subscription.addons,\n billableFeatures: subscription.billableFeatures,\n billingCountryCode: subscription.billingCountryCode,\n billingPeriod: subscription.billingPeriod,\n billingAddress: subscription.billingAddress,\n taxPercentage: subscription.taxPercentage,\n promotionCode: promotionCode ?? subscription.promotionCode,\n onMockCheckoutPreview,\n });\n },\n [\n stigg,\n customer?.id,\n plan?.id,\n resourceId,\n subscription.addons,\n subscription.billableFeatures,\n subscription.billingCountryCode,\n subscription.billingPeriod,\n subscription.billingAddress,\n subscription.taxPercentage,\n subscription.promotionCode,\n widgetState.isValid,\n onMockCheckoutPreview,\n ],\n );\n\n return { previewSubscriptionAction };\n};\n\nconst SUBSCRIPTION_PREVIEW_DEBOUNCE_TIME = 500;\n\nexport const usePreviewSubscription = ({ onMockCheckoutPreview }: UsePreviewSubscriptionProps = {}) => {\n const [subscriptionPreview, setSubscriptionPreview] = useState<SubscriptionPreviewV2 | null>(null);\n const [isFetchingSubscriptionPreview, setIsFetchingSubscriptionPreview] = useState(false);\n\n const { previewSubscriptionAction } = usePreviewSubscriptionAction({ onMockCheckoutPreview });\n\n useEffect(() => {\n const estimateSubscription = async () => {\n const { subscriptionPreview } = await previewSubscriptionAction();\n if (subscriptionPreview) {\n setSubscriptionPreview(subscriptionPreview);\n }\n\n setIsFetchingSubscriptionPreview(false);\n };\n\n setIsFetchingSubscriptionPreview(true);\n\n const timer = setTimeout(() => {\n setIsFetchingSubscriptionPreview(true);\n void estimateSubscription();\n }, SUBSCRIPTION_PREVIEW_DEBOUNCE_TIME);\n\n return () => {\n clearTimeout(timer);\n };\n }, [previewSubscriptionAction]);\n\n return { subscriptionPreview, isFetchingSubscriptionPreview };\n};\n","import { BillingAddress, Customer } from '@stigg/js-client-sdk';\n\nimport { useCheckoutContext } from '../CheckoutProvider';\n\nexport type PaymentStepState = {\n useNewPaymentMethod: boolean;\n errorMessage?: string;\n billingAddress?: BillingAddress;\n taxPercentage?: number;\n};\n\ntype GetPaymentStepInitialStateProps = {\n customer?: Customer;\n taxPercentage?: number;\n};\n\nexport function getPaymentStepInitialState({\n customer,\n taxPercentage,\n}: GetPaymentStepInitialStateProps): PaymentStepState {\n return {\n useNewPaymentMethod: !customer?.paymentMethodDetails,\n taxPercentage,\n };\n}\n\nfunction useSetUseNewPaymentMethod() {\n const [, setState] = useCheckoutContext();\n\n return (useNewPaymentMethod: boolean) =>\n setState((draft) => {\n draft.paymentStep.useNewPaymentMethod = useNewPaymentMethod;\n });\n}\n\nfunction useSetErrorMessage() {\n const [, setState] = useCheckoutContext();\n\n return (errorMessage?: string) =>\n setState((draft) => {\n draft.paymentStep.errorMessage = errorMessage;\n });\n}\n\nfunction useSetBillingAddress() {\n const [, setState] = useCheckoutContext();\n\n return (billingAddress?: BillingAddress) =>\n setState((draft) => {\n draft.paymentStep.billingAddress = billingAddress;\n });\n}\n\nfunction usePaymentState() {\n const [{ paymentStep }] = useCheckoutContext();\n return paymentStep;\n}\n\nexport function usePaymentStepModel() {\n const state = usePaymentState();\n\n return {\n ...state,\n setUseNewPaymentMethod: useSetUseNewPaymentMethod(),\n setErrorMessage: useSetErrorMessage(),\n setBillingAddress: useSetBillingAddress(),\n };\n}\n","import {\n BillingPeriod,\n DiscountType,\n Plan,\n SubscriptionPreviewDiscount,\n SubscriptionPreviewTaxDetails,\n DiscountDurationType,\n} from '@stigg/js-client-sdk';\nimport moment from 'moment';\nimport merge from 'lodash/merge';\nimport { DeepPartial } from '../../../types';\nimport { currencyPriceFormatter } from '../../utils/currencyUtils';\n\nexport type CheckoutLocalization = {\n changePlan: string;\n billingPeriodsTitle: string;\n addAddonText: string;\n newPaymentMethodText: string;\n newPaymentMethodCardTitle: string;\n newPaymentMethodBillingAddressTitle: string;\n summary: {\n title: string;\n planName: (params: { plan: Plan }) => string;\n addCouponCodeText: string;\n couponCodeTitle: string;\n addonsSectionTitle: string;\n discountsSectionTitle: string;\n onlyPayAsYouGoText: string;\n startsAtText: string;\n proratedTotalDueText: string;\n baseChargeText: string | ((params: { billingPeriod: BillingPeriod }) => string);\n totalText: string;\n totalDueText: string;\n totalBillingPeriodText: (params: { billingPeriod: BillingPeriod }) => string;\n discountText: (params: { discountDetails: SubscriptionPreviewDiscount; currency: string }) => string;\n appliedCreditsTitle: string;\n taxTitle: (params: { taxDetails: SubscriptionPreviewTaxDetails }) => string;\n checkoutSuccessText: string;\n payAsYouGoTooltipText: string;\n changesWillApplyAtEndOfBillingPeriod: string | ((params: { billingPeriodEnd: Date }) => string);\n creditsForUnusedTimeText: (params: { credits: string }) => string;\n };\n checkoutButton: {\n nextText: string;\n noChangesText: string;\n updateText: string;\n downgradeToFreeText: string;\n upgradeText: string;\n };\n downgradeToFree: {\n alertText: (params: { plan: Plan }) => string;\n freePlanHeader: (params: { plan: Plan }) => string;\n freePlanName: (params: { plan: Plan }) => string;\n freePlanPriceText: (params: { plan: Plan }) => string;\n paidPlanHeader: (params: { plan: Plan }) => string;\n paidPlanName: (params: { plan: Plan }) => string;\n paidPlanPriceText: (params: { plan: Plan; billingPeriod?: BillingPeriod }) => string;\n };\n};\n\nexport function getResolvedCheckoutLocalize(\n localizeOverride?: DeepPartial<CheckoutLocalization>,\n): CheckoutLocalization {\n const checkoutDefaultLocalization: CheckoutLocalization = {\n changePlan: 'Change',\n billingPeriodsTitle: 'Billing cycle',\n addAddonText: 'Add',\n newPaymentMethodText: 'New payment method',\n newPaymentMethodBillingAddressTitle: 'Billing address',\n newPaymentMethodCardTitle: 'Payment method',\n summary: {\n title: 'Order summary',\n planName: ({ plan }) => `${plan.displayName} plan`,\n addCouponCodeText: 'Add promotion code',\n couponCodeTitle: 'Promotion code',\n addonsSectionTitle: 'Add-ons',\n discountsSectionTitle: 'Discounts',\n onlyPayAsYouGoText: 'Varies by usage',\n startsAtText: 'Starts at ',\n proratedTotalDueText: 'Prorated charge today',\n baseChargeText: () => 'Base charge',\n totalText: 'Total',\n totalDueText: 'Total due today',\n totalBillingPeriodText: ({ billingPeriod }) => `Billed ${billingPeriod.toLowerCase()}`,\n appliedCreditsTitle: 'Applied credits',\n creditsForUnusedTimeText: ({ credits }) =>\n `Your account will be granted credits worth ${credits} for unused time, which will be automatically applied to future payments.`,\n discountText: ({ discountDetails, currency }) => {\n let discountText = '';\n if (discountDetails.type === DiscountType.Percentage) {\n discountText = `${discountDetails.value}% off`;\n } else {\n discountText = `${currencyPriceFormatter({ amount: discountDetails.value, currency })}`;\n }\n\n let discountTextPostfix = '';\n switch (discountDetails.durationType) {\n case DiscountDurationType.Once: {\n discountTextPostfix = ' once';\n break;\n }\n case DiscountDurationType.Repeating: {\n const prefix = discountDetails.type === DiscountType.Fixed ? ' per month' : '';\n discountTextPostfix = `${prefix} for ${discountDetails.durationInMonths} months`;\n\n break;\n }\n\n case DiscountDurationType.Forever:\n default: {\n discountTextPostfix = '';\n }\n }\n\n return `${discountText}${discountTextPostfix}`;\n },\n taxTitle: ({ taxDetails }) => `Tax (${taxDetails?.percentage}%)`,\n changesWillApplyAtEndOfBillingPeriod: ({ billingPeriodEnd }) =>\n `Your changes will take effect at the end of your current billing cycle on ${moment(billingPeriodEnd).format(\n 'MMMM D, YYYY',\n )}.`,\n checkoutSuccessText: 'Changes applied',\n payAsYouGoTooltipText: 'Billed according to actual usage',\n },\n checkoutButton: {\n nextText: 'Next',\n noChangesText: 'No changes',\n updateText: 'Update subscription',\n downgradeToFreeText: 'Cancel subscription',\n upgradeText: 'Subscribe',\n },\n downgradeToFree: {\n alertText: () => `We’re sorry to see you cancel your paid subscription 😭`,\n freePlanHeader: () => 'New plan',\n freePlanName: ({ plan }) => `${plan.displayName}`,\n freePlanPriceText: () => 'Free',\n paidPlanHeader: () => 'Current plan',\n paidPlanName: ({ plan }) => `${plan.displayName}`,\n paidPlanPriceText: ({ billingPeriod }) =>\n `Paid plan${billingPeriod ? `, billed ${billingPeriod.toLowerCase()}` : ''}`,\n },\n };\n\n return merge(checkoutDefaultLocalization, localizeOverride);\n}\n","import { CheckoutConfiguration } from '@stigg/js-client-sdk';\nimport { StiggTheme } from '../../../theme/types';\nimport { DeepPartial } from '../../../types';\n\nexport type CheckoutTheme = {\n primary: string;\n textColor: string;\n backgroundColor: string;\n borderColor: string;\n summaryBackgroundColor: string;\n paymentInputBackgroundColor?: string;\n paymentInputBorderColor?: string;\n paymentInputBorderRadius?: string;\n};\n\nconst defaultCheckoutTheme: CheckoutTheme = {\n primary: 'rgb(50, 126, 238)',\n textColor: 'rgb(0, 30, 108)',\n backgroundColor: 'rgb(255, 255, 255)',\n borderColor: 'rgb(235, 237, 243)',\n summaryBackgroundColor: 'rgb(109, 121, 144)',\n};\n\nexport function getResolvedCheckoutTheme(\n globalTheme: StiggTheme,\n themeOverride?: DeepPartial<CheckoutTheme>,\n // all the remote colors override theme colors, no need to use them here\n _remoteConfiguration?: CheckoutConfiguration | null,\n): CheckoutTheme {\n const { palette: globalPalette } = globalTheme || {};\n\n return {\n primary: themeOverride?.primary || globalPalette?.primary || defaultCheckoutTheme.primary,\n textColor: themeOverride?.textColor || globalPalette?.text.primary || defaultCheckoutTheme.textColor,\n backgroundColor:\n themeOverride?.backgroundColor || globalPalette?.backgroundPaper || defaultCheckoutTheme.backgroundColor,\n borderColor: themeOverride?.borderColor || globalPalette?.outlinedBorder || defaultCheckoutTheme.borderColor,\n summaryBackgroundColor:\n themeOverride?.summaryBackgroundColor ||\n globalPalette?.backgroundHighlight ||\n defaultCheckoutTheme.summaryBackgroundColor,\n paymentInputBackgroundColor: themeOverride?.paymentInputBackgroundColor,\n paymentInputBorderColor: themeOverride?.paymentInputBorderColor,\n paymentInputBorderRadius: themeOverride?.paymentInputBorderRadius,\n };\n}\n","import { produce } from 'immer';\nimport React, { useCallback, useContext, useEffect, useMemo, useState } from 'react';\nimport { BillableFeature, BillingPeriod, GetCheckoutStateResults } from '@stigg/js-client-sdk';\nimport { CustomizedTheme, SdkThemeProvider, useStiggTheme } from '../../theme/Theme';\nimport { DeepPartial } from '../../types';\nimport { mapCheckoutConfiguration, mapTypography } from '../common/mapExternalTheme';\nimport {\n AddonsStepState,\n getAddonsStepInitialState,\n getPaymentStepInitialState,\n getPlanStepInitialState,\n getProgressBarInitialState,\n PaymentStepState,\n PlanStepState,\n ProgressBarState,\n useLoadCheckout,\n WidgetState,\n} from './hooks';\nimport { CheckoutLocalization, getResolvedCheckoutLocalize } from './configurations/textOverrides';\nimport { CheckoutTheme, getResolvedCheckoutTheme } from './configurations/theme';\nimport { StiggTheme } from '../../theme/types';\nimport { BillingInformation, MockCheckoutStateCallback } from './types';\nimport { defaultCheckoutTypography } from './configurations/typography';\nimport { CheckoutSteps } from './configurations/steps';\n\nexport interface CheckoutContextState {\n checkout?: GetCheckoutStateResults | null;\n checkoutLocalization: CheckoutLocalization;\n stiggTheme: StiggTheme;\n theme: CheckoutTheme;\n resourceId?: string;\n promotionCode?: string;\n progressBar: ProgressBarState;\n planStep: PlanStepState;\n addonsStep: AddonsStepState;\n paymentStep: PaymentStepState;\n widgetState: WidgetState;\n isWidgetWatermarkEnabled: boolean;\n}\n\nexport const CheckoutContext = React.createContext<\n [CheckoutContextState, (updater: (state: CheckoutContextState) => void) => void] | null\n>(null);\n\nCheckoutContext.displayName = 'CheckoutContext';\n\nexport const useCheckoutContext = () => {\n const ctx = useContext(CheckoutContext);\n if (!ctx) {\n throw new Error(\n 'Could not find Checkout context; You need to wrap your checkout components in an <CheckoutProvider> component.',\n );\n }\n return ctx;\n};\n\nconst CheckoutContextProvider: React.FC<{ children: React.ReactNode; initialState: CheckoutContextState }> = ({\n children,\n initialState,\n}) => {\n const [state, innerSetState] = useState(initialState);\n\n useEffect(() => {\n innerSetState(initialState);\n }, [initialState]);\n\n const setState = useCallback(\n (updater: (state: CheckoutContextState) => void) => innerSetState((old) => produce(old, (draft) => updater(draft))),\n [innerSetState],\n );\n\n const [contextValue, setContextValue] = useMemo(() => [state, setState], [setState, state]);\n\n return <CheckoutContext.Provider value={[contextValue, setContextValue]}>{children}</CheckoutContext.Provider>;\n};\n\nexport type CheckoutProviderProps = {\n textOverrides?: DeepPartial<CheckoutLocalization>;\n theme?: DeepPartial<CheckoutTheme>;\n resourceId?: string;\n planId: string;\n preferredBillingPeriod?: BillingPeriod;\n billingCountryCode?: string;\n billableFeatures?: BillableFeature[];\n billingInformation?: BillingInformation;\n onMockCheckoutState?: MockCheckoutStateCallback;\n skipCheckoutSteps?: CheckoutSteps[];\n};\n\nexport function CheckoutProvider({\n children,\n textOverrides,\n theme,\n preferredBillingPeriod,\n billableFeatures,\n resourceId,\n planId,\n billingCountryCode,\n billingInformation,\n onMockCheckoutState,\n skipCheckoutSteps,\n}: {\n children: React.ReactNode;\n} & CheckoutProviderProps) {\n const { checkout, isLoading, isWidgetWatermarkEnabled } = useLoadCheckout({\n resourceId,\n planId,\n billingCountryCode,\n onMockCheckoutState,\n });\n const configuration: CustomizedTheme = checkout?.configuration\n ? mapCheckoutConfiguration(checkout.configuration)\n : { typography: mapTypography(defaultCheckoutTypography) };\n const globalTheme: StiggTheme = useStiggTheme(configuration);\n\n const initialState = useMemo(() => {\n const checkoutTheme = getResolvedCheckoutTheme(globalTheme, theme, checkout?.configuration);\n const checkoutLocalization = getResolvedCheckoutLocalize(textOverrides);\n const planStep = getPlanStepInitialState({\n preferredBillingPeriod,\n plan: checkout?.plan,\n activeSubscription: checkout?.activeSubscription,\n billingCountryCode,\n preconfiguredBillableFeatures: billableFeatures ?? [],\n });\n const addonsStep = getAddonsStepInitialState({\n plan: checkout?.plan,\n billingPeriod: planStep.billingPeriod,\n activeSubscription: checkout?.activeSubscription,\n });\n const paymentStep = getPaymentStepInitialState({\n customer: checkout?.customer,\n taxPercentage: billingInformation?.taxDetails?.taxPercentage,\n });\n const progressBar = getProgressBarInitialState({\n isLoading,\n skipCheckoutSteps: skipCheckoutSteps ?? [],\n plan: checkout?.plan,\n availableAddons: addonsStep.availableAddons,\n availableCharges: planStep.billableFeatures,\n preferredBillingPeriod,\n preconfiguredBillableFeatures: billableFeatures ?? [],\n });\n\n const initialState: CheckoutContextState = {\n checkout,\n checkoutLocalization,\n stiggTheme: globalTheme,\n theme: checkoutTheme,\n progressBar,\n planStep,\n addonsStep,\n paymentStep,\n resourceId: checkout?.resource?.id,\n widgetState: { readOnly: false, isValid: true, isLoadingCheckoutData: isLoading },\n isWidgetWatermarkEnabled,\n };\n\n return initialState;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n preferredBillingPeriod,\n billingCountryCode,\n checkout,\n isLoading,\n skipCheckoutSteps,\n billingInformation?.taxDetails?.taxPercentage,\n ]);\n\n return (\n <SdkThemeProvider key={checkout?.plan.id} componentTheme={configuration}>\n <CheckoutContextProvider initialState={initialState}>{children}</CheckoutContextProvider>\n </SdkThemeProvider>\n );\n}\n","import styled from '@emotion/styled/macro';\nimport Box from '@mui/material/Box';\nimport { mq } from '../common/mediaQuery';\n\nexport const CheckoutLayout = styled.div`\n margin: auto;\n min-height: 760px;\n max-width: 920px;\n display: flex;\n position: relative;\n flex-direction: column;\n align-items: center;\n\n background-color: ${({ theme }) => theme.stigg.palette.backgroundPaper};\n border: ${({ theme }) => `1px solid ${theme.stigg.palette.outlinedBorder}`};\n\n & * {\n box-sizing: border-box;\n }\n\n padding: 16px 16px;\n ${mq.md} {\n padding: 32px;\n width: calc(100% - 64px);\n border-radius: 10px;\n }\n`;\nexport const CheckoutContent = styled(Box)`\n display: flex;\n align-items: flex-start;\n gap: 32px;\n flex-wrap: wrap;\n width: 100%;\n\n flex-direction: column;\n ${mq.md} {\n flex-direction: row;\n }\n`;\n\nexport const CheckoutPanel = styled(Box)`\n display: flex;\n flex-direction: column;\n gap: 0;\n flex: 2;\n\n width: 100%;\n ${mq.md} {\n width: auto;\n }\n`;\n","import styled from '@emotion/styled/macro';\nimport LinearProgress, { linearProgressClasses } from '@mui/material/LinearProgress';\nimport Button, { buttonClasses } from '@mui/material/Button';\nimport { Icon } from '../../common/Icon';\n\nexport const StyledProgress = styled(LinearProgress, { shouldForwardProp: (prop) => !prop.startsWith('$') })<{\n $disabled?: boolean;\n}>(({ theme, $disabled }) => ({\n [`&.${linearProgressClasses.root}`]: {\n borderRadius: theme.stigg.border.radius,\n backgroundColor: theme.stigg.palette.outlinedBorder,\n },\n [`& .${linearProgressClasses.bar}`]: {\n backgroundColor: $disabled ? theme.stigg.palette.primaryLight : theme.stigg.palette.primary,\n },\n}));\n\nexport const StyledStepButton = styled(Button)(() => ({\n [`&.${buttonClasses.root}`]: {\n textTransform: 'none',\n lineHeight: 'inherit',\n justifyContent: 'flex-start',\n padding: '8px 4px',\n },\n}));\n\nexport const StyledIcon = styled(Icon, { shouldForwardProp: (prop) => !prop.startsWith('$') })<{\n $disabled?: boolean;\n $shouldFill?: boolean;\n}>(({ theme, $disabled, $shouldFill }) => ({\n circle: {\n stroke: $disabled ? theme.stigg.palette.primaryLight : theme.stigg.palette.primary,\n fill: $shouldFill ? ($disabled ? theme.stigg.palette.primaryLight : theme.stigg.palette.primary) : undefined,\n },\n}));\n","import React, { useEffect, useRef } from 'react';\nimport Grid from '@mui/material/Grid';\nimport Box from '@mui/material/Box';\nimport StepIcon from '@mui/material/StepIcon';\nimport { useCheckoutModel, useProgressBarModel } from '../hooks';\nimport { Typography } from '../../common/Typography';\nimport { StyledIcon, StyledProgress, StyledStepButton } from './CheckoutProgressBar.style';\nimport { Icons } from '../../common/Icon';\nimport { Skeleton } from '../components/Skeletons.style';\nimport { useIsScreenWiderThan } from '../../hooks/useIsScreenWiderThan';\n\nexport const CheckoutProgressBar = () => {\n const { progressBarState, setActiveStep, currentStep } = useProgressBarModel();\n const { widgetState } = useCheckoutModel();\n const isScreenWiderThanMd = useIsScreenWiderThan('md');\n const containerRef = useRef<HTMLElement>();\n const { readOnly, isLoadingCheckoutData } = widgetState;\n const { activeStep, completedSteps, steps } = progressBarState || {};\n const progress = ((activeStep + 1) * 100) / steps.length;\n\n const [previousStep, setPreviousStep] = React.useState(currentStep);\n useEffect(() => {\n if (!isScreenWiderThanMd) {\n if (containerRef.current && currentStep !== previousStep) {\n containerRef.current.scrollIntoView({ behavior: 'smooth' });\n }\n }\n setPreviousStep(currentStep);\n }, [currentStep, isScreenWiderThanMd, previousStep, setPreviousStep]);\n\n if (progressBarState.steps.length === 1) {\n return null;\n }\n\n return (\n <Box className=\"stigg-checkout-progress-container\" sx={{ width: '100%', mb: 3 }} ref={containerRef}>\n <StyledProgress variant=\"determinate\" value={progress} $disabled={readOnly} />\n <Grid container display=\"flex\">\n {steps.map(({ key, label }, index) => {\n const isCompleted = completedSteps.includes(index);\n const isDisabled =\n readOnly ||\n (index > activeStep && !isCompleted && !completedSteps.includes(index - 1)) ||\n (activeStep !== index && progressBarState.isDisabled);\n const checkedIcon: Icons = isDisabled ? 'OutlinedCheckedCircleDisabled' : 'OutlinedCheckedCircle';\n\n return (\n <Grid\n key={key}\n item\n display=\"flex\"\n flexDirection=\"row\"\n flex={isScreenWiderThanMd ? 1 : 'auto'}\n justifyContent=\"flex-start\">\n {isLoadingCheckoutData ? (\n <Skeleton width={120} height={20} style={{ marginTop: 8 }} />\n ) : (\n <StyledStepButton onClick={() => setActiveStep(index)} fullWidth disabled={isDisabled}>\n <Grid item display=\"flex\" flexDirection=\"row\" alignItems=\"center\" gap={1}>\n <StepIcon\n icon={\n <StyledIcon\n icon={isCompleted ? checkedIcon : 'OutlinedCircle'}\n $disabled={isDisabled}\n $shouldFill={isCompleted}\n />\n }\n />\n\n <Typography variant=\"h6\" color={isDisabled ? 'primary.main.light' : 'primary.main'}>\n {label}\n </Typography>\n </Grid>\n </StyledStepButton>\n )}\n </Grid>\n );\n })}\n </Grid>\n </Box>\n );\n};\n","import sortBy from 'lodash/sortBy';\nimport { useMemo } from 'react';\n\nimport { BillingModel, Price } from '@stigg/js-client-sdk';\n\nconst CHARGES_BILLING_MODEL_ORDER = [BillingModel.FlatFee, BillingModel.PerUnit, BillingModel.UsageBased];\n\nexport const sortCharges = (charges: Price[]) => {\n return sortBy(charges, [\n (charge) => CHARGES_BILLING_MODEL_ORDER.indexOf(charge.pricingModel),\n (charge) => charge.feature?.displayName,\n ]);\n};\n\nexport const useChargesSort = (charges: Price[]) => {\n return useMemo(() => sortCharges(charges), [charges]);\n};\n","import { useCheckoutContext } from '../CheckoutProvider';\n\nexport type PromotionCodeState = {\n promotionCode?: string;\n};\n\nfunction usePromotionCodeState() {\n const [{ promotionCode }] = useCheckoutContext();\n return promotionCode;\n}\n\nfunction useSetPromotionCode() {\n const [, setState] = useCheckoutContext();\n\n return (promotionCode: string) =>\n setState((draft) => {\n draft.promotionCode = promotionCode;\n });\n}\n\nexport function usePromotionCodeModel() {\n const promotionCode = usePromotionCodeState();\n\n return {\n promotionCode,\n setPromotionCode: useSetPromotionCode(),\n };\n}\n","<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g id=\"plus\">\n<path id=\"Shape\" d=\"M10 4.16666V15.8333\" stroke=\"#327EEE\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path id=\"Shape_2\" d=\"M4.16699 10H15.8337\" stroke=\"#327EEE\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n</svg>\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\n\nimport PlusIcon from '../../../assets/plus-icon.svg';\nimport { Typography } from '../../common/Typography';\nimport { Button } from '../components';\nimport { CheckoutLocalization } from '../configurations/textOverrides';\n\nconst StyledPlusIcon = styled(PlusIcon, { shouldForwardProp: (prop) => !prop.startsWith('$') })<{ $disabled: boolean }>`\n margin-right: 8px;\n path {\n stroke: ${({ theme, $disabled }) => ($disabled ? theme.stigg.palette.text.disabled : theme.stigg.palette.primary)};\n }\n`;\n\nexport type AddPromotionCodeButtonProps = {\n onAddClick: () => void;\n checkoutLocalization: CheckoutLocalization;\n disabled: boolean;\n};\n\nexport const AddPromotionCodeButton = ({ onAddClick, checkoutLocalization, disabled }: AddPromotionCodeButtonProps) => (\n <Button\n disabled={disabled}\n fullWidth\n className=\"stigg-checkout-summary-add-coupon-code-button\"\n sx={{\n textTransform: 'none',\n justifyContent: 'flex-start',\n color: disabled ? 'text.disabled' : 'primary.main',\n }}\n variant=\"text\"\n size=\"medium\"\n onClick={onAddClick}>\n <StyledPlusIcon $disabled={disabled} className=\"stigg-checkout-summary-add-coupon-code-button-icon\" />\n <Typography\n className=\"stigg-checkout-change-plan-button-text\"\n color={disabled ? 'disabled' : 'primary.main'}\n style={{ lineHeight: '24px' }}\n variant=\"h3\">\n {checkoutLocalization.summary.addCouponCodeText}\n </Typography>\n </Button>\n);\n","import React, { useState } from 'react';\n\nimport styled from '@emotion/styled/macro';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport Grid from '@mui/material/Grid';\n\nimport { Icon } from '../../common/Icon';\nimport { Typography } from '../../common/Typography';\nimport { Button, InputField } from '../components';\nimport { usePreviewSubscriptionAction } from '../hooks';\nimport { usePromotionCodeModel } from '../hooks/useCouponModel';\nimport { AddPromotionCodeButton } from './AddPromotionCodeButton';\nimport { PromotionCodeSectionProps } from './PromotionCodeSection';\n\nconst CouponCodeAddButton = styled(Button)`\n padding: 4px 10px;\n min-width: unset;\n border-radius: ${({ theme }) => theme.stigg.border.radius};\n display: flex;\n align-items: center;\n`;\n\nexport const AddPromotionCode = ({\n disabled,\n checkoutLocalization,\n onMockCheckoutPreview,\n}: PromotionCodeSectionProps) => {\n const { setPromotionCode: persistPromotionCode } = usePromotionCodeModel();\n const [showInput, setShowInput] = useState(false);\n const [promotionCode, setPromotionCode] = React.useState('');\n const [isLoading, setIsLoading] = React.useState(false);\n const [errorMessage, setErrorMessage] = React.useState('');\n const { previewSubscriptionAction } = usePreviewSubscriptionAction({ onMockCheckoutPreview });\n\n const handlePromotionCode = async () => {\n setIsLoading(true);\n setErrorMessage('');\n\n const { subscriptionPreview, errorMessage } = await previewSubscriptionAction({ promotionCode });\n\n if (!errorMessage && subscriptionPreview?.immediateInvoice?.discountDetails) {\n persistPromotionCode(promotionCode.toUpperCase());\n setShowInput(false);\n } else if (errorMessage) {\n setErrorMessage(errorMessage);\n }\n setIsLoading(false);\n };\n\n if (!showInput) {\n return (\n <AddPromotionCodeButton\n disabled={disabled}\n onAddClick={() => setShowInput(true)}\n checkoutLocalization={checkoutLocalization}\n />\n );\n }\n\n return (\n <Grid>\n <Typography variant=\"body1\" color={errorMessage ? 'error' : disabled ? 'disabled' : 'primary.main'}>\n {checkoutLocalization.summary.couponCodeTitle}\n </Typography>\n\n <InputField\n disabled={disabled}\n autoFocus\n variant=\"outlined\"\n fullWidth\n error={!!errorMessage}\n value={promotionCode}\n onChange={(e) => {\n setPromotionCode(e.target.value);\n }}\n inputProps={{ maxLength: 20 }}\n onKeyDown={(e: any) => {\n if (e.key === 'Enter') {\n void handlePromotionCode();\n e.preventDefault();\n }\n }}\n // eslint-disable-next-line react/jsx-no-duplicate-props\n InputProps={{\n endAdornment: (\n <CouponCodeAddButton\n variant=\"contained\"\n disabled={disabled}\n onClick={() => {\n void handlePromotionCode();\n }}>\n {isLoading ? (\n <CircularProgress size={18} sx={{ color: 'white' }} />\n ) : (\n <Icon style={{ display: 'flex' }} icon=\"ArrowForward\" />\n )}\n </CouponCodeAddButton>\n ),\n }}\n />\n {!!errorMessage && (\n <Typography variant=\"body1\" color=\"error\">\n {errorMessage}\n </Typography>\n )}\n </Grid>\n );\n};\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport Grid from '@mui/material/Grid';\nimport { Icon } from '../../common/Icon';\nimport { Typography } from '../../common/Typography';\nimport { Button } from '../components';\n\nconst AppliedCouponContainer = styled(Grid)`\n width: auto;\n display: inline-flex;\n align-items: center;\n flex-direction: row;\n gap: 8px;\n padding: 6px 8px;\n border-radius: ${({ theme }) => theme.stigg.border.radius};\n border: 1px solid ${({ theme }) => theme.stigg.palette.primary};\n`;\n\nexport const StyledIcon = styled(Icon, { shouldForwardProp: (prop) => prop !== 'style' })<{ $shouldFill?: boolean }>`\n display: flex;\n\n g {\n stroke: ${({ theme }) => theme.stigg.palette.primary};\n }\n\n path {\n fill: ${({ theme, $shouldFill }) => ($shouldFill ? theme.stigg.palette.primary : undefined)};\n }\n`;\n\nexport type AppliedPromotionCodeProps = {\n promotionCode: string;\n onClearPromotionCode: () => void;\n};\n\nexport const AppliedPromotionCode = ({ promotionCode, onClearPromotionCode }: AppliedPromotionCodeProps) => (\n <AppliedCouponContainer container>\n <Grid item display=\"flex\" gap={1} alignItems=\"center\">\n <StyledIcon icon=\"Coupon\" />\n <Typography variant=\"body1\" color=\"primary.main\" lineHeight=\"auto\">\n {promotionCode}\n </Typography>\n </Grid>\n <Grid item>\n <Button variant=\"text\" sx={{ minWidth: 'unset', padding: 0 }} onClick={onClearPromotionCode}>\n <StyledIcon icon=\"Close\" $shouldFill />\n </Button>\n </Grid>\n </AppliedCouponContainer>\n);\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { usePromotionCodeModel } from '../hooks/useCouponModel';\nimport { AddPromotionCode } from './AddPromotionCode';\nimport { AppliedPromotionCode } from './AppliedPromotionCode';\nimport { CheckoutLocalization } from '../configurations/textOverrides';\nimport { MockCheckoutPreviewCallback } from '../types';\n\nconst PromotionCodeSectionContainer = styled.div`\n margin: 16px 0;\n`;\n\nexport type PromotionCodeSectionProps = {\n disabled: boolean;\n checkoutLocalization: CheckoutLocalization;\n onMockCheckoutPreview?: MockCheckoutPreviewCallback;\n};\n\nexport const PromotionCodeSection = ({\n disabled,\n checkoutLocalization,\n onMockCheckoutPreview,\n}: PromotionCodeSectionProps) => {\n const { promotionCode, setPromotionCode } = usePromotionCodeModel();\n\n const onClearPromotionCode = () => {\n setPromotionCode('');\n };\n\n const content = promotionCode ? (\n <AppliedPromotionCode promotionCode={promotionCode} onClearPromotionCode={onClearPromotionCode} />\n ) : (\n <AddPromotionCode\n disabled={disabled}\n checkoutLocalization={checkoutLocalization}\n onMockCheckoutPreview={onMockCheckoutPreview}\n />\n );\n\n return <PromotionCodeSectionContainer>{content}</PromotionCodeSectionContainer>;\n};\n","import React from 'react';\nimport { StripeAddressElementChangeEvent } from '@stripe/stripe-js';\nimport Grid from '@mui/material/Grid';\nimport { BillingAddress } from '@stigg/js-client-sdk';\nimport { AddressElement, PaymentElement } from '@stripe/react-stripe-js';\nimport { Typography } from '../../../../common/Typography';\nimport { useCheckoutModel, usePaymentStepModel } from '../../../hooks';\nimport { CheckoutContainerProps } from '../../../CheckoutContainer';\n\nexport function StripePaymentForm({\n onBillingAddressChange,\n collectPhoneNumber,\n}: Pick<CheckoutContainerProps, 'onBillingAddressChange' | 'collectPhoneNumber'>) {\n const { checkoutState, checkoutLocalization, widgetState, setWidgetReadOnly } = useCheckoutModel();\n const { setBillingAddress } = usePaymentStepModel();\n const { customer, configuration } = checkoutState || {};\n const { readOnly } = widgetState;\n const shouldCollectPhoneNumber = !!(collectPhoneNumber ?? configuration?.content?.collectPhoneNumber);\n\n const handleAddressChange = (args: StripeAddressElementChangeEvent) => {\n if (!args.complete) {\n return;\n }\n\n const { postal_code: postalCode, ...addressFields } = args.value.address;\n const billingAddress: BillingAddress = {\n postalCode,\n ...addressFields,\n };\n\n setWidgetReadOnly(true);\n setBillingAddress(billingAddress);\n\n if (onBillingAddressChange) {\n const callExternalBillingAddressChanged = async () => {\n await onBillingAddressChange({ billingAddress });\n setWidgetReadOnly(false);\n };\n\n void callExternalBillingAddressChanged();\n } else {\n setWidgetReadOnly(false);\n }\n };\n\n return (\n <Grid flexDirection=\"column\" container gap={3} padding=\"16px\" sx={{ pointerEvents: readOnly ? 'none' : undefined }}>\n <Grid flexDirection=\"column\" container gap={2}>\n <Typography variant=\"h6\">{checkoutLocalization.newPaymentMethodBillingAddressTitle}</Typography>\n <AddressElement\n onChange={handleAddressChange}\n options={{\n mode: 'billing',\n fields: { phone: shouldCollectPhoneNumber ? 'always' : 'auto' },\n defaultValues: {\n ...(customer?.name && { name: customer.name }),\n },\n }}\n />\n </Grid>\n <Grid flexDirection=\"column\" container gap={2}>\n <Typography variant=\"h6\">{checkoutLocalization.newPaymentMethodCardTitle}</Typography>\n <PaymentElement\n onChange={() => {}}\n onReady={() => {}}\n options={{\n readOnly,\n terms: { card: 'never' },\n defaultValues: {\n billingDetails: {\n ...(customer?.name && { name: customer.name }),\n ...(customer?.email && { email: customer.email }),\n },\n },\n }}\n />\n </Grid>\n </Grid>\n );\n}\n","import { useEffect, useState } from 'react';\n\nimport { BillingVendorIdentifier } from '@stigg/js-client-sdk';\nimport { loadStripe, Stripe } from '@stripe/stripe-js';\n\nimport { useCheckoutModel } from '../../../hooks';\n\nexport function useStripeIntegration() {\n const [stripePromise, setStripePromise] = useState<Promise<Stripe | null> | null>(null);\n const { checkoutState } = useCheckoutModel();\n const { billingIntegration, setupSecret } = checkoutState || {};\n\n useEffect(() => {\n if (billingIntegration) {\n const { billingIdentifier, credentials } = billingIntegration;\n if (billingIdentifier !== BillingVendorIdentifier.Stripe) {\n console.error('Currently only stripe integration is supported');\n return;\n }\n\n const { accountId, publicKey } = credentials;\n setStripePromise(loadStripe(publicKey, { stripeAccount: accountId }));\n }\n }, [billingIntegration]);\n\n return { stripePromise, setupIntentClientSecret: setupSecret };\n}\n","import { ApplySubscription, PreviewSubscription } from '@stigg/js-client-sdk';\nimport { useCheckoutContext } from '../CheckoutProvider';\nimport { useCheckoutModel } from './useCheckoutModel';\nimport { useSubscriptionModel } from './useSubscriptionModel';\n\nexport function useSubscriptionState(): ApplySubscription | PreviewSubscription | undefined {\n const subscription = useSubscriptionModel();\n const [{ resourceId }] = useCheckoutContext();\n const { checkoutState } = useCheckoutModel();\n const { plan } = checkoutState || {};\n const addons = subscription.addons.map(({ addon, quantity }) => ({ addonId: addon.id, quantity }));\n\n if (!plan?.id) {\n return undefined;\n }\n\n return {\n resourceId,\n planId: plan.id,\n billingPeriod: subscription.billingPeriod,\n billableFeatures: subscription.billableFeatures,\n addons,\n promotionCode: subscription.promotionCode,\n billingCountryCode: subscription.billingCountryCode,\n };\n}\n","import { ApplySubscriptionResults, PaymentCollection } from '@stigg/js-client-sdk';\nimport { Stripe, StripeElements } from '@stripe/stripe-js';\n\ntype StripeElementsProps = {\n stripe: Stripe | null;\n elements: StripeElements | null;\n};\n\nconst FAILED_PAYMENT_COLLECTION_STATUSES = [PaymentCollection.Failed, PaymentCollection.Processing];\n\nexport async function handleStripeFormValidations({ elements }: Pick<StripeElementsProps, 'elements'>) {\n if (!elements) {\n const errorMessage = 'Stripe elements not initialized';\n console.error(errorMessage);\n return { success: false, errorMessage };\n }\n\n const { error: elementsError } = await elements.submit();\n\n if (elementsError) {\n console.log(elementsError.message);\n return { success: false, errorMessage: elementsError.message || '' };\n }\n\n return { success: true };\n}\n\nexport async function handleStripeNextAction({\n applySubscriptionResults,\n stripe,\n}: {\n applySubscriptionResults: ApplySubscriptionResults;\n stripe: Stripe | null;\n}) {\n const subscription = applySubscriptionResults?.subscription;\n const paymentIntentClientSecret = subscription?.latestInvoice?.paymentSecret;\n const paymentCollection = subscription?.paymentCollection;\n\n if (stripe && paymentIntentClientSecret && paymentCollection === PaymentCollection.ActionRequired) {\n const { error: NextActionError } = await stripe.handleNextAction({ clientSecret: paymentIntentClientSecret });\n if (NextActionError) {\n return { errorMessage: NextActionError.message || '' };\n }\n } else if (paymentCollection && FAILED_PAYMENT_COLLECTION_STATUSES.includes(paymentCollection)) {\n return { errorMessage: subscription?.latestInvoice?.errorMessage || 'An error occurred - try again later' };\n }\n\n return { subscription };\n}\n\nasync function handleStripeSetup({\n stripe,\n elements,\n clientSecret,\n}: {\n stripe: Stripe;\n elements: StripeElements;\n clientSecret: string;\n}) {\n let newPaymentMethodId: string | undefined;\n let setupErrorMessage: string | undefined;\n\n const { error: setupError } = await stripe.confirmSetup({\n elements,\n confirmParams: { return_url: window.location.href },\n redirect: 'if_required',\n });\n\n if (setupError) {\n if (setupError.type === 'card_error' || setupError.type === 'validation_error') {\n if (setupError.type === 'card_error') {\n // Set some error message\n setupErrorMessage = setupError.message || '';\n }\n } else {\n setupErrorMessage = 'An unexpected error occurred.';\n }\n } else {\n try {\n const { setupIntent } = await stripe.retrieveSetupIntent(clientSecret);\n if (setupIntent?.payment_method) {\n newPaymentMethodId = setupIntent.payment_method as string;\n }\n } catch (e) {\n setupErrorMessage = 'An unexpected error occurred.';\n console.error(e);\n }\n }\n\n return { newPaymentMethodId, setupErrorMessage };\n}\n\nexport async function handleNewPaymentMethod({\n stripe,\n elements,\n setupIntentClientSecret,\n}: {\n stripe: Stripe | null;\n elements: StripeElements | null;\n setupIntentClientSecret?: string;\n}): Promise<{ success: boolean; errorMessage?: string; paymentMethodId?: string }> {\n if (!stripe || !elements || !setupIntentClientSecret) {\n return { success: false };\n }\n\n const stripeFormValidationsResults = await handleStripeFormValidations({ elements });\n if (!stripeFormValidationsResults.success) {\n return { success: false, errorMessage: stripeFormValidationsResults.errorMessage };\n }\n\n const { newPaymentMethodId, setupErrorMessage } = await handleStripeSetup({\n stripe,\n elements,\n clientSecret: setupIntentClientSecret,\n });\n\n if (setupErrorMessage || !newPaymentMethodId) {\n return { success: false, errorMessage: setupErrorMessage };\n }\n\n return { success: true, paymentMethodId: newPaymentMethodId };\n}\n","import styled from '@emotion/styled/macro';\nimport Box from '@mui/material/Box';\nimport Color from 'color';\nimport React, { useEffect, useRef } from 'react';\nimport Lottie from 'react-lottie';\nimport animationData from '../../../assets/lottie/checkout-success.json';\nimport { Typography } from '../../common/Typography';\nimport { CheckoutLocalization } from '../configurations/textOverrides';\n\nexport const ANIMATION_DURATION = 5000;\n\nconst CheckoutSuccessContainer = styled(Box)`\n @keyframes blurFade {\n 0% {\n background-color: ${({ theme }) => Color(theme.stigg.palette.backgroundPaper).alpha(0).toString()};\n backdrop-filter: blur(0px);\n }\n 100% {\n background-color: ${({ theme }) => Color(theme.stigg.palette.backgroundPaper).alpha(0.9).toString()};\n backdrop-filter: blur(6.5px);\n }\n }\n\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n z-index: 5;\n background-color: ${({ theme }) => Color(theme.stigg.palette.backgroundPaper).alpha(0.9).toString()};\n animation: blurFade 2s ease-in forwards;\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n * rect {\n fill: transparent;\n }\n\n & path {\n stroke: ${({ theme }) => theme.stigg.palette.primary};\n }\n`;\n\nconst CheckoutSuccessText = styled(Typography)`\n @keyframes fadeIn {\n 0% {\n opacity: 0;\n }\n 75% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n }\n\n align-self: center;\n animation: fadeIn 5s ease-in forwards;\n`;\n\nexport function CheckoutSuccess({ checkoutLocalization }: { checkoutLocalization: CheckoutLocalization }) {\n const containerRef = useRef<HTMLDivElement>();\n useEffect(() => {\n if (containerRef.current) {\n containerRef.current.scrollIntoView({ behavior: 'smooth', block: 'center', inline: 'center' });\n }\n }, []);\n return (\n <CheckoutSuccessContainer className=\"stigg-checkout-success-container\" ref={containerRef}>\n <Lottie\n options={{ animationData, loop: false, autoplay: true }}\n width={350}\n height=\"auto\"\n style={{ display: 'flex', justifyContent: 'center' }}\n />\n <CheckoutSuccessText variant=\"h1\" color=\"primary.main\">\n {checkoutLocalization.summary.checkoutSuccessText}\n </CheckoutSuccessText>\n </CheckoutSuccessContainer>\n );\n}\n","import { ApplySubscription, ApplySubscriptionResults } from '@stigg/js-client-sdk';\nimport { useElements, useStripe } from '@stripe/react-stripe-js';\nimport { useStiggContext } from '../../../../..';\nimport { useCheckoutModel } from '../../../hooks';\nimport { usePaymentStepModel } from '../../../hooks/usePaymentStepModel';\nimport { useSubscriptionState } from '../../../hooks/useSubscriptionState';\nimport { CheckoutContainerProps, CheckoutResult } from '../../../CheckoutContainer';\nimport { handleNewPaymentMethod, handleStripeNextAction } from './stripe.utils';\nimport { ANIMATION_DURATION } from '../../../summary/CheckoutSuccess';\n\nconst delay = (ms: number) => new Promise((res) => setTimeout(res, ms));\n\nexport type HandleSubmitResult = { results?: ApplySubscriptionResults; success: boolean; errorMessage?: string };\n\nexport type UseSubmitProps = {\n onSuccess?: () => void;\n isMocked?: boolean;\n} & Pick<CheckoutContainerProps, 'onCheckout' | 'onCheckoutCompleted' | 'disableSuccessAnimation'>;\n\nexport function useSubmit({\n isMocked = false,\n onCheckout,\n onCheckoutCompleted,\n onSuccess,\n disableSuccessAnimation,\n}: UseSubmitProps) {\n const { stigg } = useStiggContext();\n const { useNewPaymentMethod } = usePaymentStepModel();\n const subscriptionState = useSubscriptionState();\n const { checkoutState, widgetState, setWidgetReadOnly } = useCheckoutModel();\n const { setupSecret: setupIntentClientSecret, customer } = checkoutState || {};\n const stripe = useStripe();\n const elements = useElements();\n\n const handleSubmit = async (e: any): Promise<HandleSubmitResult> => {\n e.preventDefault();\n\n if (!subscriptionState) {\n return { success: false, errorMessage: 'Unexpected error, please contact support.' };\n }\n\n let success = true;\n let errorMessage: string | undefined;\n let usedStiggCheckoutAction = false;\n let paymentMethodId: string | undefined;\n\n setWidgetReadOnly(true);\n\n if (!isMocked && useNewPaymentMethod) {\n const paymentMethodResults = await handleNewPaymentMethod({ elements, stripe, setupIntentClientSecret });\n if (!paymentMethodResults.success) {\n errorMessage = paymentMethodResults.errorMessage;\n success = false;\n } else {\n paymentMethodId = paymentMethodResults.paymentMethodId;\n }\n }\n\n const checkoutParams: ApplySubscription = { ...subscriptionState, paymentMethodId };\n\n const checkoutAction = async (params: ApplySubscription): Promise<CheckoutResult> => {\n usedStiggCheckoutAction = true;\n\n try {\n const applySubscriptionResults = await stigg.applySubscription(params);\n\n const nextActionResults = await handleStripeNextAction({ applySubscriptionResults, stripe });\n\n return {\n success: !nextActionResults.errorMessage,\n errorMessage: nextActionResults.errorMessage,\n results: applySubscriptionResults,\n };\n } catch (e) {\n console.error(e);\n errorMessage = (e as any)?.message;\n return { success: false, errorMessage };\n }\n };\n\n let checkoutResults: ApplySubscriptionResults | undefined;\n\n if (success) {\n if (onCheckout) {\n const externalCheckoutResults = await onCheckout({\n customerId: customer!.id,\n checkoutParams,\n checkoutAction,\n });\n if (externalCheckoutResults.errorMessage) {\n errorMessage = externalCheckoutResults.errorMessage;\n }\n\n if (!usedStiggCheckoutAction && externalCheckoutResults.results && externalCheckoutResults.success) {\n const nextActionResults = await handleStripeNextAction({\n applySubscriptionResults: externalCheckoutResults.results,\n stripe,\n });\n\n if (nextActionResults.errorMessage) {\n errorMessage = nextActionResults.errorMessage;\n success = false;\n }\n }\n\n success = success && externalCheckoutResults.success && !errorMessage;\n checkoutResults = externalCheckoutResults.results;\n } else {\n const checkoutActionResults = await checkoutAction(checkoutParams);\n if (!checkoutActionResults.success && checkoutActionResults.errorMessage) {\n errorMessage = checkoutActionResults.errorMessage;\n }\n success = checkoutActionResults.success && !errorMessage;\n checkoutResults = checkoutActionResults.results;\n }\n }\n\n setWidgetReadOnly(false);\n\n if (success && onSuccess) {\n onSuccess();\n\n if (!disableSuccessAnimation) {\n await delay(ANIMATION_DURATION); // Wait for animation to finish\n }\n }\n\n await onCheckoutCompleted({ success, error: errorMessage });\n\n return { results: checkoutResults, success: !errorMessage, errorMessage };\n };\n\n return { handleSubmit, isLoading: !!widgetState?.readOnly };\n}\n","import React, { FC, PropsWithChildren } from 'react';\nimport { Skeleton } from '../../components/Skeletons.style';\n\nexport const WithSkeleton: FC<\n PropsWithChildren<{\n isLoading: boolean;\n width?: number | string;\n height?: number | string;\n }>\n> = ({ isLoading, width = 50, height = 16, children }) => {\n if (isLoading) {\n return <Skeleton width={width} height={height} />;\n }\n\n return <>{children}</>;\n};\n","/* eslint-disable react/no-unused-prop-types */\nimport React from 'react';\nimport moment from 'moment';\nimport { Box } from '@mui/material';\nimport { BillingModel, BillingPeriod, Plan, Subscription, SubscriptionPreviewV2 } from '@stigg/js-client-sdk';\nimport { Typography } from '../../../common/Typography';\nimport { currencyPriceFormatter } from '../../../utils/currencyUtils';\nimport { CheckoutLocalization } from '../../configurations/textOverrides';\nimport { WithSkeleton } from './WithSkeleton';\n\nexport type CheckoutCaptionProps = {\n subscriptionPreview?: SubscriptionPreviewV2 | null;\n isFetchingSubscriptionPreview: boolean;\n activeSubscription?: Subscription | null;\n plan?: Plan;\n checkoutLocalization: CheckoutLocalization;\n billingPeriod: BillingPeriod;\n};\n\nconst RemainingCreditsCaption = ({\n subscriptionPreview,\n isFetchingSubscriptionPreview,\n checkoutLocalization,\n}: CheckoutCaptionProps) => {\n const { immediateInvoice } = subscriptionPreview || {};\n if (!immediateInvoice?.proration?.netAmount?.amount || immediateInvoice?.proration?.netAmount?.amount >= 0) {\n return null;\n }\n\n const positiveAmount = immediateInvoice.proration.netAmount.amount * -1;\n\n const credits = currencyPriceFormatter({\n amount: positiveAmount,\n currency: immediateInvoice.proration.netAmount.currency,\n minimumFractionDigits: 2,\n });\n\n return (\n <Typography variant=\"body1\" style={{ marginTop: 14 }} className=\"stigg-checkout-summary-captions-remaining-credits\">\n <WithSkeleton isLoading={isFetchingSubscriptionPreview} width=\"100%\">\n {checkoutLocalization.summary.creditsForUnusedTimeText({ credits })}\n </WithSkeleton>\n </Typography>\n );\n};\n\nconst ScheduledUpdatesCaption = ({\n subscriptionPreview,\n activeSubscription,\n isFetchingSubscriptionPreview,\n checkoutLocalization,\n}: CheckoutCaptionProps) => {\n if (!subscriptionPreview?.hasScheduledUpdates || !activeSubscription?.currentBillingPeriodEnd) {\n return null;\n }\n\n const { currentBillingPeriodEnd } = activeSubscription;\n const changesWillApplyText =\n typeof checkoutLocalization.summary.changesWillApplyAtEndOfBillingPeriod === 'function'\n ? checkoutLocalization.summary.changesWillApplyAtEndOfBillingPeriod({ billingPeriodEnd: currentBillingPeriodEnd })\n : checkoutLocalization.summary.changesWillApplyAtEndOfBillingPeriod;\n\n return (\n <Typography variant=\"body1\" style={{ marginTop: 14 }} className=\"stigg-checkout-summary-captions-scheduled-updates\">\n <WithSkeleton isLoading={isFetchingSubscriptionPreview} width=\"100%\">\n {changesWillApplyText}\n </WithSkeleton>\n </Typography>\n );\n};\n\nconst NextBillingCaption = ({\n subscriptionPreview,\n activeSubscription,\n plan,\n isFetchingSubscriptionPreview,\n billingPeriod,\n}: CheckoutCaptionProps) => {\n const { recurringInvoice } = subscriptionPreview || {};\n if (!subscriptionPreview || !recurringInvoice?.total.amount) {\n return null;\n }\n\n const currentBillingPeriodEnd = subscriptionPreview.hasScheduledUpdates\n ? activeSubscription?.currentBillingPeriodEnd\n : subscriptionPreview?.billingPeriodRange.end;\n\n const total = currencyPriceFormatter({\n ...recurringInvoice.total,\n minimumFractionDigits: 2,\n });\n\n const hasUnitBasedPricing = plan?.pricePoints.some((price) => price.pricingModel === BillingModel.UsageBased);\n const hasNonUnitBasedPricing = plan?.pricePoints.some((price) => price.pricingModel !== BillingModel.UsageBased);\n\n let text = 'We will bill you ';\n let totalAmountText = `${total} `;\n\n if (hasUnitBasedPricing) {\n if (!hasNonUnitBasedPricing) {\n totalAmountText = 'for';\n } else {\n totalAmountText += '+';\n }\n\n totalAmountText += ' applicable usage-based charges for this subscription ';\n }\n\n let nextBillingDate;\n let billingPeriodText;\n\n switch (billingPeriod) {\n case BillingPeriod.Monthly:\n billingPeriodText = 'month';\n nextBillingDate = `the ${moment(currentBillingPeriodEnd).format('Do')}`;\n break;\n case BillingPeriod.Annually:\n billingPeriodText = 'year';\n nextBillingDate = moment(currentBillingPeriodEnd).format('MMMM Do');\n break;\n default: {\n break;\n }\n }\n\n text += `${totalAmountText}for this subscription every ${billingPeriodText} on ${nextBillingDate}, unless you cancel.`;\n\n return (\n <Typography variant=\"body1\" style={{ marginTop: 14 }} className=\"stigg-checkout-summary-captions-next-billing\">\n <WithSkeleton isLoading={isFetchingSubscriptionPreview} width=\"100%\">\n {text}\n </WithSkeleton>\n </Typography>\n );\n};\n\nexport function CheckoutCaptions(props: CheckoutCaptionProps) {\n return (\n <Box className=\"stigg-checkout-summary-captions\">\n <RemainingCreditsCaption {...props} />\n\n <ScheduledUpdatesCaption {...props} />\n\n <NextBillingCaption {...props} />\n </Box>\n );\n}\n","import { BillingModel, BillingPeriod, Currency, Price, TiersMode } from '@stigg/js-client-sdk';\nimport { currencyPriceFormatter } from '../../../utils/currencyUtils';\nimport { isBulkTiers, isQuantityInFirstTier } from '../../../utils/priceTierUtils';\nimport { numberFormatter } from '../../../utils/numberUtils';\n\nexport type GetPriceBreakdownStringProps = {\n totalAmount: number;\n quantity: number;\n tiersMode: Price['tiersMode'];\n tiers: Price['tiers'];\n currency: Currency;\n pricingModel: BillingModel;\n billingPeriod: BillingPeriod;\n blockSize?: number | null;\n priceAmount?: Price['amount'];\n};\n\nexport function formatPricePerUnit({\n quantity,\n totalAmount,\n pricingModel,\n billingPeriod,\n currency,\n blockSize,\n priceAmount,\n}: GetPriceBreakdownStringProps) {\n const isPerUnit = pricingModel === BillingModel.PerUnit;\n const aBlockSize = blockSize || 1;\n const featureUnits =\n quantity && (isPerUnit || quantity > 1) ? `${numberFormatter(quantity)} ${aBlockSize > 1 ? 'for' : 'x'} ` : '';\n const billingPeriodString = billingPeriod === BillingPeriod.Annually ? ' x 12 months' : '';\n\n const unitPrice = (priceAmount || totalAmount / quantity) / (billingPeriod === BillingPeriod.Annually ? 12 : 1);\n const formattedUnitPrice = currencyPriceFormatter({\n amount: unitPrice,\n currency,\n minimumFractionDigits: 2,\n });\n const formattedTotalPrice = currencyPriceFormatter({\n amount: totalAmount,\n currency,\n minimumFractionDigits: 2,\n });\n\n return `${featureUnits}${formattedUnitPrice}${billingPeriodString} ${\n billingPeriodString || featureUnits ? ` = ${formattedTotalPrice}` : ''\n }`;\n}\n\nexport function getPriceBreakdownString(params: GetPriceBreakdownStringProps) {\n const { totalAmount, quantity, tiersMode, tiers, currency } = params;\n if (isBulkTiers(tiers) || (tiersMode === TiersMode.Graduated && !isQuantityInFirstTier(tiers, quantity))) {\n const formattedTotalPrice = currencyPriceFormatter({\n amount: totalAmount,\n currency,\n minimumFractionDigits: 2,\n });\n return `${numberFormatter(quantity)} for ${formattedTotalPrice}`;\n }\n\n return formatPricePerUnit(params);\n}\n","import React from 'react';\nimport isNil from 'lodash/isNil';\nimport { Price, PriceTierFragment } from '@stigg/js-client-sdk';\nimport { Typography } from '../../../common/Typography';\nimport { calculateTierPriceGraduated } from '../../../utils/priceTierUtils';\nimport { formatPricePerUnit } from './getPriceBreakdownString';\nimport { LineItemContainer, LineItemRow } from './LineItems';\nimport { numberFormatter } from '../../../utils/numberUtils';\n\nfunction getLabel(tiers: PriceTierFragment[], index: number): string {\n const { unitPrice, upTo } = tiers[index];\n if (!unitPrice) {\n return '';\n }\n\n if (index === 0) {\n return `First ${upTo}`;\n }\n\n const previousTierUpTo = tiers[index - 1].upTo || 0;\n const startUnit = previousTierUpTo + 1;\n\n return isNil(upTo)\n ? `${numberFormatter(startUnit)} and above`\n : `Next ${numberFormatter(startUnit)} to ${numberFormatter(upTo)}`;\n}\n\nexport type GraduatedPriceBreakdownProps = {\n price: Price;\n unitQuantity: number;\n};\n\nexport function GraduatedPriceBreakdown({ price, unitQuantity }: GraduatedPriceBreakdownProps) {\n const tiers = price.tiers || [];\n\n const { breakdown } = calculateTierPriceGraduated(tiers, unitQuantity);\n\n if (breakdown.length === 1) {\n return null;\n }\n\n return (\n <>\n {breakdown.map(({ unitQuantity, amount }, index) => (\n <LineItemContainer>\n <LineItemRow key={index} style={{ alignItems: 'flex-start' }}>\n <Typography variant=\"body1\" color=\"tertiary\" style={{ whiteSpace: 'nowrap' }}>\n {getLabel(tiers, index)}\n </Typography>\n <Typography variant=\"body1\" color=\"tertiary\" style={{ whiteSpace: 'nowrap' }}>\n {formatPricePerUnit({\n quantity: unitQuantity,\n totalAmount: amount,\n currency: price.currency,\n pricingModel: price.pricingModel,\n billingPeriod: price.billingPeriod,\n tiers: price.tiers,\n tiersMode: price.tiersMode,\n blockSize: price.blockSize,\n priceAmount: price.amount,\n })}\n </Typography>\n </LineItemRow>\n </LineItemContainer>\n ))}\n </>\n );\n}\n","import { ChevronRight } from 'react-feather';\nimport styled from 'styled-components';\n\nexport const CollapsableSectionIcon = styled(ChevronRight)<{ $isOpen: boolean; $size?: number }>`\n height: ${({ $size = 24 }) => `${$size}px`};\n width: ${({ $size = 24 }) => `${$size}px`};\n transition: all 0.2s ease-in;\n ${({ $isOpen }) => $isOpen && `transform: rotate(90deg)`}\n`;\n","import React, { ReactNode, useState } from 'react';\nimport styled from '@emotion/styled/macro';\nimport Grid from '@mui/material/Grid';\nimport {\n BillingModel,\n Price,\n SubscriptionPreviewInvoice,\n SubscriptionPreviewV2,\n TiersMode,\n} from '@stigg/js-client-sdk';\nimport isEmpty from 'lodash/isEmpty';\nimport isNil from 'lodash/isNil';\nimport Link from '@mui/material/Link';\nimport { IconButton } from '@mui/material';\nimport Collapse from '@mui/material/Collapse';\nimport { Typography } from '../../../common/Typography';\nimport { currencyPriceFormatter } from '../../../utils/currencyUtils';\nimport { WithSkeleton } from './WithSkeleton';\nimport { Skeleton } from '../../components/Skeletons.style';\nimport { CheckoutLocalization } from '../../configurations/textOverrides';\nimport { Icon } from '../../../common/Icon';\nimport { InformationTooltip } from '../../../common/InformationTooltip';\nimport { getPriceBreakdownString } from './getPriceBreakdownString';\nimport { GraduatedPriceBreakdown } from './GraduatedPriceBreakdown';\nimport { CollapsableSectionIcon } from '../../../common/CollapsableSectionIcon';\nimport { calculateTierPrice } from '../../../utils/priceTierUtils';\nimport { useIsScreenWiderThan } from '../../../hooks/useIsScreenWiderThan';\nimport { mq } from '../../../common/mediaQuery';\n\nexport const LineItemContainer = styled.div`\n & + & {\n margin-top: 16px;\n }\n`;\n\nexport const NestedBreakdownContainer = styled.div`\n margin-top: 16px;\n margin-left: 16px;\n`;\n\nexport const LineItemRow = styled.div`\n display: flex;\n flex-direction: column;\n gap: 16px;\n\n ${mq.lg} {\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n }\n`;\n\nconst PayAsYouGoPriceTooltip = ({ checkoutLocalization }: { checkoutLocalization: CheckoutLocalization }) => {\n const title = <Typography variant=\"body1\">{checkoutLocalization.summary.payAsYouGoTooltipText}</Typography>;\n return (\n <InformationTooltip placement=\"left\" title={title}>\n <Icon icon=\"PayAsYouGoCharge\" style={{ display: 'flex' }} />\n </InformationTooltip>\n );\n};\n\nexport const BilledPriceLineItem = ({\n checkoutLocalization,\n label,\n quantity,\n price,\n}: {\n checkoutLocalization: CheckoutLocalization;\n label: string;\n quantity: number;\n price: Price;\n}) => {\n const isScreenWiderThanLg = useIsScreenWiderThan('lg');\n const [isNestedBreakdownOpen, setIsNestedBreakdownOpen] = useState(false);\n const toggleNestedBreakdown = () => setIsNestedBreakdownOpen((prev) => !prev);\n\n const isPayAsYouGo = price.pricingModel === BillingModel.UsageBased;\n const totalAmount = price.isTieredPrice\n ? calculateTierPrice(price, quantity)\n : (price.amount || 0) * Math.ceil(quantity / (price.blockSize || 1));\n\n let nestedBreakdown: ReactNode;\n const shouldShowGraduatedPriceBreakdown =\n price.tiersMode === TiersMode.Graduated &&\n !!price.tiers &&\n !isEmpty(price.tiers) &&\n !isNil(price.tiers[0].upTo) &&\n quantity > price.tiers[0].upTo;\n\n if (shouldShowGraduatedPriceBreakdown) {\n nestedBreakdown = <GraduatedPriceBreakdown price={price} unitQuantity={quantity} />;\n }\n\n let title: ReactNode = (\n <Typography variant=\"body1\" color=\"secondary\">\n {label}\n </Typography>\n );\n\n if (nestedBreakdown) {\n title = (\n <Link onClick={toggleNestedBreakdown} underline=\"none\" style={{ cursor: 'pointer' }}>\n {title}\n </Link>\n );\n }\n\n return (\n <LineItemContainer className=\"stigg-checkout-summary-base-charges-container\">\n <LineItemRow style={{ alignItems: 'flex-start' }}>\n <Grid item display=\"flex\" gap={0.5} style={{ whiteSpace: isScreenWiderThanLg ? 'nowrap' : 'break-spaces' }}>\n {title}\n {nestedBreakdown && (\n <IconButton onClick={toggleNestedBreakdown} sx={{ padding: 0 }}>\n <CollapsableSectionIcon $isOpen={isNestedBreakdownOpen} $size={16} />\n </IconButton>\n )}\n </Grid>\n <Grid item display=\"flex\" gap={1} alignItems=\"center\">\n {isPayAsYouGo && <PayAsYouGoPriceTooltip checkoutLocalization={checkoutLocalization} />}\n <Typography\n variant=\"body1\"\n color=\"secondary\"\n style={{ whiteSpace: isScreenWiderThanLg ? 'nowrap' : 'break-spaces' }}>\n {getPriceBreakdownString({\n totalAmount,\n quantity,\n currency: price.currency,\n pricingModel: price.pricingModel,\n billingPeriod: price.billingPeriod,\n tiers: price.tiers,\n tiersMode: price.tiersMode,\n blockSize: price.blockSize,\n priceAmount: price.amount,\n })}\n {isPayAsYouGo && ' / unit'}\n </Typography>\n </Grid>\n </LineItemRow>\n {nestedBreakdown && (\n <Collapse in={isNestedBreakdownOpen}>\n <NestedBreakdownContainer>{nestedBreakdown}</NestedBreakdownContainer>\n </Collapse>\n )}\n </LineItemContainer>\n );\n};\n\nexport const FreeChargeLineItem = ({ label }: { label: string }) => {\n return (\n <LineItemContainer>\n <LineItemRow style={{ alignItems: 'flex-end' }}>\n <Grid item>\n <Typography variant=\"body1\" color=\"secondary\">\n {label}\n </Typography>\n </Grid>\n <Grid item display=\"flex\" gap={1} alignItems=\"center\">\n <Typography variant=\"body1\" color=\"secondary\" style={{ wordBreak: 'break-word' }}>\n Free\n </Typography>\n </Grid>\n </LineItemRow>\n </LineItemContainer>\n );\n};\n\nexport const DiscountLineItem = ({\n subscriptionPreview,\n isFetchingSubscriptionPreview,\n checkoutLocalization,\n}: {\n subscriptionPreview: SubscriptionPreviewV2;\n isFetchingSubscriptionPreview: boolean;\n checkoutLocalization: CheckoutLocalization;\n}) => {\n const { immediateInvoice, recurringInvoice } = subscriptionPreview;\n const { discount, discountDetails } = recurringInvoice || {};\n if (!discount || !discountDetails) {\n return null;\n }\n\n return (\n <LineItemContainer>\n <LineItemRow>\n <Typography variant=\"body1\" color=\"secondary\">\n {checkoutLocalization.summary.discountText({\n discountDetails,\n currency: immediateInvoice.total.currency,\n })}\n </Typography>\n <Typography variant=\"body1\" color=\"secondary\">\n {isFetchingSubscriptionPreview ? (\n <Skeleton width={50} height={16} />\n ) : (\n currencyPriceFormatter({\n amount: discount.amount,\n currency: discount.currency,\n minimumFractionDigits: 2,\n })\n )}\n </Typography>\n </LineItemRow>\n </LineItemContainer>\n );\n};\n\nexport const AppliedCreditsLineItem = ({\n subscriptionPreview,\n isFetchingSubscriptionPreview,\n checkoutLocalization,\n}: {\n subscriptionPreview: SubscriptionPreviewV2 | null;\n isFetchingSubscriptionPreview: boolean;\n checkoutLocalization: CheckoutLocalization;\n}) => {\n const { immediateInvoice } = subscriptionPreview || {};\n const { credits } = immediateInvoice || {};\n\n if (!credits || !credits.used || credits.used.amount <= 0) {\n return null;\n }\n\n return (\n <LineItemContainer>\n <LineItemRow>\n <Typography variant=\"body1\" color=\"secondary\">\n {checkoutLocalization.summary.appliedCreditsTitle}\n </Typography>\n <Typography variant=\"body1\" color=\"secondary\">\n <WithSkeleton isLoading={isFetchingSubscriptionPreview}>\n {currencyPriceFormatter({\n amount: -1 * credits.used.amount,\n currency: credits.used.currency,\n minimumFractionDigits: 2,\n })}\n </WithSkeleton>\n </Typography>\n </LineItemRow>\n </LineItemContainer>\n );\n};\n\nexport const TaxLineItem = ({\n tax,\n taxDetails,\n isFetchingSubscriptionPreview,\n checkoutLocalization,\n}: {\n isFetchingSubscriptionPreview: boolean;\n checkoutLocalization: CheckoutLocalization;\n} & Pick<SubscriptionPreviewInvoice, 'tax' | 'taxDetails'>) => {\n if (!taxDetails || !tax || tax?.amount <= 0) {\n return null;\n }\n\n return (\n <LineItemContainer>\n <LineItemRow>\n <Typography variant=\"body1\" color=\"secondary\">\n {checkoutLocalization.summary.taxTitle({ taxDetails })}\n </Typography>\n <Typography variant=\"body1\" color=\"secondary\">\n <WithSkeleton isLoading={isFetchingSubscriptionPreview}>\n {currencyPriceFormatter({ amount: tax?.amount, currency: tax?.currency, minimumFractionDigits: 2 })}\n </WithSkeleton>\n </Typography>\n </LineItemRow>\n </LineItemContainer>\n );\n};\n","import React, { useState } from 'react';\nimport partition from 'lodash/partition';\nimport styled from '@emotion/styled/macro';\nimport Box from '@mui/material/Box';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport Divider from '@mui/material/Divider';\nimport Grid from '@mui/material/Grid';\nimport Paper from '@mui/material/Paper';\nimport { BillingModel } from '@stigg/js-client-sdk';\nimport { PoweredByStigg } from '../../common/PoweredByStigg';\nimport { Typography } from '../../common/Typography';\nimport { useChargesSort } from '../../hooks/useChargeSort';\nimport { currencyPriceFormatter } from '../../utils/currencyUtils';\nimport { Button } from '../components';\nimport {\n useCheckoutModel,\n useProgressBarModel,\n usePreviewSubscription,\n useSubscriptionModel,\n usePaymentStepModel,\n} from '../hooks';\nimport { PromotionCodeSection } from '../promotionCode';\nimport { useSubmit } from '../steps/payment/stripe';\nimport { CheckoutContainerProps } from '../CheckoutContainer';\nimport { CheckoutCaptions } from './components/CheckoutCaptions';\nimport {\n AppliedCreditsLineItem,\n BilledPriceLineItem,\n DiscountLineItem,\n FreeChargeLineItem,\n LineItemContainer,\n LineItemRow,\n TaxLineItem,\n} from './components/LineItems';\nimport { WithSkeleton } from './components/WithSkeleton';\nimport { Icon } from '../../common/Icon';\nimport { CheckoutLocalization } from '../configurations/textOverrides';\nimport { CheckoutSuccess } from './CheckoutSuccess';\nimport { getFeatureDisplayNameText } from '../../utils/getFeatureName';\nimport { mq } from '../../common/mediaQuery';\n\nexport const SummaryContainer = styled(Box)`\n width: 100%;\n max-width: 470px;\n flex: 1.5;\n`;\n\nexport const SummaryCard = styled(Paper)`\n background: ${({ theme }) => theme.stigg.palette.backgroundHighlight};\n padding: 16px;\n\n ${mq.md} {\n border-radius: 10px;\n }\n`;\n\nSummaryCard.defaultProps = {\n elevation: 0,\n};\n\nconst SummaryTitle = styled(Typography)`\n margin-bottom: 16px;\n font-weight: 500;\n`;\n\nconst StyledDivider = styled(Divider)`\n margin: 16px 0;\n`;\n\nconst TotalDueText = styled(Typography)`\n margin-bottom: 8px;\n`;\n\nfunction resolveCheckoutButtonText({\n isLastStep,\n checkoutHasChanges,\n isFreeDowngrade,\n checkoutLocalization,\n isPlanUpdate,\n}: {\n isLastStep?: boolean;\n checkoutHasChanges: boolean;\n isFreeDowngrade: boolean;\n checkoutLocalization: CheckoutLocalization;\n isPlanUpdate?: boolean;\n}) {\n if (!isLastStep) {\n return checkoutLocalization.checkoutButton.nextText;\n }\n\n if (!checkoutHasChanges) {\n return checkoutLocalization.checkoutButton.noChangesText;\n }\n\n if (isPlanUpdate) {\n return checkoutLocalization.checkoutButton.updateText;\n }\n\n if (isFreeDowngrade) {\n return checkoutLocalization.checkoutButton.downgradeToFreeText;\n }\n\n return checkoutLocalization.checkoutButton.upgradeText;\n}\n\nexport const CheckoutSummary = ({\n onCheckout,\n onCheckoutCompleted,\n disablePromotionCode,\n disableSuccessAnimation,\n isFreeDowngrade,\n onMockCheckoutPreview,\n isWidgetWatermarkEnabled,\n}: CheckoutContainerProps & { isFreeDowngrade: boolean; isWidgetWatermarkEnabled: boolean }) => {\n const [isCheckoutCompletedSuccessfully, setIsCheckoutCompletedSuccessfully] = useState(false);\n const { setErrorMessage } = usePaymentStepModel();\n const progressBar = useProgressBarModel();\n const subscription = useSubscriptionModel();\n const { checkoutState, checkoutLocalization } = useCheckoutModel();\n const { plan, activeSubscription } = checkoutState || {};\n const planPrices = useChargesSort(\n plan?.pricePoints?.filter((price) => price.billingPeriod === subscription.billingPeriod) || [],\n );\n const [baseCharges, usageCharges] = partition(planPrices, (price) => price.pricingModel === BillingModel.FlatFee);\n const [baseCharge] = baseCharges || [];\n const isLastStep = isFreeDowngrade || (progressBar.isCheckoutComplete && progressBar.isLastStep);\n\n const { subscriptionPreview, isFetchingSubscriptionPreview } = usePreviewSubscription({ onMockCheckoutPreview });\n\n const { handleSubmit, isLoading } = useSubmit({\n isMocked: !!onMockCheckoutPreview, // This is a hack to make the submit button work with mocked data\n disableSuccessAnimation,\n onCheckout,\n onCheckoutCompleted,\n onSuccess: () => {\n setIsCheckoutCompletedSuccessfully(true);\n progressBar.markStepAsCompleted(progressBar.progressBarState.activeStep);\n },\n });\n\n const handleCheckout = async (e: any) => {\n if (isCheckoutCompletedSuccessfully) {\n return;\n }\n\n const { errorMessage } = (await handleSubmit(e)) || {};\n if (errorMessage) {\n setErrorMessage(errorMessage);\n setIsCheckoutCompletedSuccessfully(false);\n } else {\n setErrorMessage(undefined);\n }\n };\n\n const onCheckoutClick = async (e: any): Promise<void> => {\n if (isLoading) {\n return;\n }\n\n if (isLastStep) {\n await handleCheckout(e);\n } else {\n progressBar.goNext();\n }\n };\n\n const { immediateInvoice, recurringInvoice } = subscriptionPreview || {};\n const checkoutHasChanges =\n !!subscriptionPreview && (!!immediateInvoice?.proration || !!subscriptionPreview.hasScheduledUpdates);\n const showPromotionCodeLine = !disablePromotionCode && !isFreeDowngrade;\n const showDiscountLine = !!recurringInvoice?.discountDetails && !isFreeDowngrade;\n const hasDiscounts = showPromotionCodeLine || showDiscountLine;\n\n const hasPayAsYouGoCharges = usageCharges.some((price) => price.pricingModel === BillingModel.UsageBased);\n const onlyPayAsYouGoCharges =\n hasPayAsYouGoCharges &&\n !baseCharge &&\n usageCharges.every((price) => price.pricingModel === BillingModel.UsageBased);\n\n const baseChargeLabel =\n typeof checkoutLocalization.summary.baseChargeText === 'function'\n ? checkoutLocalization.summary.baseChargeText({ billingPeriod: subscription.billingPeriod })\n : checkoutLocalization.summary.baseChargeText;\n\n return (\n <SummaryContainer>\n <SummaryCard>\n <SummaryTitle variant=\"h3\">{checkoutLocalization.summary.title}</SummaryTitle>\n\n <Grid\n className=\"stigg-checkout-summary-plan-title-container\"\n display=\"flex\"\n flexDirection=\"row\"\n alignItems=\"center\"\n marginY={2}>\n <Typography variant=\"h6\" color=\"primary\" style={{ paddingRight: '8px' }}>\n {checkoutLocalization.summary.planName({ plan: plan! })}\n </Typography>\n <StyledDivider className=\"stigg-checkout-summary-divider\" sx={{ flex: 1, margin: '0 !important' }} />\n </Grid>\n\n {baseCharge && (\n <BilledPriceLineItem\n checkoutLocalization={checkoutLocalization}\n label={baseChargeLabel}\n quantity={1}\n price={baseCharge}\n />\n )}\n {!baseCharge && isFreeDowngrade ? <FreeChargeLineItem label={baseChargeLabel} /> : null}\n\n <Grid item className=\"stigg-checkout-summary-usage-charges-container\">\n {usageCharges.map((price) => {\n const priceBillableFeature = subscription.billableFeatures?.find(\n (billableFeature) => billableFeature.featureId === price.feature?.featureId,\n );\n\n return (\n <BilledPriceLineItem\n checkoutLocalization={checkoutLocalization}\n key={price.feature?.featureId}\n label={getFeatureDisplayNameText(\n price.feature?.displayName || '',\n price.feature?.units,\n price.feature?.unitsPlural,\n )}\n quantity={priceBillableFeature?.quantity || 1}\n price={price}\n />\n );\n })}\n </Grid>\n\n {!!subscription.addons?.length && (\n <>\n <Grid display=\"flex\" flexDirection=\"row\" alignItems=\"center\" marginY={2}>\n <Typography variant=\"h6\" color=\"primary\" style={{ paddingRight: '8px' }}>\n {checkoutLocalization.summary.addonsSectionTitle}\n </Typography>\n <StyledDivider className=\"stigg-checkout-summary-divider\" sx={{ flex: 1, margin: '0 !important' }} />\n </Grid>\n {subscription.addons.map((addon) => {\n const addonPrice = addon.addon.pricePoints?.find(\n (price) => price.billingPeriod === subscription.billingPeriod,\n );\n\n if (!addonPrice) return null;\n\n const addonQuantity = addon.quantity && addon.quantity > 0 ? addon.quantity : 1;\n\n return (\n <BilledPriceLineItem\n checkoutLocalization={checkoutLocalization}\n key={addon?.addon?.id}\n label={addon.addon.displayName}\n quantity={addonQuantity}\n price={addonPrice}\n />\n );\n })}\n </>\n )}\n\n {!hasDiscounts && <StyledDivider className=\"stigg-checkout-summary-divider\" />}\n {hasDiscounts && (\n <Grid display=\"flex\" flexDirection=\"row\" alignItems=\"center\" marginY={2}>\n <Typography variant=\"h6\" color=\"primary\" style={{ paddingRight: '8px' }}>\n {checkoutLocalization.summary.discountsSectionTitle}\n </Typography>\n <StyledDivider className=\"stigg-checkout-summary-divider\" sx={{ flex: 1, margin: '0 !important' }} />\n </Grid>\n )}\n\n {showPromotionCodeLine && (\n <PromotionCodeSection\n disabled={isLoading || isFetchingSubscriptionPreview}\n checkoutLocalization={checkoutLocalization}\n onMockCheckoutPreview={onMockCheckoutPreview}\n />\n )}\n\n {showDiscountLine && (\n <DiscountLineItem\n subscriptionPreview={subscriptionPreview!}\n isFetchingSubscriptionPreview={isFetchingSubscriptionPreview}\n checkoutLocalization={checkoutLocalization}\n />\n )}\n\n {hasDiscounts && <StyledDivider className=\"stigg-checkout-summary-divider\" />}\n\n <TaxLineItem\n tax={recurringInvoice?.tax}\n taxDetails={recurringInvoice?.taxDetails}\n isFetchingSubscriptionPreview={isFetchingSubscriptionPreview}\n checkoutLocalization={checkoutLocalization}\n />\n\n {!isFreeDowngrade ? (\n <>\n <LineItemRow style={{ marginTop: 16 }}>\n <Grid display=\"flex\" flexDirection=\"column\" container>\n <Grid item display=\"flex\" justifyContent=\"space-between\">\n <Typography variant=\"h6\">{checkoutLocalization.summary.totalText}</Typography>\n <Typography variant=\"h6\">\n <WithSkeleton isLoading={isFetchingSubscriptionPreview}>\n {onlyPayAsYouGoCharges ? checkoutLocalization.summary.onlyPayAsYouGoText : null}\n {!onlyPayAsYouGoCharges && hasPayAsYouGoCharges\n ? checkoutLocalization.summary.startsAtText\n : null}\n {!onlyPayAsYouGoCharges\n ? currencyPriceFormatter({\n amount: 0,\n ...recurringInvoice?.total,\n minimumFractionDigits: 2,\n })\n : null}\n </WithSkeleton>\n </Typography>\n </Grid>\n <Grid item>\n <Typography variant=\"body1\" color=\"secondary\">\n {checkoutLocalization.summary.totalBillingPeriodText({ billingPeriod: subscription.billingPeriod })}\n </Typography>\n </Grid>\n </Grid>\n </LineItemRow>\n <StyledDivider className=\"stigg-checkout-summary-divider\" />\n </>\n ) : null}\n\n {immediateInvoice?.proration?.hasProrations &&\n immediateInvoice?.subTotal &&\n immediateInvoice?.subTotal.amount > 0 ? (\n <LineItemContainer>\n <LineItemRow>\n <Typography variant=\"body1\" color=\"secondary\">\n {checkoutLocalization.summary.proratedTotalDueText}\n </Typography>\n <Typography variant=\"body1\" color=\"secondary\">\n <WithSkeleton isLoading={isFetchingSubscriptionPreview}>\n {currencyPriceFormatter({\n amount: immediateInvoice?.subTotal?.amount + (immediateInvoice?.tax?.amount || 0),\n currency: immediateInvoice?.subTotal.currency,\n minimumFractionDigits: 2,\n })}\n </WithSkeleton>\n </Typography>\n </LineItemRow>\n </LineItemContainer>\n ) : null}\n\n <AppliedCreditsLineItem\n subscriptionPreview={subscriptionPreview}\n isFetchingSubscriptionPreview={isFetchingSubscriptionPreview}\n checkoutLocalization={checkoutLocalization}\n />\n\n <LineItemContainer>\n <LineItemRow>\n <TotalDueText variant=\"h6\">{checkoutLocalization.summary.totalDueText}</TotalDueText>\n <TotalDueText variant=\"h6\">\n <WithSkeleton isLoading={isFetchingSubscriptionPreview}>\n {currencyPriceFormatter({ amount: 0, ...immediateInvoice?.total, minimumFractionDigits: 2 })}\n </WithSkeleton>\n </TotalDueText>\n </LineItemRow>\n </LineItemContainer>\n\n <CheckoutCaptions\n plan={plan}\n activeSubscription={activeSubscription}\n subscriptionPreview={subscriptionPreview}\n isFetchingSubscriptionPreview={isFetchingSubscriptionPreview}\n checkoutLocalization={checkoutLocalization}\n billingPeriod={subscription.billingPeriod}\n />\n\n <Button\n $success={isCheckoutCompletedSuccessfully}\n $error={isLastStep && isFreeDowngrade}\n disabled={\n isLoading ||\n isFetchingSubscriptionPreview ||\n progressBar.progressBarState.isDisabled ||\n (isLastStep && !checkoutHasChanges)\n }\n className=\"stigg-checkout-summary-cta-button\"\n sx={{ textTransform: 'none', borderRadius: '10px', marginTop: '24px', height: '36px' }}\n variant=\"contained\"\n size=\"medium\"\n onClick={(e: any) => {\n void onCheckoutClick(e);\n }}\n fullWidth>\n <Typography\n className=\"stigg-checkout-summary-cta-button-text\"\n variant=\"h3\"\n color=\"white\"\n style={{ display: 'flex' }}>\n {isCheckoutCompletedSuccessfully ? (\n <Icon icon=\"Check\" style={{ display: 'contents' }} />\n ) : isLoading || isFetchingSubscriptionPreview ? (\n <CircularProgress size={20} sx={{ color: 'white' }} />\n ) : (\n resolveCheckoutButtonText({\n isLastStep,\n checkoutHasChanges,\n isFreeDowngrade,\n checkoutLocalization,\n isPlanUpdate: !!activeSubscription && activeSubscription?.plan.id === plan?.id,\n })\n )}\n </Typography>\n </Button>\n </SummaryCard>\n <PoweredByStigg\n source=\"checkout\"\n showWatermark={isWidgetWatermarkEnabled}\n style={{ marginTop: 8, display: 'flex', justifyContent: 'center' }}\n />\n {!disableSuccessAnimation && isCheckoutCompletedSuccessfully && (\n <CheckoutSuccess checkoutLocalization={checkoutLocalization} />\n )}\n </SummaryContainer>\n );\n};\n","import React from 'react';\nimport { PoweredByStigg } from '../../common/PoweredByStigg';\nimport { SummaryCard, SummaryContainer } from './CheckoutSummary';\nimport { FlexedSkeleton, Skeleton, SkeletonsContainer } from '../components/Skeletons.style';\n\nexport const CheckoutSummarySkeleton = ({ isWidgetWatermarkEnabled }: { isWidgetWatermarkEnabled: boolean }) => {\n return (\n <SummaryContainer>\n <SummaryCard>\n <SkeletonsContainer $flexDirection=\"column\" $gap={24}>\n <Skeleton width={120} height={20} />\n\n <Skeleton width={120} height={20} />\n\n <Skeleton width={120} height={20} />\n\n <Skeleton width={120} height={20} />\n </SkeletonsContainer>\n\n <SkeletonsContainer $flexDirection=\"column\" $gap={24} marginTop={5}>\n <Skeleton height={20} />\n\n <Skeleton height={20} />\n\n <Skeleton height={20} />\n </SkeletonsContainer>\n\n <FlexedSkeleton flex={1} marginTop={5}>\n <Skeleton height={34} />\n </FlexedSkeleton>\n </SummaryCard>\n <PoweredByStigg\n source=\"checkout\"\n showWatermark={isWidgetWatermarkEnabled}\n style={{ marginTop: 8, display: 'flex', justifyContent: 'center' }}\n />\n </SummaryContainer>\n );\n};\n","import styled from '@emotion/styled/macro';\nimport Grid from '@mui/material/Grid';\n\nimport { Button } from '../../components';\nimport { mq } from '../../../common/mediaQuery';\n\nexport const CheckoutAddonsContainer = styled(Grid)`\n width: 100%;\n gap: 8px;\n`;\n\nexport const AddonListItemContainer = styled(Grid)`\n display: flex;\n flex-direction: column;\n gap: 16px;\n\n ${mq.md} {\n gap: 0;\n flex-direction: row;\n justify-content: space-between;\n height: 80px;\n align-items: center;\n }\n`;\n\nexport const TrashButton = styled(Button)`\n min-width: unset;\n width: 41px;\n height: 41px;\n padding: 0;\n`;\n","import React, { useEffect, useState } from 'react';\n\nimport Grid from '@mui/material/Grid';\nimport { Addon, BillingPeriod, SubscriptionAddon } from '@stigg/js-client-sdk';\n\nimport { Icon } from '../../../common/Icon';\nimport { Typography } from '../../../common/Typography';\nimport { currencyPriceFormatter } from '../../../utils/currencyUtils';\nimport { Button, InputField } from '../../components';\nimport { useAddonsStepModel } from '../../hooks/useAddonsStepModel';\nimport { usePlanStepModel } from '../../hooks/usePlanStepModel';\nimport { AddonListItemContainer, CheckoutAddonsContainer, TrashButton } from './CheckoutAddonsStep.style';\nimport { CheckoutLocalization } from '../../configurations/textOverrides';\nimport { useCheckoutModel, useProgressBarModel } from '../../hooks';\nimport { ON_WHEEL_BLUR } from '../../../utils/onWheelBlur';\nimport { useIsScreenWiderThan } from '../../../hooks/useIsScreenWiderThan';\n\ntype UseAddonsStepModel = ReturnType<typeof useAddonsStepModel>;\n\ntype AddonListItemProps = {\n addon: Addon;\n addonState?: SubscriptionAddon;\n initialAddonState?: SubscriptionAddon;\n billingPeriod: BillingPeriod;\n setAddon: UseAddonsStepModel['setAddon'];\n removeAddon: UseAddonsStepModel['removeAddon'];\n checkoutLocalization: CheckoutLocalization;\n onAddonsValidationChange: (params: { addonId: string; isValid: boolean }) => void;\n isValid: boolean;\n};\n\nfunction AddonListItem({\n addon,\n billingPeriod,\n addonState,\n initialAddonState,\n setAddon,\n removeAddon,\n checkoutLocalization,\n onAddonsValidationChange,\n isValid,\n}: AddonListItemProps) {\n const isScreenWiderThanLg = useIsScreenWiderThan('lg');\n const addonPrice = addon.pricePoints.find((pricePoint) => pricePoint.billingPeriod === billingPeriod);\n const isAdded = !!addonState;\n const hasChanges =\n (!!addonState && !!initialAddonState && addonState.quantity !== initialAddonState.quantity) ||\n (!!initialAddonState && !addonState);\n\n const handleQuantityChange = (quantity: number | null) => {\n if (!quantity || quantity <= 0) {\n onAddonsValidationChange({ addonId: addon.id, isValid: false });\n // Reset the input value to null\n // @ts-ignore\n setAddon(addon, quantity ?? null);\n return;\n }\n\n onAddonsValidationChange({ addonId: addon.id, isValid: true });\n setAddon(addon, quantity);\n };\n\n const handleUndo = () => {\n if (initialAddonState) {\n setAddon(addon, initialAddonState.quantity);\n } else {\n removeAddon(addon.id);\n }\n\n onAddonsValidationChange({ addonId: addon.id, isValid: true });\n };\n\n return (\n <AddonListItemContainer container>\n <Grid item>\n <Typography variant=\"h6\" lineHeight=\"24px\">\n {addon.displayName}\n </Typography>\n {!!addonPrice && (\n <Typography variant=\"body1\" lineHeight=\"20px\" color=\"secondary\">\n {`${currencyPriceFormatter({\n amount: addonPrice.amount!,\n currency: addonPrice.currency,\n minimumFractionDigits: 2,\n })}/${billingPeriod === BillingPeriod.Annually ? 'year' : 'month'}`}\n </Typography>\n )}\n </Grid>\n <Grid item sx={{ gap: '16px' }} container={!isScreenWiderThanLg}>\n {hasChanges && (\n <Button variant=\"text\" size=\"small\" sx={{ padding: '8px', minWidth: 'unset' }} onClick={handleUndo}>\n <Typography color=\"primary.main\" variant=\"body1\">\n Undo\n </Typography>\n </Button>\n )}\n {isAdded && (\n <>\n <InputField\n id={`${addon.id}-input`}\n type=\"number\"\n onWheel={ON_WHEEL_BLUR}\n sx={isScreenWiderThanLg ? { marginX: 2, width: 120 } : { flex: 1 }}\n value={addonState?.quantity ?? ''}\n error={!isValid}\n helperText={!isValid ? 'Minimum 1' : undefined}\n FormHelperTextProps={{ sx: { margin: '4px' } }}\n onChange={(event) => handleQuantityChange(event?.target?.value ? Number(event?.target?.value) : null)}\n />\n <TrashButton\n color=\"error\"\n onClick={() => {\n removeAddon(addon.id);\n onAddonsValidationChange({ addonId: addon.id, isValid: true });\n }}>\n <Icon icon=\"Trash\" style={{ display: 'flex' }} />\n </TrashButton>\n </>\n )}\n {!isAdded && (\n <Button sx={{ paddingX: '22px', paddingY: '8px' }} onClick={() => handleQuantityChange(1)}>\n <Typography color=\"primary.main\" variant=\"body1\">\n {checkoutLocalization.addAddonText}\n </Typography>\n </Button>\n )}\n </Grid>\n </AddonListItemContainer>\n );\n}\n\nexport function CheckoutAddonsStep() {\n const { checkoutLocalization, setIsValid } = useCheckoutModel();\n const { billingPeriod } = usePlanStepModel();\n const { setIsDisabled } = useProgressBarModel();\n const { initialAddons, addons, availableAddons, setAddon, removeAddon } = useAddonsStepModel();\n const [addonsValidation, setAddonsValidation] = useState(\n availableAddons?.reduce<Record<string, boolean>>((acc, curr) => {\n acc[curr.id] = true;\n return acc;\n }, {}) || {},\n );\n\n useEffect(() => {\n const isDisabled = Object.values(addonsValidation).some((x) => !x);\n setIsDisabled(isDisabled);\n setIsValid(!isDisabled);\n }, [addonsValidation, setIsDisabled, setIsValid]);\n\n return (\n <CheckoutAddonsContainer container>\n {availableAddons?.map((addon) => {\n const addonState = addons.find((x) => x.addon.id === addon.id);\n const initialAddonState = initialAddons?.find((x) => x.addon.id === addon.id);\n const isValid = addonsValidation[addon.id];\n\n return (\n <AddonListItem\n key={addon.id}\n addon={addon}\n billingPeriod={billingPeriod}\n addonState={addonState}\n initialAddonState={initialAddonState}\n setAddon={setAddon}\n removeAddon={removeAddon}\n checkoutLocalization={checkoutLocalization}\n onAddonsValidationChange={({ addonId, isValid }: { addonId: string; isValid: boolean }) =>\n setAddonsValidation({ ...addonsValidation, [addonId]: isValid })\n }\n isValid={isValid}\n />\n );\n })}\n </CheckoutAddonsContainer>\n );\n}\n","import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport Grid from '@mui/material/Grid';\n\nexport const PaymentMethodContainer = styled(Grid, { shouldForwardProp: (prop) => !prop.startsWith('$') })<{\n $disabled?: boolean;\n}>`\n padding: 8px;\n border-radius: 10px;\n border: 1px solid ${({ theme }) => theme.stigg.palette.outlinedBorder};\n cursor: ${({ $disabled }) => ($disabled ? 'not-allowed' : 'pointer')};\n opacity: ${({ $disabled }) => ($disabled ? 0.6 : 1)};\n`;\n\nexport const NewPaymentMethodContainer = styled(PaymentMethodContainer)<{ $hideBorders?: boolean }>`\n flex-direction: column;\n align-items: unset;\n ${({ $hideBorders }) =>\n $hideBorders &&\n css`\n border: none;\n padding: 0;\n `}\n`;\n\nexport const PaymentMethodLayoutContainer = styled(Grid)`\n display: flex;\n align-items: center;\n flex: 1;\n gap: 12px;\n`;\n\nexport const PaymentMethodTextContainer = styled(Grid)`\n display: flex;\n flex-direction: column;\n`;\n","import React from 'react';\n\nimport Collapse from '@mui/material/Collapse';\nimport Grid from '@mui/material/Grid';\nimport Radio from '@mui/material/Radio';\nimport { Customer } from '@stigg/js-client-sdk';\n\nimport { Typography } from '../../../common/Typography';\nimport {\n NewPaymentMethodContainer,\n PaymentMethodContainer,\n PaymentMethodLayoutContainer,\n PaymentMethodTextContainer,\n} from './PaymentMethods.style';\nimport { StripePaymentForm } from './stripe';\nimport { CheckoutLocalization } from '../../configurations/textOverrides';\nimport { CheckoutContainerProps } from '../../CheckoutContainer';\n\nexport type PaymentMethodLayoutProps = {\n checked: boolean;\n text: React.ReactNode;\n subtitle?: React.ReactNode;\n readOnly?: boolean;\n};\n\nexport type PaymentMethodProps = Pick<Customer, 'paymentMethodDetails'> &\n Pick<PaymentMethodLayoutProps, 'checked' | 'readOnly'> & { onSelect: () => void };\n\nexport type NewPaymentMethodProps = Pick<PaymentMethodLayoutProps, 'checked' | 'readOnly'> & {\n onSelect: () => void;\n checkoutLocalization: CheckoutLocalization;\n hasExistingPaymentMethod: boolean;\n} & Pick<CheckoutContainerProps, 'onBillingAddressChange' | 'collectPhoneNumber'>;\n\nfunction PaymentMethodLayout({ checked, text, subtitle, readOnly }: PaymentMethodLayoutProps) {\n return (\n <PaymentMethodLayoutContainer>\n <Radio checked={checked} disabled={readOnly} />\n <PaymentMethodTextContainer container>\n <Grid item>{text}</Grid>\n {subtitle && <Grid item>{subtitle}</Grid>}\n </PaymentMethodTextContainer>\n </PaymentMethodLayoutContainer>\n );\n}\n\nexport function ExistingPaymentMethod({ checked, paymentMethodDetails, readOnly, onSelect }: PaymentMethodProps) {\n if (!paymentMethodDetails) {\n return null;\n }\n const { last4Digits, expirationMonth, expirationYear } = paymentMethodDetails;\n\n return (\n <PaymentMethodContainer item onClick={onSelect} $disabled={readOnly}>\n <PaymentMethodLayout\n checked={checked}\n readOnly={readOnly}\n text={<Typography variant=\"h6\">{`Card ending in ${last4Digits}`}</Typography>}\n subtitle={\n !!expirationMonth &&\n !!expirationYear && (\n <Typography variant=\"body1\">{`Expires ${expirationMonth\n .toString()\n .padStart(2, '0')}/${expirationYear}`}</Typography>\n )\n }\n />\n </PaymentMethodContainer>\n );\n}\n\nexport function NewPaymentMethod({\n hasExistingPaymentMethod,\n checked,\n onSelect,\n readOnly,\n checkoutLocalization,\n onBillingAddressChange,\n collectPhoneNumber,\n}: NewPaymentMethodProps) {\n return (\n <NewPaymentMethodContainer item $hideBorders={!hasExistingPaymentMethod} onClick={onSelect} $disabled={readOnly}>\n {hasExistingPaymentMethod && (\n <PaymentMethodLayout\n checked={checked}\n readOnly={readOnly}\n text={<Typography variant=\"h6\">{checkoutLocalization.newPaymentMethodText}</Typography>}\n />\n )}\n <Collapse in={checked}>\n <StripePaymentForm onBillingAddressChange={onBillingAddressChange} collectPhoneNumber={collectPhoneNumber} />\n </Collapse>\n </NewPaymentMethodContainer>\n );\n}\n","import React from 'react';\nimport styled from '@emotion/styled';\nimport Alert from '@mui/material/Alert';\nimport Grid from '@mui/material/Grid';\nimport { useCheckoutModel, usePaymentStepModel } from '../../hooks';\nimport { ExistingPaymentMethod, NewPaymentMethod } from './PaymentMethods';\nimport { Typography } from '../../../common/Typography';\nimport { CheckoutContainerProps } from '../../CheckoutContainer';\n\nconst PaymentContainer = styled(Grid)`\n display: flex;\n flex-direction: column;\n gap: 24px;\n`;\n\nexport function PaymentStep({\n onBillingAddressChange,\n collectPhoneNumber,\n}: Pick<CheckoutContainerProps, 'onBillingAddressChange' | 'collectPhoneNumber'>) {\n const { checkoutState, checkoutLocalization, widgetState } = useCheckoutModel();\n const { customer } = checkoutState || {};\n const { errorMessage, useNewPaymentMethod, setUseNewPaymentMethod } = usePaymentStepModel();\n const { readOnly } = widgetState;\n\n const handleOnSelect = (openNewPaymentMethod: boolean) => {\n if (readOnly) {\n return;\n }\n\n setUseNewPaymentMethod(openNewPaymentMethod);\n };\n\n return (\n <PaymentContainer container>\n {!!errorMessage && (\n <Alert severity=\"error\" sx={{ alignItems: 'center' }}>\n <Typography overrideColor=\"inherit\">{errorMessage}</Typography>\n </Alert>\n )}\n <ExistingPaymentMethod\n readOnly={readOnly}\n checked={!useNewPaymentMethod}\n paymentMethodDetails={customer?.paymentMethodDetails}\n onSelect={() => handleOnSelect(false)}\n />\n <NewPaymentMethod\n hasExistingPaymentMethod={!!customer?.paymentMethodDetails}\n readOnly={readOnly}\n checked={useNewPaymentMethod}\n checkoutLocalization={checkoutLocalization}\n onSelect={() => handleOnSelect(true)}\n onBillingAddressChange={onBillingAddressChange}\n collectPhoneNumber={collectPhoneNumber}\n />\n </PaymentContainer>\n );\n}\n","import React from 'react';\nimport Button, { ButtonProps } from '@mui/material/Button';\nimport { Typography } from '../../common/Typography';\nimport { CheckoutLocalization } from '../configurations/textOverrides';\n\nexport const ChangePlanButton = ({\n onClick,\n checkoutLocalization,\n size,\n}: {\n onClick: () => void;\n checkoutLocalization: CheckoutLocalization;\n size: ButtonProps['size'];\n}) => {\n return (\n <Button\n className=\"stigg-checkout-change-plan-button\"\n sx={{ textTransform: 'none' }}\n variant=\"text\"\n size={size}\n onClick={onClick}>\n <Typography\n className=\"stigg-checkout-change-plan-button-text\"\n color=\"primary.main\"\n variant=\"h3\"\n style={{ lineHeight: '24px' }}>\n {checkoutLocalization.changePlan}\n </Typography>\n </Button>\n );\n};\n","import React from 'react';\n\nimport Box from '@mui/material/Box';\nimport Divider from '@mui/material/Divider';\n\nimport { Typography } from '../../common/Typography';\nimport { useCheckoutModel } from '../hooks/useCheckoutModel';\nimport { CheckoutContainerProps } from '../CheckoutContainer';\nimport { ChangePlanButton } from '../components/ChangePlanButton';\n\ntype PlanHeaderProps = {\n allowChangePlan?: boolean;\n} & Pick<CheckoutContainerProps, 'onChangePlan'>;\n\nexport function PlanHeader({ allowChangePlan = false, onChangePlan }: PlanHeaderProps) {\n const { checkoutState, checkoutLocalization } = useCheckoutModel();\n const { plan } = checkoutState || {};\n\n return (\n <>\n <Box sx={{ marginBottom: '16px' }}>\n <Typography variant=\"body1\" color=\"disabled\" style={{ opacity: 0.6, marginBottom: '8px' }}>\n Selected plan\n </Typography>\n\n <Box sx={{ display: 'flex', justifyContent: 'space-between' }}>\n <Typography variant=\"h1\">{plan?.displayName}</Typography>\n\n {allowChangePlan && onChangePlan && (\n <ChangePlanButton\n onClick={() => {\n onChangePlan({ currentPlan: plan });\n }}\n checkoutLocalization={checkoutLocalization}\n size=\"medium\"\n />\n )}\n </Box>\n </Box>\n <Divider className=\"stigg-checkout-plan-header-divider\" />\n </>\n );\n}\n","import { BillingPeriod } from '@stigg/js-client-sdk';\n\nexport function formatBillingPeriod(billingPeriod: BillingPeriod) {\n switch (billingPeriod) {\n case BillingPeriod.Annually:\n return 'Annual';\n case BillingPeriod.Monthly:\n return 'Monthly';\n default:\n return '';\n }\n}\n","import styled from '@emotion/styled/macro';\nimport Box from '@mui/material/Box';\nimport Chip from '@mui/material/Chip';\nimport Color from 'color';\n\nexport const BillingPeriodPickerContainer = styled(Box)`\n margin: 16px 0;\n`;\n\nexport const BillingPeriodButton = styled.button<{\n $isActive?: boolean;\n $disabled?: boolean;\n $isOnlyBillingPeriod?: boolean;\n}>`\n cursor: ${({ $disabled, $isOnlyBillingPeriod }) =>\n $disabled ? 'default' : $isOnlyBillingPeriod ? 'default' : 'pointer'};\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n padding: 2px 8px;\n border-radius: 10px;\n border: ${({ theme, $isActive, $isOnlyBillingPeriod }) => {\n let borderColor = theme.stigg.palette.outlinedBorder;\n if ($isOnlyBillingPeriod) {\n borderColor = 'transparent';\n } else if ($isActive) {\n borderColor = theme.stigg.palette.outlinedRestingBorder;\n }\n return `1px solid ${borderColor}`;\n }};\n background: ${({ theme, $isActive, $isOnlyBillingPeriod }) => {\n if ($isOnlyBillingPeriod) {\n return 'transparent';\n }\n if ($isActive) {\n return Color(theme.stigg.palette.primary).alpha(0.15).toString();\n }\n return 'transparent';\n }};\n text-transform: none;\n text-align: start;\n height: 36px;\n\n &.MuiButton-root {\n padding: 0 16px 0 8px;\n &:hover {\n background: none;\n }\n }\n`;\n\nexport const BillingPeriodOptions = styled(Box)`\n display: flex;\n gap: 16px;\n margin-top: 16px;\n`;\n\nexport const BillingPeriodPrice = styled.div`\n display: flex;\n align-items: baseline;\n gap: 8px;\n`;\n\nexport const DiscountChip = styled(Chip)`\n & .MuiChip-label {\n font-size: 12px;\n }\n`;\n","import { partition } from 'lodash';\nimport React from 'react';\nimport { FontWeight } from 'styled-typography';\n\nimport Box from '@mui/material/Box';\nimport Radio from '@mui/material/Radio';\nimport { BillingPeriod, Plan } from '@stigg/js-client-sdk';\n\nimport { Typography } from '../../../common/Typography';\nimport { formatBillingPeriod } from '../../formatting';\nimport { usePlanStepModel } from '../../hooks/usePlanStepModel';\nimport { BillingPeriodButton, BillingPeriodOptions, BillingPeriodPickerContainer } from './BillingPeriodPicker.style';\nimport { CheckoutLocalization } from '../../configurations/textOverrides';\n\nconst BillingPeriodOption = ({\n billingPeriod,\n isOnlyBillingPeriod,\n}: {\n billingPeriod: BillingPeriod;\n isOnlyBillingPeriod: boolean;\n}) => {\n const { billingPeriod: selectedBillingPeriod, setBillingPeriod } = usePlanStepModel();\n const isActive = selectedBillingPeriod === billingPeriod;\n\n return (\n <BillingPeriodButton\n onClick={() => setBillingPeriod(billingPeriod)}\n $isActive={isActive}\n $isOnlyBillingPeriod={isOnlyBillingPeriod}>\n <Radio\n checked={isActive}\n onChange={() => setBillingPeriod(billingPeriod)}\n value={billingPeriod}\n disabled={isOnlyBillingPeriod}\n inputProps={{ 'aria-label': formatBillingPeriod(billingPeriod) }}\n sx={{ padding: 0, marginRight: '8px' }}\n />\n\n <Box>\n <Typography variant=\"h3\" color=\"primary\">\n {formatBillingPeriod(billingPeriod)}\n </Typography>\n </Box>\n </BillingPeriodButton>\n );\n};\n\ntype BillingPeriodPickerProps = {\n plan?: Plan;\n checkoutLocalization: CheckoutLocalization;\n};\n\nexport function BillingPeriodPicker({ plan, checkoutLocalization }: BillingPeriodPickerProps) {\n const [monthlyPrices, annualPrices] = partition(\n plan?.pricePoints,\n (price) => price.billingPeriod === BillingPeriod.Monthly,\n );\n\n const hasBothBillingPeriods = !!monthlyPrices?.length && !!annualPrices?.length;\n if (!hasBothBillingPeriods) {\n return null;\n }\n\n return (\n <BillingPeriodPickerContainer>\n <Typography variant=\"h6\" color=\"primary\" fontWeight={FontWeight.Medium}>\n {checkoutLocalization.billingPeriodsTitle}\n </Typography>\n\n <BillingPeriodOptions>\n {!!monthlyPrices?.length && (\n <BillingPeriodOption\n key={BillingPeriod.Monthly}\n billingPeriod={BillingPeriod.Monthly}\n isOnlyBillingPeriod={!hasBothBillingPeriods}\n />\n )}\n {!!annualPrices?.length && (\n <BillingPeriodOption\n key={BillingPeriod.Annually}\n billingPeriod={BillingPeriod.Annually}\n isOnlyBillingPeriod={!hasBothBillingPeriods}\n />\n )}\n </BillingPeriodOptions>\n </BillingPeriodPickerContainer>\n );\n}\n","import React, { useEffect, useState } from 'react';\n\nimport styled from '@emotion/styled';\nimport Box from '@mui/material/Box';\nimport { BillableFeatureInput } from '@stigg/api-client-js/src/generated/sdk';\nimport { BillingModel, BillingPeriod, Plan, Price } from '@stigg/js-client-sdk';\n\nimport { Typography } from '../../../common/Typography';\nimport { useChargesSort } from '../../../hooks/useChargeSort';\nimport { calculateUnitQuantityText } from '../../../paywall/utils/calculateUnitQuantityText';\nimport { currencyPriceFormatter } from '../../../utils/currencyUtils';\nimport { InputField } from '../../components';\nimport { useCheckoutModel, usePlanStepModel, useProgressBarModel } from '../../hooks';\nimport { TiersSelectContainer } from '../../../common/TiersSelectContainer';\nimport { getValidPriceQuantity } from '../../../utils/priceUtils';\nimport { getFeatureDisplayNameText } from '../../../utils/getFeatureName';\nimport { ON_WHEEL_BLUR } from '../../../utils/onWheelBlur';\nimport { mq } from '../../../common/mediaQuery';\nimport { useIsScreenWiderThan } from '../../../hooks/useIsScreenWiderThan';\n\nexport type UsePlanStepModel = ReturnType<typeof usePlanStepModel>;\n\ntype CheckoutChargeListProps = {\n plan?: Plan;\n billingPeriod: BillingPeriod;\n};\n\nconst StyledPlanCharge = styled.div`\n display: flex;\n min-height: 60px;\n margin-top: 16px;\n flex-direction: column;\n\n ${mq.md} {\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n }\n`;\n\nconst getValidationText = (charge: Price, quantity?: number) => {\n const { minUnitQuantity, maxUnitQuantity } = charge;\n if (!quantity || quantity < (minUnitQuantity || 1)) {\n return `Minimum ${minUnitQuantity || 1}`;\n }\n\n if (maxUnitQuantity && quantity > maxUnitQuantity) {\n return `Maximum ${maxUnitQuantity}`;\n }\n\n return '';\n};\n\nexport function PlanCharge({\n charge,\n isValid,\n setBillableFeature,\n billableFeature,\n onValidationChange,\n}: {\n charge: Price;\n isValid: boolean;\n billableFeature?: BillableFeatureInput;\n setBillableFeature: UsePlanStepModel['setBillableFeature'];\n onValidationChange: ({ featureId, isValid }: { featureId: string; isValid: boolean }) => void;\n}) {\n const isScreenWiderThanMd = useIsScreenWiderThan('md');\n const featureId = charge.feature?.featureId;\n const isBaseCharge = !featureId;\n const isPayAsYouGo = charge.pricingModel === BillingModel.UsageBased;\n const displayName = isBaseCharge\n ? 'Base charge'\n : getFeatureDisplayNameText(charge.feature?.displayName || '', charge.feature?.units, charge.feature?.unitsPlural);\n const hasQuantityRestrictions = !!(charge?.minUnitQuantity || charge?.maxUnitQuantity);\n\n const handleQuantityChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (isBaseCharge || !featureId) return;\n\n const { minUnitQuantity, maxUnitQuantity } = charge;\n const value = event?.target?.value ? Number(event?.target?.value) : null;\n if (\n !value ||\n value <= 0 ||\n (minUnitQuantity && value < minUnitQuantity) ||\n (maxUnitQuantity && value > maxUnitQuantity)\n ) {\n onValidationChange({ featureId, isValid: false });\n // Reset the input value to null\n // @ts-ignore\n setBillableFeature(featureId, value ?? null);\n return;\n }\n\n onValidationChange({ featureId, isValid: true });\n const quantity = getValidPriceQuantity(charge, value);\n setBillableFeature(featureId, quantity);\n };\n\n let chargeRow;\n\n if (isBaseCharge || isPayAsYouGo) {\n const formattedAmount = currencyPriceFormatter({\n amount: charge.amount!,\n currency: charge.currency,\n locale: 'en-us',\n minimumFractionDigits: 2,\n });\n\n chargeRow = `${formattedAmount}`;\n if (isPayAsYouGo) {\n chargeRow += ' / unit';\n }\n } else if (charge.isTieredPrice && charge.tiersMode && featureId) {\n const quantity = billableFeature?.quantity || 1;\n chargeRow = (\n <TiersSelectContainer\n componentId={`${featureId}-tiers`}\n tiers={charge.tiers}\n tiersMode={charge.tiersMode}\n value={quantity}\n handleChange={(quantity: number) => {\n setBillableFeature(featureId, quantity);\n }}\n width={120}\n />\n );\n } else {\n chargeRow = (\n <InputField\n sx={{ width: isScreenWiderThanMd ? 120 : '100%' }}\n id={`${featureId}-input`}\n type=\"number\"\n onWheel={ON_WHEEL_BLUR}\n error={!isValid}\n helperText={!isValid ? getValidationText(charge, billableFeature?.quantity) : undefined}\n FormHelperTextProps={{ sx: { margin: '4px' } }}\n value={billableFeature?.quantity ?? ''}\n onChange={handleQuantityChange}\n />\n );\n }\n\n return (\n <StyledPlanCharge>\n <Box display=\"flex\" flexDirection=\"column\">\n <Typography variant=\"h6\" color=\"primary\" lineHeight=\"24px\">\n {displayName}\n </Typography>\n {hasQuantityRestrictions && (\n <Typography variant=\"body1\" color=\"secondary\" lineHeight=\"20px\">\n {calculateUnitQuantityText(charge.minUnitQuantity, charge.maxUnitQuantity, charge.feature?.unitsPlural)}\n </Typography>\n )}\n </Box>\n\n <Typography variant=\"h6\" color=\"primary\">\n {chargeRow}\n </Typography>\n </StyledPlanCharge>\n );\n}\n\nexport function CheckoutChargeList({ plan, billingPeriod }: CheckoutChargeListProps) {\n const { billableFeatures, setBillableFeature } = usePlanStepModel();\n const { setIsDisabled } = useProgressBarModel();\n const { setIsValid } = useCheckoutModel();\n const planCharges = useChargesSort(plan?.pricePoints?.filter((p) => p.billingPeriod === billingPeriod) || []);\n const [chargesValidation, setChargesValidation] = useState(\n planCharges?.reduce<Record<string, boolean>>((acc, curr) => {\n acc[curr.feature?.featureId || 'base-charge'] = true;\n return acc;\n }, {}),\n );\n\n useEffect(() => {\n const isDisabled = Object.values(chargesValidation).some((x) => !x);\n setIsDisabled(isDisabled);\n setIsValid(!isDisabled);\n }, [chargesValidation, setIsDisabled, setIsValid]);\n\n return (\n <>\n {planCharges?.map((charge) => {\n const billableFeature = billableFeatures.find((x) => x.featureId === charge.feature?.featureId);\n return (\n <PlanCharge\n key={charge.feature?.featureId || 'base-charge'}\n charge={charge}\n setBillableFeature={setBillableFeature}\n billableFeature={billableFeature}\n isValid={chargesValidation[charge.feature?.featureId || 'base-charge']}\n onValidationChange={({ featureId, isValid }: { featureId: string; isValid: boolean }) =>\n setChargesValidation((prev) => ({ ...prev, [featureId]: isValid }))\n }\n />\n );\n })}\n </>\n );\n}\n","import styled from '@emotion/styled/macro';\nimport Box from '@mui/material/Box';\n\nexport const CheckoutPlanContainer = styled(Box)`\n width: 100%;\n`;\n","import React from 'react';\nimport { CheckoutContainerProps } from '../../CheckoutContainer';\n\nimport { useCheckoutModel } from '../../hooks/useCheckoutModel';\nimport { usePlanStepModel } from '../../hooks/usePlanStepModel';\nimport { PlanHeader } from '../../planHeader';\nimport { BillingPeriodPicker } from './BillingPeriodPicker';\nimport { CheckoutChargeList } from './CheckoutChargeList';\nimport { CheckoutPlanContainer } from './CheckoutPlanStep.style';\n\nexport const CheckoutPlanStep = ({ onChangePlan }: Pick<CheckoutContainerProps, 'onChangePlan'>) => {\n const { checkoutState, checkoutLocalization } = useCheckoutModel();\n const { plan } = checkoutState || {};\n const { billingPeriod } = usePlanStepModel();\n\n return (\n <>\n <PlanHeader allowChangePlan onChangePlan={onChangePlan} />\n <CheckoutPlanContainer>\n <BillingPeriodPicker plan={plan} checkoutLocalization={checkoutLocalization} />\n <CheckoutChargeList plan={plan} billingPeriod={billingPeriod} />\n </CheckoutPlanContainer>\n </>\n );\n};\n","<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g id=\"arrow-right\">\n<path id=\"Shape\" d=\"M2.66699 8H13.3337\" stroke=\"#7586B0\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path id=\"Shape_2\" d=\"M9.33301 4L13.333 8L9.33301 12\" stroke=\"#7586B0\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n</svg>\n","import styled from '@emotion/styled/macro';\n\nimport ArrowRightIcon from '../../../assets/arrow-right.svg';\n\nexport const StyledArrowRightIcon = styled(ArrowRightIcon)`\n path {\n stroke: ${({ theme }) => theme.stigg.palette.text.secondary};\n }\n`;\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport Box from '@mui/material/Box';\nimport Alert from '@mui/material/Alert';\nimport { CheckoutStatePlan, Subscription } from '@stigg/js-client-sdk';\nimport { StyledArrowRightIcon } from './StyledArrow';\nimport { Typography } from '../../common/Typography';\nimport { CheckoutLocalization } from '../configurations/textOverrides';\nimport { CheckoutContainerProps } from '../CheckoutContainer';\nimport { ChangePlanButton } from './ChangePlanButton';\n\nconst DowngradeToFreePlansContainer = styled(Box)`\n display: flex;\n`;\n\nconst DowngradeToFreeAlert = styled(Alert)`\n margin-bottom: 16px;\n`;\n\nexport const DowngradeToFreePlanBox = styled(Box)`\n padding: 16px;\n border-radius: 10px;\n width: 100%;\n border: ${({ theme }) => `1px solid ${theme.stigg.palette.outlinedBorder}`};\n`;\n\nexport const DowngradeToFreeContent = ({\n headerText,\n planName,\n priceText,\n}: {\n headerText: string;\n planName: string;\n priceText: string;\n}) => {\n return (\n <DowngradeToFreePlanBox className=\"stigg-checkout-downgrade-to-free-container\">\n <Typography\n className=\"stigg-checkout-downgrade-to-free-text-header\"\n style={{ opacity: 0.8 }}\n variant=\"caption\"\n color=\"disabled\">\n {headerText}\n </Typography>\n <Typography className=\"stigg-checkout-downgrade-to-free-plan-name\" bold variant=\"h3\" color=\"primary\">\n {planName}\n </Typography>\n <Typography className=\"stigg-checkout-downgrade-to-free-price-text\" color=\"secondary\">\n {priceText}\n </Typography>\n </DowngradeToFreePlanBox>\n );\n};\n\ntype DowngradeToFreePlanProps = {\n checkoutLocalization: CheckoutLocalization;\n activeSubscription: Subscription;\n freePlan: CheckoutStatePlan;\n allowChangePlan?: boolean;\n} & Pick<CheckoutContainerProps, 'onChangePlan'>;\n\nexport const DowngradeToFreePlan = ({\n checkoutLocalization,\n activeSubscription,\n freePlan,\n allowChangePlan = false,\n onChangePlan,\n}: DowngradeToFreePlanProps) => {\n let alertAction;\n if (allowChangePlan && onChangePlan) {\n alertAction = (\n <ChangePlanButton\n onClick={() => {\n onChangePlan({ currentPlan: freePlan });\n }}\n checkoutLocalization={checkoutLocalization}\n size=\"small\"\n />\n );\n }\n\n const paidBillingPeriod =\n activeSubscription.prices.length > 0 ? activeSubscription.prices[0].billingPeriod : undefined;\n\n return (\n <>\n <DowngradeToFreeAlert action={alertAction} className=\"stigg-checkout-downgrade-to-free-alert\" severity=\"info\">\n <Typography span color=\"secondary\">\n {checkoutLocalization.downgradeToFree.alertText({ plan: activeSubscription.plan })}\n </Typography>\n </DowngradeToFreeAlert>\n\n <DowngradeToFreePlansContainer className=\"stigg-checkout-downgrade-to-free-plans-container\">\n <DowngradeToFreeContent\n headerText={checkoutLocalization.downgradeToFree.paidPlanHeader({ plan: activeSubscription.plan })}\n planName={checkoutLocalization.downgradeToFree.paidPlanName({ plan: activeSubscription.plan })}\n priceText={checkoutLocalization.downgradeToFree.paidPlanPriceText({\n plan: activeSubscription.plan,\n billingPeriod: paidBillingPeriod,\n })}\n />\n\n <StyledArrowRightIcon\n className=\"stigg-checkout-downgrade-to-free-arrow\"\n style={{ margin: 'auto 16px', minWidth: '16px' }}\n />\n\n <DowngradeToFreeContent\n headerText={checkoutLocalization.downgradeToFree.freePlanHeader({ plan: freePlan })}\n planName={checkoutLocalization.downgradeToFree.freePlanName({ plan: freePlan })}\n priceText={checkoutLocalization.downgradeToFree.freePlanPriceText({ plan: freePlan })}\n />\n </DowngradeToFreePlansContainer>\n </>\n );\n};\n","import React, { useMemo } from 'react';\nimport { Elements } from '@stripe/react-stripe-js';\nimport {\n PricingType,\n BillingAddress,\n ApplySubscription,\n CheckoutStatePlan,\n ApplySubscriptionResults,\n} from '@stigg/js-client-sdk';\nimport { CheckoutContent, CheckoutLayout, CheckoutPanel } from './CheckoutContainer.style';\nimport { CheckoutProgressBar } from './progressBar/CheckoutProgressBar';\nimport { CheckoutSummary, CheckoutSummarySkeleton } from './summary';\nimport { CheckoutStep, CheckoutStepKey, useCheckoutModel, useProgressBarModel } from './hooks';\nimport { CheckoutAddonsStep } from './steps/addons';\nimport { PaymentStep } from './steps/payment';\nimport { useStripeIntegration } from './steps/payment/stripe';\nimport { CheckoutPlanStep } from './steps/plan';\nimport { useCheckoutContext } from './CheckoutProvider';\nimport { ContentLoadingSkeleton } from './components';\nimport { DowngradeToFreePlan } from './components/DowngradeToFreeContainer';\nimport { MockCheckoutPreviewCallback } from './types';\n\ntype StepProps = {\n content: React.ReactNode;\n};\n\ntype StripeClientSecret = { clientSecret: string };\ntype StripeManualMode = { mode: 'setup' | 'payment' | 'subscription'; currency: string };\n\nconst getStepProps = (\n currentStep: CheckoutStep,\n {\n onBillingAddressChange,\n onChangePlan,\n collectPhoneNumber,\n }: Pick<CheckoutContainerProps, 'onBillingAddressChange' | 'onChangePlan' | 'collectPhoneNumber'>,\n): StepProps => {\n switch (currentStep.key) {\n case CheckoutStepKey.PLAN:\n return { content: <CheckoutPlanStep onChangePlan={onChangePlan} /> };\n case CheckoutStepKey.ADDONS:\n return { content: <CheckoutAddonsStep /> };\n case CheckoutStepKey.PAYMENT:\n return {\n content: (\n <PaymentStep onBillingAddressChange={onBillingAddressChange} collectPhoneNumber={collectPhoneNumber} />\n ),\n };\n default:\n return { content: null };\n }\n};\n\nexport type CheckoutResult = { success: boolean; errorMessage?: string; results?: ApplySubscriptionResults };\n\nexport type OnCheckoutParams = {\n customerId: string;\n checkoutParams: ApplySubscription;\n checkoutAction: (params: ApplySubscription) => Promise<CheckoutResult>;\n};\n\nexport type OnCheckoutCompletedParams = { success: boolean; error?: string };\n\nexport type CheckoutContainerProps = {\n onCheckout?: (params: OnCheckoutParams) => Promise<CheckoutResult>;\n onCheckoutCompleted: (params: OnCheckoutCompletedParams) => Promise<void>;\n onChangePlan?: (params: { currentPlan: CheckoutStatePlan | undefined }) => void;\n onBillingAddressChange?: (params: { billingAddress: BillingAddress }) => Promise<void>;\n disablePromotionCode?: boolean;\n disableSuccessAnimation?: boolean;\n collectPhoneNumber?: boolean;\n onMockCheckoutPreview?: MockCheckoutPreviewCallback;\n};\n\nexport function CheckoutContainer({\n onCheckout,\n onCheckoutCompleted,\n onChangePlan,\n onBillingAddressChange,\n collectPhoneNumber,\n disablePromotionCode,\n disableSuccessAnimation,\n onMockCheckoutPreview,\n}: CheckoutContainerProps) {\n const { stripePromise, setupIntentClientSecret } = useStripeIntegration();\n const [{ stiggTheme, widgetState, theme, isWidgetWatermarkEnabled }] = useCheckoutContext();\n const { currentStep } = useProgressBarModel();\n\n const { isLoadingCheckoutData } = widgetState;\n\n const { checkoutState, checkoutLocalization } = useCheckoutModel();\n const { plan, activeSubscription } = checkoutState || {};\n const isFreeDowngrade =\n !!plan &&\n plan.pricingType === PricingType.Free &&\n !!activeSubscription &&\n activeSubscription.pricingType !== PricingType.Free;\n\n const { content } = getStepProps(currentStep, { onBillingAddressChange, onChangePlan, collectPhoneNumber });\n\n const checkoutContent = (\n <>\n {isFreeDowngrade ? (\n <DowngradeToFreePlan\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n freePlan={plan!}\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n activeSubscription={activeSubscription!}\n allowChangePlan\n checkoutLocalization={checkoutLocalization}\n onChangePlan={onChangePlan}\n />\n ) : (\n <>{content}</>\n )}\n </>\n );\n\n const stripeElementsMode: StripeClientSecret | StripeManualMode = useMemo(\n () => (setupIntentClientSecret ? { clientSecret: setupIntentClientSecret } : { mode: 'setup', currency: 'usd' }),\n [setupIntentClientSecret],\n );\n\n return (\n <Elements\n key={setupIntentClientSecret}\n stripe={stripePromise}\n options={{\n ...stripeElementsMode,\n appearance: {\n theme: 'stripe',\n variables: {\n colorText: stiggTheme.palette.text.primary,\n colorPrimaryText: stiggTheme.palette.text.primary,\n colorTextPlaceholder: stiggTheme.palette.text.disabled,\n fontFamily: stiggTheme.typography.fontFamily,\n colorBackground: theme?.paymentInputBackgroundColor,\n borderRadius: theme?.paymentInputBorderRadius,\n },\n rules: theme?.paymentInputBorderColor\n ? {\n '.Input': {\n borderColor: theme?.paymentInputBorderColor,\n },\n }\n : undefined,\n },\n }}>\n <CheckoutLayout className=\"stigg-checkout-layout\">\n {!isFreeDowngrade && <CheckoutProgressBar />}\n <CheckoutContent>\n <CheckoutPanel>{isLoadingCheckoutData ? <ContentLoadingSkeleton /> : checkoutContent}</CheckoutPanel>\n {isLoadingCheckoutData ? (\n <CheckoutSummarySkeleton isWidgetWatermarkEnabled={isWidgetWatermarkEnabled} />\n ) : (\n <CheckoutSummary\n disablePromotionCode={disablePromotionCode}\n disableSuccessAnimation={disableSuccessAnimation}\n onCheckout={onCheckout}\n onCheckoutCompleted={onCheckoutCompleted}\n isFreeDowngrade={isFreeDowngrade}\n onMockCheckoutPreview={onMockCheckoutPreview}\n isWidgetWatermarkEnabled={isWidgetWatermarkEnabled}\n />\n )}\n </CheckoutContent>\n </CheckoutLayout>\n </Elements>\n );\n}\n","import React from 'react';\nimport { CheckoutProvider, CheckoutProviderProps } from './CheckoutProvider';\nimport { CheckoutContainer, CheckoutContainerProps } from './CheckoutContainer';\nimport { CheckoutMockProps } from './types';\n\nexport type CheckoutProps = CheckoutProviderProps & CheckoutContainerProps & CheckoutMockProps;\n\nexport const Checkout = ({\n textOverrides,\n theme,\n resourceId,\n planId,\n preferredBillingPeriod,\n billingCountryCode,\n billableFeatures,\n billingInformation,\n onMockCheckoutState,\n skipCheckoutSteps,\n ...containerProps\n}: CheckoutProps) => {\n return (\n <CheckoutProvider\n textOverrides={textOverrides}\n theme={theme}\n resourceId={resourceId}\n planId={planId}\n preferredBillingPeriod={preferredBillingPeriod}\n billingCountryCode={billingCountryCode}\n billableFeatures={billableFeatures}\n billingInformation={billingInformation}\n onMockCheckoutState={onMockCheckoutState}\n skipCheckoutSteps={skipCheckoutSteps}>\n <CheckoutContainer {...containerProps} />\n </CheckoutProvider>\n );\n};\n","import { Subscription } from '@stigg/js-client-sdk';\nimport { useEffect, useMemo, useState } from 'react';\nimport { useStiggContext } from '../../hooks/useStiggContext';\n\nfunction useQueryParams(paramName?: string) {\n return useMemo(() => {\n const urlSearchParams = new URLSearchParams(window.location.search);\n return paramName ? urlSearchParams.get(paramName) : urlSearchParams;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [paramName, window.location.search]);\n}\n\nexport enum ProvisionStatus {\n IN_PROGRESS = 'IN_PROGRESS',\n SUCCEEDED = 'SUCCEEDED',\n FAILED = 'FAILED',\n}\n\nexport const useWaitForCheckoutCompleted = ({\n onProvisionStart,\n onProvisionSucceeded,\n onProvisionFailed,\n}: {\n onProvisionStart?: () => void;\n onProvisionSucceeded?: (subscription?: Subscription | null) => void;\n onProvisionFailed?: (err?: any) => void;\n} = {}) => {\n const { stigg } = useStiggContext();\n const [provisionStatus, setProvisionStatus] = useState(ProvisionStatus.IN_PROGRESS);\n const [isAwaitingCheckout, setIsAwaitingCheckout] = useState(false);\n const checkoutCompleted = useQueryParams('checkoutCompleted') as string;\n\n useEffect(() => {\n const waitForCheckoutToComplete = async () => {\n if (!checkoutCompleted || checkoutCompleted.toLowerCase() === 'false' || isAwaitingCheckout) {\n return;\n }\n\n setIsAwaitingCheckout(true);\n if (onProvisionStart) {\n onProvisionStart();\n }\n try {\n const subscription = await stigg.waitForCheckoutCompleted();\n setProvisionStatus(ProvisionStatus.SUCCEEDED);\n if (onProvisionSucceeded) {\n onProvisionSucceeded(subscription);\n }\n } catch (err) {\n console.error('Failed to wait for checkout to complete', err);\n setProvisionStatus(ProvisionStatus.FAILED);\n if (onProvisionFailed) {\n onProvisionFailed(err);\n }\n } finally {\n setIsAwaitingCheckout(false);\n }\n };\n\n void waitForCheckoutToComplete();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [stigg, checkoutCompleted]);\n\n return { isAwaitingCheckout, provisionStatus };\n};\n","import { BooleanEntitlement, GetBooleanEntitlement, BOOLEAN_DEFAULT_FALLBACK_ENTITLEMENT } from '@stigg/js-client-sdk';\nimport { useStiggContext } from './useStiggContext';\n\nexport type TypedGetBooleanEntitlement<T> = Omit<GetBooleanEntitlement, 'featureId'> & {\n featureId: T;\n};\n\nexport function useBooleanEntitlement<T extends string>(params: TypedGetBooleanEntitlement<T>): BooleanEntitlement {\n const stiggContext = useStiggContext({ optional: true });\n const stigg = stiggContext?.stigg;\n\n if (!stigg) {\n return {\n ...BOOLEAN_DEFAULT_FALLBACK_ENTITLEMENT,\n ...params.options?.fallback,\n };\n }\n\n return stigg.getBooleanEntitlement(params);\n}\n","import { NumericEntitlement, GetNumericEntitlement, NUMERIC_DEFAULT_FALLBACK_ENTITLEMENT } from '@stigg/js-client-sdk';\nimport { useStiggContext } from './useStiggContext';\n\ntype TypedGetNumericEntitlement<T> = Omit<GetNumericEntitlement, 'featureId'> & {\n featureId: T;\n};\n\nexport function useNumericEntitlement<T extends string>(params: TypedGetNumericEntitlement<T>): NumericEntitlement {\n const stiggContext = useStiggContext({ optional: true });\n const stigg = stiggContext?.stigg;\n\n if (!stigg) {\n return {\n ...NUMERIC_DEFAULT_FALLBACK_ENTITLEMENT,\n ...params.options?.fallback,\n };\n }\n\n return stigg.getNumericEntitlement(params);\n}\n","import { GetMeteredEntitlement, METERED_DEFAULT_FALLBACK_ENTITLEMENT, MeteredEntitlement } from '@stigg/js-client-sdk';\nimport { useStiggContext } from './useStiggContext';\n\ntype TypedGetMeteredEntitlement<T> = Omit<GetMeteredEntitlement, 'featureId'> & {\n featureId: T;\n};\n\nexport function useMeteredEntitlement<T extends string>(params: TypedGetMeteredEntitlement<T>): MeteredEntitlement {\n const stiggContext = useStiggContext({ optional: true });\n const stigg = stiggContext?.stigg;\n\n if (!stigg) {\n return {\n ...METERED_DEFAULT_FALLBACK_ENTITLEMENT,\n ...params.options?.fallback,\n };\n }\n\n return stigg.getMeteredEntitlement(params);\n}\n","import { useEffect, useState } from 'react';\n\nexport type FetchResult<T> = {\n isLoaded: boolean;\n error: Error | null;\n data: T | null;\n};\n\nexport function useFetch<T>({ func }: { func: () => Promise<T> }): FetchResult<T> {\n const [isLoaded, setIsLoaded] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n const [data, setData] = useState<T | null>(null);\n\n useEffect(() => {\n const fetchData = async () => {\n setIsLoaded(true);\n try {\n const result = await func();\n setData(result);\n } catch (error) {\n setError(error as Error);\n } finally {\n setIsLoaded(false);\n }\n };\n\n void fetchData();\n }, [func]);\n\n return { isLoaded, error, data };\n}\n","import { useMemo, useCallback } from 'react';\nimport { GetActiveSubscriptions } from '@stigg/js-client-sdk';\nimport { useStiggContext } from './useStiggContext';\nimport { useFetch } from './useFetch';\n\nexport function useActiveSubscriptions(params?: GetActiveSubscriptions) {\n const stiggContext = useStiggContext({ optional: true });\n const stigg = stiggContext?.stigg;\n\n const func = useCallback(() => (stigg ? stigg.getActiveSubscriptions(params) : Promise.resolve([])), [params, stigg]);\n const { data, error, isLoaded } = useFetch({ func });\n\n return useMemo(\n () => ({\n activeSubscriptions: data,\n isLoaded,\n error,\n }),\n [data, error, isLoaded],\n );\n}\n","import { useMemo, useCallback } from 'react';\nimport { GetPaywall } from '@stigg/js-client-sdk';\nimport { useStiggContext } from './useStiggContext';\nimport { useFetch } from './useFetch';\n\nexport function usePaywall(params?: GetPaywall) {\n const stiggContext = useStiggContext({ optional: true });\n const stigg = stiggContext?.stigg;\n\n const func = useCallback(() => (stigg ? stigg.getPaywall(params) : Promise.resolve(null)), [params, stigg]);\n const { data, error, isLoaded } = useFetch({ func });\n\n return useMemo(\n () => ({\n paywall: data,\n isLoaded,\n error,\n }),\n [data, error, isLoaded],\n );\n}\n","import { useMemo, useCallback } from 'react';\nimport { GetCustomerPortal } from '@stigg/js-client-sdk';\nimport { useStiggContext } from './useStiggContext';\nimport { useFetch } from './useFetch';\n\nexport function useCustomerPortal(params?: GetCustomerPortal) {\n const stiggContext = useStiggContext({ optional: true });\n const stigg = stiggContext?.stigg;\n\n const func = useCallback(() => (stigg ? stigg.getCustomerPortal(params) : Promise.resolve(null)), [params, stigg]);\n const { data, error, isLoaded } = useFetch({ func });\n\n return useMemo(\n () => ({\n customerPortal: data,\n isLoaded,\n error,\n }),\n [data, error, isLoaded],\n );\n}\n","import React from 'react';\nimport { GetBooleanEntitlement } from '@stigg/js-client-sdk';\nimport { useBooleanEntitlement } from '../hooks';\n\ntype BooleanEntitlementGuardProps = GetBooleanEntitlement & {\n noAccessComponent?: React.ReactNode;\n children: React.ReactElement;\n};\n\nexport function BooleanEntitlementGuard({\n noAccessComponent,\n children,\n ...rest\n}: BooleanEntitlementGuardProps): JSX.Element {\n const { hasAccess } = useBooleanEntitlement(rest);\n\n if (!hasAccess) {\n return <>{noAccessComponent ?? null}</>;\n }\n\n return children;\n}\n","import React from 'react';\nimport { GetNumericEntitlement } from '@stigg/js-client-sdk';\nimport { useNumericEntitlement } from '../hooks';\n\ntype NumericEntitlementGuardProps = GetNumericEntitlement & {\n noAccessComponent?: React.ReactNode;\n children: React.ReactElement;\n};\n\nexport function NumericEntitlementGuard({\n noAccessComponent,\n children,\n ...rest\n}: NumericEntitlementGuardProps): JSX.Element {\n const { hasAccess } = useNumericEntitlement(rest);\n\n if (!hasAccess) {\n return <>{noAccessComponent ?? null}</>;\n }\n\n return children;\n}\n","import React from 'react';\nimport { GetMeteredEntitlement } from '@stigg/js-client-sdk';\nimport { useMeteredEntitlement } from '../hooks';\n\ntype MeteredEntitlementGuardProps = GetMeteredEntitlement & {\n noAccessComponent?: React.ReactNode;\n children: React.ReactElement;\n};\n\nexport function MeteredEntitlementGuard({\n noAccessComponent,\n children,\n ...rest\n}: MeteredEntitlementGuardProps): JSX.Element {\n const { hasAccess } = useMeteredEntitlement(rest);\n\n if (!hasAccess) {\n return <>{noAccessComponent ?? null}</>;\n }\n\n return children;\n}\n"],"names":["calculateUnitQuantityText","minUnitQuantity","maxUnitQuantity","unitsPlural","unitsText","formatNumber","usageLimit","toLocaleString","maximumFractionDigits","getColor","theme","$color","stigg","palette","primary","primaryLight","warning","error","text","StyledText","Text","$span","getLevel","variant","mapFontWeight","fontWeight","StyledFontWeight","Bold","Normal","getFontWeight","typography","h1","h2","h3","body","caption","Typography","forwardRef","props","ref","children","span","style","color","overrideColor","bold","as","rest","useTheme","level","levelClassName","className","React","getIconColor","secondary","_extends","React.createElement","_rect","_path","_path2","_g","_defs","_path3","_circle","IconWrapper","$pathColor","css","$rectColor","$strokeColor","Icon","icon","svgPathColor","svgRectColor","svgStrokeColor","IconComponent","customIcons","EntitlementName","EntitlementRowContainer","EntitlementIconContainer","EntitlementIcon","getResetPeriodText","resetPeriod","EntitlementResetPeriod","Day","Hour","Week","Month","Year","getEntitlementDisplay","hasUnlimitedUsage","feature","isCustom","unitBasedEntitlement","resetPeriodSuffix","featureUnits","units","displayName","EntitlementRow","displayNameOverride","restProps","id","PlanEntitlementsContainer","getTitle","plan","paywallLocale","hasFeatures","entitlementsTitle","title","basePlan","PlanEntitlements","billingPeriod","prices","pricePoints","filter","price","unitBasedEntitlements","map","key","featureId","visibleEntitlements","entitlements","entitlement","hiddenFromWidgets","includes","WidgetType","Paywall","length","SubscribeIntentionType","flexLayoutMapper","horizontalAlignment","left","center","right","getResolvedTheme","customizedTheme","primaryColor","Color","textColor","successColor","errorColor","baseTheme","hex","primaryDark","darken","alpha","toString","backgroundPaper","backgroundHighlight","backgroundSection","backgroundButton","outlinedBorder","outlinedRestingBorder","outlinedHoverBackground","lightness","switchBorder","lighten","switchFill","switchHandle","errorDark","success","successDark","white","tertiary","disabled","layout","planMinWidth","planMaxWidth","planMargin","planPadding","ctaAlignment","headerAlignment","descriptionAlignment","descriptionMinHeight","switchBottomSpacing","shadows","light","popover","border","radius","fontFamily","fontSize","customCss","merge","formatDate","date","moment","utc","format","getSubscriptionScheduleUpdateTexts","scheduledUpdate","subscriptionPrices","billingPeriodRange","options","withDate","postfix","subscriptionScheduleType","SubscriptionScheduleType","Downgrade","shouldShowDate","isNil","end","scheduledExecutionTime","isSame","line1","targetPackage","line2","BillingPeriod","variables","scheduleVariables","toLocaleLowerCase","UnitAmount","compact","find","featureUnitsPlural","newUnitAmount","getPriceFeatureUnit","unitQuantity","getTierByQuantity","tiers","quantity","ascendingTiers","sort","a","b","upTo","tier","getAmount","amount","selectedBillingPeriod","shouldShowMonthlyPriceAmount","Annually","calculateTierPriceVolume","currentTier","perUnitQuantity","unitPrice","flatPrice","calculateTierPriceGraduated","remainingQuantity","prevUpTo","currentTierIndex","breakdown","push","unitsInTier","consumed","Math","min","total","sum","calculateTierPrice","tiersMode","TiersMode","Volume","Graduated","hasTierWithUnitPrice","some","isBulkTiers","every","isQuantityInFirstTier","getTiersPerUnitQuantities","currentSubscription","currentSubscriptionOverride","selectDefaultTierIndex","planTierPrices","isTieredPrice","selectedDefaultTierIndex","tieredPrice","subscriptionPrice","pricingModel","BillingModel","PerUnit","planId","billableFeature","billableFeatures","result","PriceTierComparison","compareSelectedTierToCurrentTier","perUnitQuantityByFeature","Equal","currentTierPrice","isCurrentPlanOverride","oldQuantity","newQuantity","Lower","Higher","LoadingIndicator","ClipLoader","OfferingButton","$disabled","ButtonText","ScheduledUpdateText","CancelScheduledUpdateButton","TrialDaysLeft","ButtonLayout","PlanOfferingButton","isNextPlan","customer","isCustomerOnTrial","onPlanSelected","withTrialLeftRow","useState","isLoading","setIsLoading","planCTAButton","currentPlan","custom","downgrade","startTrial","upgrade","startNew","switchToBillingPeriod","cancelScheduledUpdate","resolvedDowngrade","isFunction","resolvedUpgrade","buttonProps","isLowerThanCurrentPlan","intentionType","DOWNGRADE_PLAN","UPGRADE_TRIAL_TO_PAID","UPGRADE_PLAN","isCustomPrice","pricingType","PricingType","Custom","scheduledUpdateText","isTriable","isCurrentCustomerPlan","START_TRIAL","isSameBillingPeriod","currentCustomerPlanBillingPeriod","Free","planComparison","CHANGE_UNIT_QUANTITY","CHANGE_BILLING_PERIOD","REQUEST_CUSTOM_PLAN_ACCESS","CANCEL_SCHEDULED_UPDATES","isDisabled","onClick","Promise","resolve","loading","size","height","trialDaysLeft","currencyPriceFormatter","currency","Currency","Usd","locale","minimumFractionDigits","removeTrailingZero","currencyString","currencySymbol","getSymbolFromCurrency","formattedPrice","Intl","NumberFormat","trailingZeroDisplay","currencyDisplay","replace","numberFormatter","number","getPaidPriceText","planPrices","paywallCalculatedPrice","priceAmount","isSinglePrice","priceNumber","tierUnits","pricePeriod","Monthly","unit","formattedUnits","blockSize","UsageBased","getPlanPrice","free","paywallCurrency","Paid","pricePoint","paywallCalculatedPricePoints","priceNotSet","paidParams","paid","StyledButton","MuiButton","shouldForwardProp","prop","startsWith","$success","$error","Button","InputField","styled","TextField","borderRadius","fieldset","borderColor","padding","SkeletonsContainer","Grid","$flexDirection","$gap","FlexedSkeletonContainer","FlexedSkeleton","flex","Skeleton","ReactSkeleton","ContentContainer","ContentLoadingSkeleton","container","item","width","Divider","sx","marginY","marginTop","ON_WHEEL_BLUR","e","target","blur","VolumePerUnitInput","value","handleChange","type","onWheel","fullWidth","minHeight","InputProps","endAdornment","InputAdornment","position","onChange","event","Number","TierSelect","Select","TierInput","OutlinedInput","VolumeBulkSelect","componentId","input","MenuProps","MenuListProps","disablePadding","PaperProps","MenuItem","lineHeight","TiersSelectLayout","TiersSelectContainer","EMPTY_CHAR","PlanPriceContainer","UnitSpan","PriceSpan","PriceBillingPeriod","hasMonthlyPrice","hasAnnuallyPrice","hasPrice","content","toLowerCase","PlanPrice","showStartingAt","withUnitPriceRow","withStartingAtRow","withTiersRow","setPerUnitQuantityByFeature","planPrice","undefined","handlePerUnitQuantityChange","prevState","startingAtCaption","AddonsBox","AddonsList","AddonRow","AddonName","AddonIcon","AddonContent","Footer","MAX_ADDONS","PlanCompatibleAddons","addons","showAllAddons","setShowAllAddons","visibleAddons","addon","toggleShowAllAddons","displayedAddons","slice","addonsTitle","classNames","PlanOfferingButtonHeight","PlanOfferingContainer","$isCurrentPlan","$isHighlighted","AddonsContainer","$planHasEntitlements","PlanHeader","PlanDescription","HighlightBadge","HighlightText","HeaderWrapper","NextPlanTagContainer","StyledMiniSchedule","MiniSchedule","UpcomingChangeTag","iconsColor","display","alignItems","gap","PlanOffering","isHighlighted","shouldShowDescriptionSection","isCustomerInCustomPlan","hideCompatibleAddons","additionalChargesMayApply","showCTAButton","planBadge","highlightChip","onPlanButtonClick","perUnitBillableFeatures","Object","keys","description","compatibleAddons","PickerContainer","PeriodText","StyledSwitch","Switch","DiscountRate","discount","BillingPeriodPicker","discountRate","onBillingPeriodChanged","availableBillingPeriods","isMonthlyBillingPeriod","uncheckedIcon","checkedIcon","isAnnuallySelected","checked","handleDiameter","calculateDiscountRate","monthlyPrice","annuallyPrice","annuallyPerMonthPrice","round","getPlanBillingPeriodAmount","calculatePaywallDiscountRate","plans","reduce","maxDiscount","monthlyAmount","annuallyAmount","max","STIGG_WATERMARK_CLASSNAME","PoweredByStiggThemedSvg","PoweredByStiggSvg","StyledPoweredByStigg","$alignSelf","PoweredByStigg","source","showWatermark","align","onWatermarkClick","sourceDomain","window","location","hostname","open","cursor","hasPricePoints","hasPricePointsForPlans","getPlansToDisplay","shouldHidePlan","PaywallPlansContainer","PaywallContainer","PaywallLayout","highlightedPlanId","useStiggContext","plansToShow","handleOnSubscribe","useCallback","subscription","useMemo","values","isWidgetWatermarkEnabled","LoggerService","message","params","console","log","object","debug","computeBillingPeriods","activeSubscriptions","preferredBillingPeriod","billingPeriods","flatMap","x","counts","countBy","uniq","defaultBillingPeriod","activeSubscription","status","SubscriptionStatus","Active","calculateTrialDaysLeft","trialEndDate","diff","defaultCheckoutTypography","FontWeight","addCssUnits","defaultValue","JSFontWeight","mapTypography","defaultTypography","fontFamilyUrl","mapAlignment","alignment","Alignment","Left","Center","Right","mapCustomerPortalConfiguration","configuration","paywallBackgroundColor","currentPlanBackground","mapPaywallConfiguration","paywallConfiguration","backgroundColor","planWidth","mapCheckoutConfiguration","summaryBackgroundColor","getCustomerSubscriptionDetails","s","InTrial","mapPaywallData","paywall","showOnlyEligiblePlans","currentSubscriptionOverrideFn","scheduledUpdates","downgradeSchedule","billingChangedSchedule","paywallPlans","sortBy","order","eligibleForProductTrial","eligibleForTrial","productTrial","productId","product","currentBillingPeriod","downgradeVariables","billingChangedVariables","isPlanHasBillingPeriodPrice","refId","defaultTrialConfig","eligible","isUpcomingPlan","currentPlanOrder","StiggContext","createContext","DEFAULT_LOCALE","StiggProvider","apiKey","baseUri","baseEdgeUri","enableEdge","customerId","customerToken","resourceId","cacheTtlMs","useEntitlementPolling","entitlementPollingInterval","entitlementsFallback","stiggClient","offline","clientName","CLIENT_NAME","clientVersion","CLIENT_VERSION","currentApiKey","useRef","initializeParams","Stigg","initialize","lazyLoad","isInitialized","refreshData","setContext","ctx","customerPortalUpdatedAt","Date","refresh","useEffect","isMounted","safeSetContext","setContextFunc","onEntitlementsUpdated","updatedAt","setStiggInstance","removeListener","addListener","loadStiggClient","current","logger","waitForInitialization","clearCustomer","setCustomerId","Provider","SkeletonTheme","baseColor","highlightColor","optional","useContext","Error","useLoadPaywallData","billingCountryCode","setSelectedBillingPeriod","setAvailableBillingPeriods","setPaywall","loadPaywall","getPaywall","paywallResult","isCustomerLoaded","paywallData","getResolvedPaywallLocalize","localizeOverride","paywallDefaultLocalization","duration","symbol","SkeletonContainer","EntitlementCheckIcon","CheckUrl","PlanOfferingSkeleton","PlansContainer","EntitlementContainer","FooterSkeletonLoader","BillingPeriodLoader","PlanOfferingLoader","circle","marginBottom","PaywallLoader","Fonts","externalFontUrl","Global","styles","CustomCssGlobal","useStiggTheme","remoteThemeOverride","externalTheme","mergedTheme","resolvedTheme","createTypographyTheme","htmlFontSize","coef","pxToRem","bodyFontFamily","headingFontFamily","fontSizes","createMuiPalette","main","SdkThemeProvider","componentTheme","muiPalette","materialTheme","createTheme","MuiThemeProvider","THEME_ID","ThemeProvider","StyledThemeProvider","useCustomerPortal","customerPortal","setCustomerPortal","loadCustomerPortal","getCustomerPortal","customerPortalData","getResolvedCustomerPortalLocalize","customerPortalDefaultLocalization","manageSubscription","usageTabTitle","addonsTabTitle","promotionsTabTitle","promotionsSubtitle","contactSupportTitle","contactSupportLink","editBilling","invoicesTitle","viewInvoiceHistory","editPaymentDetails","paywallSectionTitle","cancelScheduledUpdatesButtonTitle","getResolvedCustomerPortalTheme","globalTheme","themeOverride","remoteConfiguration","customerPortalDefaultTheme","sectionTitleColor","planNameColor","listItemBackgroundColor","tabMaxHeight","iconsBackgroundColor","CustomerPortalContext","useCustomerPortalContext","useCheckContextExists","contextType","CustomerPortalProvider","textOverrides","customerPortalTheme","resolvedTextOverrides","onBillingPeriodChange","hasCustomerPortalContext","isCustomerPortalLoading","customerPortalResourceId","handlePeriodChange","component","SectionHeader","$disableMargin","SectionTitle","CustomerPortalIntentionType","StyledEditIcon","EditIcon","SubscriptionsOverviewHeader","onManageSubscription","hideManageButton","MANAGE_SUBSCRIPTION","marginLeft","subscriptions","isEmpty","index","addonId","Row","$borderColor","getPromotionTitle","promotionalEntitlement","Promotions","promotionalEntitlements","flexDirection","endDate","StyledTabs","Tabs","TabsLayout","TabContent","Box","$maxHeight","ListBox","$backgroundColor","TabPanel","maxHeight","other","role","hidden","TabTitle","isSelected","label","Medium","SubscriptionTabs","hiddenSections","allAddons","isSectionHidden","sectionName","section","showAddons","showPromotions","setValue","_","newValue","shouldShowTabs","borderBottom","Tab","textTransform","breakpoints","xs","sm","md","lg","xl","xxl","mqMinWidth","breakpoint","mq","obj","useIsScreenWiderThan","useMediaQueryMui","SkeletonLayout","SkeletonLayoutLeft","SubscriptionOverviewLoader","isScreenWiderThanMd","SubscriptionScheduledUpdateDowngradeRow","scheduleUpdate","ArrowDown","SubscriptionScheduledUpdateBillingPeriodChangeRow","nextBillingPeriod","SubscriptionScheduledUpdateUnitQuantityChangeRow","newQuantityUnits","flexWrap","SubscriptionScheduledUpdateRow","SubscriptionScheduleUpdateAlertContainer","StyledRestoreIcon","Restore","MultipleScheduledUpdates","justifyContent","SingleScheduledUpdate","SubscriptionScheduledUpdatesAlert","onCancelScheduledUpdates","stiggTheme","isSingleScheduledUpdate","marginRight","SectionContainer","NextEstimatedBill","rangeEnd","NoUpcomingBilling","ContactCustomerSupportLayout","ContactSupportButton","ContactCustomerSupport","onContactSupport","linkLabel","contactSupportText","Container","UpcomingBilling","noUsageBasedPrices","billingModel","scheduledDowngradeToFree","planName","totalPrice","InformationTooltip","placement","Tooltip","arrow","classes","popper","tooltip","$padding","$maxWidth","tooltipClasses","maxWidth","boxShadow","$display","$maxLines","$wordBreak","$bold","checkTextClamped","element","clientHeight","scrollHeight","offsetWidth","scrollWidth","LongText","leaveDelay","maxLines","wordBreak","tooltipPlacement","dataTestId","isTextClamped","setIsTextClamped","textClamped","OnTrialBadge","StyledLink","Link","TrialPanel","includePlanName","SandClockIcon","trialRemainingDays","UPGRADE_TRIAL_PLAN","SubscriptionView","mainSubscription","trialSubscription","USAGE_PERCENTAGE_WARNING_THRESHOLD","getUsagePercentage","currentUsage","limit","floor","getUsageProgressStatus","getResetUsageText","usagePeriodEnd","calculateResetDiff","StyledLinearProgress","LinearProgress","string","$progressStatus","StyledDivider","FeatureUsageProgressBar","usagePercentage","linearProgressStatus","EntitlementCtaButton","onBuyMore","canBuyMore","canUpgradeSubscription","hasCustomSubscription","ChargeItem","hideChargePrice","whiteSpace","ChargeList","entitlementByFeature","keyBy","filteredSubscriptionPrices","SubscriptionsOverview","isLoadingData","CustomerPortalHeaderLayout","CustomerPortalHeader","ExternalLinkText","LinkIcon","ExternalLinkIcon","ExternalLinkButton","url","startIcon","strokeWidth","InformationGridContainer","InformationGridRow","InformationGrid","rows","classNamePrefix","labelTypographyProps","valueTypographyProps","SkeletonButton","PaymentDetailsSection","billingInformation","items","orientation","name","email","defaultPaymentMethodId","defaultPaymentMethodLast4Digits","defaultPaymentExpirationMonth","defaultPaymentExpirationYear","unshift","padStart","editButton","billingPortalUrl","CustomerPortalPaywallLayout","CustomerPortalPaywall","paywallComponent","CustomerPortalLayout","CustomerPortalSections","getFeatureDisplayNameText","featureDisplayName","displayNameLowerCase","lowercase","getFeatureDisplayName","FeatureUsageContainer","$highlight","FeatureUsage","hasOverageUsage","isUndefined","CustomerUsageLoader","isMdScreen","spacing","range","MAX_BOXES","CustomerUsageData","filterEntitlements","showAll","setShowAll","meteredEntitlements","meterType","MeterType","Fluctuating","Incremental","subscriptionPriceByFeature","priceEntitlements","otherEntitlements","sortedEntitlements","filteredEntitlements","entitlementsToShow","toggleShowAll","Minus","Plus","CustomerPortalContainer","customerPortalSectionRef","onManageClick","customerSubscriptions","scrollIntoView","behavior","shouldShowUsage","shouldShowPaymentDetails","shouldShowInvoices","InvoicesSection","CustomerPortal","viewInvoiceHistoryButton","sortAddons","sortSubscriptionAddons","filterAddonPricePointsByBillingPeriod","mapAddonPricePointsByBillingCountryCode","filterAddons","filterSubscriptionAddons","getAddonsStepInitialState","availableAddons","activeSubscriptionAddons","planAddon","initialAddons","cloneDeep","useSetAddon","useCheckoutContext","setState","draft","addonToUpdate","addonsStep","currentAddon","useRemoveAddon","remove","useAddonsState","useAddonsStepModel","state","setAddon","removeAddon","useCheckoutState","checkout","widgetState","checkoutLocalization","checkoutState","useSetWidgetReadonly","readOnly","useSetIsValid","isValid","useCheckoutModel","setWidgetReadOnly","setIsValid","useLoadCheckout","onMockCheckoutState","setCheckout","loadCheckout","getCheckoutState","getValidPriceQuantity","hasMonthlyPrices","hasAnnualPrices","hasMultipleBillingPeriods","getBillingPeriod","isInAdvanceCommitmentCharge","getBillableFeatures","preconfiguredBillableFeatures","preconfBillableFeaturesByFeatureId","quantityByFeatureId","charge","preconfiguredQuantity","resolveBillingPeriod","hasMonthlyPlan","hasAnnualPlan","isUpdate","getPlanStepInitialState","usePlanState","planStep","useSetBillableFeature","useSetBillingPeriod","usePlanStepModel","setBillingPeriod","setBillableFeature","CheckoutStepKey","CHECKOUT_STEPS","PLAN","ADDONS","PAYMENT","INITIAL_STATE","activeStep","completedSteps","steps","canSkipPlanStep","availableCharges","availableChargesIds","preconfiguredChargesIds","getProgressBarInitialState","skipCheckoutSteps","stepsToFilter","step","useProgressBarState","progressBar","useSetActiveStep","stepNumber","useMarkStepAsCompleted","isCheckoutComplete","useGoNext","useSetIsDisabled","useProgressBarModel","progressBarState","currentStep","isLastStep","setActiveStep","markStepAsCompleted","goNext","setIsDisabled","useSubscriptionModel","promotionCode","paymentStep","billingAddress","taxPercentage","mapBillingInformation","previewSubscription","onMockCheckoutPreview","estimateAddons","subscriptionPreview","errorMessage","previewSubscriptionProps","split","errorMsg","trim","usePreviewSubscriptionAction","previewSubscriptionAction","SUBSCRIPTION_PREVIEW_DEBOUNCE_TIME","usePreviewSubscription","setSubscriptionPreview","isFetchingSubscriptionPreview","setIsFetchingSubscriptionPreview","estimateSubscription","timer","setTimeout","clearTimeout","getPaymentStepInitialState","useNewPaymentMethod","paymentMethodDetails","useSetUseNewPaymentMethod","useSetErrorMessage","useSetBillingAddress","usePaymentState","usePaymentStepModel","setUseNewPaymentMethod","setErrorMessage","setBillingAddress","getResolvedCheckoutLocalize","checkoutDefaultLocalization","changePlan","billingPeriodsTitle","addAddonText","newPaymentMethodText","newPaymentMethodBillingAddressTitle","newPaymentMethodCardTitle","summary","addCouponCodeText","couponCodeTitle","addonsSectionTitle","discountsSectionTitle","onlyPayAsYouGoText","startsAtText","proratedTotalDueText","baseChargeText","totalText","totalDueText","totalBillingPeriodText","appliedCreditsTitle","creditsForUnusedTimeText","credits","discountText","discountDetails","DiscountType","Percentage","discountTextPostfix","durationType","DiscountDurationType","Once","Repeating","prefix","Fixed","durationInMonths","Forever","taxTitle","taxDetails","percentage","changesWillApplyAtEndOfBillingPeriod","billingPeriodEnd","checkoutSuccessText","payAsYouGoTooltipText","checkoutButton","nextText","noChangesText","updateText","downgradeToFreeText","upgradeText","downgradeToFree","alertText","freePlanHeader","freePlanName","freePlanPriceText","paidPlanHeader","paidPlanName","paidPlanPriceText","defaultCheckoutTheme","getResolvedCheckoutTheme","_remoteConfiguration","globalPalette","paymentInputBackgroundColor","paymentInputBorderColor","paymentInputBorderRadius","CheckoutContext","CheckoutContextProvider","initialState","innerSetState","updater","old","produce","contextValue","setContextValue","CheckoutProvider","checkoutTheme","resource","isLoadingCheckoutData","CheckoutLayout","CheckoutContent","CheckoutPanel","StyledProgress","linearProgressClasses","root","bar","StyledStepButton","buttonClasses","StyledIcon","$shouldFill","stroke","fill","CheckoutProgressBar","containerRef","progress","previousStep","setPreviousStep","mb","isCompleted","StepIcon","CHARGES_BILLING_MODEL_ORDER","FlatFee","sortCharges","charges","indexOf","useChargesSort","usePromotionCodeState","useSetPromotionCode","usePromotionCodeModel","setPromotionCode","StyledPlusIcon","PlusIcon","AddPromotionCodeButton","onAddClick","CouponCodeAddButton","AddPromotionCode","persistPromotionCode","showInput","setShowInput","handlePromotionCode","immediateInvoice","toUpperCase","autoFocus","inputProps","maxLength","onKeyDown","preventDefault","CircularProgress","AppliedCouponContainer","AppliedPromotionCode","onClearPromotionCode","minWidth","PromotionCodeSectionContainer","PromotionCodeSection","StripePaymentForm","onBillingAddressChange","collectPhoneNumber","shouldCollectPhoneNumber","handleAddressChange","args","complete","address","postalCode","postal_code","addressFields","callExternalBillingAddressChanged","pointerEvents","AddressElement","mode","fields","phone","defaultValues","PaymentElement","onReady","terms","card","billingDetails","useStripeIntegration","stripePromise","setStripePromise","billingIntegration","setupSecret","billingIdentifier","credentials","BillingVendorIdentifier","Stripe","accountId","publicKey","loadStripe","stripeAccount","setupIntentClientSecret","useSubscriptionState","FAILED_PAYMENT_COLLECTION_STATUSES","PaymentCollection","Failed","Processing","handleStripeFormValidations","elements","submit","elementsError","handleStripeNextAction","applySubscriptionResults","stripe","paymentIntentClientSecret","latestInvoice","paymentSecret","paymentCollection","ActionRequired","handleNextAction","clientSecret","NextActionError","handleStripeSetup","confirmSetup","confirmParams","return_url","href","redirect","setupError","setupErrorMessage","retrieveSetupIntent","setupIntent","payment_method","newPaymentMethodId","handleNewPaymentMethod","stripeFormValidationsResults","paymentMethodId","ANIMATION_DURATION","CheckoutSuccessContainer","CheckoutSuccessText","CheckoutSuccess","block","inline","Lottie","animationData","loop","autoplay","delay","ms","res","useSubmit","isMocked","onCheckout","onCheckoutCompleted","onSuccess","disableSuccessAnimation","subscriptionState","useStripe","useElements","handleSubmit","usedStiggCheckoutAction","paymentMethodResults","checkoutParams","checkoutAction","applySubscription","nextActionResults","results","externalCheckoutResults","checkoutResults","checkoutActionResults","WithSkeleton","RemainingCreditsCaption","proration","netAmount","positiveAmount","ScheduledUpdatesCaption","hasScheduledUpdates","currentBillingPeriodEnd","changesWillApplyText","NextBillingCaption","recurringInvoice","hasUnitBasedPricing","hasNonUnitBasedPricing","totalAmountText","nextBillingDate","billingPeriodText","CheckoutCaptions","formatPricePerUnit","totalAmount","isPerUnit","aBlockSize","billingPeriodString","formattedUnitPrice","formattedTotalPrice","getPriceBreakdownString","getLabel","previousTierUpTo","startUnit","GraduatedPriceBreakdown","LineItemContainer","LineItemRow","CollapsableSectionIcon","ChevronRight","$size","$isOpen","NestedBreakdownContainer","PayAsYouGoPriceTooltip","BilledPriceLineItem","isScreenWiderThanLg","isNestedBreakdownOpen","setIsNestedBreakdownOpen","toggleNestedBreakdown","prev","isPayAsYouGo","ceil","nestedBreakdown","shouldShowGraduatedPriceBreakdown","underline","IconButton","Collapse","FreeChargeLineItem","DiscountLineItem","AppliedCreditsLineItem","used","TaxLineItem","tax","SummaryContainer","SummaryCard","Paper","defaultProps","elevation","SummaryTitle","TotalDueText","resolveCheckoutButtonText","checkoutHasChanges","isFreeDowngrade","isPlanUpdate","CheckoutSummary","disablePromotionCode","isCheckoutCompletedSuccessfully","setIsCheckoutCompletedSuccessfully","partition","baseCharges","usageCharges","baseCharge","handleCheckout","onCheckoutClick","showPromotionCodeLine","showDiscountLine","hasDiscounts","hasPayAsYouGoCharges","onlyPayAsYouGoCharges","baseChargeLabel","paddingRight","margin","priceBillableFeature","addonPrice","addonQuantity","hasProrations","subTotal","CheckoutSummarySkeleton","CheckoutAddonsContainer","AddonListItemContainer","TrashButton","AddonListItem","addonState","initialAddonState","onAddonsValidationChange","isAdded","hasChanges","handleQuantityChange","handleUndo","marginX","helperText","FormHelperTextProps","paddingX","paddingY","CheckoutAddonsStep","acc","curr","addonsValidation","setAddonsValidation","PaymentMethodContainer","NewPaymentMethodContainer","$hideBorders","PaymentMethodLayoutContainer","PaymentMethodTextContainer","PaymentMethodLayout","subtitle","Radio","ExistingPaymentMethod","onSelect","last4Digits","expirationMonth","expirationYear","NewPaymentMethod","hasExistingPaymentMethod","PaymentContainer","PaymentStep","handleOnSelect","openNewPaymentMethod","Alert","severity","ChangePlanButton","allowChangePlan","onChangePlan","opacity","formatBillingPeriod","BillingPeriodPickerContainer","BillingPeriodButton","$isOnlyBillingPeriod","$isActive","BillingPeriodOptions","BillingPeriodPrice","DiscountChip","Chip","BillingPeriodOption","isOnlyBillingPeriod","isActive","monthlyPrices","annualPrices","hasBothBillingPeriods","StyledPlanCharge","div","getValidationText","PlanCharge","onValidationChange","isBaseCharge","hasQuantityRestrictions","chargeRow","formattedAmount","CheckoutChargeList","planCharges","p","chargesValidation","setChargesValidation","CheckoutPlanContainer","CheckoutPlanStep","StyledArrowRightIcon","ArrowRightIcon","DowngradeToFreePlansContainer","DowngradeToFreeAlert","DowngradeToFreePlanBox","DowngradeToFreeContent","headerText","priceText","DowngradeToFreePlan","freePlan","alertAction","paidBillingPeriod","action","getStepProps","CheckoutContainer","checkoutContent","stripeElementsMode","Elements","appearance","colorText","colorPrimaryText","colorTextPlaceholder","colorBackground","rules","Checkout","containerProps","useQueryParams","paramName","urlSearchParams","URLSearchParams","search","get","ProvisionStatus","useWaitForCheckoutCompleted","onProvisionStart","onProvisionSucceeded","onProvisionFailed","IN_PROGRESS","provisionStatus","setProvisionStatus","isAwaitingCheckout","setIsAwaitingCheckout","checkoutCompleted","waitForCheckoutToComplete","waitForCheckoutCompleted","SUCCEEDED","FAILED","useBooleanEntitlement","stiggContext","BOOLEAN_DEFAULT_FALLBACK_ENTITLEMENT","fallback","getBooleanEntitlement","useNumericEntitlement","NUMERIC_DEFAULT_FALLBACK_ENTITLEMENT","getNumericEntitlement","useMeteredEntitlement","METERED_DEFAULT_FALLBACK_ENTITLEMENT","getMeteredEntitlement","useFetch","func","isLoaded","setIsLoaded","setError","data","setData","fetchData","useActiveSubscriptions","getActiveSubscriptions","usePaywall","BooleanEntitlementGuard","noAccessComponent","hasAccess","NumericEntitlementGuard","MeteredEntitlementGuard"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|
|
1
|
+
{"version":3,"file":"react-sdk.esm.js","sources":["../src/components/paywall/utils/calculateUnitQuantityText.ts","../src/components/utils/formatNumber.ts","../src/components/common/Typography.tsx","../src/components/common/iconColor.ts","../src/assets/addons.svg","../src/assets/billing-info-customer.svg","../src/assets/contact-support.svg","../src/assets/credit-card.svg","../src/assets/dollar-coin.svg","../src/assets/mini-schedule.svg","../src/assets/promotions.svg","../src/assets/restore.svg","../src/assets/schedule-box.svg","../src/assets/schedule.svg","../src/assets/subscription-renews-icon.svg","../src/assets/trash.svg","../src/assets/payment-method.svg","../src/assets/outlined-circle.svg","../src/assets/outlined-checked-circle.svg","../src/assets/outlined-checked-circle-disabled.svg","../src/assets/arrow-forward.svg","../src/assets/close.svg","../src/assets/check.svg","../src/assets/pay-as-you-go-charge.svg","../src/assets/coupon.svg","../src/assets/add.svg","../src/assets/remove.svg","../src/assets/entitlement-check.svg","../src/components/common/Icon.tsx","../src/components/paywall/EntitlementRow.tsx","../src/components/paywall/PlanEntitlements.tsx","../src/components/paywall/types.ts","../src/theme/getResolvedTheme.ts","../src/components/utils/getSubscriptionScheduleUpdateTexts.tsx","../src/components/utils/priceTierUtils.ts","../src/components/paywall/PlanOfferingButton.tsx","../src/components/utils/currencyUtils.ts","../src/components/utils/numberUtils.ts","../src/components/utils/getPaidPriceText.ts","../src/components/utils/getPlanPrice.ts","../src/components/checkout/components/Button.tsx","../src/components/checkout/components/InputField.tsx","../src/components/checkout/components/Skeletons.style.ts","../src/components/checkout/components/ContentLoadingSkeleton.tsx","../src/components/utils/onWheelBlur.ts","../src/components/common/VolumePerUnitInput.tsx","../src/components/common/VolumeBulkSelect.tsx","../src/components/common/TiersSelectContainer.tsx","../src/components/paywall/PlanPrice.tsx","../src/components/paywall/PlanCompatibleAddons.tsx","../src/components/paywall/PlanOffering.tsx","../src/components/paywall/BillingPeriodPicker.tsx","../src/components/utils/calculateDiscountRate.ts","../src/assets/powered-by-stigg.svg","../src/components/common/PoweredByStigg.tsx","../src/components/paywall/utils/hasPricePoints.ts","../src/components/paywall/utils/getPlansToDisplay.ts","../src/components/paywall/Paywall.tsx","../node_modules/regenerator-runtime/runtime.js","../src/services/logger.ts","../src/components/paywall/utils/computeDefaultBillingPeriod.ts","../src/components/paywall/utils/calculateTrialDaysLeft.ts","../src/components/checkout/configurations/typography.ts","../src/components/common/mapExternalTheme.ts","../src/components/paywall/utils/mapPaywallData.ts","../src/components/StiggProvider.tsx","../src/hooks/useStiggContext.ts","../src/components/paywall/hooks/useLoadPaywallData.ts","../src/components/paywall/paywallTextOverrides.ts","../src/assets/check-stigg.svg","../src/components/paywall/PaywallLoader.tsx","../src/theme/Fonts.tsx","../src/theme/Theme.tsx","../src/components/customerPortal/hooks/useCustomerPortal.ts","../src/components/customerPortal/customerPortalTextOverrides.ts","../src/components/customerPortal/customerPortalTheme.ts","../src/components/customerPortal/CustomerPortalProvider.tsx","../src/components/paywall/PaywallContainer.tsx","../src/components/customerPortal/common/StyledButton.tsx","../src/assets/edit-icon.svg","../src/components/customerPortal/common/SectionHeader.ts","../src/components/customerPortal/common/SectionTitle.tsx","../src/components/customerPortal/types.ts","../src/components/customerPortal/subscriptionOverview/SubscriptionsOverviewHeader.tsx","../src/components/customerPortal/subscriptionOverview/tabs/AddonsList.tsx","../src/components/customerPortal/subscriptionOverview/tabs/Promotions.tsx","../src/components/customerPortal/subscriptionOverview/tabs/SubscriptionTabs.style.tsx","../src/components/customerPortal/subscriptionOverview/tabs/SubscriptionTabs.tsx","../src/components/common/mediaQuery.ts","../src/components/hooks/useIsScreenWiderThan.ts","../src/components/customerPortal/subscriptionOverview/SubscriptionOverviewLoader.tsx","../src/components/customerPortal/subscriptionOverview/subscriptionScheduledUpdates/SubscriptionScheduledUpdateRow.tsx","../src/components/customerPortal/subscriptionOverview/subscriptionScheduledUpdates/SubscriptionScheduledUpdatesAlert.tsx","../src/components/customerPortal/common/SectionContainer.tsx","../src/components/customerPortal/subscriptionOverview/upcomingBilling/NextEstimatedBill.tsx","../src/components/customerPortal/subscriptionOverview/upcomingBilling/NoUpcomingBilling.tsx","../src/components/customerPortal/subscriptionOverview/ContactCustomerSupport.tsx","../src/components/customerPortal/subscriptionOverview/upcomingBilling/UpcomingBilling.tsx","../src/assets/sand-clock.svg","../src/components/common/InformationTooltip.tsx","../src/components/common/LongText.tsx","../src/components/customerPortal/subscriptionOverview/subscriptionView/TrialPanel.tsx","../src/components/customerPortal/subscriptionOverview/subscriptionView/SubscriptionView.tsx","../src/components/customerPortal/usage/featureUsage/FeatureUsage.helper.ts","../src/components/customerPortal/usage/featureUsage/FeatureUsageProgressBar.tsx","../src/components/customerPortal/usage/featureUsage/EntitlementCTAButton.tsx","../src/components/customerPortal/subscriptionOverview/charges/ChargeItem.tsx","../src/components/customerPortal/subscriptionOverview/charges/ChargeList.tsx","../src/components/customerPortal/subscriptionOverview/SubscriptionsOverview.tsx","../src/components/customerPortal/CustomerPortalHeader.tsx","../src/components/customerPortal/common/ExternalLinkButton.tsx","../src/components/customerPortal/billing/InformationGrid.tsx","../src/components/customerPortal/common/SkeletonButton.tsx","../src/components/customerPortal/billing/PaymentDetailsSection.tsx","../src/components/customerPortal/paywall/CustomerPortalPaywall.style.ts","../src/components/customerPortal/paywall/CustomerPortalPaywall.tsx","../src/components/customerPortal/CustomerPortal.style.ts","../src/components/utils/getFeatureName.ts","../src/components/customerPortal/usage/featureUsage/FeatureUsage.style.ts","../src/components/customerPortal/usage/featureUsage/FeatureUsage.tsx","../src/components/customerPortal/usage/CustomerUsageData.style.tsx","../src/components/customerPortal/usage/CustomerUsageData.tsx","../src/components/customerPortal/CustomerPortalContainer.tsx","../src/components/customerPortal/CustomerPortal.tsx","../src/components/customerPortal/billing/InvoicesSection.tsx","../src/components/checkout/steps/addons/addon.utils.ts","../src/components/checkout/hooks/useAddonsStepModel.ts","../src/components/checkout/hooks/useCheckoutModel.ts","../src/components/checkout/hooks/useLoadCheckout.ts","../src/components/utils/priceUtils.ts","../src/components/utils/planPrices.ts","../src/components/checkout/hooks/usePlanStepModel.ts","../src/components/checkout/hooks/useProgressBarModel.ts","../src/components/checkout/hooks/useSubscriptionModel.ts","../src/components/checkout/hooks/usePreviewSubscription.ts","../src/components/checkout/hooks/usePaymentStepModel.ts","../src/components/checkout/configurations/textOverrides.ts","../src/components/checkout/configurations/theme.ts","../src/components/checkout/CheckoutProvider.tsx","../src/components/checkout/CheckoutContainer.style.ts","../src/components/checkout/progressBar/CheckoutProgressBar.style.ts","../src/components/checkout/progressBar/CheckoutProgressBar.tsx","../src/components/hooks/useChargeSort.ts","../src/components/checkout/hooks/useCouponModel.ts","../src/assets/plus-icon.svg","../src/components/checkout/promotionCode/AddPromotionCodeButton.tsx","../src/components/checkout/promotionCode/AddPromotionCode.tsx","../src/components/checkout/promotionCode/AppliedPromotionCode.tsx","../src/components/checkout/promotionCode/PromotionCodeSection.tsx","../src/components/checkout/steps/payment/stripe/StripePaymentForm.tsx","../src/components/checkout/steps/payment/stripe/useStripeIntegration.ts","../src/components/checkout/hooks/useSubscriptionState.ts","../src/components/checkout/steps/payment/stripe/stripe.utils.ts","../src/components/checkout/summary/CheckoutSuccess.tsx","../src/components/checkout/steps/payment/stripe/useSubmit.ts","../src/components/checkout/summary/components/WithSkeleton.tsx","../src/components/checkout/summary/components/CheckoutCaptions.tsx","../src/components/checkout/summary/components/getPriceBreakdownString.ts","../src/components/checkout/summary/components/GraduatedPriceBreakdown.tsx","../src/components/common/CollapsableSectionIcon.tsx","../src/components/checkout/summary/components/LineItems.tsx","../src/components/checkout/summary/CheckoutSummary.tsx","../src/components/checkout/summary/CheckoutSummarySkeleton.tsx","../src/components/checkout/steps/addons/CheckoutAddonsStep.style.tsx","../src/components/checkout/steps/addons/CheckoutAddonsStep.tsx","../src/components/checkout/steps/payment/PaymentMethods.style.ts","../src/components/checkout/steps/payment/PaymentMethods.tsx","../src/components/checkout/steps/payment/PaymentStep.tsx","../src/components/checkout/components/ChangePlanButton.tsx","../src/components/checkout/planHeader/PlanHeader.tsx","../src/components/checkout/formatting.ts","../src/components/checkout/steps/plan/BillingPeriodPicker.style.tsx","../src/components/checkout/steps/plan/BillingPeriodPicker.tsx","../src/components/checkout/steps/plan/CheckoutChargeList.tsx","../src/components/checkout/steps/plan/CheckoutPlanStep.style.tsx","../src/components/checkout/steps/plan/CheckoutPlanStep.tsx","../src/assets/arrow-right.svg","../src/components/checkout/components/StyledArrow.tsx","../src/components/checkout/components/DowngradeToFreeContainer.tsx","../src/components/checkout/CheckoutContainer.tsx","../src/components/checkout/Checkout.tsx","../src/components/hooks/useWaitForCheckoutCompleted.ts","../src/hooks/useBooleanEntitlement.ts","../src/hooks/useNumericEntitlement.ts","../src/hooks/useMeteredEntitlement.ts","../src/hooks/useFetch.ts","../src/hooks/useActiveSubscriptions.ts","../src/hooks/usePaywall.ts","../src/hooks/useCustomerPortal.ts","../src/components/BooleanEntitlementGuard.tsx","../src/components/NumericEntitlementGuard.tsx","../src/components/MeteredEntitlementGuard.tsx"],"sourcesContent":["export function calculateUnitQuantityText(\n minUnitQuantity?: number | null,\n maxUnitQuantity?: number | null,\n unitsPlural?: string | null,\n) {\n const unitsText = unitsPlural ? ` ${unitsPlural}` : '';\n\n // copy for only maxunit\n if ((!minUnitQuantity || minUnitQuantity === 1) && maxUnitQuantity) {\n return `Up to ${maxUnitQuantity}${unitsText}`;\n }\n\n // both limits\n if (minUnitQuantity && minUnitQuantity > 1 && maxUnitQuantity) {\n return `${minUnitQuantity}-${maxUnitQuantity}${unitsText}`;\n }\n\n if (minUnitQuantity && minUnitQuantity > 1) {\n return `Minimum ${minUnitQuantity}${unitsText}`;\n }\n\n return '';\n}\n","export function formatNumber(usageLimit: number | null | undefined) {\n return usageLimit?.toLocaleString('en-US', {\n maximumFractionDigits: 0,\n });\n}\n","import React, { CSSProperties, forwardRef } from 'react';\nimport styled from '@emotion/styled/macro';\nimport { FontWeight as StyledFontWeight, Text, TypeProps } from 'styled-typography';\nimport { Theme, useTheme } from '@emotion/react';\nimport { FontWeight } from '../../theme/types';\n\ntype Colors =\n | 'primary'\n | 'primary.main'\n | 'primary.main.light'\n | 'secondary'\n | 'tertiary'\n | 'disabled'\n | 'white'\n | 'warning'\n | 'error';\n\nexport type TypographyProps = {\n children: React.ReactNode;\n variant?: 'h1' | 'h3' | 'h6' | 'body1' | 'caption';\n style?: CSSProperties | undefined;\n color?: Colors;\n // This is being used when passing color from the theming which\n // can be any color and not from the closed list of colors above\n overrideColor?: string;\n className?: string;\n bold?: boolean;\n span?: boolean;\n as?: 'div' | 'p' | 'span';\n} & Omit<TypeProps, 'color' | 'level'>;\n\nfunction getColor(theme: Theme, $color: Colors) {\n switch ($color) {\n case 'white':\n return 'white';\n case 'primary.main':\n return theme.stigg.palette.primary;\n case 'primary.main.light':\n return theme.stigg.palette.primaryLight;\n case 'warning':\n return theme.stigg.palette.warning;\n case 'error':\n return theme.stigg.palette.error;\n default:\n return theme.stigg.palette.text[$color];\n }\n}\n\nconst StyledText = styled(Text)<{ $span?: boolean }>`\n margin: 0;\n ${({ $span }) => $span && `display: inline`};\n`;\n\nfunction getLevel(variant: TypographyProps['variant']) {\n switch (variant) {\n case 'h1':\n return 1;\n case 'h3':\n return 2;\n case 'h6':\n return 3;\n case 'body1':\n return 4;\n case 'caption':\n return 5;\n default:\n return 3;\n }\n}\n\nfunction mapFontWeight(fontWeight: FontWeight) {\n switch (fontWeight) {\n case 'bold':\n return StyledFontWeight.Bold;\n case 'normal':\n return StyledFontWeight.Normal;\n default:\n return StyledFontWeight.Normal;\n }\n}\n\nfunction getFontWeight(theme: Theme, variant: TypographyProps['variant']) {\n const { typography } = theme.stigg;\n switch (variant) {\n case 'h1':\n return mapFontWeight(typography.h1.fontWeight);\n case 'h3':\n return mapFontWeight(typography.h2.fontWeight);\n case 'h6':\n return mapFontWeight(typography.h3.fontWeight);\n case 'body1':\n return mapFontWeight(typography.body.fontWeight);\n case 'caption':\n return mapFontWeight(typography.caption.fontWeight);\n default:\n return StyledFontWeight.Normal;\n }\n}\n\nexport const Typography = forwardRef((props: TypographyProps, ref) => {\n const {\n children,\n span,\n style,\n fontWeight,\n variant = 'body1',\n color = 'primary',\n overrideColor,\n bold,\n as = 'p',\n ...rest\n } = props;\n const theme = useTheme();\n const level = getLevel(variant);\n const levelClassName = `typography-level-${level}`;\n const className = props.className ? `${props.className} ${levelClassName}` : levelClassName;\n\n return (\n <StyledText\n as={as}\n ref={ref}\n {...rest}\n className={className}\n style={style}\n level={level}\n color={overrideColor || getColor(theme, color)}\n fontWeight={fontWeight ?? (bold ? StyledFontWeight.Bold : getFontWeight(theme, variant))}\n $span={span}>\n {children}\n </StyledText>\n );\n});\n","import { Theme } from '@emotion/react';\n\nexport type IconColor = 'primary' | 'secondary';\n\nexport const getIconColor = (color: IconColor | string | undefined, theme: Theme) => {\n switch (color) {\n case 'primary':\n return theme.stigg.palette.text.primary;\n case 'secondary':\n return theme.stigg.palette.text.secondary;\n default:\n return color;\n }\n};\n","<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g clip-path=\"url(#clip0_834_118930)\">\n<path d=\"M12 6.85712V17.1428\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M6.85712 12H17.1428\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M18 0.857117H5.99997C3.15966 0.857117 0.857117 3.15966 0.857117 5.99997V18C0.857117 20.8404 3.15966 23.1428 5.99997 23.1428H18C20.8404 23.1428 23.1428 20.8404 23.1428 18V5.99997C23.1428 3.15966 20.8404 0.857117 18 0.857117Z\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n<defs>\n<clipPath id=\"clip0_834_118930\">\n<rect width=\"24\" height=\"24\" fill=\"white\"/>\n</clipPath>\n</defs>\n</svg>\n","<svg width=\"36\" height=\"36\" viewBox=\"0 0 36 36\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<rect width=\"36\" height=\"36\" rx=\"10\" fill=\"#F5F6F9\"/>\n<path d=\"M26 27V25C26 22.7909 24.2091 21 22 21H14C11.7909 21 10 22.7909 10 25V27\" stroke=\"#7586B0\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M18 17C20.2091 17 22 15.2091 22 13C22 10.7909 20.2091 9 18 9C15.7909 9 14 10.7909 14 13C14 15.2091 15.7909 17 18 17Z\" stroke=\"#7586B0\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<defs>\n<linearGradient id=\"paint0_linear_67_8545\" x1=\"35.0204\" y1=\"1.22449\" x2=\"0\" y2=\"36\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#56ACF6\"/>\n<stop offset=\"1\" stop-color=\"#1559E6\"/>\n</linearGradient>\n</defs>\n</svg>\n","<svg width=\"36\" height=\"36\" viewBox=\"0 0 36 36\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<rect width=\"36\" height=\"36\" rx=\"10\" fill=\"#F5F6F9\"/>\n<path d=\"M27 18.22C27 12.73 22.74 9 18 9C13.31 9 9 12.65 9 18.28C8.4 18.62 8 19.26 8 20V22C8 23.1 8.9 24 10 24H11V17.9C11 14.03 14.13 10.9 18 10.9C21.87 10.9 25 14.03 25 17.9V25H17V27H25C26.1 27 27 26.1 27 25V23.78C27.59 23.47 28 22.86 28 22.14V19.84C28 19.14 27.59 18.53 27 18.22Z\" fill=\"#7586B0\"/>\n<path d=\"M15 20C15.5523 20 16 19.5523 16 19C16 18.4477 15.5523 18 15 18C14.4477 18 14 18.4477 14 19C14 19.5523 14.4477 20 15 20Z\" fill=\"#7586B0\"/>\n<path d=\"M21 20C21.5523 20 22 19.5523 22 19C22 18.4477 21.5523 18 21 18C20.4477 18 20 18.4477 20 19C20 19.5523 20.4477 20 21 20Z\" fill=\"#7586B0\"/>\n<path d=\"M24 17.03C23.52 14.18 21.04 12 18.05 12C15.02 12 11.76 14.51 12.02 18.45C14.49 17.44 16.35 15.24 16.88 12.56C18.19 15.19 20.88 17 24 17.03Z\" fill=\"#7586B0\"/>\n<defs>\n<linearGradient id=\"paint0_linear_267_19310\" x1=\"35.0204\" y1=\"1.22449\" x2=\"0\" y2=\"36\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#56ACF6\"/>\n<stop offset=\"1\" stop-color=\"#1559E6\"/>\n</linearGradient>\n</defs>\n</svg>\n","<svg width=\"36\" height=\"36\" viewBox=\"0 0 36 36\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<rect width=\"36\" height=\"36\" rx=\"10\" fill=\"#F5F6F9\"/>\n<path d=\"M26 10H10C8.89 10 8.01 10.89 8.01 12L8 24C8 25.11 8.89 26 10 26H26C27.11 26 28 25.11 28 24V12C28 10.89 27.11 10 26 10ZM26 24H10V18H26V24ZM26 14H10V12H26V14Z\" fill=\"#7586B0\"/>\n<defs>\n<linearGradient id=\"paint0_linear_67_8556\" x1=\"35.0204\" y1=\"1.22449\" x2=\"0\" y2=\"36\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#56ACF6\"/>\n<stop offset=\"1\" stop-color=\"#1559E6\"/>\n</linearGradient>\n</defs>\n</svg>\n","<svg width=\"21\" height=\"20\" viewBox=\"0 0 21 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g clip-path=\"url(#clip0_834_120339)\">\n<path d=\"M10.3336 19.2858C15.462 19.2858 19.6193 15.1285 19.6193 10.0001C19.6193 4.87171 15.462 0.714355 10.3336 0.714355C5.20521 0.714355 1.04785 4.87171 1.04785 10.0001C1.04785 15.1285 5.20521 19.2858 10.3336 19.2858Z\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M12.7649 7.46052C12.6813 7.22393 12.5523 7.0088 12.3883 6.8256C12.0395 6.43592 11.5327 6.19067 10.9685 6.19067H9.4942C8.55517 6.19067 7.79395 6.9519 7.79395 7.89093C7.79395 8.68995 8.3503 9.38116 9.13086 9.5519L11.3756 10.0429C12.25 10.2342 12.8733 11.0091 12.8733 11.9043C12.8733 12.9562 12.0205 13.8097 10.9685 13.8097H9.6987C8.86936 13.8097 8.16382 13.2797 7.90233 12.5399\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M10.3335 6.19065V4.28589\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M10.3335 15.7144V13.8096\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n<defs>\n<clipPath id=\"clip0_834_120339\">\n<rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(0.333496)\"/>\n</clipPath>\n</defs>\n</svg>\n","<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M6.95392 1.03353C7.1196 1.56038 6.82682 2.12178 6.29997 2.28746C5.79034 2.44773 5.30237 2.68036 4.85175 2.98146C3.76168 3.70982 2.95789 4.79361 2.57732 6.04817C2.19675 7.30273 2.26296 8.65044 2.76466 9.86166C3.26637 11.0729 4.17252 12.0727 5.32873 12.6907C6.48494 13.3087 7.81967 13.5067 9.10549 13.2509C10.3913 12.9951 11.5487 12.3014 12.3804 11.288C13.2121 10.2746 13.6666 9.00413 13.6666 7.69312C13.6666 7.14083 14.1144 6.69312 14.6666 6.69312C15.2189 6.69312 15.6666 7.14083 15.6666 7.69312C15.6666 7.92228 15.6564 8.15052 15.6361 8.37721C15.6465 8.44937 15.6492 8.52379 15.6432 8.59952L15.6392 8.64883C15.6298 8.75932 15.6028 8.86407 15.5612 8.96057C15.3409 10.2743 14.7807 11.5158 13.9264 12.5568C12.8012 13.9279 11.2353 14.8664 9.49568 15.2125C7.75603 15.5585 5.95022 15.2906 4.38594 14.4545C2.82166 13.6184 1.59568 12.2657 0.916905 10.627C0.238131 8.98832 0.148554 7.16495 0.663439 5.4676C1.17832 3.77025 2.26581 2.30394 3.74061 1.31852C4.35023 0.911179 5.01049 0.596408 5.69999 0.379577C6.22684 0.213898 6.78824 0.506683 6.95392 1.03353ZM7.56761 1.27284C7.61434 0.722538 8.09832 0.314306 8.64863 0.361031L8.69791 0.365373C9.24791 0.415584 9.65307 0.902149 9.60286 1.45215C9.55265 2.00214 9.06608 2.4073 8.51608 2.35709L8.47942 2.35386C7.92912 2.30714 7.52089 1.82315 7.56761 1.27284ZM12.4186 2.90891C12.8384 2.55014 13.4697 2.59967 13.8284 3.01954C13.8498 3.04454 13.871 3.06967 13.892 3.09494C14.2454 3.51937 14.1878 4.14991 13.7634 4.50329C13.339 4.85667 12.7084 4.79906 12.355 4.37463C12.3395 4.35592 12.3238 4.33731 12.3079 4.31879C11.9492 3.89892 11.9987 3.26769 12.4186 2.90891ZM8.99998 5.33352C8.99998 4.78124 8.55226 4.33352 7.99998 4.33352C7.44769 4.33352 6.99998 4.78124 6.99998 5.33352V8.00019C6.99998 8.55247 7.44769 9.00019 7.99998 9.00019H10.6666C11.2189 9.00019 11.6666 8.55247 11.6666 8.00019C11.6666 7.4479 11.2189 7.00019 10.6666 7.00019H8.99998V5.33352Z\" fill=\"#7586B0\"/>\n</svg>\n","<svg width=\"24\" height=\"25\" viewBox=\"0 0 24 25\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g clip-path=\"url(#clip0_834_116282)\">\n<path d=\"M21.4286 5.32483H2.57146C1.62469 5.32483 0.857178 6.09235 0.857178 7.03911V10.4677C0.857178 11.4145 1.62469 12.182 2.57146 12.182H21.4286C22.3754 12.182 23.1429 11.4145 23.1429 10.4677V7.03911C23.1429 6.09235 22.3754 5.32483 21.4286 5.32483Z\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M21.4287 12.182V21.6106C21.4287 22.0652 21.248 22.5013 20.9266 22.8227C20.6051 23.1442 20.169 23.3249 19.7144 23.3249H4.28582C3.83116 23.3249 3.39513 23.1442 3.07363 22.8227C2.75215 22.5013 2.57153 22.0652 2.57153 21.6106V12.182\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M12 5.32483V23.3248\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M17.1429 1.03912L12 5.32484L6.85718 1.03912\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n<defs>\n<clipPath id=\"clip0_834_116282\">\n<rect width=\"24\" height=\"24\" fill=\"white\" transform=\"translate(0 0.182007)\"/>\n</clipPath>\n</defs>\n</svg>\n","<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M10.8333 2.5C6.69168 2.5 3.33334 5.85833 3.33334 10H0.833344L4.07501 13.2417L4.13334 13.3583L7.50001 10H5.00001C5.00001 6.775 7.60834 4.16667 10.8333 4.16667C14.0583 4.16667 16.6667 6.775 16.6667 10C16.6667 13.225 14.0583 15.8333 10.8333 15.8333C9.22501 15.8333 7.76668 15.175 6.71668 14.1167L5.53334 15.3C6.89168 16.6583 8.75834 17.5 10.8333 17.5C14.975 17.5 18.3333 14.1417 18.3333 10C18.3333 5.85833 14.975 2.5 10.8333 2.5ZM10 6.66667V10.8333L13.5667 12.95L14.1667 11.9417L11.25 10.2083V6.66667H10Z\" fill=\"#6678A7\"/>\n</svg>\n","<svg width=\"36\" height=\"36\" viewBox=\"0 0 36 36\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<rect width=\"36\" height=\"36\" rx=\"10\" fill=\"url(#paint0_linear_834_118583)\"/>\n<rect width=\"36\" height=\"36\" rx=\"10\" fill=\"#F5F6F9\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M15.9539 7.70028C16.1196 8.22713 15.8268 8.78853 15.3 8.95421C14.4906 9.20875 13.7155 9.57824 12.9999 10.0564C11.2686 11.2132 9.99197 12.9346 9.38754 14.9271C8.78311 16.9196 8.88826 19.0601 9.68509 20.9838C10.4819 22.9075 11.9211 24.4954 13.7574 25.477C15.5938 26.4585 17.7136 26.7729 19.7558 26.3667C21.798 25.9605 23.6362 24.8588 24.9571 23.2492C26.278 21.6396 27 19.6219 27 17.5397C27 16.9874 27.4477 16.5397 28 16.5397C28.5523 16.5397 29 16.9874 29 17.5397C29 17.8969 28.9826 18.2526 28.9483 18.6056C28.9662 18.6949 28.9722 18.7883 28.9645 18.8837L28.9606 18.9309C28.9496 19.0607 28.9143 19.1825 28.8595 19.2924C28.5513 21.2017 27.7432 23.007 26.5031 24.518C24.8886 26.4852 22.642 27.8318 20.146 28.3283C17.65 28.8248 15.059 28.4405 12.8146 27.2408C10.5702 26.0411 8.81122 24.1004 7.83733 21.7492C6.86343 19.398 6.73491 16.7819 7.47366 14.3465C8.21241 11.9112 9.77272 9.80737 11.8887 8.3935C12.7634 7.80905 13.7107 7.35743 14.7 7.04633C15.2269 6.88065 15.7883 7.17343 15.9539 7.70028ZM17.8497 7.95155C17.8964 7.40125 18.3804 6.99302 18.9307 7.03974L18.9779 7.04385C19.528 7.0929 19.9342 7.57861 19.8851 8.12871C19.8361 8.67881 19.3503 9.085 18.8002 9.03595L18.7615 9.03257C18.2112 8.98585 17.8029 8.50186 17.8497 7.95155ZM22.8579 9.19953C23.172 8.74525 23.7949 8.63161 24.2492 8.9457C24.2751 8.96361 24.3009 8.98162 24.3266 8.99974C24.7782 9.31772 24.8865 9.94155 24.5685 10.3931C24.2505 10.8447 23.6267 10.953 23.1751 10.635C23.1541 10.6202 23.1329 10.6054 23.1118 10.5908C22.6575 10.2767 22.5438 9.6538 22.8579 9.19953ZM26.6058 12.8085C27.1045 12.5712 27.7011 12.7831 27.9384 13.2818C27.9519 13.3102 27.9653 13.3387 27.9786 13.3672C28.2116 13.868 27.9946 14.4628 27.4939 14.6958C26.9931 14.9288 26.3983 14.7117 26.1653 14.211L26.1506 14.1796L26.1324 14.1411C25.8951 13.6424 26.1071 13.0458 26.6058 12.8085ZM19 14.0003C19 13.448 18.5523 13.0003 18 13.0003C17.4477 13.0003 17 13.448 17 14.0003V18.0003C17 18.5526 17.4477 19.0003 18 19.0003H22C22.5523 19.0003 23 18.5526 23 18.0003C23 17.448 22.5523 17.0003 22 17.0003H19V14.0003Z\" fill=\"#7586B0\"/>\n<defs>\n<linearGradient id=\"paint0_linear_834_118583\" x1=\"35.0204\" y1=\"1.22449\" x2=\"0\" y2=\"36\" gradientUnits=\"userSpaceOnUse\">\n</linearGradient>\n</defs>\n</svg>\n","<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M9.95394 1.70028C10.1196 2.22713 9.82684 2.78853 9.29999 2.95421C8.49057 3.20875 7.71555 3.57824 6.99987 4.05644C5.26859 5.21324 3.99197 6.93456 3.38754 8.9271C2.78311 10.9196 2.88826 13.0601 3.68509 14.9838C4.48191 16.9075 5.9211 18.4954 7.75743 19.477C9.59377 20.4585 11.7136 20.7729 13.7558 20.3667C15.798 19.9605 17.6362 18.8588 18.9571 17.2492C20.278 15.6396 21 13.6219 21 11.5397C21 10.9874 21.4477 10.5397 22 10.5397C22.5523 10.5397 23 10.9874 23 11.5397C23 11.8969 22.9826 12.2526 22.9483 12.6056C22.9662 12.6949 22.9722 12.7883 22.9645 12.8837L22.9606 12.9309C22.9496 13.0607 22.9143 13.1825 22.8595 13.2924C22.5513 15.2017 21.7432 17.007 20.5031 18.518C18.8886 20.4852 16.642 21.8318 14.146 22.3283C11.65 22.8248 9.05905 22.4405 6.81464 21.2408C4.57023 20.0411 2.81122 18.1004 1.83733 15.7492C0.863434 13.398 0.734911 10.7819 1.47366 8.34653C2.21241 5.91121 3.77272 3.80737 5.88873 2.3935C6.76341 1.80905 7.71072 1.35743 8.70001 1.04633C9.22686 0.880646 9.78826 1.17343 9.95394 1.70028ZM11.8497 1.95155C11.8964 1.40125 12.3804 0.993017 12.9307 1.03974L12.9779 1.04385C13.528 1.0929 13.9342 1.57861 13.8851 2.12871C13.8361 2.67881 13.3503 3.085 12.8002 3.03595L12.7615 3.03257C12.2112 2.98585 11.8029 2.50186 11.8497 1.95155ZM16.8579 3.19953C17.172 2.74525 17.7949 2.63161 18.2492 2.9457C18.2751 2.96361 18.3009 2.98162 18.3266 2.99974C18.7782 3.31772 18.8865 3.94155 18.5685 4.39311C18.2505 4.84467 17.6267 4.95296 17.1751 4.63498C17.1541 4.62016 17.1329 4.60542 17.1118 4.59078C16.6575 4.27669 16.5438 3.6538 16.8579 3.19953ZM20.6058 6.80846C21.1045 6.57117 21.7011 6.78308 21.9384 7.28179C21.9519 7.3102 21.9653 7.33869 21.9786 7.36723C22.2116 7.86796 21.9946 8.46276 21.4939 8.69577C20.9931 8.92877 20.3983 8.71174 20.1653 8.21101L20.1506 8.17957L20.1324 8.14112C19.8951 7.64241 20.1071 7.04576 20.6058 6.80846ZM13 8.00027C13 7.44798 12.5523 7.00027 12 7.00027C11.4477 7.00027 11 7.44798 11 8.00027V12.0003C11 12.5526 11.4477 13.0003 12 13.0003H16C16.5523 13.0003 17 12.5526 17 12.0003C17 11.448 16.5523 11.0003 16 11.0003H13V8.00027Z\" fill=\"#7586B0\"/>\n</svg>\n","<svg width=\"36\" height=\"36\" viewBox=\"0 0 36 36\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n\n<rect width=\"36\" height=\"36\" rx=\"10\" fill=\"#F5F6F9\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M9 12C9 10.8954 9.89543 10 11 10H25C26.1046 10 27 10.8954 27 12V26C27 27.1046 26.1046 28 25 28H11C9.89543 28 9 27.1046 9 26V12Z\" stroke=\"#7586B0\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M22 8V12\" stroke=\"#7586B0\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M14 8V12\" stroke=\"#7586B0\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M9 16H27\" stroke=\"#7586B0\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<defs>\n<linearGradient id=\"paint0_linear_45_8861\" x1=\"35.0204\" y1=\"1.22449\" x2=\"0\" y2=\"36\" gradientUnits=\"userSpaceOnUse\">\n<stop stop-color=\"#56ACF6\"/>\n<stop offset=\"1\" stop-color=\"#1559E6\"/>\n</linearGradient>\n</defs>\n</svg>\n","<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g id=\"trash-2\">\n<path id=\"Shape\" d=\"M3 6H5H21\" stroke=\"#F88078\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path id=\"Shape_2\" d=\"M20 6C20 5.44772 19.5523 5 19 5C18.4477 5 18 5.44772 18 6H20ZM6 6C6 5.44772 5.55228 5 5 5C4.44772 5 4 5.44772 4 6H6ZM7 6C7 6.55228 7.44772 7 8 7C8.55228 7 9 6.55228 9 6H7ZM15 6C15 6.55228 15.4477 7 16 7C16.5523 7 17 6.55228 17 6H15ZM18 6V20H20V6H18ZM18 20C18 20.5523 17.5523 21 17 21V23C18.6569 23 20 21.6569 20 20H18ZM17 21H7V23H17V21ZM7 21C6.44772 21 6 20.5523 6 20H4C4 21.6569 5.34315 23 7 23V21ZM6 20V6H4V20H6ZM9 6V4H7V6H9ZM9 4C9 3.44772 9.44772 3 10 3V1C8.34315 1 7 2.34315 7 4H9ZM10 3H14V1H10V3ZM14 3C14.5523 3 15 3.44772 15 4H17C17 2.34315 15.6569 1 14 1V3ZM15 4V6H17V4H15Z\" fill=\"#F88078\"/>\n<path id=\"Shape_3\" d=\"M10 11V17\" stroke=\"#F88078\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path id=\"Shape_4\" d=\"M14 11V17\" stroke=\"#F88078\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n</svg>\n","<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M21.1667 4H2.83333C1.82081 4 1 4.89543 1 6V18C1 19.1046 1.82081 20 2.83333 20H21.1667C22.1792 20 23 19.1046 23 18V6C23 4.89543 22.1792 4 21.1667 4Z\" fill=\"#C6C6C7\"/>\n<path opacity=\"0.3\" d=\"M19.75 16.4286H17.5C17.0125 16.4286 16.75 16.2 16.75 15.6667C16.75 15.1334 17.0125 14.9048 17.5 14.9048H19.75C20.2375 14.9048 20.5 15.1334 20.5 15.6667C20.5 16.2 20.2375 16.4286 19.75 16.4286ZM15.25 16.4286H13C12.5125 16.4286 12.25 16.2 12.25 15.6667C12.25 15.1334 12.5125 14.9048 13 14.9048H15.25C15.7375 14.9048 16 15.1334 16 15.6667C16 16.2 15.7375 16.4286 15.25 16.4286ZM10.75 16.4286H8.5C8.0125 16.4286 7.75 16.2 7.75 15.6667C7.75 15.1334 8.0125 14.9048 8.5 14.9048H10.75C11.2375 14.9048 11.5 15.1334 11.5 15.6667C11.5 16.2 11.2375 16.4286 10.75 16.4286ZM6.25 16.4286H4C3.5125 16.4286 3.25 16.2 3.25 15.6667C3.25 15.1334 3.5125 14.9048 4 14.9048H6.25C6.7375 14.9048 7 15.1334 7 15.6667C7 16.2 6.7375 16.4286 6.25 16.4286Z\" fill=\"black\"/>\n</svg>\n","<svg width=\"21\" height=\"20\" viewBox=\"0 0 21 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<circle cx=\"10.333\" cy=\"10\" r=\"9\" fill=\"white\" stroke=\"#327EEE\" stroke-width=\"2\"/>\n</svg>\n","<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g id=\"Group 16159\">\n<circle id=\"Ellipse 5\" cx=\"10\" cy=\"10\" r=\"9.25\" fill=\"#327EEE\" stroke=\"#327EEE\" stroke-width=\"1.5\"/>\n<path id=\"Shape\" d=\"M5 10.3636L8.63667 14L12.637 10L14.6372 8\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n</svg>\n","<svg width=\"21\" height=\"20\" viewBox=\"0 0 21 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g id=\"Stepper indicators\">\n<circle id=\"Ellipse 5\" cx=\"10.667\" cy=\"10\" r=\"9.25\" fill=\"#B3BCD3\" stroke=\"#B3BCD3\" stroke-width=\"1.5\"/>\n<path id=\"Shape\" d=\"M5.66699 10.3636L9.30366 14L13.304 10L15.3042 8\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n</svg>\n","<svg width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M9 3L7.9425 4.0575L12.1275 8.25H3V9.75H12.1275L7.9425 13.9425L9 15L15 9L9 3Z\" fill=\"white\"/>\n</svg>\n","<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M15.8337 5.34199L14.6587 4.16699L10.0003 8.82533L5.34199 4.16699L4.16699 5.34199L8.82533 10.0003L4.16699 14.6587L5.34199 15.8337L10.0003 11.1753L14.6587 15.8337L15.8337 14.6587L11.1753 10.0003L15.8337 5.34199Z\" fill=\"#327EEE\"/>\n</svg>\n","<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g id=\"check\">\n<path id=\"Shape\" d=\"M20 7L9 18L4 13\" stroke=\"#F5F6F9\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n</svg>","<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g clip-path=\"url(#clip0_1889_12169)\">\n<path d=\"M11.4286 7.42578L8 13.1401\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path d=\"M14.857 13.1412C15.3274 12.0123 15.5118 10.7848 15.3938 9.56751C15.2758 8.35027 14.8592 7.18097 14.1808 6.16341C13.5024 5.14585 12.5833 4.31152 11.5051 3.73446C10.4268 3.1574 9.22281 2.85547 7.99986 2.85547C6.77691 2.85547 5.57288 3.1574 4.49463 3.73446C3.41639 4.31152 2.49729 5.14585 1.81892 6.16341C1.14055 7.18097 0.723889 8.35027 0.605928 9.56751C0.487968 10.7848 0.672354 12.0123 1.14272 13.1412H14.857Z\" stroke=\"#7586B0\" stroke-width=\"1.71429\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n<defs>\n<clipPath id=\"clip0_1889_12169\">\n<rect width=\"16\" height=\"16\" fill=\"white\"/>\n</clipPath>\n</defs>\n</svg>\n","<svg width=\"16\" height=\"16\" viewBox=\"0 0 18 18\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g id=\"tag--tags-bookmark-favorite\">\n<path id=\"Vector\" d=\"M1.26995 11.9426L6.05743 16.7301C6.2305 16.903 6.4651 17.0001 6.7097 17.0001C6.95431 17.0001 7.18891 16.903 7.36198 16.7301L16.8631 7.22895C16.9108 7.18332 16.9478 7.12758 16.9712 7.06583C16.9946 7.00408 17.0039 6.93787 16.9985 6.87205L16.2724 2.15839C16.2664 2.04607 16.2192 1.93992 16.1396 1.86038C16.0601 1.78085 15.9539 1.73357 15.8416 1.72764L11.128 1.00152C11.0622 0.996055 10.9959 1.00538 10.9342 1.0288C10.8724 1.05222 10.8167 1.08916 10.7711 1.1369L1.26995 10.638C1.09709 10.8111 1 11.0457 1 11.2903C1 11.5349 1.09709 11.7695 1.26995 11.9426Z\" stroke=\"#327EEE\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path id=\"Vector_2\" d=\"M12.5548 6.05884C12.3916 6.05884 12.2351 5.99401 12.1197 5.87861C12.0043 5.76321 11.9395 5.60669 11.9395 5.44348C11.9395 5.28028 12.0043 5.12376 12.1197 5.00836C12.2351 4.89296 12.3916 4.82812 12.5548 4.82812C12.718 4.82812 12.8745 4.89296 12.9899 5.00836C13.1053 5.12376 13.1702 5.28028 13.1702 5.44348C13.1702 5.60669 13.1053 5.76321 12.9899 5.87861C12.8745 5.99401 12.718 6.05884 12.5548 6.05884Z\" stroke=\"#327EEE\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n</svg>\n","<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M12 3V21.0001M3 11.9446H21\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>","<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M3 12H21\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>","<svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M3 11.1429L9.71572 17.8586C9.79383 17.9367 9.92046 17.9367 9.99856 17.8586L21.8571 6\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\"/>\n</svg> ","import styled from '@emotion/styled/macro';\nimport React, { CSSProperties } from 'react';\nimport { css, useTheme } from '@emotion/react';\nimport { getIconColor, IconColor } from './iconColor';\nimport * as customIcons from './customIcons';\n\nexport type Icons = keyof typeof customIcons;\n\nconst IconWrapper = styled.div<{ $pathColor?: string; $rectColor?: string; $strokeColor?: string }>`\n ${({ $pathColor }) =>\n $pathColor &&\n css`\n path {\n fill: ${$pathColor};\n }\n `}\n\n ${({ $rectColor }) =>\n $rectColor &&\n css`\n svg rect {\n fill: ${$rectColor};\n }\n `}\n\n\n ${({ $strokeColor }) =>\n $strokeColor &&\n css`\n g {\n stroke: ${$strokeColor};\n }\n `}\n`;\n\nexport type IconProps = {\n icon: Icons;\n className?: string;\n style?: CSSProperties;\n svgPathColor?: IconColor | string;\n svgRectColor?: IconColor | string;\n svgStrokeColor?: IconColor | string;\n};\n\nexport function Icon({ icon, className, style, svgPathColor, svgRectColor, svgStrokeColor }: IconProps) {\n const IconComponent = (customIcons as any)[icon];\n const theme = useTheme();\n\n return (\n <IconWrapper\n className={className}\n style={style}\n $pathColor={getIconColor(svgPathColor, theme)}\n $rectColor={getIconColor(svgRectColor, theme)}\n $strokeColor={getIconColor(svgStrokeColor, theme)}>\n <IconComponent />\n </IconWrapper>\n );\n}\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { EntitlementResetPeriod } from '@stigg/js-client-sdk';\nimport { calculateUnitQuantityText } from './utils/calculateUnitQuantityText';\nimport { formatNumber } from '../utils/formatNumber';\nimport { Typography } from '../common/Typography';\nimport { Icon } from '../common/Icon';\n\nconst EntitlementName = styled(Typography)`\n margin: 0;\n`;\n\nconst EntitlementRowContainer = styled.div`\n display: flex;\n align-items: center;\n gap: 16px;\n`;\n\nconst EntitlementIconContainer = styled.div`\n display: flex;\n align-items: center;\n flex-shrink: 0;\n`;\n\nconst EntitlementIcon = styled(Icon)`\n width: 24px;\n height: 24px;\n color: ${({ theme }) => theme.stigg.palette.primary};\n`;\n\ntype EntitlementRowProps = {\n hasUnlimitedUsage?: boolean | null;\n isCustom?: boolean | null;\n usageLimit?: number | null;\n minUnitQuantity?: number | null;\n maxUnitQuantity?: number | null;\n resetPeriod?: EntitlementResetPeriod | null;\n displayNameOverride?: string | null;\n enumValues?: string[] | null;\n feature?: {\n id: string;\n units?: string | null | undefined;\n unitsPlural?: string | null | undefined;\n unitQuantity?: number | null;\n displayName: string;\n } | null;\n};\n\nfunction getResetPeriodText(resetPeriod?: EntitlementResetPeriod) {\n if (!resetPeriod) {\n return '';\n }\n\n switch (resetPeriod) {\n case EntitlementResetPeriod.Day: {\n return 'per day';\n }\n case EntitlementResetPeriod.Hour: {\n return 'per hour';\n }\n case EntitlementResetPeriod.Week: {\n return 'per week';\n }\n case EntitlementResetPeriod.Month: {\n return 'per month';\n }\n case EntitlementResetPeriod.Year: {\n return 'per year';\n }\n default: {\n return '';\n }\n }\n}\n\nfunction getEntitlementDisplay({\n hasUnlimitedUsage,\n feature,\n resetPeriod,\n usageLimit,\n minUnitQuantity,\n maxUnitQuantity,\n isCustom,\n enumValues,\n}: EntitlementRowProps) {\n const unitBasedEntitlement = minUnitQuantity || maxUnitQuantity;\n const resetPeriodSuffix = `${resetPeriod && usageLimit ? `${getResetPeriodText(resetPeriod)}` : ''}`;\n\n if (enumValues) {\n const featureUnits = enumValues.length === 1 ? feature?.units : feature?.unitsPlural;\n return `${enumValues.length} ${featureUnits}`;\n }\n\n if (hasUnlimitedUsage) {\n return `Unlimited ${feature?.unitsPlural}`;\n }\n\n if (isCustom) {\n return `Custom ${feature?.unitsPlural}`;\n }\n\n if (usageLimit) {\n const featureUnits = usageLimit === 1 ? feature?.units : feature?.unitsPlural;\n return `${formatNumber(usageLimit)} ${featureUnits} ${resetPeriodSuffix}`;\n }\n\n if (unitBasedEntitlement) {\n return calculateUnitQuantityText(minUnitQuantity, maxUnitQuantity, feature?.unitsPlural);\n }\n\n return feature?.displayName;\n}\n\nexport function EntitlementRow(props: EntitlementRowProps) {\n const { displayNameOverride, ...restProps } = props;\n const displayName = getEntitlementDisplay(restProps);\n\n return (\n <EntitlementRowContainer className={`stigg-entitlement-row-container stigg-entitlement-${restProps.feature?.id}`}>\n <EntitlementIconContainer>\n <EntitlementIcon icon=\"EntitlementCheck\" className=\"stigg-entitlement-row-icon\" />\n </EntitlementIconContainer>\n <EntitlementName className=\"stigg-entitlement-name\" variant=\"h6\" color=\"secondary\">\n {displayNameOverride || displayName}\n </EntitlementName>\n </EntitlementRowContainer>\n );\n}\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { BillingPeriod, WidgetType } from '@stigg/js-client-sdk';\nimport { EntitlementRow } from './EntitlementRow';\nimport { PaywallPlan } from './types';\nimport { PaywallLocalization } from './paywallTextOverrides';\nimport { Typography } from '../common/Typography';\n\nconst PlanEntitlementsContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 16px;\n`;\n\nfunction getTitle(plan: PaywallPlan, paywallLocale: PaywallLocalization, hasFeatures: boolean) {\n if (paywallLocale.entitlementsTitle) {\n return paywallLocale.entitlementsTitle(plan);\n }\n let title = hasFeatures ? `Includes:` : '';\n if (plan.basePlan) {\n title = `Everything in ${plan.basePlan.displayName}${hasFeatures ? ', plus:' : ''}`;\n }\n\n return title;\n}\n\nexport function PlanEntitlements({\n plan,\n billingPeriod,\n paywallLocale,\n}: {\n plan: PaywallPlan;\n billingPeriod: BillingPeriod;\n paywallLocale: PaywallLocalization;\n}) {\n const prices = plan.pricePoints?.filter((price) => price.billingPeriod === billingPeriod) || [];\n const unitBasedEntitlements = prices\n .filter((price) => (price?.minUnitQuantity && price?.minUnitQuantity > 1) || price?.maxUnitQuantity)\n .map((price) => {\n return (\n <EntitlementRow\n key={`priceUnitEntitlement-${price?.feature?.displayName}`}\n feature={price?.feature ? { ...price.feature, id: price.feature.featureId } : null}\n minUnitQuantity={price?.minUnitQuantity}\n maxUnitQuantity={price?.maxUnitQuantity}\n />\n );\n });\n\n const visibleEntitlements = plan.entitlements.filter(\n (entitlement) => !(entitlement.hiddenFromWidgets || []).includes(WidgetType.Paywall),\n );\n\n const hasFeatures = unitBasedEntitlements.length > 0 || visibleEntitlements.length > 0;\n\n return (\n <PlanEntitlementsContainer className=\"stigg-plan-entitlements-container\">\n <Typography className=\"stigg-plan-entitlements-title\" color=\"secondary\" variant=\"h6\" bold>\n {getTitle(plan, paywallLocale, hasFeatures)}\n </Typography>\n {unitBasedEntitlements}\n {visibleEntitlements.map((entitlement) => (\n <EntitlementRow\n key={entitlement.feature?.id}\n displayNameOverride={entitlement.displayNameOverride}\n feature={entitlement.feature}\n resetPeriod={entitlement.resetPeriod}\n hasUnlimitedUsage={entitlement.hasUnlimitedUsage}\n usageLimit={entitlement.usageLimit}\n enumValues={entitlement.enumValues}\n isCustom={entitlement.isCustom}\n />\n ))}\n </PlanEntitlementsContainer>\n );\n}\n","import {\n BillingPeriod,\n Customer,\n Plan,\n Subscription,\n CustomerPortalSubscriptionScheduledUpdateDataFragment,\n PaywallCurrency,\n PaywallCalculatedPricePoint,\n BillableFeature,\n} from '@stigg/js-client-sdk';\nimport { CustomizedTheme } from '../../theme/Theme';\n\nexport type PaywallData = {\n plans: PaywallPlan[] | null;\n customer: Customer | null;\n currentSubscription: Subscription | null;\n currentSubscriptionOverride?: CurrentSubscriptionOverride | null;\n isCustomerOnTrial: boolean;\n isLoading: boolean;\n selectedBillingPeriod: BillingPeriod;\n setSelectedBillingPeriod: (billingPeriod: BillingPeriod) => void;\n availableBillingPeriods: BillingPeriod[];\n locale: string;\n configuration?: CustomizedTheme;\n};\n\nexport type CurrentSubscriptionOverride = {\n planId: string;\n billableFeatures: BillableFeature[];\n};\n\nexport enum SubscribeIntentionType {\n START_TRIAL = 'START_TRIAL',\n UPGRADE_TRIAL_TO_PAID = 'UPGRADE_TRIAL_TO_PAID',\n REQUEST_CUSTOM_PLAN_ACCESS = 'REQUEST_CUSTOM_PLAN_ACCESS',\n CHANGE_BILLING_PERIOD = 'CHANGE_BILLING_PERIOD',\n CHANGE_UNIT_QUANTITY = 'CHANGE_UNIT_QUANTITY',\n UPGRADE_PLAN = 'UPGRADE_PLAN',\n DOWNGRADE_PLAN = 'DOWNGRADE_PLAN',\n CANCEL_SCHEDULED_UPDATES = 'CANCEL_SCHEDULED_UPDATES',\n}\n\nexport type PaywallPlan = Plan & {\n isLowerThanCurrentPlan?: boolean;\n isTriable: boolean;\n isCurrentCustomerPlan: boolean;\n currentCustomerPlanBillingPeriod?: BillingPeriod;\n trialDaysLeft?: number;\n isNextPlan?: (billingPeriod: BillingPeriod) => boolean;\n scheduledUpdate?: CustomerPortalSubscriptionScheduledUpdateDataFragment;\n paywallCurrency?: PaywallCurrency;\n paywallCalculatedPricePoints?: PaywallCalculatedPricePoint[];\n};\n\nexport type OnPlanSelectedCallbackFn = ({\n plan,\n customer,\n subscription,\n intentionType,\n selectedBillingPeriod,\n billableFeatures,\n}: {\n plan: Plan;\n customer: Customer | null;\n subscription: Subscription | null;\n intentionType: SubscribeIntentionType;\n selectedBillingPeriod: BillingPeriod;\n billableFeatures?: BillableFeature[];\n}) => void | Promise<void>;\n\nexport type ShouldHidePlanFn = ({ plan }: { plan: PaywallPlan }) => boolean | Promise<boolean>;\n\nexport type CurrentSubscriptionOverrideFn = ({\n currentSubscription,\n}: {\n currentSubscription: Subscription | null;\n}) => CurrentSubscriptionOverride | null | undefined;\n\nexport type SelectDefaultTierIndexFn = ({ plan }: { plan: PaywallPlan }) => number;\n","import Color from 'color';\nimport merge from 'lodash/merge';\nimport { HorizontalAlignment, StiggTheme } from './types';\nimport { CustomizedTheme } from './Theme';\n\nexport const flexLayoutMapper = (horizontalAlignment: HorizontalAlignment) => {\n return {\n left: 'flex-start',\n center: 'center',\n right: 'flex-end',\n }[horizontalAlignment];\n};\n\nexport const getResolvedTheme = (customizedTheme?: CustomizedTheme): StiggTheme => {\n const primaryColor = Color(customizedTheme?.palette?.primary || '#327EEE');\n const textColor = Color(customizedTheme?.palette?.text?.primary || '#001E6C');\n const successColor = Color('#4CAF50');\n const errorColor = Color('#f44336');\n\n const baseTheme: StiggTheme = {\n palette: {\n primary: primaryColor.hex(),\n primaryDark: primaryColor.darken(0.3).hex(),\n primaryLight: primaryColor.alpha(0.5).toString(),\n backgroundPaper: '#FFFFFF',\n backgroundHighlight: '#F5F6F9',\n backgroundSection: primaryColor.alpha(0.1).toString(),\n backgroundButton: primaryColor.alpha(0.08).toString(),\n outlinedBorder: '#C4CBDD',\n outlinedRestingBorder: primaryColor.alpha(0.5).toString(),\n outlinedHoverBackground: primaryColor.lightness(95).hex(),\n switchBorder: primaryColor.lighten(0.1).hex(),\n switchFill: primaryColor.lighten(0.5).hex(),\n switchHandle: primaryColor.hex(),\n warning: '#ed6c02',\n error: errorColor.hex(),\n errorDark: errorColor.darken(0.3).hex(),\n success: successColor.hex(),\n successDark: successColor.darken(0.3).hex(),\n white: '#FFFFFF',\n text: {\n primary: textColor.hex(),\n secondary: textColor.alpha(0.75).toString(),\n tertiary: textColor.alpha(0.5).toString(),\n disabled: textColor.alpha(0.35).toString(),\n },\n },\n layout: {\n planMinWidth: '330px',\n planMaxWidth: '330px',\n planMargin: '20px',\n planPadding: '40px',\n ctaAlignment: 'left',\n headerAlignment: 'left',\n descriptionAlignment: 'left',\n descriptionMinHeight: '80px',\n switchBottomSpacing: '40px',\n },\n shadows: {\n light: '0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px rgba(0, 0, 0, 0.14), 0px 1px 3px rgba(0, 0, 0, 0.12)',\n popover:\n '0px 4px 5px -2px rgba(0, 30, 108, 0.2), 0px 7px 10px 1px rgba(0, 30, 108, 0.14), 0px 2px 16px 1px rgba(0, 30, 108, 0.12)',\n },\n border: {\n radius: '10px',\n },\n typography: {\n fontFamily: 'custom-font, DM Sans, sans-serif',\n h1: {\n fontSize: '32px',\n fontWeight: 'bold',\n },\n h2: {\n fontSize: '24px',\n fontWeight: 'normal',\n },\n h3: {\n fontSize: '16px',\n fontWeight: 'normal',\n },\n body: {\n fontSize: '14px',\n fontWeight: 'normal',\n },\n caption: {\n fontSize: '12px',\n fontWeight: 'normal',\n },\n },\n customCss: '',\n };\n\n return merge(baseTheme, customizedTheme);\n};\n","import React from 'react';\nimport moment from 'moment';\nimport isNil from 'lodash/isNil';\nimport {\n CustomerPortalSubscription,\n CustomerPortalSubscriptionScheduledUpdateDataFragment,\n SubscriptionScheduleType,\n} from '@stigg/js-client-sdk';\nimport { CustomerPortalSubscriptionPriceFragment } from '@stigg/api-client-js/src/generated/sdk';\nimport { compact, map } from 'lodash';\nimport { BillingPeriodChangeVariables, UnitAmountChangeVariables } from '../../types';\n\nconst formatDate = (date: string) => moment.utc(date).format('MMMM Do, yyyy');\n\ntype GetSubscriptionScheduleUpdateTextsProps = {\n scheduledUpdate: CustomerPortalSubscriptionScheduledUpdateDataFragment | undefined;\n subscriptionPrices?: CustomerPortalSubscriptionPriceFragment[];\n billingPeriodRange?: CustomerPortalSubscription['billingPeriodRange'];\n options?: { withDate?: boolean; postfix?: string };\n};\n\nexport function getSubscriptionScheduleUpdateTexts({\n scheduledUpdate,\n subscriptionPrices,\n billingPeriodRange,\n options = {},\n}: GetSubscriptionScheduleUpdateTextsProps) {\n if (!scheduledUpdate) {\n return {};\n }\n const { withDate, postfix = '' } = options;\n\n switch (scheduledUpdate.subscriptionScheduleType) {\n case SubscriptionScheduleType.Downgrade: {\n let shouldShowDate = withDate;\n if (isNil(shouldShowDate) && billingPeriodRange?.end) {\n shouldShowDate = !moment(scheduledUpdate.scheduledExecutionTime).isSame(billingPeriodRange?.end, 'day');\n }\n\n const line1 = (\n <>\n Your subscription will be downgraded to the <b>{scheduledUpdate.targetPackage?.displayName} plan</b>{' '}\n {shouldShowDate ? <>on {formatDate(scheduledUpdate.scheduledExecutionTime)}</> : postfix}.\n </>\n );\n const line2 = `Until then you still have access to your current plan.`;\n\n return { line1, line2 };\n }\n\n case SubscriptionScheduleType.BillingPeriod: {\n const variables = scheduledUpdate.scheduleVariables as BillingPeriodChangeVariables;\n const line1 = (\n <>\n Your billing cycle will change to <b>{variables.billingPeriod?.toLocaleLowerCase()}</b>{' '}\n {withDate ? <>on {formatDate(scheduledUpdate.scheduledExecutionTime)}</> : postfix}.\n </>\n );\n\n return { line1 };\n }\n\n case SubscriptionScheduleType.UnitAmount: {\n const variables = scheduledUpdate.scheduleVariables as UnitAmountChangeVariables;\n const feature = compact(map(subscriptionPrices, 'feature')).find(({ id }) => id === variables.featureId);\n const { featureUnits, featureUnitsPlural } = feature || {};\n const unitsText = variables.newUnitAmount === 1 ? featureUnits : featureUnitsPlural;\n\n const line1 = (\n <>\n Your subscription will be updated to <b>{variables.newUnitAmount}</b> {unitsText}{' '}\n {withDate ? <>on {formatDate(scheduledUpdate.scheduledExecutionTime)}</> : postfix}.\n </>\n );\n\n const line2 = `Until then you still have access to your current ${featureUnits} count.`;\n\n return { line1, line2 };\n }\n\n default: {\n return {};\n }\n }\n}\n","import { BillingModel, TiersMode, BillingPeriod, Price, PriceTierFragment, Subscription } from '@stigg/js-client-sdk';\nimport isNil from 'lodash/isNil';\nimport { sum } from 'lodash';\nimport { PaywallPlan } from '../paywall';\nimport { CurrentSubscriptionOverride, SelectDefaultTierIndexFn } from '../paywall/types';\n\nexport function getPriceFeatureUnit(price: Price) {\n if (!price.feature) {\n return '';\n }\n\n return (price.feature.unitQuantity !== 1 ? price.feature.unitsPlural : price.feature.units) || '';\n}\n\nexport function getTierByQuantity(tiers: PriceTierFragment[], quantity: number): PriceTierFragment {\n const ascendingTiers = [...tiers];\n // Sort tiers by upTo value, ascending, if upTo is not set,\n // put it at the end as it represent the last infinity tier\n ascendingTiers.sort((a, b) => (!a.upTo ? 1 : !b.upTo ? -1 : a.upTo - b.upTo));\n\n for (const tier of ascendingTiers) {\n if (tier.upTo && quantity <= tier.upTo) {\n return tier;\n }\n }\n\n return ascendingTiers[ascendingTiers.length - 1];\n}\n\nfunction getAmount(amount: number, selectedBillingPeriod?: BillingPeriod, shouldShowMonthlyPriceAmount?: boolean) {\n return selectedBillingPeriod === BillingPeriod.Annually && shouldShowMonthlyPriceAmount ? amount / 12 : amount;\n}\n\nfunction calculateTierPriceVolume(\n currentTier: PriceTierFragment,\n perUnitQuantity: number,\n selectedBillingPeriod?: BillingPeriod,\n shouldShowMonthlyPriceAmount?: boolean,\n): number {\n let amount = 0;\n\n if (currentTier.unitPrice) {\n const unitPrice = getAmount(currentTier.unitPrice.amount, selectedBillingPeriod, shouldShowMonthlyPriceAmount);\n amount += unitPrice * perUnitQuantity;\n }\n\n if (currentTier.flatPrice) {\n amount += getAmount(currentTier.flatPrice.amount, selectedBillingPeriod, shouldShowMonthlyPriceAmount);\n }\n\n return amount;\n}\n\nexport function calculateTierPriceGraduated(\n tiers: PriceTierFragment[],\n unitQuantity: number,\n selectedBillingPeriod?: BillingPeriod,\n shouldShowMonthlyPriceAmount?: boolean,\n): { total: number; breakdown: Array<{ unitQuantity: number; amount: number }> } {\n let remainingQuantity = unitQuantity;\n let prevUpTo = 0;\n let currentTierIndex = 0;\n\n const breakdown: Array<{ unitQuantity: number; amount: number }> = [];\n\n while (remainingQuantity > 0 && currentTierIndex < tiers.length) {\n const tier = tiers[currentTierIndex];\n const { upTo } = tier;\n\n if (isNil(upTo)) {\n breakdown.push({\n unitQuantity: remainingQuantity,\n amount: calculateTierPriceVolume(tier, remainingQuantity, selectedBillingPeriod, shouldShowMonthlyPriceAmount),\n });\n remainingQuantity = 0;\n } else {\n const unitsInTier = upTo - prevUpTo;\n const consumed = Math.min(remainingQuantity, unitsInTier);\n breakdown.push({\n unitQuantity: consumed,\n amount: calculateTierPriceVolume(tier, consumed, selectedBillingPeriod, shouldShowMonthlyPriceAmount),\n });\n remainingQuantity -= consumed;\n prevUpTo = upTo;\n }\n\n currentTierIndex += 1;\n }\n\n const total = sum(breakdown.map(({ amount }) => amount));\n\n return {\n breakdown,\n total,\n };\n}\n\nexport function calculateTierPrice(\n price: Pick<Price, 'tiers' | 'tiersMode'>,\n unitQuantity: number,\n selectedBillingPeriod?: BillingPeriod,\n shouldShowMonthlyPriceAmount?: boolean,\n): number {\n if (!price.tiers) {\n return 0;\n }\n\n switch (price.tiersMode) {\n case TiersMode.Volume: {\n const currentTier = getTierByQuantity(price.tiers, unitQuantity);\n return calculateTierPriceVolume(currentTier, unitQuantity, selectedBillingPeriod, shouldShowMonthlyPriceAmount);\n }\n case TiersMode.Graduated: {\n return calculateTierPriceGraduated(price.tiers, unitQuantity, selectedBillingPeriod, shouldShowMonthlyPriceAmount)\n .total;\n }\n default:\n return 0;\n }\n}\n\nexport function hasTierWithUnitPrice(tiers: PriceTierFragment[] | null | undefined) {\n return tiers?.some(({ unitPrice, upTo }) => unitPrice && !isNil(upTo));\n}\n\nexport function isBulkTiers(tiers: PriceTierFragment[] | null | undefined) {\n return tiers?.every(({ unitPrice, upTo }) => !unitPrice || isNil(upTo));\n}\n\nexport function isQuantityInFirstTier(tiers: PriceTierFragment[] | null | undefined, quantity: number) {\n return tiers?.[0].upTo && quantity <= tiers[0].upTo;\n}\n\nexport function getTiersPerUnitQuantities({\n plan,\n billingPeriod,\n currentSubscription,\n currentSubscriptionOverride,\n selectDefaultTierIndex,\n}: {\n plan: PaywallPlan;\n billingPeriod: BillingPeriod;\n currentSubscription: Subscription | null;\n currentSubscriptionOverride?: CurrentSubscriptionOverride | null;\n selectDefaultTierIndex?: SelectDefaultTierIndexFn;\n}): Record<string, number> {\n const planTierPrices = plan.pricePoints.filter(\n (price) => price.billingPeriod === billingPeriod && price.isTieredPrice,\n );\n\n if (planTierPrices.length === 1) {\n const [price] = planTierPrices;\n const { featureId } = price.feature!;\n const selectedDefaultTierIndex = selectDefaultTierIndex ? selectDefaultTierIndex({ plan }) : 0;\n const currentTier = price.tiers![selectedDefaultTierIndex];\n let quantity = hasTierWithUnitPrice(price.tiers) ? 1 : currentTier.upTo || 1;\n\n if (currentSubscription && currentSubscription.plan.id === plan.id) {\n const tieredPrice = currentSubscription.prices.find(\n (subscriptionPrice) =>\n subscriptionPrice.pricingModel === BillingModel.PerUnit &&\n subscriptionPrice.tiersMode &&\n subscriptionPrice.feature?.featureId === featureId,\n );\n\n if (tieredPrice) {\n quantity = tieredPrice.feature!.unitQuantity || 1;\n }\n }\n\n if (currentSubscriptionOverride?.planId === plan.id) {\n const billableFeature = currentSubscriptionOverride.billableFeatures.find(\n (billableFeature) => billableFeature.featureId === featureId,\n );\n if (billableFeature) {\n quantity = billableFeature.quantity;\n }\n }\n\n const result: Record<string, number> = {};\n result[featureId] = quantity;\n\n return result;\n }\n\n return {};\n}\n\nexport enum PriceTierComparison {\n Lower = -1,\n Equal = 0,\n Higher = 1,\n}\n\nexport function compareSelectedTierToCurrentTier({\n perUnitQuantityByFeature,\n plan,\n currentSubscription,\n currentSubscriptionOverride,\n}: {\n perUnitQuantityByFeature: Record<string, number>;\n plan: PaywallPlan;\n currentSubscription: Subscription | null;\n currentSubscriptionOverride?: CurrentSubscriptionOverride | null;\n}): PriceTierComparison {\n if (!currentSubscription) {\n return PriceTierComparison.Equal;\n }\n\n let currentTierPrice = currentSubscription.prices.find(\n (price) => price.pricingModel === BillingModel.PerUnit && price.tiersMode,\n );\n\n const isCurrentPlanOverride = plan.id === currentSubscriptionOverride?.planId;\n if (isCurrentPlanOverride) {\n currentTierPrice =\n plan.pricePoints.find((price) => price.pricingModel === BillingModel.PerUnit && price.tiersMode) ??\n currentTierPrice;\n }\n\n if (!currentTierPrice) {\n return PriceTierComparison.Equal;\n }\n\n const { featureId, unitQuantity } = currentTierPrice.feature!;\n let oldQuantity = unitQuantity;\n\n if (isCurrentPlanOverride) {\n const billableFeature = currentSubscriptionOverride?.billableFeatures?.find(\n (billableFeature) => billableFeature.featureId === featureId,\n );\n if (billableFeature) {\n oldQuantity = billableFeature.quantity;\n }\n }\n\n if (isNil(oldQuantity)) {\n return PriceTierComparison.Equal;\n }\n\n const newQuantity = perUnitQuantityByFeature[featureId];\n\n if (newQuantity < oldQuantity) {\n return PriceTierComparison.Lower;\n }\n if (newQuantity > oldQuantity) {\n return PriceTierComparison.Higher;\n }\n return PriceTierComparison.Equal;\n}\n","import React, { useState } from 'react';\nimport { BillingPeriod, Customer, PricingType, Subscription } from '@stigg/js-client-sdk';\nimport { isFunction } from 'lodash';\nimport ClipLoader from 'react-spinners/ClipLoader';\nimport styled from '@emotion/styled/macro';\nimport { css, useTheme } from '@emotion/react';\nimport { CurrentSubscriptionOverride, PaywallPlan, SubscribeIntentionType } from './types';\nimport { PaywallLocalization } from './paywallTextOverrides';\nimport { flexLayoutMapper } from '../../theme/getResolvedTheme';\nimport { Typography } from '../common/Typography';\nimport { getSubscriptionScheduleUpdateTexts } from '../utils/getSubscriptionScheduleUpdateTexts';\nimport { compareSelectedTierToCurrentTier, PriceTierComparison } from '../utils/priceTierUtils';\n\nconst LoadingIndicator = styled(ClipLoader)`\n margin-left: 10px;\n`;\n\nconst OfferingButton = styled.button<{ $disabled?: boolean }>`\n cursor: ${({ $disabled }) => ($disabled ? 'default' : 'pointer')};\n padding: 8px 12px;\n background-color: ${({ theme }) => theme.stigg.palette.backgroundButton};\n border: ${({ theme }) => `1px solid ${theme.stigg.palette.outlinedRestingBorder}`};\n border-radius: 10px;\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 42px;\n min-width: 120px;\n\n ${({ $disabled }) =>\n $disabled &&\n css`\n opacity: 0.5;\n `}\n\n &:hover {\n background-color: ${({ theme, $disabled }) =>\n $disabled ? theme.stigg.palette.backgroundButton : theme.stigg.palette.outlinedHoverBackground};\n }\n`;\n\nconst ButtonText = styled(Typography)`\n margin: 0;\n font-size: 15px;\n`;\n\nconst ScheduledUpdateText = styled(Typography)`\n min-height: 87px;\n`;\n\nconst CancelScheduledUpdateButton = styled.button<{ $disabled?: boolean }>`\n background: none;\n border: none;\n padding: 0;\n color: ${({ theme }) => theme.stigg.palette.text.secondary};\n\n text-decoration: underline;\n cursor: pointer;\n`;\n\nconst TrialDaysLeft = styled(Typography)`\n margin-top: 8px;\n margin-bottom: 17px;\n min-height: 20px;\n`;\n\nconst ButtonLayout = styled.div`\n display: flex;\n flex-direction: column;\n margin-top: 4px;\n align-self: ${({ theme }) => flexLayoutMapper(theme.stigg.layout.ctaAlignment)};\n width: 100%;\n`;\n\ntype PlanOfferingButtonProps = {\n isNextPlan?: boolean;\n customer: Customer | null;\n plan: PaywallPlan;\n currentSubscription: Subscription | null;\n currentSubscriptionOverride?: CurrentSubscriptionOverride | null;\n billingPeriod: BillingPeriod;\n isCustomerOnTrial: boolean;\n paywallLocale: PaywallLocalization;\n onPlanSelected: (intentionType: SubscribeIntentionType) => void | Promise<void>;\n withTrialLeftRow: boolean;\n perUnitQuantityByFeature: Record<string, number>;\n};\n\nexport function PlanOfferingButton({\n isNextPlan,\n customer,\n plan,\n billingPeriod,\n isCustomerOnTrial,\n onPlanSelected,\n paywallLocale,\n withTrialLeftRow,\n currentSubscription,\n currentSubscriptionOverride,\n perUnitQuantityByFeature,\n}: PlanOfferingButtonProps) {\n const theme = useTheme();\n const [isLoading, setIsLoading] = useState(false);\n const {\n currentPlan,\n custom,\n downgrade,\n startTrial,\n upgrade,\n startNew,\n switchToBillingPeriod,\n cancelScheduledUpdate,\n } = paywallLocale.planCTAButton;\n const resolvedDowngrade = isFunction(downgrade) ? downgrade(plan) : downgrade;\n const resolvedUpgrade = isFunction(upgrade) ? upgrade(plan) : upgrade;\n\n const buttonProps: {\n title: string;\n disabled: boolean;\n intentionType: SubscribeIntentionType;\n } = {\n title: customer ? (plan.isLowerThanCurrentPlan ? resolvedDowngrade : resolvedUpgrade) : startNew,\n disabled: false,\n intentionType: plan.isLowerThanCurrentPlan\n ? SubscribeIntentionType.DOWNGRADE_PLAN\n : isCustomerOnTrial\n ? SubscribeIntentionType.UPGRADE_TRIAL_TO_PAID\n : SubscribeIntentionType.UPGRADE_PLAN,\n };\n const isCustomPrice = plan.pricingType === PricingType.Custom;\n\n const { line1: scheduledUpdateText } = getSubscriptionScheduleUpdateTexts({\n scheduledUpdate: plan.scheduledUpdate,\n options: { withDate: true },\n });\n\n if (plan.isTriable && !plan.isCurrentCustomerPlan && !isCustomerOnTrial) {\n buttonProps.title = startTrial(plan);\n buttonProps.intentionType = SubscribeIntentionType.START_TRIAL;\n } else if (plan.isCurrentCustomerPlan && !isCustomerOnTrial) {\n const isSameBillingPeriod = billingPeriod === plan.currentCustomerPlanBillingPeriod;\n\n if (\n isSameBillingPeriod ||\n (plan.pricingType && [PricingType.Free, PricingType.Custom].includes(plan.pricingType))\n ) {\n const planComparison = compareSelectedTierToCurrentTier({\n perUnitQuantityByFeature,\n plan,\n currentSubscription,\n currentSubscriptionOverride,\n });\n switch (planComparison) {\n case PriceTierComparison.Lower:\n buttonProps.intentionType = SubscribeIntentionType.CHANGE_UNIT_QUANTITY;\n buttonProps.title = resolvedDowngrade;\n break;\n case PriceTierComparison.Higher:\n buttonProps.intentionType = SubscribeIntentionType.CHANGE_UNIT_QUANTITY;\n buttonProps.title = resolvedUpgrade;\n break;\n\n default:\n buttonProps.title = currentPlan;\n buttonProps.disabled = true;\n break;\n }\n } else {\n buttonProps.title = switchToBillingPeriod(billingPeriod);\n buttonProps.intentionType = SubscribeIntentionType.CHANGE_BILLING_PERIOD;\n }\n } else if (isCustomPrice) {\n buttonProps.title = typeof custom === 'function' ? custom({ plan, selectedBillingPeriod: billingPeriod }) : custom;\n buttonProps.intentionType = SubscribeIntentionType.REQUEST_CUSTOM_PLAN_ACCESS;\n }\n\n if (isNextPlan && plan.scheduledUpdate) {\n buttonProps.disabled = false;\n buttonProps.title = cancelScheduledUpdate;\n buttonProps.intentionType = SubscribeIntentionType.CANCEL_SCHEDULED_UPDATES;\n }\n\n const isDisabled = isLoading || buttonProps.disabled;\n return (\n <>\n <ButtonLayout className=\"stigg-paywall-plan-button-layout\">\n {isNextPlan && scheduledUpdateText ? (\n <ScheduledUpdateText color=\"secondary\" variant=\"body1\" className=\"stigg-paywall-schedule-update-text\">\n {scheduledUpdateText}{' '}\n <CancelScheduledUpdateButton\n color=\"secondary\"\n onClick={() => {\n setIsLoading(true);\n Promise.resolve(onPlanSelected(buttonProps.intentionType)).finally(() => setIsLoading(false));\n }}>\n {buttonProps.title}\n </CancelScheduledUpdateButton>\n </ScheduledUpdateText>\n ) : (\n <>\n <OfferingButton\n className=\"stigg-paywall-plan-button\"\n data-testid={`paywall-card-cta-${plan.displayName}`}\n disabled={isDisabled}\n $disabled={isDisabled}\n onClick={() => {\n setIsLoading(true);\n Promise.resolve(onPlanSelected(buttonProps.intentionType)).finally(() => setIsLoading(false));\n }}>\n <ButtonText className=\"stigg-paywall-plan-button-text\" variant=\"h6\" color=\"primary.main\">\n {buttonProps.title}\n </ButtonText>\n {isLoading && <LoadingIndicator color={theme.stigg.palette.text.disabled} loading size={16} />}\n </OfferingButton>\n\n {!withTrialLeftRow ? (\n <div style={{ height: '20px' }} />\n ) : (\n <TrialDaysLeft className=\"stigg-trial-days-left-text\" variant=\"h6\" color=\"secondary\">\n {plan.isCurrentCustomerPlan && plan.trialDaysLeft && (\n <>\n <b>{plan.trialDaysLeft} days</b> left on your free trial\n </>\n )}\n </TrialDaysLeft>\n )}\n </>\n )}\n </ButtonLayout>\n </>\n );\n}\n","import { Currency } from '@stigg/js-client-sdk';\nimport getSymbolFromCurrency from 'currency-symbol-map';\n\nexport const currencyPriceFormatter = ({\n amount,\n currency = Currency.Usd,\n locale,\n maximumFractionDigits = 5,\n minimumFractionDigits = 0,\n removeTrailingZero,\n}: {\n amount: number;\n currency?: Currency | string;\n locale?: string;\n maximumFractionDigits?: number;\n minimumFractionDigits?: number;\n removeTrailingZero?: boolean;\n}) => {\n const currencyString = currency.toString();\n const currencySymbol = getSymbolFromCurrency(currencyString);\n let formattedPrice = new Intl.NumberFormat(locale, {\n maximumFractionDigits,\n minimumFractionDigits,\n style: 'currency',\n currency: currencyString,\n trailingZeroDisplay: removeTrailingZero ? 'stripIfInteger' : 'auto',\n ...(currencySymbol ? { currencyDisplay: 'code' } : {}),\n } as Intl.NumberFormatOptions).format(amount || 0);\n\n if (currencySymbol) {\n formattedPrice = formattedPrice.replace(currencyString, currencySymbol);\n }\n\n // remove space between currency symbol and price\n formattedPrice = formattedPrice.replace(/\\s/g, '');\n\n return formattedPrice;\n};\n","export function numberFormatter(number: number, { locale }: { locale?: string } = {}) {\n return new Intl.NumberFormat(locale).format(number);\n}\n","import { BillingModel, BillingPeriod, PaywallCalculatedPricePoint, Price } from '@stigg/js-client-sdk';\nimport { currencyPriceFormatter } from './currencyUtils';\nimport { PlanPriceText } from './getPlanPrice';\nimport { calculateTierPrice, getPriceFeatureUnit } from './priceTierUtils';\nimport { PaywallLocalization } from '../paywall';\nimport { numberFormatter } from './numberUtils';\n\ntype GetPaidPriceTextParams = {\n planPrices: Price[];\n paywallCalculatedPrice?: PaywallCalculatedPricePoint;\n selectedBillingPeriod: BillingPeriod;\n locale: string;\n shouldShowMonthlyPriceAmount: boolean;\n paywallLocale: PaywallLocalization;\n perUnitQuantityByFeature?: Record<string, number>;\n};\n\nexport function getPaidPriceText({\n planPrices,\n paywallCalculatedPrice,\n selectedBillingPeriod,\n locale,\n shouldShowMonthlyPriceAmount,\n paywallLocale,\n perUnitQuantityByFeature,\n}: GetPaidPriceTextParams): PlanPriceText {\n const { amount, currency } = paywallCalculatedPrice || planPrices[0];\n const priceAmount = amount || 0;\n\n const isSinglePrice = planPrices.length === 1;\n let priceNumber =\n selectedBillingPeriod === BillingPeriod.Annually && shouldShowMonthlyPriceAmount ? priceAmount / 12 : priceAmount;\n\n let tiers;\n let tierUnits;\n const pricePeriod = paywallLocale.price.pricePeriod(\n shouldShowMonthlyPriceAmount ? BillingPeriod.Monthly : BillingPeriod.Annually,\n );\n let unit = pricePeriod;\n\n for (const price of planPrices) {\n if (price.isTieredPrice && price.tiers) {\n const quantity = perUnitQuantityByFeature?.[price.feature!.featureId] || 1;\n tiers = price.tiers;\n tierUnits = getPriceFeatureUnit(price);\n\n priceNumber += calculateTierPrice(price, quantity, selectedBillingPeriod, shouldShowMonthlyPriceAmount);\n }\n }\n\n if (isSinglePrice) {\n const price = planPrices[0];\n const formattedUnits =\n price.blockSize && price.blockSize > 1\n ? `for ${numberFormatter(price.blockSize)} ${price.feature?.unitsPlural || price.feature?.units || ''}`\n : `per ${price.feature?.units || ''}`;\n\n if (price.pricingModel === BillingModel.PerUnit && !price.isTieredPrice) {\n unit = `${formattedUnits} ${pricePeriod}`;\n } else if (price.pricingModel === BillingModel.UsageBased) {\n unit = `${formattedUnits}`;\n }\n }\n\n return {\n price: currencyPriceFormatter({\n amount: priceNumber,\n currency,\n locale,\n minimumFractionDigits: 2,\n removeTrailingZero: true,\n }),\n unit,\n tiers,\n tierUnits,\n };\n}\n","import { BillingPeriod, PriceTierFragment, PricingType } from '@stigg/js-client-sdk';\nimport { getPaidPriceText } from './getPaidPriceText';\nimport { PaywallPlan, PaywallLocalization } from '../paywall';\n\nexport type PlanPriceText = {\n price: string;\n unit?: string;\n tiers?: PriceTierFragment[] | null | undefined;\n tierUnits?: string;\n};\n\nexport function getPlanPrice(\n plan: PaywallPlan,\n billingPeriod: BillingPeriod,\n paywallLocale: PaywallLocalization,\n locale: string,\n shouldShowMonthlyPriceAmount: boolean,\n perUnitQuantityByFeature?: Record<string, number>,\n): PlanPriceText {\n switch (plan.pricingType) {\n case PricingType.Free:\n if (typeof paywallLocale.price.free === 'function') {\n return paywallLocale.price.free(plan.paywallCurrency);\n }\n\n return paywallLocale.price.free;\n case PricingType.Custom:\n return {\n price:\n typeof paywallLocale.price.custom === 'function'\n ? paywallLocale.price.custom({ plan, selectedBillingPeriod: billingPeriod })\n : paywallLocale.price.custom,\n };\n case PricingType.Paid: {\n const planPrices = plan.pricePoints.filter((pricePoint) => pricePoint.billingPeriod === billingPeriod);\n const paywallCalculatedPrice = plan.paywallCalculatedPricePoints?.find(\n (pricePoint) => pricePoint.billingPeriod === billingPeriod,\n );\n\n if (!planPrices?.length && !paywallCalculatedPrice) {\n return {\n price: paywallLocale.price.priceNotSet,\n };\n }\n\n const paidParams = {\n planPrices,\n paywallCalculatedPrice,\n selectedBillingPeriod: billingPeriod,\n perUnitQuantityByFeature: perUnitQuantityByFeature || {},\n };\n\n return paywallLocale.price.paid\n ? paywallLocale.price.paid({ ...paidParams, plan })\n : getPaidPriceText({ ...paidParams, locale, shouldShowMonthlyPriceAmount, paywallLocale });\n }\n default:\n return {\n price: '',\n };\n }\n}\n","import React from 'react';\n\nimport styled from '@emotion/styled/macro';\nimport MuiButton, { ButtonProps } from '@mui/material/Button';\n\nexport type StyledButtonProps = { $success?: boolean; $error?: boolean };\n\nconst StyledButton = styled(MuiButton, { shouldForwardProp: (prop) => !prop.startsWith('$') })<StyledButtonProps>`\n border-radius: 10px;\n text-transform: none;\n\n background-color: ${({ theme, $success, $error }) => {\n if ($success) {\n return theme.stigg.palette.success;\n }\n if ($error) {\n return theme.stigg.palette.error;\n }\n return '';\n }};\n\n &:hover {\n background-color: ${({ theme, $success, $error }) => {\n if ($success) {\n return theme.stigg.palette.successDark;\n }\n if ($error) {\n return theme.stigg.palette.errorDark;\n }\n return '';\n }};\n }\n`;\n\nexport const Button = ({ variant = 'outlined', ...props }: ButtonProps & StyledButtonProps) => {\n return <StyledButton variant={variant} {...props} />;\n};\n","import styled from '@emotion/styled';\nimport { OutlinedInputProps } from '@mui/material/OutlinedInput';\nimport TextField from '@mui/material/TextField';\n\nexport const InputField = styled(TextField)<OutlinedInputProps>(({ theme }) => ({\n '& .MuiOutlinedInput-root': {\n height: '42px',\n borderRadius: theme.stigg.border.radius,\n fieldset: {\n borderColor: theme.stigg.palette.outlinedBorder,\n },\n '&:not(.Mui-focused):hover fieldset': {\n borderColor: theme.stigg.palette.outlinedRestingBorder,\n },\n },\n '& .MuiInputBase-input': {\n padding: '8px 12px',\n borderRadius: theme.stigg.border.radius,\n fontFamily: theme.stigg.typography.fontFamily,\n color: theme.stigg.palette.text.primary,\n ...theme.stigg.typography.body,\n },\n '& .Mui-error': {\n fontFamily: theme.stigg.typography.fontFamily,\n },\n}));\n","import styled from '@emotion/styled/macro';\nimport Grid from '@mui/material/Grid';\nimport ReactSkeleton from 'react-loading-skeleton';\n\nexport const SkeletonsContainer = styled(Grid, { shouldForwardProp: (prop) => !prop.startsWith('$') })<{\n $gap: number;\n $flexDirection?: 'row' | 'column';\n}>`\n display: flex;\n flex-direction: ${({ $flexDirection }) => $flexDirection || 'row'};\n gap: ${({ $gap }) => $gap}px;\n`;\n\nexport const FlexedSkeletonContainer = styled(SkeletonsContainer)`\n span {\n display: flex;\n flex: 1;\n }\n`;\n\nexport const FlexedSkeleton = styled(Grid)<{ flex: number }>`\n span {\n display: flex;\n flex: ${({ flex }) => flex};\n }\n`;\n\nexport const Skeleton = styled(ReactSkeleton)`\n border-radius: 4px;\n`;\n","import React from 'react';\nimport Divider from '@mui/material/Divider';\nimport Grid from '@mui/material/Grid';\nimport styled from '@emotion/styled/macro';\nimport { FlexedSkeleton, FlexedSkeletonContainer, Skeleton, SkeletonsContainer } from './Skeletons.style';\n\nconst ContentContainer = styled(Grid)`\n display: flex;\n flex-direction: column;\n`;\n\nexport function ContentLoadingSkeleton() {\n return (\n <ContentContainer container>\n <SkeletonsContainer item $gap={48}>\n <Skeleton width={120} height={20} />\n <Skeleton width={120} height={20} />\n </SkeletonsContainer>\n\n <Divider className=\"stigg-checkout-plan-header-divider\" sx={{ marginY: 2 }} />\n\n <ContentContainer item>\n <Skeleton width={120} height={20} />\n\n <FlexedSkeletonContainer $gap={16} marginTop={3}>\n <Skeleton height={20} />\n <Skeleton height={20} />\n </FlexedSkeletonContainer>\n\n <SkeletonsContainer $gap={130} marginTop={3}>\n <FlexedSkeleton flex={1}>\n <Skeleton height={20} />\n </FlexedSkeleton>\n\n <FlexedSkeleton flex={3}>\n <Skeleton height={20} />\n </FlexedSkeleton>\n </SkeletonsContainer>\n </ContentContainer>\n </ContentContainer>\n );\n}\n","import React from 'react';\n\nexport const ON_WHEEL_BLUR = (e: React.WheelEvent<HTMLInputElement>) => (e.target as HTMLElement).blur();\n","import InputAdornment from '@mui/material/InputAdornment';\nimport React from 'react';\nimport { Typography } from './Typography';\nimport { InputField } from '../checkout/components';\nimport { TiersSelectContainerProps } from './TiersSelectContainer';\nimport { ON_WHEEL_BLUR } from '../utils/onWheelBlur';\n\nexport function VolumePerUnitInput({\n width,\n tierUnits,\n value,\n handleChange,\n}: Pick<TiersSelectContainerProps, 'width' | 'tierUnits' | 'value'> & {\n handleChange: (quantity: number) => void;\n}) {\n return (\n <InputField\n type=\"number\"\n onWheel={ON_WHEEL_BLUR}\n fullWidth\n sx={{ minHeight: '46px', width }}\n InputProps={{\n endAdornment: (\n <InputAdornment position=\"end\">\n <Typography variant=\"body1\" color=\"primary\">\n {tierUnits}\n </Typography>\n </InputAdornment>\n ),\n }}\n value={value}\n onChange={(event) => {\n const quantity = event?.target?.value ? Number(event?.target?.value) : null;\n if (quantity) {\n handleChange(quantity);\n }\n }}\n />\n );\n}\n","import { PriceTierFragment } from '@stigg/js-client-sdk';\nimport styled from '@emotion/styled/macro';\nimport OutlinedInput from '@mui/material/OutlinedInput';\nimport Select from '@mui/material/Select';\nimport MenuItem from '@mui/material/MenuItem';\nimport { map } from 'lodash';\nimport React from 'react';\nimport { Typography } from './Typography';\nimport { TiersSelectContainerProps } from './TiersSelectContainer';\nimport { formatNumber } from '../utils/formatNumber';\n\nconst TierSelect = styled(Select)`\n border-radius: 10px;\n min-height: 42px;\n min-width: 120px;\n\n &:hover .MuiOutlinedInput-notchedOutline {\n border-color: ${({ theme }) => theme.stigg.palette.outlinedBorder};\n }\n`;\n\nconst TierInput = styled(OutlinedInput)`\n & .MuiInputBase-input {\n padding: 10px 12px;\n }\n\n &.Mui-focused .MuiOutlinedInput-notchedOutline {\n border-color: ${({ theme }) => theme.stigg.palette.primary} !important;\n }\n`;\n\nexport function VolumeBulkSelect({\n value,\n componentId,\n tierUnits,\n tiers,\n handleChange,\n}: Pick<TiersSelectContainerProps, 'value' | 'componentId' | 'tiers' | 'tierUnits'> & {\n handleChange: (quantity: number) => void;\n}) {\n if (!tiers) {\n return null;\n }\n\n return (\n <TierSelect\n value={value.toString()}\n fullWidth\n onChange={(event) => {\n const quantity = event?.target?.value ? Number(event?.target?.value) : null;\n if (quantity) {\n handleChange(quantity);\n }\n }}\n id={componentId}\n input={<TierInput />}\n MenuProps={{\n MenuListProps: { disablePadding: true },\n PaperProps: {\n sx: { marginTop: '4px', borderRadius: '10px' },\n },\n }}>\n {map(tiers, (tier: PriceTierFragment) => (\n <MenuItem className=\"stigg-price-tier-menu-item-text\" key={tier.upTo} value={tier.upTo?.toString()}>\n <Typography variant=\"body1\" color=\"primary\" style={{ lineHeight: 'unset' }}>\n {formatNumber(tier.upTo)} {tierUnits}\n </Typography>\n </MenuItem>\n ))}\n </TierSelect>\n );\n}\n","import { PriceTierFragment, TiersMode } from '@stigg/js-client-sdk';\nimport React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { hasTierWithUnitPrice } from '../utils/priceTierUtils';\nimport { Typography } from './Typography';\nimport { VolumePerUnitInput } from './VolumePerUnitInput';\nimport { VolumeBulkSelect } from './VolumeBulkSelect';\n\nexport type TiersSelectContainerProps = {\n componentId: string;\n tiers?: PriceTierFragment[] | null;\n tierUnits?: string;\n tiersMode?: TiersMode | null;\n handleChange: (quantity: number) => void;\n value: number;\n width?: number;\n};\n\nconst TiersSelectLayout = styled(Typography)`\n min-height: 46px;\n`;\n\nexport function TiersSelectContainer(props: TiersSelectContainerProps) {\n const { tiers } = props;\n\n return (\n <TiersSelectLayout as=\"div\" className=\"stigg-price-tier-select\">\n {hasTierWithUnitPrice(tiers) ? <VolumePerUnitInput {...props} /> : <VolumeBulkSelect {...props} />}\n </TiersSelectLayout>\n );\n}\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { BillingPeriod } from '@stigg/js-client-sdk';\nimport { PaywallPlan } from './types';\nimport { PaywallLocalization } from './paywallTextOverrides';\nimport { getPlanPrice } from '../utils/getPlanPrice';\nimport { Typography } from '../common/Typography';\nimport { TiersSelectContainer } from '../common/TiersSelectContainer';\n\nconst EMPTY_CHAR = '';\n\nconst PlanPriceContainer = styled(Typography)`\n word-break: break-word;\n width: 100%;\n`;\n\nconst UnitSpan = styled(Typography)`\n white-space: nowrap;\n`;\n\nconst PriceSpan = styled(Typography)`\n white-space: normal;\n min-height: 39px;\n`;\n\ntype PriceBillingPeriodProps = {\n plan: PaywallPlan;\n billingPeriod: BillingPeriod;\n hasMonthlyPrice: boolean;\n hasAnnuallyPrice: boolean;\n paywallLocale: PaywallLocalization;\n};\n\nfunction PriceBillingPeriod({\n plan,\n billingPeriod,\n hasMonthlyPrice,\n hasAnnuallyPrice,\n paywallLocale,\n}: PriceBillingPeriodProps) {\n const hasPrice = plan.pricePoints.find((pricePoint) => pricePoint.billingPeriod === billingPeriod);\n\n let content = EMPTY_CHAR;\n if (hasPrice && hasMonthlyPrice && hasAnnuallyPrice) {\n content = paywallLocale.price.billingPeriod?.(billingPeriod) || `, billed ${billingPeriod.toLowerCase()}`;\n }\n\n return (\n <Typography span className=\"stigg-price-billing-period-text\" variant=\"h6\" color=\"secondary\">\n {content}\n </Typography>\n );\n}\n\nexport const PlanPrice = ({\n showStartingAt,\n withUnitPriceRow,\n withStartingAtRow,\n withTiersRow,\n plan,\n billingPeriod,\n paywallLocale,\n locale,\n hasMonthlyPrice,\n hasAnnuallyPrice,\n perUnitQuantityByFeature,\n setPerUnitQuantityByFeature,\n}: {\n showStartingAt: boolean;\n withUnitPriceRow: boolean;\n withStartingAtRow: boolean;\n withTiersRow: boolean;\n perUnitQuantityByFeature: Record<string, number>;\n setPerUnitQuantityByFeature: React.Dispatch<React.SetStateAction<Record<string, number>>>;\n plan: PaywallPlan;\n billingPeriod: BillingPeriod;\n paywallLocale: PaywallLocalization;\n hasMonthlyPrice: boolean;\n hasAnnuallyPrice: boolean;\n locale: string;\n}) => {\n const { price, unit, tiers, tierUnits } = getPlanPrice(\n plan,\n billingPeriod,\n paywallLocale,\n locale,\n hasMonthlyPrice,\n perUnitQuantityByFeature,\n );\n\n // We currently only support prices with one tier - so we select the first one\n const tieredPrice = plan.pricePoints.find((planPrice) => {\n return planPrice.billingPeriod === billingPeriod && planPrice.isTieredPrice;\n });\n const featureId = tieredPrice ? tieredPrice.feature!.featureId : undefined;\n const perUnitQuantity = perUnitQuantityByFeature[featureId || ''] ?? 1;\n\n const handlePerUnitQuantityChange = (quantity: number) => {\n if (!featureId) {\n return;\n }\n\n setPerUnitQuantityByFeature((prevState) => ({\n ...prevState,\n [featureId]: quantity,\n }));\n };\n\n return (\n <PlanPriceContainer as=\"div\" className=\"stigg-price-text\">\n <>\n {withStartingAtRow && (\n <Typography\n style={{ minHeight: '20px' }}\n className=\"stigg-starting-at-text\"\n variant=\"body1\"\n color=\"secondary\">\n {showStartingAt ? paywallLocale.price.startingAtCaption : EMPTY_CHAR}\n </Typography>\n )}\n\n <PriceSpan className=\"stigg-price-point\" variant=\"h1\">\n {price}\n </PriceSpan>\n\n {withUnitPriceRow && (\n <Typography as=\"div\" className=\"stigg-price-unit-and-billing-period-text\" style={{ minHeight: '48px' }}>\n <UnitSpan className=\"stigg-price-unit-text\" span variant=\"h6\" color=\"secondary\">\n {unit}\n </UnitSpan>\n\n <PriceBillingPeriod\n plan={plan}\n billingPeriod={billingPeriod}\n hasAnnuallyPrice={hasAnnuallyPrice}\n hasMonthlyPrice={hasMonthlyPrice}\n paywallLocale={paywallLocale}\n />\n </Typography>\n )}\n\n {withTiersRow ? (\n <TiersSelectContainer\n componentId={`${plan.id}_${featureId}_tier`}\n tiers={tiers}\n tierUnits={tierUnits}\n tiersMode={tieredPrice?.tiersMode}\n handleChange={handlePerUnitQuantityChange}\n value={perUnitQuantity}\n />\n ) : null}\n </>\n </PlanPriceContainer>\n );\n};\n","import React, { useState } from 'react';\nimport { Addon, WidgetType } from '@stigg/js-client-sdk';\nimport MuiButton from '@mui/material/Button';\nimport styled from '@emotion/styled/macro';\nimport classNames from 'classnames';\nimport { Typography } from '../common/Typography';\nimport { PaywallLocalization } from './paywallTextOverrides';\nimport { Icon } from '../common/Icon';\n\nexport const StyledButton = styled(MuiButton)`\n padding: 0px;\n text-transform: none;\n margin-left: 0px;\n`;\n\nconst ButtonText = styled(Typography)`\n font-size: 14px;\n font-weight: 500;\n`;\n\nconst AddonsBox = styled.div`\n width: 100%;\n gap: 10px;\n`;\n\nconst AddonsList = styled.div`\n margin-top: 10px;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n gap: 4px;\n width: 100%;\n`;\n\nconst AddonRow = styled.div`\n display: flex;\n flex-direction: row;\n flex-wrap: nowrap;\n align-items: center;\n justify-content: space-between;\n padding: 8px 0px;\n max-height: 44px;\n gap: 16px;\n`;\n\nconst AddonName = styled(Typography)`\n overflow: hidden;\n font-feature-settings: 'liga' off, 'clig' off;\n text-overflow: ellipsis;\n font-family: 'DM Sans';\n letter-spacing: 0.15px;\n white-space: nowrap;\n min-width: 0;\n flex-shrink: 1;\n`;\n\nconst AddonIcon = styled(Icon)`\n width: 24px;\n height: 24px;\n color: ${({ theme }) => theme.stigg.palette.primary};\n`;\n\nconst AddonContent = styled.div`\n flex: 1;\n min-width: 0;\n`;\n\nconst Footer = styled.div`\n margin-top: 16px;\n display: flex;\n`;\n\nconst MAX_ADDONS = 4;\n\ntype PlanCompatibleAddonsProps = {\n addons: Addon[];\n paywallLocale: PaywallLocalization;\n};\n\nexport function PlanCompatibleAddons({ addons, paywallLocale }: PlanCompatibleAddonsProps) {\n const [showAllAddons, setShowAllAddons] = useState(false);\n\n if (!addons || addons.length === 0) return null;\n\n const visibleAddons = addons.filter((addon) => !addon.hiddenFromWidgets?.includes(WidgetType.Paywall));\n\n const toggleShowAllAddons = () => {\n setShowAllAddons(!showAllAddons);\n };\n\n const displayedAddons = showAllAddons ? visibleAddons : visibleAddons.slice(0, MAX_ADDONS);\n\n return (\n <AddonsBox className=\"stigg-compatible-addons-container\">\n <Typography className=\"stigg-compatible-addons-header\" color=\"secondary\" variant=\"body1\" bold>\n {paywallLocale.addonsTitle}\n </Typography>\n <AddonsList className=\"stigg-compatible-addons-list\">\n {displayedAddons.map((addon) => {\n return (\n <AddonRow\n key={addon.id}\n className={classNames(`stigg-compatible-addon--${addon.id}`, 'stigg-compatible-addon-item')}>\n <AddonIcon icon=\"Add\" className=\"stigg-compatible-addon-icon\" />\n <AddonContent className=\"stigg-compatible-addon-content\">\n <AddonName variant=\"body1\" color=\"primary\" className=\"stigg-compatible-addon-name\">\n {addon.displayName}\n </AddonName>\n </AddonContent>\n </AddonRow>\n );\n })}\n </AddonsList>\n {visibleAddons.length > MAX_ADDONS && (\n <Footer>\n <StyledButton variant=\"text\" onClick={toggleShowAllAddons}>\n <ButtonText color=\"primary.main\">\n {showAllAddons ? 'Show less' : `Show ${visibleAddons.length - MAX_ADDONS} more`}\n </ButtonText>\n </StyledButton>\n </Footer>\n )}\n </AddonsBox>\n );\n}\n","import React, { useState } from 'react';\nimport { BillableFeature, BillingPeriod, Customer, PricingType, Subscription } from '@stigg/js-client-sdk';\nimport styled from '@emotion/styled/macro';\nimport classNames from 'classnames';\nimport Grid from '@mui/material/Grid';\nimport { PlanEntitlements } from './PlanEntitlements';\nimport { PlanOfferingButton } from './PlanOfferingButton';\nimport { CurrentSubscriptionOverride, PaywallPlan, SelectDefaultTierIndexFn, SubscribeIntentionType } from './types';\nimport { PaywallLocalization } from './paywallTextOverrides';\nimport { flexLayoutMapper } from '../../theme/getResolvedTheme';\nimport { Typography } from '../common/Typography';\nimport MiniSchedule from '../../assets/mini-schedule.svg';\nimport { PlanPrice } from './PlanPrice';\nimport { getTiersPerUnitQuantities } from '../utils/priceTierUtils';\nimport { PlanCompatibleAddons } from './PlanCompatibleAddons';\n\nconst PlanOfferingButtonHeight = '66px';\n\nconst PlanOfferingContainer = styled.div<{ $isHighlighted: boolean; $isCurrentPlan: boolean }>`\n position: relative;\n background-color: ${({ theme, $isCurrentPlan }) =>\n $isCurrentPlan ? theme.stigg.palette.backgroundHighlight : theme.stigg.palette.backgroundPaper};\n border: ${({ theme, $isHighlighted }) =>\n $isHighlighted ? `3px solid ${theme.stigg.palette.primary}` : `1px solid ${theme.stigg.palette.outlinedBorder}`};\n border-radius: 10px;\n padding: ${({ theme }) => theme.stigg.layout.planPadding};\n display: flex;\n min-width: ${({ theme }) => theme.stigg.layout.planMinWidth};\n max-width: ${({ theme }) => theme.stigg.layout.planMaxWidth};\n flex-direction: column;\n align-items: flex-start;\n justify-content: flex-start;\n position: relative;\n`;\n\nconst AddonsContainer = styled.div<{ $planHasEntitlements: boolean }>`\n margin-top: ${({ $planHasEntitlements }) => ($planHasEntitlements ? '32px' : '0px')};\n`;\n\nconst PlanHeader = styled(Typography)`\n padding-bottom: 8px;\n`;\n\nconst Divider = styled.div`\n height: 2px;\n width: 100%;\n background-color: ${({ theme }) => theme.stigg.palette.outlinedBorder};\n margin-bottom: 40px;\n`;\n\nconst PlanDescription = styled(Typography)`\n text-align: ${({ theme }) => theme.stigg.layout.descriptionAlignment};\n min-height: ${({ theme }) => theme.stigg.layout.descriptionMinHeight};\n`;\n\nconst HighlightBadge = styled.div`\n background-color: ${({ theme }) => theme.stigg.palette.primary};\n border-radius: 40px;\n position: absolute;\n top: -12px;\n`;\n\nconst HighlightText = styled(Typography)`\n margin: 0;\n padding: 2px 8px;\n`;\n\nconst HeaderWrapper = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: ${({ theme }) => flexLayoutMapper(theme.stigg.layout.headerAlignment)};\n`;\n\ntype PlanOfferingProps = {\n withUnitPriceRow: boolean;\n withTiersRow: boolean;\n withTrialLeftRow: boolean;\n customer: Customer | null;\n plan: PaywallPlan;\n billingPeriod: BillingPeriod;\n currentSubscription: Subscription | null;\n currentSubscriptionOverride?: CurrentSubscriptionOverride | null;\n isHighlighted: boolean;\n shouldShowDescriptionSection: boolean;\n hasAnnuallyPrice: boolean;\n hasMonthlyPrice: boolean;\n isCustomerOnTrial: boolean;\n onPlanSelected: (intentionType: SubscribeIntentionType, billableFeatures: BillableFeature[]) => void | Promise<void>;\n paywallLocale: PaywallLocalization;\n locale: string;\n withStartingAtRow: boolean;\n isCustomerInCustomPlan: boolean;\n selectDefaultTierIndex?: SelectDefaultTierIndexFn;\n hideCompatibleAddons?: boolean;\n};\n\nconst NextPlanTagContainer = styled.div`\n position: absolute;\n top: 0;\n background-color: ${({ theme }) => theme.stigg.palette.outlinedBorder};\n border-radius: 0px 0px 10px 10px;\n padding: 3px 12px;\n`;\n\nconst StyledMiniSchedule = styled(MiniSchedule)<{ $iconsColor?: string }>`\n display: flex;\n height: 100%;\n margin-right: 4px;\n\n path {\n fill: ${({ theme }) => theme.stigg.palette.text.primary};\n }\n`;\n\nfunction UpcomingChangeTag({ text = 'Next', iconsColor }: { text?: string; iconsColor?: string }) {\n return (\n <NextPlanTagContainer>\n <Grid display=\"flex\" alignItems=\"center\" gap={1}>\n <StyledMiniSchedule $iconsColor={iconsColor} />\n <Typography color=\"primary\" variant=\"body1\">\n {text}\n </Typography>\n </Grid>\n </NextPlanTagContainer>\n );\n}\n\nexport function PlanOffering({\n withUnitPriceRow,\n withTiersRow,\n withTrialLeftRow,\n customer,\n plan,\n billingPeriod,\n isHighlighted,\n currentSubscription,\n currentSubscriptionOverride,\n shouldShowDescriptionSection,\n hasMonthlyPrice,\n hasAnnuallyPrice,\n isCustomerOnTrial,\n onPlanSelected,\n paywallLocale,\n locale,\n withStartingAtRow,\n isCustomerInCustomPlan,\n selectDefaultTierIndex,\n hideCompatibleAddons,\n}: PlanOfferingProps) {\n const isNextPlan = plan.isNextPlan && plan.isNextPlan(billingPeriod);\n const planPrices = plan.pricePoints.filter((pricePoint) => pricePoint.billingPeriod === billingPeriod);\n const paywallCalculatedPrice = plan.paywallCalculatedPricePoints?.find(\n (pricePoint) => pricePoint.billingPeriod === billingPeriod,\n );\n const showStartingAt = planPrices.length > 1 && !!paywallCalculatedPrice?.additionalChargesMayApply;\n const showCTAButton = !isCustomerInCustomPlan || plan.pricingType === PricingType.Custom;\n\n let planBadge = null;\n if (isNextPlan) {\n planBadge = <UpcomingChangeTag text=\"Next plan\" />;\n } else if (isHighlighted && paywallLocale.highlightChip) {\n planBadge = (\n <HighlightBadge className=\"stigg-highlight-badge\">\n <HighlightText className=\"stigg-highlight-badge-text\" color=\"white\" bold>\n {paywallLocale.highlightChip}\n </HighlightText>\n </HighlightBadge>\n );\n }\n\n const [perUnitQuantityByFeature, setPerUnitQuantityByFeature] = useState<Record<string, number>>(\n getTiersPerUnitQuantities({\n plan,\n billingPeriod,\n currentSubscription,\n currentSubscriptionOverride,\n selectDefaultTierIndex,\n }),\n );\n\n const onPlanButtonClick = (intentionType: SubscribeIntentionType) => {\n const perUnitBillableFeatures: BillableFeature[] = Object.keys(perUnitQuantityByFeature).map((featureId) => ({\n featureId,\n quantity: perUnitQuantityByFeature[featureId],\n }));\n\n return onPlanSelected(intentionType, perUnitBillableFeatures);\n };\n\n return (\n <PlanOfferingContainer\n className={classNames(`stigg-${plan.id}`, 'stigg-plan-offering-container', {\n 'stigg-current-plan': plan.isCurrentCustomerPlan,\n })}\n $isHighlighted={isHighlighted}\n $isCurrentPlan={plan.isCurrentCustomerPlan}>\n {planBadge}\n\n <HeaderWrapper className=\"stigg-header-wrapper\">\n <PlanHeader className=\"stigg-plan-header\" variant=\"h3\">\n {plan.displayName}\n </PlanHeader>\n\n {shouldShowDescriptionSection && (\n <PlanDescription className=\"stigg-plan-description\" variant=\"h6\" color=\"secondary\">\n {plan.description}\n </PlanDescription>\n )}\n\n <PlanPrice\n showStartingAt={showStartingAt}\n withUnitPriceRow={withUnitPriceRow}\n withStartingAtRow={withStartingAtRow}\n withTiersRow={withTiersRow}\n plan={plan}\n billingPeriod={billingPeriod}\n paywallLocale={paywallLocale}\n locale={locale}\n hasAnnuallyPrice={hasAnnuallyPrice}\n hasMonthlyPrice={hasMonthlyPrice}\n setPerUnitQuantityByFeature={setPerUnitQuantityByFeature}\n perUnitQuantityByFeature={perUnitQuantityByFeature}\n />\n\n {showCTAButton ? (\n <PlanOfferingButton\n isNextPlan={isNextPlan}\n customer={customer}\n plan={plan}\n currentSubscription={currentSubscription}\n currentSubscriptionOverride={currentSubscriptionOverride}\n billingPeriod={billingPeriod}\n isCustomerOnTrial={isCustomerOnTrial}\n onPlanSelected={onPlanButtonClick}\n paywallLocale={paywallLocale}\n withTrialLeftRow={withTrialLeftRow}\n perUnitQuantityByFeature={perUnitQuantityByFeature}\n />\n ) : (\n <div style={{ height: PlanOfferingButtonHeight }} />\n )}\n\n <Divider className=\"stigg-plan-header-divider\" />\n </HeaderWrapper>\n\n <PlanEntitlements plan={plan} billingPeriod={billingPeriod} paywallLocale={paywallLocale} />\n\n <AddonsContainer $planHasEntitlements={plan.entitlements.length > 0} className=\"stigg-addons-container\">\n {!hideCompatibleAddons && plan.compatibleAddons && plan.compatibleAddons.length > 0 && (\n <PlanCompatibleAddons addons={plan.compatibleAddons} paywallLocale={paywallLocale} />\n )}\n </AddonsContainer>\n </PlanOfferingContainer>\n );\n}\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport Switch from 'react-switch';\nimport { BillingPeriod } from '@stigg/js-client-sdk';\nimport { Typography } from '../common/Typography';\n\nconst PickerContainer = styled.div`\n height: 40px;\n padding: 0 20px;\n margin-bottom: ${({ theme }) => theme.stigg.layout.switchBottomSpacing};\n border-radius: 10px;\n border: ${({ theme }) => `1px solid ${theme.stigg.palette.outlinedBorder}`};\n background-color: ${({ theme }) => theme.stigg.palette.backgroundPaper};\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\nconst PeriodText = styled(Typography)`\n margin: 0 8px;\n`;\n\nconst StyledSwitch = styled(Switch)`\n & .react-switch-bg {\n border: ${({ theme }) => `1px solid ${theme.stigg.palette.switchBorder}`};\n background: ${({ theme }) => theme.stigg.palette.switchFill} !important;\n }\n\n & .react-switch-handle {\n box-shadow: ${({ theme }) => theme.stigg.shadows.light};\n background: ${({ theme }) => theme.stigg.palette.switchHandle} !important;\n top: 0.5px !important;\n }\n`;\n\nfunction DiscountRate({ discount, disabled }: { discount: number; disabled: boolean }) {\n return (\n <Typography variant=\"h6\" color={disabled ? 'disabled' : 'primary'} className=\"stigg-discount-rate-text\">\n {discount}% off\n </Typography>\n );\n}\n\nexport function BillingPeriodPicker({\n discountRate,\n selectedBillingPeriod,\n onBillingPeriodChanged,\n availableBillingPeriods,\n}: {\n discountRate: number;\n selectedBillingPeriod: BillingPeriod;\n onBillingPeriodChanged: (billingPeriod: BillingPeriod) => void;\n availableBillingPeriods: BillingPeriod[];\n}) {\n if (availableBillingPeriods.length <= 1) {\n return null;\n }\n\n const isMonthlyBillingPeriod = selectedBillingPeriod === BillingPeriod.Monthly;\n\n return (\n <PickerContainer className=\"stigg-period-picker-container\">\n <PeriodText\n variant=\"h6\"\n className=\"stigg-monthly-period-text\"\n color={isMonthlyBillingPeriod ? 'primary' : 'disabled'}>\n Monthly\n </PeriodText>\n <StyledSwitch\n className=\"stigg-period-switch\"\n uncheckedIcon={false}\n checkedIcon={false}\n height={16}\n width={33}\n onChange={(isAnnuallySelected) =>\n onBillingPeriodChanged(isAnnuallySelected ? BillingPeriod.Annually : BillingPeriod.Monthly)\n }\n checked={!isMonthlyBillingPeriod}\n borderRadius={10}\n handleDiameter={19}\n />\n <PeriodText\n variant=\"h6\"\n className=\"stigg-annual-period-text\"\n color={!isMonthlyBillingPeriod ? 'primary' : 'disabled'}>\n Annual\n </PeriodText>\n {discountRate !== 0 && <DiscountRate discount={discountRate} disabled={isMonthlyBillingPeriod} />}\n </PickerContainer>\n );\n}\n","import { BillingPeriod, PaywallCalculatedPricePoint, Price } from '@stigg/js-client-sdk';\nimport isNil from 'lodash/isNil';\nimport { PaywallPlan } from '../paywall';\nimport { calculateTierPrice } from './priceTierUtils';\n\nexport function calculateDiscountRate(monthlyPrice?: number | null, annuallyPrice?: number | null) {\n if (!isNil(monthlyPrice) && !isNil(annuallyPrice)) {\n const annuallyPerMonthPrice = annuallyPrice / 12;\n return Math.round(((monthlyPrice - annuallyPerMonthPrice) / monthlyPrice) * 100);\n }\n\n return null;\n}\n\nfunction getPlanBillingPeriodAmount(plan: PaywallPlan, billingPeriod: BillingPeriod) {\n let pricePoint: PaywallCalculatedPricePoint | Price | undefined;\n\n pricePoint = plan.paywallCalculatedPricePoints?.find((price) => price.billingPeriod === billingPeriod);\n\n if (!pricePoint) {\n pricePoint = plan.pricePoints.find((price) => price.billingPeriod === billingPeriod);\n }\n\n if (!pricePoint?.amount) {\n const tieredPrice = plan.pricePoints.find((price) => {\n return price.isTieredPrice && price.billingPeriod === billingPeriod;\n });\n\n if (tieredPrice) {\n return calculateTierPrice(tieredPrice, 1);\n }\n }\n\n return pricePoint?.amount;\n}\n\nexport function calculatePaywallDiscountRate(plans: PaywallPlan[]) {\n return plans.reduce((maxDiscount, plan) => {\n const monthlyAmount = getPlanBillingPeriodAmount(plan, BillingPeriod.Monthly);\n const annuallyAmount = getPlanBillingPeriodAmount(plan, BillingPeriod.Annually);\n\n const discountRate = calculateDiscountRate(monthlyAmount, annuallyAmount);\n if (discountRate) {\n maxDiscount = Math.max(maxDiscount, discountRate);\n }\n\n return maxDiscount;\n }, 0);\n}\n","<svg width=\"135\" height=\"16\" viewBox=\"0 0 135 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M0.0987549 3.43016V12.9878H1.15589V9.52681H3.96527C5.94922 9.52681 7.28874 8.25245 7.28874 6.47848C7.28874 4.70452 5.94922 3.43016 3.96527 3.43016H0.0987549ZM1.15589 8.55656V4.40765H4.04492C5.33376 4.40765 6.18816 5.26205 6.18816 6.47848C6.18816 7.69492 5.33376 8.55656 4.04492 8.55656H1.15589Z\" fill=\"#001E6C\"/>\n<path d=\"M11.7787 13.1616C13.9075 13.1616 15.6525 11.5397 15.6525 9.38199C15.6525 7.21703 13.9365 5.62408 11.8077 5.62408C9.64999 5.62408 7.93395 7.24599 7.93395 9.41095C7.93395 11.5687 9.62103 13.1616 11.7787 13.1616ZM11.7932 12.2276C10.2365 12.2276 9.02005 11.0256 9.02005 9.39647C9.02005 7.76732 10.2365 6.56537 11.7932 6.56537C13.321 6.56537 14.5664 7.76732 14.5664 9.39647C14.5664 11.0256 13.321 12.2276 11.7932 12.2276Z\" fill=\"#001E6C\"/>\n<path d=\"M19.9054 12.9878L21.4766 6.94189H21.5056L23.0623 12.9878H24.4018L26.5958 5.8051H25.4155L23.7936 11.909H23.7647L22.2152 5.8051H20.7815L19.232 11.909H19.203L17.5522 5.8051H16.3575L18.5659 12.9878H19.9054Z\" fill=\"#001E6C\"/>\n<path d=\"M34.9835 9.42544C34.9835 7.30392 33.4051 5.62408 31.1532 5.62408C29.0534 5.62408 27.3084 7.18083 27.3084 9.41095C27.3084 11.5542 28.9086 13.1616 31.1822 13.1616C32.7679 13.1616 34.0567 12.3941 34.6794 11.1922L33.7816 10.707C33.3688 11.6049 32.3696 12.2348 31.1966 12.2348C29.5241 12.2348 28.5031 10.9894 28.4017 9.7223H34.969C34.9835 9.59197 34.9835 9.54129 34.9835 9.42544ZM31.1387 6.55089C32.5434 6.55089 33.6657 7.49942 33.854 8.80998H28.4307C28.6552 7.5501 29.7558 6.55089 31.1387 6.55089Z\" fill=\"#001E6C\"/>\n<path d=\"M39.5922 5.68201C38.564 5.68201 37.8182 6.20334 37.4924 6.93464L37.391 5.8051H36.486V12.9878H37.5431V8.5638C37.5431 7.44873 38.1585 6.77535 39.3171 6.77535H39.9977V5.68201H39.5922Z\" fill=\"#001E6C\"/>\n<path d=\"M48.2486 9.42544C48.2486 7.30392 46.6702 5.62408 44.4183 5.62408C42.3185 5.62408 40.5735 7.18083 40.5735 9.41095C40.5735 11.5542 42.1737 13.1616 44.4473 13.1616C46.033 13.1616 47.3218 12.3941 47.9445 11.1922L47.0467 10.707C46.634 11.6049 45.6348 12.2348 44.4618 12.2348C42.7892 12.2348 41.7682 10.9894 41.6669 9.7223H48.2342C48.2486 9.59197 48.2486 9.54129 48.2486 9.42544ZM44.4039 6.55089C45.8085 6.55089 46.9308 7.49942 47.1191 8.80998H41.6958C41.9203 7.5501 43.0209 6.55089 44.4039 6.55089Z\" fill=\"#001E6C\"/>\n<path d=\"M55.846 7.02877C55.2161 6.13817 54.2024 5.63132 53.0149 5.63132C50.9224 5.63132 49.2425 7.21703 49.2425 9.39647C49.2425 11.5759 50.8934 13.1616 52.986 13.1616C54.1807 13.1616 55.2161 12.6403 55.8533 11.7425L55.9981 12.9878H56.9032V2.56128L55.846 2.67713V7.02877ZM53.0294 12.2276C51.5306 12.2276 50.3286 11.0401 50.3286 9.39647C50.3286 7.75284 51.5306 6.56537 53.0294 6.56537C54.5789 6.56537 55.846 7.76732 55.846 9.39647C55.846 11.0256 54.5789 12.2276 53.0294 12.2276Z\" fill=\"#001E6C\"/>\n<path d=\"M65.7314 5.63132C64.5367 5.63132 63.5085 6.14541 62.8713 7.04325V2.56128L61.8142 2.67713V12.9878H62.7192L62.8641 11.7497C63.494 12.6475 64.5077 13.1616 65.7024 13.1616C67.795 13.1616 69.4748 11.5759 69.4748 9.39647C69.4748 7.21703 67.8239 5.63132 65.7314 5.63132ZM65.6879 12.2276C64.1384 12.2276 62.8713 11.0256 62.8713 9.39647C62.8713 7.76732 64.1384 6.56537 65.6879 6.56537C67.1867 6.56537 68.3887 7.75284 68.3887 9.39647C68.3887 11.0401 67.1867 12.2276 65.6879 12.2276Z\" fill=\"#001E6C\"/>\n<path d=\"M76.2187 5.8051V9.9178C76.2187 11.3297 75.3136 12.1841 74.0465 12.1841C72.7866 12.1841 72.077 11.4456 72.077 10.1133V5.8051H71.0199V10.2726C71.0199 11.9669 72.1349 13.0965 73.7641 13.0965C74.843 13.0965 75.6901 12.6765 76.2187 11.9814V12.8937C76.2187 14.1608 75.2629 15.0804 73.8727 15.0804C72.7504 15.0804 71.8236 14.4794 71.5847 13.4295L70.6579 13.9074C71.0995 15.16 72.3087 16 73.8582 16C75.8132 16 77.2758 14.5953 77.2758 12.7923V5.8051H76.2187Z\" fill=\"#001E6C\"/>\n<path d=\"M108.672 10.4867C108.672 11.9077 107.411 12.7873 105.491 12.7873C104.464 12.7873 103.634 12.6028 102.84 12.2091C102.914 11.76 102.982 11.2187 103 10.5913C103.738 11.0219 104.575 11.231 105.381 11.231C106.34 11.231 106.839 11.0096 106.839 10.5421C106.857 10.0807 106.5 9.87155 105.067 9.59473C103.406 9.26255 102.668 8.57359 102.668 7.35559C102.668 5.97767 103.929 5.0857 105.848 5.0857C106.697 5.0857 107.54 5.24564 108.186 5.52246L107.866 7.06647C107.226 6.7712 106.537 6.63587 105.848 6.63587C104.95 6.63587 104.507 6.85733 104.507 7.29408C104.507 7.67547 104.815 7.83541 106.217 8.12453C108.007 8.50592 108.678 9.19488 108.678 10.4744L108.672 10.4867ZM112.879 11.0957C112.16 11.0957 111.581 10.7143 111.581 9.70546V6.88808H113.408L113.747 5.25794H111.581V2.93884C111.157 3.06187 110.517 3.2095 109.681 3.28332L109.662 10.0315C109.662 11.8708 110.763 12.7996 112.412 12.7996C112.787 12.7996 113.113 12.7627 113.39 12.6951L113.753 10.9665C113.525 11.0465 113.236 11.1018 112.879 11.1018V11.0957ZM114.965 12.6889H116.884V5.25794H114.965V12.6889ZM115.93 2.21912C115.309 2.21297 114.829 2.66817 114.823 3.27102C114.823 3.89232 115.278 4.35983 115.894 4.36598C116.515 4.36598 116.976 3.92923 116.989 3.32638C117.001 2.70508 116.546 2.23142 115.937 2.21912H115.93ZM126.056 5.25794V11.5263C126.056 13.8946 124.456 15.5247 121.756 15.5247C120.784 15.5247 119.714 15.3094 118.994 14.8973C119.492 14.3867 119.831 13.9438 120.046 13.6239C120.532 13.79 121.042 13.8762 121.565 13.8762C123.275 13.8762 124.143 12.9288 124.143 11.7354V11.4955C123.534 12.1968 122.654 12.6336 121.602 12.6336C119.584 12.6336 118.065 11.1326 118.065 8.90577C118.065 6.67893 119.726 5.098 121.756 5.098C122.808 5.098 123.724 5.4794 124.333 6.19912L124.395 5.25179H126.062L126.056 5.25794ZM124.155 8.90577C124.155 7.72468 123.294 6.82657 122.107 6.82657C120.919 6.82657 120.046 7.72468 120.046 8.90577C120.046 10.0868 120.907 10.9542 122.107 10.9542C123.306 10.9542 124.155 10.0561 124.155 8.90577ZM134.994 5.25794V11.5263C134.994 13.8946 133.394 15.5247 130.694 15.5247C129.722 15.5247 128.652 15.3094 127.932 14.8973C128.43 14.3867 128.769 13.9438 128.984 13.6239C129.47 13.79 129.98 13.8762 130.503 13.8762C132.213 13.8762 133.081 12.9288 133.081 11.7354V11.4955C132.472 12.1968 131.592 12.6336 130.54 12.6336C128.523 12.6336 127.003 11.1326 127.003 8.90577C127.003 6.67893 128.664 5.098 130.694 5.098C131.746 5.098 132.662 5.4794 133.271 6.19912L133.333 5.25179H135L134.994 5.25794ZM133.093 8.90577C133.093 7.72468 132.232 6.82657 131.045 6.82657C129.857 6.82657 128.984 7.72468 128.984 8.90577C128.984 10.0868 129.845 10.9542 131.045 10.9542C132.244 10.9542 133.093 10.0561 133.093 8.90577Z\" fill=\"#001E6C\"/>\n<path d=\"M95.7092 14.9825C95.6354 15.0194 94.2267 15.6407 91.7353 15.5238C90.4374 15.4623 89.3117 15.2224 88.512 15.0009L92.8241 9.99361C93.5931 10.1905 94.5835 10.375 95.7092 10.4304C98.2005 10.5534 99.6092 9.92594 99.683 9.88903L95.7092 14.9886V14.9825ZM89.2686 5.36155C88.5612 2.96863 88.838 1.45537 88.8564 1.3754L84.8457 6.44421C84.8334 6.52418 84.5566 8.03744 85.2578 10.4304C85.6269 11.673 86.1252 12.7126 86.5312 13.4384L90.3759 8.0682C90.0068 7.36693 89.5885 6.44421 89.2686 5.3677V5.36155ZM99.2647 5.89058C98.6988 3.97132 97.813 2.55033 97.4501 2.009L93.8822 6.55494L94.5527 9.77216C94.9526 9.82752 95.3462 9.86443 95.7461 9.88903C95.9491 9.89518 96.1521 9.90134 96.3489 9.90134C98.2805 9.90134 99.357 9.44613 99.4739 9.39076L99.7507 9.26773C99.7753 8.60338 99.7322 7.42844 99.2709 5.88443L99.2647 5.89058ZM97.0256 1.68297C96.4166 1.45537 94.8295 0.932493 92.8303 0.83407C91.2248 0.754101 90.0744 0.987856 89.4347 1.1724L89.3793 1.46767C89.367 1.52919 89.121 2.96248 89.7792 5.20777C89.8899 5.58916 90.0252 5.9644 90.1729 6.33964L93.4577 6.22891L97.0318 1.68912L97.0256 1.68297Z\" fill=\"#001E6C\"/>\n</svg>\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport PoweredByStiggSvg from '../../assets/powered-by-stigg.svg';\n\nexport const STIGG_WATERMARK_CLASSNAME = 'stigg-watermark';\n\nexport type PoweredByStiggSources = 'paywall' | 'customer_portal' | 'checkout';\n\nconst PoweredByStiggThemedSvg = styled(PoweredByStiggSvg)`\n * {\n fill: ${({ theme }) => theme.stigg.palette.text.secondary};\n }\n`;\n\ntype PoweredByStiggProps = {\n source: PoweredByStiggSources;\n showWatermark?: boolean;\n style?: React.CSSProperties;\n align?: 'center' | 'end';\n};\n\nconst StyledPoweredByStigg = styled.div<{ $alignSelf?: string }>`\n align-self: ${({ $alignSelf }) => $alignSelf || 'unset'};\n\n @media (max-width: 1040px) {\n align-self: center;\n }\n`;\n\nexport function PoweredByStigg({ source, showWatermark, align, style = {} }: PoweredByStiggProps) {\n if (!showWatermark) {\n return null;\n }\n\n const onWatermarkClick = () => {\n const sourceDomain = window.location.hostname.replace('www.', '');\n window.open(\n `https://www.stigg.io/?utm_source=${sourceDomain}&utm_medium=referral&utm_campaign=${source}`,\n '_blank',\n );\n };\n\n return (\n <StyledPoweredByStigg\n $alignSelf={align}\n className={STIGG_WATERMARK_CLASSNAME}\n style={{ cursor: 'pointer', ...style }}\n onClick={onWatermarkClick}>\n <PoweredByStiggThemedSvg />\n </StyledPoweredByStigg>\n );\n}\n","import { BillingPeriod } from '@stigg/js-client-sdk';\nimport { PaywallPlan } from '../types';\n\nexport function hasPricePoints(plan: PaywallPlan, billingPeriod: BillingPeriod): boolean {\n return plan.pricePoints.some((pricePoint) => pricePoint.billingPeriod === billingPeriod);\n}\n\nexport function hasPricePointsForPlans(plans: PaywallPlan[], billingPeriod: BillingPeriod): boolean {\n return plans.some((plan) => hasPricePoints(plan, billingPeriod));\n}\n","import { BillingPeriod, PricingType } from '@stigg/js-client-sdk';\nimport { ShouldHidePlanFn, PaywallPlan } from '../types';\nimport { hasPricePoints } from './hasPricePoints';\n\nexport function getPlansToDisplay(\n plans: PaywallPlan[],\n selectedBillingPeriod: BillingPeriod,\n shouldHidePlan?: ShouldHidePlanFn,\n): PaywallPlan[] {\n return plans\n .filter((plan) => plan.pricingType !== PricingType.Paid || hasPricePoints(plan, selectedBillingPeriod))\n .filter((plan) => !shouldHidePlan || !shouldHidePlan({ plan }));\n}\n","import { BillableFeature, BillingPeriod, Customer, Plan, PricingType, Subscription } from '@stigg/js-client-sdk';\nimport React, { useCallback, useMemo } from 'react';\nimport styled from '@emotion/styled/macro';\nimport { PlanOffering } from './PlanOffering';\nimport { BillingPeriodPicker } from './BillingPeriodPicker';\nimport { calculatePaywallDiscountRate } from '../utils/calculateDiscountRate';\nimport {\n ShouldHidePlanFn,\n OnPlanSelectedCallbackFn,\n PaywallPlan,\n SubscribeIntentionType,\n SelectDefaultTierIndexFn,\n CurrentSubscriptionOverride,\n} from './types';\nimport { PaywallLocalization } from './paywallTextOverrides';\nimport { PoweredByStigg } from '../common/PoweredByStigg';\nimport { useStiggContext } from '../..';\nimport { hasPricePointsForPlans } from './utils/hasPricePoints';\nimport { getPlansToDisplay } from './utils/getPlansToDisplay';\nimport { getPlanPrice } from '../utils/getPlanPrice';\nimport { getTiersPerUnitQuantities } from '../utils/priceTierUtils';\n\nconst PaywallPlansContainer = styled.div`\n color: ${({ theme }) => theme.stigg.palette.text.primary};\n display: flex;\n align-items: stretch;\n justify-content: center;\n flex-wrap: wrap;\n padding: 10px 0;\n gap: ${({ theme }) => theme.stigg.layout.planMargin};\n`;\n\nconst PaywallContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n\n & * {\n box-sizing: border-box;\n }\n`;\n\nconst PaywallLayout = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\ntype PaywallProps = {\n plans: PaywallPlan[];\n customer: Customer | null;\n currentSubscription: Subscription | null;\n currentSubscriptionOverride?: CurrentSubscriptionOverride | null;\n selectedBillingPeriod: BillingPeriod;\n highlightedPlanId?: string;\n onBillingPeriodChanged: (billingPeriod: BillingPeriod) => void;\n availableBillingPeriods: BillingPeriod[];\n isCustomerOnTrial: boolean;\n onPlanSelected: OnPlanSelectedCallbackFn;\n paywallLocale: PaywallLocalization;\n locale: string;\n shouldHidePlan?: ShouldHidePlanFn;\n selectDefaultTierIndex?: SelectDefaultTierIndexFn;\n hideCompatibleAddons?: boolean;\n};\n\nexport const Paywall = ({\n plans,\n customer,\n currentSubscription,\n highlightedPlanId,\n selectedBillingPeriod,\n onBillingPeriodChanged,\n availableBillingPeriods,\n isCustomerOnTrial,\n onPlanSelected,\n paywallLocale,\n locale,\n shouldHidePlan,\n selectDefaultTierIndex,\n currentSubscriptionOverride,\n hideCompatibleAddons,\n}: PaywallProps) => {\n const { stigg } = useStiggContext();\n const discountRate = calculatePaywallDiscountRate(plans);\n const shouldShowDescriptionSection = plans.some((plan) => !!plan.description);\n const hasMonthlyPrice = hasPricePointsForPlans(plans, BillingPeriod.Monthly);\n const hasAnnuallyPrice = hasPricePointsForPlans(plans, BillingPeriod.Annually);\n const plansToShow = getPlansToDisplay(plans, selectedBillingPeriod, shouldHidePlan);\n\n const handleOnSubscribe = useCallback(\n (plan: Plan, intentionType: SubscribeIntentionType, billableFeatures: BillableFeature[]) => {\n return onPlanSelected({\n plan,\n customer,\n subscription: currentSubscription,\n intentionType,\n selectedBillingPeriod,\n billableFeatures,\n });\n },\n [customer, selectedBillingPeriod, currentSubscription, onPlanSelected],\n );\n\n const isCustomerInCustomPlan = !!currentSubscription && currentSubscription.plan.pricingType === PricingType.Custom;\n\n const withStartingAtRow = useMemo(\n () =>\n plansToShow.some((plan) => {\n const planPrices = plan.pricePoints.filter((pricePoint) => pricePoint.billingPeriod === selectedBillingPeriod);\n const paywallCalculatedPrice = plan.paywallCalculatedPricePoints?.find(\n (pricePoint) => pricePoint.billingPeriod === selectedBillingPeriod,\n );\n return planPrices.length > 1 && !!paywallCalculatedPrice?.additionalChargesMayApply;\n }),\n [selectedBillingPeriod, plansToShow],\n );\n\n const withUnitPriceRow = useMemo(\n () =>\n plansToShow.some((plan) => {\n return !!getPlanPrice(plan, selectedBillingPeriod, paywallLocale, locale, hasMonthlyPrice).unit;\n }),\n [selectedBillingPeriod, hasMonthlyPrice, locale, paywallLocale, plansToShow],\n );\n\n const withTiersRow = useMemo(() => {\n return (\n !isCustomerInCustomPlan &&\n plansToShow.some((plan) => {\n const tiers = getTiersPerUnitQuantities({\n plan,\n billingPeriod: selectedBillingPeriod,\n currentSubscription,\n currentSubscriptionOverride,\n });\n return Object.values(tiers).length > 0;\n })\n );\n }, [selectedBillingPeriod, currentSubscription, currentSubscriptionOverride, isCustomerInCustomPlan, plansToShow]);\n\n const withTrialLeftRow = plansToShow.some((plan) => {\n return plan.isCurrentCustomerPlan && plan.trialDaysLeft;\n });\n\n return (\n <PaywallContainer className=\"stigg-paywall-container\">\n <PaywallLayout className=\"stigg-paywall-layout\">\n <BillingPeriodPicker\n onBillingPeriodChanged={onBillingPeriodChanged}\n selectedBillingPeriod={selectedBillingPeriod}\n availableBillingPeriods={availableBillingPeriods}\n discountRate={discountRate}\n />\n\n <PaywallPlansContainer className=\"stigg-paywall-plans-layout\">\n {plansToShow.map((plan) => (\n <PlanOffering\n withUnitPriceRow={withUnitPriceRow}\n withTiersRow={withTiersRow}\n withTrialLeftRow={withTrialLeftRow}\n key={plan.id}\n shouldShowDescriptionSection={shouldShowDescriptionSection}\n hasMonthlyPrice={hasMonthlyPrice}\n hasAnnuallyPrice={hasAnnuallyPrice}\n plan={plan}\n withStartingAtRow={withStartingAtRow}\n currentSubscription={currentSubscription}\n currentSubscriptionOverride={currentSubscriptionOverride}\n billingPeriod={selectedBillingPeriod}\n isHighlighted={plan.id === highlightedPlanId}\n isCustomerOnTrial={isCustomerOnTrial}\n onPlanSelected={(intentionType: SubscribeIntentionType, billableFeatures: BillableFeature[]) =>\n handleOnSubscribe(plan, intentionType, billableFeatures)\n }\n paywallLocale={paywallLocale}\n locale={locale}\n customer={customer}\n isCustomerInCustomPlan={isCustomerInCustomPlan}\n selectDefaultTierIndex={selectDefaultTierIndex}\n hideCompatibleAddons={hideCompatibleAddons}\n />\n ))}\n </PaywallPlansContainer>\n <PoweredByStigg\n source=\"paywall\"\n align=\"end\"\n style={{ marginTop: 16 }}\n showWatermark={stigg.isWidgetWatermarkEnabled}\n />\n </PaywallLayout>\n </PaywallContainer>\n );\n};\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","export interface Logger {\n log: (message: string, object?: Record<string, string>) => void;\n debug: (message: string, object?: Record<string, string>) => void;\n error: (message: string, error?: Error, ...params: Record<string, string>[]) => void;\n}\n\nexport class LoggerService implements Logger {\n error(message: string, error?: Error, ...params: Record<string, string>[]): void {\n console.error(message, error || {}, params);\n }\n\n log(message: string, object?: Record<string, string>): void {\n console.log(message, object || {});\n }\n\n debug(message: string, object?: Record<string, string> | undefined): void {\n console.debug(message, object || {});\n }\n}\n\n// Export a singleton logger service, in the future we might allow to user to configure external logger\nexport default new LoggerService();\n","import { BillingPeriod, Plan, Subscription, SubscriptionStatus } from '@stigg/js-client-sdk';\nimport { countBy, uniq } from 'lodash';\n\nexport function computeBillingPeriods(\n plans: Plan[],\n activeSubscriptions?: Subscription[] | null,\n preferredBillingPeriod?: BillingPeriod,\n): { defaultBillingPeriod: BillingPeriod; availableBillingPeriods: BillingPeriod[] } {\n const billingPeriods = plans.flatMap((x) => x.pricePoints).map((x) => x.billingPeriod);\n const counts = countBy(billingPeriods);\n\n const availableBillingPeriods = uniq(billingPeriods);\n let defaultBillingPeriod: BillingPeriod | undefined;\n\n if (preferredBillingPeriod && availableBillingPeriods.includes(preferredBillingPeriod)) {\n defaultBillingPeriod = preferredBillingPeriod;\n } else if (activeSubscriptions) {\n const activeSubscription = activeSubscriptions.find((x) => x.status === SubscriptionStatus.Active);\n\n if (activeSubscription && activeSubscription.prices.length > 0) {\n defaultBillingPeriod = activeSubscription?.prices[0].billingPeriod;\n }\n }\n\n if (!defaultBillingPeriod) {\n defaultBillingPeriod =\n (counts[BillingPeriod.Monthly] || 0) > (counts[BillingPeriod.Annually] || 0)\n ? BillingPeriod.Monthly\n : BillingPeriod.Annually;\n }\n\n return { defaultBillingPeriod, availableBillingPeriods };\n}\n","import moment from 'moment';\n\nexport function calculateTrialDaysLeft(trialEndDate: Date) {\n return moment.utc(trialEndDate).diff(moment.utc(), 'days', false) + 1;\n}\n","import { FontWeight, TypographyConfiguration } from '@stigg/js-client-sdk';\n\nexport const defaultCheckoutTypography: TypographyConfiguration = {\n h1: {\n fontSize: 24,\n fontWeight: FontWeight.Bold,\n },\n h2: {\n fontSize: 16,\n fontWeight: FontWeight.Normal,\n },\n h3: {\n fontSize: 16,\n fontWeight: FontWeight.Normal,\n },\n body: {\n fontSize: 14,\n fontWeight: FontWeight.Normal,\n },\n};\n","import {\n Alignment,\n CheckoutConfiguration,\n CustomerPortalConfiguration,\n FontWeight as JSFontWeight,\n PaywallConfiguration,\n TypographyConfiguration,\n} from '@stigg/js-client-sdk';\nimport { CustomizedTheme } from '../../theme/Theme';\nimport { HorizontalAlignment, FontWeight } from '../../theme/types';\nimport { defaultCheckoutTypography } from '../checkout/configurations/typography';\n\nfunction addCssUnits(value?: number | null, unit = 'px') {\n if (!value) {\n return undefined;\n }\n return `${value}${unit}`;\n}\n\nfunction mapFontWeight(defaultValue: FontWeight, fontWeight?: JSFontWeight | null): FontWeight {\n if (!fontWeight) {\n return defaultValue;\n }\n\n switch (fontWeight) {\n case JSFontWeight.Normal:\n return 'normal';\n case JSFontWeight.Bold:\n return 'bold';\n default:\n return 'normal';\n }\n}\n\nexport function mapTypography(\n typography?: TypographyConfiguration | null,\n defaultTypography?: TypographyConfiguration | null,\n): CustomizedTheme['typography'] {\n return {\n fontFamilyUrl: typography?.fontFamily || undefined,\n h1: {\n fontSize: addCssUnits(typography?.h1?.fontSize || defaultTypography?.h1?.fontSize),\n fontWeight: mapFontWeight('bold', typography?.h1?.fontWeight || defaultTypography?.h1?.fontWeight),\n },\n h2: {\n fontSize: addCssUnits(typography?.h2?.fontSize || defaultTypography?.h2?.fontSize),\n fontWeight: mapFontWeight('normal', defaultTypography?.h2?.fontWeight),\n },\n h3: {\n fontSize: addCssUnits(typography?.h3?.fontSize || defaultTypography?.h3?.fontSize),\n fontWeight: mapFontWeight('normal', typography?.h3?.fontWeight || defaultTypography?.h3?.fontWeight),\n },\n body: {\n fontSize: addCssUnits(typography?.body?.fontSize || defaultTypography?.body?.fontSize),\n fontWeight: mapFontWeight('normal', typography?.body?.fontWeight || defaultTypography?.body?.fontWeight),\n },\n };\n}\n\nfunction mapAlignment(alignment?: Alignment | null): HorizontalAlignment | undefined {\n if (!alignment) {\n return undefined;\n }\n\n switch (alignment) {\n case Alignment.Left:\n return 'left';\n case Alignment.Center:\n return 'center';\n case Alignment.Right:\n return 'right';\n default: {\n return undefined;\n }\n }\n}\n\nexport function mapCustomerPortalConfiguration(configuration: CustomerPortalConfiguration): CustomizedTheme {\n const { palette, customCss, typography } = configuration;\n return {\n palette: {\n primary: palette?.primary || undefined,\n backgroundPaper: palette?.paywallBackgroundColor || undefined,\n outlinedBorder: palette?.borderColor || undefined,\n backgroundHighlight: palette?.currentPlanBackground || undefined,\n text: {\n primary: palette?.textColor || undefined,\n },\n },\n typography: mapTypography(typography),\n customCss: customCss || undefined,\n };\n}\n\nexport function mapPaywallConfiguration(paywallConfiguration: PaywallConfiguration): CustomizedTheme {\n const { palette, layout, customCss, typography } = paywallConfiguration;\n return {\n customCss: customCss || undefined,\n palette: {\n primary: palette?.primary || undefined,\n backgroundPaper: palette?.backgroundColor || undefined,\n outlinedBorder: palette?.borderColor || undefined,\n backgroundHighlight: palette?.currentPlanBackground || undefined,\n text: {\n primary: palette?.textColor || undefined,\n },\n },\n typography: mapTypography(typography),\n layout: {\n ctaAlignment: mapAlignment(layout?.alignment),\n headerAlignment: mapAlignment(layout?.alignment),\n descriptionAlignment: mapAlignment(layout?.alignment),\n planMaxWidth: addCssUnits(layout?.planWidth),\n planMinWidth: addCssUnits(layout?.planWidth),\n planMargin: addCssUnits(layout?.planMargin),\n planPadding: addCssUnits(layout?.planPadding),\n },\n };\n}\n\nexport function mapCheckoutConfiguration(configuration: CheckoutConfiguration): CustomizedTheme {\n const { palette, typography, customCss } = configuration;\n return {\n palette: {\n primary: palette?.primary || undefined,\n backgroundPaper: palette?.backgroundColor || undefined,\n outlinedBorder: palette?.borderColor || undefined,\n text: {\n primary: palette?.textColor || undefined,\n },\n backgroundHighlight: palette?.summaryBackgroundColor || undefined,\n },\n typography: mapTypography(typography, defaultCheckoutTypography),\n customCss: customCss || undefined,\n };\n}\n","import {\n BillingPeriod,\n SubscriptionStatus,\n Paywall,\n Plan,\n Subscription,\n SubscriptionScheduleType,\n} from '@stigg/js-client-sdk';\nimport isNil from 'lodash/isNil';\nimport sortBy from 'lodash/sortBy';\nimport { CurrentSubscriptionOverride, CurrentSubscriptionOverrideFn, PaywallPlan } from '../types';\nimport { calculateTrialDaysLeft } from './calculateTrialDaysLeft';\nimport { BillingPeriodChangeVariables, DeepPartial, DowngradeChangeVariables } from '../../../types';\nimport { StiggTheme } from '../../../theme/types';\nimport { mapPaywallConfiguration } from '../../common/mapExternalTheme';\n\nfunction getCustomerSubscriptionDetails(activeSubscriptions?: Subscription[] | null) {\n let isCustomerOnTrial = true;\n let currentSubscription: Subscription | null =\n activeSubscriptions?.find((s) => s.status === SubscriptionStatus.InTrial) || null;\n let currentPlan = currentSubscription?.plan;\n const trialDaysLeft = currentSubscription?.trialEndDate\n ? calculateTrialDaysLeft(currentSubscription.trialEndDate)\n : undefined;\n if (!currentPlan) {\n isCustomerOnTrial = false;\n currentSubscription = activeSubscriptions?.find((s) => s.status === SubscriptionStatus.Active) || null;\n currentPlan = currentSubscription?.plan;\n }\n\n return {\n currentSubscription,\n currentPlan,\n isCustomerOnTrial,\n trialDaysLeft,\n };\n}\n\ntype PaywallData = {\n currentPlan?: Plan;\n currentSubscription: Subscription | null;\n currentSubscriptionOverride: CurrentSubscriptionOverride | null | undefined;\n isCustomerOnTrial: boolean;\n plans: PaywallPlan[];\n paywallConfiguration?: DeepPartial<StiggTheme>;\n};\n\nexport function mapPaywallData(\n paywall: Paywall | null,\n showOnlyEligiblePlans?: boolean,\n currentSubscriptionOverrideFn?: CurrentSubscriptionOverrideFn,\n): PaywallData {\n const { plans, currency, configuration, customer, activeSubscriptions, paywallCalculatedPricePoints } = paywall || {};\n const { currentSubscription, currentPlan, isCustomerOnTrial, trialDaysLeft } =\n getCustomerSubscriptionDetails(activeSubscriptions);\n\n const currentSubscriptionOverride = currentSubscriptionOverrideFn?.({ currentSubscription });\n\n const scheduledUpdates = currentSubscription?.scheduledUpdates || [];\n const currentCustomerPlanBillingPeriod = currentSubscription?.price?.billingPeriod;\n const downgradeSchedule = scheduledUpdates.find(\n ({ subscriptionScheduleType }) => subscriptionScheduleType === SubscriptionScheduleType.Downgrade,\n );\n const billingChangedSchedule = scheduledUpdates.find(\n ({ subscriptionScheduleType }) => subscriptionScheduleType === SubscriptionScheduleType.BillingPeriod,\n );\n\n let paywallPlans: PaywallPlan[] = sortBy(plans, (plan) => plan.order).map((plan) => {\n const eligibleForProductTrial = customer?.eligibleForTrial?.find(\n (productTrial) => productTrial.productId === plan.product.id,\n );\n const isCurrentCustomerPlan = currentSubscriptionOverride?.planId\n ? currentSubscriptionOverride?.planId === plan.id\n : plan.id === currentPlan?.id;\n\n const isNextPlan = (currentBillingPeriod: BillingPeriod) => {\n const downgradeVariables = downgradeSchedule?.scheduleVariables as DowngradeChangeVariables;\n const billingChangedVariables = billingChangedSchedule?.scheduleVariables as BillingPeriodChangeVariables;\n const isPlanHasBillingPeriodPrice = plan.pricePoints.some(\n (price) => price.billingPeriod === currentBillingPeriod,\n );\n\n return downgradeSchedule\n ? downgradeSchedule.targetPackage?.refId === plan.id &&\n (!isPlanHasBillingPeriodPrice || downgradeVariables.billingPeriod === currentBillingPeriod)\n : billingChangedSchedule && isCurrentCustomerPlan\n ? billingChangedVariables.billingPeriod === currentBillingPeriod\n : false;\n };\n\n return {\n ...plan,\n paywallCalculatedPricePoints: paywallCalculatedPricePoints?.filter((pricePoint) => pricePoint.planId === plan.id),\n isTriable: !isNil(plan.defaultTrialConfig) && (!eligibleForProductTrial || eligibleForProductTrial.eligible),\n isCurrentCustomerPlan,\n currentCustomerPlanBillingPeriod,\n isUpcomingPlan: false,\n trialDaysLeft,\n isNextPlan,\n paywallCurrency: currency,\n scheduledUpdate: downgradeSchedule || billingChangedSchedule,\n };\n });\n if (plans && currentPlan) {\n const currentPlanOrder = currentPlan && plans?.find((x) => x.id === currentPlan?.id)?.order;\n if (!isNil(currentPlanOrder)) {\n paywallPlans = paywallPlans.map<PaywallPlan>((plan) => ({\n ...plan,\n isLowerThanCurrentPlan: currentPlanOrder > plan.order,\n }));\n if (showOnlyEligiblePlans) {\n paywallPlans = paywallPlans.filter((plan) => plan.order >= currentPlanOrder);\n }\n }\n }\n const paywallConfiguration = configuration ? mapPaywallConfiguration(configuration) : undefined;\n\n return {\n currentPlan,\n currentSubscription,\n currentSubscriptionOverride,\n isCustomerOnTrial,\n plans: paywallPlans,\n paywallConfiguration,\n };\n}\n","import React, { useEffect, useState, PropsWithChildren, useRef } from 'react';\nimport * as StiggJs from '@stigg/js-client-sdk';\nimport Stigg, { ClientConfiguration, EntitlementsFallback } from '@stigg/js-client-sdk';\nimport { SkeletonTheme } from 'react-loading-skeleton';\nimport { CustomizedTheme } from '../theme/Theme';\nimport logger from '../services/logger';\nimport { name as CLIENT_NAME, version as CLIENT_VERSION } from '../../package.json';\n\nexport interface StiggContextValue {\n stigg: StiggJs.StiggClient;\n isInitialized: boolean;\n locale: string;\n updatedAt?: Date;\n customerPortalUpdatedAt?: Date;\n refreshData: () => Promise<void>;\n theme?: CustomizedTheme;\n}\n\nexport const StiggContext = React.createContext<StiggContextValue | null>(null);\nStiggContext.displayName = 'StiggContext';\n\nexport type StiggProviderProps = {\n apiKey: string;\n baseUri?: string;\n baseEdgeUri?: string;\n enableEdge?: boolean;\n entitlementsFallback?: EntitlementsFallback;\n customerId?: string;\n customerToken?: string;\n resourceId?: string;\n theme?: CustomizedTheme;\n locale?: string;\n offline?: boolean;\n cacheTtlMs?: number;\n /** @deprecated not longer in use */\n useEntitlementPolling?: boolean;\n /** @deprecated not longer in use */\n entitlementPollingInterval?: number;\n stiggClient?: StiggJs.StiggClient;\n clientName?: string;\n clientVersion?: string;\n};\n\nconst DEFAULT_LOCALE = 'en-US';\n\nexport const StiggProvider: React.FC<PropsWithChildren<StiggProviderProps>> = ({\n apiKey,\n baseUri,\n baseEdgeUri,\n enableEdge,\n customerId,\n customerToken,\n resourceId,\n theme,\n locale,\n cacheTtlMs,\n useEntitlementPolling,\n entitlementPollingInterval,\n entitlementsFallback,\n stiggClient,\n children,\n offline,\n clientName = CLIENT_NAME,\n clientVersion = CLIENT_VERSION,\n}) => {\n const currentApiKey = useRef(apiKey);\n const initializeParams: ClientConfiguration = {\n apiKey,\n customerId,\n customerToken,\n resourceId,\n baseUri,\n baseEdgeUri,\n enableEdge,\n entitlementsFallback,\n cacheTtlMs,\n useEntitlementPolling,\n entitlementPollingInterval,\n clientName,\n clientVersion,\n offline,\n };\n const [ctx, setContext] = useState<StiggContextValue>(() => ({\n stigg:\n stiggClient ??\n Stigg.initialize({\n ...initializeParams,\n lazyLoad: true,\n }),\n locale: locale || DEFAULT_LOCALE,\n isInitialized: false,\n theme,\n refreshData: async () => {\n setContext((ctx) => ({ ...ctx, customerPortalUpdatedAt: new Date() }));\n await ctx.stigg.refresh();\n },\n }));\n\n useEffect(() => {\n let isMounted = true;\n\n const safeSetContext = (setContextFunc: React.SetStateAction<StiggContextValue>) => {\n if (isMounted) {\n setContext(setContextFunc);\n }\n };\n\n const onEntitlementsUpdated = () => safeSetContext((ctx) => ({ ...ctx, updatedAt: new Date() }));\n\n const setStiggInstance = (stigg: StiggJs.StiggClient) =>\n safeSetContext((ctx) => {\n if (ctx.stigg) {\n ctx.stigg.removeListener('entitlementsUpdated', onEntitlementsUpdated);\n }\n stigg.addListener('entitlementsUpdated', onEntitlementsUpdated);\n\n return {\n ...ctx,\n stigg,\n isInitialized: true,\n updatedAt: new Date(),\n };\n });\n\n const loadStiggClient = async () => {\n let stiggClient = ctx.stigg;\n if (apiKey !== currentApiKey.current) {\n logger.log('Updating stigg client', { apiKey });\n currentApiKey.current = apiKey;\n stiggClient = Stigg.initialize({\n ...initializeParams,\n });\n safeSetContext((ctx) => ({ ...ctx, isInitialized: false, updatedAt: new Date() }));\n }\n await stiggClient.waitForInitialization();\n setStiggInstance(stiggClient);\n };\n\n void loadStiggClient();\n\n return () => {\n isMounted = false;\n ctx.stigg.removeListener('entitlementsUpdated', onEntitlementsUpdated);\n ctx.stigg.clearCustomer();\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [apiKey]);\n\n useEffect(() => {\n const stiggClient = ctx.stigg;\n if (customerId) {\n void stiggClient.setCustomerId(customerId, customerToken, resourceId);\n } else {\n stiggClient.clearCustomer();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [customerId, customerToken, resourceId]);\n\n useEffect(() => {\n setContext((ctx) => ({ ...ctx, theme }));\n }, [theme]);\n\n return (\n <StiggContext.Provider value={ctx}>\n <SkeletonTheme baseColor=\"#F5F6F9\" highlightColor=\"#e5e6ea\">\n {children}\n </SkeletonTheme>\n </StiggContext.Provider>\n );\n};\n","import { useContext } from 'react';\nimport { StiggContext, StiggContextValue } from '../components/StiggProvider';\n\nexport function useStiggContext(options?: { optional?: false }): StiggContextValue;\nexport function useStiggContext(options: { optional: true }): StiggContextValue | null;\nexport function useStiggContext(options?: { optional?: boolean }): StiggContextValue | null {\n const { optional } = options || {};\n const ctx = useContext(StiggContext);\n if (!ctx && !optional) {\n throw new Error('Could not find Stigg context; You need to wrap your app in an <StiggProvider> component.');\n }\n return ctx;\n}\n","import { BillingPeriod, Paywall } from '@stigg/js-client-sdk';\nimport { useEffect, useState } from 'react';\nimport logger from '../../../services/logger';\nimport { CurrentSubscriptionOverrideFn, PaywallData } from '../types';\nimport { computeBillingPeriods } from '../utils/computeDefaultBillingPeriod';\nimport { mapPaywallData } from '../utils/mapPaywallData';\nimport { useStiggContext } from '../../../hooks/useStiggContext';\n\ntype UseLoadPaywallDataProps = {\n productId?: string;\n resourceId?: string;\n showOnlyEligiblePlans?: boolean;\n billingCountryCode?: string;\n preferredBillingPeriod?: BillingPeriod;\n currentSubscriptionOverrideFn?: CurrentSubscriptionOverrideFn;\n};\n\nexport function useLoadPaywallData({\n productId,\n resourceId,\n showOnlyEligiblePlans,\n billingCountryCode,\n preferredBillingPeriod,\n currentSubscriptionOverrideFn,\n}: UseLoadPaywallDataProps): PaywallData {\n const { stigg, locale } = useStiggContext();\n const [selectedBillingPeriod, setSelectedBillingPeriod] = useState(BillingPeriod.Annually);\n const [availableBillingPeriods, setAvailableBillingPeriods] = useState<BillingPeriod[]>([]);\n const [paywall, setPaywall] = useState<Paywall | null>(null);\n const [isLoading, setIsLoading] = useState<boolean>(true);\n\n useEffect(() => {\n const loadPaywall = async () => {\n try {\n setIsLoading(true);\n\n await stigg.waitForInitialization();\n const paywallResult = await stigg.getPaywall({\n productId,\n resourceId,\n billingCountryCode,\n });\n const { availableBillingPeriods, defaultBillingPeriod } = computeBillingPeriods(\n paywallResult.plans,\n paywallResult.activeSubscriptions,\n preferredBillingPeriod,\n );\n\n setPaywall(paywallResult);\n setAvailableBillingPeriods(availableBillingPeriods);\n setSelectedBillingPeriod(defaultBillingPeriod);\n } catch (err) {\n logger.error(`Failed to load paywall ${(err as any)?.message}`, err as any);\n } finally {\n setIsLoading(false);\n }\n };\n\n void loadPaywall();\n }, [stigg, productId, stigg.isCustomerLoaded, billingCountryCode, resourceId, preferredBillingPeriod]);\n\n const paywallData = mapPaywallData(paywall, showOnlyEligiblePlans, currentSubscriptionOverrideFn);\n\n return {\n customer: paywall?.customer || null,\n isLoading,\n selectedBillingPeriod,\n setSelectedBillingPeriod,\n availableBillingPeriods,\n locale,\n configuration: paywallData.paywallConfiguration,\n ...paywallData,\n };\n}\n","import {\n BillingPeriod,\n PaywallCalculatedPricePoint,\n PaywallCurrency,\n Plan,\n Price,\n PriceTierFragment,\n} from '@stigg/js-client-sdk';\nimport merge from 'lodash/merge';\nimport { DeepPartial } from '../../types';\nimport { PlanPriceText } from '../utils/getPlanPrice';\nimport { PaywallPlan } from './types';\n\nexport { PlanPriceText } from '../utils/getPlanPrice';\n\nexport type CurrentPlanParams = {\n plan: Plan;\n selectedBillingPeriod: BillingPeriod;\n};\n\nexport type PaywallLocalization = {\n highlightChip: string;\n entitlementsTitle?: (plan: PaywallPlan) => string;\n addonsTitle?: string;\n planCTAButton: {\n upgrade: string | ((plan: PaywallPlan) => string);\n downgrade: string | ((plan: PaywallPlan) => string);\n startTrial: (plan: PaywallPlan) => string;\n custom: ((data: CurrentPlanParams) => string) | string;\n currentPlan: string;\n startNew: string;\n switchToBillingPeriod: (billingPeriod: BillingPeriod) => string;\n cancelScheduledUpdate: string;\n };\n price: {\n startingAtCaption: string;\n billingPeriod?: (billingPeriod: BillingPeriod) => string;\n pricePeriod: (billingPeriod: BillingPeriod) => string;\n custom: ((data: CurrentPlanParams) => string) | string;\n priceNotSet: string;\n free: PlanPriceText | ((currency?: PaywallCurrency) => PlanPriceText);\n paid?: (priceData: {\n planPrices: Price[];\n paywallCalculatedPrice?: PaywallCalculatedPricePoint;\n plan: Plan;\n selectedBillingPeriod: BillingPeriod;\n selectedTier?: PriceTierFragment;\n }) => PlanPriceText;\n };\n};\n\nexport function getResolvedPaywallLocalize(localizeOverride?: DeepPartial<PaywallLocalization>) {\n const paywallDefaultLocalization: PaywallLocalization = {\n highlightChip: 'Recommended',\n addonsTitle: 'Available add-ons:',\n planCTAButton: {\n upgrade: 'Upgrade',\n downgrade: 'Downgrade',\n startTrial: (plan: PaywallPlan) => `Start ${plan.defaultTrialConfig?.duration} day trial`,\n custom: 'Contact us',\n currentPlan: 'Current plan',\n startNew: 'Get started',\n switchToBillingPeriod: (billingPeriod) => {\n return billingPeriod === BillingPeriod.Monthly ? 'Switch to monthly billing' : 'Switch to annual billing';\n },\n cancelScheduledUpdate: 'Cancel',\n },\n price: {\n startingAtCaption: 'Starts at',\n pricePeriod: (billingPeriod: BillingPeriod) => (billingPeriod === BillingPeriod.Monthly ? '/ month' : '/ year'),\n free: (currency) => ({\n price: `${currency?.symbol}0`,\n }),\n custom: 'Custom',\n priceNotSet: 'Price not set',\n },\n };\n return merge(paywallDefaultLocalization, localizeOverride);\n}\n","<svg width=\"15\" height=\"11\" viewBox=\"0 0 15 11\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M5.59 7.9899L2.125 4.5249C1.73524 4.13514 1.10365 4.13402 0.712509 4.52241V4.52241C0.319409 4.91274 0.318286 5.54819 0.710005 5.9399L5.59 10.8199L14.2948 2.11513C14.6843 1.72565 14.6843 1.09417 14.2948 0.704691V0.704691C13.9055 0.315381 13.2743 0.315184 12.8848 0.70425L5.59 7.9899Z\" fill=\"#B2BBD3\"/>\n</svg>\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport Skeleton from 'react-loading-skeleton';\nimport CheckUrl from '../../assets/check-stigg.svg';\n\nconst SkeletonContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n`;\n\nconst EntitlementCheckIcon = styled(CheckUrl)`\n margin-right: 16px;\n`;\n\nconst PlanOfferingSkeleton = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 20px;\n border-radius: 10px;\n padding: ${({ theme }) => theme.stigg.layout.planPadding};\n background-color: ${({ theme }) => theme.stigg.palette.backgroundPaper};\n min-width: ${({ theme }) => theme.stigg.layout.planMinWidth};\n max-width: ${({ theme }) => theme.stigg.layout.planMaxWidth};\n min-height: 450px;\n border: ${({ theme }) => `1px solid ${theme.stigg.palette.outlinedBorder}`};\n`;\n\nconst PlansContainer = styled.div`\n display: flex;\n gap: ${({ theme }) => theme.stigg.layout.planMargin};\n flex-wrap: wrap;\n justify-content: center;\n`;\n\nconst EntitlementContainer = styled.div`\n display: flex;\n align-items: center;\n margin-bottom: 12px;\n`;\n\nconst FooterSkeletonLoader = styled.div`\n margin-top: auto;\n`;\n\nconst BillingPeriodLoader = styled.div`\n width: 150px;\n margin-bottom: ${({ theme }) => theme.stigg.layout.switchBottomSpacing};\n padding: 12px 12px;\n border-radius: 10px;\n background-color: white;\n border: ${({ theme }) => `1px solid ${theme.stigg.palette.outlinedBorder}`};\n`;\n\nfunction PlanOfferingLoader() {\n return (\n <PlanOfferingSkeleton>\n <Skeleton width={120} borderRadius={4} />\n <Skeleton circle width={40} height={40} />\n <Skeleton style={{ marginBottom: 33 }} width={120} borderRadius={4} />\n\n <EntitlementContainer>\n <EntitlementCheckIcon />\n <Skeleton width={120} borderRadius={4} />\n </EntitlementContainer>\n <EntitlementContainer>\n <EntitlementCheckIcon />\n <Skeleton width={120} borderRadius={4} />\n </EntitlementContainer>\n <EntitlementContainer>\n <EntitlementCheckIcon />\n <Skeleton width={120} borderRadius={4} />\n </EntitlementContainer>\n\n <FooterSkeletonLoader>\n <Skeleton height={50} borderRadius={4} />\n </FooterSkeletonLoader>\n </PlanOfferingSkeleton>\n );\n}\n\nexport function PaywallLoader() {\n return (\n <SkeletonContainer className=\"stigg-skeleton-loader-container\">\n <BillingPeriodLoader className=\"stigg-skeleton-loader-billing-period\">\n <Skeleton borderRadius={4} />\n </BillingPeriodLoader>\n\n <PlansContainer className=\"stigg-skeleton-loader-plans-container\">\n <PlanOfferingLoader />\n <PlanOfferingLoader />\n <PlanOfferingLoader />\n </PlansContainer>\n </SkeletonContainer>\n );\n}\n","import React from 'react';\nimport { Global, css } from '@emotion/react';\n\nexport const Fonts = ({ externalFontUrl }: { externalFontUrl?: string }) => {\n return (\n <Global\n styles={css`\n ${externalFontUrl &&\n `\n @font-face {\n font-family: 'custom-font';\n font-style: normal;\n font-weight: normal;\n src: local('custom-font'), url(${externalFontUrl}) format('woff');\n }\n `}\n\n /* latin-ext */\n @font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/dmsans/v11/rP2Hp2ywxg089UriCZ2IHTWEBlwu8Q.woff2) format('woff2');\n unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F,\n U+A720-A7FF;\n }\n /* latin */\n @font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 400;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/dmsans/v11/rP2Hp2ywxg089UriCZOIHTWEBlw.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074,\n U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n }\n /* latin-ext */\n @font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/dmsans/v11/rP2Cp2ywxg089UriAWCrCBamC3YU-CnE6Q.woff2) format('woff2');\n unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F,\n U+A720-A7FF;\n }\n /* latin */\n @font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 500;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/dmsans/v11/rP2Cp2ywxg089UriAWCrCBimC3YU-Ck.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074,\n U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n }\n /* latin-ext */\n @font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/dmsans/v11/rP2Cp2ywxg089UriASitCBamC3YU-CnE6Q.woff2) format('woff2');\n unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F,\n U+A720-A7FF;\n }\n /* latin */\n @font-face {\n font-family: 'DM Sans';\n font-style: normal;\n font-weight: 700;\n font-display: swap;\n src: url(https://fonts.gstatic.com/s/dmsans/v11/rP2Cp2ywxg089UriASitCBimC3YU-Ck.woff2) format('woff2');\n unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074,\n U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;\n }\n `}\n />\n );\n};\n","import { merge } from 'lodash';\nimport React, { PropsWithChildren } from 'react';\nimport { ThemeProvider as StyledThemeProvider } from 'styled-components';\nimport { TypographyProps } from 'styled-typography';\nimport { css, ThemeProvider } from '@emotion/react';\nimport styled from '@emotion/styled/macro';\nimport { createTheme, ThemeProvider as MuiThemeProvider, THEME_ID } from '@mui/material/styles';\n\nimport { DeepPartial } from '../types';\nimport { Fonts } from './Fonts';\nimport { getResolvedTheme } from './getResolvedTheme';\nimport { StiggTheme } from './types';\nimport { useStiggContext } from '../hooks/useStiggContext';\n\nexport type CustomizedTheme = DeepPartial<StiggTheme>;\n\nconst CustomCssGlobal = styled.div<{ customCss?: string }>`\n ${({ customCss }) =>\n customCss &&\n css`\n ${customCss}\n `}\n`;\n\ntype SdkThemeProviderProps = {\n componentTheme?: CustomizedTheme;\n};\n\n/*\n This merge the theme from 3 places:\n 1. External theme that we got from the user in StiggProvider\n 2. Remote theme from api\n 3. Default theme\n*/\nexport function useStiggTheme(remoteThemeOverride?: CustomizedTheme): StiggTheme {\n const { theme: externalTheme } = useStiggContext();\n const mergedTheme = merge(remoteThemeOverride, externalTheme);\n const resolvedTheme = getResolvedTheme(mergedTheme);\n\n return resolvedTheme;\n}\n\nfunction createTypographyTheme(theme: StiggTheme): Partial<TypographyProps> {\n const { typography } = theme;\n const htmlFontSize = 16;\n const coef = Number(typography.body.fontSize.replace('px', '')) / 14;\n\n return {\n // Hack to fix theming issues\n // @ts-ignore\n pxToRem: (size) => `${(size / htmlFontSize) * coef}rem`,\n bodyFontFamily: typography.fontFamily,\n headingFontFamily: typography.fontFamily,\n fontSizes: [\n typography.h1.fontSize,\n typography.h2.fontSize,\n typography.h3.fontSize,\n typography.body.fontSize,\n '12px',\n '10px',\n ],\n };\n}\n\nconst createMuiPalette = (theme: StiggTheme) => {\n return {\n primary: {\n main: theme.palette.primary,\n },\n };\n};\n\nexport const SdkThemeProvider: React.FC<PropsWithChildren<SdkThemeProviderProps>> = ({ children, componentTheme }) => {\n const theme = useStiggTheme(componentTheme);\n const muiPalette = createMuiPalette(theme);\n const materialTheme = createTheme({ palette: muiPalette, stigg: theme });\n\n return (\n // We are using styled-components theme here only because we are using styled-typography\n // which depends on styled-components for the typography theming\n <MuiThemeProvider theme={{ [THEME_ID]: materialTheme }}>\n <ThemeProvider theme={{ stigg: theme }}>\n <CustomCssGlobal customCss={theme.customCss}>\n <Fonts externalFontUrl={theme.typography.fontFamilyUrl} />\n <StyledThemeProvider theme={{ typography: createTypographyTheme(theme) }}>{children}</StyledThemeProvider>\n </CustomCssGlobal>\n </ThemeProvider>\n </MuiThemeProvider>\n );\n};\n","import { CustomerPortal } from '@stigg/js-client-sdk';\nimport { useEffect, useState } from 'react';\nimport logger from '../../../services/logger';\nimport { useStiggContext } from '../../../hooks/useStiggContext';\n\ntype UseCustomerPortalProps = {\n resourceId?: string;\n productId?: string;\n};\n\nexport function useCustomerPortal({ resourceId, productId }: UseCustomerPortalProps) {\n const { stigg, customerPortalUpdatedAt } = useStiggContext();\n const [isLoading, setIsLoading] = useState(false);\n const [customerPortal, setCustomerPortal] = useState<CustomerPortal | null>();\n\n useEffect(() => {\n const loadCustomerPortal = async () => {\n if (stigg.isCustomerLoaded) {\n try {\n setIsLoading(true);\n const customerPortalData = await stigg.getCustomerPortal({ resourceId, productId });\n setCustomerPortal(customerPortalData);\n } catch (err) {\n logger.error(`Failed to load customer portal ${(err as any)?.message}`, err as any);\n } finally {\n setIsLoading(false);\n }\n }\n };\n\n void loadCustomerPortal();\n }, [stigg, stigg.isCustomerLoaded, customerPortalUpdatedAt, resourceId, productId]);\n\n return {\n customerPortal,\n isLoading,\n };\n}\n","import merge from 'lodash/merge';\nimport { DeepPartial } from '../../types';\n\nexport type CustomerPortalLocalization = {\n manageSubscription: string;\n usageTabTitle: string;\n addonsTabTitle: string;\n promotionsTabTitle: string;\n promotionsSubtitle: string;\n contactSupportTitle: string;\n contactSupportLink: string;\n editBilling: string;\n invoicesTitle: string;\n viewInvoiceHistory: string;\n editPaymentDetails: string;\n paywallSectionTitle: string;\n cancelScheduledUpdatesButtonTitle: string;\n};\n\nexport function getResolvedCustomerPortalLocalize(\n localizeOverride?: DeepPartial<CustomerPortalLocalization>,\n): CustomerPortalLocalization {\n const customerPortalDefaultLocalization: CustomerPortalLocalization = {\n manageSubscription: 'Manage',\n usageTabTitle: 'Usage',\n addonsTabTitle: 'Add-ons',\n promotionsTabTitle: 'Promotions',\n promotionsSubtitle: 'You were granted access to additional functionality at no additional cost.',\n contactSupportTitle: 'Have questions about your subscription?',\n contactSupportLink: 'Contact support',\n editBilling: 'Edit billing details',\n invoicesTitle: 'Invoices',\n viewInvoiceHistory: 'View invoice history',\n editPaymentDetails: 'Edit',\n paywallSectionTitle: 'Plans',\n cancelScheduledUpdatesButtonTitle: 'Cancel',\n };\n return merge(customerPortalDefaultLocalization, localizeOverride);\n}\n","import { CustomerPortalConfiguration } from '@stigg/js-client-sdk';\nimport { StiggTheme } from '../../theme/types';\nimport { DeepPartial } from '../../types';\n\nexport type CustomerPortalTheme = {\n sectionTitleColor: string;\n planNameColor: string;\n backgroundColor: string;\n borderColor: string;\n listItemBackgroundColor: string;\n tabMaxHeight: string;\n iconsColor?: string;\n iconsBackgroundColor?: string;\n};\n\nexport function getResolvedCustomerPortalTheme(\n globalTheme: StiggTheme,\n themeOverride?: DeepPartial<CustomerPortalTheme>,\n remoteConfiguration?: CustomerPortalConfiguration | null,\n) {\n const customerPortalDefaultTheme: CustomerPortalTheme = {\n sectionTitleColor: themeOverride?.sectionTitleColor || globalTheme.palette.text.secondary,\n planNameColor: themeOverride?.planNameColor || globalTheme.palette.text.primary,\n backgroundColor: themeOverride?.backgroundColor || remoteConfiguration?.palette?.backgroundColor || 'white',\n borderColor: themeOverride?.borderColor || remoteConfiguration?.palette?.borderColor || 'rgba(0, 30, 108, 0.15)',\n listItemBackgroundColor: themeOverride?.backgroundColor || remoteConfiguration?.palette?.backgroundColor || 'white',\n tabMaxHeight: themeOverride?.tabMaxHeight || '380px',\n\n // add icons background color and apply to scheduled updates and customer support icons\n iconsColor: themeOverride?.iconsColor || remoteConfiguration?.palette?.iconsColor || undefined,\n iconsBackgroundColor: themeOverride?.iconsBackgroundColor,\n };\n\n return customerPortalDefaultTheme;\n}\n","import React, { useContext } from 'react';\nimport { CustomerPortal } from '@stigg/js-client-sdk';\nimport { useCustomerPortal } from './hooks/useCustomerPortal';\nimport { DeepPartial } from '../../types';\nimport { CustomerPortalLocalization, getResolvedCustomerPortalLocalize } from './customerPortalTextOverrides';\nimport { CustomerPortalTheme, getResolvedCustomerPortalTheme } from './customerPortalTheme';\nimport { SdkThemeProvider, useStiggTheme } from '../../theme/Theme';\nimport { useStiggContext } from '../..';\nimport { mapCustomerPortalConfiguration } from '../common/mapExternalTheme';\n\nexport interface CustomerPortalContextValue {\n customerPortal?: CustomerPortal | null;\n textOverrides: CustomerPortalLocalization;\n theme: CustomerPortalTheme;\n isLoading: boolean;\n resourceId?: string;\n}\n\nexport const CustomerPortalContext = React.createContext<CustomerPortalContextValue | null>(null);\nCustomerPortalContext.displayName = 'CustomerPortalContext';\n\nexport const useCustomerPortalContext = (): CustomerPortalContextValue => {\n const ctx = useContext(CustomerPortalContext);\n if (!ctx) {\n throw new Error(\n 'Could not find Customer portal context; You need to wrap your customer portal components in an <CustomerPortalProvider> component.',\n );\n }\n return ctx;\n};\n\nexport function useCheckContextExists<T>(contextType: React.Context<T>) {\n const ctx = useContext(contextType);\n return !!ctx;\n}\n\nexport function CustomerPortalProvider({\n children,\n textOverrides,\n theme,\n resourceId,\n productId,\n}: {\n children: React.ReactNode;\n textOverrides?: DeepPartial<CustomerPortalLocalization>;\n theme?: DeepPartial<CustomerPortalTheme>;\n resourceId?: string;\n productId?: string;\n}) {\n const { customerPortalUpdatedAt } = useStiggContext();\n const { customerPortal, isLoading } = useCustomerPortal({ resourceId, productId });\n const configuration = customerPortal?.configuration\n ? mapCustomerPortalConfiguration(customerPortal.configuration)\n : undefined;\n const globalTheme = useStiggTheme(configuration);\n const customerPortalTheme = getResolvedCustomerPortalTheme(globalTheme, theme, customerPortal?.configuration);\n const resolvedTextOverrides = getResolvedCustomerPortalLocalize(textOverrides);\n\n return (\n <SdkThemeProvider componentTheme={configuration}>\n <CustomerPortalContext.Provider\n key={customerPortalUpdatedAt?.toString()}\n value={{\n customerPortal,\n isLoading,\n textOverrides: resolvedTextOverrides,\n theme: customerPortalTheme,\n resourceId,\n }}>\n {children}\n </CustomerPortalContext.Provider>\n </SdkThemeProvider>\n );\n}\n","import React from 'react';\nimport { BillingPeriod } from '@stigg/js-client-sdk';\nimport { Paywall } from './Paywall';\nimport { useLoadPaywallData } from './hooks/useLoadPaywallData';\nimport {\n ShouldHidePlanFn,\n OnPlanSelectedCallbackFn,\n SelectDefaultTierIndexFn,\n CurrentSubscriptionOverrideFn,\n} from './types';\nimport { getResolvedPaywallLocalize, PaywallLocalization } from './paywallTextOverrides';\nimport { DeepPartial } from '../../types';\nimport { PaywallLoader } from './PaywallLoader';\nimport { SdkThemeProvider } from '../../theme/Theme';\nimport {\n CustomerPortalContext,\n useCheckContextExists,\n useCustomerPortalContext,\n} from '../customerPortal/CustomerPortalProvider';\n\nexport type PaywallContainerProps = {\n productId?: string;\n resourceId?: string;\n highlightedPlanId?: string;\n showOnlyEligiblePlans?: boolean;\n onPlanSelected: OnPlanSelectedCallbackFn;\n preferredBillingPeriod?: BillingPeriod;\n onBillingPeriodChange?: (billingPeriod: BillingPeriod) => void;\n textOverrides?: DeepPartial<PaywallLocalization>;\n billingCountryCode?: string;\n shouldHidePlan?: ShouldHidePlanFn;\n selectDefaultTierIndex?: SelectDefaultTierIndexFn;\n hideCompatibleAddons?: boolean;\n // This is used to override the current subscription in case a many to one plan mapping is needed\n // Many plans mapped to one (fictive) plan\n currentSubscriptionOverride?: CurrentSubscriptionOverrideFn;\n};\n\nexport const PaywallContainer = ({\n productId,\n resourceId,\n highlightedPlanId,\n showOnlyEligiblePlans,\n textOverrides,\n onPlanSelected,\n preferredBillingPeriod,\n onBillingPeriodChange,\n billingCountryCode,\n shouldHidePlan,\n selectDefaultTierIndex,\n currentSubscriptionOverride: currentSubscriptionOverrideFn,\n hideCompatibleAddons,\n}: PaywallContainerProps) => {\n const hasCustomerPortalContext = useCheckContextExists(CustomerPortalContext);\n let isCustomerPortalLoading = false;\n if (hasCustomerPortalContext) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const { isLoading, resourceId: customerPortalResourceId } = useCustomerPortalContext();\n isCustomerPortalLoading = isLoading;\n resourceId = customerPortalResourceId;\n }\n const {\n plans,\n customer,\n currentSubscription,\n currentSubscriptionOverride,\n isCustomerOnTrial,\n isLoading,\n selectedBillingPeriod,\n setSelectedBillingPeriod,\n availableBillingPeriods,\n locale,\n configuration,\n } = useLoadPaywallData({\n productId,\n resourceId,\n showOnlyEligiblePlans,\n billingCountryCode,\n preferredBillingPeriod,\n currentSubscriptionOverrideFn,\n });\n const paywallLocale = getResolvedPaywallLocalize(textOverrides);\n const handlePeriodChange = (billingPeriod: BillingPeriod) => {\n setSelectedBillingPeriod(billingPeriod);\n if (onBillingPeriodChange) {\n onBillingPeriodChange(billingPeriod);\n }\n };\n\n const component =\n !plans || isLoading || isCustomerPortalLoading ? (\n <PaywallLoader />\n ) : (\n <Paywall\n plans={plans}\n customer={customer}\n currentSubscription={currentSubscription}\n currentSubscriptionOverride={currentSubscriptionOverride}\n selectedBillingPeriod={selectedBillingPeriod}\n onBillingPeriodChanged={handlePeriodChange}\n availableBillingPeriods={availableBillingPeriods}\n highlightedPlanId={highlightedPlanId}\n isCustomerOnTrial={isCustomerOnTrial}\n onPlanSelected={onPlanSelected}\n paywallLocale={paywallLocale}\n locale={locale}\n shouldHidePlan={shouldHidePlan}\n selectDefaultTierIndex={selectDefaultTierIndex}\n hideCompatibleAddons={hideCompatibleAddons}\n />\n );\n\n // When rendering the paywall in the customer portal context we don't want to apply paywall theme\n if (hasCustomerPortalContext) {\n return component;\n }\n return <SdkThemeProvider componentTheme={configuration}>{component}</SdkThemeProvider>;\n};\n","import styled from '@emotion/styled/macro';\nimport MuiButton from '@mui/material/Button';\n\nexport const StyledButton = styled(MuiButton)`\n border-radius: 10px;\n padding: 8px 16px;\n text-transform: none;\n\n &,\n &:hover {\n border-color: ${({ theme }) => theme.stigg.palette.outlinedRestingBorder};\n }\n`;\n","<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M13.3333 2.5L17.5 6.66667L6.66667 17.5H2.5V13.3333L13.3333 2.5V2.5Z\" stroke=\"#327EEE\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</svg>\n","import styled from '@emotion/styled/macro';\n\nexport const SectionHeader = styled.div<{ $disableMargin?: boolean }>`\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n ${({ $disableMargin }) =>\n !$disableMargin &&\n `\n &:not(:last-child) {\n margin-bottom: 32px;\n }\n `};\n`;\n","import React from 'react';\nimport Skeleton from 'react-loading-skeleton';\nimport { Typography } from '../../common/Typography';\nimport { useCustomerPortalContext } from '../CustomerPortalProvider';\n\nexport type SectionTitleProps = {\n title: string;\n className: string;\n isLoading?: boolean;\n};\n\nexport function SectionTitle({ title, className, isLoading }: SectionTitleProps) {\n const { theme } = useCustomerPortalContext();\n\n if (isLoading) {\n return <Skeleton width={120} />;\n }\n\n return (\n <Typography className={className} overrideColor={theme.sectionTitleColor} variant=\"h3\" bold>\n {title}\n </Typography>\n );\n}\n","import { CustomerPortalEntitlement, CustomerPortalSubscription } from '@stigg/js-client-sdk';\nimport { FeatureFragment } from '@stigg/api-client-js/src/generated/sdk';\n\nexport type OnBuyMoreCallbackFn = (feature: FeatureFragment, entitlement: CustomerPortalEntitlement) => void;\n\nexport type FilterEntitlementsFn = (entitlements: CustomerPortalEntitlement[]) => CustomerPortalEntitlement[];\n\nexport enum CustomerPortalIntentionType {\n MANAGE_SUBSCRIPTION = 'MANAGE_SUBSCRIPTION',\n UPGRADE_PLAN = 'UPGRADE_PLAN',\n UPGRADE_TRIAL_PLAN = 'UPGRADE_TRIAL_PLAN',\n}\n\nexport type OnManageSubscriptionFn = ({\n intentionType,\n customerSubscriptions,\n}: {\n intentionType: CustomerPortalIntentionType;\n customerSubscriptions: CustomerPortalSubscription[];\n}) => Promise<void> | void;\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { StyledButton } from '../common/StyledButton';\nimport { Typography } from '../../common/Typography';\nimport EditIcon from '../../../assets/edit-icon.svg';\nimport { CustomerPortalLocalization } from '../customerPortalTextOverrides';\nimport { SectionHeader } from '../common/SectionHeader';\nimport { SectionTitle } from '../common/SectionTitle';\nimport { OnManageClick } from '../CustomerPortalContainer';\nimport { CustomerPortalIntentionType } from '../types';\n\ntype SubscriptionsOverviewHeaderProps = {\n onManageSubscription: OnManageClick;\n hideManageButton: boolean;\n textOverrides: CustomerPortalLocalization;\n};\n\nconst StyledEditIcon = styled(EditIcon)`\n path {\n stroke: ${({ theme }) => theme.stigg.palette.primary};\n }\n`;\n\nexport function SubscriptionsOverviewHeader({\n onManageSubscription,\n hideManageButton,\n textOverrides,\n}: SubscriptionsOverviewHeaderProps) {\n return (\n <SectionHeader className=\"stigg-customer-portal-overview-header\" $disableMargin>\n <SectionTitle title=\"Subscription\" className=\"stigg-overview-title\" />\n {!hideManageButton && (\n <StyledButton\n className=\"stigg-manage-subscription-button\"\n variant=\"outlined\"\n onClick={() => onManageSubscription({ intentionType: CustomerPortalIntentionType.MANAGE_SUBSCRIPTION })}>\n <StyledEditIcon className=\"stigg-manage-subscription-button-image\" />\n <Typography\n className=\"stigg-manage-subscription-button-text\"\n color=\"primary.main\"\n style={{ marginLeft: '8px' }}\n variant=\"body1\">\n {textOverrides?.manageSubscription}\n </Typography>\n </StyledButton>\n )}\n </SectionHeader>\n );\n}\n","import flatMap from 'lodash/flatMap';\nimport isEmpty from 'lodash/isEmpty';\nimport React from 'react';\nimport { Typography } from '../../../common/Typography';\nimport { useCustomerPortalContext } from '../../CustomerPortalProvider';\n\nexport function AddonsList() {\n const { customerPortal } = useCustomerPortalContext();\n const addons = flatMap(customerPortal?.subscriptions, (subscription) => subscription.addons);\n if (isEmpty(addons)) {\n return null;\n }\n\n return (\n <div className=\"stigg-addons-list-layout\">\n {addons.map((addon, index) => (\n <Typography key={addon.addonId} span className=\"stigg-addon-list-item-text\" variant=\"body1\">\n {addon.quantity > 1 && `${addon.quantity} X `}\n {addon.displayName}\n {index === addons.length - 1 ? '' : ', '}\n </Typography>\n ))}\n </div>\n );\n}\n","import { CustomerPortalPromotionalEntitlement } from '@stigg/js-client-sdk';\nimport moment from 'moment';\nimport React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { Typography } from '../../../common/Typography';\nimport { useCustomerPortalContext } from '../../CustomerPortalProvider';\n\nconst Row = styled.div<{ $borderColor: string }>`\n display: flex;\n justify-content: space-between;\n align-items: center;\n gap: 64px;\n border-bottom: ${({ $borderColor }) => `1px solid ${$borderColor}`};\n padding: 16px 0;\n\n & > *:first-of-type {\n max-width: 60%;\n }\n`;\n\nfunction getPromotionTitle(promotionalEntitlement: CustomerPortalPromotionalEntitlement) {\n const { displayName, usageLimit, hasUnlimitedUsage } = promotionalEntitlement;\n\n if (hasUnlimitedUsage) {\n return `Unlimited ${displayName}`;\n }\n if (usageLimit) {\n return `${displayName} x ${promotionalEntitlement.usageLimit?.toLocaleString()}`;\n }\n\n return displayName;\n}\n\nexport function Promotions() {\n const { customerPortal, textOverrides, theme } = useCustomerPortalContext();\n const promotionalEntitlements = customerPortal?.promotionalEntitlements;\n\n return (\n <div style={{ display: 'flex', flexDirection: 'column' }}>\n <Typography color=\"secondary\">{textOverrides.promotionsSubtitle}</Typography>\n <div style={{ display: 'flex', flexDirection: 'column' }}>\n <Row $borderColor={theme.borderColor}>\n <Typography variant=\"body1\" bold>\n Feature\n </Typography>\n <Typography variant=\"body1\" bold>\n Expiration date\n </Typography>\n </Row>\n {promotionalEntitlements?.map((promotionalEntitlement, index) => (\n <Row key={`${promotionalEntitlement.displayName}-${index}`} $borderColor={theme.borderColor}>\n <Typography variant=\"body1\">{getPromotionTitle(promotionalEntitlement)}</Typography>\n <Typography variant=\"body1\" color=\"disabled\">\n {promotionalEntitlement.endDate\n ? moment.utc(promotionalEntitlement.endDate).format('MMM Do, YYYY')\n : 'None'}\n </Typography>\n </Row>\n ))}\n </div>\n </div>\n );\n}\n","import styled from '@emotion/styled/macro';\nimport Box from '@mui/material/Box';\nimport Tabs from '@mui/material/Tabs';\n\nexport const StyledTabs = styled(Tabs)`\n .MuiTabs-indicator {\n background-color: #001e6c;\n }\n`;\n\nexport const TabsLayout = styled.div`\n width: 100%;\n flex: 1;\n margin-top: 16px;\n`;\n\nexport const TabContent = styled(Box, { shouldForwardProp: (prop) => !prop.startsWith('$') })<{ $maxHeight: string }>`\n margin-top: 16px;\n max-height: ${({ $maxHeight }) => $maxHeight};\n overflow-y: auto;\n`;\n\nexport const ListBox = styled.div<{ $backgroundColor: string; $borderColor: string }>`\n display: flex;\n flex-direction: column;\n padding: 24px;\n border: ${({ $borderColor }) => `1px solid ${$borderColor}`};\n border-radius: 10px;\n margin-bottom: 16px;\n row-gap: 16px;\n background-color: ${({ $backgroundColor }) => $backgroundColor};\n`;\n","import React, { useState } from 'react';\nimport { CustomerPortal } from '@stigg/js-client-sdk';\nimport flatMap from 'lodash/flatMap';\nimport Box from '@mui/material/Box';\nimport Tab from '@mui/material/Tab';\nimport { FontWeight } from 'styled-typography';\nimport { Typography } from '../../../common/Typography';\nimport { AddonsList } from './AddonsList';\nimport { Promotions } from './Promotions';\nimport { CustomerPortalSection } from '../../CustomerPortal';\nimport { CustomerPortalLocalization } from '../../customerPortalTextOverrides';\nimport { StyledTabs, TabContent, TabsLayout } from './SubscriptionTabs.style';\nimport { CustomerPortalTheme } from '../../customerPortalTheme';\nimport { Icon, Icons } from '../../../common/Icon';\n\ntype TabPanelProps = {\n children?: React.ReactNode;\n index: number;\n value: number;\n maxHeight: string;\n};\n\nfunction TabPanel(props: TabPanelProps) {\n const { children, value, index, maxHeight, ...other } = props;\n\n return (\n <div role=\"tabpanel\" hidden={value !== index} {...other}>\n {value === index && <TabContent $maxHeight={maxHeight}>{children}</TabContent>}\n </div>\n );\n}\n\nexport type SubscriptionTabsProps = {\n customerPortal: CustomerPortal;\n hiddenSections?: CustomerPortalSection[];\n textOverrides: CustomerPortalLocalization;\n theme: CustomerPortalTheme;\n};\n\nfunction TabTitle({ isSelected, label, icon }: { isSelected: boolean; label: string; icon: Icons }) {\n const color = isSelected ? 'primary' : 'secondary';\n return (\n <div style={{ display: 'flex', gap: 8, alignItems: 'center' }}>\n <Icon icon={icon} svgStrokeColor={color} />\n <Typography variant=\"h6\" bold={isSelected} fontWeight={FontWeight.Medium} color={color}>\n {label}\n </Typography>\n </div>\n );\n}\n\nexport function SubscriptionTabs({ customerPortal, hiddenSections, textOverrides, theme }: SubscriptionTabsProps) {\n const allAddons = flatMap(customerPortal.subscriptions, (subscription) => subscription.addons);\n const isSectionHidden = (sectionName: CustomerPortalSection) =>\n hiddenSections?.some((section) => section === sectionName);\n const showAddons = allAddons.length > 0 && !isSectionHidden('addons');\n const showPromotions =\n customerPortal.promotionalEntitlements.length > 0 && !isSectionHidden('promotionalEntitlements');\n const [value, setValue] = useState(showAddons ? 1 : 2);\n\n const handleChange = (_: React.SyntheticEvent, newValue: number) => {\n setValue(newValue);\n };\n const shouldShowTabs = showAddons || showPromotions;\n\n if (!shouldShowTabs) {\n return null;\n }\n\n return (\n <TabsLayout>\n <Box sx={{ borderBottom: 1, borderColor: 'divider' }}>\n <StyledTabs value={value} onChange={handleChange}>\n {showAddons ? (\n <Tab\n sx={{ textTransform: 'none' }}\n value={1}\n label={<TabTitle isSelected={value === 1} label={textOverrides.addonsTabTitle} icon=\"Addons\" />}\n />\n ) : null}\n {showPromotions ? (\n <Tab\n sx={{ textTransform: 'none' }}\n value={2}\n label={<TabTitle isSelected={value === 2} label={textOverrides.promotionsTabTitle} icon=\"Promotions\" />}\n />\n ) : null}\n </StyledTabs>\n </Box>\n <TabPanel value={value} index={1} maxHeight={theme.tabMaxHeight}>\n <AddonsList />\n </TabPanel>\n <TabPanel value={value} index={2} maxHeight={theme.tabMaxHeight}>\n <Promotions />\n </TabPanel>\n </TabsLayout>\n );\n}\n","export const breakpoints = {\n xs: 320,\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n xxl: 1536,\n} as const;\n\nexport type Breakpoints = typeof breakpoints;\n\nexport type Breakpoint = keyof Breakpoints;\n\nexport const mqMinWidth = (breakpoint: Breakpoint) => `(min-width: ${breakpoints[breakpoint]}px)`;\n\nexport const mq = Object.keys(breakpoints).reduce(\n (obj, breakpoint) => ({ ...obj, [breakpoint]: `@media ${mqMinWidth(breakpoint as Breakpoint)}` }),\n {} as Record<Breakpoint, string>,\n);\n","import { useMediaQuery as useMediaQueryMui } from '@mui/material';\nimport { Breakpoint, mqMinWidth } from '../common/mediaQuery';\n\nexport function useIsScreenWiderThan(breakpoint: Breakpoint) {\n return useMediaQueryMui(mqMinWidth(breakpoint));\n}\n","import styled from '@emotion/styled/macro';\nimport React from 'react';\nimport Skeleton from 'react-loading-skeleton';\nimport { useIsScreenWiderThan } from '../../hooks/useIsScreenWiderThan';\n\nconst SkeletonLayout = styled.div`\n display: flex;\n justify-content: space-between;\n flex-wrap: wrap;\n`;\n\nconst SkeletonLayoutLeft = styled.div`\n display: flex;\n flex-direction: column;\n gap: 32px;\n`;\n\nexport function SubscriptionOverviewLoader() {\n const isScreenWiderThanMd = useIsScreenWiderThan('md');\n return (\n <SkeletonLayout className=\"stigg-subscription-overview-skeleton-layout\">\n <SkeletonLayoutLeft>\n <Skeleton width={120} />\n <Skeleton width={120} />\n </SkeletonLayoutLeft>\n <Skeleton width={isScreenWiderThanMd ? 295 : 260} height={193} />\n </SkeletonLayout>\n );\n}\n","import React from 'react';\nimport { ArrowDown } from 'react-feather';\nimport Grid from '@mui/material/Grid';\nimport {\n CustomerPortalSubscription,\n CustomerPortalSubscriptionScheduledUpdateDataFragment,\n SubscriptionScheduleType,\n BillingPeriod,\n} from '@stigg/js-client-sdk';\nimport { compact, map } from 'lodash';\nimport { Typography } from '../../../common/Typography';\nimport { BillingPeriodChangeVariables, UnitAmountChangeVariables } from '../../../../types';\n\nexport type SubscriptionScheduledUpdateRowProps = {\n scheduleUpdate: CustomerPortalSubscriptionScheduledUpdateDataFragment;\n};\n\nfunction SubscriptionScheduledUpdateDowngradeRow({ scheduleUpdate }: SubscriptionScheduledUpdateRowProps) {\n const { targetPackage } = scheduleUpdate;\n return (\n <Grid container alignItems=\"center\">\n <Grid>\n <ArrowDown color=\"#D94052\" height={20} className=\"stigg-scheduled-updates-arrow-down\" />\n </Grid>\n <Grid item>\n <Typography className=\"stigg-scheduled-updates-description\" variant=\"body1\">\n Downgrade to the <b>{targetPackage?.displayName}</b> plan\n </Typography>\n </Grid>\n </Grid>\n );\n}\n\nfunction SubscriptionScheduledUpdateBillingPeriodChangeRow({ scheduleUpdate }: SubscriptionScheduledUpdateRowProps) {\n const { scheduleVariables } = scheduleUpdate;\n const { billingPeriod } = scheduleVariables as BillingPeriodChangeVariables;\n const currentBillingPeriod = billingPeriod === BillingPeriod.Monthly ? 'annually' : 'monthly';\n const nextBillingPeriod = billingPeriod === BillingPeriod.Monthly ? 'monthly' : 'annually';\n\n return (\n <Grid container alignItems=\"center\">\n <Grid>\n <ArrowDown color=\"#D94052\" height={20} className=\"stigg-scheduled-updates-arrow-down\" />\n </Grid>\n <Grid item>\n <Typography className=\"stigg-scheduled-updates-description\" variant=\"body1\">\n Change from an {currentBillingPeriod} to a <b>{nextBillingPeriod}</b> billing cycle\n </Typography>\n </Grid>\n </Grid>\n );\n}\n\nfunction SubscriptionScheduledUpdateUnitQuantityChangeRow({\n subscription,\n scheduleUpdate,\n}: SubscriptionScheduledUpdateRowProps & { subscription: CustomerPortalSubscription }) {\n const { scheduleVariables } = scheduleUpdate;\n const { newUnitAmount, featureId } = scheduleVariables as UnitAmountChangeVariables;\n const feature = compact(map(subscription.prices, 'feature')).find(({ id }) => id === featureId);\n\n if (!feature) {\n return null;\n }\n\n const { featureUnits, featureUnitsPlural } = feature;\n const newQuantityUnits = newUnitAmount === 1 ? featureUnits : featureUnitsPlural;\n\n return (\n <Grid container alignItems=\"flex-start\" flexWrap=\"nowrap\">\n <Grid>\n <ArrowDown color=\"#D94052\" height={20} className=\"stigg-scheduled-updates-arrow-down\" />\n </Grid>\n <Grid item>\n <Typography className=\"stigg-scheduled-updates-description\" variant=\"body1\">\n Reduce the <b>{featureUnits}</b> quantity to {newUnitAmount} {newQuantityUnits}\n </Typography>\n </Grid>\n </Grid>\n );\n}\n\nexport function SubscriptionScheduledUpdateRow({\n scheduleUpdate,\n subscription,\n}: {\n scheduleUpdate: CustomerPortalSubscriptionScheduledUpdateDataFragment;\n subscription: CustomerPortalSubscription;\n}) {\n switch (scheduleUpdate.subscriptionScheduleType) {\n case SubscriptionScheduleType.Downgrade: {\n return <SubscriptionScheduledUpdateDowngradeRow scheduleUpdate={scheduleUpdate} />;\n }\n\n case SubscriptionScheduleType.BillingPeriod: {\n return <SubscriptionScheduledUpdateBillingPeriodChangeRow scheduleUpdate={scheduleUpdate} />;\n }\n\n case SubscriptionScheduleType.UnitAmount: {\n return (\n <SubscriptionScheduledUpdateUnitQuantityChangeRow scheduleUpdate={scheduleUpdate} subscription={subscription} />\n );\n }\n\n default: {\n return null;\n }\n }\n}\n","import React, { useState } from 'react';\nimport Box from '@mui/material/Box';\nimport Grid from '@mui/material/Grid';\nimport { CustomerPortalSubscription } from '@stigg/js-client-sdk';\nimport styled from '@emotion/styled/macro';\nimport { useTheme } from '@emotion/react';\nimport ClipLoader from 'react-spinners/ClipLoader';\nimport { CustomerPortalTheme } from '../../customerPortalTheme';\nimport Restore from '../../../../assets/restore.svg';\nimport { Icon } from '../../../common/Icon';\nimport { Typography } from '../../../common/Typography';\nimport { SubscriptionScheduledUpdateRow } from './SubscriptionScheduledUpdateRow';\nimport { getSubscriptionScheduleUpdateTexts } from '../../../utils/getSubscriptionScheduleUpdateTexts';\nimport { StyledButton } from '../../common/StyledButton';\n\nexport type SubscriptionScheduledUpdatesAlertProps = {\n subscription: CustomerPortalSubscription;\n onCancelScheduledUpdates?: (subscription: CustomerPortalSubscription) => void;\n theme: CustomerPortalTheme;\n cancelScheduledUpdatesButtonTitle: string;\n};\n\nconst SubscriptionScheduleUpdateAlertContainer = styled(Box)<{ $borderColor: string }>`\n border-bottom: ${({ $borderColor }) => `1px solid ${$borderColor}`};\n border-top-left-radius: 10px;\n border-top-right-radius: 10px;\n margin: -64px -64px 64px -64px;\n padding: 24px 32px;\n`;\n\nconst LoadingIndicator = styled(ClipLoader)`\n margin-left: 4px;\n`;\n\nconst StyledRestoreIcon = styled(Restore)`\n color: ${({ theme }) => theme.stigg.palette.primary};\n path {\n fill: ${({ theme }) => theme.stigg.palette.primary};\n }\n`;\n\nfunction MultipleScheduledUpdates({ subscription }: Pick<SubscriptionScheduledUpdatesAlertProps, 'subscription'>) {\n const { scheduledUpdates } = subscription;\n\n return (\n <>\n <Grid container alignItems=\"center\" justifyContent=\"space-between\" gap={1}>\n <Grid>\n <Typography className=\"stigg-scheduled-updates-description\" variant=\"body1\">\n The following updates will take effect in the next billing cycle:\n </Typography>\n </Grid>\n </Grid>\n <Grid>\n {(scheduledUpdates || []).map((scheduleUpdate) => (\n <SubscriptionScheduledUpdateRow\n key={scheduleUpdate.subscriptionScheduleType}\n scheduleUpdate={scheduleUpdate}\n subscription={subscription}\n />\n ))}\n </Grid>\n </>\n );\n}\n\nfunction SingleScheduledUpdate({ subscription }: Pick<SubscriptionScheduledUpdatesAlertProps, 'subscription'>) {\n const { scheduledUpdates } = subscription;\n const [scheduledUpdate] = scheduledUpdates || [];\n\n const { line1, line2 } = getSubscriptionScheduleUpdateTexts({\n scheduledUpdate,\n subscriptionPrices: subscription.prices,\n billingPeriodRange: subscription.billingPeriodRange,\n options: {\n postfix: 'at the end of the current billing period', // We can later remove this if unnecessary\n },\n });\n\n return (\n <>\n <Grid container alignItems=\"center\" justifyContent=\"space-between\" gap={1}>\n <Grid>\n <Typography className=\"stigg-scheduled-updates-title\" variant=\"body1\" color=\"primary\">\n {line1}\n </Typography>\n </Grid>\n </Grid>\n {line2 && (\n <Grid>\n <Typography className=\"stigg-scheduled-updates-subtitle\" variant=\"body1\" color=\"secondary\">\n {line2}\n </Typography>\n </Grid>\n )}\n </>\n );\n}\n\nexport function SubscriptionScheduledUpdatesAlert({\n subscription,\n onCancelScheduledUpdates,\n theme,\n cancelScheduledUpdatesButtonTitle,\n}: SubscriptionScheduledUpdatesAlertProps) {\n const stiggTheme = useTheme();\n const [isLoading, setIsLoading] = useState(false);\n const { scheduledUpdates } = subscription;\n\n if (!scheduledUpdates || scheduledUpdates.length === 0) {\n return null;\n }\n\n const isSingleScheduledUpdate = scheduledUpdates.length === 1;\n\n return (\n <SubscriptionScheduleUpdateAlertContainer\n $borderColor={theme.borderColor}\n className=\"stigg-scheduled-updates-alert-container\">\n <Grid container alignItems={isSingleScheduledUpdate ? 'center' : 'flex-start'} gap={2}>\n <Grid item display=\"flex\">\n <Icon icon=\"ScheduleBox\" svgPathColor={theme.iconsColor} svgRectColor={theme.iconsBackgroundColor} />\n </Grid>\n\n <Grid item flex={1}>\n {isSingleScheduledUpdate ? (\n <SingleScheduledUpdate subscription={subscription} />\n ) : (\n <MultipleScheduledUpdates subscription={subscription} />\n )}\n </Grid>\n\n {!!onCancelScheduledUpdates && (\n <Grid item>\n <StyledButton\n variant=\"outlined\"\n onClick={() => {\n setIsLoading(true);\n Promise.resolve(onCancelScheduledUpdates(subscription)).finally(() => setIsLoading(false));\n }}>\n {isLoading ? (\n <LoadingIndicator loading size={16} color={stiggTheme.stigg.palette.text.disabled} />\n ) : (\n <StyledRestoreIcon\n style={{ display: 'flex', marginRight: 4 }}\n className=\"stigg-scheduled-updates-cancel-update-button-icon\"\n />\n )}\n <Typography variant=\"body1\" color=\"primary.main\" className=\"stigg-scheduled-updates-cancel-update-button\">\n {cancelScheduledUpdatesButtonTitle}\n </Typography>\n </StyledButton>\n </Grid>\n )}\n </Grid>\n </SubscriptionScheduleUpdateAlertContainer>\n );\n}\n","import styled from '@emotion/styled/macro';\nimport { mq } from '../../common/mediaQuery';\n\nexport const SectionContainer = styled.div<{ $backgroundColor: string; $borderColor: string }>`\n width: 100%;\n display: flex;\n flex-direction: column;\n border-radius: 10px;\n background-color: ${({ $backgroundColor }) => $backgroundColor};\n border: ${({ $borderColor }) => `1px solid ${$borderColor}`};\n\n padding: 16px;\n ${mq.sm} {\n padding: 32px;\n }\n ${mq.md} {\n padding: 48px;\n }\n ${mq.lg} {\n padding: 64px;\n }\n`;\n","import { BillingPeriod, Currency } from '@stigg/js-client-sdk';\nimport moment from 'moment';\nimport React from 'react';\nimport { currencyPriceFormatter } from '../../../utils/currencyUtils';\nimport { Typography } from '../../../common/Typography';\n\nexport type NextEstimatedBillProps = {\n billingPeriod: BillingPeriod;\n rangeEnd: string;\n amount: number;\n currency: Currency;\n};\n\nexport function NextEstimatedBill({ billingPeriod, rangeEnd, amount, currency }: NextEstimatedBillProps) {\n return (\n <>\n <Typography variant=\"h6\">Next estimated bill</Typography>\n <Typography variant=\"h1\">{currencyPriceFormatter({ amount, currency, maximumFractionDigits: 2 })}</Typography>\n <Typography as=\"div\" variant=\"body1\" color=\"secondary\">\n Billed {billingPeriod === BillingPeriod.Monthly ? 'monthly' : 'annually'} on{' '}\n <Typography variant=\"body1\" span color=\"primary\">\n {moment.utc(rangeEnd).format('MMM Do, YYYY')}\n </Typography>\n </Typography>\n <Typography variant=\"body1\" color=\"secondary\">\n * Additional tax rates may apply\n </Typography>\n </>\n );\n}\n","import React from 'react';\nimport { Typography } from '../../../common/Typography';\n\ntype NoUpcomingBillingProps = {\n description: string;\n};\n\nexport function NoUpcomingBilling({ description }: NoUpcomingBillingProps) {\n return (\n <>\n <Typography variant=\"h6\" color=\"secondary\">\n No upcoming bill\n </Typography>\n <Typography variant=\"body1\" color=\"secondary\">\n {description}\n </Typography>\n </>\n );\n}\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport Button from '@mui/material/Button';\nimport { Typography } from '../../common/Typography';\n\nconst ContactCustomerSupportLayout = styled.div`\n display: flex;\n flex-direction: column;\n align-items: left;\n gap: 8px;\n`;\n\nconst ContactSupportButton = styled(Button)`\n width: fit-content;\n &.MuiButton-root {\n padding: 0;\n &:hover {\n background: none;\n }\n }\n`;\n\ntype ContactCustomerSupportProps = {\n onContactSupport?: () => void;\n label: string;\n linkLabel: string;\n};\n\nexport function ContactCustomerSupport({ onContactSupport, label, linkLabel }: ContactCustomerSupportProps) {\n const contactSupportText = (\n <Typography color={onContactSupport ? 'primary.main' : 'secondary'}>{linkLabel}</Typography>\n );\n return (\n <ContactCustomerSupportLayout className=\"stigg-contact-support-layout\">\n <Typography className=\"stigg-contact-support-label\" color=\"secondary\">\n {label}\n </Typography>\n {onContactSupport ? (\n <ContactSupportButton\n className=\"stigg-contact-support-button\"\n style={{ textTransform: 'none' }}\n variant=\"text\"\n onClick={onContactSupport}>\n {contactSupportText}\n </ContactSupportButton>\n ) : (\n contactSupportText\n )}\n </ContactCustomerSupportLayout>\n );\n}\n","import styled from '@emotion/styled/macro';\nimport React, { ReactNode } from 'react';\nimport {\n BillingModel,\n CustomerPortalSubscription,\n PricingType,\n SubscriptionScheduleType,\n SubscriptionStatus,\n} from '@stigg/js-client-sdk';\nimport { CustomerPortalTheme } from '../../customerPortalTheme';\nimport { NextEstimatedBill } from './NextEstimatedBill';\nimport { NoUpcomingBilling } from './NoUpcomingBilling';\nimport { ContactCustomerSupport } from '../ContactCustomerSupport';\nimport { CustomerPortalLocalization } from '../../customerPortalTextOverrides';\n\nconst Container = styled.div<{ $borderColor: string }>`\n max-height: 278px;\n display: flex;\n flex-direction: column;\n border-radius: 10px;\n background-color: ${({ theme }) => theme.stigg.palette.backgroundSection};\n border: ${({ $borderColor }) => `1px solid ${$borderColor}`};\n padding: 32px;\n gap: 16px;\n`;\n\nexport type UpcomingBillingProps = {\n subscription: CustomerPortalSubscription;\n theme: CustomerPortalTheme;\n textOverrides: CustomerPortalLocalization;\n onContactSupport?: () => Promise<void> | void;\n};\n\nexport function UpcomingBilling({ subscription, theme, textOverrides, onContactSupport }: UpcomingBillingProps) {\n const { pricingType } = subscription;\n let content: ReactNode;\n const noUsageBasedPrices =\n subscription.prices?.every((price) => price.billingModel !== BillingModel.UsageBased) ?? true;\n const scheduledDowngradeToFree = subscription.scheduledUpdates?.find(\n ({ subscriptionScheduleType, targetPackage }) =>\n subscriptionScheduleType === SubscriptionScheduleType.Downgrade &&\n targetPackage?.pricingType === PricingType.Free,\n );\n\n if (pricingType === PricingType.Free) {\n content = <NoUpcomingBilling description=\"You're on a free plan, so you don’t have any upcoming charges\" />;\n } else if (pricingType === PricingType.Paid) {\n if (scheduledDowngradeToFree && noUsageBasedPrices) {\n content = (\n <NoUpcomingBilling description=\"Your plan will be downgraded to a free plan, so you don’t have any upcoming charges\" />\n );\n } else if (subscription.status === SubscriptionStatus.InTrial) {\n content = (\n <NoUpcomingBilling\n description={`You’re on a free trial of the ${subscription.planName} plan, so you don’t have any upcoming charges`}\n />\n );\n } else {\n const billingPeriod = subscription.prices?.[0]?.billingPeriod;\n const rangeEnd = subscription.billingPeriodRange?.end;\n const total = subscription.totalPrice?.total;\n\n if (billingPeriod && rangeEnd && total) {\n content = (\n <NextEstimatedBill\n billingPeriod={billingPeriod}\n rangeEnd={rangeEnd}\n amount={total.amount}\n currency={total.currency}\n />\n );\n }\n }\n } else if (pricingType === PricingType.Custom) {\n content = (\n <ContactCustomerSupport\n onContactSupport={onContactSupport}\n label={textOverrides.contactSupportTitle}\n linkLabel={textOverrides.contactSupportLink}\n />\n );\n }\n\n return (\n <Container className=\"stigg-subscription-total-price-layout\" $borderColor={theme.borderColor}>\n {content}\n </Container>\n );\n}\n","<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<path d=\"M12.9469 13.5999H11.9344L11.935 10.7756C11.935 10.6288 11.87 10.4819 11.7557 10.3838L8.62061 7.91816L11.755 5.4532C11.8694 5.35507 11.9344 5.22444 11.9344 5.06132L11.935 2.40004H12.9475C13.225 2.40004 13.4375 2.18755 13.4375 1.91004C13.4375 1.63254 13.225 1.42004 12.9475 1.42004L3.05311 1.42067C2.77561 1.42067 2.56311 1.63316 2.56311 1.91067C2.56311 2.18817 2.77561 2.40067 3.05311 2.40067H4.06561L4.06498 5.06131C4.06498 5.20818 4.12998 5.35505 4.24436 5.45318L7.36244 7.91814L4.245 10.3837C4.13062 10.4819 4.06562 10.6125 4.06562 10.7756V13.5999H3.05313C2.77562 13.5999 2.56313 13.8124 2.56313 14.0899C2.56313 14.3674 2.77562 14.5799 3.05313 14.5799H12.9469C13.2244 14.5799 13.4369 14.3674 13.4369 14.0899C13.4369 13.8124 13.2244 13.5999 12.9469 13.5999ZM5.04498 2.39995H10.9551V4.81627L8.00002 7.16747L5.04498 4.81627V2.39995ZM5.04498 11.0206L8.00002 8.66939L10.9551 11.0044V13.5838H5.04498V11.0206Z\" fill=\"white\"/>\n<path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M3.05303 1.25404L12.9474 1.25342C13.317 1.25342 13.6041 1.54053 13.6041 1.91008C13.6041 2.27964 13.317 2.56675 12.9474 2.56675H12.1016L12.101 5.06136V5.06136C12.101 5.2747 12.0135 5.45101 11.8635 5.57973L11.8581 5.58436L8.89014 7.9182L11.8642 10.2572C12.0164 10.3878 12.1016 10.5814 12.1016 10.7757L12.101 13.4333H12.9468C13.3164 13.4333 13.6035 13.7204 13.6035 14.09C13.6035 14.4595 13.3164 14.7466 12.9468 14.7466H3.05304C2.68349 14.7466 2.39638 14.4595 2.39638 14.09C2.39638 13.7204 2.68349 13.4333 3.05304 13.4333H3.89887V10.7757C3.89887 10.5623 3.98635 10.386 4.13639 10.2573L4.14144 10.253L7.09365 7.91821L4.13566 5.57982C3.98346 5.44923 3.89823 5.25562 3.89823 5.06135L3.89882 2.56738H3.05303C2.68348 2.56738 2.39636 2.28026 2.39636 1.91071C2.39636 1.54116 2.68348 1.25405 3.05303 1.25404V1.25404ZM12.9474 1.58675L3.05304 1.58738C2.86758 1.58738 2.7297 1.72525 2.7297 1.91071C2.7297 2.09617 2.86757 2.23404 3.05303 2.23404H4.23223L4.23157 5.06135V5.06135C4.23158 5.15983 4.27538 5.25908 4.35053 5.32476L7.63107 7.91815L4.35113 10.5123C4.2739 10.5795 4.23221 10.6639 4.23221 10.7757V13.7666H3.05304C2.86759 13.7666 2.72971 13.9045 2.72971 14.09C2.72971 14.2754 2.86759 14.4133 3.05304 14.4133H12.9468C13.1323 14.4133 13.2701 14.2754 13.2701 14.09C13.2701 13.9045 13.1323 13.7667 12.9468 13.7667H11.7676L11.7683 10.7757V10.7757C11.7683 10.6772 11.7245 10.5781 11.6495 10.5124L8.35092 7.91819L11.6489 5.32461C11.726 5.25743 11.7676 5.17306 11.7676 5.06136L11.7683 2.23342H12.9474C13.1329 2.23342 13.2708 2.09554 13.2708 1.91008C13.2708 1.72463 13.1329 1.58676 12.9474 1.58675V1.58675ZM4.87823 2.23332H11.1216V4.89669L7.99994 7.3805L4.87823 4.89669V2.23332ZM5.21157 2.56666V4.73593L7.99994 6.95452L10.7883 4.73593V2.56666H5.21157ZM7.99958 8.45673L11.1216 10.9237V13.7505H4.87823V10.9403L7.99958 8.45673ZM8.0003 8.88213L5.21157 11.101V13.4172H10.7883V11.0852L8.0003 8.88213Z\" fill=\"white\"/>\n</svg>\n","import React from 'react';\nimport Tooltip, { tooltipClasses, TooltipProps } from '@mui/material/Tooltip';\nimport styled from '@emotion/styled/macro';\n\nexport type InformationTooltipProps = TooltipProps & { $padding?: number; $maxWidth?: number };\n\nexport const InformationTooltip = styled(\n ({ children, className, placement = 'top', ...props }: InformationTooltipProps) => (\n <Tooltip\n arrow\n placement={placement}\n {...props}\n classes={{ popper: className, tooltip: 'stigg-tooltip', arrow: 'stigg-tooltip-arrow' }}>\n <div>{children}</div>\n </Tooltip>\n ),\n)(({ theme, $padding = 8, $maxWidth = 300 }) => ({\n [`& .${tooltipClasses.tooltip}`]: {\n backgroundColor: theme.stigg.palette.white,\n maxWidth: $maxWidth,\n boxShadow: theme.stigg.shadows.popover,\n padding: $padding,\n borderRadius: theme.stigg.border.radius,\n color: theme.stigg.palette.text.primary,\n },\n [`& .${tooltipClasses.arrow}`]: {\n color: theme.stigg.palette.white,\n },\n}));\n","import React, { CSSProperties, ReactNode, useEffect, useRef, useState } from 'react';\nimport styled, { css } from 'styled-components';\nimport { TooltipProps } from '@mui/material/Tooltip';\nimport { InformationTooltip } from './InformationTooltip';\nimport { Typography, TypographyProps } from './Typography';\n\nconst StyledText = styled(Typography)<{ $maxLines: number; $wordBreak?: boolean; $display: string; $bold?: boolean }>`\n display: ${({ $display }) => $display};\n -webkit-line-clamp: ${({ $maxLines }) => $maxLines};\n -webkit-box-orient: vertical;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: normal;\n ${({ $wordBreak }) =>\n $wordBreak &&\n css`\n word-break: break-word;\n `}\n\n ${({ $bold }) =>\n $bold &&\n css`\n font-weight: bold;\n `}\n`;\n\nfunction checkTextClamped(element: HTMLSpanElement) {\n return element && (element.clientHeight < element.scrollHeight || element.offsetWidth < element.scrollWidth);\n}\n\nexport const LongText = ({\n leaveDelay,\n children,\n variant,\n color,\n maxLines = 1,\n wordBreak,\n bold,\n tooltipPlacement = 'top',\n className,\n display = '-webkit-box',\n style,\n 'data-testid': dataTestId,\n}: {\n children: ReactNode;\n leaveDelay?: number;\n variant?: TypographyProps['variant'];\n color?: TypographyProps['color'];\n maxLines?: number;\n wordBreak?: boolean;\n bold?: boolean;\n tooltipPlacement?: TooltipProps['placement'];\n className?: string;\n display?: string;\n style?: CSSProperties;\n ['data-testid']?: string;\n}) => {\n const [isTextClamped, setIsTextClamped] = useState(false);\n const ref = useRef<HTMLSpanElement>(null);\n const content = (\n <StyledText\n ref={ref}\n variant={variant}\n color={color}\n $maxLines={maxLines}\n $wordBreak={wordBreak}\n $bold={bold}\n className={className}\n $display={display}\n style={style}\n data-testid={dataTestId}>\n {children}\n </StyledText>\n );\n\n // Trigger recalculate of text clamped since ref is not always exists on first render\n useEffect(() => {\n if (ref?.current) {\n const textClamped = checkTextClamped(ref.current);\n setIsTextClamped(textClamped);\n }\n }, [ref]);\n\n const textClamped = ref?.current && checkTextClamped(ref.current);\n return (\n <span>\n {isTextClamped || textClamped ? (\n <InformationTooltip\n placement={tooltipPlacement}\n leaveDelay={leaveDelay}\n title={<Typography variant=\"body1\">{children}</Typography>}>\n {content}\n </InformationTooltip>\n ) : (\n content\n )}\n </span>\n );\n};\n","import styled from '@emotion/styled/macro';\nimport React from 'react';\nimport { CustomerPortalSubscription, SubscriptionStatus } from '@stigg/js-client-sdk';\nimport Link from '@mui/material/Link';\nimport SandClockIcon from '../../../../assets/sand-clock.svg';\nimport { Typography } from '../../../common/Typography';\nimport { LongText } from '../../../common/LongText';\nimport { OnManageClick } from '../../CustomerPortalContainer';\nimport { CustomerPortalIntentionType } from '../../types';\n\nconst OnTrialBadge = styled.div`\n width: 100%;\n display: flex;\n align-items: center;\n gap: 4px;\n background-color: ${({ theme }) => theme.stigg.palette.warning};\n border-radius: 10px;\n padding: 8px 16px;\n margin-top: 16px;\n`;\n\nconst StyledLink = styled(Link)`\n text-decoration-color: white;\n color: white;\n cursor: pointer;\n`;\n\nexport function TrialPanel({\n subscription,\n includePlanName,\n onManageSubscription,\n}: {\n subscription: CustomerPortalSubscription | undefined;\n includePlanName: boolean;\n onManageSubscription: OnManageClick;\n}) {\n if (subscription?.status !== SubscriptionStatus.InTrial) {\n return null;\n }\n\n return (\n <OnTrialBadge className=\"stigg-subscription-trial-badge\">\n <SandClockIcon className=\"stigg-subscription-trial-badge-image\" />\n\n <div style={{ flex: 1, marginRight: 4 }}>\n <LongText variant=\"body1\" className=\"stigg-subscription-trial-badge-text\" color=\"white\">\n {`${subscription.trialRemainingDays} days remaining in trial`}\n {includePlanName && ` of the ${subscription.planName} plan`}\n </LongText>\n </div>\n\n <StyledLink\n className=\"stigg-subscription-trial-upgrade-button\"\n onClick={() => onManageSubscription({ intentionType: CustomerPortalIntentionType.UPGRADE_TRIAL_PLAN })}>\n <Typography color=\"white\">Upgrade plan</Typography>\n </StyledLink>\n </OnTrialBadge>\n );\n}\n","import React from 'react';\nimport { CustomerPortalSubscription } from '@stigg/js-client-sdk';\nimport { Typography } from '../../../common/Typography';\nimport { TrialPanel } from './TrialPanel';\nimport { CustomerPortalTheme } from '../../customerPortalTheme';\nimport { OnManageClick } from '../../CustomerPortalContainer';\n\ntype SubscriptionViewProps = {\n mainSubscription: CustomerPortalSubscription;\n trialSubscription: CustomerPortalSubscription | undefined;\n onManageSubscription: OnManageClick;\n theme: CustomerPortalTheme;\n};\n\nexport function SubscriptionView({\n mainSubscription,\n trialSubscription,\n onManageSubscription,\n theme,\n}: SubscriptionViewProps) {\n return (\n <div className=\"stigg-subscription-view-layout\">\n <Typography\n className=\"stigg-subscription-plan-name\"\n variant=\"h1\"\n overrideColor={theme.planNameColor}\n style={{ marginTop: 8 }}>\n {mainSubscription.planName} plan\n </Typography>\n\n <TrialPanel\n subscription={trialSubscription}\n includePlanName={trialSubscription?.planName !== mainSubscription.planName}\n onManageSubscription={onManageSubscription}\n />\n </div>\n );\n}\n","import { CustomerPortalEntitlement } from '@stigg/js-client-sdk';\nimport moment from 'moment';\n\nexport const USAGE_PERCENTAGE_WARNING_THRESHOLD = 70;\n\nexport function getUsagePercentage(currentUsage: number, limit: number) {\n return Math.min(Math.floor((currentUsage / limit) * 100), 100);\n}\n\nexport function getUsageProgressStatus(currentUsage: number) {\n let status: 'standard' | 'warning' | 'error';\n\n if (currentUsage < USAGE_PERCENTAGE_WARNING_THRESHOLD) {\n status = 'standard';\n } else if (currentUsage < 100) {\n status = 'warning';\n } else {\n status = 'error';\n }\n\n return status;\n}\n\nexport function getResetUsageText(entitlement: CustomerPortalEntitlement) {\n if (!entitlement.resetPeriod || !entitlement.usagePeriodEnd) {\n return null;\n }\n\n const calculateResetDiff = (unit: 'days' | 'hours' | 'minutes') => {\n return moment.utc(entitlement.usagePeriodEnd).diff(moment.utc(), unit);\n };\n\n switch (entitlement.resetPeriod) {\n case 'MONTH':\n return `Resets monthly - in ${calculateResetDiff('days')} days`;\n case 'WEEK':\n return `Resets weekly - in ${calculateResetDiff('days')} days`;\n case 'DAY':\n return `Resets daily - in ${calculateResetDiff('hours')} hours`;\n case 'HOUR':\n return `Resets hourly - in ${calculateResetDiff('minutes')} minutes`;\n default:\n return null;\n }\n}\n","import styled from '@emotion/styled/macro';\nimport LinearProgress from '@mui/material/LinearProgress';\nimport React from 'react';\nimport { CustomerPortalEntitlement } from '@stigg/js-client-sdk';\nimport Divider from '@mui/material/Divider';\nimport Color from 'color';\nimport { getUsagePercentage, getUsageProgressStatus } from './FeatureUsage.helper';\n\nexport const StyledLinearProgress = styled(LinearProgress, { shouldForwardProp: (prop) => !prop.startsWith('$') })<{\n $progressStatus: 'standard' | 'warning' | 'error';\n}>`\n height: 4px;\n background-color: ${({ theme }) => Color(theme.stigg.palette.primary).alpha(0.4).string()};\n\n span {\n background-color: ${({ $progressStatus, theme }) => {\n switch ($progressStatus) {\n case 'standard':\n return theme.stigg.palette.primary;\n case 'warning':\n return theme.stigg.palette.warning;\n case 'error':\n return theme.stigg.palette.error;\n default:\n return theme.stigg.palette.primary;\n }\n }};\n }\n`;\n\nexport const StyledDivider = styled(Divider)`\n border-style: dotted;\n border-bottom-width: 2px;\n border-color: ${({ theme }) => Color(theme.stigg.palette.outlinedRestingBorder).alpha(0.4).string()};\n`;\n\nexport type FeatureUsageProgressBarProps = {\n entitlement: CustomerPortalEntitlement;\n};\n\nexport function FeatureUsageProgressBar({ entitlement }: FeatureUsageProgressBarProps) {\n if (entitlement.hasUnlimitedUsage) {\n return <StyledDivider />;\n }\n\n const usagePercentage = getUsagePercentage(entitlement.currentUsage || 0, entitlement.usageLimit!);\n const linearProgressStatus = getUsageProgressStatus(usagePercentage);\n\n return (\n <StyledLinearProgress\n $progressStatus={linearProgressStatus}\n className={`stigg-feature-usage-progress-bar-${linearProgressStatus.toString()}`}\n variant=\"determinate\"\n value={usagePercentage}\n />\n );\n}\n","import { CustomerPortalEntitlement } from '@stigg/js-client-sdk';\nimport { FeatureFragment } from '@stigg/api-client-js/src/generated/sdk';\nimport Button from '@mui/material/Button';\nimport React from 'react';\nimport styled from 'styled-components';\nimport { getUsagePercentage, USAGE_PERCENTAGE_WARNING_THRESHOLD } from './FeatureUsage.helper';\nimport { Typography } from '../../../common/Typography';\nimport { CustomerPortalIntentionType, OnBuyMoreCallbackFn } from '../../types';\nimport { OnManageClick } from '../../CustomerPortalContainer';\n\nconst StyledButton = styled(Button)`\n text-transform: none;\n padding: 0;\n white-space: nowrap;\n`;\n\nexport type EntitlementCtaButtonProps = {\n entitlement: Exclude<CustomerPortalEntitlement, 'feature'>;\n feature: FeatureFragment;\n onManageSubscription: OnManageClick | undefined;\n onBuyMore?: OnBuyMoreCallbackFn;\n canBuyMore: boolean;\n canUpgradeSubscription: boolean;\n hasCustomSubscription: boolean;\n};\n\nexport function EntitlementCtaButton({\n entitlement,\n feature,\n onManageSubscription,\n onBuyMore,\n canBuyMore,\n canUpgradeSubscription,\n hasCustomSubscription,\n}: EntitlementCtaButtonProps) {\n if (hasCustomSubscription || entitlement.hasUnlimitedUsage) {\n return null;\n }\n\n if (getUsagePercentage(entitlement.currentUsage || 0, entitlement.usageLimit!) < USAGE_PERCENTAGE_WARNING_THRESHOLD) {\n return null;\n }\n\n if (canBuyMore) {\n return onBuyMore ? (\n <StyledButton variant=\"text\" onClick={() => onBuyMore(feature, entitlement)}>\n <Typography color=\"primary.main\">Buy more</Typography>\n </StyledButton>\n ) : null;\n }\n\n if (canUpgradeSubscription) {\n return onManageSubscription ? (\n <StyledButton\n variant=\"text\"\n onClick={() => onManageSubscription({ intentionType: CustomerPortalIntentionType.UPGRADE_PLAN })}>\n <Typography color=\"primary.main\">Upgrade</Typography>\n </StyledButton>\n ) : null;\n }\n\n return null;\n}\n","import { Currency, CustomerPortalEntitlement } from '@stigg/js-client-sdk';\nimport React from 'react';\nimport { FeatureFragment } from '@stigg/api-client-js/src/generated/sdk';\nimport { Typography } from '../../../common/Typography';\nimport { currencyPriceFormatter } from '../../../utils/currencyUtils';\nimport { FeatureUsageProgressBar } from '../../usage/featureUsage/FeatureUsageProgressBar';\nimport { LongText } from '../../../common/LongText';\nimport { EntitlementCtaButton } from '../../usage/featureUsage/EntitlementCTAButton';\nimport { OnBuyMoreCallbackFn } from '../../types';\nimport { OnManageClick } from '../../CustomerPortalContainer';\n\nexport type UsageBasedChargeProps = {\n entitlement: Exclude<CustomerPortalEntitlement, 'feature'>;\n feature: FeatureFragment;\n amount: number;\n blockSize?: number | null;\n currency: Currency;\n onBuyMore?: OnBuyMoreCallbackFn;\n onManageSubscription: OnManageClick;\n canUpgradeSubscription: boolean;\n hasCustomSubscription: boolean;\n hideChargePrice?: boolean;\n};\n\nexport function ChargeItem({\n amount,\n currency,\n blockSize,\n entitlement,\n feature,\n hideChargePrice,\n onBuyMore,\n onManageSubscription,\n canUpgradeSubscription,\n hasCustomSubscription,\n}: UsageBasedChargeProps) {\n return (\n <div\n className={`stigg-charge-list-item stigg-charge-list-item-${entitlement.feature!.refId}`}\n style={{ display: 'flex', flexDirection: 'column', gap: 12 }}>\n <div style={{ display: 'flex', justifyContent: 'space-between', gap: 12 }}>\n <div style={{ display: 'flex', gap: 12 }}>\n <LongText variant=\"body1\" color=\"primary\">\n {feature.displayName}\n </LongText>\n {!hideChargePrice && (\n <LongText variant=\"body1\" color=\"secondary\">\n {currencyPriceFormatter({ amount, currency })} per {blockSize ? `${blockSize} ` : ''}\n {blockSize ? feature.featureUnitsPlural : feature.featureUnits}\n </LongText>\n )}\n </div>\n\n <div style={{ display: 'flex', gap: 12 }}>\n <EntitlementCtaButton\n entitlement={entitlement}\n feature={feature}\n canBuyMore\n onBuyMore={onBuyMore}\n onManageSubscription={onManageSubscription}\n canUpgradeSubscription={canUpgradeSubscription}\n hasCustomSubscription={hasCustomSubscription}\n />\n <Typography variant=\"body1\" color=\"primary\" style={{ whiteSpace: 'nowrap' }}>\n {entitlement.hasUnlimitedUsage\n ? entitlement.currentUsage?.toLocaleString()\n : `${entitlement.currentUsage?.toLocaleString()} of ${entitlement.usageLimit?.toLocaleString()}`}\n </Typography>\n </div>\n </div>\n\n <FeatureUsageProgressBar entitlement={entitlement} />\n </div>\n );\n}\n","import { BillingModel, CustomerPortalEntitlement, CustomerPortalSubscription } from '@stigg/js-client-sdk';\nimport React from 'react';\nimport { keyBy } from 'lodash';\nimport { ChargeItem } from './ChargeItem';\nimport { OnBuyMoreCallbackFn } from '../../types';\nimport { OnManageClick } from '../../CustomerPortalContainer';\n\nexport type ChargesProps = {\n subscription: CustomerPortalSubscription;\n entitlements: CustomerPortalEntitlement[];\n onBuyMore?: OnBuyMoreCallbackFn;\n onManageSubscription: OnManageClick;\n canUpgradeSubscription: boolean;\n hasCustomSubscription: boolean;\n};\n\nexport function ChargeList({\n subscription,\n entitlements,\n onBuyMore,\n onManageSubscription,\n hasCustomSubscription,\n canUpgradeSubscription,\n}: ChargesProps) {\n const entitlementByFeature = keyBy(entitlements, 'feature.refId');\n\n const filteredSubscriptionPrices = subscription.prices.filter(\n ({ feature, price }) => !!feature && entitlementByFeature[feature.refId] && !!price,\n );\n\n if (!filteredSubscriptionPrices.length) {\n return null;\n }\n\n return (\n <div className=\"stigg-charge-list\" style={{ display: 'flex', flexDirection: 'column', gap: 16, marginTop: 32 }}>\n {filteredSubscriptionPrices.map(({ feature, price, blockSize, billingModel }) => {\n if (!feature || !price) {\n return null;\n }\n\n const entitlement = entitlementByFeature[feature.refId];\n\n if (!entitlement || !entitlement.feature) {\n return null;\n }\n\n return (\n <ChargeItem\n key={feature.refId}\n entitlement={entitlement}\n feature={entitlement.feature}\n amount={price.amount}\n blockSize={blockSize}\n currency={price.currency}\n hideChargePrice={billingModel === BillingModel.PerUnit}\n onBuyMore={onBuyMore}\n onManageSubscription={onManageSubscription}\n canUpgradeSubscription={canUpgradeSubscription}\n hasCustomSubscription={hasCustomSubscription}\n />\n );\n })}\n </div>\n );\n}\n","import React from 'react';\nimport { CustomerPortalSubscription, PricingType, SubscriptionStatus } from '@stigg/js-client-sdk';\nimport { SubscriptionsOverviewHeader } from './SubscriptionsOverviewHeader';\nimport { SubscriptionTabs } from './tabs/SubscriptionTabs';\nimport { useCustomerPortalContext } from '../CustomerPortalProvider';\nimport { SubscriptionOverviewLoader } from './SubscriptionOverviewLoader';\nimport { CustomerPortalSection } from '../CustomerPortal';\nimport { SubscriptionScheduledUpdatesAlert } from './subscriptionScheduledUpdates/SubscriptionScheduledUpdatesAlert';\nimport { SectionContainer } from '../common/SectionContainer';\nimport { UpcomingBilling } from './upcomingBilling/UpcomingBilling';\nimport { SubscriptionView } from './subscriptionView/SubscriptionView';\nimport { ChargeList } from './charges/ChargeList';\nimport { OnBuyMoreCallbackFn } from '../types';\nimport { OnManageClick } from '../CustomerPortalContainer';\n\nexport type SubscriptionsOverviewProps = {\n onManageSubscription: OnManageClick;\n onBuyMore?: OnBuyMoreCallbackFn;\n onCancelScheduledUpdates?: (subscription: CustomerPortalSubscription) => void;\n onContactSupport?: () => void;\n hiddenSections?: CustomerPortalSection[];\n cancelScheduledUpdatesButtonTitle: string;\n};\n\nexport function SubscriptionsOverview({\n onManageSubscription,\n onBuyMore,\n onCancelScheduledUpdates,\n onContactSupport,\n hiddenSections,\n cancelScheduledUpdatesButtonTitle,\n}: SubscriptionsOverviewProps) {\n const { customerPortal, isLoading, textOverrides, theme } = useCustomerPortalContext();\n const isLoadingData = isLoading || !customerPortal;\n const { subscriptions, entitlements, canUpgradeSubscription } = customerPortal || {};\n\n const activeSubscription = subscriptions?.find(({ status }) => status === SubscriptionStatus.Active);\n const trialSubscription = subscriptions?.find(({ status }) => status === SubscriptionStatus.InTrial);\n const hasCustomSubscription = activeSubscription?.pricingType === PricingType.Custom;\n const mainSubscription = activeSubscription || trialSubscription;\n\n return (\n <SectionContainer\n className=\"stigg-customer-portal-subscriptions-overview\"\n $backgroundColor={theme.backgroundColor}\n $borderColor={theme.borderColor}>\n {!isLoadingData && activeSubscription && activeSubscription.scheduledUpdates && (\n <SubscriptionScheduledUpdatesAlert\n theme={theme}\n subscription={activeSubscription}\n onCancelScheduledUpdates={onCancelScheduledUpdates}\n cancelScheduledUpdatesButtonTitle={cancelScheduledUpdatesButtonTitle}\n />\n )}\n\n {isLoadingData || !mainSubscription ? (\n <SubscriptionOverviewLoader />\n ) : (\n <div\n className=\"stigg-overview-layout\"\n style={{ display: 'flex', alignItems: 'flex-start', gap: 64, flexWrap: 'wrap' }}>\n <div style={{ display: 'flex', flexDirection: 'column', flex: 1 }}>\n <SubscriptionsOverviewHeader\n onManageSubscription={onManageSubscription}\n hideManageButton={hasCustomSubscription}\n textOverrides={textOverrides}\n />\n\n <SubscriptionView\n mainSubscription={mainSubscription}\n trialSubscription={trialSubscription}\n theme={theme}\n onManageSubscription={onManageSubscription}\n />\n\n {activeSubscription && entitlements && (\n <ChargeList\n subscription={activeSubscription}\n entitlements={entitlements}\n onBuyMore={onBuyMore}\n onManageSubscription={onManageSubscription}\n canUpgradeSubscription={!!canUpgradeSubscription}\n hasCustomSubscription={hasCustomSubscription}\n />\n )}\n\n <SubscriptionTabs\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n customerPortal={customerPortal!}\n hiddenSections={hiddenSections}\n textOverrides={textOverrides}\n theme={theme}\n />\n </div>\n\n <div style={{ display: 'flex', flexDirection: 'column', width: 319, gap: 24 }}>\n <UpcomingBilling\n subscription={mainSubscription}\n theme={theme}\n onContactSupport={onContactSupport}\n textOverrides={textOverrides}\n />\n </div>\n </div>\n )}\n </SectionContainer>\n );\n}\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { PoweredByStigg } from '../common/PoweredByStigg';\n\nconst CustomerPortalHeaderLayout = styled.div`\n display: flex;\n width: 100%;\n align-items: flex-end;\n justify-content: flex-end;\n margin-bottom: 24px;\n`;\n\nexport function CustomerPortalHeader({ showWatermark }: { showWatermark?: boolean }) {\n return (\n <CustomerPortalHeaderLayout className=\"stigg-customer-portal-header-layout\">\n <PoweredByStigg source=\"customer_portal\" showWatermark={showWatermark} />\n </CustomerPortalHeaderLayout>\n );\n}\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { ExternalLink as ExternalLinkIcon } from 'react-feather';\nimport { Typography } from '../../common/Typography';\nimport { StyledButton } from './StyledButton';\n\nconst ExternalLinkText = styled(Typography)`\n text-transform: none;\n`;\n\nconst LinkIcon = styled(ExternalLinkIcon)`\n color: ${({ theme }) => theme.stigg.palette.primary};\n`;\n\nexport type ExternalLinkButtonProps = {\n text: string;\n url: string;\n className: string;\n};\n\nexport function ExternalLinkButton({ text, url, className }: ExternalLinkButtonProps) {\n const onClick = () => {\n window.open(url, '_blank');\n };\n\n return (\n <StyledButton\n className={className}\n variant=\"outlined\"\n startIcon={<LinkIcon size={20} strokeWidth={2.5} />}\n onClick={onClick}>\n <ExternalLinkText color=\"primary.main\">{text}</ExternalLinkText>\n </StyledButton>\n );\n}\n","import styled from '@emotion/styled/macro';\nimport React from 'react';\nimport { FontWeight } from 'styled-typography';\nimport { Typography, TypographyProps } from '../../common/Typography';\n\nexport const InformationGridContainer = styled.div`\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n gap: 16px;\n flex: 1 0 0;\n`;\n\nconst InformationGridRow = styled.div`\n display: flex;\n align-items: flex-start;\n gap: 16px;\n align-self: stretch;\n flex-wrap: wrap;\n`;\n\nexport type InformationGridProps = {\n title: string;\n rows: Array<{\n classNamePrefix: string;\n label: string;\n value: string;\n labelTypographyProps?: Partial<TypographyProps>;\n valueTypographyProps?: Partial<TypographyProps>;\n }>;\n};\n\nexport function InformationGrid({ title, rows }: InformationGridProps) {\n return (\n <InformationGridContainer>\n <Typography variant=\"h6\" color=\"secondary\" fontWeight={FontWeight.Medium}>\n {title}\n </Typography>\n {rows.map(({ classNamePrefix, label, value, labelTypographyProps, valueTypographyProps }) => (\n <InformationGridRow key={label}>\n <Typography\n className={`${classNamePrefix}-label`}\n variant=\"body1\"\n color=\"secondary\"\n style={{ width: 80 }}\n {...labelTypographyProps}>\n {label}\n </Typography>\n <Typography className={`${classNamePrefix}-text`} variant=\"body1\" color=\"secondary\" {...valueTypographyProps}>\n {value}\n </Typography>\n </InformationGridRow>\n ))}\n </InformationGridContainer>\n );\n}\n","import Skeleton from 'react-loading-skeleton';\nimport React from 'react';\n\nexport function SkeletonButton() {\n return <Skeleton width={220} height={42} />;\n}\n","import React, { ReactElement } from 'react';\nimport Divider from '@mui/material/Divider';\nimport { padStart } from 'lodash';\nimport Skeleton from 'react-loading-skeleton';\nimport { useCustomerPortalContext } from '../CustomerPortalProvider';\nimport { SectionTitle } from '../common/SectionTitle';\nimport { SectionContainer } from '../common/SectionContainer';\nimport { ExternalLinkButton } from '../common/ExternalLinkButton';\nimport { InformationGrid, InformationGridContainer } from './InformationGrid';\nimport { SectionHeader } from '../common/SectionHeader';\nimport { SkeletonButton } from '../common/SkeletonButton';\nimport { useIsScreenWiderThan } from '../../hooks/useIsScreenWiderThan';\n\nexport const EMPTY_CHAR = '-';\n\nexport function PaymentDetailsSection() {\n const { customerPortal, isLoading, textOverrides, theme } = useCustomerPortalContext();\n const isScreenWiderThanMd = useIsScreenWiderThan('md');\n const { billingInformation } = customerPortal || {};\n const isLoadingData = !billingInformation || isLoading;\n\n const items: ReactElement[] = [];\n\n if (isLoadingData) {\n items.push(\n ...[\n <InformationGridContainer key=\"information-loading-data-top\">\n <Skeleton width={220} height={12} />\n <Skeleton width={220} height={12} />\n <Skeleton width={220} height={12} />\n </InformationGridContainer>,\n <Divider\n key=\"information-loading-data-divider\"\n orientation=\"vertical\"\n style={{ minHeight: 93, display: isScreenWiderThanMd ? 'block' : 'none' }}\n />,\n <InformationGridContainer key=\"information-loading-data-bottom\">\n <Skeleton width={220} height={12} />\n <Skeleton width={220} height={12} />\n <Skeleton width={220} height={12} />\n </InformationGridContainer>,\n ],\n );\n } else {\n items.push(\n <InformationGrid\n key=\"information-billing-data-billed-to\"\n title=\"Billed to\"\n rows={[\n {\n classNamePrefix: 'stigg-customer-name',\n label: 'Name',\n value: billingInformation?.name || EMPTY_CHAR,\n valueTypographyProps: billingInformation?.name ? {} : { color: 'disabled' },\n },\n {\n classNamePrefix: 'stigg-customer-email',\n label: 'Email',\n value: billingInformation?.email || EMPTY_CHAR,\n valueTypographyProps: billingInformation?.email ? {} : { color: 'disabled' },\n },\n ]}\n />,\n );\n\n if (\n billingInformation?.defaultPaymentMethodId &&\n billingInformation.defaultPaymentMethodLast4Digits &&\n billingInformation.defaultPaymentExpirationMonth &&\n billingInformation.defaultPaymentExpirationYear\n ) {\n items.unshift(\n <Divider\n key=\"information-billing-data-divider\"\n orientation=\"vertical\"\n style={{ minHeight: 93, display: isScreenWiderThanMd ? 'block' : 'none' }}\n />,\n );\n items.unshift(\n <InformationGrid\n key=\"information-billing-data-payment-method\"\n title=\"Payment method\"\n rows={[\n {\n classNamePrefix: 'stigg-credit-card',\n label: 'Card',\n value: `Ending in ${billingInformation.defaultPaymentMethodLast4Digits}`,\n },\n {\n classNamePrefix: 'stigg-credit-card-expiration',\n label: 'Expires',\n value: `${padStart(billingInformation.defaultPaymentExpirationMonth.toString(), 2, '0')}/${\n billingInformation.defaultPaymentExpirationYear\n }`,\n },\n ]}\n />,\n );\n }\n }\n\n if (\n !isLoadingData &&\n !billingInformation?.name &&\n !billingInformation?.email &&\n !billingInformation?.defaultPaymentMethodId\n ) {\n return null;\n }\n\n const editButton = isLoadingData ? (\n <SkeletonButton />\n ) : customerPortal?.billingPortalUrl ? (\n <ExternalLinkButton\n url={customerPortal.billingPortalUrl}\n text={textOverrides.editPaymentDetails}\n className=\"stigg-edit-payment-details-button\"\n />\n ) : null;\n\n return (\n <SectionContainer\n className=\"stigg-payment-details-section-layout\"\n $backgroundColor={theme.backgroundColor}\n $borderColor={theme.borderColor}>\n <SectionHeader className=\"stigg-payment-details-section-header\">\n <SectionTitle\n isLoading={isLoadingData}\n className=\"stigg-payment-details-section-title\"\n title=\"Payment details\"\n />\n {editButton}\n </SectionHeader>\n\n <div style={{ display: 'flex', alignItems: 'stretch', gap: isScreenWiderThanMd ? 64 : 32, flexWrap: 'wrap' }}>\n {items}\n </div>\n </SectionContainer>\n );\n}\n","import styled from '@emotion/styled/macro';\nimport { STIGG_WATERMARK_CLASSNAME } from '../../common/PoweredByStigg';\nimport { SectionContainer } from '../common/SectionContainer';\n\nexport const CustomerPortalPaywallLayout = styled(SectionContainer)<{\n $backgroundColor: string;\n $borderColor: string;\n}>`\n position: relative;\n\n .stigg-paywall-layout {\n width: 100%;\n }\n\n .stigg-paywall-plans-layout {\n flex-wrap: nowrap;\n width: 100%;\n overflow-x: auto;\n justify-content: unset;\n padding: 10px 0px 0px 0px;\n }\n\n .stigg-paywall-plans-layout .stigg-plan-offering-container:first-of-type {\n margin-left: auto;\n }\n .stigg-paywall-plans-layout .stigg-plan-offering-container:last-child {\n margin-right: auto;\n }\n\n .${STIGG_WATERMARK_CLASSNAME} {\n display: none;\n }\n`;\n","import React from 'react';\nimport { CustomerPortalTheme } from '../customerPortalTheme';\nimport { CustomerPortalPaywallLayout } from './CustomerPortalPaywall.style';\nimport { SectionTitle } from '../common/SectionTitle';\nimport { SectionHeader } from '../common/SectionHeader';\n\ntype CustomerPortalPaywallProps = {\n paywallComponent?: React.ReactNode;\n theme: CustomerPortalTheme;\n title: string;\n isLoading: boolean;\n};\n\nexport const CustomerPortalPaywall = React.forwardRef<HTMLDivElement, CustomerPortalPaywallProps>(\n ({ paywallComponent, theme, title, isLoading }, ref) => {\n if (!paywallComponent) {\n return null;\n }\n\n return (\n <CustomerPortalPaywallLayout\n className=\"stigg-customer-portal-paywall-section\"\n ref={ref}\n $backgroundColor={theme.backgroundColor}\n $borderColor={theme.borderColor}>\n <SectionHeader className=\"stigg-customer-portal-paywall-header\">\n <SectionTitle isLoading={isLoading} className=\"stigg-customer-portal-paywall-section-title\" title={title} />\n </SectionHeader>\n\n {paywallComponent}\n </CustomerPortalPaywallLayout>\n );\n },\n);\n","import styled from '@emotion/styled/macro';\n\nexport const CustomerPortalLayout = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n\n & * {\n box-sizing: border-box;\n }\n`;\n\nexport const CustomerPortalSections = styled.div`\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n row-gap: 24px;\n`;\n","import { FeatureFragment } from '@stigg/api-client-js/src/generated/sdk';\nimport lowercase from 'lodash/lowerCase';\n\nexport function getFeatureDisplayNameText(\n featureDisplayName: string,\n featureUnits: string | undefined | null,\n featureUnitsPlural: string | undefined | null,\n) {\n if (!featureUnits && !featureUnitsPlural) {\n return featureDisplayName;\n }\n\n const displayNameLowerCase = lowercase(featureDisplayName);\n if (\n displayNameLowerCase === lowercase(featureUnits || '') ||\n displayNameLowerCase === lowercase(featureUnitsPlural || '')\n ) {\n return featureDisplayName;\n }\n\n return `${featureDisplayName} (${featureUnitsPlural})`;\n}\n\nexport function getFeatureDisplayName(feature: FeatureFragment) {\n return getFeatureDisplayNameText(feature.displayName, feature.featureUnits, feature.featureUnitsPlural);\n}\n","import styled from '@emotion/styled/macro';\n\nexport const FeatureUsageContainer = styled.div<{ $highlight: boolean; $borderColor: string }>`\n display: flex;\n flex-direction: column;\n padding: 24px;\n border: ${({ $borderColor }) => `1px solid ${$borderColor}`};\n border-radius: 10px;\n row-gap: 16px;\n height: 100%;\n\n ${({ theme, $highlight }) => $highlight && `background-color: ${theme.stigg.palette.backgroundSection}`};\n`;\n","import isUndefined from 'lodash/isUndefined';\nimport React from 'react';\nimport { BillingModel, CustomerPortalEntitlement } from '@stigg/js-client-sdk';\nimport { CustomerPortalSubscriptionPriceFragment } from '@stigg/api-client-js/src/generated/sdk';\nimport { Typography } from '../../../common/Typography';\nimport { useCustomerPortalContext } from '../../CustomerPortalProvider';\nimport { getResetUsageText, getUsagePercentage } from './FeatureUsage.helper';\nimport { getFeatureDisplayName } from '../../../utils/getFeatureName';\nimport { FeatureUsageContainer } from './FeatureUsage.style';\nimport { FeatureUsageProgressBar } from './FeatureUsageProgressBar';\nimport { Icon } from '../../../common/Icon';\nimport { InformationTooltip } from '../../../common/InformationTooltip';\nimport { LongText } from '../../../common/LongText';\nimport { EntitlementCtaButton } from './EntitlementCTAButton';\nimport { OnBuyMoreCallbackFn } from '../../types';\nimport { OnManageClick } from '../../CustomerPortalContainer';\n\nexport type UsageBoxProps = {\n entitlement: CustomerPortalEntitlement;\n subscriptionPrice: CustomerPortalSubscriptionPriceFragment | undefined;\n onManageSubscription: OnManageClick | undefined;\n onBuyMore?: OnBuyMoreCallbackFn;\n hasCustomSubscription: boolean;\n canUpgradeSubscription: boolean;\n};\n\nexport function FeatureUsage({\n entitlement,\n subscriptionPrice,\n onManageSubscription,\n onBuyMore,\n hasCustomSubscription,\n canUpgradeSubscription,\n}: UsageBoxProps) {\n const { theme } = useCustomerPortalContext();\n\n const hasOverageUsage = !entitlement.hasUnlimitedUsage && entitlement.currentUsage! > entitlement.usageLimit!;\n\n if (!entitlement.feature) {\n return null;\n }\n\n return (\n <FeatureUsageContainer $highlight={!!subscriptionPrice} $borderColor={theme.borderColor}>\n <div style={{ display: 'flex', alignItems: 'center', justifyContent: 'space-between', gap: 16 }}>\n <LongText variant=\"body1\">{entitlement.feature && getFeatureDisplayName(entitlement.feature)}</LongText>\n {subscriptionPrice && (\n <InformationTooltip\n title={\n <Typography variant=\"body1\">\n {subscriptionPrice.billingModel === BillingModel.PerUnit\n ? 'Billed for committed usage'\n : 'Billed for actual usage'}\n </Typography>\n }>\n <Icon icon=\"DollarCoin\" svgStrokeColor={theme.iconsColor} />\n </InformationTooltip>\n )}\n </div>\n\n <div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', gap: 8 }}>\n <LongText\n variant=\"body1\"\n color={hasOverageUsage ? 'error' : 'primary'}\n data-testid={`usage-data-${entitlement.feature?.refId}`}>\n {entitlement.currentUsage?.toLocaleString()}\n {!entitlement.hasUnlimitedUsage &&\n ` / ${entitlement.usageLimit?.toLocaleString()} (${getUsagePercentage(\n entitlement.currentUsage || 0,\n entitlement.usageLimit!,\n )}%)`}\n </LongText>\n\n <EntitlementCtaButton\n entitlement={entitlement}\n feature={entitlement.feature}\n onBuyMore={onBuyMore}\n canBuyMore={!!subscriptionPrice}\n onManageSubscription={onManageSubscription}\n canUpgradeSubscription={canUpgradeSubscription}\n hasCustomSubscription={hasCustomSubscription}\n />\n </div>\n\n <FeatureUsageProgressBar entitlement={entitlement} />\n\n {!entitlement.hasUnlimitedUsage &&\n !isUndefined(entitlement.usageLimit) &&\n !isUndefined(entitlement.currentUsage) &&\n entitlement.resetPeriod &&\n entitlement.usagePeriodEnd ? (\n <Typography color=\"secondary\">{getResetUsageText(entitlement)}</Typography>\n ) : null}\n {entitlement.hasUnlimitedUsage && <Typography color=\"secondary\">In current billing period</Typography>}\n </FeatureUsageContainer>\n );\n}\n","import styled from '@emotion/styled/macro';\nimport Grid from '@mui/material/Grid';\nimport { range } from 'lodash';\nimport Skeleton from 'react-loading-skeleton';\nimport React from 'react';\nimport { useIsScreenWiderThan } from '../../hooks/useIsScreenWiderThan';\n\nexport const Footer = styled.div`\n margin-top: 32px;\n`;\n\nexport function CustomerUsageLoader() {\n const isMdScreen = useIsScreenWiderThan('md');\n return (\n <Grid container spacing={4} className=\"stigg-subscription-usage-skeleton-layout\" sx={{ flexWrap: 'wrap' }}>\n {range(6).map((item) => (\n <Grid key={item} item xs={isMdScreen ? 4 : 12}>\n <Skeleton width={280} height={120} />\n </Grid>\n ))}\n </Grid>\n );\n}\n","import { MeterType, PricingType, SubscriptionStatus } from '@stigg/js-client-sdk';\nimport React, { useState } from 'react';\nimport { compact, keyBy } from 'lodash';\nimport { Minus, Plus } from 'react-feather';\nimport Grid from '@mui/material/Grid';\nimport { useCustomerPortalContext } from '../CustomerPortalProvider';\nimport { FeatureUsage } from './featureUsage/FeatureUsage';\nimport { Footer, CustomerUsageLoader } from './CustomerUsageData.style';\nimport { SectionContainer } from '../common/SectionContainer';\nimport { SectionHeader } from '../common/SectionHeader';\nimport { SectionTitle } from '../common/SectionTitle';\nimport { StyledButton } from '../common/StyledButton';\nimport { FilterEntitlementsFn, OnBuyMoreCallbackFn } from '../types';\nimport { OnManageClick } from '../CustomerPortalContainer';\nimport { useIsScreenWiderThan } from '../../hooks/useIsScreenWiderThan';\n\nconst MAX_BOXES = 6;\n\nexport type CustomerUsageDataProps = {\n onManageSubscription?: OnManageClick;\n onBuyMore?: OnBuyMoreCallbackFn;\n filterEntitlements?: FilterEntitlementsFn;\n};\n\nexport function CustomerUsageData({ onManageSubscription, onBuyMore, filterEntitlements }: CustomerUsageDataProps) {\n const [showAll, setShowAll] = useState(false);\n const isMdScreen = useIsScreenWiderThan('md');\n\n const { customerPortal, isLoading, textOverrides, theme } = useCustomerPortalContext();\n const isLoadingData = isLoading || !customerPortal;\n const { entitlements, subscriptions } = customerPortal || {};\n const meteredEntitlements = entitlements?.filter(\n (entitlement) =>\n entitlement.feature?.meterType === MeterType.Fluctuating ||\n entitlement.feature?.meterType === MeterType.Incremental,\n );\n const activeSubscription = subscriptions?.find(({ status }) => status === SubscriptionStatus.Active);\n const hasCustomSubscription = activeSubscription?.pricingType === PricingType.Custom;\n const canUpgradeSubscription = !!customerPortal?.canUpgradeSubscription;\n\n const subscriptionPriceByFeature = keyBy(activeSubscription?.prices, 'feature.refId');\n const entitlementByFeature = keyBy(meteredEntitlements, 'feature.refId');\n\n // sort features by prices first, then other entitlements\n const priceEntitlements = compact(\n activeSubscription?.prices.map(\n (subscriptionPrice) => subscriptionPrice.feature && entitlementByFeature[subscriptionPrice.feature.refId],\n ),\n );\n const otherEntitlements = compact(\n meteredEntitlements?.filter((entitlement) => !subscriptionPriceByFeature[entitlement.feature!.refId]),\n );\n const sortedEntitlements = [...priceEntitlements, ...otherEntitlements];\n\n const filteredEntitlements = filterEntitlements ? filterEntitlements(sortedEntitlements) : sortedEntitlements;\n\n // 4 -> 3 per row, 6 -> 2 per row\n const xs = isMdScreen ? (filteredEntitlements.length > 2 ? 4 : 6) : 12;\n\n const entitlementsToShow = showAll ? filteredEntitlements : filteredEntitlements.slice(0, MAX_BOXES);\n\n const toggleShowAll = () => setShowAll((prevState) => !prevState);\n\n if (!isLoadingData && !meteredEntitlements?.length) {\n return null;\n }\n\n return (\n <SectionContainer\n className=\"stigg-subscription-usage-layout\"\n $backgroundColor={theme.backgroundColor}\n $borderColor={theme.borderColor}>\n <SectionHeader>\n <SectionTitle\n title={textOverrides.usageTabTitle}\n className=\"stigg-customer-portal-usage-section-title\"\n isLoading={isLoadingData}\n />\n </SectionHeader>\n\n {isLoadingData ? (\n <CustomerUsageLoader />\n ) : (\n <>\n <Grid container spacing={4}>\n {entitlementsToShow.map((entitlement) => (\n <Grid\n className={`stigg-entitlement-usage-${entitlement.feature!.refId}`}\n key={entitlement.feature!.refId}\n item\n xs={xs}>\n <FeatureUsage\n key={entitlement.feature!.refId}\n subscriptionPrice={subscriptionPriceByFeature[entitlement.feature!.refId]}\n entitlement={entitlement}\n onManageSubscription={onManageSubscription}\n onBuyMore={onBuyMore}\n hasCustomSubscription={hasCustomSubscription}\n canUpgradeSubscription={canUpgradeSubscription}\n />\n </Grid>\n ))}\n </Grid>\n\n {filteredEntitlements.length > MAX_BOXES && (\n <Footer>\n <StyledButton\n className=\"stigg-usage-toggle-many-button\"\n variant=\"text\"\n startIcon={showAll ? <Minus /> : <Plus />}\n onClick={toggleShowAll}>\n {showAll ? 'Show less' : 'Show more'}\n </StyledButton>\n </Footer>\n )}\n </>\n )}\n </SectionContainer>\n );\n}\n","import React, { useRef } from 'react';\nimport { SubscriptionsOverview } from './subscriptionOverview/SubscriptionsOverview';\nimport { CustomerPortalHeader } from './CustomerPortalHeader';\nimport { PaymentDetailsSection } from './billing/PaymentDetailsSection';\nimport { CustomerPortalPaywall } from './paywall/CustomerPortalPaywall';\nimport { useCustomerPortalContext } from './CustomerPortalProvider';\nimport { CustomerPortalLayout, CustomerPortalSections } from './CustomerPortal.style';\nimport { CustomerPortalProps } from './CustomerPortal';\nimport { InvoicesSection, useStiggContext } from '../..';\nimport { CustomerUsageData } from './usage/CustomerUsageData';\nimport { CustomerPortalIntentionType } from './types';\n\nexport type OnManageClick = ({ intentionType }: { intentionType: CustomerPortalIntentionType }) => void;\n\nexport function CustomerPortalContainer({\n onManageSubscription,\n onBuyMore,\n onCancelScheduledUpdates,\n onContactSupport,\n paywallComponent,\n hiddenSections,\n filterEntitlements,\n}: CustomerPortalProps) {\n const { stigg } = useStiggContext();\n const { customerPortal, textOverrides, theme, isLoading } = useCustomerPortalContext();\n const customerPortalSectionRef = useRef<HTMLDivElement>(null);\n\n const onManageClick: OnManageClick = ({ intentionType }: { intentionType: CustomerPortalIntentionType }) => {\n if (onManageSubscription) {\n void onManageSubscription({\n intentionType,\n customerSubscriptions: customerPortal?.subscriptions ?? [],\n });\n } else {\n customerPortalSectionRef?.current?.scrollIntoView({ behavior: 'smooth' });\n }\n };\n\n const shouldShowUsage = !hiddenSections?.some((section) => section === 'usage');\n const shouldShowPaymentDetails = !hiddenSections?.some(\n (section) => section === 'paymentDetails' || section === 'billingInformation',\n );\n const shouldShowInvoices = !hiddenSections?.some(\n (section) => section === 'invoices' || section === 'billingInformation',\n );\n\n return (\n <CustomerPortalLayout className=\"stigg-customer-portal-layout\">\n <CustomerPortalHeader showWatermark={stigg.isWidgetWatermarkEnabled && !!customerPortal} />\n <CustomerPortalSections className=\"stigg-customer-portal-sections\">\n <SubscriptionsOverview\n onCancelScheduledUpdates={onCancelScheduledUpdates}\n onBuyMore={onBuyMore}\n onManageSubscription={onManageClick}\n onContactSupport={onContactSupport}\n hiddenSections={hiddenSections}\n cancelScheduledUpdatesButtonTitle={textOverrides.cancelScheduledUpdatesButtonTitle}\n />\n {shouldShowUsage && (\n <CustomerUsageData\n onManageSubscription={onManageClick}\n onBuyMore={onBuyMore}\n filterEntitlements={filterEntitlements}\n />\n )}\n <CustomerPortalPaywall\n ref={customerPortalSectionRef}\n paywallComponent={paywallComponent}\n theme={theme}\n title={textOverrides.paywallSectionTitle}\n isLoading={!customerPortal || isLoading}\n />\n {shouldShowPaymentDetails && <PaymentDetailsSection />}\n {shouldShowInvoices && <InvoicesSection />}\n </CustomerPortalSections>\n </CustomerPortalLayout>\n );\n}\n","import React from 'react';\nimport { CustomerPortalSubscription } from '@stigg/js-client-sdk';\nimport { CustomerPortalProvider } from './CustomerPortalProvider';\nimport { CustomerPortalContainer } from './CustomerPortalContainer';\nimport { DeepPartial } from '../../types';\nimport { CustomerPortalLocalization } from './customerPortalTextOverrides';\nimport { CustomerPortalTheme } from './customerPortalTheme';\nimport { FilterEntitlementsFn, OnBuyMoreCallbackFn, OnManageSubscriptionFn } from './types';\n\nexport type CustomerPortalSection =\n | 'usage'\n | 'addons'\n | 'promotionalEntitlements'\n | 'billingInformation'\n | 'paymentDetails'\n | 'invoices';\n\nexport type CustomerPortalProps = {\n onManageSubscription?: OnManageSubscriptionFn;\n onBuyMore?: OnBuyMoreCallbackFn;\n onCancelScheduledUpdates?: (subscription: CustomerPortalSubscription) => Promise<void> | void;\n onContactSupport?: () => Promise<void> | void;\n paywallComponent?: React.ReactNode;\n hiddenSections?: CustomerPortalSection[];\n textOverrides?: DeepPartial<CustomerPortalLocalization>;\n theme?: DeepPartial<CustomerPortalTheme>;\n filterEntitlements?: FilterEntitlementsFn;\n resourceId?: string;\n productId?: string;\n};\n\nexport function CustomerPortal({ textOverrides, theme, resourceId, productId, ...restProps }: CustomerPortalProps) {\n return (\n <CustomerPortalProvider textOverrides={textOverrides} theme={theme} resourceId={resourceId} productId={productId}>\n <CustomerPortalContainer {...restProps} />\n </CustomerPortalProvider>\n );\n}\n","import React from 'react';\nimport { useCustomerPortalContext } from '../CustomerPortalProvider';\nimport { SectionTitle } from '../common/SectionTitle';\nimport { ExternalLinkButton } from '../common/ExternalLinkButton';\nimport { SectionContainer } from '../common/SectionContainer';\nimport { SectionHeader } from '../common/SectionHeader';\nimport { SkeletonButton } from '../common/SkeletonButton';\n\nexport function InvoicesSection() {\n const { customerPortal, isLoading, textOverrides, theme } = useCustomerPortalContext();\n const isLoadingData = !customerPortal || isLoading;\n\n const viewInvoiceHistoryButton = isLoadingData ? (\n <SkeletonButton />\n ) : customerPortal?.billingPortalUrl ? (\n <ExternalLinkButton\n url={customerPortal.billingPortalUrl}\n text={textOverrides.viewInvoiceHistory}\n className=\"stigg-view-invoice-history-button\"\n />\n ) : null;\n\n if (!isLoadingData && !customerPortal?.billingPortalUrl) {\n return null;\n }\n\n return (\n <SectionContainer\n className=\"stigg-invoices-section-layout\"\n $backgroundColor={theme.backgroundColor}\n $borderColor={theme.borderColor}>\n <SectionHeader className=\"stigg-invoices-section-header\">\n <SectionTitle\n isLoading={isLoadingData}\n className=\"stigg-invoices-section-title\"\n title={textOverrides.invoicesTitle}\n />\n {viewInvoiceHistoryButton}\n </SectionHeader>\n </SectionContainer>\n );\n}\n","import sortBy from 'lodash/sortBy';\nimport { Addon, BillingPeriod, Currency, SubscriptionAddon } from '@stigg/js-client-sdk';\n\ntype FilterAddonsBaseProps = {\n billingPeriod: BillingPeriod;\n currency: Currency;\n billingCountryCode?: string;\n};\n\nexport const sortAddons = (addons: Addon[]) => {\n return sortBy(addons, 'displayName');\n};\n\nexport const sortSubscriptionAddons = (addons: SubscriptionAddon[]) => {\n return sortBy(addons, 'addon.displayName');\n};\n\nfunction filterAddonPricePointsByBillingPeriod(addon: Addon, billingPeriod: BillingPeriod) {\n return addon.pricePoints.some((pricePoint) => pricePoint.billingPeriod === billingPeriod);\n}\n\nfunction mapAddonPricePointsByBillingCountryCode({\n addon,\n currency,\n billingCountryCode,\n}: {\n addon: Addon;\n currency: Currency;\n billingCountryCode?: string;\n}) {\n return {\n ...addon,\n pricePoints: addon.pricePoints.filter(\n (pricePoint) =>\n pricePoint.currency === currency &&\n (billingCountryCode ? pricePoint.billingCountryCode === billingCountryCode : true),\n ),\n };\n}\n\nexport function filterAddons({\n addons,\n billingPeriod,\n billingCountryCode,\n currency,\n}: { addons?: Addon[] } & FilterAddonsBaseProps): Addon[] {\n return (\n addons\n ?.filter((addon) => filterAddonPricePointsByBillingPeriod(addon, billingPeriod))\n ?.map((addon) => mapAddonPricePointsByBillingCountryCode({ addon, currency, billingCountryCode })) || []\n );\n}\n\nexport function filterSubscriptionAddons({\n addons,\n billingPeriod,\n billingCountryCode,\n currency,\n}: { addons?: SubscriptionAddon[] } & FilterAddonsBaseProps): SubscriptionAddon[] {\n return (\n addons\n ?.filter((addon) => filterAddonPricePointsByBillingPeriod(addon.addon, billingPeriod))\n ?.map((addon) => ({\n ...addon,\n addon: mapAddonPricePointsByBillingCountryCode({ addon: addon.addon, currency, billingCountryCode }),\n })) || []\n );\n}\n","import cloneDeep from 'lodash/cloneDeep';\nimport remove from 'lodash/remove';\nimport { Addon, BillingPeriod, Currency, Plan, Subscription, SubscriptionAddon } from '@stigg/js-client-sdk';\nimport { useCheckoutContext } from '../CheckoutProvider';\nimport {\n filterAddons,\n filterSubscriptionAddons,\n sortAddons,\n sortSubscriptionAddons,\n} from '../steps/addons/addon.utils';\n\nexport type AddonsStepState = {\n addons: SubscriptionAddon[];\n initialAddons?: SubscriptionAddon[];\n availableAddons?: Addon[];\n};\n\ntype GetAddonsStepInitialStateProps = {\n plan?: Plan;\n billingPeriod: BillingPeriod;\n activeSubscription?: Subscription | null;\n billingCountryCode?: string;\n};\n\nexport function getAddonsStepInitialState({\n activeSubscription,\n plan,\n billingPeriod,\n billingCountryCode,\n}: GetAddonsStepInitialStateProps): AddonsStepState {\n let addons: SubscriptionAddon[] = [];\n const currency = plan?.pricePoints?.[0]?.currency || Currency.Usd;\n const availableAddons = sortAddons(\n filterAddons({\n addons: plan?.compatibleAddons,\n billingPeriod,\n billingCountryCode,\n currency,\n }),\n );\n\n const activeSubscriptionAddons = filterSubscriptionAddons({\n addons: activeSubscription?.addons,\n billingPeriod,\n billingCountryCode,\n currency,\n });\n\n if (activeSubscriptionAddons?.length && availableAddons?.length) {\n addons = sortSubscriptionAddons(\n activeSubscriptionAddons.filter((addon) => availableAddons.some((planAddon) => planAddon.id === addon.addon.id)),\n );\n }\n\n return { addons, initialAddons: cloneDeep(addons), availableAddons };\n}\n\nfunction useSetAddon() {\n const [, setState] = useCheckoutContext();\n\n return (addon: Addon, quantity: number) =>\n setState((draft) => {\n const addonToUpdate = draft.addonsStep.addons.find((currentAddon) => currentAddon.addon.id === addon.id);\n\n if (addonToUpdate) {\n addonToUpdate.quantity = quantity;\n } else {\n draft.addonsStep.addons.push({ addon, quantity });\n draft.addonsStep.addons = sortSubscriptionAddons(draft.addonsStep.addons);\n }\n });\n}\n\nfunction useRemoveAddon() {\n const [, setState] = useCheckoutContext();\n\n return (addonId: string) =>\n setState((draft) => {\n remove(draft.addonsStep.addons, (addon) => addon.addon.id === addonId);\n });\n}\n\nfunction useAddonsState() {\n const [{ addonsStep }] = useCheckoutContext();\n return addonsStep;\n}\n\nexport function useAddonsStepModel() {\n const state = useAddonsState();\n\n return {\n ...state,\n setAddon: useSetAddon(),\n removeAddon: useRemoveAddon(),\n };\n}\n","import { useCheckoutContext } from '../CheckoutProvider';\n\nexport type WidgetState = {\n readOnly?: boolean;\n isLoadingCheckoutData?: boolean;\n isValid?: boolean;\n};\n\nfunction useCheckoutState() {\n const [{ checkout, widgetState, checkoutLocalization }] = useCheckoutContext();\n return { checkoutState: checkout, widgetState, checkoutLocalization };\n}\n\nfunction useSetWidgetReadonly() {\n const [, setState] = useCheckoutContext();\n\n return (readOnly: boolean) =>\n setState((draft) => {\n draft.widgetState.readOnly = readOnly;\n });\n}\n\nfunction useSetIsValid() {\n const [, setState] = useCheckoutContext();\n\n return (isValid: boolean) =>\n setState((draft) => {\n draft.widgetState.isValid = isValid;\n });\n}\n\nexport function useCheckoutModel() {\n const { checkoutState, widgetState, checkoutLocalization } = useCheckoutState();\n\n return {\n checkoutState,\n widgetState,\n checkoutLocalization,\n setWidgetReadOnly: useSetWidgetReadonly(),\n setIsValid: useSetIsValid(),\n };\n}\n","import { GetCheckoutStateResults } from '@stigg/js-client-sdk';\nimport { useEffect, useState } from 'react';\nimport logger from '../../../services/logger';\nimport { MockCheckoutStateCallback } from '../types';\nimport { useStiggContext } from '../../../hooks/useStiggContext';\n\ntype UseLoadCheckoutProps = {\n planId: string;\n resourceId?: string;\n billingCountryCode?: string;\n onMockCheckoutState?: MockCheckoutStateCallback;\n};\n\nexport function useLoadCheckout({ planId, resourceId, billingCountryCode, onMockCheckoutState }: UseLoadCheckoutProps) {\n const { stigg } = useStiggContext();\n const [isLoading, setIsLoading] = useState(true);\n const [checkout, setCheckout] = useState<GetCheckoutStateResults | null>();\n\n useEffect(() => {\n const loadCheckout = async () => {\n try {\n const checkout = await stigg.getCheckoutState({ planId, resourceId, billingCountryCode });\n setCheckout(checkout);\n } catch (err) {\n logger.error(`Failed to load checkout ${(err as any)?.message}`, err as any);\n } finally {\n setIsLoading(false);\n }\n };\n\n if (onMockCheckoutState) {\n setIsLoading(false);\n setCheckout(onMockCheckoutState({ planId, resourceId, billingCountryCode }));\n return;\n }\n\n if (stigg.isCustomerLoaded) {\n setIsLoading(true);\n void loadCheckout();\n }\n }, [stigg, stigg.isCustomerLoaded, resourceId, planId, billingCountryCode, onMockCheckoutState]);\n\n return {\n checkout,\n isLoading,\n isWidgetWatermarkEnabled: stigg.isWidgetWatermarkEnabled,\n };\n}\n","import { Price } from '@stigg/js-client-sdk';\n\nexport const getValidPriceQuantity = (price: Price, quantity: number) => {\n if (price.minUnitQuantity && quantity < price.minUnitQuantity) {\n return price.minUnitQuantity;\n }\n if (price.maxUnitQuantity && quantity > price.maxUnitQuantity) {\n return price.maxUnitQuantity;\n }\n return quantity;\n};\n","import { Plan } from '@stigg/js-client-sdk';\nimport { BillingPeriod } from '@stigg/api-client-js/src/generated/sdk';\n\nexport const hasMonthlyPrices = (plan?: Plan) =>\n !!plan?.pricePoints.some((pricePoint) => pricePoint.billingPeriod === BillingPeriod.Monthly);\n\nexport const hasAnnualPrices = (plan?: Plan) =>\n !!plan?.pricePoints.some((pricePoint) => pricePoint.billingPeriod === BillingPeriod.Annually);\n\nexport const hasMultipleBillingPeriods = (plan?: Plan) => hasMonthlyPrices(plan) && hasAnnualPrices(plan);\n","import keyBy from 'lodash/keyBy';\nimport compact from 'lodash/compact';\nimport { BillableFeatureInput, BillingPeriod } from '@stigg/api-client-js/src/generated/sdk';\nimport { BillableFeature, BillingModel, Plan, Price, Subscription } from '@stigg/js-client-sdk';\nimport { useCheckoutContext } from '../CheckoutProvider';\nimport { getTierByQuantity, hasTierWithUnitPrice } from '../../utils/priceTierUtils';\nimport { getValidPriceQuantity } from '../../utils/priceUtils';\nimport { hasAnnualPrices, hasMonthlyPrices } from '../../utils/planPrices';\n\nexport type PlanStepState = {\n billingPeriod: BillingPeriod;\n billableFeatures: BillableFeatureInput[];\n billingCountryCode?: string;\n};\n\ntype GetPlanStepInitialStateProps = {\n preferredBillingPeriod?: BillingPeriod;\n plan?: Plan;\n activeSubscription?: Subscription | null;\n billingCountryCode?: string;\n preconfiguredBillableFeatures: BillableFeature[];\n};\n\nconst getBillingPeriod = (billingPeriod: BillingPeriod, hasMonthlyPrices?: boolean, hasAnnualPrices?: boolean) => {\n if (billingPeriod === BillingPeriod.Monthly && hasMonthlyPrices) {\n return billingPeriod;\n }\n if (billingPeriod === BillingPeriod.Annually && hasAnnualPrices) {\n return billingPeriod;\n }\n return null;\n};\n\nconst isInAdvanceCommitmentCharge = ({ pricingModel }: Price) => {\n return pricingModel === BillingModel.PerUnit;\n};\n\nfunction getBillableFeatures(\n preconfiguredBillableFeatures: BillableFeature[],\n planPrices?: Price[],\n activeSubscription?: Subscription | null,\n): BillableFeature[] {\n if (!planPrices) return [];\n\n const preconfBillableFeaturesByFeatureId = keyBy(preconfiguredBillableFeatures, 'featureId');\n\n const quantityByFeatureId = keyBy(\n compact(\n activeSubscription?.prices?.map((charge) => {\n const { feature } = charge;\n if (!feature || !isInAdvanceCommitmentCharge(charge)) {\n return null;\n }\n\n return {\n featureId: feature.featureId,\n quantity: feature.unitQuantity || null,\n };\n }),\n ),\n 'featureId',\n );\n\n return compact(\n planPrices?.map((price) => {\n const featureId = price.feature?.featureId;\n if (!featureId || !isInAdvanceCommitmentCharge(price)) {\n return null;\n }\n\n let quantity;\n const preconfiguredQuantity =\n preconfBillableFeaturesByFeatureId[featureId]?.quantity || quantityByFeatureId[featureId]?.quantity;\n\n quantity = getValidPriceQuantity(price, preconfiguredQuantity || 1);\n\n if (price.isTieredPrice && !hasTierWithUnitPrice(price.tiers)) {\n const tier = getTierByQuantity(price.tiers!, quantity);\n quantity = tier.upTo!;\n }\n\n return {\n featureId,\n quantity,\n };\n }),\n );\n}\n\nfunction resolveBillingPeriod({\n plan,\n activeSubscription,\n preferredBillingPeriod,\n}: {\n plan?: Plan;\n activeSubscription?: Subscription | null;\n preferredBillingPeriod?: BillingPeriod;\n}) {\n const hasMonthlyPlan = hasMonthlyPrices(plan);\n const hasAnnualPlan = hasAnnualPrices(plan);\n\n if (preferredBillingPeriod) {\n const billingPeriod = getBillingPeriod(preferredBillingPeriod, hasMonthlyPlan, hasAnnualPlan);\n if (billingPeriod) {\n return billingPeriod;\n }\n }\n\n const isUpdate = activeSubscription?.plan?.id === plan?.id;\n if (isUpdate) {\n return activeSubscription?.price?.billingPeriod || BillingPeriod.Monthly;\n }\n\n if (activeSubscription?.prices && activeSubscription?.prices.length > 0) {\n const billingPeriod = getBillingPeriod(activeSubscription?.prices[0].billingPeriod, hasMonthlyPlan, hasAnnualPlan);\n if (billingPeriod) {\n return billingPeriod;\n }\n }\n\n return hasAnnualPlan ? BillingPeriod.Annually : BillingPeriod.Monthly;\n}\n\nexport function getPlanStepInitialState({\n preferredBillingPeriod,\n plan,\n activeSubscription,\n billingCountryCode,\n preconfiguredBillableFeatures,\n}: GetPlanStepInitialStateProps): PlanStepState {\n const billingPeriod = resolveBillingPeriod({ plan, activeSubscription, preferredBillingPeriod });\n const planPrices = plan?.pricePoints.filter((pricePoint) => pricePoint.billingPeriod === billingPeriod);\n const billableFeatures = getBillableFeatures(preconfiguredBillableFeatures, planPrices, activeSubscription);\n\n return {\n billingPeriod,\n billableFeatures,\n billingCountryCode,\n };\n}\n\nfunction usePlanState() {\n const [{ planStep }] = useCheckoutContext();\n return planStep;\n}\n\nfunction useSetBillableFeature() {\n const [, setState] = useCheckoutContext();\n\n return (featureId: string, quantity: number) =>\n setState((draft) => {\n const billableFeature = draft.planStep.billableFeatures.find(\n (billableFeature) => billableFeature.featureId === featureId,\n );\n\n if (billableFeature) {\n billableFeature.quantity = quantity;\n } else {\n draft.planStep.billableFeatures.push({ featureId, quantity });\n }\n });\n}\n\nfunction useSetBillingPeriod() {\n const [, setState] = useCheckoutContext();\n\n return (billingPeriod: BillingPeriod) =>\n setState((draft) => {\n draft.planStep.billingPeriod = billingPeriod;\n });\n}\n\nexport function usePlanStepModel() {\n const state = usePlanState();\n\n return {\n ...state,\n setBillingPeriod: useSetBillingPeriod(),\n setBillableFeature: useSetBillableFeature(),\n };\n}\n","import { BillableFeatureInput } from '@stigg/api-client-js/src/generated/sdk';\nimport { Addon, BillableFeature, BillingPeriod, CheckoutStatePlan } from '@stigg/js-client-sdk';\nimport { useCheckoutContext } from '../CheckoutProvider';\nimport { CheckoutSteps } from '../configurations/steps';\nimport { hasMultipleBillingPeriods } from '../../utils/planPrices';\n\nexport enum CheckoutStepKey {\n PLAN = 'PLAN',\n ADDONS = 'ADDONS',\n PAYMENT = 'PAYMENT',\n}\n\nexport type CheckoutStep = {\n key: CheckoutStepKey;\n label: string;\n};\n\nconst CHECKOUT_STEPS: CheckoutStep[] = [\n { key: CheckoutStepKey.PLAN, label: 'Plan' },\n { key: CheckoutStepKey.ADDONS, label: 'Add-ons' },\n { key: CheckoutStepKey.PAYMENT, label: 'Payment details' },\n];\n\nexport type ProgressBarState = {\n activeStep: number;\n completedSteps: number[];\n steps: CheckoutStep[];\n isDisabled: boolean;\n};\n\nconst INITIAL_STATE: ProgressBarState = {\n activeStep: 0,\n completedSteps: [],\n steps: CHECKOUT_STEPS,\n isDisabled: false,\n};\n\ntype GetProgressBarInitialStateProps = {\n isLoading: boolean;\n skipCheckoutSteps: CheckoutSteps[];\n plan?: CheckoutStatePlan;\n availableAddons?: Addon[];\n availableCharges: BillableFeatureInput[];\n preferredBillingPeriod?: BillingPeriod;\n preconfiguredBillableFeatures: BillableFeature[];\n};\n\nconst canSkipPlanStep = (\n plan: CheckoutStatePlan,\n availableCharges: BillableFeatureInput[],\n preconfiguredBillableFeatures: BillableFeature[],\n preferredBillingPeriod?: BillingPeriod,\n) => {\n // if multiple billing periods are available, a preferred billing period must be selected\n if (hasMultipleBillingPeriods(plan) && !preferredBillingPeriod) {\n return false;\n }\n\n const availableChargesIds = availableCharges.map((charge) => charge.featureId);\n const preconfiguredChargesIds = preconfiguredBillableFeatures.map((charge) => charge.featureId);\n\n // if there are available charges, they must be preconfigured\n if (\n availableChargesIds.length !== preconfiguredChargesIds.length ||\n !availableChargesIds.every((charge) => preconfiguredChargesIds.includes(charge))\n ) {\n return false;\n }\n\n return true;\n};\n\nexport function getProgressBarInitialState({\n isLoading,\n skipCheckoutSteps,\n plan,\n availableAddons,\n availableCharges,\n preferredBillingPeriod,\n preconfiguredBillableFeatures,\n}: GetProgressBarInitialStateProps) {\n if (isLoading || !plan) {\n return INITIAL_STATE;\n }\n\n const stepsToFilter: CheckoutStepKey[] = [];\n\n if (\n skipCheckoutSteps.includes('PLAN') &&\n canSkipPlanStep(plan, availableCharges, preconfiguredBillableFeatures, preferredBillingPeriod)\n ) {\n stepsToFilter.push(CheckoutStepKey.PLAN);\n }\n\n if (availableAddons?.length === 0 || skipCheckoutSteps.includes('ADDONS')) {\n stepsToFilter.push(CheckoutStepKey.ADDONS);\n }\n\n return { ...INITIAL_STATE, steps: CHECKOUT_STEPS.filter((step) => !stepsToFilter.includes(step.key)) };\n}\n\nfunction useProgressBarState() {\n const [{ progressBar }] = useCheckoutContext();\n return progressBar;\n}\n\nfunction useSetActiveStep() {\n const [, setState] = useCheckoutContext();\n return (stepNumber: number) =>\n setState(({ progressBar }) => {\n progressBar.activeStep = stepNumber;\n });\n}\nfunction useMarkStepAsCompleted() {\n const [, setState] = useCheckoutContext();\n return (stepNumber: number) =>\n setState(({ progressBar }) => {\n progressBar.completedSteps.push(stepNumber);\n });\n}\n\nfunction isCheckoutComplete(progressBar: ProgressBarState) {\n return progressBar.completedSteps.length >= progressBar.steps.length - 1;\n}\n\nfunction useGoNext() {\n const [, setState] = useCheckoutContext();\n return () =>\n setState(({ progressBar }) => {\n if (progressBar.isDisabled) {\n return;\n }\n\n if (!progressBar.completedSteps.includes(progressBar.activeStep)) {\n progressBar.completedSteps.push(progressBar.activeStep);\n }\n\n if (progressBar.activeStep < progressBar.steps.length - 1) {\n progressBar.activeStep += 1;\n }\n });\n}\n\nfunction useSetIsDisabled() {\n const [, setState] = useCheckoutContext();\n return (isDisabled?: boolean) =>\n setState(({ progressBar }) => {\n progressBar.isDisabled = !!isDisabled;\n });\n}\n\nexport function useProgressBarModel() {\n const progressBarState = useProgressBarState();\n const currentStep = progressBarState.steps[progressBarState.activeStep];\n\n return {\n currentStep,\n progressBarState,\n isLastStep: progressBarState.activeStep === progressBarState.steps.length - 1,\n isCheckoutComplete: isCheckoutComplete(progressBarState),\n setActiveStep: useSetActiveStep(),\n markStepAsCompleted: useMarkStepAsCompleted(),\n goNext: useGoNext(),\n setIsDisabled: useSetIsDisabled(),\n };\n}\n","import { useCheckoutContext } from '../CheckoutProvider';\nimport { AddonsStepState } from './useAddonsStepModel';\nimport { PromotionCodeState } from './useCouponModel';\nimport { PaymentStepState } from './usePaymentStepModel';\nimport { PlanStepState } from './usePlanStepModel';\n\nexport type SubscriptionState = PlanStepState &\n PromotionCodeState &\n Pick<AddonsStepState, 'addons'> &\n Pick<PaymentStepState, 'billingAddress' | 'taxPercentage'>;\n\nexport function useSubscriptionModel(): SubscriptionState {\n const [{ planStep, addonsStep, promotionCode, paymentStep }] = useCheckoutContext();\n\n return {\n ...planStep,\n addons: addonsStep.addons,\n promotionCode,\n billingAddress: paymentStep.billingAddress,\n taxPercentage: paymentStep.taxPercentage,\n };\n}\n","import { useCallback, useEffect, useState } from 'react';\nimport isEmpty from 'lodash/isEmpty';\nimport { BillingAddress, PreviewSubscription, StiggClient, SubscriptionPreviewV2 } from '@stigg/js-client-sdk';\nimport { useCheckoutContext } from '../CheckoutProvider';\nimport { useCheckoutModel } from './useCheckoutModel';\nimport { SubscriptionState, useSubscriptionModel } from './useSubscriptionModel';\nimport { MockCheckoutPreviewCallback } from '../types';\nimport { useStiggContext } from '../../../hooks/useStiggContext';\n\nfunction mapBillingInformation({\n billingAddress,\n taxPercentage,\n}: {\n billingAddress?: BillingAddress;\n taxPercentage?: number;\n}): Pick<PreviewSubscription, 'billingInformation'> {\n if (!billingAddress && !taxPercentage) {\n return {};\n }\n\n return {\n billingInformation: {\n ...(billingAddress ? { billingAddress } : {}),\n ...(taxPercentage ? { taxPercentage } : {}),\n },\n };\n}\n\ntype UsePreviewSubscriptionProps = {\n onMockCheckoutPreview?: MockCheckoutPreviewCallback;\n};\n\nexport type PreviewSubscriptionProps = {\n customerId?: string;\n planId?: string;\n resourceId?: string;\n stigg: StiggClient;\n} & SubscriptionState &\n UsePreviewSubscriptionProps;\n\nconst previewSubscription = async ({\n stigg,\n customerId,\n planId,\n resourceId,\n promotionCode,\n addons,\n billableFeatures,\n billingCountryCode,\n billingPeriod,\n billingAddress,\n taxPercentage,\n onMockCheckoutPreview,\n}: PreviewSubscriptionProps) => {\n const estimateAddons = addons.map(({ addon, quantity }) => ({ addonId: addon.id, quantity }));\n let subscriptionPreview: SubscriptionPreviewV2 | null = null;\n let errorMessage: string | null = null;\n\n try {\n if (customerId && planId) {\n const previewSubscriptionProps: PreviewSubscription = {\n customerId,\n planId,\n resourceId,\n billingCountryCode,\n addons: estimateAddons,\n billingPeriod,\n promotionCode,\n billableFeatures: isEmpty(billableFeatures) ? undefined : billableFeatures,\n ...mapBillingInformation({ billingAddress, taxPercentage }),\n };\n\n subscriptionPreview = onMockCheckoutPreview\n ? onMockCheckoutPreview(previewSubscriptionProps)\n : await stigg.previewSubscription(previewSubscriptionProps);\n }\n } catch (error) {\n const [, errorMsg] = (error as any)?.message?.split('Error:') || [];\n\n errorMessage = errorMsg?.trim();\n }\n\n return { subscriptionPreview, errorMessage };\n};\n\nexport const usePreviewSubscriptionAction = ({ onMockCheckoutPreview }: UsePreviewSubscriptionProps = {}) => {\n const { stigg } = useStiggContext();\n const subscription = useSubscriptionModel();\n const [{ resourceId }] = useCheckoutContext();\n const { checkoutState, widgetState } = useCheckoutModel();\n const { plan, customer } = checkoutState || {};\n\n const previewSubscriptionAction = useCallback(\n async ({ promotionCode }: { promotionCode?: string | null } = {}) => {\n if (!widgetState.isValid) {\n return { subscriptionPreview: null, errorMessage: null };\n }\n\n return previewSubscription({\n stigg,\n customerId: customer?.id,\n planId: plan?.id,\n resourceId,\n addons: subscription.addons,\n billableFeatures: subscription.billableFeatures,\n billingCountryCode: subscription.billingCountryCode,\n billingPeriod: subscription.billingPeriod,\n billingAddress: subscription.billingAddress,\n taxPercentage: subscription.taxPercentage,\n promotionCode: promotionCode ?? subscription.promotionCode,\n onMockCheckoutPreview,\n });\n },\n [\n stigg,\n customer?.id,\n plan?.id,\n resourceId,\n subscription.addons,\n subscription.billableFeatures,\n subscription.billingCountryCode,\n subscription.billingPeriod,\n subscription.billingAddress,\n subscription.taxPercentage,\n subscription.promotionCode,\n widgetState.isValid,\n onMockCheckoutPreview,\n ],\n );\n\n return { previewSubscriptionAction };\n};\n\nconst SUBSCRIPTION_PREVIEW_DEBOUNCE_TIME = 500;\n\nexport const usePreviewSubscription = ({ onMockCheckoutPreview }: UsePreviewSubscriptionProps = {}) => {\n const [subscriptionPreview, setSubscriptionPreview] = useState<SubscriptionPreviewV2 | null>(null);\n const [isFetchingSubscriptionPreview, setIsFetchingSubscriptionPreview] = useState(false);\n\n const { previewSubscriptionAction } = usePreviewSubscriptionAction({ onMockCheckoutPreview });\n\n useEffect(() => {\n const estimateSubscription = async () => {\n const { subscriptionPreview } = await previewSubscriptionAction();\n if (subscriptionPreview) {\n setSubscriptionPreview(subscriptionPreview);\n }\n\n setIsFetchingSubscriptionPreview(false);\n };\n\n setIsFetchingSubscriptionPreview(true);\n\n const timer = setTimeout(() => {\n setIsFetchingSubscriptionPreview(true);\n void estimateSubscription();\n }, SUBSCRIPTION_PREVIEW_DEBOUNCE_TIME);\n\n return () => {\n clearTimeout(timer);\n };\n }, [previewSubscriptionAction]);\n\n return { subscriptionPreview, isFetchingSubscriptionPreview };\n};\n","import { BillingAddress, Customer } from '@stigg/js-client-sdk';\n\nimport { useCheckoutContext } from '../CheckoutProvider';\n\nexport type PaymentStepState = {\n useNewPaymentMethod: boolean;\n errorMessage?: string;\n billingAddress?: BillingAddress;\n taxPercentage?: number;\n};\n\ntype GetPaymentStepInitialStateProps = {\n customer?: Customer;\n taxPercentage?: number;\n};\n\nexport function getPaymentStepInitialState({\n customer,\n taxPercentage,\n}: GetPaymentStepInitialStateProps): PaymentStepState {\n return {\n useNewPaymentMethod: !customer?.paymentMethodDetails,\n taxPercentage,\n };\n}\n\nfunction useSetUseNewPaymentMethod() {\n const [, setState] = useCheckoutContext();\n\n return (useNewPaymentMethod: boolean) =>\n setState((draft) => {\n draft.paymentStep.useNewPaymentMethod = useNewPaymentMethod;\n });\n}\n\nfunction useSetErrorMessage() {\n const [, setState] = useCheckoutContext();\n\n return (errorMessage?: string) =>\n setState((draft) => {\n draft.paymentStep.errorMessage = errorMessage;\n });\n}\n\nfunction useSetBillingAddress() {\n const [, setState] = useCheckoutContext();\n\n return (billingAddress?: BillingAddress) =>\n setState((draft) => {\n draft.paymentStep.billingAddress = billingAddress;\n });\n}\n\nfunction usePaymentState() {\n const [{ paymentStep }] = useCheckoutContext();\n return paymentStep;\n}\n\nexport function usePaymentStepModel() {\n const state = usePaymentState();\n\n return {\n ...state,\n setUseNewPaymentMethod: useSetUseNewPaymentMethod(),\n setErrorMessage: useSetErrorMessage(),\n setBillingAddress: useSetBillingAddress(),\n };\n}\n","import {\n BillingPeriod,\n DiscountType,\n Plan,\n SubscriptionPreviewDiscount,\n SubscriptionPreviewTaxDetails,\n DiscountDurationType,\n} from '@stigg/js-client-sdk';\nimport moment from 'moment';\nimport merge from 'lodash/merge';\nimport { DeepPartial } from '../../../types';\nimport { currencyPriceFormatter } from '../../utils/currencyUtils';\n\nexport type CheckoutLocalization = {\n changePlan: string;\n billingPeriodsTitle: string;\n addAddonText: string;\n newPaymentMethodText: string;\n newPaymentMethodCardTitle: string;\n newPaymentMethodBillingAddressTitle: string;\n summary: {\n title: string;\n planName: (params: { plan: Plan }) => string;\n addCouponCodeText: string;\n couponCodeTitle: string;\n addonsSectionTitle: string;\n discountsSectionTitle: string;\n onlyPayAsYouGoText: string;\n startsAtText: string;\n proratedTotalDueText: string;\n baseChargeText: string | ((params: { billingPeriod: BillingPeriod }) => string);\n totalText: string;\n totalDueText: string;\n totalBillingPeriodText: (params: { billingPeriod: BillingPeriod }) => string;\n discountText: (params: { discountDetails: SubscriptionPreviewDiscount; currency: string }) => string;\n appliedCreditsTitle: string;\n taxTitle: (params: { taxDetails: SubscriptionPreviewTaxDetails }) => string;\n checkoutSuccessText: string;\n payAsYouGoTooltipText: string;\n changesWillApplyAtEndOfBillingPeriod: string | ((params: { billingPeriodEnd: Date }) => string);\n creditsForUnusedTimeText: (params: { credits: string }) => string;\n };\n checkoutButton: {\n nextText: string;\n noChangesText: string;\n updateText: string;\n downgradeToFreeText: string;\n upgradeText: string;\n };\n downgradeToFree: {\n alertText: (params: { plan: Plan }) => string;\n freePlanHeader: (params: { plan: Plan }) => string;\n freePlanName: (params: { plan: Plan }) => string;\n freePlanPriceText: (params: { plan: Plan }) => string;\n paidPlanHeader: (params: { plan: Plan }) => string;\n paidPlanName: (params: { plan: Plan }) => string;\n paidPlanPriceText: (params: { plan: Plan; billingPeriod?: BillingPeriod }) => string;\n };\n};\n\nexport function getResolvedCheckoutLocalize(\n localizeOverride?: DeepPartial<CheckoutLocalization>,\n): CheckoutLocalization {\n const checkoutDefaultLocalization: CheckoutLocalization = {\n changePlan: 'Change',\n billingPeriodsTitle: 'Billing cycle',\n addAddonText: 'Add',\n newPaymentMethodText: 'New payment method',\n newPaymentMethodBillingAddressTitle: 'Billing address',\n newPaymentMethodCardTitle: 'Payment method',\n summary: {\n title: 'Order summary',\n planName: ({ plan }) => `${plan.displayName} plan`,\n addCouponCodeText: 'Add promotion code',\n couponCodeTitle: 'Promotion code',\n addonsSectionTitle: 'Add-ons',\n discountsSectionTitle: 'Discounts',\n onlyPayAsYouGoText: 'Varies by usage',\n startsAtText: 'Starts at ',\n proratedTotalDueText: 'Prorated charge today',\n baseChargeText: () => 'Base charge',\n totalText: 'Total',\n totalDueText: 'Total due today',\n totalBillingPeriodText: ({ billingPeriod }) => `Billed ${billingPeriod.toLowerCase()}`,\n appliedCreditsTitle: 'Applied credits',\n creditsForUnusedTimeText: ({ credits }) =>\n `Your account will be granted credits worth ${credits} for unused time, which will be automatically applied to future payments.`,\n discountText: ({ discountDetails, currency }) => {\n let discountText = '';\n if (discountDetails.type === DiscountType.Percentage) {\n discountText = `${discountDetails.value}% off`;\n } else {\n discountText = `${currencyPriceFormatter({ amount: discountDetails.value, currency })}`;\n }\n\n let discountTextPostfix = '';\n switch (discountDetails.durationType) {\n case DiscountDurationType.Once: {\n discountTextPostfix = ' once';\n break;\n }\n case DiscountDurationType.Repeating: {\n const prefix = discountDetails.type === DiscountType.Fixed ? ' per month' : '';\n discountTextPostfix = `${prefix} for ${discountDetails.durationInMonths} months`;\n\n break;\n }\n\n case DiscountDurationType.Forever:\n default: {\n discountTextPostfix = '';\n }\n }\n\n return `${discountText}${discountTextPostfix}`;\n },\n taxTitle: ({ taxDetails }) => `Tax (${taxDetails?.percentage}%)`,\n changesWillApplyAtEndOfBillingPeriod: ({ billingPeriodEnd }) =>\n `Your changes will take effect at the end of your current billing cycle on ${moment(billingPeriodEnd).format(\n 'MMMM D, YYYY',\n )}.`,\n checkoutSuccessText: 'Changes applied',\n payAsYouGoTooltipText: 'Billed according to actual usage',\n },\n checkoutButton: {\n nextText: 'Next',\n noChangesText: 'No changes',\n updateText: 'Update subscription',\n downgradeToFreeText: 'Cancel subscription',\n upgradeText: 'Subscribe',\n },\n downgradeToFree: {\n alertText: () => `We’re sorry to see you cancel your paid subscription 😭`,\n freePlanHeader: () => 'New plan',\n freePlanName: ({ plan }) => `${plan.displayName}`,\n freePlanPriceText: () => 'Free',\n paidPlanHeader: () => 'Current plan',\n paidPlanName: ({ plan }) => `${plan.displayName}`,\n paidPlanPriceText: ({ billingPeriod }) =>\n `Paid plan${billingPeriod ? `, billed ${billingPeriod.toLowerCase()}` : ''}`,\n },\n };\n\n return merge(checkoutDefaultLocalization, localizeOverride);\n}\n","import { CheckoutConfiguration } from '@stigg/js-client-sdk';\nimport { StiggTheme } from '../../../theme/types';\nimport { DeepPartial } from '../../../types';\n\nexport type CheckoutTheme = {\n primary: string;\n textColor: string;\n backgroundColor: string;\n borderColor: string;\n summaryBackgroundColor: string;\n paymentInputBackgroundColor?: string;\n paymentInputBorderColor?: string;\n paymentInputBorderRadius?: string;\n};\n\nconst defaultCheckoutTheme: CheckoutTheme = {\n primary: 'rgb(50, 126, 238)',\n textColor: 'rgb(0, 30, 108)',\n backgroundColor: 'rgb(255, 255, 255)',\n borderColor: 'rgb(235, 237, 243)',\n summaryBackgroundColor: 'rgb(109, 121, 144)',\n};\n\nexport function getResolvedCheckoutTheme(\n globalTheme: StiggTheme,\n themeOverride?: DeepPartial<CheckoutTheme>,\n // all the remote colors override theme colors, no need to use them here\n _remoteConfiguration?: CheckoutConfiguration | null,\n): CheckoutTheme {\n const { palette: globalPalette } = globalTheme || {};\n\n return {\n primary: themeOverride?.primary || globalPalette?.primary || defaultCheckoutTheme.primary,\n textColor: themeOverride?.textColor || globalPalette?.text.primary || defaultCheckoutTheme.textColor,\n backgroundColor:\n themeOverride?.backgroundColor || globalPalette?.backgroundPaper || defaultCheckoutTheme.backgroundColor,\n borderColor: themeOverride?.borderColor || globalPalette?.outlinedBorder || defaultCheckoutTheme.borderColor,\n summaryBackgroundColor:\n themeOverride?.summaryBackgroundColor ||\n globalPalette?.backgroundHighlight ||\n defaultCheckoutTheme.summaryBackgroundColor,\n paymentInputBackgroundColor: themeOverride?.paymentInputBackgroundColor,\n paymentInputBorderColor: themeOverride?.paymentInputBorderColor,\n paymentInputBorderRadius: themeOverride?.paymentInputBorderRadius,\n };\n}\n","import { produce } from 'immer';\nimport React, { useCallback, useContext, useEffect, useMemo, useState } from 'react';\nimport { BillableFeature, BillingPeriod, GetCheckoutStateResults } from '@stigg/js-client-sdk';\nimport { CustomizedTheme, SdkThemeProvider, useStiggTheme } from '../../theme/Theme';\nimport { DeepPartial } from '../../types';\nimport { mapCheckoutConfiguration, mapTypography } from '../common/mapExternalTheme';\nimport {\n AddonsStepState,\n getAddonsStepInitialState,\n getPaymentStepInitialState,\n getPlanStepInitialState,\n getProgressBarInitialState,\n PaymentStepState,\n PlanStepState,\n ProgressBarState,\n useLoadCheckout,\n WidgetState,\n} from './hooks';\nimport { CheckoutLocalization, getResolvedCheckoutLocalize } from './configurations/textOverrides';\nimport { CheckoutTheme, getResolvedCheckoutTheme } from './configurations/theme';\nimport { StiggTheme } from '../../theme/types';\nimport { BillingInformation, MockCheckoutStateCallback } from './types';\nimport { defaultCheckoutTypography } from './configurations/typography';\nimport { CheckoutSteps } from './configurations/steps';\n\nexport interface CheckoutContextState {\n checkout?: GetCheckoutStateResults | null;\n checkoutLocalization: CheckoutLocalization;\n stiggTheme: StiggTheme;\n theme: CheckoutTheme;\n resourceId?: string;\n promotionCode?: string;\n progressBar: ProgressBarState;\n planStep: PlanStepState;\n addonsStep: AddonsStepState;\n paymentStep: PaymentStepState;\n widgetState: WidgetState;\n isWidgetWatermarkEnabled: boolean;\n}\n\nexport const CheckoutContext = React.createContext<\n [CheckoutContextState, (updater: (state: CheckoutContextState) => void) => void] | null\n>(null);\n\nCheckoutContext.displayName = 'CheckoutContext';\n\nexport const useCheckoutContext = () => {\n const ctx = useContext(CheckoutContext);\n if (!ctx) {\n throw new Error(\n 'Could not find Checkout context; You need to wrap your checkout components in an <CheckoutProvider> component.',\n );\n }\n return ctx;\n};\n\nconst CheckoutContextProvider: React.FC<{ children: React.ReactNode; initialState: CheckoutContextState }> = ({\n children,\n initialState,\n}) => {\n const [state, innerSetState] = useState(initialState);\n\n useEffect(() => {\n innerSetState(initialState);\n }, [initialState]);\n\n const setState = useCallback(\n (updater: (state: CheckoutContextState) => void) => innerSetState((old) => produce(old, (draft) => updater(draft))),\n [innerSetState],\n );\n\n const [contextValue, setContextValue] = useMemo(() => [state, setState], [setState, state]);\n\n return <CheckoutContext.Provider value={[contextValue, setContextValue]}>{children}</CheckoutContext.Provider>;\n};\n\nexport type CheckoutProviderProps = {\n textOverrides?: DeepPartial<CheckoutLocalization>;\n theme?: DeepPartial<CheckoutTheme>;\n resourceId?: string;\n planId: string;\n preferredBillingPeriod?: BillingPeriod;\n billingCountryCode?: string;\n billableFeatures?: BillableFeature[];\n billingInformation?: BillingInformation;\n onMockCheckoutState?: MockCheckoutStateCallback;\n skipCheckoutSteps?: CheckoutSteps[];\n};\n\nexport function CheckoutProvider({\n children,\n textOverrides,\n theme,\n preferredBillingPeriod,\n billableFeatures,\n resourceId,\n planId,\n billingCountryCode,\n billingInformation,\n onMockCheckoutState,\n skipCheckoutSteps,\n}: {\n children: React.ReactNode;\n} & CheckoutProviderProps) {\n const { checkout, isLoading, isWidgetWatermarkEnabled } = useLoadCheckout({\n resourceId,\n planId,\n billingCountryCode,\n onMockCheckoutState,\n });\n const configuration: CustomizedTheme = checkout?.configuration\n ? mapCheckoutConfiguration(checkout.configuration)\n : { typography: mapTypography(defaultCheckoutTypography) };\n const globalTheme: StiggTheme = useStiggTheme(configuration);\n\n const initialState = useMemo(() => {\n const checkoutTheme = getResolvedCheckoutTheme(globalTheme, theme, checkout?.configuration);\n const checkoutLocalization = getResolvedCheckoutLocalize(textOverrides);\n const planStep = getPlanStepInitialState({\n preferredBillingPeriod,\n plan: checkout?.plan,\n activeSubscription: checkout?.activeSubscription,\n billingCountryCode,\n preconfiguredBillableFeatures: billableFeatures ?? [],\n });\n const addonsStep = getAddonsStepInitialState({\n plan: checkout?.plan,\n billingPeriod: planStep.billingPeriod,\n activeSubscription: checkout?.activeSubscription,\n });\n const paymentStep = getPaymentStepInitialState({\n customer: checkout?.customer,\n taxPercentage: billingInformation?.taxDetails?.taxPercentage,\n });\n const progressBar = getProgressBarInitialState({\n isLoading,\n skipCheckoutSteps: skipCheckoutSteps ?? [],\n plan: checkout?.plan,\n availableAddons: addonsStep.availableAddons,\n availableCharges: planStep.billableFeatures,\n preferredBillingPeriod,\n preconfiguredBillableFeatures: billableFeatures ?? [],\n });\n\n const initialState: CheckoutContextState = {\n checkout,\n checkoutLocalization,\n stiggTheme: globalTheme,\n theme: checkoutTheme,\n progressBar,\n planStep,\n addonsStep,\n paymentStep,\n resourceId: checkout?.resource?.id,\n widgetState: { readOnly: false, isValid: true, isLoadingCheckoutData: isLoading },\n isWidgetWatermarkEnabled,\n };\n\n return initialState;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n preferredBillingPeriod,\n billingCountryCode,\n checkout,\n isLoading,\n skipCheckoutSteps,\n billingInformation?.taxDetails?.taxPercentage,\n ]);\n\n return (\n <SdkThemeProvider key={checkout?.plan.id} componentTheme={configuration}>\n <CheckoutContextProvider initialState={initialState}>{children}</CheckoutContextProvider>\n </SdkThemeProvider>\n );\n}\n","import styled from '@emotion/styled/macro';\nimport Box from '@mui/material/Box';\nimport { mq } from '../common/mediaQuery';\n\nexport const CheckoutLayout = styled.div`\n margin: auto;\n min-height: 760px;\n max-width: 920px;\n display: flex;\n position: relative;\n flex-direction: column;\n align-items: center;\n\n background-color: ${({ theme }) => theme.stigg.palette.backgroundPaper};\n border: ${({ theme }) => `1px solid ${theme.stigg.palette.outlinedBorder}`};\n\n & * {\n box-sizing: border-box;\n }\n\n padding: 16px 16px;\n ${mq.md} {\n padding: 32px;\n width: calc(100% - 64px);\n border-radius: 10px;\n }\n`;\nexport const CheckoutContent = styled(Box)`\n display: flex;\n align-items: flex-start;\n gap: 32px;\n flex-wrap: wrap;\n width: 100%;\n\n flex-direction: column;\n ${mq.md} {\n flex-direction: row;\n }\n`;\n\nexport const CheckoutPanel = styled(Box)`\n display: flex;\n flex-direction: column;\n gap: 0;\n flex: 2;\n\n width: 100%;\n ${mq.md} {\n width: auto;\n }\n`;\n","import styled from '@emotion/styled/macro';\nimport LinearProgress, { linearProgressClasses } from '@mui/material/LinearProgress';\nimport Button, { buttonClasses } from '@mui/material/Button';\nimport { Icon } from '../../common/Icon';\n\nexport const StyledProgress = styled(LinearProgress, { shouldForwardProp: (prop) => !prop.startsWith('$') })<{\n $disabled?: boolean;\n}>(({ theme, $disabled }) => ({\n [`&.${linearProgressClasses.root}`]: {\n borderRadius: theme.stigg.border.radius,\n backgroundColor: theme.stigg.palette.outlinedBorder,\n },\n [`& .${linearProgressClasses.bar}`]: {\n backgroundColor: $disabled ? theme.stigg.palette.primaryLight : theme.stigg.palette.primary,\n },\n}));\n\nexport const StyledStepButton = styled(Button)(() => ({\n [`&.${buttonClasses.root}`]: {\n textTransform: 'none',\n lineHeight: 'inherit',\n justifyContent: 'flex-start',\n padding: '8px 4px',\n },\n}));\n\nexport const StyledIcon = styled(Icon, { shouldForwardProp: (prop) => !prop.startsWith('$') })<{\n $disabled?: boolean;\n $shouldFill?: boolean;\n}>(({ theme, $disabled, $shouldFill }) => ({\n circle: {\n stroke: $disabled ? theme.stigg.palette.primaryLight : theme.stigg.palette.primary,\n fill: $shouldFill ? ($disabled ? theme.stigg.palette.primaryLight : theme.stigg.palette.primary) : undefined,\n },\n}));\n","import React, { useEffect, useRef } from 'react';\nimport Grid from '@mui/material/Grid';\nimport Box from '@mui/material/Box';\nimport StepIcon from '@mui/material/StepIcon';\nimport { useCheckoutModel, useProgressBarModel } from '../hooks';\nimport { Typography } from '../../common/Typography';\nimport { StyledIcon, StyledProgress, StyledStepButton } from './CheckoutProgressBar.style';\nimport { Icons } from '../../common/Icon';\nimport { Skeleton } from '../components/Skeletons.style';\nimport { useIsScreenWiderThan } from '../../hooks/useIsScreenWiderThan';\n\nexport const CheckoutProgressBar = () => {\n const { progressBarState, setActiveStep, currentStep } = useProgressBarModel();\n const { widgetState } = useCheckoutModel();\n const isScreenWiderThanMd = useIsScreenWiderThan('md');\n const containerRef = useRef<HTMLElement>();\n const { readOnly, isLoadingCheckoutData } = widgetState;\n const { activeStep, completedSteps, steps } = progressBarState || {};\n const progress = ((activeStep + 1) * 100) / steps.length;\n\n const [previousStep, setPreviousStep] = React.useState(currentStep);\n useEffect(() => {\n if (!isScreenWiderThanMd) {\n if (containerRef.current && currentStep !== previousStep) {\n containerRef.current.scrollIntoView({ behavior: 'smooth' });\n }\n }\n setPreviousStep(currentStep);\n }, [currentStep, isScreenWiderThanMd, previousStep, setPreviousStep]);\n\n if (progressBarState.steps.length === 1) {\n return null;\n }\n\n return (\n <Box className=\"stigg-checkout-progress-container\" sx={{ width: '100%', mb: 3 }} ref={containerRef}>\n <StyledProgress variant=\"determinate\" value={progress} $disabled={readOnly} />\n <Grid container display=\"flex\">\n {steps.map(({ key, label }, index) => {\n const isCompleted = completedSteps.includes(index);\n const isDisabled =\n readOnly ||\n (index > activeStep && !isCompleted && !completedSteps.includes(index - 1)) ||\n (activeStep !== index && progressBarState.isDisabled);\n const checkedIcon: Icons = isDisabled ? 'OutlinedCheckedCircleDisabled' : 'OutlinedCheckedCircle';\n\n return (\n <Grid\n key={key}\n item\n display=\"flex\"\n flexDirection=\"row\"\n flex={isScreenWiderThanMd ? 1 : 'auto'}\n justifyContent=\"flex-start\">\n {isLoadingCheckoutData ? (\n <Skeleton width={120} height={20} style={{ marginTop: 8 }} />\n ) : (\n <StyledStepButton onClick={() => setActiveStep(index)} fullWidth disabled={isDisabled}>\n <Grid item display=\"flex\" flexDirection=\"row\" alignItems=\"center\" gap={1}>\n <StepIcon\n icon={\n <StyledIcon\n icon={isCompleted ? checkedIcon : 'OutlinedCircle'}\n $disabled={isDisabled}\n $shouldFill={isCompleted}\n />\n }\n />\n\n <Typography variant=\"h6\" color={isDisabled ? 'primary.main.light' : 'primary.main'}>\n {label}\n </Typography>\n </Grid>\n </StyledStepButton>\n )}\n </Grid>\n );\n })}\n </Grid>\n </Box>\n );\n};\n","import sortBy from 'lodash/sortBy';\nimport { useMemo } from 'react';\n\nimport { BillingModel, Price } from '@stigg/js-client-sdk';\n\nconst CHARGES_BILLING_MODEL_ORDER = [BillingModel.FlatFee, BillingModel.PerUnit, BillingModel.UsageBased];\n\nexport const sortCharges = (charges: Price[]) => {\n return sortBy(charges, [\n (charge) => CHARGES_BILLING_MODEL_ORDER.indexOf(charge.pricingModel),\n (charge) => charge.feature?.displayName,\n ]);\n};\n\nexport const useChargesSort = (charges: Price[]) => {\n return useMemo(() => sortCharges(charges), [charges]);\n};\n","import { useCheckoutContext } from '../CheckoutProvider';\n\nexport type PromotionCodeState = {\n promotionCode?: string;\n};\n\nfunction usePromotionCodeState() {\n const [{ promotionCode }] = useCheckoutContext();\n return promotionCode;\n}\n\nfunction useSetPromotionCode() {\n const [, setState] = useCheckoutContext();\n\n return (promotionCode: string) =>\n setState((draft) => {\n draft.promotionCode = promotionCode;\n });\n}\n\nexport function usePromotionCodeModel() {\n const promotionCode = usePromotionCodeState();\n\n return {\n promotionCode,\n setPromotionCode: useSetPromotionCode(),\n };\n}\n","<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g id=\"plus\">\n<path id=\"Shape\" d=\"M10 4.16666V15.8333\" stroke=\"#327EEE\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path id=\"Shape_2\" d=\"M4.16699 10H15.8337\" stroke=\"#327EEE\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n</svg>\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\n\nimport PlusIcon from '../../../assets/plus-icon.svg';\nimport { Typography } from '../../common/Typography';\nimport { Button } from '../components';\nimport { CheckoutLocalization } from '../configurations/textOverrides';\n\nconst StyledPlusIcon = styled(PlusIcon, { shouldForwardProp: (prop) => !prop.startsWith('$') })<{ $disabled: boolean }>`\n margin-right: 8px;\n path {\n stroke: ${({ theme, $disabled }) => ($disabled ? theme.stigg.palette.text.disabled : theme.stigg.palette.primary)};\n }\n`;\n\nexport type AddPromotionCodeButtonProps = {\n onAddClick: () => void;\n checkoutLocalization: CheckoutLocalization;\n disabled: boolean;\n};\n\nexport const AddPromotionCodeButton = ({ onAddClick, checkoutLocalization, disabled }: AddPromotionCodeButtonProps) => (\n <Button\n disabled={disabled}\n fullWidth\n className=\"stigg-checkout-summary-add-coupon-code-button\"\n sx={{\n textTransform: 'none',\n justifyContent: 'flex-start',\n color: disabled ? 'text.disabled' : 'primary.main',\n }}\n variant=\"text\"\n size=\"medium\"\n onClick={onAddClick}>\n <StyledPlusIcon $disabled={disabled} className=\"stigg-checkout-summary-add-coupon-code-button-icon\" />\n <Typography\n className=\"stigg-checkout-change-plan-button-text\"\n color={disabled ? 'disabled' : 'primary.main'}\n style={{ lineHeight: '24px' }}\n variant=\"h3\">\n {checkoutLocalization.summary.addCouponCodeText}\n </Typography>\n </Button>\n);\n","import React, { useState } from 'react';\n\nimport styled from '@emotion/styled/macro';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport Grid from '@mui/material/Grid';\n\nimport { Icon } from '../../common/Icon';\nimport { Typography } from '../../common/Typography';\nimport { Button, InputField } from '../components';\nimport { usePreviewSubscriptionAction } from '../hooks';\nimport { usePromotionCodeModel } from '../hooks/useCouponModel';\nimport { AddPromotionCodeButton } from './AddPromotionCodeButton';\nimport { PromotionCodeSectionProps } from './PromotionCodeSection';\n\nconst CouponCodeAddButton = styled(Button)`\n padding: 4px 10px;\n min-width: unset;\n border-radius: ${({ theme }) => theme.stigg.border.radius};\n display: flex;\n align-items: center;\n`;\n\nexport const AddPromotionCode = ({\n disabled,\n checkoutLocalization,\n onMockCheckoutPreview,\n}: PromotionCodeSectionProps) => {\n const { setPromotionCode: persistPromotionCode } = usePromotionCodeModel();\n const [showInput, setShowInput] = useState(false);\n const [promotionCode, setPromotionCode] = React.useState('');\n const [isLoading, setIsLoading] = React.useState(false);\n const [errorMessage, setErrorMessage] = React.useState('');\n const { previewSubscriptionAction } = usePreviewSubscriptionAction({ onMockCheckoutPreview });\n\n const handlePromotionCode = async () => {\n setIsLoading(true);\n setErrorMessage('');\n\n const { subscriptionPreview, errorMessage } = await previewSubscriptionAction({ promotionCode });\n\n if (!errorMessage && subscriptionPreview?.immediateInvoice?.discountDetails) {\n persistPromotionCode(promotionCode.toUpperCase());\n setShowInput(false);\n } else if (errorMessage) {\n setErrorMessage(errorMessage);\n }\n setIsLoading(false);\n };\n\n if (!showInput) {\n return (\n <AddPromotionCodeButton\n disabled={disabled}\n onAddClick={() => setShowInput(true)}\n checkoutLocalization={checkoutLocalization}\n />\n );\n }\n\n return (\n <Grid>\n <Typography variant=\"body1\" color={errorMessage ? 'error' : disabled ? 'disabled' : 'primary.main'}>\n {checkoutLocalization.summary.couponCodeTitle}\n </Typography>\n\n <InputField\n disabled={disabled}\n autoFocus\n variant=\"outlined\"\n fullWidth\n error={!!errorMessage}\n value={promotionCode}\n onChange={(e) => {\n setPromotionCode(e.target.value);\n }}\n inputProps={{ maxLength: 20 }}\n onKeyDown={(e: any) => {\n if (e.key === 'Enter') {\n void handlePromotionCode();\n e.preventDefault();\n }\n }}\n // eslint-disable-next-line react/jsx-no-duplicate-props\n InputProps={{\n endAdornment: (\n <CouponCodeAddButton\n variant=\"contained\"\n disabled={disabled}\n onClick={() => {\n void handlePromotionCode();\n }}>\n {isLoading ? (\n <CircularProgress size={18} sx={{ color: 'white' }} />\n ) : (\n <Icon style={{ display: 'flex' }} icon=\"ArrowForward\" />\n )}\n </CouponCodeAddButton>\n ),\n }}\n />\n {!!errorMessage && (\n <Typography variant=\"body1\" color=\"error\">\n {errorMessage}\n </Typography>\n )}\n </Grid>\n );\n};\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport Grid from '@mui/material/Grid';\nimport { Icon } from '../../common/Icon';\nimport { Typography } from '../../common/Typography';\nimport { Button } from '../components';\n\nconst AppliedCouponContainer = styled(Grid)`\n width: auto;\n display: inline-flex;\n align-items: center;\n flex-direction: row;\n gap: 8px;\n padding: 6px 8px;\n border-radius: ${({ theme }) => theme.stigg.border.radius};\n border: 1px solid ${({ theme }) => theme.stigg.palette.primary};\n`;\n\nexport const StyledIcon = styled(Icon, { shouldForwardProp: (prop) => prop !== 'style' })<{ $shouldFill?: boolean }>`\n display: flex;\n\n g {\n stroke: ${({ theme }) => theme.stigg.palette.primary};\n }\n\n path {\n fill: ${({ theme, $shouldFill }) => ($shouldFill ? theme.stigg.palette.primary : undefined)};\n }\n`;\n\nexport type AppliedPromotionCodeProps = {\n promotionCode: string;\n onClearPromotionCode: () => void;\n};\n\nexport const AppliedPromotionCode = ({ promotionCode, onClearPromotionCode }: AppliedPromotionCodeProps) => (\n <AppliedCouponContainer container>\n <Grid item display=\"flex\" gap={1} alignItems=\"center\">\n <StyledIcon icon=\"Coupon\" />\n <Typography variant=\"body1\" color=\"primary.main\" lineHeight=\"auto\">\n {promotionCode}\n </Typography>\n </Grid>\n <Grid item>\n <Button variant=\"text\" sx={{ minWidth: 'unset', padding: 0 }} onClick={onClearPromotionCode}>\n <StyledIcon icon=\"Close\" $shouldFill />\n </Button>\n </Grid>\n </AppliedCouponContainer>\n);\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { usePromotionCodeModel } from '../hooks/useCouponModel';\nimport { AddPromotionCode } from './AddPromotionCode';\nimport { AppliedPromotionCode } from './AppliedPromotionCode';\nimport { CheckoutLocalization } from '../configurations/textOverrides';\nimport { MockCheckoutPreviewCallback } from '../types';\n\nconst PromotionCodeSectionContainer = styled.div`\n margin: 16px 0;\n`;\n\nexport type PromotionCodeSectionProps = {\n disabled: boolean;\n checkoutLocalization: CheckoutLocalization;\n onMockCheckoutPreview?: MockCheckoutPreviewCallback;\n};\n\nexport const PromotionCodeSection = ({\n disabled,\n checkoutLocalization,\n onMockCheckoutPreview,\n}: PromotionCodeSectionProps) => {\n const { promotionCode, setPromotionCode } = usePromotionCodeModel();\n\n const onClearPromotionCode = () => {\n setPromotionCode('');\n };\n\n const content = promotionCode ? (\n <AppliedPromotionCode promotionCode={promotionCode} onClearPromotionCode={onClearPromotionCode} />\n ) : (\n <AddPromotionCode\n disabled={disabled}\n checkoutLocalization={checkoutLocalization}\n onMockCheckoutPreview={onMockCheckoutPreview}\n />\n );\n\n return <PromotionCodeSectionContainer>{content}</PromotionCodeSectionContainer>;\n};\n","import React from 'react';\nimport { StripeAddressElementChangeEvent } from '@stripe/stripe-js';\nimport Grid from '@mui/material/Grid';\nimport { BillingAddress } from '@stigg/js-client-sdk';\nimport { AddressElement, PaymentElement } from '@stripe/react-stripe-js';\nimport { Typography } from '../../../../common/Typography';\nimport { useCheckoutModel, usePaymentStepModel } from '../../../hooks';\nimport { CheckoutContainerProps } from '../../../CheckoutContainer';\n\nexport function StripePaymentForm({\n onBillingAddressChange,\n collectPhoneNumber,\n}: Pick<CheckoutContainerProps, 'onBillingAddressChange' | 'collectPhoneNumber'>) {\n const { checkoutState, checkoutLocalization, widgetState, setWidgetReadOnly } = useCheckoutModel();\n const { setBillingAddress } = usePaymentStepModel();\n const { customer, configuration } = checkoutState || {};\n const { readOnly } = widgetState;\n const shouldCollectPhoneNumber = !!(collectPhoneNumber ?? configuration?.content?.collectPhoneNumber);\n\n const handleAddressChange = (args: StripeAddressElementChangeEvent) => {\n if (!args.complete) {\n return;\n }\n\n const { postal_code: postalCode, ...addressFields } = args.value.address;\n const billingAddress: BillingAddress = {\n postalCode,\n ...addressFields,\n };\n\n setWidgetReadOnly(true);\n setBillingAddress(billingAddress);\n\n if (onBillingAddressChange) {\n const callExternalBillingAddressChanged = async () => {\n await onBillingAddressChange({ billingAddress });\n setWidgetReadOnly(false);\n };\n\n void callExternalBillingAddressChanged();\n } else {\n setWidgetReadOnly(false);\n }\n };\n\n return (\n <Grid flexDirection=\"column\" container gap={3} padding=\"16px\" sx={{ pointerEvents: readOnly ? 'none' : undefined }}>\n <Grid flexDirection=\"column\" container gap={2}>\n <Typography variant=\"h6\">{checkoutLocalization.newPaymentMethodBillingAddressTitle}</Typography>\n <AddressElement\n onChange={handleAddressChange}\n options={{\n mode: 'billing',\n fields: { phone: shouldCollectPhoneNumber ? 'always' : 'auto' },\n defaultValues: {\n ...(customer?.name && { name: customer.name }),\n },\n }}\n />\n </Grid>\n <Grid flexDirection=\"column\" container gap={2}>\n <Typography variant=\"h6\">{checkoutLocalization.newPaymentMethodCardTitle}</Typography>\n <PaymentElement\n onChange={() => {}}\n onReady={() => {}}\n options={{\n readOnly,\n terms: { card: 'never' },\n defaultValues: {\n billingDetails: {\n ...(customer?.name && { name: customer.name }),\n ...(customer?.email && { email: customer.email }),\n },\n },\n }}\n />\n </Grid>\n </Grid>\n );\n}\n","import { useEffect, useState } from 'react';\n\nimport { BillingVendorIdentifier } from '@stigg/js-client-sdk';\nimport { loadStripe, Stripe } from '@stripe/stripe-js';\n\nimport { useCheckoutModel } from '../../../hooks';\n\nexport function useStripeIntegration() {\n const [stripePromise, setStripePromise] = useState<Promise<Stripe | null> | null>(null);\n const { checkoutState } = useCheckoutModel();\n const { billingIntegration, setupSecret } = checkoutState || {};\n\n useEffect(() => {\n if (billingIntegration) {\n const { billingIdentifier, credentials } = billingIntegration;\n if (billingIdentifier !== BillingVendorIdentifier.Stripe) {\n console.error('Currently only stripe integration is supported');\n return;\n }\n\n const { accountId, publicKey } = credentials;\n setStripePromise(loadStripe(publicKey, { stripeAccount: accountId }));\n }\n }, [billingIntegration]);\n\n return { stripePromise, setupIntentClientSecret: setupSecret };\n}\n","import { ApplySubscription, PreviewSubscription } from '@stigg/js-client-sdk';\nimport { useCheckoutContext } from '../CheckoutProvider';\nimport { useCheckoutModel } from './useCheckoutModel';\nimport { useSubscriptionModel } from './useSubscriptionModel';\n\nexport function useSubscriptionState(): ApplySubscription | PreviewSubscription | undefined {\n const subscription = useSubscriptionModel();\n const [{ resourceId }] = useCheckoutContext();\n const { checkoutState } = useCheckoutModel();\n const { plan } = checkoutState || {};\n const addons = subscription.addons.map(({ addon, quantity }) => ({ addonId: addon.id, quantity }));\n\n if (!plan?.id) {\n return undefined;\n }\n\n return {\n resourceId,\n planId: plan.id,\n billingPeriod: subscription.billingPeriod,\n billableFeatures: subscription.billableFeatures,\n addons,\n promotionCode: subscription.promotionCode,\n billingCountryCode: subscription.billingCountryCode,\n };\n}\n","import { ApplySubscriptionResults, PaymentCollection } from '@stigg/js-client-sdk';\nimport { Stripe, StripeElements } from '@stripe/stripe-js';\n\ntype StripeElementsProps = {\n stripe: Stripe | null;\n elements: StripeElements | null;\n};\n\nconst FAILED_PAYMENT_COLLECTION_STATUSES = [PaymentCollection.Failed, PaymentCollection.Processing];\n\nexport async function handleStripeFormValidations({ elements }: Pick<StripeElementsProps, 'elements'>) {\n if (!elements) {\n const errorMessage = 'Stripe elements not initialized';\n console.error(errorMessage);\n return { success: false, errorMessage };\n }\n\n const { error: elementsError } = await elements.submit();\n\n if (elementsError) {\n console.log(elementsError.message);\n return { success: false, errorMessage: elementsError.message || '' };\n }\n\n return { success: true };\n}\n\nexport async function handleStripeNextAction({\n applySubscriptionResults,\n stripe,\n}: {\n applySubscriptionResults: ApplySubscriptionResults;\n stripe: Stripe | null;\n}) {\n const subscription = applySubscriptionResults?.subscription;\n const paymentIntentClientSecret = subscription?.latestInvoice?.paymentSecret;\n const paymentCollection = subscription?.paymentCollection;\n\n if (stripe && paymentIntentClientSecret && paymentCollection === PaymentCollection.ActionRequired) {\n const { error: NextActionError } = await stripe.handleNextAction({ clientSecret: paymentIntentClientSecret });\n if (NextActionError) {\n return { errorMessage: NextActionError.message || '' };\n }\n } else if (paymentCollection && FAILED_PAYMENT_COLLECTION_STATUSES.includes(paymentCollection)) {\n return { errorMessage: subscription?.latestInvoice?.errorMessage || 'An error occurred - try again later' };\n }\n\n return { subscription };\n}\n\nasync function handleStripeSetup({\n stripe,\n elements,\n clientSecret,\n}: {\n stripe: Stripe;\n elements: StripeElements;\n clientSecret: string;\n}) {\n let newPaymentMethodId: string | undefined;\n let setupErrorMessage: string | undefined;\n\n const { error: setupError } = await stripe.confirmSetup({\n elements,\n confirmParams: { return_url: window.location.href },\n redirect: 'if_required',\n });\n\n if (setupError) {\n if (setupError.type === 'card_error' || setupError.type === 'validation_error') {\n if (setupError.type === 'card_error') {\n // Set some error message\n setupErrorMessage = setupError.message || '';\n }\n } else {\n setupErrorMessage = 'An unexpected error occurred.';\n }\n } else {\n try {\n const { setupIntent } = await stripe.retrieveSetupIntent(clientSecret);\n if (setupIntent?.payment_method) {\n newPaymentMethodId = setupIntent.payment_method as string;\n }\n } catch (e) {\n setupErrorMessage = 'An unexpected error occurred.';\n console.error(e);\n }\n }\n\n return { newPaymentMethodId, setupErrorMessage };\n}\n\nexport async function handleNewPaymentMethod({\n stripe,\n elements,\n setupIntentClientSecret,\n}: {\n stripe: Stripe | null;\n elements: StripeElements | null;\n setupIntentClientSecret?: string;\n}): Promise<{ success: boolean; errorMessage?: string; paymentMethodId?: string }> {\n if (!stripe || !elements || !setupIntentClientSecret) {\n return { success: false };\n }\n\n const stripeFormValidationsResults = await handleStripeFormValidations({ elements });\n if (!stripeFormValidationsResults.success) {\n return { success: false, errorMessage: stripeFormValidationsResults.errorMessage };\n }\n\n const { newPaymentMethodId, setupErrorMessage } = await handleStripeSetup({\n stripe,\n elements,\n clientSecret: setupIntentClientSecret,\n });\n\n if (setupErrorMessage || !newPaymentMethodId) {\n return { success: false, errorMessage: setupErrorMessage };\n }\n\n return { success: true, paymentMethodId: newPaymentMethodId };\n}\n","import styled from '@emotion/styled/macro';\nimport Box from '@mui/material/Box';\nimport Color from 'color';\nimport React, { useEffect, useRef } from 'react';\nimport Lottie from 'react-lottie';\nimport animationData from '../../../assets/lottie/checkout-success.json';\nimport { Typography } from '../../common/Typography';\nimport { CheckoutLocalization } from '../configurations/textOverrides';\n\nexport const ANIMATION_DURATION = 5000;\n\nconst CheckoutSuccessContainer = styled(Box)`\n @keyframes blurFade {\n 0% {\n background-color: ${({ theme }) => Color(theme.stigg.palette.backgroundPaper).alpha(0).toString()};\n backdrop-filter: blur(0px);\n }\n 100% {\n background-color: ${({ theme }) => Color(theme.stigg.palette.backgroundPaper).alpha(0.9).toString()};\n backdrop-filter: blur(6.5px);\n }\n }\n\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n z-index: 5;\n background-color: ${({ theme }) => Color(theme.stigg.palette.backgroundPaper).alpha(0.9).toString()};\n animation: blurFade 2s ease-in forwards;\n display: flex;\n flex-direction: column;\n justify-content: center;\n\n * rect {\n fill: transparent;\n }\n\n & path {\n stroke: ${({ theme }) => theme.stigg.palette.primary};\n }\n`;\n\nconst CheckoutSuccessText = styled(Typography)`\n @keyframes fadeIn {\n 0% {\n opacity: 0;\n }\n 75% {\n opacity: 0;\n }\n 100% {\n opacity: 1;\n }\n }\n\n align-self: center;\n animation: fadeIn 5s ease-in forwards;\n`;\n\nexport function CheckoutSuccess({ checkoutLocalization }: { checkoutLocalization: CheckoutLocalization }) {\n const containerRef = useRef<HTMLDivElement>();\n useEffect(() => {\n if (containerRef.current) {\n containerRef.current.scrollIntoView({ behavior: 'smooth', block: 'center', inline: 'center' });\n }\n }, []);\n return (\n <CheckoutSuccessContainer className=\"stigg-checkout-success-container\" ref={containerRef}>\n <Lottie\n options={{ animationData, loop: false, autoplay: true }}\n width={350}\n height=\"auto\"\n style={{ display: 'flex', justifyContent: 'center' }}\n />\n <CheckoutSuccessText variant=\"h1\" color=\"primary.main\">\n {checkoutLocalization.summary.checkoutSuccessText}\n </CheckoutSuccessText>\n </CheckoutSuccessContainer>\n );\n}\n","import { ApplySubscription, ApplySubscriptionResults } from '@stigg/js-client-sdk';\nimport { useElements, useStripe } from '@stripe/react-stripe-js';\nimport { useStiggContext } from '../../../../..';\nimport { useCheckoutModel } from '../../../hooks';\nimport { usePaymentStepModel } from '../../../hooks/usePaymentStepModel';\nimport { useSubscriptionState } from '../../../hooks/useSubscriptionState';\nimport { CheckoutContainerProps, CheckoutResult } from '../../../CheckoutContainer';\nimport { handleNewPaymentMethod, handleStripeNextAction } from './stripe.utils';\nimport { ANIMATION_DURATION } from '../../../summary/CheckoutSuccess';\n\nconst delay = (ms: number) => new Promise((res) => setTimeout(res, ms));\n\nexport type HandleSubmitResult = { results?: ApplySubscriptionResults; success: boolean; errorMessage?: string };\n\nexport type UseSubmitProps = {\n onSuccess?: () => void;\n isMocked?: boolean;\n} & Pick<CheckoutContainerProps, 'onCheckout' | 'onCheckoutCompleted' | 'disableSuccessAnimation'>;\n\nexport function useSubmit({\n isMocked = false,\n onCheckout,\n onCheckoutCompleted,\n onSuccess,\n disableSuccessAnimation,\n}: UseSubmitProps) {\n const { stigg } = useStiggContext();\n const { useNewPaymentMethod } = usePaymentStepModel();\n const subscriptionState = useSubscriptionState();\n const { checkoutState, widgetState, setWidgetReadOnly } = useCheckoutModel();\n const { setupSecret: setupIntentClientSecret, customer } = checkoutState || {};\n const stripe = useStripe();\n const elements = useElements();\n\n const handleSubmit = async (e: any): Promise<HandleSubmitResult> => {\n e.preventDefault();\n\n if (!subscriptionState) {\n return { success: false, errorMessage: 'Unexpected error, please contact support.' };\n }\n\n let success = true;\n let errorMessage: string | undefined;\n let usedStiggCheckoutAction = false;\n let paymentMethodId: string | undefined;\n\n setWidgetReadOnly(true);\n\n if (!isMocked && useNewPaymentMethod) {\n const paymentMethodResults = await handleNewPaymentMethod({ elements, stripe, setupIntentClientSecret });\n if (!paymentMethodResults.success) {\n errorMessage = paymentMethodResults.errorMessage;\n success = false;\n } else {\n paymentMethodId = paymentMethodResults.paymentMethodId;\n }\n }\n\n const checkoutParams: ApplySubscription = { ...subscriptionState, paymentMethodId };\n\n const checkoutAction = async (params: ApplySubscription): Promise<CheckoutResult> => {\n usedStiggCheckoutAction = true;\n\n try {\n const applySubscriptionResults = await stigg.applySubscription(params);\n\n const nextActionResults = await handleStripeNextAction({ applySubscriptionResults, stripe });\n\n return {\n success: !nextActionResults.errorMessage,\n errorMessage: nextActionResults.errorMessage,\n results: applySubscriptionResults,\n };\n } catch (e) {\n console.error(e);\n errorMessage = (e as any)?.message;\n return { success: false, errorMessage };\n }\n };\n\n let checkoutResults: ApplySubscriptionResults | undefined;\n\n if (success) {\n if (onCheckout) {\n const externalCheckoutResults = await onCheckout({\n customerId: customer!.id,\n checkoutParams,\n checkoutAction,\n });\n if (externalCheckoutResults.errorMessage) {\n errorMessage = externalCheckoutResults.errorMessage;\n }\n\n if (!usedStiggCheckoutAction && externalCheckoutResults.results && externalCheckoutResults.success) {\n const nextActionResults = await handleStripeNextAction({\n applySubscriptionResults: externalCheckoutResults.results,\n stripe,\n });\n\n if (nextActionResults.errorMessage) {\n errorMessage = nextActionResults.errorMessage;\n success = false;\n }\n }\n\n success = success && externalCheckoutResults.success && !errorMessage;\n checkoutResults = externalCheckoutResults.results;\n } else {\n const checkoutActionResults = await checkoutAction(checkoutParams);\n if (!checkoutActionResults.success && checkoutActionResults.errorMessage) {\n errorMessage = checkoutActionResults.errorMessage;\n }\n success = checkoutActionResults.success && !errorMessage;\n checkoutResults = checkoutActionResults.results;\n }\n }\n\n setWidgetReadOnly(false);\n\n if (success && onSuccess) {\n onSuccess();\n\n if (!disableSuccessAnimation) {\n await delay(ANIMATION_DURATION); // Wait for animation to finish\n }\n }\n\n await onCheckoutCompleted({ success, error: errorMessage });\n\n return { results: checkoutResults, success: !errorMessage, errorMessage };\n };\n\n return { handleSubmit, isLoading: !!widgetState?.readOnly };\n}\n","import React, { FC, PropsWithChildren } from 'react';\nimport { Skeleton } from '../../components/Skeletons.style';\n\nexport const WithSkeleton: FC<\n PropsWithChildren<{\n isLoading: boolean;\n width?: number | string;\n height?: number | string;\n }>\n> = ({ isLoading, width = 50, height = 16, children }) => {\n if (isLoading) {\n return <Skeleton width={width} height={height} />;\n }\n\n return <>{children}</>;\n};\n","/* eslint-disable react/no-unused-prop-types */\nimport React from 'react';\nimport moment from 'moment';\nimport { Box } from '@mui/material';\nimport { BillingModel, BillingPeriod, Plan, Subscription, SubscriptionPreviewV2 } from '@stigg/js-client-sdk';\nimport { Typography } from '../../../common/Typography';\nimport { currencyPriceFormatter } from '../../../utils/currencyUtils';\nimport { CheckoutLocalization } from '../../configurations/textOverrides';\nimport { WithSkeleton } from './WithSkeleton';\n\nexport type CheckoutCaptionProps = {\n subscriptionPreview?: SubscriptionPreviewV2 | null;\n isFetchingSubscriptionPreview: boolean;\n activeSubscription?: Subscription | null;\n plan?: Plan;\n checkoutLocalization: CheckoutLocalization;\n billingPeriod: BillingPeriod;\n};\n\nconst RemainingCreditsCaption = ({\n subscriptionPreview,\n isFetchingSubscriptionPreview,\n checkoutLocalization,\n}: CheckoutCaptionProps) => {\n const { immediateInvoice } = subscriptionPreview || {};\n if (!immediateInvoice?.proration?.netAmount?.amount || immediateInvoice?.proration?.netAmount?.amount >= 0) {\n return null;\n }\n\n const positiveAmount = immediateInvoice.proration.netAmount.amount * -1;\n\n const credits = currencyPriceFormatter({\n amount: positiveAmount,\n currency: immediateInvoice.proration.netAmount.currency,\n minimumFractionDigits: 2,\n });\n\n return (\n <Typography variant=\"body1\" style={{ marginTop: 14 }} className=\"stigg-checkout-summary-captions-remaining-credits\">\n <WithSkeleton isLoading={isFetchingSubscriptionPreview} width=\"100%\">\n {checkoutLocalization.summary.creditsForUnusedTimeText({ credits })}\n </WithSkeleton>\n </Typography>\n );\n};\n\nconst ScheduledUpdatesCaption = ({\n subscriptionPreview,\n activeSubscription,\n isFetchingSubscriptionPreview,\n checkoutLocalization,\n}: CheckoutCaptionProps) => {\n if (!subscriptionPreview?.hasScheduledUpdates || !activeSubscription?.currentBillingPeriodEnd) {\n return null;\n }\n\n const { currentBillingPeriodEnd } = activeSubscription;\n const changesWillApplyText =\n typeof checkoutLocalization.summary.changesWillApplyAtEndOfBillingPeriod === 'function'\n ? checkoutLocalization.summary.changesWillApplyAtEndOfBillingPeriod({ billingPeriodEnd: currentBillingPeriodEnd })\n : checkoutLocalization.summary.changesWillApplyAtEndOfBillingPeriod;\n\n return (\n <Typography variant=\"body1\" style={{ marginTop: 14 }} className=\"stigg-checkout-summary-captions-scheduled-updates\">\n <WithSkeleton isLoading={isFetchingSubscriptionPreview} width=\"100%\">\n {changesWillApplyText}\n </WithSkeleton>\n </Typography>\n );\n};\n\nconst NextBillingCaption = ({\n subscriptionPreview,\n activeSubscription,\n plan,\n isFetchingSubscriptionPreview,\n billingPeriod,\n}: CheckoutCaptionProps) => {\n const { recurringInvoice } = subscriptionPreview || {};\n if (!subscriptionPreview || !recurringInvoice?.total.amount) {\n return null;\n }\n\n const currentBillingPeriodEnd = subscriptionPreview.hasScheduledUpdates\n ? activeSubscription?.currentBillingPeriodEnd\n : subscriptionPreview?.billingPeriodRange.end;\n\n const total = currencyPriceFormatter({\n ...recurringInvoice.total,\n minimumFractionDigits: 2,\n });\n\n const hasUnitBasedPricing = plan?.pricePoints.some((price) => price.pricingModel === BillingModel.UsageBased);\n const hasNonUnitBasedPricing = plan?.pricePoints.some((price) => price.pricingModel !== BillingModel.UsageBased);\n\n let text = 'We will bill you ';\n let totalAmountText = `${total} `;\n\n if (hasUnitBasedPricing) {\n if (!hasNonUnitBasedPricing) {\n totalAmountText = 'for';\n } else {\n totalAmountText += '+';\n }\n\n totalAmountText += ' applicable usage-based charges for this subscription ';\n }\n\n let nextBillingDate;\n let billingPeriodText;\n\n switch (billingPeriod) {\n case BillingPeriod.Monthly:\n billingPeriodText = 'month';\n nextBillingDate = `the ${moment(currentBillingPeriodEnd).format('Do')}`;\n break;\n case BillingPeriod.Annually:\n billingPeriodText = 'year';\n nextBillingDate = moment(currentBillingPeriodEnd).format('MMMM Do');\n break;\n default: {\n break;\n }\n }\n\n text += `${totalAmountText}for this subscription every ${billingPeriodText} on ${nextBillingDate}, unless you cancel.`;\n\n return (\n <Typography variant=\"body1\" style={{ marginTop: 14 }} className=\"stigg-checkout-summary-captions-next-billing\">\n <WithSkeleton isLoading={isFetchingSubscriptionPreview} width=\"100%\">\n {text}\n </WithSkeleton>\n </Typography>\n );\n};\n\nexport function CheckoutCaptions(props: CheckoutCaptionProps) {\n return (\n <Box className=\"stigg-checkout-summary-captions\">\n <RemainingCreditsCaption {...props} />\n\n <ScheduledUpdatesCaption {...props} />\n\n <NextBillingCaption {...props} />\n </Box>\n );\n}\n","import { BillingModel, BillingPeriod, Currency, Price, TiersMode } from '@stigg/js-client-sdk';\nimport { currencyPriceFormatter } from '../../../utils/currencyUtils';\nimport { isBulkTiers, isQuantityInFirstTier } from '../../../utils/priceTierUtils';\nimport { numberFormatter } from '../../../utils/numberUtils';\n\nexport type GetPriceBreakdownStringProps = {\n totalAmount: number;\n quantity: number;\n tiersMode: Price['tiersMode'];\n tiers: Price['tiers'];\n currency: Currency;\n pricingModel: BillingModel;\n billingPeriod: BillingPeriod;\n blockSize?: number | null;\n priceAmount?: Price['amount'];\n};\n\nexport function formatPricePerUnit({\n quantity,\n totalAmount,\n pricingModel,\n billingPeriod,\n currency,\n blockSize,\n priceAmount,\n}: GetPriceBreakdownStringProps) {\n const isPerUnit = pricingModel === BillingModel.PerUnit;\n const aBlockSize = blockSize || 1;\n const featureUnits =\n quantity && (isPerUnit || quantity > 1) ? `${numberFormatter(quantity)} ${aBlockSize > 1 ? 'for' : 'x'} ` : '';\n const billingPeriodString = billingPeriod === BillingPeriod.Annually ? ' x 12 months' : '';\n\n const unitPrice = (priceAmount || totalAmount / quantity) / (billingPeriod === BillingPeriod.Annually ? 12 : 1);\n const formattedUnitPrice = currencyPriceFormatter({\n amount: unitPrice,\n currency,\n minimumFractionDigits: 2,\n });\n const formattedTotalPrice = currencyPriceFormatter({\n amount: totalAmount,\n currency,\n minimumFractionDigits: 2,\n });\n\n return `${featureUnits}${formattedUnitPrice}${billingPeriodString} ${\n billingPeriodString || featureUnits ? ` = ${formattedTotalPrice}` : ''\n }`;\n}\n\nexport function getPriceBreakdownString(params: GetPriceBreakdownStringProps) {\n const { totalAmount, quantity, tiersMode, tiers, currency } = params;\n if (isBulkTiers(tiers) || (tiersMode === TiersMode.Graduated && !isQuantityInFirstTier(tiers, quantity))) {\n const formattedTotalPrice = currencyPriceFormatter({\n amount: totalAmount,\n currency,\n minimumFractionDigits: 2,\n });\n return `${numberFormatter(quantity)} for ${formattedTotalPrice}`;\n }\n\n return formatPricePerUnit(params);\n}\n","import React from 'react';\nimport isNil from 'lodash/isNil';\nimport { Price, PriceTierFragment } from '@stigg/js-client-sdk';\nimport { Typography } from '../../../common/Typography';\nimport { calculateTierPriceGraduated } from '../../../utils/priceTierUtils';\nimport { formatPricePerUnit } from './getPriceBreakdownString';\nimport { LineItemContainer, LineItemRow } from './LineItems';\nimport { numberFormatter } from '../../../utils/numberUtils';\n\nfunction getLabel(tiers: PriceTierFragment[], index: number): string {\n const { unitPrice, upTo } = tiers[index];\n if (!unitPrice) {\n return '';\n }\n\n if (index === 0) {\n return `First ${upTo}`;\n }\n\n const previousTierUpTo = tiers[index - 1].upTo || 0;\n const startUnit = previousTierUpTo + 1;\n\n return isNil(upTo)\n ? `${numberFormatter(startUnit)} and above`\n : `Next ${numberFormatter(startUnit)} to ${numberFormatter(upTo)}`;\n}\n\nexport type GraduatedPriceBreakdownProps = {\n price: Price;\n unitQuantity: number;\n};\n\nexport function GraduatedPriceBreakdown({ price, unitQuantity }: GraduatedPriceBreakdownProps) {\n const tiers = price.tiers || [];\n\n const { breakdown } = calculateTierPriceGraduated(tiers, unitQuantity);\n\n if (breakdown.length === 1) {\n return null;\n }\n\n return (\n <>\n {breakdown.map(({ unitQuantity, amount }, index) => (\n <LineItemContainer>\n <LineItemRow key={index} style={{ alignItems: 'flex-start' }}>\n <Typography variant=\"body1\" color=\"tertiary\" style={{ whiteSpace: 'nowrap' }}>\n {getLabel(tiers, index)}\n </Typography>\n <Typography variant=\"body1\" color=\"tertiary\" style={{ whiteSpace: 'nowrap' }}>\n {formatPricePerUnit({\n quantity: unitQuantity,\n totalAmount: amount,\n currency: price.currency,\n pricingModel: price.pricingModel,\n billingPeriod: price.billingPeriod,\n tiers: price.tiers,\n tiersMode: price.tiersMode,\n blockSize: price.blockSize,\n priceAmount: price.amount,\n })}\n </Typography>\n </LineItemRow>\n </LineItemContainer>\n ))}\n </>\n );\n}\n","import { ChevronRight } from 'react-feather';\nimport styled from 'styled-components';\n\nexport const CollapsableSectionIcon = styled(ChevronRight)<{ $isOpen: boolean; $size?: number }>`\n height: ${({ $size = 24 }) => `${$size}px`};\n width: ${({ $size = 24 }) => `${$size}px`};\n transition: all 0.2s ease-in;\n ${({ $isOpen }) => $isOpen && `transform: rotate(90deg)`}\n`;\n","import React, { ReactNode, useState } from 'react';\nimport styled from '@emotion/styled/macro';\nimport Grid from '@mui/material/Grid';\nimport {\n BillingModel,\n Price,\n SubscriptionPreviewInvoice,\n SubscriptionPreviewV2,\n TiersMode,\n} from '@stigg/js-client-sdk';\nimport isEmpty from 'lodash/isEmpty';\nimport isNil from 'lodash/isNil';\nimport Link from '@mui/material/Link';\nimport { IconButton } from '@mui/material';\nimport Collapse from '@mui/material/Collapse';\nimport { Typography } from '../../../common/Typography';\nimport { currencyPriceFormatter } from '../../../utils/currencyUtils';\nimport { WithSkeleton } from './WithSkeleton';\nimport { Skeleton } from '../../components/Skeletons.style';\nimport { CheckoutLocalization } from '../../configurations/textOverrides';\nimport { Icon } from '../../../common/Icon';\nimport { InformationTooltip } from '../../../common/InformationTooltip';\nimport { getPriceBreakdownString } from './getPriceBreakdownString';\nimport { GraduatedPriceBreakdown } from './GraduatedPriceBreakdown';\nimport { CollapsableSectionIcon } from '../../../common/CollapsableSectionIcon';\nimport { calculateTierPrice } from '../../../utils/priceTierUtils';\nimport { useIsScreenWiderThan } from '../../../hooks/useIsScreenWiderThan';\nimport { mq } from '../../../common/mediaQuery';\n\nexport const LineItemContainer = styled.div`\n & + & {\n margin-top: 16px;\n }\n`;\n\nexport const NestedBreakdownContainer = styled.div`\n margin-top: 16px;\n margin-left: 16px;\n`;\n\nexport const LineItemRow = styled.div`\n display: flex;\n flex-direction: column;\n gap: 16px;\n\n ${mq.lg} {\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n }\n`;\n\nconst PayAsYouGoPriceTooltip = ({ checkoutLocalization }: { checkoutLocalization: CheckoutLocalization }) => {\n const title = <Typography variant=\"body1\">{checkoutLocalization.summary.payAsYouGoTooltipText}</Typography>;\n return (\n <InformationTooltip placement=\"left\" title={title}>\n <Icon icon=\"PayAsYouGoCharge\" style={{ display: 'flex' }} />\n </InformationTooltip>\n );\n};\n\nexport const BilledPriceLineItem = ({\n checkoutLocalization,\n label,\n quantity,\n price,\n}: {\n checkoutLocalization: CheckoutLocalization;\n label: string;\n quantity: number;\n price: Price;\n}) => {\n const isScreenWiderThanLg = useIsScreenWiderThan('lg');\n const [isNestedBreakdownOpen, setIsNestedBreakdownOpen] = useState(false);\n const toggleNestedBreakdown = () => setIsNestedBreakdownOpen((prev) => !prev);\n\n const isPayAsYouGo = price.pricingModel === BillingModel.UsageBased;\n const totalAmount = price.isTieredPrice\n ? calculateTierPrice(price, quantity)\n : (price.amount || 0) * Math.ceil(quantity / (price.blockSize || 1));\n\n let nestedBreakdown: ReactNode;\n const shouldShowGraduatedPriceBreakdown =\n price.tiersMode === TiersMode.Graduated &&\n !!price.tiers &&\n !isEmpty(price.tiers) &&\n !isNil(price.tiers[0].upTo) &&\n quantity > price.tiers[0].upTo;\n\n if (shouldShowGraduatedPriceBreakdown) {\n nestedBreakdown = <GraduatedPriceBreakdown price={price} unitQuantity={quantity} />;\n }\n\n let title: ReactNode = (\n <Typography variant=\"body1\" color=\"secondary\">\n {label}\n </Typography>\n );\n\n if (nestedBreakdown) {\n title = (\n <Link onClick={toggleNestedBreakdown} underline=\"none\" style={{ cursor: 'pointer' }}>\n {title}\n </Link>\n );\n }\n\n return (\n <LineItemContainer className=\"stigg-checkout-summary-base-charges-container\">\n <LineItemRow style={{ alignItems: 'flex-start' }}>\n <Grid item display=\"flex\" gap={0.5} style={{ whiteSpace: isScreenWiderThanLg ? 'nowrap' : 'break-spaces' }}>\n {title}\n {nestedBreakdown && (\n <IconButton onClick={toggleNestedBreakdown} sx={{ padding: 0 }}>\n <CollapsableSectionIcon $isOpen={isNestedBreakdownOpen} $size={16} />\n </IconButton>\n )}\n </Grid>\n <Grid item display=\"flex\" gap={1} alignItems=\"center\">\n {isPayAsYouGo && <PayAsYouGoPriceTooltip checkoutLocalization={checkoutLocalization} />}\n <Typography\n variant=\"body1\"\n color=\"secondary\"\n style={{ whiteSpace: isScreenWiderThanLg ? 'nowrap' : 'break-spaces' }}>\n {getPriceBreakdownString({\n totalAmount,\n quantity,\n currency: price.currency,\n pricingModel: price.pricingModel,\n billingPeriod: price.billingPeriod,\n tiers: price.tiers,\n tiersMode: price.tiersMode,\n blockSize: price.blockSize,\n priceAmount: price.amount,\n })}\n {isPayAsYouGo && ' / unit'}\n </Typography>\n </Grid>\n </LineItemRow>\n {nestedBreakdown && (\n <Collapse in={isNestedBreakdownOpen}>\n <NestedBreakdownContainer>{nestedBreakdown}</NestedBreakdownContainer>\n </Collapse>\n )}\n </LineItemContainer>\n );\n};\n\nexport const FreeChargeLineItem = ({ label }: { label: string }) => {\n return (\n <LineItemContainer>\n <LineItemRow style={{ alignItems: 'flex-end' }}>\n <Grid item>\n <Typography variant=\"body1\" color=\"secondary\">\n {label}\n </Typography>\n </Grid>\n <Grid item display=\"flex\" gap={1} alignItems=\"center\">\n <Typography variant=\"body1\" color=\"secondary\" style={{ wordBreak: 'break-word' }}>\n Free\n </Typography>\n </Grid>\n </LineItemRow>\n </LineItemContainer>\n );\n};\n\nexport const DiscountLineItem = ({\n subscriptionPreview,\n isFetchingSubscriptionPreview,\n checkoutLocalization,\n}: {\n subscriptionPreview: SubscriptionPreviewV2;\n isFetchingSubscriptionPreview: boolean;\n checkoutLocalization: CheckoutLocalization;\n}) => {\n const { immediateInvoice, recurringInvoice } = subscriptionPreview;\n const { discount, discountDetails } = recurringInvoice || {};\n if (!discount || !discountDetails) {\n return null;\n }\n\n return (\n <LineItemContainer>\n <LineItemRow>\n <Typography variant=\"body1\" color=\"secondary\">\n {checkoutLocalization.summary.discountText({\n discountDetails,\n currency: immediateInvoice.total.currency,\n })}\n </Typography>\n <Typography variant=\"body1\" color=\"secondary\">\n {isFetchingSubscriptionPreview ? (\n <Skeleton width={50} height={16} />\n ) : (\n currencyPriceFormatter({\n amount: discount.amount,\n currency: discount.currency,\n minimumFractionDigits: 2,\n })\n )}\n </Typography>\n </LineItemRow>\n </LineItemContainer>\n );\n};\n\nexport const AppliedCreditsLineItem = ({\n subscriptionPreview,\n isFetchingSubscriptionPreview,\n checkoutLocalization,\n}: {\n subscriptionPreview: SubscriptionPreviewV2 | null;\n isFetchingSubscriptionPreview: boolean;\n checkoutLocalization: CheckoutLocalization;\n}) => {\n const { immediateInvoice } = subscriptionPreview || {};\n const { credits } = immediateInvoice || {};\n\n if (!credits || !credits.used || credits.used.amount <= 0) {\n return null;\n }\n\n return (\n <LineItemContainer>\n <LineItemRow>\n <Typography variant=\"body1\" color=\"secondary\">\n {checkoutLocalization.summary.appliedCreditsTitle}\n </Typography>\n <Typography variant=\"body1\" color=\"secondary\">\n <WithSkeleton isLoading={isFetchingSubscriptionPreview}>\n {currencyPriceFormatter({\n amount: -1 * credits.used.amount,\n currency: credits.used.currency,\n minimumFractionDigits: 2,\n })}\n </WithSkeleton>\n </Typography>\n </LineItemRow>\n </LineItemContainer>\n );\n};\n\nexport const TaxLineItem = ({\n tax,\n taxDetails,\n isFetchingSubscriptionPreview,\n checkoutLocalization,\n}: {\n isFetchingSubscriptionPreview: boolean;\n checkoutLocalization: CheckoutLocalization;\n} & Pick<SubscriptionPreviewInvoice, 'tax' | 'taxDetails'>) => {\n if (!taxDetails || !tax || tax?.amount <= 0) {\n return null;\n }\n\n return (\n <LineItemContainer>\n <LineItemRow>\n <Typography variant=\"body1\" color=\"secondary\">\n {checkoutLocalization.summary.taxTitle({ taxDetails })}\n </Typography>\n <Typography variant=\"body1\" color=\"secondary\">\n <WithSkeleton isLoading={isFetchingSubscriptionPreview}>\n {currencyPriceFormatter({ amount: tax?.amount, currency: tax?.currency, minimumFractionDigits: 2 })}\n </WithSkeleton>\n </Typography>\n </LineItemRow>\n </LineItemContainer>\n );\n};\n","import React, { useState } from 'react';\nimport partition from 'lodash/partition';\nimport styled from '@emotion/styled/macro';\nimport Box from '@mui/material/Box';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport Divider from '@mui/material/Divider';\nimport Grid from '@mui/material/Grid';\nimport Paper from '@mui/material/Paper';\nimport { BillingModel } from '@stigg/js-client-sdk';\nimport { PoweredByStigg } from '../../common/PoweredByStigg';\nimport { Typography } from '../../common/Typography';\nimport { useChargesSort } from '../../hooks/useChargeSort';\nimport { currencyPriceFormatter } from '../../utils/currencyUtils';\nimport { Button } from '../components';\nimport {\n useCheckoutModel,\n useProgressBarModel,\n usePreviewSubscription,\n useSubscriptionModel,\n usePaymentStepModel,\n} from '../hooks';\nimport { PromotionCodeSection } from '../promotionCode';\nimport { useSubmit } from '../steps/payment/stripe';\nimport { CheckoutContainerProps } from '../CheckoutContainer';\nimport { CheckoutCaptions } from './components/CheckoutCaptions';\nimport {\n AppliedCreditsLineItem,\n BilledPriceLineItem,\n DiscountLineItem,\n FreeChargeLineItem,\n LineItemContainer,\n LineItemRow,\n TaxLineItem,\n} from './components/LineItems';\nimport { WithSkeleton } from './components/WithSkeleton';\nimport { Icon } from '../../common/Icon';\nimport { CheckoutLocalization } from '../configurations/textOverrides';\nimport { CheckoutSuccess } from './CheckoutSuccess';\nimport { getFeatureDisplayNameText } from '../../utils/getFeatureName';\nimport { mq } from '../../common/mediaQuery';\n\nexport const SummaryContainer = styled(Box)`\n width: 100%;\n max-width: 470px;\n flex: 1.5;\n`;\n\nexport const SummaryCard = styled(Paper)`\n background: ${({ theme }) => theme.stigg.palette.backgroundHighlight};\n padding: 16px;\n\n ${mq.md} {\n border-radius: 10px;\n }\n`;\n\nSummaryCard.defaultProps = {\n elevation: 0,\n};\n\nconst SummaryTitle = styled(Typography)`\n margin-bottom: 16px;\n font-weight: 500;\n`;\n\nconst StyledDivider = styled(Divider)`\n margin: 16px 0;\n`;\n\nconst TotalDueText = styled(Typography)`\n margin-bottom: 8px;\n`;\n\nfunction resolveCheckoutButtonText({\n isLastStep,\n checkoutHasChanges,\n isFreeDowngrade,\n checkoutLocalization,\n isPlanUpdate,\n}: {\n isLastStep?: boolean;\n checkoutHasChanges: boolean;\n isFreeDowngrade: boolean;\n checkoutLocalization: CheckoutLocalization;\n isPlanUpdate?: boolean;\n}) {\n if (!isLastStep) {\n return checkoutLocalization.checkoutButton.nextText;\n }\n\n if (!checkoutHasChanges) {\n return checkoutLocalization.checkoutButton.noChangesText;\n }\n\n if (isPlanUpdate) {\n return checkoutLocalization.checkoutButton.updateText;\n }\n\n if (isFreeDowngrade) {\n return checkoutLocalization.checkoutButton.downgradeToFreeText;\n }\n\n return checkoutLocalization.checkoutButton.upgradeText;\n}\n\nexport const CheckoutSummary = ({\n onCheckout,\n onCheckoutCompleted,\n disablePromotionCode,\n disableSuccessAnimation,\n isFreeDowngrade,\n onMockCheckoutPreview,\n isWidgetWatermarkEnabled,\n}: CheckoutContainerProps & { isFreeDowngrade: boolean; isWidgetWatermarkEnabled: boolean }) => {\n const [isCheckoutCompletedSuccessfully, setIsCheckoutCompletedSuccessfully] = useState(false);\n const { setErrorMessage } = usePaymentStepModel();\n const progressBar = useProgressBarModel();\n const subscription = useSubscriptionModel();\n const { checkoutState, checkoutLocalization } = useCheckoutModel();\n const { plan, activeSubscription } = checkoutState || {};\n const planPrices = useChargesSort(\n plan?.pricePoints?.filter((price) => price.billingPeriod === subscription.billingPeriod) || [],\n );\n const [baseCharges, usageCharges] = partition(planPrices, (price) => price.pricingModel === BillingModel.FlatFee);\n const [baseCharge] = baseCharges || [];\n const isLastStep = isFreeDowngrade || (progressBar.isCheckoutComplete && progressBar.isLastStep);\n\n const { subscriptionPreview, isFetchingSubscriptionPreview } = usePreviewSubscription({ onMockCheckoutPreview });\n\n const { handleSubmit, isLoading } = useSubmit({\n isMocked: !!onMockCheckoutPreview, // This is a hack to make the submit button work with mocked data\n disableSuccessAnimation,\n onCheckout,\n onCheckoutCompleted,\n onSuccess: () => {\n setIsCheckoutCompletedSuccessfully(true);\n progressBar.markStepAsCompleted(progressBar.progressBarState.activeStep);\n },\n });\n\n const handleCheckout = async (e: any) => {\n if (isCheckoutCompletedSuccessfully) {\n return;\n }\n\n const { errorMessage } = (await handleSubmit(e)) || {};\n if (errorMessage) {\n setErrorMessage(errorMessage);\n setIsCheckoutCompletedSuccessfully(false);\n } else {\n setErrorMessage(undefined);\n }\n };\n\n const onCheckoutClick = async (e: any): Promise<void> => {\n if (isLoading) {\n return;\n }\n\n if (isLastStep) {\n await handleCheckout(e);\n } else {\n progressBar.goNext();\n }\n };\n\n const { immediateInvoice, recurringInvoice } = subscriptionPreview || {};\n const checkoutHasChanges =\n !!subscriptionPreview && (!!immediateInvoice?.proration || !!subscriptionPreview.hasScheduledUpdates);\n const showPromotionCodeLine = !disablePromotionCode && !isFreeDowngrade;\n const showDiscountLine = !!recurringInvoice?.discountDetails && !isFreeDowngrade;\n const hasDiscounts = showPromotionCodeLine || showDiscountLine;\n\n const hasPayAsYouGoCharges = usageCharges.some((price) => price.pricingModel === BillingModel.UsageBased);\n const onlyPayAsYouGoCharges =\n hasPayAsYouGoCharges &&\n !baseCharge &&\n usageCharges.every((price) => price.pricingModel === BillingModel.UsageBased);\n\n const baseChargeLabel =\n typeof checkoutLocalization.summary.baseChargeText === 'function'\n ? checkoutLocalization.summary.baseChargeText({ billingPeriod: subscription.billingPeriod })\n : checkoutLocalization.summary.baseChargeText;\n\n return (\n <SummaryContainer>\n <SummaryCard>\n <SummaryTitle variant=\"h3\">{checkoutLocalization.summary.title}</SummaryTitle>\n\n <Grid\n className=\"stigg-checkout-summary-plan-title-container\"\n display=\"flex\"\n flexDirection=\"row\"\n alignItems=\"center\"\n marginY={2}>\n <Typography variant=\"h6\" color=\"primary\" style={{ paddingRight: '8px' }}>\n {checkoutLocalization.summary.planName({ plan: plan! })}\n </Typography>\n <StyledDivider className=\"stigg-checkout-summary-divider\" sx={{ flex: 1, margin: '0 !important' }} />\n </Grid>\n\n {baseCharge && (\n <BilledPriceLineItem\n checkoutLocalization={checkoutLocalization}\n label={baseChargeLabel}\n quantity={1}\n price={baseCharge}\n />\n )}\n {!baseCharge && isFreeDowngrade ? <FreeChargeLineItem label={baseChargeLabel} /> : null}\n\n <Grid item className=\"stigg-checkout-summary-usage-charges-container\">\n {usageCharges.map((price) => {\n const priceBillableFeature = subscription.billableFeatures?.find(\n (billableFeature) => billableFeature.featureId === price.feature?.featureId,\n );\n\n return (\n <BilledPriceLineItem\n checkoutLocalization={checkoutLocalization}\n key={price.feature?.featureId}\n label={getFeatureDisplayNameText(\n price.feature?.displayName || '',\n price.feature?.units,\n price.feature?.unitsPlural,\n )}\n quantity={priceBillableFeature?.quantity || 1}\n price={price}\n />\n );\n })}\n </Grid>\n\n {!!subscription.addons?.length && (\n <>\n <Grid display=\"flex\" flexDirection=\"row\" alignItems=\"center\" marginY={2}>\n <Typography variant=\"h6\" color=\"primary\" style={{ paddingRight: '8px' }}>\n {checkoutLocalization.summary.addonsSectionTitle}\n </Typography>\n <StyledDivider className=\"stigg-checkout-summary-divider\" sx={{ flex: 1, margin: '0 !important' }} />\n </Grid>\n {subscription.addons.map((addon) => {\n const addonPrice = addon.addon.pricePoints?.find(\n (price) => price.billingPeriod === subscription.billingPeriod,\n );\n\n if (!addonPrice) return null;\n\n const addonQuantity = addon.quantity && addon.quantity > 0 ? addon.quantity : 1;\n\n return (\n <BilledPriceLineItem\n checkoutLocalization={checkoutLocalization}\n key={addon?.addon?.id}\n label={addon.addon.displayName}\n quantity={addonQuantity}\n price={addonPrice}\n />\n );\n })}\n </>\n )}\n\n {!hasDiscounts && <StyledDivider className=\"stigg-checkout-summary-divider\" />}\n {hasDiscounts && (\n <Grid display=\"flex\" flexDirection=\"row\" alignItems=\"center\" marginY={2}>\n <Typography variant=\"h6\" color=\"primary\" style={{ paddingRight: '8px' }}>\n {checkoutLocalization.summary.discountsSectionTitle}\n </Typography>\n <StyledDivider className=\"stigg-checkout-summary-divider\" sx={{ flex: 1, margin: '0 !important' }} />\n </Grid>\n )}\n\n {showPromotionCodeLine && (\n <PromotionCodeSection\n disabled={isLoading || isFetchingSubscriptionPreview}\n checkoutLocalization={checkoutLocalization}\n onMockCheckoutPreview={onMockCheckoutPreview}\n />\n )}\n\n {showDiscountLine && (\n <DiscountLineItem\n subscriptionPreview={subscriptionPreview!}\n isFetchingSubscriptionPreview={isFetchingSubscriptionPreview}\n checkoutLocalization={checkoutLocalization}\n />\n )}\n\n {hasDiscounts && <StyledDivider className=\"stigg-checkout-summary-divider\" />}\n\n <TaxLineItem\n tax={recurringInvoice?.tax}\n taxDetails={recurringInvoice?.taxDetails}\n isFetchingSubscriptionPreview={isFetchingSubscriptionPreview}\n checkoutLocalization={checkoutLocalization}\n />\n\n {!isFreeDowngrade ? (\n <>\n <LineItemRow style={{ marginTop: 16 }}>\n <Grid display=\"flex\" flexDirection=\"column\" container>\n <Grid item display=\"flex\" justifyContent=\"space-between\">\n <Typography variant=\"h6\">{checkoutLocalization.summary.totalText}</Typography>\n <Typography variant=\"h6\">\n <WithSkeleton isLoading={isFetchingSubscriptionPreview}>\n {onlyPayAsYouGoCharges ? checkoutLocalization.summary.onlyPayAsYouGoText : null}\n {!onlyPayAsYouGoCharges && hasPayAsYouGoCharges\n ? checkoutLocalization.summary.startsAtText\n : null}\n {!onlyPayAsYouGoCharges\n ? currencyPriceFormatter({\n amount: 0,\n ...recurringInvoice?.total,\n minimumFractionDigits: 2,\n })\n : null}\n </WithSkeleton>\n </Typography>\n </Grid>\n <Grid item>\n <Typography variant=\"body1\" color=\"secondary\">\n {checkoutLocalization.summary.totalBillingPeriodText({ billingPeriod: subscription.billingPeriod })}\n </Typography>\n </Grid>\n </Grid>\n </LineItemRow>\n <StyledDivider className=\"stigg-checkout-summary-divider\" />\n </>\n ) : null}\n\n {immediateInvoice?.proration?.hasProrations &&\n immediateInvoice?.subTotal &&\n immediateInvoice?.subTotal.amount > 0 ? (\n <LineItemContainer>\n <LineItemRow>\n <Typography variant=\"body1\" color=\"secondary\">\n {checkoutLocalization.summary.proratedTotalDueText}\n </Typography>\n <Typography variant=\"body1\" color=\"secondary\">\n <WithSkeleton isLoading={isFetchingSubscriptionPreview}>\n {currencyPriceFormatter({\n amount: immediateInvoice?.subTotal?.amount + (immediateInvoice?.tax?.amount || 0),\n currency: immediateInvoice?.subTotal.currency,\n minimumFractionDigits: 2,\n })}\n </WithSkeleton>\n </Typography>\n </LineItemRow>\n </LineItemContainer>\n ) : null}\n\n <AppliedCreditsLineItem\n subscriptionPreview={subscriptionPreview}\n isFetchingSubscriptionPreview={isFetchingSubscriptionPreview}\n checkoutLocalization={checkoutLocalization}\n />\n\n <LineItemContainer>\n <LineItemRow>\n <TotalDueText variant=\"h6\">{checkoutLocalization.summary.totalDueText}</TotalDueText>\n <TotalDueText variant=\"h6\">\n <WithSkeleton isLoading={isFetchingSubscriptionPreview}>\n {currencyPriceFormatter({ amount: 0, ...immediateInvoice?.total, minimumFractionDigits: 2 })}\n </WithSkeleton>\n </TotalDueText>\n </LineItemRow>\n </LineItemContainer>\n\n <CheckoutCaptions\n plan={plan}\n activeSubscription={activeSubscription}\n subscriptionPreview={subscriptionPreview}\n isFetchingSubscriptionPreview={isFetchingSubscriptionPreview}\n checkoutLocalization={checkoutLocalization}\n billingPeriod={subscription.billingPeriod}\n />\n\n <Button\n $success={isCheckoutCompletedSuccessfully}\n $error={isLastStep && isFreeDowngrade}\n disabled={\n isLoading ||\n isFetchingSubscriptionPreview ||\n progressBar.progressBarState.isDisabled ||\n (isLastStep && !checkoutHasChanges)\n }\n className=\"stigg-checkout-summary-cta-button\"\n sx={{ textTransform: 'none', borderRadius: '10px', marginTop: '24px', height: '36px' }}\n variant=\"contained\"\n size=\"medium\"\n onClick={(e: any) => {\n void onCheckoutClick(e);\n }}\n fullWidth>\n <Typography\n className=\"stigg-checkout-summary-cta-button-text\"\n variant=\"h3\"\n color=\"white\"\n style={{ display: 'flex' }}>\n {isCheckoutCompletedSuccessfully ? (\n <Icon icon=\"Check\" style={{ display: 'contents' }} />\n ) : isLoading || isFetchingSubscriptionPreview ? (\n <CircularProgress size={20} sx={{ color: 'white' }} />\n ) : (\n resolveCheckoutButtonText({\n isLastStep,\n checkoutHasChanges,\n isFreeDowngrade,\n checkoutLocalization,\n isPlanUpdate: !!activeSubscription && activeSubscription?.plan.id === plan?.id,\n })\n )}\n </Typography>\n </Button>\n </SummaryCard>\n <PoweredByStigg\n source=\"checkout\"\n showWatermark={isWidgetWatermarkEnabled}\n style={{ marginTop: 8, display: 'flex', justifyContent: 'center' }}\n />\n {!disableSuccessAnimation && isCheckoutCompletedSuccessfully && (\n <CheckoutSuccess checkoutLocalization={checkoutLocalization} />\n )}\n </SummaryContainer>\n );\n};\n","import React from 'react';\nimport { PoweredByStigg } from '../../common/PoweredByStigg';\nimport { SummaryCard, SummaryContainer } from './CheckoutSummary';\nimport { FlexedSkeleton, Skeleton, SkeletonsContainer } from '../components/Skeletons.style';\n\nexport const CheckoutSummarySkeleton = ({ isWidgetWatermarkEnabled }: { isWidgetWatermarkEnabled: boolean }) => {\n return (\n <SummaryContainer>\n <SummaryCard>\n <SkeletonsContainer $flexDirection=\"column\" $gap={24}>\n <Skeleton width={120} height={20} />\n\n <Skeleton width={120} height={20} />\n\n <Skeleton width={120} height={20} />\n\n <Skeleton width={120} height={20} />\n </SkeletonsContainer>\n\n <SkeletonsContainer $flexDirection=\"column\" $gap={24} marginTop={5}>\n <Skeleton height={20} />\n\n <Skeleton height={20} />\n\n <Skeleton height={20} />\n </SkeletonsContainer>\n\n <FlexedSkeleton flex={1} marginTop={5}>\n <Skeleton height={34} />\n </FlexedSkeleton>\n </SummaryCard>\n <PoweredByStigg\n source=\"checkout\"\n showWatermark={isWidgetWatermarkEnabled}\n style={{ marginTop: 8, display: 'flex', justifyContent: 'center' }}\n />\n </SummaryContainer>\n );\n};\n","import styled from '@emotion/styled/macro';\nimport Grid from '@mui/material/Grid';\n\nimport { Button } from '../../components';\nimport { mq } from '../../../common/mediaQuery';\n\nexport const CheckoutAddonsContainer = styled(Grid)`\n width: 100%;\n gap: 8px;\n`;\n\nexport const AddonListItemContainer = styled(Grid)`\n display: flex;\n flex-direction: column;\n gap: 16px;\n\n ${mq.md} {\n gap: 0;\n flex-direction: row;\n justify-content: space-between;\n height: 80px;\n align-items: center;\n }\n`;\n\nexport const TrashButton = styled(Button)`\n min-width: unset;\n width: 41px;\n height: 41px;\n padding: 0;\n`;\n","import React, { useEffect, useState } from 'react';\n\nimport Grid from '@mui/material/Grid';\nimport { Addon, BillingPeriod, SubscriptionAddon } from '@stigg/js-client-sdk';\n\nimport { Icon } from '../../../common/Icon';\nimport { Typography } from '../../../common/Typography';\nimport { currencyPriceFormatter } from '../../../utils/currencyUtils';\nimport { Button, InputField } from '../../components';\nimport { useAddonsStepModel } from '../../hooks/useAddonsStepModel';\nimport { usePlanStepModel } from '../../hooks/usePlanStepModel';\nimport { AddonListItemContainer, CheckoutAddonsContainer, TrashButton } from './CheckoutAddonsStep.style';\nimport { CheckoutLocalization } from '../../configurations/textOverrides';\nimport { useCheckoutModel, useProgressBarModel } from '../../hooks';\nimport { ON_WHEEL_BLUR } from '../../../utils/onWheelBlur';\nimport { useIsScreenWiderThan } from '../../../hooks/useIsScreenWiderThan';\n\ntype UseAddonsStepModel = ReturnType<typeof useAddonsStepModel>;\n\ntype AddonListItemProps = {\n addon: Addon;\n addonState?: SubscriptionAddon;\n initialAddonState?: SubscriptionAddon;\n billingPeriod: BillingPeriod;\n setAddon: UseAddonsStepModel['setAddon'];\n removeAddon: UseAddonsStepModel['removeAddon'];\n checkoutLocalization: CheckoutLocalization;\n onAddonsValidationChange: (params: { addonId: string; isValid: boolean }) => void;\n isValid: boolean;\n};\n\nfunction AddonListItem({\n addon,\n billingPeriod,\n addonState,\n initialAddonState,\n setAddon,\n removeAddon,\n checkoutLocalization,\n onAddonsValidationChange,\n isValid,\n}: AddonListItemProps) {\n const isScreenWiderThanLg = useIsScreenWiderThan('lg');\n const addonPrice = addon.pricePoints.find((pricePoint) => pricePoint.billingPeriod === billingPeriod);\n const isAdded = !!addonState;\n const hasChanges =\n (!!addonState && !!initialAddonState && addonState.quantity !== initialAddonState.quantity) ||\n (!!initialAddonState && !addonState);\n\n const handleQuantityChange = (quantity: number | null) => {\n if (!quantity || quantity <= 0) {\n onAddonsValidationChange({ addonId: addon.id, isValid: false });\n // Reset the input value to null\n // @ts-ignore\n setAddon(addon, quantity ?? null);\n return;\n }\n\n onAddonsValidationChange({ addonId: addon.id, isValid: true });\n setAddon(addon, quantity);\n };\n\n const handleUndo = () => {\n if (initialAddonState) {\n setAddon(addon, initialAddonState.quantity);\n } else {\n removeAddon(addon.id);\n }\n\n onAddonsValidationChange({ addonId: addon.id, isValid: true });\n };\n\n return (\n <AddonListItemContainer container>\n <Grid item>\n <Typography variant=\"h6\" lineHeight=\"24px\">\n {addon.displayName}\n </Typography>\n {!!addonPrice && (\n <Typography variant=\"body1\" lineHeight=\"20px\" color=\"secondary\">\n {`${currencyPriceFormatter({\n amount: addonPrice.amount!,\n currency: addonPrice.currency,\n minimumFractionDigits: 2,\n })}/${billingPeriod === BillingPeriod.Annually ? 'year' : 'month'}`}\n </Typography>\n )}\n </Grid>\n <Grid item sx={{ gap: '16px' }} container={!isScreenWiderThanLg}>\n {hasChanges && (\n <Button variant=\"text\" size=\"small\" sx={{ padding: '8px', minWidth: 'unset' }} onClick={handleUndo}>\n <Typography color=\"primary.main\" variant=\"body1\">\n Undo\n </Typography>\n </Button>\n )}\n {isAdded && (\n <>\n <InputField\n id={`${addon.id}-input`}\n type=\"number\"\n onWheel={ON_WHEEL_BLUR}\n sx={isScreenWiderThanLg ? { marginX: 2, width: 120 } : { flex: 1 }}\n value={addonState?.quantity ?? ''}\n error={!isValid}\n helperText={!isValid ? 'Minimum 1' : undefined}\n FormHelperTextProps={{ sx: { margin: '4px' } }}\n onChange={(event) => handleQuantityChange(event?.target?.value ? Number(event?.target?.value) : null)}\n />\n <TrashButton\n color=\"error\"\n onClick={() => {\n removeAddon(addon.id);\n onAddonsValidationChange({ addonId: addon.id, isValid: true });\n }}>\n <Icon icon=\"Trash\" style={{ display: 'flex' }} />\n </TrashButton>\n </>\n )}\n {!isAdded && (\n <Button sx={{ paddingX: '22px', paddingY: '8px' }} onClick={() => handleQuantityChange(1)}>\n <Typography color=\"primary.main\" variant=\"body1\">\n {checkoutLocalization.addAddonText}\n </Typography>\n </Button>\n )}\n </Grid>\n </AddonListItemContainer>\n );\n}\n\nexport function CheckoutAddonsStep() {\n const { checkoutLocalization, setIsValid } = useCheckoutModel();\n const { billingPeriod } = usePlanStepModel();\n const { setIsDisabled } = useProgressBarModel();\n const { initialAddons, addons, availableAddons, setAddon, removeAddon } = useAddonsStepModel();\n const [addonsValidation, setAddonsValidation] = useState(\n availableAddons?.reduce<Record<string, boolean>>((acc, curr) => {\n acc[curr.id] = true;\n return acc;\n }, {}) || {},\n );\n\n useEffect(() => {\n const isDisabled = Object.values(addonsValidation).some((x) => !x);\n setIsDisabled(isDisabled);\n setIsValid(!isDisabled);\n }, [addonsValidation, setIsDisabled, setIsValid]);\n\n return (\n <CheckoutAddonsContainer container>\n {availableAddons?.map((addon) => {\n const addonState = addons.find((x) => x.addon.id === addon.id);\n const initialAddonState = initialAddons?.find((x) => x.addon.id === addon.id);\n const isValid = addonsValidation[addon.id];\n\n return (\n <AddonListItem\n key={addon.id}\n addon={addon}\n billingPeriod={billingPeriod}\n addonState={addonState}\n initialAddonState={initialAddonState}\n setAddon={setAddon}\n removeAddon={removeAddon}\n checkoutLocalization={checkoutLocalization}\n onAddonsValidationChange={({ addonId, isValid }: { addonId: string; isValid: boolean }) =>\n setAddonsValidation({ ...addonsValidation, [addonId]: isValid })\n }\n isValid={isValid}\n />\n );\n })}\n </CheckoutAddonsContainer>\n );\n}\n","import { css } from '@emotion/react';\nimport styled from '@emotion/styled';\nimport Grid from '@mui/material/Grid';\n\nexport const PaymentMethodContainer = styled(Grid, { shouldForwardProp: (prop) => !prop.startsWith('$') })<{\n $disabled?: boolean;\n}>`\n padding: 8px;\n border-radius: 10px;\n border: 1px solid ${({ theme }) => theme.stigg.palette.outlinedBorder};\n cursor: ${({ $disabled }) => ($disabled ? 'not-allowed' : 'pointer')};\n opacity: ${({ $disabled }) => ($disabled ? 0.6 : 1)};\n`;\n\nexport const NewPaymentMethodContainer = styled(PaymentMethodContainer)<{ $hideBorders?: boolean }>`\n flex-direction: column;\n align-items: unset;\n ${({ $hideBorders }) =>\n $hideBorders &&\n css`\n border: none;\n padding: 0;\n `}\n`;\n\nexport const PaymentMethodLayoutContainer = styled(Grid)`\n display: flex;\n align-items: center;\n flex: 1;\n gap: 12px;\n`;\n\nexport const PaymentMethodTextContainer = styled(Grid)`\n display: flex;\n flex-direction: column;\n`;\n","import React from 'react';\n\nimport Collapse from '@mui/material/Collapse';\nimport Grid from '@mui/material/Grid';\nimport Radio from '@mui/material/Radio';\nimport { Customer } from '@stigg/js-client-sdk';\n\nimport { Typography } from '../../../common/Typography';\nimport {\n NewPaymentMethodContainer,\n PaymentMethodContainer,\n PaymentMethodLayoutContainer,\n PaymentMethodTextContainer,\n} from './PaymentMethods.style';\nimport { StripePaymentForm } from './stripe';\nimport { CheckoutLocalization } from '../../configurations/textOverrides';\nimport { CheckoutContainerProps } from '../../CheckoutContainer';\n\nexport type PaymentMethodLayoutProps = {\n checked: boolean;\n text: React.ReactNode;\n subtitle?: React.ReactNode;\n readOnly?: boolean;\n};\n\nexport type PaymentMethodProps = Pick<Customer, 'paymentMethodDetails'> &\n Pick<PaymentMethodLayoutProps, 'checked' | 'readOnly'> & { onSelect: () => void };\n\nexport type NewPaymentMethodProps = Pick<PaymentMethodLayoutProps, 'checked' | 'readOnly'> & {\n onSelect: () => void;\n checkoutLocalization: CheckoutLocalization;\n hasExistingPaymentMethod: boolean;\n} & Pick<CheckoutContainerProps, 'onBillingAddressChange' | 'collectPhoneNumber'>;\n\nfunction PaymentMethodLayout({ checked, text, subtitle, readOnly }: PaymentMethodLayoutProps) {\n return (\n <PaymentMethodLayoutContainer>\n <Radio checked={checked} disabled={readOnly} />\n <PaymentMethodTextContainer container>\n <Grid item>{text}</Grid>\n {subtitle && <Grid item>{subtitle}</Grid>}\n </PaymentMethodTextContainer>\n </PaymentMethodLayoutContainer>\n );\n}\n\nexport function ExistingPaymentMethod({ checked, paymentMethodDetails, readOnly, onSelect }: PaymentMethodProps) {\n if (!paymentMethodDetails) {\n return null;\n }\n const { last4Digits, expirationMonth, expirationYear } = paymentMethodDetails;\n\n return (\n <PaymentMethodContainer item onClick={onSelect} $disabled={readOnly}>\n <PaymentMethodLayout\n checked={checked}\n readOnly={readOnly}\n text={<Typography variant=\"h6\">{`Card ending in ${last4Digits}`}</Typography>}\n subtitle={\n !!expirationMonth &&\n !!expirationYear && (\n <Typography variant=\"body1\">{`Expires ${expirationMonth\n .toString()\n .padStart(2, '0')}/${expirationYear}`}</Typography>\n )\n }\n />\n </PaymentMethodContainer>\n );\n}\n\nexport function NewPaymentMethod({\n hasExistingPaymentMethod,\n checked,\n onSelect,\n readOnly,\n checkoutLocalization,\n onBillingAddressChange,\n collectPhoneNumber,\n}: NewPaymentMethodProps) {\n return (\n <NewPaymentMethodContainer item $hideBorders={!hasExistingPaymentMethod} onClick={onSelect} $disabled={readOnly}>\n {hasExistingPaymentMethod && (\n <PaymentMethodLayout\n checked={checked}\n readOnly={readOnly}\n text={<Typography variant=\"h6\">{checkoutLocalization.newPaymentMethodText}</Typography>}\n />\n )}\n <Collapse in={checked}>\n <StripePaymentForm onBillingAddressChange={onBillingAddressChange} collectPhoneNumber={collectPhoneNumber} />\n </Collapse>\n </NewPaymentMethodContainer>\n );\n}\n","import React from 'react';\nimport styled from '@emotion/styled';\nimport Alert from '@mui/material/Alert';\nimport Grid from '@mui/material/Grid';\nimport { useCheckoutModel, usePaymentStepModel } from '../../hooks';\nimport { ExistingPaymentMethod, NewPaymentMethod } from './PaymentMethods';\nimport { Typography } from '../../../common/Typography';\nimport { CheckoutContainerProps } from '../../CheckoutContainer';\n\nconst PaymentContainer = styled(Grid)`\n display: flex;\n flex-direction: column;\n gap: 24px;\n`;\n\nexport function PaymentStep({\n onBillingAddressChange,\n collectPhoneNumber,\n}: Pick<CheckoutContainerProps, 'onBillingAddressChange' | 'collectPhoneNumber'>) {\n const { checkoutState, checkoutLocalization, widgetState } = useCheckoutModel();\n const { customer } = checkoutState || {};\n const { errorMessage, useNewPaymentMethod, setUseNewPaymentMethod } = usePaymentStepModel();\n const { readOnly } = widgetState;\n\n const handleOnSelect = (openNewPaymentMethod: boolean) => {\n if (readOnly) {\n return;\n }\n\n setUseNewPaymentMethod(openNewPaymentMethod);\n };\n\n return (\n <PaymentContainer container>\n {!!errorMessage && (\n <Alert severity=\"error\" sx={{ alignItems: 'center' }}>\n <Typography overrideColor=\"inherit\">{errorMessage}</Typography>\n </Alert>\n )}\n <ExistingPaymentMethod\n readOnly={readOnly}\n checked={!useNewPaymentMethod}\n paymentMethodDetails={customer?.paymentMethodDetails}\n onSelect={() => handleOnSelect(false)}\n />\n <NewPaymentMethod\n hasExistingPaymentMethod={!!customer?.paymentMethodDetails}\n readOnly={readOnly}\n checked={useNewPaymentMethod}\n checkoutLocalization={checkoutLocalization}\n onSelect={() => handleOnSelect(true)}\n onBillingAddressChange={onBillingAddressChange}\n collectPhoneNumber={collectPhoneNumber}\n />\n </PaymentContainer>\n );\n}\n","import React from 'react';\nimport Button, { ButtonProps } from '@mui/material/Button';\nimport { Typography } from '../../common/Typography';\nimport { CheckoutLocalization } from '../configurations/textOverrides';\n\nexport const ChangePlanButton = ({\n onClick,\n checkoutLocalization,\n size,\n}: {\n onClick: () => void;\n checkoutLocalization: CheckoutLocalization;\n size: ButtonProps['size'];\n}) => {\n return (\n <Button\n className=\"stigg-checkout-change-plan-button\"\n sx={{ textTransform: 'none' }}\n variant=\"text\"\n size={size}\n onClick={onClick}>\n <Typography\n className=\"stigg-checkout-change-plan-button-text\"\n color=\"primary.main\"\n variant=\"h3\"\n style={{ lineHeight: '24px' }}>\n {checkoutLocalization.changePlan}\n </Typography>\n </Button>\n );\n};\n","import React from 'react';\n\nimport Box from '@mui/material/Box';\nimport Divider from '@mui/material/Divider';\n\nimport { Typography } from '../../common/Typography';\nimport { useCheckoutModel } from '../hooks/useCheckoutModel';\nimport { CheckoutContainerProps } from '../CheckoutContainer';\nimport { ChangePlanButton } from '../components/ChangePlanButton';\n\ntype PlanHeaderProps = {\n allowChangePlan?: boolean;\n} & Pick<CheckoutContainerProps, 'onChangePlan'>;\n\nexport function PlanHeader({ allowChangePlan = false, onChangePlan }: PlanHeaderProps) {\n const { checkoutState, checkoutLocalization } = useCheckoutModel();\n const { plan } = checkoutState || {};\n\n return (\n <>\n <Box sx={{ marginBottom: '16px' }}>\n <Typography variant=\"body1\" color=\"disabled\" style={{ opacity: 0.6, marginBottom: '8px' }}>\n Selected plan\n </Typography>\n\n <Box sx={{ display: 'flex', justifyContent: 'space-between' }}>\n <Typography variant=\"h1\">{plan?.displayName}</Typography>\n\n {allowChangePlan && onChangePlan && (\n <ChangePlanButton\n onClick={() => {\n onChangePlan({ currentPlan: plan });\n }}\n checkoutLocalization={checkoutLocalization}\n size=\"medium\"\n />\n )}\n </Box>\n </Box>\n <Divider className=\"stigg-checkout-plan-header-divider\" />\n </>\n );\n}\n","import { BillingPeriod } from '@stigg/js-client-sdk';\n\nexport function formatBillingPeriod(billingPeriod: BillingPeriod) {\n switch (billingPeriod) {\n case BillingPeriod.Annually:\n return 'Annual';\n case BillingPeriod.Monthly:\n return 'Monthly';\n default:\n return '';\n }\n}\n","import styled from '@emotion/styled/macro';\nimport Box from '@mui/material/Box';\nimport Chip from '@mui/material/Chip';\nimport Color from 'color';\n\nexport const BillingPeriodPickerContainer = styled(Box)`\n margin: 16px 0;\n`;\n\nexport const BillingPeriodButton = styled.button<{\n $isActive?: boolean;\n $disabled?: boolean;\n $isOnlyBillingPeriod?: boolean;\n}>`\n cursor: ${({ $disabled, $isOnlyBillingPeriod }) =>\n $disabled ? 'default' : $isOnlyBillingPeriod ? 'default' : 'pointer'};\n flex: 1;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n padding: 2px 8px;\n border-radius: 10px;\n border: ${({ theme, $isActive, $isOnlyBillingPeriod }) => {\n let borderColor = theme.stigg.palette.outlinedBorder;\n if ($isOnlyBillingPeriod) {\n borderColor = 'transparent';\n } else if ($isActive) {\n borderColor = theme.stigg.palette.outlinedRestingBorder;\n }\n return `1px solid ${borderColor}`;\n }};\n background: ${({ theme, $isActive, $isOnlyBillingPeriod }) => {\n if ($isOnlyBillingPeriod) {\n return 'transparent';\n }\n if ($isActive) {\n return Color(theme.stigg.palette.primary).alpha(0.15).toString();\n }\n return 'transparent';\n }};\n text-transform: none;\n text-align: start;\n height: 36px;\n\n &.MuiButton-root {\n padding: 0 16px 0 8px;\n &:hover {\n background: none;\n }\n }\n`;\n\nexport const BillingPeriodOptions = styled(Box)`\n display: flex;\n gap: 16px;\n margin-top: 16px;\n`;\n\nexport const BillingPeriodPrice = styled.div`\n display: flex;\n align-items: baseline;\n gap: 8px;\n`;\n\nexport const DiscountChip = styled(Chip)`\n & .MuiChip-label {\n font-size: 12px;\n }\n`;\n","import { partition } from 'lodash';\nimport React from 'react';\nimport { FontWeight } from 'styled-typography';\n\nimport Box from '@mui/material/Box';\nimport Radio from '@mui/material/Radio';\nimport { BillingPeriod, Plan } from '@stigg/js-client-sdk';\n\nimport { Typography } from '../../../common/Typography';\nimport { formatBillingPeriod } from '../../formatting';\nimport { usePlanStepModel } from '../../hooks/usePlanStepModel';\nimport { BillingPeriodButton, BillingPeriodOptions, BillingPeriodPickerContainer } from './BillingPeriodPicker.style';\nimport { CheckoutLocalization } from '../../configurations/textOverrides';\n\nconst BillingPeriodOption = ({\n billingPeriod,\n isOnlyBillingPeriod,\n}: {\n billingPeriod: BillingPeriod;\n isOnlyBillingPeriod: boolean;\n}) => {\n const { billingPeriod: selectedBillingPeriod, setBillingPeriod } = usePlanStepModel();\n const isActive = selectedBillingPeriod === billingPeriod;\n\n return (\n <BillingPeriodButton\n onClick={() => setBillingPeriod(billingPeriod)}\n $isActive={isActive}\n $isOnlyBillingPeriod={isOnlyBillingPeriod}>\n <Radio\n checked={isActive}\n onChange={() => setBillingPeriod(billingPeriod)}\n value={billingPeriod}\n disabled={isOnlyBillingPeriod}\n inputProps={{ 'aria-label': formatBillingPeriod(billingPeriod) }}\n sx={{ padding: 0, marginRight: '8px' }}\n />\n\n <Box>\n <Typography variant=\"h3\" color=\"primary\">\n {formatBillingPeriod(billingPeriod)}\n </Typography>\n </Box>\n </BillingPeriodButton>\n );\n};\n\ntype BillingPeriodPickerProps = {\n plan?: Plan;\n checkoutLocalization: CheckoutLocalization;\n};\n\nexport function BillingPeriodPicker({ plan, checkoutLocalization }: BillingPeriodPickerProps) {\n const [monthlyPrices, annualPrices] = partition(\n plan?.pricePoints,\n (price) => price.billingPeriod === BillingPeriod.Monthly,\n );\n\n const hasBothBillingPeriods = !!monthlyPrices?.length && !!annualPrices?.length;\n if (!hasBothBillingPeriods) {\n return null;\n }\n\n return (\n <BillingPeriodPickerContainer>\n <Typography variant=\"h6\" color=\"primary\" fontWeight={FontWeight.Medium}>\n {checkoutLocalization.billingPeriodsTitle}\n </Typography>\n\n <BillingPeriodOptions>\n {!!monthlyPrices?.length && (\n <BillingPeriodOption\n key={BillingPeriod.Monthly}\n billingPeriod={BillingPeriod.Monthly}\n isOnlyBillingPeriod={!hasBothBillingPeriods}\n />\n )}\n {!!annualPrices?.length && (\n <BillingPeriodOption\n key={BillingPeriod.Annually}\n billingPeriod={BillingPeriod.Annually}\n isOnlyBillingPeriod={!hasBothBillingPeriods}\n />\n )}\n </BillingPeriodOptions>\n </BillingPeriodPickerContainer>\n );\n}\n","import React, { useEffect, useState } from 'react';\n\nimport styled from '@emotion/styled';\nimport Box from '@mui/material/Box';\nimport { BillableFeatureInput } from '@stigg/api-client-js/src/generated/sdk';\nimport { BillingModel, BillingPeriod, Plan, Price } from '@stigg/js-client-sdk';\n\nimport { Typography } from '../../../common/Typography';\nimport { useChargesSort } from '../../../hooks/useChargeSort';\nimport { calculateUnitQuantityText } from '../../../paywall/utils/calculateUnitQuantityText';\nimport { currencyPriceFormatter } from '../../../utils/currencyUtils';\nimport { InputField } from '../../components';\nimport { useCheckoutModel, usePlanStepModel, useProgressBarModel } from '../../hooks';\nimport { TiersSelectContainer } from '../../../common/TiersSelectContainer';\nimport { getValidPriceQuantity } from '../../../utils/priceUtils';\nimport { getFeatureDisplayNameText } from '../../../utils/getFeatureName';\nimport { ON_WHEEL_BLUR } from '../../../utils/onWheelBlur';\nimport { mq } from '../../../common/mediaQuery';\nimport { useIsScreenWiderThan } from '../../../hooks/useIsScreenWiderThan';\n\nexport type UsePlanStepModel = ReturnType<typeof usePlanStepModel>;\n\ntype CheckoutChargeListProps = {\n plan?: Plan;\n billingPeriod: BillingPeriod;\n};\n\nconst StyledPlanCharge = styled.div`\n display: flex;\n min-height: 60px;\n margin-top: 16px;\n flex-direction: column;\n\n ${mq.md} {\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n }\n`;\n\nconst getValidationText = (charge: Price, quantity?: number) => {\n const { minUnitQuantity, maxUnitQuantity } = charge;\n if (!quantity || quantity < (minUnitQuantity || 1)) {\n return `Minimum ${minUnitQuantity || 1}`;\n }\n\n if (maxUnitQuantity && quantity > maxUnitQuantity) {\n return `Maximum ${maxUnitQuantity}`;\n }\n\n return '';\n};\n\nexport function PlanCharge({\n charge,\n isValid,\n setBillableFeature,\n billableFeature,\n onValidationChange,\n}: {\n charge: Price;\n isValid: boolean;\n billableFeature?: BillableFeatureInput;\n setBillableFeature: UsePlanStepModel['setBillableFeature'];\n onValidationChange: ({ featureId, isValid }: { featureId: string; isValid: boolean }) => void;\n}) {\n const isScreenWiderThanMd = useIsScreenWiderThan('md');\n const featureId = charge.feature?.featureId;\n const isBaseCharge = !featureId;\n const isPayAsYouGo = charge.pricingModel === BillingModel.UsageBased;\n const displayName = isBaseCharge\n ? 'Base charge'\n : getFeatureDisplayNameText(charge.feature?.displayName || '', charge.feature?.units, charge.feature?.unitsPlural);\n const hasQuantityRestrictions = !!(charge?.minUnitQuantity || charge?.maxUnitQuantity);\n\n const handleQuantityChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n if (isBaseCharge || !featureId) return;\n\n const { minUnitQuantity, maxUnitQuantity } = charge;\n const value = event?.target?.value ? Number(event?.target?.value) : null;\n if (\n !value ||\n value <= 0 ||\n (minUnitQuantity && value < minUnitQuantity) ||\n (maxUnitQuantity && value > maxUnitQuantity)\n ) {\n onValidationChange({ featureId, isValid: false });\n // Reset the input value to null\n // @ts-ignore\n setBillableFeature(featureId, value ?? null);\n return;\n }\n\n onValidationChange({ featureId, isValid: true });\n const quantity = getValidPriceQuantity(charge, value);\n setBillableFeature(featureId, quantity);\n };\n\n let chargeRow;\n\n if (isBaseCharge || isPayAsYouGo) {\n const formattedAmount = currencyPriceFormatter({\n amount: charge.amount!,\n currency: charge.currency,\n locale: 'en-us',\n minimumFractionDigits: 2,\n });\n\n chargeRow = `${formattedAmount}`;\n if (isPayAsYouGo) {\n chargeRow += ' / unit';\n }\n } else if (charge.isTieredPrice && charge.tiersMode && featureId) {\n const quantity = billableFeature?.quantity || 1;\n chargeRow = (\n <TiersSelectContainer\n componentId={`${featureId}-tiers`}\n tiers={charge.tiers}\n tiersMode={charge.tiersMode}\n value={quantity}\n handleChange={(quantity: number) => {\n setBillableFeature(featureId, quantity);\n }}\n width={120}\n />\n );\n } else {\n chargeRow = (\n <InputField\n sx={{ width: isScreenWiderThanMd ? 120 : '100%' }}\n id={`${featureId}-input`}\n type=\"number\"\n onWheel={ON_WHEEL_BLUR}\n error={!isValid}\n helperText={!isValid ? getValidationText(charge, billableFeature?.quantity) : undefined}\n FormHelperTextProps={{ sx: { margin: '4px' } }}\n value={billableFeature?.quantity ?? ''}\n onChange={handleQuantityChange}\n />\n );\n }\n\n return (\n <StyledPlanCharge>\n <Box display=\"flex\" flexDirection=\"column\">\n <Typography variant=\"h6\" color=\"primary\" lineHeight=\"24px\">\n {displayName}\n </Typography>\n {hasQuantityRestrictions && (\n <Typography variant=\"body1\" color=\"secondary\" lineHeight=\"20px\">\n {calculateUnitQuantityText(charge.minUnitQuantity, charge.maxUnitQuantity, charge.feature?.unitsPlural)}\n </Typography>\n )}\n </Box>\n\n <Typography variant=\"h6\" color=\"primary\">\n {chargeRow}\n </Typography>\n </StyledPlanCharge>\n );\n}\n\nexport function CheckoutChargeList({ plan, billingPeriod }: CheckoutChargeListProps) {\n const { billableFeatures, setBillableFeature } = usePlanStepModel();\n const { setIsDisabled } = useProgressBarModel();\n const { setIsValid } = useCheckoutModel();\n const planCharges = useChargesSort(plan?.pricePoints?.filter((p) => p.billingPeriod === billingPeriod) || []);\n const [chargesValidation, setChargesValidation] = useState(\n planCharges?.reduce<Record<string, boolean>>((acc, curr) => {\n acc[curr.feature?.featureId || 'base-charge'] = true;\n return acc;\n }, {}),\n );\n\n useEffect(() => {\n const isDisabled = Object.values(chargesValidation).some((x) => !x);\n setIsDisabled(isDisabled);\n setIsValid(!isDisabled);\n }, [chargesValidation, setIsDisabled, setIsValid]);\n\n return (\n <>\n {planCharges?.map((charge) => {\n const billableFeature = billableFeatures.find((x) => x.featureId === charge.feature?.featureId);\n return (\n <PlanCharge\n key={charge.feature?.featureId || 'base-charge'}\n charge={charge}\n setBillableFeature={setBillableFeature}\n billableFeature={billableFeature}\n isValid={chargesValidation[charge.feature?.featureId || 'base-charge']}\n onValidationChange={({ featureId, isValid }: { featureId: string; isValid: boolean }) =>\n setChargesValidation((prev) => ({ ...prev, [featureId]: isValid }))\n }\n />\n );\n })}\n </>\n );\n}\n","import styled from '@emotion/styled/macro';\nimport Box from '@mui/material/Box';\n\nexport const CheckoutPlanContainer = styled(Box)`\n width: 100%;\n`;\n","import React from 'react';\nimport { CheckoutContainerProps } from '../../CheckoutContainer';\n\nimport { useCheckoutModel } from '../../hooks/useCheckoutModel';\nimport { usePlanStepModel } from '../../hooks/usePlanStepModel';\nimport { PlanHeader } from '../../planHeader';\nimport { BillingPeriodPicker } from './BillingPeriodPicker';\nimport { CheckoutChargeList } from './CheckoutChargeList';\nimport { CheckoutPlanContainer } from './CheckoutPlanStep.style';\n\nexport const CheckoutPlanStep = ({ onChangePlan }: Pick<CheckoutContainerProps, 'onChangePlan'>) => {\n const { checkoutState, checkoutLocalization } = useCheckoutModel();\n const { plan } = checkoutState || {};\n const { billingPeriod } = usePlanStepModel();\n\n return (\n <>\n <PlanHeader allowChangePlan onChangePlan={onChangePlan} />\n <CheckoutPlanContainer>\n <BillingPeriodPicker plan={plan} checkoutLocalization={checkoutLocalization} />\n <CheckoutChargeList plan={plan} billingPeriod={billingPeriod} />\n </CheckoutPlanContainer>\n </>\n );\n};\n","<svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n<g id=\"arrow-right\">\n<path id=\"Shape\" d=\"M2.66699 8H13.3337\" stroke=\"#7586B0\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n<path id=\"Shape_2\" d=\"M9.33301 4L13.333 8L9.33301 12\" stroke=\"#7586B0\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n</g>\n</svg>\n","import styled from '@emotion/styled/macro';\n\nimport ArrowRightIcon from '../../../assets/arrow-right.svg';\n\nexport const StyledArrowRightIcon = styled(ArrowRightIcon)`\n path {\n stroke: ${({ theme }) => theme.stigg.palette.text.secondary};\n }\n`;\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport Box from '@mui/material/Box';\nimport Alert from '@mui/material/Alert';\nimport { CheckoutStatePlan, Subscription } from '@stigg/js-client-sdk';\nimport { StyledArrowRightIcon } from './StyledArrow';\nimport { Typography } from '../../common/Typography';\nimport { CheckoutLocalization } from '../configurations/textOverrides';\nimport { CheckoutContainerProps } from '../CheckoutContainer';\nimport { ChangePlanButton } from './ChangePlanButton';\n\nconst DowngradeToFreePlansContainer = styled(Box)`\n display: flex;\n`;\n\nconst DowngradeToFreeAlert = styled(Alert)`\n margin-bottom: 16px;\n`;\n\nexport const DowngradeToFreePlanBox = styled(Box)`\n padding: 16px;\n border-radius: 10px;\n width: 100%;\n border: ${({ theme }) => `1px solid ${theme.stigg.palette.outlinedBorder}`};\n`;\n\nexport const DowngradeToFreeContent = ({\n headerText,\n planName,\n priceText,\n}: {\n headerText: string;\n planName: string;\n priceText: string;\n}) => {\n return (\n <DowngradeToFreePlanBox className=\"stigg-checkout-downgrade-to-free-container\">\n <Typography\n className=\"stigg-checkout-downgrade-to-free-text-header\"\n style={{ opacity: 0.8 }}\n variant=\"caption\"\n color=\"disabled\">\n {headerText}\n </Typography>\n <Typography className=\"stigg-checkout-downgrade-to-free-plan-name\" bold variant=\"h3\" color=\"primary\">\n {planName}\n </Typography>\n <Typography className=\"stigg-checkout-downgrade-to-free-price-text\" color=\"secondary\">\n {priceText}\n </Typography>\n </DowngradeToFreePlanBox>\n );\n};\n\ntype DowngradeToFreePlanProps = {\n checkoutLocalization: CheckoutLocalization;\n activeSubscription: Subscription;\n freePlan: CheckoutStatePlan;\n allowChangePlan?: boolean;\n} & Pick<CheckoutContainerProps, 'onChangePlan'>;\n\nexport const DowngradeToFreePlan = ({\n checkoutLocalization,\n activeSubscription,\n freePlan,\n allowChangePlan = false,\n onChangePlan,\n}: DowngradeToFreePlanProps) => {\n let alertAction;\n if (allowChangePlan && onChangePlan) {\n alertAction = (\n <ChangePlanButton\n onClick={() => {\n onChangePlan({ currentPlan: freePlan });\n }}\n checkoutLocalization={checkoutLocalization}\n size=\"small\"\n />\n );\n }\n\n const paidBillingPeriod =\n activeSubscription.prices.length > 0 ? activeSubscription.prices[0].billingPeriod : undefined;\n\n return (\n <>\n <DowngradeToFreeAlert action={alertAction} className=\"stigg-checkout-downgrade-to-free-alert\" severity=\"info\">\n <Typography span color=\"secondary\">\n {checkoutLocalization.downgradeToFree.alertText({ plan: activeSubscription.plan })}\n </Typography>\n </DowngradeToFreeAlert>\n\n <DowngradeToFreePlansContainer className=\"stigg-checkout-downgrade-to-free-plans-container\">\n <DowngradeToFreeContent\n headerText={checkoutLocalization.downgradeToFree.paidPlanHeader({ plan: activeSubscription.plan })}\n planName={checkoutLocalization.downgradeToFree.paidPlanName({ plan: activeSubscription.plan })}\n priceText={checkoutLocalization.downgradeToFree.paidPlanPriceText({\n plan: activeSubscription.plan,\n billingPeriod: paidBillingPeriod,\n })}\n />\n\n <StyledArrowRightIcon\n className=\"stigg-checkout-downgrade-to-free-arrow\"\n style={{ margin: 'auto 16px', minWidth: '16px' }}\n />\n\n <DowngradeToFreeContent\n headerText={checkoutLocalization.downgradeToFree.freePlanHeader({ plan: freePlan })}\n planName={checkoutLocalization.downgradeToFree.freePlanName({ plan: freePlan })}\n priceText={checkoutLocalization.downgradeToFree.freePlanPriceText({ plan: freePlan })}\n />\n </DowngradeToFreePlansContainer>\n </>\n );\n};\n","import React, { useMemo } from 'react';\nimport { Elements } from '@stripe/react-stripe-js';\nimport {\n PricingType,\n BillingAddress,\n ApplySubscription,\n CheckoutStatePlan,\n ApplySubscriptionResults,\n} from '@stigg/js-client-sdk';\nimport { CheckoutContent, CheckoutLayout, CheckoutPanel } from './CheckoutContainer.style';\nimport { CheckoutProgressBar } from './progressBar/CheckoutProgressBar';\nimport { CheckoutSummary, CheckoutSummarySkeleton } from './summary';\nimport { CheckoutStep, CheckoutStepKey, useCheckoutModel, useProgressBarModel } from './hooks';\nimport { CheckoutAddonsStep } from './steps/addons';\nimport { PaymentStep } from './steps/payment';\nimport { useStripeIntegration } from './steps/payment/stripe';\nimport { CheckoutPlanStep } from './steps/plan';\nimport { useCheckoutContext } from './CheckoutProvider';\nimport { ContentLoadingSkeleton } from './components';\nimport { DowngradeToFreePlan } from './components/DowngradeToFreeContainer';\nimport { MockCheckoutPreviewCallback } from './types';\n\ntype StepProps = {\n content: React.ReactNode;\n};\n\ntype StripeClientSecret = { clientSecret: string };\ntype StripeManualMode = { mode: 'setup' | 'payment' | 'subscription'; currency: string };\n\nconst getStepProps = (\n currentStep: CheckoutStep,\n {\n onBillingAddressChange,\n onChangePlan,\n collectPhoneNumber,\n }: Pick<CheckoutContainerProps, 'onBillingAddressChange' | 'onChangePlan' | 'collectPhoneNumber'>,\n): StepProps => {\n switch (currentStep.key) {\n case CheckoutStepKey.PLAN:\n return { content: <CheckoutPlanStep onChangePlan={onChangePlan} /> };\n case CheckoutStepKey.ADDONS:\n return { content: <CheckoutAddonsStep /> };\n case CheckoutStepKey.PAYMENT:\n return {\n content: (\n <PaymentStep onBillingAddressChange={onBillingAddressChange} collectPhoneNumber={collectPhoneNumber} />\n ),\n };\n default:\n return { content: null };\n }\n};\n\nexport type CheckoutResult = { success: boolean; errorMessage?: string; results?: ApplySubscriptionResults };\n\nexport type OnCheckoutParams = {\n customerId: string;\n checkoutParams: ApplySubscription;\n checkoutAction: (params: ApplySubscription) => Promise<CheckoutResult>;\n};\n\nexport type OnCheckoutCompletedParams = { success: boolean; error?: string };\n\nexport type CheckoutContainerProps = {\n onCheckout?: (params: OnCheckoutParams) => Promise<CheckoutResult>;\n onCheckoutCompleted: (params: OnCheckoutCompletedParams) => Promise<void>;\n onChangePlan?: (params: { currentPlan: CheckoutStatePlan | undefined }) => void;\n onBillingAddressChange?: (params: { billingAddress: BillingAddress }) => Promise<void>;\n disablePromotionCode?: boolean;\n disableSuccessAnimation?: boolean;\n collectPhoneNumber?: boolean;\n onMockCheckoutPreview?: MockCheckoutPreviewCallback;\n};\n\nexport function CheckoutContainer({\n onCheckout,\n onCheckoutCompleted,\n onChangePlan,\n onBillingAddressChange,\n collectPhoneNumber,\n disablePromotionCode,\n disableSuccessAnimation,\n onMockCheckoutPreview,\n}: CheckoutContainerProps) {\n const { stripePromise, setupIntentClientSecret } = useStripeIntegration();\n const [{ stiggTheme, widgetState, theme, isWidgetWatermarkEnabled }] = useCheckoutContext();\n const { currentStep } = useProgressBarModel();\n\n const { isLoadingCheckoutData } = widgetState;\n\n const { checkoutState, checkoutLocalization } = useCheckoutModel();\n const { plan, activeSubscription } = checkoutState || {};\n const isFreeDowngrade =\n !!plan &&\n plan.pricingType === PricingType.Free &&\n !!activeSubscription &&\n activeSubscription.pricingType !== PricingType.Free;\n\n const { content } = getStepProps(currentStep, { onBillingAddressChange, onChangePlan, collectPhoneNumber });\n\n const checkoutContent = (\n <>\n {isFreeDowngrade ? (\n <DowngradeToFreePlan\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n freePlan={plan!}\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion\n activeSubscription={activeSubscription!}\n allowChangePlan\n checkoutLocalization={checkoutLocalization}\n onChangePlan={onChangePlan}\n />\n ) : (\n <>{content}</>\n )}\n </>\n );\n\n const stripeElementsMode: StripeClientSecret | StripeManualMode = useMemo(\n () => (setupIntentClientSecret ? { clientSecret: setupIntentClientSecret } : { mode: 'setup', currency: 'usd' }),\n [setupIntentClientSecret],\n );\n\n return (\n <Elements\n key={setupIntentClientSecret}\n stripe={stripePromise}\n options={{\n ...stripeElementsMode,\n appearance: {\n theme: 'stripe',\n variables: {\n colorText: stiggTheme.palette.text.primary,\n colorPrimaryText: stiggTheme.palette.text.primary,\n colorTextPlaceholder: stiggTheme.palette.text.disabled,\n fontFamily: stiggTheme.typography.fontFamily,\n colorBackground: theme?.paymentInputBackgroundColor,\n borderRadius: theme?.paymentInputBorderRadius,\n },\n rules: theme?.paymentInputBorderColor\n ? {\n '.Input': {\n borderColor: theme?.paymentInputBorderColor,\n },\n }\n : undefined,\n },\n }}>\n <CheckoutLayout className=\"stigg-checkout-layout\">\n {!isFreeDowngrade && <CheckoutProgressBar />}\n <CheckoutContent>\n <CheckoutPanel>{isLoadingCheckoutData ? <ContentLoadingSkeleton /> : checkoutContent}</CheckoutPanel>\n {isLoadingCheckoutData ? (\n <CheckoutSummarySkeleton isWidgetWatermarkEnabled={isWidgetWatermarkEnabled} />\n ) : (\n <CheckoutSummary\n disablePromotionCode={disablePromotionCode}\n disableSuccessAnimation={disableSuccessAnimation}\n onCheckout={onCheckout}\n onCheckoutCompleted={onCheckoutCompleted}\n isFreeDowngrade={isFreeDowngrade}\n onMockCheckoutPreview={onMockCheckoutPreview}\n isWidgetWatermarkEnabled={isWidgetWatermarkEnabled}\n />\n )}\n </CheckoutContent>\n </CheckoutLayout>\n </Elements>\n );\n}\n","import React from 'react';\nimport { CheckoutProvider, CheckoutProviderProps } from './CheckoutProvider';\nimport { CheckoutContainer, CheckoutContainerProps } from './CheckoutContainer';\nimport { CheckoutMockProps } from './types';\n\nexport type CheckoutProps = CheckoutProviderProps & CheckoutContainerProps & CheckoutMockProps;\n\nexport const Checkout = ({\n textOverrides,\n theme,\n resourceId,\n planId,\n preferredBillingPeriod,\n billingCountryCode,\n billableFeatures,\n billingInformation,\n onMockCheckoutState,\n skipCheckoutSteps,\n ...containerProps\n}: CheckoutProps) => {\n return (\n <CheckoutProvider\n textOverrides={textOverrides}\n theme={theme}\n resourceId={resourceId}\n planId={planId}\n preferredBillingPeriod={preferredBillingPeriod}\n billingCountryCode={billingCountryCode}\n billableFeatures={billableFeatures}\n billingInformation={billingInformation}\n onMockCheckoutState={onMockCheckoutState}\n skipCheckoutSteps={skipCheckoutSteps}>\n <CheckoutContainer {...containerProps} />\n </CheckoutProvider>\n );\n};\n","import { Subscription } from '@stigg/js-client-sdk';\nimport { useEffect, useMemo, useState } from 'react';\nimport { useStiggContext } from '../../hooks/useStiggContext';\n\nfunction useQueryParams(paramName?: string) {\n return useMemo(() => {\n const urlSearchParams = new URLSearchParams(window.location.search);\n return paramName ? urlSearchParams.get(paramName) : urlSearchParams;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [paramName, window.location.search]);\n}\n\nexport enum ProvisionStatus {\n IN_PROGRESS = 'IN_PROGRESS',\n SUCCEEDED = 'SUCCEEDED',\n FAILED = 'FAILED',\n}\n\nexport const useWaitForCheckoutCompleted = ({\n onProvisionStart,\n onProvisionSucceeded,\n onProvisionFailed,\n}: {\n onProvisionStart?: () => void;\n onProvisionSucceeded?: (subscription?: Subscription | null) => void;\n onProvisionFailed?: (err?: any) => void;\n} = {}) => {\n const { stigg } = useStiggContext();\n const [provisionStatus, setProvisionStatus] = useState(ProvisionStatus.IN_PROGRESS);\n const [isAwaitingCheckout, setIsAwaitingCheckout] = useState(false);\n const checkoutCompleted = useQueryParams('checkoutCompleted') as string;\n\n useEffect(() => {\n const waitForCheckoutToComplete = async () => {\n if (!checkoutCompleted || checkoutCompleted.toLowerCase() === 'false' || isAwaitingCheckout) {\n return;\n }\n\n setIsAwaitingCheckout(true);\n if (onProvisionStart) {\n onProvisionStart();\n }\n try {\n const subscription = await stigg.waitForCheckoutCompleted();\n setProvisionStatus(ProvisionStatus.SUCCEEDED);\n if (onProvisionSucceeded) {\n onProvisionSucceeded(subscription);\n }\n } catch (err) {\n console.error('Failed to wait for checkout to complete', err);\n setProvisionStatus(ProvisionStatus.FAILED);\n if (onProvisionFailed) {\n onProvisionFailed(err);\n }\n } finally {\n setIsAwaitingCheckout(false);\n }\n };\n\n void waitForCheckoutToComplete();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [stigg, checkoutCompleted]);\n\n return { isAwaitingCheckout, provisionStatus };\n};\n","import { BooleanEntitlement, GetBooleanEntitlement, BOOLEAN_DEFAULT_FALLBACK_ENTITLEMENT } from '@stigg/js-client-sdk';\nimport { useStiggContext } from './useStiggContext';\n\nexport type TypedGetBooleanEntitlement<T> = Omit<GetBooleanEntitlement, 'featureId'> & {\n featureId: T;\n};\n\nexport function useBooleanEntitlement<T extends string>(params: TypedGetBooleanEntitlement<T>): BooleanEntitlement {\n const stiggContext = useStiggContext({ optional: true });\n const stigg = stiggContext?.stigg;\n\n if (!stigg) {\n return {\n ...BOOLEAN_DEFAULT_FALLBACK_ENTITLEMENT,\n ...params.options?.fallback,\n };\n }\n\n return stigg.getBooleanEntitlement(params);\n}\n","import { NumericEntitlement, GetNumericEntitlement, NUMERIC_DEFAULT_FALLBACK_ENTITLEMENT } from '@stigg/js-client-sdk';\nimport { useStiggContext } from './useStiggContext';\n\ntype TypedGetNumericEntitlement<T> = Omit<GetNumericEntitlement, 'featureId'> & {\n featureId: T;\n};\n\nexport function useNumericEntitlement<T extends string>(params: TypedGetNumericEntitlement<T>): NumericEntitlement {\n const stiggContext = useStiggContext({ optional: true });\n const stigg = stiggContext?.stigg;\n\n if (!stigg) {\n return {\n ...NUMERIC_DEFAULT_FALLBACK_ENTITLEMENT,\n ...params.options?.fallback,\n };\n }\n\n return stigg.getNumericEntitlement(params);\n}\n","import { GetMeteredEntitlement, METERED_DEFAULT_FALLBACK_ENTITLEMENT, MeteredEntitlement } from '@stigg/js-client-sdk';\nimport { useStiggContext } from './useStiggContext';\n\ntype TypedGetMeteredEntitlement<T> = Omit<GetMeteredEntitlement, 'featureId'> & {\n featureId: T;\n};\n\nexport function useMeteredEntitlement<T extends string>(params: TypedGetMeteredEntitlement<T>): MeteredEntitlement {\n const stiggContext = useStiggContext({ optional: true });\n const stigg = stiggContext?.stigg;\n\n if (!stigg) {\n return {\n ...METERED_DEFAULT_FALLBACK_ENTITLEMENT,\n ...params.options?.fallback,\n };\n }\n\n return stigg.getMeteredEntitlement(params);\n}\n","import { useEffect, useState } from 'react';\n\nexport type FetchResult<T> = {\n isLoaded: boolean;\n error: Error | null;\n data: T | null;\n};\n\nexport function useFetch<T>({ func }: { func: () => Promise<T> }): FetchResult<T> {\n const [isLoaded, setIsLoaded] = useState(false);\n const [error, setError] = useState<Error | null>(null);\n const [data, setData] = useState<T | null>(null);\n\n useEffect(() => {\n const fetchData = async () => {\n setIsLoaded(true);\n try {\n const result = await func();\n setData(result);\n } catch (error) {\n setError(error as Error);\n } finally {\n setIsLoaded(false);\n }\n };\n\n void fetchData();\n }, [func]);\n\n return { isLoaded, error, data };\n}\n","import { useMemo, useCallback } from 'react';\nimport { GetActiveSubscriptions } from '@stigg/js-client-sdk';\nimport { useStiggContext } from './useStiggContext';\nimport { useFetch } from './useFetch';\n\nexport function useActiveSubscriptions(params?: GetActiveSubscriptions) {\n const stiggContext = useStiggContext({ optional: true });\n const stigg = stiggContext?.stigg;\n\n const func = useCallback(() => (stigg ? stigg.getActiveSubscriptions(params) : Promise.resolve([])), [params, stigg]);\n const { data, error, isLoaded } = useFetch({ func });\n\n return useMemo(\n () => ({\n activeSubscriptions: data,\n isLoaded,\n error,\n }),\n [data, error, isLoaded],\n );\n}\n","import { useMemo, useCallback } from 'react';\nimport { GetPaywall } from '@stigg/js-client-sdk';\nimport { useStiggContext } from './useStiggContext';\nimport { useFetch } from './useFetch';\n\nexport function usePaywall(params?: GetPaywall) {\n const stiggContext = useStiggContext({ optional: true });\n const stigg = stiggContext?.stigg;\n\n const func = useCallback(() => (stigg ? stigg.getPaywall(params) : Promise.resolve(null)), [params, stigg]);\n const { data, error, isLoaded } = useFetch({ func });\n\n return useMemo(\n () => ({\n paywall: data,\n isLoaded,\n error,\n }),\n [data, error, isLoaded],\n );\n}\n","import { useMemo, useCallback } from 'react';\nimport { GetCustomerPortal } from '@stigg/js-client-sdk';\nimport { useStiggContext } from './useStiggContext';\nimport { useFetch } from './useFetch';\n\nexport function useCustomerPortal(params?: GetCustomerPortal) {\n const stiggContext = useStiggContext({ optional: true });\n const stigg = stiggContext?.stigg;\n\n const func = useCallback(() => (stigg ? stigg.getCustomerPortal(params) : Promise.resolve(null)), [params, stigg]);\n const { data, error, isLoaded } = useFetch({ func });\n\n return useMemo(\n () => ({\n customerPortal: data,\n isLoaded,\n error,\n }),\n [data, error, isLoaded],\n );\n}\n","import React from 'react';\nimport { GetBooleanEntitlement } from '@stigg/js-client-sdk';\nimport { useBooleanEntitlement } from '../hooks';\n\ntype BooleanEntitlementGuardProps = GetBooleanEntitlement & {\n noAccessComponent?: React.ReactNode;\n children: React.ReactElement;\n};\n\nexport function BooleanEntitlementGuard({\n noAccessComponent,\n children,\n ...rest\n}: BooleanEntitlementGuardProps): JSX.Element {\n const { hasAccess } = useBooleanEntitlement(rest);\n\n if (!hasAccess) {\n return <>{noAccessComponent ?? null}</>;\n }\n\n return children;\n}\n","import React from 'react';\nimport { GetNumericEntitlement } from '@stigg/js-client-sdk';\nimport { useNumericEntitlement } from '../hooks';\n\ntype NumericEntitlementGuardProps = GetNumericEntitlement & {\n noAccessComponent?: React.ReactNode;\n children: React.ReactElement;\n};\n\nexport function NumericEntitlementGuard({\n noAccessComponent,\n children,\n ...rest\n}: NumericEntitlementGuardProps): JSX.Element {\n const { hasAccess } = useNumericEntitlement(rest);\n\n if (!hasAccess) {\n return <>{noAccessComponent ?? null}</>;\n }\n\n return children;\n}\n","import React from 'react';\nimport { GetMeteredEntitlement } from '@stigg/js-client-sdk';\nimport { useMeteredEntitlement } from '../hooks';\n\ntype MeteredEntitlementGuardProps = GetMeteredEntitlement & {\n noAccessComponent?: React.ReactNode;\n children: React.ReactElement;\n};\n\nexport function MeteredEntitlementGuard({\n noAccessComponent,\n children,\n ...rest\n}: MeteredEntitlementGuardProps): JSX.Element {\n const { hasAccess } = useMeteredEntitlement(rest);\n\n if (!hasAccess) {\n return <>{noAccessComponent ?? null}</>;\n }\n\n return children;\n}\n"],"names":["calculateUnitQuantityText","minUnitQuantity","maxUnitQuantity","unitsPlural","unitsText","formatNumber","usageLimit","toLocaleString","maximumFractionDigits","getColor","theme","$color","stigg","palette","primary","primaryLight","warning","error","text","StyledText","Text","$span","getLevel","variant","mapFontWeight","fontWeight","StyledFontWeight","Bold","Normal","getFontWeight","typography","h1","h2","h3","body","caption","Typography","forwardRef","props","ref","children","span","style","color","overrideColor","bold","as","rest","useTheme","level","levelClassName","className","React","getIconColor","secondary","_extends","React.createElement","_rect","_path","_path2","_g","_defs","_path3","_circle","IconWrapper","$pathColor","css","$rectColor","$strokeColor","Icon","icon","svgPathColor","svgRectColor","svgStrokeColor","IconComponent","customIcons","EntitlementName","EntitlementRowContainer","EntitlementIconContainer","EntitlementIcon","getResetPeriodText","resetPeriod","EntitlementResetPeriod","Day","Hour","Week","Month","Year","getEntitlementDisplay","hasUnlimitedUsage","feature","isCustom","enumValues","unitBasedEntitlement","resetPeriodSuffix","featureUnits","length","units","displayName","EntitlementRow","displayNameOverride","restProps","id","PlanEntitlementsContainer","getTitle","plan","paywallLocale","hasFeatures","entitlementsTitle","title","basePlan","PlanEntitlements","billingPeriod","prices","pricePoints","filter","price","unitBasedEntitlements","map","key","featureId","visibleEntitlements","entitlements","entitlement","hiddenFromWidgets","includes","WidgetType","Paywall","SubscribeIntentionType","flexLayoutMapper","horizontalAlignment","left","center","right","getResolvedTheme","customizedTheme","primaryColor","Color","textColor","successColor","errorColor","baseTheme","hex","primaryDark","darken","alpha","toString","backgroundPaper","backgroundHighlight","backgroundSection","backgroundButton","outlinedBorder","outlinedRestingBorder","outlinedHoverBackground","lightness","switchBorder","lighten","switchFill","switchHandle","errorDark","success","successDark","white","tertiary","disabled","layout","planMinWidth","planMaxWidth","planMargin","planPadding","ctaAlignment","headerAlignment","descriptionAlignment","descriptionMinHeight","switchBottomSpacing","shadows","light","popover","border","radius","fontFamily","fontSize","customCss","merge","formatDate","date","moment","utc","format","getSubscriptionScheduleUpdateTexts","scheduledUpdate","subscriptionPrices","billingPeriodRange","options","withDate","postfix","subscriptionScheduleType","SubscriptionScheduleType","Downgrade","shouldShowDate","isNil","end","scheduledExecutionTime","isSame","line1","targetPackage","line2","BillingPeriod","variables","scheduleVariables","toLocaleLowerCase","UnitAmount","compact","find","featureUnitsPlural","newUnitAmount","getPriceFeatureUnit","unitQuantity","getTierByQuantity","tiers","quantity","ascendingTiers","sort","a","b","upTo","tier","getAmount","amount","selectedBillingPeriod","shouldShowMonthlyPriceAmount","Annually","calculateTierPriceVolume","currentTier","perUnitQuantity","unitPrice","flatPrice","calculateTierPriceGraduated","remainingQuantity","prevUpTo","currentTierIndex","breakdown","push","unitsInTier","consumed","Math","min","total","sum","calculateTierPrice","tiersMode","TiersMode","Volume","Graduated","hasTierWithUnitPrice","some","isBulkTiers","every","isQuantityInFirstTier","getTiersPerUnitQuantities","currentSubscription","currentSubscriptionOverride","selectDefaultTierIndex","planTierPrices","isTieredPrice","selectedDefaultTierIndex","tieredPrice","subscriptionPrice","pricingModel","BillingModel","PerUnit","planId","billableFeature","billableFeatures","result","PriceTierComparison","compareSelectedTierToCurrentTier","perUnitQuantityByFeature","Equal","currentTierPrice","isCurrentPlanOverride","oldQuantity","newQuantity","Lower","Higher","LoadingIndicator","ClipLoader","OfferingButton","$disabled","ButtonText","ScheduledUpdateText","CancelScheduledUpdateButton","TrialDaysLeft","ButtonLayout","PlanOfferingButton","isNextPlan","customer","isCustomerOnTrial","onPlanSelected","withTrialLeftRow","useState","isLoading","setIsLoading","planCTAButton","currentPlan","custom","downgrade","startTrial","upgrade","startNew","switchToBillingPeriod","cancelScheduledUpdate","resolvedDowngrade","isFunction","resolvedUpgrade","buttonProps","isLowerThanCurrentPlan","intentionType","DOWNGRADE_PLAN","UPGRADE_TRIAL_TO_PAID","UPGRADE_PLAN","isCustomPrice","pricingType","PricingType","Custom","scheduledUpdateText","isTriable","isCurrentCustomerPlan","START_TRIAL","isSameBillingPeriod","currentCustomerPlanBillingPeriod","Free","planComparison","CHANGE_UNIT_QUANTITY","CHANGE_BILLING_PERIOD","REQUEST_CUSTOM_PLAN_ACCESS","CANCEL_SCHEDULED_UPDATES","isDisabled","onClick","Promise","resolve","loading","size","height","trialDaysLeft","currencyPriceFormatter","currency","Currency","Usd","locale","minimumFractionDigits","removeTrailingZero","currencyString","currencySymbol","getSymbolFromCurrency","formattedPrice","Intl","NumberFormat","trailingZeroDisplay","currencyDisplay","replace","numberFormatter","number","getPaidPriceText","planPrices","paywallCalculatedPrice","priceAmount","isSinglePrice","priceNumber","tierUnits","pricePeriod","Monthly","unit","formattedUnits","blockSize","UsageBased","getPlanPrice","free","paywallCurrency","Paid","pricePoint","paywallCalculatedPricePoints","priceNotSet","paidParams","paid","StyledButton","MuiButton","shouldForwardProp","prop","startsWith","$success","$error","Button","InputField","styled","TextField","borderRadius","fieldset","borderColor","padding","SkeletonsContainer","Grid","$flexDirection","$gap","FlexedSkeletonContainer","FlexedSkeleton","flex","Skeleton","ReactSkeleton","ContentContainer","ContentLoadingSkeleton","container","item","width","Divider","sx","marginY","marginTop","ON_WHEEL_BLUR","e","target","blur","VolumePerUnitInput","value","handleChange","type","onWheel","fullWidth","minHeight","InputProps","endAdornment","InputAdornment","position","onChange","event","Number","TierSelect","Select","TierInput","OutlinedInput","VolumeBulkSelect","componentId","input","MenuProps","MenuListProps","disablePadding","PaperProps","MenuItem","lineHeight","TiersSelectLayout","TiersSelectContainer","EMPTY_CHAR","PlanPriceContainer","UnitSpan","PriceSpan","PriceBillingPeriod","hasMonthlyPrice","hasAnnuallyPrice","hasPrice","content","toLowerCase","PlanPrice","showStartingAt","withUnitPriceRow","withStartingAtRow","withTiersRow","setPerUnitQuantityByFeature","planPrice","undefined","handlePerUnitQuantityChange","prevState","startingAtCaption","AddonsBox","AddonsList","AddonRow","AddonName","AddonIcon","AddonContent","Footer","MAX_ADDONS","PlanCompatibleAddons","addons","showAllAddons","setShowAllAddons","visibleAddons","addon","toggleShowAllAddons","displayedAddons","slice","addonsTitle","classNames","PlanOfferingButtonHeight","PlanOfferingContainer","$isCurrentPlan","$isHighlighted","AddonsContainer","$planHasEntitlements","PlanHeader","PlanDescription","HighlightBadge","HighlightText","HeaderWrapper","NextPlanTagContainer","StyledMiniSchedule","MiniSchedule","UpcomingChangeTag","iconsColor","display","alignItems","gap","PlanOffering","isHighlighted","shouldShowDescriptionSection","isCustomerInCustomPlan","hideCompatibleAddons","additionalChargesMayApply","showCTAButton","planBadge","highlightChip","onPlanButtonClick","perUnitBillableFeatures","Object","keys","description","compatibleAddons","PickerContainer","PeriodText","StyledSwitch","Switch","DiscountRate","discount","BillingPeriodPicker","discountRate","onBillingPeriodChanged","availableBillingPeriods","isMonthlyBillingPeriod","uncheckedIcon","checkedIcon","isAnnuallySelected","checked","handleDiameter","calculateDiscountRate","monthlyPrice","annuallyPrice","annuallyPerMonthPrice","round","getPlanBillingPeriodAmount","calculatePaywallDiscountRate","plans","reduce","maxDiscount","monthlyAmount","annuallyAmount","max","STIGG_WATERMARK_CLASSNAME","PoweredByStiggThemedSvg","PoweredByStiggSvg","StyledPoweredByStigg","$alignSelf","PoweredByStigg","source","showWatermark","align","onWatermarkClick","sourceDomain","window","location","hostname","open","cursor","hasPricePoints","hasPricePointsForPlans","getPlansToDisplay","shouldHidePlan","PaywallPlansContainer","PaywallContainer","PaywallLayout","highlightedPlanId","useStiggContext","plansToShow","handleOnSubscribe","useCallback","subscription","useMemo","values","isWidgetWatermarkEnabled","LoggerService","message","params","console","log","object","debug","computeBillingPeriods","activeSubscriptions","preferredBillingPeriod","billingPeriods","flatMap","x","counts","countBy","uniq","defaultBillingPeriod","activeSubscription","status","SubscriptionStatus","Active","calculateTrialDaysLeft","trialEndDate","diff","defaultCheckoutTypography","FontWeight","addCssUnits","defaultValue","JSFontWeight","mapTypography","defaultTypography","fontFamilyUrl","mapAlignment","alignment","Alignment","Left","Center","Right","mapCustomerPortalConfiguration","configuration","paywallBackgroundColor","currentPlanBackground","mapPaywallConfiguration","paywallConfiguration","backgroundColor","planWidth","mapCheckoutConfiguration","summaryBackgroundColor","getCustomerSubscriptionDetails","s","InTrial","mapPaywallData","paywall","showOnlyEligiblePlans","currentSubscriptionOverrideFn","scheduledUpdates","downgradeSchedule","billingChangedSchedule","paywallPlans","sortBy","order","eligibleForProductTrial","eligibleForTrial","productTrial","productId","product","currentBillingPeriod","downgradeVariables","billingChangedVariables","isPlanHasBillingPeriodPrice","refId","defaultTrialConfig","eligible","isUpcomingPlan","currentPlanOrder","StiggContext","createContext","DEFAULT_LOCALE","StiggProvider","apiKey","baseUri","baseEdgeUri","enableEdge","customerId","customerToken","resourceId","cacheTtlMs","useEntitlementPolling","entitlementPollingInterval","entitlementsFallback","stiggClient","offline","clientName","CLIENT_NAME","clientVersion","CLIENT_VERSION","currentApiKey","useRef","initializeParams","Stigg","initialize","lazyLoad","isInitialized","refreshData","setContext","ctx","customerPortalUpdatedAt","Date","refresh","useEffect","isMounted","safeSetContext","setContextFunc","onEntitlementsUpdated","updatedAt","setStiggInstance","removeListener","addListener","loadStiggClient","current","logger","waitForInitialization","clearCustomer","setCustomerId","Provider","SkeletonTheme","baseColor","highlightColor","optional","useContext","Error","useLoadPaywallData","billingCountryCode","setSelectedBillingPeriod","setAvailableBillingPeriods","setPaywall","loadPaywall","getPaywall","paywallResult","isCustomerLoaded","paywallData","getResolvedPaywallLocalize","localizeOverride","paywallDefaultLocalization","duration","symbol","SkeletonContainer","EntitlementCheckIcon","CheckUrl","PlanOfferingSkeleton","PlansContainer","EntitlementContainer","FooterSkeletonLoader","BillingPeriodLoader","PlanOfferingLoader","circle","marginBottom","PaywallLoader","Fonts","externalFontUrl","Global","styles","CustomCssGlobal","useStiggTheme","remoteThemeOverride","externalTheme","mergedTheme","resolvedTheme","createTypographyTheme","htmlFontSize","coef","pxToRem","bodyFontFamily","headingFontFamily","fontSizes","createMuiPalette","main","SdkThemeProvider","componentTheme","muiPalette","materialTheme","createTheme","MuiThemeProvider","THEME_ID","ThemeProvider","StyledThemeProvider","useCustomerPortal","customerPortal","setCustomerPortal","loadCustomerPortal","getCustomerPortal","customerPortalData","getResolvedCustomerPortalLocalize","customerPortalDefaultLocalization","manageSubscription","usageTabTitle","addonsTabTitle","promotionsTabTitle","promotionsSubtitle","contactSupportTitle","contactSupportLink","editBilling","invoicesTitle","viewInvoiceHistory","editPaymentDetails","paywallSectionTitle","cancelScheduledUpdatesButtonTitle","getResolvedCustomerPortalTheme","globalTheme","themeOverride","remoteConfiguration","customerPortalDefaultTheme","sectionTitleColor","planNameColor","listItemBackgroundColor","tabMaxHeight","iconsBackgroundColor","CustomerPortalContext","useCustomerPortalContext","useCheckContextExists","contextType","CustomerPortalProvider","textOverrides","customerPortalTheme","resolvedTextOverrides","onBillingPeriodChange","hasCustomerPortalContext","isCustomerPortalLoading","customerPortalResourceId","handlePeriodChange","component","SectionHeader","$disableMargin","SectionTitle","CustomerPortalIntentionType","StyledEditIcon","EditIcon","SubscriptionsOverviewHeader","onManageSubscription","hideManageButton","MANAGE_SUBSCRIPTION","marginLeft","subscriptions","isEmpty","index","addonId","Row","$borderColor","getPromotionTitle","promotionalEntitlement","Promotions","promotionalEntitlements","flexDirection","endDate","StyledTabs","Tabs","TabsLayout","TabContent","Box","$maxHeight","ListBox","$backgroundColor","TabPanel","maxHeight","other","role","hidden","TabTitle","isSelected","label","Medium","SubscriptionTabs","hiddenSections","allAddons","isSectionHidden","sectionName","section","showAddons","showPromotions","setValue","_","newValue","shouldShowTabs","borderBottom","Tab","textTransform","breakpoints","xs","sm","md","lg","xl","xxl","mqMinWidth","breakpoint","mq","obj","useIsScreenWiderThan","useMediaQueryMui","SkeletonLayout","SkeletonLayoutLeft","SubscriptionOverviewLoader","isScreenWiderThanMd","SubscriptionScheduledUpdateDowngradeRow","scheduleUpdate","ArrowDown","SubscriptionScheduledUpdateBillingPeriodChangeRow","nextBillingPeriod","SubscriptionScheduledUpdateUnitQuantityChangeRow","newQuantityUnits","flexWrap","SubscriptionScheduledUpdateRow","SubscriptionScheduleUpdateAlertContainer","StyledRestoreIcon","Restore","MultipleScheduledUpdates","justifyContent","SingleScheduledUpdate","SubscriptionScheduledUpdatesAlert","onCancelScheduledUpdates","stiggTheme","isSingleScheduledUpdate","marginRight","SectionContainer","NextEstimatedBill","rangeEnd","NoUpcomingBilling","ContactCustomerSupportLayout","ContactSupportButton","ContactCustomerSupport","onContactSupport","linkLabel","contactSupportText","Container","UpcomingBilling","noUsageBasedPrices","billingModel","scheduledDowngradeToFree","planName","totalPrice","InformationTooltip","placement","Tooltip","arrow","classes","popper","tooltip","$padding","$maxWidth","tooltipClasses","maxWidth","boxShadow","$display","$maxLines","$wordBreak","$bold","checkTextClamped","element","clientHeight","scrollHeight","offsetWidth","scrollWidth","LongText","leaveDelay","maxLines","wordBreak","tooltipPlacement","dataTestId","isTextClamped","setIsTextClamped","textClamped","OnTrialBadge","StyledLink","Link","TrialPanel","includePlanName","SandClockIcon","trialRemainingDays","UPGRADE_TRIAL_PLAN","SubscriptionView","mainSubscription","trialSubscription","USAGE_PERCENTAGE_WARNING_THRESHOLD","getUsagePercentage","currentUsage","limit","floor","getUsageProgressStatus","getResetUsageText","usagePeriodEnd","calculateResetDiff","StyledLinearProgress","LinearProgress","string","$progressStatus","StyledDivider","FeatureUsageProgressBar","usagePercentage","linearProgressStatus","EntitlementCtaButton","onBuyMore","canBuyMore","canUpgradeSubscription","hasCustomSubscription","ChargeItem","hideChargePrice","whiteSpace","ChargeList","entitlementByFeature","keyBy","filteredSubscriptionPrices","SubscriptionsOverview","isLoadingData","CustomerPortalHeaderLayout","CustomerPortalHeader","ExternalLinkText","LinkIcon","ExternalLinkIcon","ExternalLinkButton","url","startIcon","strokeWidth","InformationGridContainer","InformationGridRow","InformationGrid","rows","classNamePrefix","labelTypographyProps","valueTypographyProps","SkeletonButton","PaymentDetailsSection","billingInformation","items","orientation","name","email","defaultPaymentMethodId","defaultPaymentMethodLast4Digits","defaultPaymentExpirationMonth","defaultPaymentExpirationYear","unshift","padStart","editButton","billingPortalUrl","CustomerPortalPaywallLayout","CustomerPortalPaywall","paywallComponent","CustomerPortalLayout","CustomerPortalSections","getFeatureDisplayNameText","featureDisplayName","displayNameLowerCase","lowercase","getFeatureDisplayName","FeatureUsageContainer","$highlight","FeatureUsage","hasOverageUsage","isUndefined","CustomerUsageLoader","isMdScreen","spacing","range","MAX_BOXES","CustomerUsageData","filterEntitlements","showAll","setShowAll","meteredEntitlements","meterType","MeterType","Fluctuating","Incremental","subscriptionPriceByFeature","priceEntitlements","otherEntitlements","sortedEntitlements","filteredEntitlements","entitlementsToShow","toggleShowAll","Minus","Plus","CustomerPortalContainer","customerPortalSectionRef","onManageClick","customerSubscriptions","scrollIntoView","behavior","shouldShowUsage","shouldShowPaymentDetails","shouldShowInvoices","InvoicesSection","CustomerPortal","viewInvoiceHistoryButton","sortAddons","sortSubscriptionAddons","filterAddonPricePointsByBillingPeriod","mapAddonPricePointsByBillingCountryCode","filterAddons","filterSubscriptionAddons","getAddonsStepInitialState","availableAddons","activeSubscriptionAddons","planAddon","initialAddons","cloneDeep","useSetAddon","useCheckoutContext","setState","draft","addonToUpdate","addonsStep","currentAddon","useRemoveAddon","remove","useAddonsState","useAddonsStepModel","state","setAddon","removeAddon","useCheckoutState","checkout","widgetState","checkoutLocalization","checkoutState","useSetWidgetReadonly","readOnly","useSetIsValid","isValid","useCheckoutModel","setWidgetReadOnly","setIsValid","useLoadCheckout","onMockCheckoutState","setCheckout","loadCheckout","getCheckoutState","getValidPriceQuantity","hasMonthlyPrices","hasAnnualPrices","hasMultipleBillingPeriods","getBillingPeriod","isInAdvanceCommitmentCharge","getBillableFeatures","preconfiguredBillableFeatures","preconfBillableFeaturesByFeatureId","quantityByFeatureId","charge","preconfiguredQuantity","resolveBillingPeriod","hasMonthlyPlan","hasAnnualPlan","isUpdate","getPlanStepInitialState","usePlanState","planStep","useSetBillableFeature","useSetBillingPeriod","usePlanStepModel","setBillingPeriod","setBillableFeature","CheckoutStepKey","CHECKOUT_STEPS","PLAN","ADDONS","PAYMENT","INITIAL_STATE","activeStep","completedSteps","steps","canSkipPlanStep","availableCharges","availableChargesIds","preconfiguredChargesIds","getProgressBarInitialState","skipCheckoutSteps","stepsToFilter","step","useProgressBarState","progressBar","useSetActiveStep","stepNumber","useMarkStepAsCompleted","isCheckoutComplete","useGoNext","useSetIsDisabled","useProgressBarModel","progressBarState","currentStep","isLastStep","setActiveStep","markStepAsCompleted","goNext","setIsDisabled","useSubscriptionModel","promotionCode","paymentStep","billingAddress","taxPercentage","mapBillingInformation","previewSubscription","onMockCheckoutPreview","estimateAddons","subscriptionPreview","errorMessage","previewSubscriptionProps","split","errorMsg","trim","usePreviewSubscriptionAction","previewSubscriptionAction","SUBSCRIPTION_PREVIEW_DEBOUNCE_TIME","usePreviewSubscription","setSubscriptionPreview","isFetchingSubscriptionPreview","setIsFetchingSubscriptionPreview","estimateSubscription","timer","setTimeout","clearTimeout","getPaymentStepInitialState","useNewPaymentMethod","paymentMethodDetails","useSetUseNewPaymentMethod","useSetErrorMessage","useSetBillingAddress","usePaymentState","usePaymentStepModel","setUseNewPaymentMethod","setErrorMessage","setBillingAddress","getResolvedCheckoutLocalize","checkoutDefaultLocalization","changePlan","billingPeriodsTitle","addAddonText","newPaymentMethodText","newPaymentMethodBillingAddressTitle","newPaymentMethodCardTitle","summary","addCouponCodeText","couponCodeTitle","addonsSectionTitle","discountsSectionTitle","onlyPayAsYouGoText","startsAtText","proratedTotalDueText","baseChargeText","totalText","totalDueText","totalBillingPeriodText","appliedCreditsTitle","creditsForUnusedTimeText","credits","discountText","discountDetails","DiscountType","Percentage","discountTextPostfix","durationType","DiscountDurationType","Once","Repeating","prefix","Fixed","durationInMonths","Forever","taxTitle","taxDetails","percentage","changesWillApplyAtEndOfBillingPeriod","billingPeriodEnd","checkoutSuccessText","payAsYouGoTooltipText","checkoutButton","nextText","noChangesText","updateText","downgradeToFreeText","upgradeText","downgradeToFree","alertText","freePlanHeader","freePlanName","freePlanPriceText","paidPlanHeader","paidPlanName","paidPlanPriceText","defaultCheckoutTheme","getResolvedCheckoutTheme","_remoteConfiguration","globalPalette","paymentInputBackgroundColor","paymentInputBorderColor","paymentInputBorderRadius","CheckoutContext","CheckoutContextProvider","initialState","innerSetState","updater","old","produce","contextValue","setContextValue","CheckoutProvider","checkoutTheme","resource","isLoadingCheckoutData","CheckoutLayout","CheckoutContent","CheckoutPanel","StyledProgress","linearProgressClasses","root","bar","StyledStepButton","buttonClasses","StyledIcon","$shouldFill","stroke","fill","CheckoutProgressBar","containerRef","progress","previousStep","setPreviousStep","mb","isCompleted","StepIcon","CHARGES_BILLING_MODEL_ORDER","FlatFee","sortCharges","charges","indexOf","useChargesSort","usePromotionCodeState","useSetPromotionCode","usePromotionCodeModel","setPromotionCode","StyledPlusIcon","PlusIcon","AddPromotionCodeButton","onAddClick","CouponCodeAddButton","AddPromotionCode","persistPromotionCode","showInput","setShowInput","handlePromotionCode","immediateInvoice","toUpperCase","autoFocus","inputProps","maxLength","onKeyDown","preventDefault","CircularProgress","AppliedCouponContainer","AppliedPromotionCode","onClearPromotionCode","minWidth","PromotionCodeSectionContainer","PromotionCodeSection","StripePaymentForm","onBillingAddressChange","collectPhoneNumber","shouldCollectPhoneNumber","handleAddressChange","args","complete","address","postalCode","postal_code","addressFields","callExternalBillingAddressChanged","pointerEvents","AddressElement","mode","fields","phone","defaultValues","PaymentElement","onReady","terms","card","billingDetails","useStripeIntegration","stripePromise","setStripePromise","billingIntegration","setupSecret","billingIdentifier","credentials","BillingVendorIdentifier","Stripe","accountId","publicKey","loadStripe","stripeAccount","setupIntentClientSecret","useSubscriptionState","FAILED_PAYMENT_COLLECTION_STATUSES","PaymentCollection","Failed","Processing","handleStripeFormValidations","elements","submit","elementsError","handleStripeNextAction","applySubscriptionResults","stripe","paymentIntentClientSecret","latestInvoice","paymentSecret","paymentCollection","ActionRequired","handleNextAction","clientSecret","NextActionError","handleStripeSetup","confirmSetup","confirmParams","return_url","href","redirect","setupError","setupErrorMessage","retrieveSetupIntent","setupIntent","payment_method","newPaymentMethodId","handleNewPaymentMethod","stripeFormValidationsResults","paymentMethodId","ANIMATION_DURATION","CheckoutSuccessContainer","CheckoutSuccessText","CheckoutSuccess","block","inline","Lottie","animationData","loop","autoplay","delay","ms","res","useSubmit","isMocked","onCheckout","onCheckoutCompleted","onSuccess","disableSuccessAnimation","subscriptionState","useStripe","useElements","handleSubmit","usedStiggCheckoutAction","paymentMethodResults","checkoutParams","checkoutAction","applySubscription","nextActionResults","results","externalCheckoutResults","checkoutResults","checkoutActionResults","WithSkeleton","RemainingCreditsCaption","proration","netAmount","positiveAmount","ScheduledUpdatesCaption","hasScheduledUpdates","currentBillingPeriodEnd","changesWillApplyText","NextBillingCaption","recurringInvoice","hasUnitBasedPricing","hasNonUnitBasedPricing","totalAmountText","nextBillingDate","billingPeriodText","CheckoutCaptions","formatPricePerUnit","totalAmount","isPerUnit","aBlockSize","billingPeriodString","formattedUnitPrice","formattedTotalPrice","getPriceBreakdownString","getLabel","previousTierUpTo","startUnit","GraduatedPriceBreakdown","LineItemContainer","LineItemRow","CollapsableSectionIcon","ChevronRight","$size","$isOpen","NestedBreakdownContainer","PayAsYouGoPriceTooltip","BilledPriceLineItem","isScreenWiderThanLg","isNestedBreakdownOpen","setIsNestedBreakdownOpen","toggleNestedBreakdown","prev","isPayAsYouGo","ceil","nestedBreakdown","shouldShowGraduatedPriceBreakdown","underline","IconButton","Collapse","FreeChargeLineItem","DiscountLineItem","AppliedCreditsLineItem","used","TaxLineItem","tax","SummaryContainer","SummaryCard","Paper","defaultProps","elevation","SummaryTitle","TotalDueText","resolveCheckoutButtonText","checkoutHasChanges","isFreeDowngrade","isPlanUpdate","CheckoutSummary","disablePromotionCode","isCheckoutCompletedSuccessfully","setIsCheckoutCompletedSuccessfully","partition","baseCharges","usageCharges","baseCharge","handleCheckout","onCheckoutClick","showPromotionCodeLine","showDiscountLine","hasDiscounts","hasPayAsYouGoCharges","onlyPayAsYouGoCharges","baseChargeLabel","paddingRight","margin","priceBillableFeature","addonPrice","addonQuantity","hasProrations","subTotal","CheckoutSummarySkeleton","CheckoutAddonsContainer","AddonListItemContainer","TrashButton","AddonListItem","addonState","initialAddonState","onAddonsValidationChange","isAdded","hasChanges","handleQuantityChange","handleUndo","marginX","helperText","FormHelperTextProps","paddingX","paddingY","CheckoutAddonsStep","acc","curr","addonsValidation","setAddonsValidation","PaymentMethodContainer","NewPaymentMethodContainer","$hideBorders","PaymentMethodLayoutContainer","PaymentMethodTextContainer","PaymentMethodLayout","subtitle","Radio","ExistingPaymentMethod","onSelect","last4Digits","expirationMonth","expirationYear","NewPaymentMethod","hasExistingPaymentMethod","PaymentContainer","PaymentStep","handleOnSelect","openNewPaymentMethod","Alert","severity","ChangePlanButton","allowChangePlan","onChangePlan","opacity","formatBillingPeriod","BillingPeriodPickerContainer","BillingPeriodButton","$isOnlyBillingPeriod","$isActive","BillingPeriodOptions","BillingPeriodPrice","DiscountChip","Chip","BillingPeriodOption","isOnlyBillingPeriod","isActive","monthlyPrices","annualPrices","hasBothBillingPeriods","StyledPlanCharge","div","getValidationText","PlanCharge","onValidationChange","isBaseCharge","hasQuantityRestrictions","chargeRow","formattedAmount","CheckoutChargeList","planCharges","p","chargesValidation","setChargesValidation","CheckoutPlanContainer","CheckoutPlanStep","StyledArrowRightIcon","ArrowRightIcon","DowngradeToFreePlansContainer","DowngradeToFreeAlert","DowngradeToFreePlanBox","DowngradeToFreeContent","headerText","priceText","DowngradeToFreePlan","freePlan","alertAction","paidBillingPeriod","action","getStepProps","CheckoutContainer","checkoutContent","stripeElementsMode","Elements","appearance","colorText","colorPrimaryText","colorTextPlaceholder","colorBackground","rules","Checkout","containerProps","useQueryParams","paramName","urlSearchParams","URLSearchParams","search","get","ProvisionStatus","useWaitForCheckoutCompleted","onProvisionStart","onProvisionSucceeded","onProvisionFailed","IN_PROGRESS","provisionStatus","setProvisionStatus","isAwaitingCheckout","setIsAwaitingCheckout","checkoutCompleted","waitForCheckoutToComplete","waitForCheckoutCompleted","SUCCEEDED","FAILED","useBooleanEntitlement","stiggContext","BOOLEAN_DEFAULT_FALLBACK_ENTITLEMENT","fallback","getBooleanEntitlement","useNumericEntitlement","NUMERIC_DEFAULT_FALLBACK_ENTITLEMENT","getNumericEntitlement","useMeteredEntitlement","METERED_DEFAULT_FALLBACK_ENTITLEMENT","getMeteredEntitlement","useFetch","func","isLoaded","setIsLoaded","setError","data","setData","fetchData","useActiveSubscriptions","getActiveSubscriptions","usePaywall","BooleanEntitlementGuard","noAccessComponent","hasAccess","NumericEntitlementGuard","MeteredEntitlementGuard"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
|