@stigg/react-sdk 4.6.1 → 4.7.1

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.
Files changed (77) hide show
  1. package/README.md +7 -0
  2. package/dist/components/checkout/CheckoutContainer.d.ts +4 -2
  3. package/dist/components/checkout/components/Button.d.ts +1 -1
  4. package/dist/components/checkout/components/InputField.d.ts +2 -2
  5. package/dist/components/checkout/components/Skeletons.style.d.ts +3 -3
  6. package/dist/components/checkout/hooks/useSubscriptionState.d.ts +2 -2
  7. package/dist/components/checkout/progressBar/CheckoutProgressBar.style.d.ts +2 -2
  8. package/dist/components/checkout/steps/addons/CheckoutAddonsStep.style.d.ts +2 -2
  9. package/dist/components/checkout/steps/payment/PaymentMethods.style.d.ts +4 -4
  10. package/dist/components/checkout/steps/payment/stripe/stripe.utils.d.ts +9 -13
  11. package/dist/components/checkout/steps/payment/stripe/useSubmit.d.ts +2 -1
  12. package/dist/components/checkout/steps/plan/BillingPeriodPicker.style.d.ts +1 -1
  13. package/dist/components/checkout/summary/CheckoutSummary.d.ts +1 -1
  14. package/dist/components/common/InformationTooltip.d.ts +1 -1
  15. package/dist/components/common/LongText.d.ts +1 -1
  16. package/dist/components/customerPortal/paywall/CustomerPortalPaywall.d.ts +0 -1
  17. package/dist/components/customerPortal/paywall/CustomerPortalPaywall.style.d.ts +0 -1
  18. package/dist/components/customerPortal/usage/featureUsage/FeatureUsageProgressBar.d.ts +2 -2
  19. package/dist/components/paywall/Paywall.d.ts +0 -1
  20. package/dist/components/paywall/PlanOffering.d.ts +2 -1
  21. package/dist/components/paywall/PlanOfferingButton.d.ts +1 -2
  22. package/dist/react-sdk.cjs.development.js +490 -427
  23. package/dist/react-sdk.cjs.development.js.map +1 -1
  24. package/dist/react-sdk.cjs.production.min.js +1 -1
  25. package/dist/react-sdk.cjs.production.min.js.map +1 -1
  26. package/dist/react-sdk.esm.js +410 -348
  27. package/dist/react-sdk.esm.js.map +1 -1
  28. package/package.json +2 -2
  29. package/src/components/checkout/CheckoutContainer.tsx +13 -3
  30. package/src/components/checkout/components/Button.tsx +1 -1
  31. package/src/components/checkout/components/ChangePlanButton.tsx +1 -2
  32. package/src/components/checkout/components/ContentLoadingSkeleton.tsx +2 -1
  33. package/src/components/checkout/components/DowngradeToFreeContainer.tsx +2 -1
  34. package/src/components/checkout/components/InputField.tsx +2 -1
  35. package/src/components/checkout/components/Skeletons.style.ts +1 -1
  36. package/src/components/checkout/hooks/useSubscriptionState.ts +2 -3
  37. package/src/components/checkout/planHeader/PlanHeader.tsx +2 -1
  38. package/src/components/checkout/progressBar/CheckoutProgressBar.style.ts +2 -1
  39. package/src/components/checkout/progressBar/CheckoutProgressBar.tsx +3 -1
  40. package/src/components/checkout/promotionCode/AddPromotionCode.tsx +2 -1
  41. package/src/components/checkout/promotionCode/AppliedPromotionCode.tsx +1 -1
  42. package/src/components/checkout/steps/addons/CheckoutAddonsStep.style.tsx +1 -1
  43. package/src/components/checkout/steps/addons/CheckoutAddonsStep.tsx +1 -1
  44. package/src/components/checkout/steps/payment/PaymentMethods.style.ts +1 -1
  45. package/src/components/checkout/steps/payment/PaymentMethods.tsx +3 -1
  46. package/src/components/checkout/steps/payment/PaymentStep.tsx +2 -1
  47. package/src/components/checkout/steps/payment/stripe/StripePaymentForm.tsx +1 -1
  48. package/src/components/checkout/steps/payment/stripe/stripe.utils.ts +31 -22
  49. package/src/components/checkout/steps/payment/stripe/useSubmit.ts +63 -46
  50. package/src/components/checkout/steps/plan/BillingPeriodPicker.style.tsx +2 -1
  51. package/src/components/checkout/steps/plan/BillingPeriodPicker.tsx +2 -1
  52. package/src/components/checkout/steps/plan/CheckoutChargeList.tsx +1 -1
  53. package/src/components/checkout/steps/plan/CheckoutPlanStep.style.tsx +1 -1
  54. package/src/components/checkout/summary/CheckoutSuccess.tsx +1 -1
  55. package/src/components/checkout/summary/CheckoutSummary.tsx +6 -1
  56. package/src/components/checkout/summary/components/LineItems.tsx +1 -1
  57. package/src/components/common/InformationTooltip.tsx +13 -9
  58. package/src/components/common/LongText.tsx +3 -5
  59. package/src/components/common/TiersSelectContainer.tsx +3 -1
  60. package/src/components/customerPortal/CustomerPortalContainer.tsx +5 -8
  61. package/src/components/customerPortal/billing/PaymentDetailsSection.tsx +2 -3
  62. package/src/components/customerPortal/paywall/CustomerPortalPaywall.style.ts +0 -10
  63. package/src/components/customerPortal/paywall/CustomerPortalPaywall.tsx +2 -5
  64. package/src/components/customerPortal/subscriptionOverview/subscriptionScheduledUpdates/SubscriptionScheduledUpdateRow.tsx +2 -2
  65. package/src/components/customerPortal/subscriptionOverview/subscriptionScheduledUpdates/SubscriptionScheduledUpdatesAlert.tsx +6 -7
  66. package/src/components/customerPortal/subscriptionOverview/subscriptionView/TrialPanel.tsx +1 -1
  67. package/src/components/customerPortal/usage/CustomerUsageData.style.tsx +2 -2
  68. package/src/components/customerPortal/usage/CustomerUsageData.tsx +24 -16
  69. package/src/components/customerPortal/usage/featureUsage/FeatureUsageProgressBar.tsx +3 -9
  70. package/src/components/paywall/EntitlementRow.tsx +25 -7
  71. package/src/components/paywall/Paywall.tsx +36 -20
  72. package/src/components/paywall/PaywallContainer.tsx +2 -2
  73. package/src/components/paywall/PlanOffering.tsx +37 -22
  74. package/src/components/paywall/PlanOfferingButton.tsx +1 -3
  75. package/src/components/paywall/utils/mapPaywallData.ts +13 -11
  76. package/src/stories/Checkout.stories.tsx +2 -2
  77. package/src/stories/baseArgs.ts +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"react-sdk.esm.js","sources":["../src/assets/check-stigg.svg","../src/components/paywall/utils/calculateUnitQuantityText.ts","../src/components/common/Typography.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/assets/mini-schedule.svg","../src/components/utils/currencyUtils.ts","../src/components/utils/getPaidPriceText.ts","../src/components/utils/getPlanPrice.ts","../src/components/common/TiersSelectContainer.tsx","../src/components/paywall/PlanPrice.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/StiggProvider.tsx","../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/paywall/hooks/useLoadPaywallData.ts","../src/components/paywall/paywallTextOverrides.ts","../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/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/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/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/components/common/Icon.tsx","../src/components/customerPortal/subscriptionOverview/tabs/SubscriptionTabs.tsx","../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/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/components/Skeletons.style.ts","../src/components/checkout/progressBar/CheckoutProgressBar.tsx","../src/components/hooks/useChargeSort.ts","../src/components/checkout/components/Button.tsx","../src/components/checkout/components/InputField.tsx","../src/components/checkout/components/ContentLoadingSkeleton.tsx","../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/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"],"sourcesContent":["<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","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","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 | '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} & 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 ...rest\n } = props;\n const theme = useTheme() as Theme;\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 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 React from 'react';\nimport CheckUrl from '../../assets/check-stigg.svg';\nimport styled from '@emotion/styled/macro';\nimport { calculateUnitQuantityText } from './utils/calculateUnitQuantityText';\nimport { EntitlementResetPeriod } from '@stigg/js-client-sdk';\nimport { Typography } from '../common/Typography';\n\nconst EntitlementName = styled(Typography)`\n margin: 0;\n`;\n\nconst EntitlementRowContainer = styled.div`\n display: flex;\n align-items: center;\n`;\n\nconst EntitlementCheckIcon = styled(CheckUrl)`\n margin-right: 16px;\n flex-shrink: 0;\n * {\n fill: ${({ theme }) => theme.stigg.palette.text.disabled};\n }\n`;\n\nfunction formatUsageNumber(usageLimit: number) {\n return usageLimit.toLocaleString('en-US', {\n maximumFractionDigits: 0,\n });\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 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 }\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 } else if (isCustom) {\n return `Custom ${feature?.unitsPlural}`;\n } else if (usageLimit) {\n const featureUnits = usageLimit === 1 ? feature?.units : feature?.unitsPlural;\n return `${formatUsageNumber(usageLimit)} ${featureUnits} ${resetPeriodSuffix}`;\n } else 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\">\n <EntitlementCheckIcon className=\"stigg-entitlement-row-icon\" />\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) {\n if (paywallLocale.entitlementsTitle) {\n return paywallLocale.entitlementsTitle(plan);\n }\n let title = `${plan.displayName} includes`;\n if (plan.basePlan) {\n title = `Everything in ${plan.basePlan.displayName}, 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?.map(price => {\n const shouldRenderUnitBasedEntitlement =\n (price?.minUnitQuantity && price?.minUnitQuantity > 1) || price?.maxUnitQuantity;\n\n if (!shouldRenderUnitBasedEntitlement) {\n return null;\n }\n\n return (\n <EntitlementRow\n key={`priceUnitEntitlement-${price?.feature?.displayName}`}\n feature={price?.feature}\n minUnitQuantity={price?.minUnitQuantity}\n maxUnitQuantity={price?.maxUnitQuantity}\n />\n );\n });\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)}\n </Typography>\n {unitBasedEntitlements}\n {plan.entitlements\n .filter(entitlement => !(entitlement.hiddenFromWidgets || []).includes(WidgetType.Paywall))\n .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 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 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","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 disabled: textColor.alpha(0.5).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 { BillingPeriodChangeVariables, UnitAmountChangeVariables } from '../../types';\nimport { CustomerPortalSubscriptionPriceFragment } from '@stigg/api-client-js/src/generated/sdk';\nimport { compact, map } from 'lodash';\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 { PaywallPlan } from '../paywall/types';\n\nimport { BillingModel, TiersMode, BillingPeriod, Price, PriceTierFragment, Subscription } from '@stigg/js-client-sdk';\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) {\n if (!tiers) return;\n\n const ascendingTiers = [...tiers];\n ascendingTiers.sort((a, b) => a.upTo - b.upTo);\n\n for (const tier of ascendingTiers) {\n if (quantity <= tier.upTo) {\n return tier;\n }\n }\n\n return ascendingTiers[ascendingTiers.length - 1];\n}\n\nexport function calculateTierPrice(\n price: Price,\n currentTier: PriceTierFragment,\n selectedBillingPeriod: BillingPeriod,\n shouldShowMonthlyPriceAmount: boolean,\n): number {\n switch (price.tiersMode) {\n case TiersMode.Volume:\n const unitPrice =\n selectedBillingPeriod === BillingPeriod.Annually && shouldShowMonthlyPriceAmount\n ? currentTier.unitPrice.amount / 12\n : currentTier.unitPrice.amount;\n\n return unitPrice * currentTier.upTo;\n }\n\n return 0;\n}\n\nexport function getSelectedTier(\n plan: PaywallPlan,\n billingPeriod: BillingPeriod,\n currentSubscription: Subscription | null,\n selectedTierByFeature: Record<string, PriceTierFragment>,\n): Record<string, PriceTierFragment> {\n const planTierPrices = plan.pricePoints.filter(price => price.billingPeriod === billingPeriod && price.isTieredPrice);\n\n if (planTierPrices.length == 1) {\n const [price] = planTierPrices;\n const featureId = price.feature!.featureId;\n\n let currentTier = price.tiers![0];\n\n if (selectedTierByFeature[featureId]) {\n currentTier = price.tiers?.find(tier => tier.upTo === selectedTierByFeature[featureId].upTo) || currentTier;\n } else if (currentSubscription) {\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 currentTier = getTierByQuantity(price.tiers!, tieredPrice.feature!.unitQuantity || 1)!;\n }\n }\n\n const result: Record<string, PriceTierFragment> = {};\n result[featureId] = currentTier;\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 selectedTierByFeature: Record<string, PriceTierFragment>,\n currentSubscription: Subscription | null,\n): PriceTierComparison {\n if (!currentSubscription || !selectedTierByFeature) {\n return PriceTierComparison.Equal;\n }\n\n const currentTierPrice = currentSubscription.prices.find(\n price => price.pricingModel == BillingModel.PerUnit && price.tiersMode,\n );\n if (!currentTierPrice) {\n return PriceTierComparison.Equal;\n }\n\n const { featureId, unitQuantity } = currentTierPrice.feature!;\n\n if (!unitQuantity) {\n return PriceTierComparison.Equal;\n }\n\n const selectedTier = selectedTierByFeature[featureId];\n if (!selectedTier) {\n return PriceTierComparison.Equal;\n }\n\n if (selectedTier.upTo < unitQuantity!) {\n return PriceTierComparison.Lower;\n }\n\n if (selectedTier.upTo > unitQuantity!) {\n return PriceTierComparison.Higher;\n }\n\n return PriceTierComparison.Equal;\n}\n","import React, { useState } from 'react';\nimport { BillingPeriod, Customer, PriceTierFragment, 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 { 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 billingPeriod: BillingPeriod;\n isCustomerOnTrial: boolean;\n paywallLocale: PaywallLocalization;\n onPlanSelected: (intentionType: SubscribeIntentionType) => void | Promise<void>;\n hasTiersRow: boolean;\n withTrialLeftRow: boolean;\n selectedTierByFeature: Record<string, PriceTierFragment>;\n};\n\nexport function PlanOfferingButton({\n isNextPlan,\n customer,\n plan,\n billingPeriod,\n isCustomerOnTrial,\n onPlanSelected,\n paywallLocale,\n hasTiersRow,\n withTrialLeftRow,\n currentSubscription,\n selectedTierByFeature,\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(selectedTierByFeature, currentSubscription);\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 = 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 {hasTiersRow && !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","<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","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}: {\n amount: number;\n currency?: Currency | string;\n locale?: string;\n maximumFractionDigits?: number;\n minimumFractionDigits?: number;\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 ...(currencySymbol ? { currencyDisplay: 'code' } : {}),\n }).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","import {\n BillingModel,\n BillingPeriod,\n PaywallCalculatedPricePoint,\n Price,\n PriceTierFragment,\n} from '@stigg/js-client-sdk';\nimport { currencyPriceFormatter } from './currencyUtils';\nimport { PlanPriceText } from './getPlanPrice';\nimport { calculateTierPrice, getPriceFeatureUnit } from './priceTierUtils';\nimport { PaywallLocalization } from '../paywall';\n\ntype GetPaidPriceTextParams = {\n planPrices: Price[];\n paywallCalculatedPrice?: PaywallCalculatedPricePoint;\n selectedBillingPeriod: BillingPeriod;\n locale: string;\n shouldShowMonthlyPriceAmount: boolean;\n selectedTierByFeature: Record<string, PriceTierFragment>;\n paywallLocale: PaywallLocalization;\n};\n\nexport function getPaidPriceText({\n planPrices,\n paywallCalculatedPrice,\n selectedBillingPeriod,\n locale,\n shouldShowMonthlyPriceAmount,\n selectedTierByFeature,\n paywallLocale,\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) {\n let currentTier = price.tiers![0];\n if (selectedTierByFeature[price.feature!.featureId]) {\n currentTier = selectedTierByFeature[price.feature!.featureId] || currentTier;\n\n tiers = price.tiers;\n tierUnits = getPriceFeatureUnit(price);\n }\n\n priceNumber += calculateTierPrice(price, currentTier, selectedBillingPeriod, shouldShowMonthlyPriceAmount);\n }\n }\n\n if (isSinglePrice) {\n const price = planPrices[0];\n const featureUnit = price.feature?.units || '';\n\n if (price.pricingModel === BillingModel.PerUnit && !price.isTieredPrice) {\n unit = shouldShowMonthlyPriceAmount ? `per ${featureUnit} ${pricePeriod}` : `per ${featureUnit} ${pricePeriod}`;\n } else if (price.pricingModel === BillingModel.UsageBased) {\n unit = `per ${featureUnit}`;\n }\n }\n\n return {\n price: currencyPriceFormatter({ amount: priceNumber, currency: currency, locale }),\n unit: unit,\n tiers: tiers,\n tierUnits: tierUnits,\n };\n}\n","import { BillingPeriod, PriceTierFragment, PricingType } from '@stigg/js-client-sdk';\nimport { PaywallPlan } from '../paywall';\nimport { PaywallLocalization } from '../paywall';\nimport { getPaidPriceText } from './getPaidPriceText';\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 selectedTierByFeature?: Record<string, PriceTierFragment>,\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 as PlanPriceText;\n case PricingType.Custom:\n return {\n price: 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 selectedTierByFeature: selectedTierByFeature || {},\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 { PriceTierFragment } from '@stigg/js-client-sdk';\nimport { MenuItem, OutlinedInput, Select, SelectChangeEvent } from '@mui/material';\nimport { map } from 'lodash';\nimport React, { ReactNode } from 'react';\nimport styled from '@emotion/styled/macro';\nimport { getTierByQuantity } from '../utils/priceTierUtils';\nimport { Typography } from './Typography';\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 TiersSelectContainer({\n componentId,\n tiers,\n tierUnits,\n selectedTier,\n handleTierChange,\n}: {\n componentId: string;\n tiers?: PriceTierFragment[] | null;\n tierUnits?: string;\n selectedTier?: PriceTierFragment;\n handleTierChange: (tier: PriceTierFragment) => void;\n}) {\n const handleChange = (event: SelectChangeEvent<unknown>, _: ReactNode) => {\n if (!tiers) return;\n\n handleTierChange(getTierByQuantity(tiers, event.target.value as number)!);\n };\n\n return (\n <Typography className=\"stigg-price-tier-select\" style={{ minHeight: '46px' }}>\n {tiers ? (\n <TierSelect\n value={selectedTier ? selectedTier.upTo.toString() : tiers[0].upTo.toString()}\n fullWidth\n onChange={handleChange}\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 {tier.upTo} {tierUnits}\n </Typography>\n </MenuItem>\n ))}\n </TierSelect>\n ) : (\n <div />\n )}\n </Typography>\n );\n}\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { BillingPeriod, PriceTierFragment } 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 selectedTierByFeature,\n setSelectedTierByFeature,\n plan,\n billingPeriod,\n paywallLocale,\n locale,\n hasMonthlyPrice,\n hasAnnuallyPrice,\n}: {\n showStartingAt: boolean;\n withUnitPriceRow: boolean;\n withStartingAtRow: boolean;\n withTiersRow: boolean;\n selectedTierByFeature: Record<string, PriceTierFragment>;\n setSelectedTierByFeature: React.Dispatch<React.SetStateAction<Record<string, PriceTierFragment>>>;\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 selectedTierByFeature,\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 selectedTier = featureId ? selectedTierByFeature[featureId] : undefined;\n\n const handleTierChange = (tier: PriceTierFragment) => {\n if (!featureId) {\n return;\n }\n\n setSelectedTierByFeature((prevState) => ({\n ...prevState,\n [featureId]: tier,\n }));\n };\n\n return (\n <PlanPriceContainer 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 variant=\"h1\">{price}</PriceSpan>\n\n {withUnitPriceRow && (\n <Typography className=\"stigg-price-unit-and-billing-period-text\" style={{ minHeight: '48px' }}>\n <UnitSpan 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 selectedTier={selectedTier}\n handleTierChange={handleTierChange}\n />\n ) : null}\n </>\n </PlanPriceContainer>\n );\n};\n","import React, { useEffect } from 'react';\nimport { BillableFeature, BillingPeriod, Customer, PriceTierFragment, Subscription } from '@stigg/js-client-sdk';\nimport styled from '@emotion/styled/macro';\nimport { PlanEntitlements } from './PlanEntitlements';\nimport { PlanOfferingButton } from './PlanOfferingButton';\nimport { PaywallPlan, SubscribeIntentionType } from './types';\nimport { PaywallLocalization } from './paywallTextOverrides';\nimport { flexLayoutMapper } from '../../theme/getResolvedTheme';\nimport { Typography } from '../common/Typography';\nimport classNames from 'classnames';\nimport { Grid } from '@mui/material';\nimport MiniSchedule from '../../assets/mini-schedule.svg';\nimport { PlanPrice } from './PlanPrice';\nimport { getSelectedTier } from '../utils/priceTierUtils';\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 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 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};\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 shouldShowDescriptionSection,\n hasMonthlyPrice,\n hasAnnuallyPrice,\n isCustomerOnTrial,\n onPlanSelected,\n paywallLocale,\n locale,\n withStartingAtRow,\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\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 [selectedTierByFeature, setSelectedTierByFeature] = React.useState<Record<string, PriceTierFragment>>(\n getSelectedTier(plan, billingPeriod, currentSubscription, {}),\n );\n\n useEffect(() => {\n setSelectedTierByFeature(getSelectedTier(plan, billingPeriod, currentSubscription, selectedTierByFeature));\n }, [billingPeriod]);\n\n const onPlanButtonClick = (intentionType: SubscribeIntentionType) => {\n const billableFeatures: BillableFeature[] = Object.keys(selectedTierByFeature).map(featureId => ({\n featureId,\n quantity: selectedTierByFeature[featureId].upTo,\n }));\n\n return onPlanSelected(intentionType, billableFeatures);\n };\n\n return (\n <PlanOfferingContainer\n className={classNames('stigg-plan-offering-container', {\n 'stigg-current-plan': plan.isCurrentCustomerPlan,\n })}\n $isHighlighted={isHighlighted}\n $isCurrentPlan={plan.isCurrentCustomerPlan}\n >\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 selectedTierByFeature={selectedTierByFeature}\n setSelectedTierByFeature={setSelectedTierByFeature}\n plan={plan}\n billingPeriod={billingPeriod}\n paywallLocale={paywallLocale}\n locale={locale}\n hasAnnuallyPrice={hasAnnuallyPrice}\n hasMonthlyPrice={hasMonthlyPrice}\n />\n\n <PlanOfferingButton\n isNextPlan={isNextPlan}\n customer={customer}\n plan={plan}\n currentSubscription={currentSubscription}\n billingPeriod={billingPeriod}\n isCustomerOnTrial={isCustomerOnTrial}\n onPlanSelected={onPlanButtonClick}\n paywallLocale={paywallLocale}\n hasTiersRow={withTiersRow}\n withTrialLeftRow={withTrialLeftRow}\n selectedTierByFeature={selectedTierByFeature}\n />\n\n <Divider className=\"stigg-plan-header-divider\" />\n </HeaderWrapper>\n\n <PlanEntitlements plan={plan} billingPeriod={billingPeriod} paywallLocale={paywallLocale} />\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';\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 tieredPrice.tiers![0].unitPrice.amount;\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 PoweredByStiggSvg from '../../assets/powered-by-stigg.svg';\nimport styled from '@emotion/styled/macro';\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 >\n <PoweredByStiggThemedSvg />\n </StyledPoweredByStigg>\n );\n}\n","import { PaywallPlan } from '../types';\nimport { BillingPeriod } from '@stigg/js-client-sdk';\n\nexport function hasPricePointsForPlans(plans: PaywallPlan[], billingPeriod: BillingPeriod): boolean {\n return plans.some(plan => hasPricePoints(plan, billingPeriod));\n}\n\nexport function hasPricePoints(plan: PaywallPlan, billingPeriod: BillingPeriod): boolean {\n return plan.pricePoints.some(pricePoint => pricePoint.billingPeriod === billingPeriod);\n}","import { BillingPeriod, PricingType } from '@stigg/js-client-sdk';\nimport { PaywallPlan } from '../types';\nimport { hasPricePoints } from './hasPricePoints';\n\nexport function getPlansToDisplay(plans: PaywallPlan[], selectedBillingPeriod: BillingPeriod): PaywallPlan[] {\n return plans.filter(plan => plan.pricingType !== PricingType.Paid || hasPricePoints(plan, selectedBillingPeriod));\n}","import { BillableFeature, BillingPeriod, Customer, Plan, Subscription } from '@stigg/js-client-sdk';\nimport React, { useCallback } from 'react';\nimport styled from '@emotion/styled/macro';\nimport { PlanOffering } from './PlanOffering';\nimport { BillingPeriodPicker } from './BillingPeriodPicker';\nimport { calculatePaywallDiscountRate } from '../utils/calculateDiscountRate';\nimport { OnPlanSelectedCallbackFn, PaywallPlan, SubscribeIntentionType } 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 { getSelectedTier } 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 selectedBillingPeriod: BillingPeriod;\n highlightedPlanId?: string;\n onBillingPeriodChanged: (billingPeriod: BillingPeriod) => void;\n availableBillingPeriods: BillingPeriod[];\n isLoading: boolean;\n isCustomerOnTrial: boolean;\n onPlanSelected: OnPlanSelectedCallbackFn;\n paywallLocale: PaywallLocalization;\n locale: string;\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}: 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);\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],\n );\n\n const withStartingAtRow = 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\n const withUnitPriceRow = plansToShow.some(plan => {\n return !!getPlanPrice(plan, selectedBillingPeriod, paywallLocale, locale, hasMonthlyPrice).unit;\n });\n\n const withTiersRow = plansToShow.some(plan => {\n return !!getSelectedTier(plan, selectedBillingPeriod, currentSubscription, {});\n });\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 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 />\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 React, { useEffect, useState, PropsWithChildren, useContext, useRef } from 'react';\nimport * as StiggJs from '@stigg/js-client-sdk';\nimport Stigg, { EntitlementsFallback } from '@stigg/js-client-sdk';\nimport { SkeletonTheme } from 'react-loading-skeleton';\nimport { CustomizedTheme } from '../theme/Theme';\nimport logger from '../services/logger';\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 useEntitlementPolling?: boolean;\n entitlementPollingInterval?: number;\n stiggClient?: StiggJs.StiggClient;\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 useEntitlementPolling,\n entitlementPollingInterval,\n entitlementsFallback,\n stiggClient,\n children,\n}) => {\n const currentApiKey = useRef(apiKey);\n const initializeParams = {\n apiKey,\n customerId,\n customerToken,\n resourceId,\n baseUri,\n baseEdgeUri,\n enableEdge,\n entitlementsFallback,\n useEntitlementPolling,\n entitlementPollingInterval,\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\nexport const useStiggContext = (): StiggContextValue => {\n const ctx = useContext(StiggContext);\n if (!ctx) {\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, 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, 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 };\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 } = 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 };\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 { 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 = 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 isCustomerOnTrial: boolean;\n plans: PaywallPlan[];\n paywallConfiguration?: DeepPartial<StiggTheme>;\n};\n\nexport function mapPaywallData(paywall: Paywall | null, showOnlyEligiblePlans?: boolean): PaywallData {\n const { plans, currency, configuration, customer, activeSubscriptions, paywallCalculatedPricePoints } = paywall || {};\n const { currentSubscription, currentPlan, isCustomerOnTrial, trialDaysLeft } = getCustomerSubscriptionDetails(\n activeSubscriptions,\n );\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 = 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(price => price.billingPeriod === currentBillingPeriod);\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 isCustomerOnTrial,\n plans: paywallPlans,\n paywallConfiguration,\n };\n}\n","import { BillingPeriod, Paywall } from '@stigg/js-client-sdk';\nimport { useEffect, useState } from 'react';\nimport logger from '../../../services/logger';\nimport { useStiggContext } from '../../StiggProvider';\nimport { PaywallData } from '../types';\nimport { computeBillingPeriods } from '../utils/computeDefaultBillingPeriod';\nimport { mapPaywallData } from '../utils/mapPaywallData';\n\ntype useLoadPaywallDataProps = {\n productId?: string;\n resourceId?: string;\n showOnlyEligiblePlans?: boolean;\n billingCountryCode?: string;\n preferredBillingPeriod?: BillingPeriod;\n};\n\nexport function useLoadPaywallData({\n productId,\n resourceId,\n showOnlyEligiblePlans,\n billingCountryCode,\n preferredBillingPeriod,\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]);\n\n const paywallData = mapPaywallData(paywall, showOnlyEligiblePlans);\n\n return {\n customer: paywall?.customer || null,\n isLoading: 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 type PaywallLocalization = {\n highlightChip: string;\n entitlementsTitle?: (plan: PaywallPlan) => string;\n planCTAButton: {\n upgrade: string | ((plan: PaywallPlan) => string);\n downgrade: string | ((plan: PaywallPlan) => string);\n startTrial: (plan: PaywallPlan) => string;\n custom: 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: 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 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","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';\nimport { useStiggContext } from '../components/StiggProvider';\nimport { DeepPartial } from '../types';\nimport { Fonts } from './Fonts';\nimport { getResolvedTheme } from './getResolvedTheme';\nimport { StiggTheme } from './types';\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 '../../StiggProvider';\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]);\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';\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 >\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 { OnPlanSelectedCallbackFn } 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};\n\nexport const PaywallContainer = ({\n productId,\n resourceId,\n highlightedPlanId,\n showOnlyEligiblePlans,\n textOverrides,\n onPlanSelected,\n preferredBillingPeriod,\n onBillingPeriodChange,\n billingCountryCode,\n}: PaywallContainerProps) => {\n const hasCustomerPortalContext = useCheckContextExists(CustomerPortalContext);\n let isCustomerPortalLoading = false;\n if (hasCustomerPortalContext) {\n const { isLoading, resourceId: customerPortalResourceId } = useCustomerPortalContext();\n isCustomerPortalLoading = isLoading;\n resourceId = customerPortalResourceId;\n }\n const {\n plans,\n customer,\n currentSubscription,\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 });\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 selectedBillingPeriod={selectedBillingPeriod}\n onBillingPeriodChanged={handlePeriodChange}\n availableBillingPeriods={availableBillingPeriods}\n highlightedPlanId={highlightedPlanId}\n isLoading={isLoading}\n isCustomerOnTrial={isCustomerOnTrial}\n onPlanSelected={onPlanSelected}\n paywallLocale={paywallLocale}\n locale={locale}\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 }) => !$disableMargin && `\n &:not(:last-child) {\n margin-bottom: 32px;\n }\n `};\n`;","import { Typography } from '../../common/Typography';\nimport React from 'react';\nimport { useCustomerPortalContext } from '../CustomerPortalProvider';\nimport Skeleton from 'react-loading-skeleton';\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 React from 'react';\nimport { CustomerPortal } from '@stigg/js-client-sdk';\nimport { StyledButton } from '../common/StyledButton';\nimport { Typography } from '../../common/Typography';\nimport EditIcon from '../../../assets/edit-icon.svg';\nimport { CustomerPortalLocalization } from '../customerPortalTextOverrides';\nimport styled from '@emotion/styled/macro';\nimport { SectionHeader } from '../common/SectionHeader';\nimport { SectionTitle } from '../common/SectionTitle';\n\ntype SubscriptionsOverviewHeaderProps = {\n customerPortal?: CustomerPortal | null;\n onManageSubscription: () => void;\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}\n >\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 >\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 { Typography } from '../../../common/Typography';\nimport { useCustomerPortalContext } from '../../CustomerPortalProvider';\nimport styled from '@emotion/styled/macro';\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-child {\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 => (\n <Row $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)<{ $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 { Theme } from '@emotion/react';\n\nexport type IconColor =\n | 'primary'\n | '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=\"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>\n","<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","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, { 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 { 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';\nimport { FontWeight } from 'styled-typography';\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","import styled from '@emotion/styled/macro';\nimport React from 'react';\nimport Skeleton from 'react-loading-skeleton';\n\nconst SkeletonLayout = styled.div`\n display: flex;\n justify-content: space-between;\n`;\n\nconst SkeletonLayoutLeft = styled.div`\n display: flex;\n flex-direction: column;\n gap: 32px;\n`;\n\nexport function SubscriptionOverviewLoader() {\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={295} height={193} />\n </SkeletonLayout>\n );\n}\n","import React from 'react';\nimport { ArrowDown } from 'react-feather';\nimport { Grid } from '@mui/material';\nimport {\n CustomerPortalSubscription,\n CustomerPortalSubscriptionScheduledUpdateDataFragment,\n SubscriptionScheduleType,\n BillingPeriod,\n} from '@stigg/js-client-sdk';\nimport { Typography } from '../../../common/Typography';\nimport { BillingPeriodChangeVariables, UnitAmountChangeVariables } from '../../../../types';\nimport { compact, map } from 'lodash';\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, Grid } from '@mui/material';\nimport { CustomerPortalSubscription } from '@stigg/js-client-sdk';\nimport styled from '@emotion/styled/macro';\nimport { Theme, 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() as Theme;\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 >\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 >\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';\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 padding: 64px;\n`;","import { Typography } from '../../../common/Typography';\nimport { currencyPriceFormatter } from '../../../utils/currencyUtils';\nimport { BillingPeriod, Currency } from '@stigg/js-client-sdk';\nimport moment from 'moment';\nimport React from 'react';\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 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 { Typography } from '../../../common/Typography';\nimport React from 'react';\n\ntype NoUpcomingBillingProps = {\n description: string;\n};\n\nexport function NoUpcomingBilling({ description }: NoUpcomingBillingProps) {\n return (\n <>\n <Typography variant='h6' color='secondary'>No upcoming bill</Typography>\n <Typography variant='body1' color='secondary'>\n {description}\n </Typography>\n </>\n );\n}\n","import React from 'react';\nimport { Typography } from '../../common/Typography';\nimport styled from '@emotion/styled/macro';\nimport Button from '@mui/material/Button';\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 let contactSupportText = <Typography color={onContactSupport ? 'primary.main' : 'secondary'}>{linkLabel}</Typography>;\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 >\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';\nimport styled from '@emotion/styled/macro';\n\nexport type InformationTooltipProps = TooltipProps & { $padding?: number; $maxWidth?: number; };\n\nexport const InformationTooltip = styled(({ children, className, placement = 'top', ...props }: InformationTooltipProps) => (\n <Tooltip arrow placement={placement} {...props} classes={{ popper: className, tooltip: 'stigg-tooltip', arrow: 'stigg-tooltip-arrow' }}>\n <div>\n {children}\n </div>\n </Tooltip>\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 { CSSProperties, ReactNode, useEffect, useRef, useState } from 'react';\nimport styled, { css } from 'styled-components';\nimport { TooltipProps } from '@mui/material';\nimport { InformationTooltip } from './InformationTooltip';\nimport React from 'react';\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 leftMargin?: boolean;\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 >\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 >\n {content}\n </InformationTooltip>\n ) : (\n content\n )}\n </span>\n );\n};\n","import styled from '@emotion/styled/macro';\nimport React from 'react';\nimport SandClockIcon from '../../../../assets/sand-clock.svg';\nimport { Typography } from '../../../common/Typography';\nimport { CustomerPortalSubscription, SubscriptionStatus } from '@stigg/js-client-sdk';\nimport { Link } from '@mui/material';\nimport { LongText } from '../../../common/LongText';\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?: () => void;\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 className=\"stigg-subscription-trial-upgrade-button\" onClick={onManageSubscription}>\n <Typography color=\"white\">Upgrade plan</Typography>\n </StyledLink>\n </OnTrialBadge>\n );\n}\n","import React from 'react';\nimport { Typography } from '../../../common/Typography';\nimport { CustomerPortalSubscription } from '@stigg/js-client-sdk';\nimport { TrialPanel } from './TrialPanel';\nimport { CustomerPortalTheme } from '../../customerPortalTheme';\n\ntype SubscriptionViewProps = {\n mainSubscription: CustomerPortalSubscription;\n trialSubscription: CustomerPortalSubscription | undefined;\n onManageSubscription: () => void;\n theme: CustomerPortalTheme;\n};\n\nexport function SubscriptionView({ mainSubscription, trialSubscription, onManageSubscription, theme }: 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 >\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.nextResetDate) {\n return null;\n }\n\n const calculateResetDiff = (unit: 'days' | 'hours' | 'minutes') => {\n return moment.utc(entitlement.nextResetDate).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 { getUsagePercentage, getUsageProgressStatus } from './FeatureUsage.helper';\nimport React from 'react';\nimport { CustomerPortalEntitlement } from '@stigg/js-client-sdk';\nimport { Divider } from '@mui/material';\nimport Color from 'color';\n\nexport const StyledLinearProgress = styled(LinearProgress)<{ $progressStatus: 'standard' | 'warning' | 'error' }>`\n height: 4px;\n background-color: ${({ theme }) =>\n Color(theme.stigg.palette.primary)\n .alpha(0.4)\n .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 }) =>\n Color(theme.stigg.palette.outlinedRestingBorder)\n .alpha(0.4)\n .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 { getUsagePercentage, USAGE_PERCENTAGE_WARNING_THRESHOLD } from './FeatureUsage.helper';\nimport Button from '@mui/material/Button';\nimport { Typography } from '../../../common/Typography';\nimport React from 'react';\nimport { OnBuyMoreCallbackFn } from '../../types';\nimport styled from 'styled-components';\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: (() => void) | undefined;\n onBuyMore?: OnBuyMoreCallbackFn;\n canBuyMore: boolean;\n canUpgradeSubscription: boolean;\n hasCustomSubscription: boolean;\n};\n\nexport function EntitlementCtaButton({ entitlement, feature, onManageSubscription, onBuyMore, canBuyMore, canUpgradeSubscription, hasCustomSubscription }: EntitlementCtaButtonProps) {\n\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 variant=\"text\" onClick={onManageSubscription}>\n <Typography color=\"primary.main\">Upgrade</Typography>\n </StyledButton>\n ) : null;\n }\n\n return null;\n}","import { Currency, CustomerPortalEntitlement } from '@stigg/js-client-sdk';\nimport React from 'react';\nimport { Typography } from '../../../common/Typography';\nimport { currencyPriceFormatter } from '../../../utils/currencyUtils';\nimport { FeatureUsageProgressBar } from '../../usage/featureUsage/FeatureUsageProgressBar';\nimport { LongText } from '../../../common/LongText';\nimport { FeatureFragment } from '@stigg/api-client-js/src/generated/sdk';\nimport { EntitlementCtaButton } from '../../usage/featureUsage/EntitlementCTAButton';\nimport { OnBuyMoreCallbackFn } from '../../types';\n\nexport type UsageBasedChargeProps = {\n entitlement: Exclude<CustomerPortalEntitlement, 'feature'>;\n feature: FeatureFragment;\n amount: number;\n currency: Currency;\n onBuyMore?: OnBuyMoreCallbackFn;\n onManageSubscription: () => void;\n canUpgradeSubscription: boolean;\n hasCustomSubscription: boolean;\n hideChargePrice?: boolean;\n};\n\nexport function ChargeItem({\n amount,\n currency,\n entitlement,\n feature,\n hideChargePrice,\n onBuyMore,\n onManageSubscription,\n canUpgradeSubscription,\n hasCustomSubscription,\n}: UsageBasedChargeProps) {\n return (\n <div className='stigg-charge-list-item' 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 {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={true}\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 { ChargeItem } from './ChargeItem';\nimport React from 'react';\nimport { keyBy } from 'lodash';\nimport { OnBuyMoreCallbackFn } from '../../types';\n\nexport type ChargesProps = {\n subscription: CustomerPortalSubscription;\n entitlements: CustomerPortalEntitlement[];\n onBuyMore?: OnBuyMoreCallbackFn;\n onManageSubscription: () => void;\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, 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 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 { SubscriptionsOverviewHeader } from './SubscriptionsOverviewHeader';\nimport { SubscriptionTabs } from './tabs/SubscriptionTabs';\nimport { useCustomerPortalContext } from '../CustomerPortalProvider';\nimport { CustomerPortalSubscription, PricingType, SubscriptionStatus } from '@stigg/js-client-sdk';\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';\n\nexport type SubscriptionsOverviewProps = {\n onManageSubscription: () => void;\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 >\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 className=\"stigg-overview-layout\" style={{ display: 'flex', alignItems: 'flex-start', gap: 64 }}>\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 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 { Typography } from '../../common/Typography';\nimport { StyledButton } from './StyledButton';\nimport { ExternalLink as ExternalLinkIcon } from 'react-feather';\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 >\n <ExternalLinkText color=\"primary.main\">{text}</ExternalLinkText>\n </StyledButton>\n );\n}","import styled from '@emotion/styled/macro';\nimport { Typography, TypographyProps } from '../../common/Typography';\nimport React from 'react';\nimport { FontWeight } from 'styled-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`;\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 >\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}","import React, { ReactElement } from 'react';\nimport { useCustomerPortalContext } from '../CustomerPortalProvider';\nimport { SectionTitle } from '../common/SectionTitle';\nimport { SectionContainer } from '../common/SectionContainer';\nimport { ExternalLinkButton } from '../common/ExternalLinkButton';\nimport { Divider } from '@mui/material';\nimport { InformationGrid, InformationGridContainer } from './InformationGrid';\nimport { padStart } from 'lodash';\nimport { SectionHeader } from '../common/SectionHeader';\nimport { SkeletonButton } from '../common/SkeletonButton';\nimport Skeleton from 'react-loading-skeleton';\n\nexport const EMPTY_CHAR = '-';\n\nexport function PaymentDetailsSection() {\n const { customerPortal, isLoading, textOverrides, theme } = useCustomerPortalContext();\n const { billingInformation } = customerPortal || {};\n const isLoadingData = !billingInformation || isLoading;\n\n const items: ReactElement[] = [];\n\n if (isLoadingData) {\n items.push(\n ...[\n <InformationGridContainer>\n <Skeleton width={220} height={12} />\n <Skeleton width={220} height={12} />\n <Skeleton width={220} height={12} />\n </InformationGridContainer>,\n <Divider orientation=\"vertical\" style={{ minHeight: 93 }} />,\n <InformationGridContainer>\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 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(<Divider orientation=\"vertical\" style={{ minHeight: 93 }} />);\n items.unshift(\n <InformationGrid\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 >\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: 64 }}>{items}</div>\n </SectionContainer>\n );\n}\n","import { css } from '@emotion/react';\nimport styled from '@emotion/styled/macro';\nimport { STIGG_WATERMARK_CLASSNAME } from '../../common/PoweredByStigg';\nimport { SectionContainer } from '../common/SectionContainer';\n\nexport const CustomerPortalPaywallLayout = styled(SectionContainer)<{\n $hideButtons: boolean;\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 ${({ $hideButtons }) =>\n $hideButtons &&\n css`\n .stigg-paywall-plan-button:not([disabled]) {\n display: none;\n }\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 hidePaywallButtons: boolean;\n theme: CustomerPortalTheme;\n title: string;\n isLoading: boolean;\n};\n\nexport const CustomerPortalPaywall = React.forwardRef<HTMLDivElement, CustomerPortalPaywallProps>(\n ({ paywallComponent, hidePaywallButtons, 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 $hideButtons={hidePaywallButtons}\n $backgroundColor={theme.backgroundColor}\n $borderColor={theme.borderColor}\n >\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`;","import { FeatureFragment } from '@stigg/api-client-js/src/generated/sdk';\nimport lowercase from 'lodash/lowerCase';\n\nexport function getFeatureDisplayName(feature: FeatureFragment) {\n return getFeatureDisplayNameText(feature.displayName, feature.featureUnits, feature.featureUnitsPlural);\n}\n\nexport function getFeatureDisplayNameText(featureDisplayName: string, featureUnits: string | undefined | null, featureUnitsPlural: string | undefined | null) {\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}","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`;","import { Typography } from '../../../common/Typography';\nimport isUndefined from 'lodash/isUndefined';\nimport React from 'react';\nimport { useCustomerPortalContext } from '../../CustomerPortalProvider';\nimport { BillingModel, CustomerPortalEntitlement } from '@stigg/js-client-sdk';\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 { CustomerPortalSubscriptionPriceFragment } from '@stigg/api-client-js/src/generated/sdk';\nimport { LongText } from '../../../common/LongText';\nimport { EntitlementCtaButton } from './EntitlementCTAButton';\nimport { OnBuyMoreCallbackFn } from '../../types';\n\nexport type UsageBoxProps = {\n entitlement: CustomerPortalEntitlement;\n subscriptionPrice: CustomerPortalSubscriptionPriceFragment | undefined;\n onManageSubscription: (() => void) | 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 >\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 >\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.nextResetDate ? (\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';\nimport { range } from 'lodash';\nimport Skeleton from 'react-loading-skeleton';\nimport React from 'react';\n\nexport const Footer = styled.div`\n margin-top: 32px;\n`;\n\nexport function CustomerUsageLoader() {\n return (\n <Grid container spacing={4} className=\"stigg-subscription-usage-skeleton-layout\">\n {range(6).map((item) => (\n <Grid key={item} item xs={4}>\n <Skeleton width={280} height={120} />\n </Grid>\n ))}\n </Grid>\n );\n}","import { useCustomerPortalContext } from '../CustomerPortalProvider';\nimport { MeterType, PricingType, SubscriptionStatus } from '@stigg/js-client-sdk';\nimport React from 'react';\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 { compact, keyBy } from 'lodash';\nimport { StyledButton } from '../common/StyledButton';\nimport { Minus, Plus } from 'react-feather';\nimport { Grid } from '@mui/material';\nimport { OnBuyMoreCallbackFn } from '../types';\n\nconst MAX_BOXES = 6;\n\nexport type CustomerUsageDataProps = {\n onManageSubscription?: () => void;\n onBuyMore?: OnBuyMoreCallbackFn;\n};\n\nexport function CustomerUsageData({ onManageSubscription, onBuyMore }: CustomerUsageDataProps) {\n const [showAll, setShowAll] = React.useState(false);\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(activeSubscription?.prices.map((subscriptionPrice) => subscriptionPrice.feature && entitlementByFeature[subscriptionPrice.feature.refId]));\n const otherEntitlements = compact(meteredEntitlements?.filter((entitlement) => !subscriptionPriceByFeature[entitlement.feature!.refId]));\n const sortedEntitlements = [...priceEntitlements, ...otherEntitlements];\n\n // 4 -> 3 per row, 6 -> 2 per row\n const xs = sortedEntitlements.length > 2 ? 4 : 6;\n\n const entitlementsToShow = showAll ? sortedEntitlements : sortedEntitlements.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\n <SectionHeader>\n <SectionTitle title={textOverrides.usageTabTitle} className=\"stigg-customer-portal-usage-section-title\" isLoading={isLoadingData} />\n </SectionHeader>\n\n {isLoadingData ? (\n <CustomerUsageLoader />\n ) : (\n <>\n <Grid container spacing={4}>\n {entitlementsToShow.map((entitlement) => (\n <Grid item 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 {sortedEntitlements.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 >\n {showAll ? 'Show less' : 'Show more'}\n </StyledButton>\n </Footer>\n )}\n </>\n )}\n </SectionContainer>\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 { PricingType } from '@stigg/js-client-sdk';\nimport { CustomerPortalLayout, CustomerPortalSections } from './CustomerPortal.style';\nimport { CustomerPortalProps } from './CustomerPortal';\nimport { InvoicesSection, useStiggContext } from '../..';\nimport { CustomerUsageData } from './usage/CustomerUsageData';\n\nexport function CustomerPortalContainer({\n onManageSubscription,\n onBuyMore,\n onCancelScheduledUpdates,\n onContactSupport,\n paywallComponent,\n hiddenSections,\n}: CustomerPortalProps) {\n const { stigg } = useStiggContext();\n const { customerPortal, textOverrides, theme, isLoading } = useCustomerPortalContext();\n const customerPortalSectionRef = useRef<HTMLDivElement>(null);\n\n const onManageClick = () => {\n if (onManageSubscription) {\n onManageSubscription();\n } else {\n customerPortalSectionRef?.current?.scrollIntoView({ behavior: 'smooth' });\n }\n };\n const hasCustomSubscription = customerPortal?.subscriptions.some(\n subscription => subscription.pricingType === PricingType.Custom,\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 && <CustomerUsageData onManageSubscription={onManageClick} onBuyMore={onBuyMore} />}\n <CustomerPortalPaywall\n ref={customerPortalSectionRef}\n paywallComponent={paywallComponent}\n hidePaywallButtons={!!hasCustomSubscription}\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 { CustomerPortalProvider } from './CustomerPortalProvider';\nimport { CustomerPortalContainer } from './CustomerPortalContainer';\nimport { DeepPartial } from '../../types';\nimport { CustomerPortalLocalization } from './customerPortalTextOverrides';\nimport { CustomerPortalTheme } from './customerPortalTheme';\nimport { CustomerPortalSubscription } from '@stigg/js-client-sdk';\nimport { OnBuyMoreCallbackFn } from './types';\n\nexport type CustomerPortalSection =\n | 'usage'\n | 'addons'\n | 'promotionalEntitlements'\n | 'billingInformation'\n | 'paymentDetails'\n | 'invoices';\n\nexport type CustomerPortalProps = {\n onManageSubscription?: () => Promise<void> | void;\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 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 ? <SkeletonButton /> : 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 >\n <SectionHeader className=\"stigg-invoices-section-header\">\n <SectionTitle isLoading={isLoadingData} className=\"stigg-invoices-section-title\" title={textOverrides.invoicesTitle} />\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\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\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","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 { useStiggContext } from '../../StiggProvider';\nimport { MockCheckoutStateCallback } from '../types';\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 };\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 } else if (price.maxUnitQuantity && quantity > price.maxUnitQuantity) {\n return price.maxUnitQuantity;\n }\n return quantity;\n};\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 } from '../../utils/priceTierUtils';\nimport { getValidPriceQuantity } from '../../utils/priceUtils';\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) {\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 hasMonthlyPrices = plan?.pricePoints.some((pricePoint) => pricePoint.billingPeriod === BillingPeriod.Monthly);\n const hasAnnualPrices = plan?.pricePoints.some((pricePoint) => pricePoint.billingPeriod === BillingPeriod.Annually);\n\n if (preferredBillingPeriod) {\n const billingPeriod = getBillingPeriod(preferredBillingPeriod, hasMonthlyPrices, hasAnnualPrices);\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(\n activeSubscription?.prices[0].billingPeriod,\n hasMonthlyPrices,\n hasAnnualPrices,\n );\n if (billingPeriod) {\n return billingPeriod;\n }\n }\n\n return hasAnnualPrices ? 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 { Addon } from '@stigg/js-client-sdk';\nimport { useCheckoutContext } from '../CheckoutProvider';\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\nexport function getProgressBarInitialState({ availableAddons }: { availableAddons?: Addon[] }) {\n if (availableAddons?.length === 0) {\n return { ...INITIAL_STATE, steps: CHECKOUT_STEPS.filter((step) => step.key !== CheckoutStepKey.ADDONS) };\n }\n\n return INITIAL_STATE;\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 { useStiggContext } from '../../StiggProvider';\nimport { useCheckoutContext } from '../CheckoutProvider';\nimport { useCheckoutModel } from './useCheckoutModel';\nimport { SubscriptionState, useSubscriptionModel } from './useSubscriptionModel';\nimport { MockCheckoutPreviewCallback } from '../types';\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};\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 };\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';\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}\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};\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}: {\n children: React.ReactNode;\n} & CheckoutProviderProps) {\n const { checkout, isLoading } = useLoadCheckout({ resourceId, planId, billingCountryCode, onMockCheckoutState });\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 availableAddons: isLoading ? undefined : addonsStep.availableAddons,\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 };\n\n return initialState;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [preferredBillingPeriod, billingCountryCode, checkout, isLoading, billingInformation?.taxDetails?.taxPercentage]);\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';\n\nexport const CheckoutLayout = styled.div`\n margin: auto;\n width: 100%;\n min-height: 760px;\n max-width: 920px;\n display: flex;\n position: relative;\n flex-direction: column;\n align-items: center;\n\n padding: 16px 32px;\n border-radius: 10px;\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`;\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\nexport const CheckoutPanel = styled(Box)`\n display: flex;\n flex-direction: column;\n gap: 0;\n flex: 2;\n`;\n","import styled from '@emotion/styled/macro';\nimport { Button, buttonClasses, LinearProgress, linearProgressClasses } from '@mui/material';\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 styled from '@emotion/styled/macro';\nimport { Grid } from '@mui/material';\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 { Box, StepIcon, Grid } from '@mui/material';\nimport { useCheckoutModel, useProgressBarModel } from '../hooks';\nimport { Typography } from '../../common/Typography';\nimport { StyledProgress, StyledStepButton, StyledIcon } from './CheckoutProgressBar.style';\nimport { Icons } from '../../common/Icon';\nimport { Skeleton } from '../components/Skeletons.style';\n\nexport const CheckoutProgressBar = () => {\n const { progressBarState, setActiveStep } = useProgressBarModel();\n const { widgetState } = useCheckoutModel();\n const { readOnly, isLoadingCheckoutData } = widgetState;\n const { activeStep, completedSteps, steps } = progressBarState || {};\n const progress = ((activeStep + 1) * 100) / steps.length;\n\n return (\n <Box sx={{ width: '100%', mb: 3 }}>\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 key={key} item display=\"flex\" flexDirection=\"row\" flex={1} 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 React from 'react';\n\nimport styled from '@emotion/styled/macro';\nimport { Button as MuiButton, ButtonProps } from '@mui/material';\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 } else 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 } else 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, TextField } from '@mui/material';\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 React from 'react';\nimport { Grid, Divider } from '@mui/material';\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 { 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, Grid } from '@mui/material';\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';\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';\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 } from '@stigg/js-client-sdk';\nimport { useCheckoutContext } from '../CheckoutProvider';\nimport { useCheckoutModel } from './useCheckoutModel';\nimport { useSubscriptionModel } from './useSubscriptionModel';\n\nexport function useSubscriptionState(): ApplySubscription | 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 ...(subscription.taxPercentage ? { billingInformation: { taxPercentage: subscription.taxPercentage } } : {}),\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\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 handleNewPaymentMethod({\n stripe,\n elements,\n setupIntentClientSecret,\n}: {\n stripe: Stripe | null;\n elements: StripeElements | null;\n setupIntentClientSecret?: string;\n}) {\n if (!stripe || !elements || !setupIntentClientSecret) {\n return { success: false };\n }\n\n const { newPaymentMethodId, setupErrorMessage } = await handleStripeSetup({\n stripe,\n elements,\n clientSecret: setupIntentClientSecret,\n });\n\n return { success: !!newPaymentMethodId, paymentMethodId: newPaymentMethodId, errorMessage: setupErrorMessage };\n}\n\nexport async function handleStripeNextAction({\n applySubscriptionResults,\n stripe,\n}: {\n applySubscriptionResults: ApplySubscriptionResults;\n stripe: Stripe | null;\n}) {\n const paymentIntentClientSecret = applySubscriptionResults?.subscription?.latestInvoice?.paymentSecret;\n if (\n stripe &&\n paymentIntentClientSecret &&\n applySubscriptionResults?.subscription?.paymentCollection === PaymentCollection.ActionRequired\n ) {\n const { error: NextActionError } = await stripe.handleNextAction({ clientSecret: paymentIntentClientSecret });\n if (NextActionError) {\n return { errorMessage: NextActionError.message || '' };\n }\n }\n\n return { subscription: applySubscriptionResults?.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","import styled from '@emotion/styled/macro';\nimport { Box } from '@mui/material';\nimport Color from 'color';\nimport React 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 return (\n <CheckoutSuccessContainer className=\"stigg-checkout-success-container\">\n <Lottie\n width={350}\n height=\"auto\"\n isClickToPauseDisabled\n options={{ loop: false, autoplay: true, animationData }}\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, handleStripeFormValidations, 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} & Pick<CheckoutContainerProps, 'onCheckout' | 'onCheckoutCompleted' | 'disableSuccessAnimation'>;\n\nexport function useSubmit({ onCheckout, onCheckoutCompleted, onSuccess, disableSuccessAnimation }: UseSubmitProps) {\n const { stigg } = useStiggContext();\n const { useNewPaymentMethod } = usePaymentStepModel();\n const subscriptionState = useSubscriptionState();\n const { checkoutState, widgetState, setWidgetReadOnly } = useCheckoutModel();\n const { setupSecret: setupIntentClientSecret } = 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 checkoutParams: ApplySubscription = { ...subscriptionState };\n let checkoutResults: ApplySubscriptionResults | undefined;\n let errorMessage: string | undefined;\n let paymentMethodId: string | undefined;\n\n const checkoutAction = async (): Promise<CheckoutResult> => {\n if (useNewPaymentMethod) {\n const { success, errorMessage: stripeValidationsErrorMessage } = await handleStripeFormValidations({\n elements,\n });\n\n if (!success) {\n return { success: false, errorMessage: stripeValidationsErrorMessage };\n }\n\n const paymentMethodResults = await handleNewPaymentMethod({ elements, stripe, setupIntentClientSecret });\n if (!paymentMethodResults.success) {\n errorMessage = paymentMethodResults.errorMessage;\n }\n\n paymentMethodId = paymentMethodResults.paymentMethodId;\n }\n\n if (errorMessage) {\n return { success: false, errorMessage };\n }\n\n checkoutParams = { ...checkoutParams, paymentMethodId };\n\n try {\n const applySubscriptionResults = await stigg.applySubscription(checkoutParams);\n const nextActionResults = await handleStripeNextAction({\n applySubscriptionResults,\n stripe,\n });\n\n checkoutResults = nextActionResults;\n if (nextActionResults.errorMessage) {\n errorMessage = nextActionResults.errorMessage;\n }\n\n return { success: !nextActionResults.errorMessage, errorMessage: nextActionResults.errorMessage };\n } catch (e) {\n console.error(e);\n errorMessage = (e as any)?.message;\n return { success: false, errorMessage };\n }\n };\n\n setWidgetReadOnly(true);\n\n let success = false;\n if (onCheckout) {\n const externalCheckoutResults = await onCheckout({ checkoutParams, checkoutAction });\n if (!externalCheckoutResults.success && externalCheckoutResults.errorMessage) {\n errorMessage = externalCheckoutResults.errorMessage;\n }\n success = externalCheckoutResults.success && !errorMessage;\n } else {\n const checkoutActionResults = await checkoutAction();\n if (!checkoutActionResults.success && checkoutActionResults.errorMessage) {\n errorMessage = checkoutActionResults.errorMessage;\n }\n success = checkoutActionResults.success && !errorMessage;\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 { 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=\"caption\" style={{ marginTop: 14 }}>\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=\"caption\" style={{ marginTop: 14 }}>\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 }}>\n <WithSkeleton isLoading={isFetchingSubscriptionPreview} width=\"100%\">\n {text}\n </WithSkeleton>\n </Typography>\n );\n};\n\nexport function CheckoutCaptions(props: CheckoutCaptionProps) {\n return (\n <>\n <RemainingCreditsCaption {...props} />\n\n <ScheduledUpdatesCaption {...props} />\n\n <NextBillingCaption {...props} />\n </>\n );\n}\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { Grid } from '@mui/material';\nimport {\n BillingModel,\n BillingPeriod,\n Price,\n SubscriptionPreviewInvoice,\n SubscriptionPreviewV2,\n} from '@stigg/js-client-sdk';\nimport { Typography } from '../../../common/Typography';\nimport { currencyPriceFormatter } from '../../../utils/currencyUtils';\nimport { getTierByQuantity } from '../../../utils/priceTierUtils';\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';\n\nexport const LineItemContainer = styled.div`\n & + & {\n margin-top: 8px;\n }\n`;\n\nexport const LineItemRow = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n`;\n\nexport const getPriceString = ({ amount, price, quantity }: { amount: number; price: Price; quantity: number }) => {\n const { billingPeriod } = price;\n let billingPeriodString = null;\n\n if (billingPeriod === BillingPeriod.Annually) {\n amount /= 12;\n billingPeriodString = '12 months';\n }\n\n const addonPriceFormat = currencyPriceFormatter({ amount, currency: price.currency, minimumFractionDigits: 2 });\n\n return `${quantity > 1 ? `${quantity} x ${addonPriceFormat} each` : addonPriceFormat}${\n billingPeriodString ? ` x ${billingPeriodString}` : ''\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 { billingPeriod } = price;\n const isPayAsYouGo = price.pricingModel === BillingModel.UsageBased;\n\n let amount;\n if (price.isTieredPrice) {\n const tier = getTierByQuantity(price.tiers!, quantity);\n amount = tier!.unitPrice.amount!;\n } else {\n amount = price.amount!;\n }\n\n return (\n <LineItemContainer>\n <LineItemRow style={{ alignItems: 'flex-start' }}>\n <Grid item>\n <Typography variant=\"body1\" color=\"secondary\">\n {label}\n </Typography>\n {(quantity > 1 || billingPeriod === BillingPeriod.Annually) && (\n <Typography variant=\"body1\" color=\"secondary\">\n {getPriceString({ amount, price, quantity })}\n </Typography>\n )}\n </Grid>\n <Grid item display=\"flex\" gap={1} alignItems=\"center\">\n {isPayAsYouGo && <PayAsYouGoPriceTooltip checkoutLocalization={checkoutLocalization} />}\n <Typography variant=\"body1\" color=\"secondary\" style={{ wordBreak: 'break-word' }}>\n {currencyPriceFormatter({ amount: quantity * amount, currency: price.currency, minimumFractionDigits: 2 })}\n {isPayAsYouGo && ' / unit'}\n </Typography>\n </Grid>\n </LineItemRow>\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, CircularProgress, Divider, Grid, Paper } from '@mui/material';\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';\n\nexport const SummaryContainer = styled(Box)`\n max-width: 470px;\n flex: 1.5;\n`;\n\nexport const SummaryCard = styled(Paper)`\n border-radius: 10px;\n background: ${({ theme }) => theme.stigg.palette.backgroundHighlight};\n padding: 16px;\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}: CheckoutContainerProps & { isFreeDowngrade: 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 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 display=\"flex\" flexDirection=\"row\" alignItems=\"center\" 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 {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\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\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 = () => {\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\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';\n\nimport { Button } from '../../components';\n\nexport const CheckoutAddonsContainer = styled(Grid)`\n width: 100%;\n gap: 8px;\n`;\n\nexport const AddonListItemContainer = styled(Grid)`\n display: flex;\n justify-content: space-between;\n align-items: center;\n height: 80px;\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';\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';\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 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>\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 sx={{ width: 120, marginX: 2 }}\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 styled from '@emotion/styled';\nimport { Grid } from '@mui/material';\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)`\n flex-direction: column;\n align-items: unset;\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, Grid, Radio } from '@mui/material';\nimport { Customer } from '@stigg/js-client-sdk';\n\nimport { Icon, Icons } from '../../../common/Icon';\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 icon: Icons;\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} & Pick<CheckoutContainerProps, 'onBillingAddressChange' | 'collectPhoneNumber'>;\n\nfunction PaymentMethodLayout({ checked, icon, text, subtitle, readOnly }: PaymentMethodLayoutProps) {\n return (\n <PaymentMethodLayoutContainer>\n <Radio checked={checked} disabled={readOnly} />\n <Icon icon={icon} style={{ display: 'flex' }} />\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 icon=\"PaymentMethod\"\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 checked,\n onSelect,\n readOnly,\n checkoutLocalization,\n onBillingAddressChange,\n collectPhoneNumber,\n}: NewPaymentMethodProps) {\n return (\n <NewPaymentMethodContainer item onClick={onSelect} $disabled={readOnly}>\n <PaymentMethodLayout\n checked={checked}\n readOnly={readOnly}\n icon=\"PaymentMethod\"\n text={<Typography variant=\"h6\">{checkoutLocalization.newPaymentMethodText}</Typography>}\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, Grid } from '@mui/material';\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 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 { ButtonProps } from '@mui/material/Button';\nimport { Button } from '@mui/material';\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, Divider } from '@mui/material';\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, Chip } from '@mui/material';\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, Radio } from '@mui/material';\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';\nimport { BillableFeatureInput } from '@stigg/api-client-js/src/generated/sdk';\nimport { BillingModel, BillingPeriod, Plan, Price, PriceTierFragment } 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 { getTierByQuantity } from '../../../utils/priceTierUtils';\nimport { getValidPriceQuantity } from '../../../utils/priceUtils';\nimport { getFeatureDisplayNameText } from '../../../utils/getFeatureName';\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 flex-direction: row;\n justify-content: space-between;\n align-items: center;\n min-height: 60px;\n margin-top: 16px;\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 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 && featureId) {\n const tier = getTierByQuantity(charge.tiers!, billableFeature!.quantity || 1);\n chargeRow = (\n <TiersSelectContainer\n componentId={`${featureId}-tiers`}\n tiers={charge.tiers}\n selectedTier={tier}\n handleTierChange={(tier: PriceTierFragment) => {\n setBillableFeature(featureId, tier.upTo);\n }}\n />\n );\n } else {\n chargeRow = (\n <InputField\n sx={{ width: 120 }}\n id={`${featureId}-input`}\n type=\"number\"\n error={!isValid}\n helperText={!isValid ? getValidationText(charge, billableFeature?.quantity) : undefined}\n FormHelperTextProps={{ sx: { margin: '4px' } }}\n value={billableFeature?.quantity ?? ''}\n onChange={handleQuantityChange}\n onWheel={(e: React.WheelEvent<HTMLInputElement>) => (e.target as HTMLElement).blur()}\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 <div>\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 </div>\n );\n}\n","import styled from '@emotion/styled/macro';\nimport { Box } from '@mui/material';\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 { Alert, Box } from '@mui/material';\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 { PricingType, BillingAddress, ApplySubscription, CheckoutStatePlan } 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 };\n\nexport type OnCheckoutParams = { checkoutParams: ApplySubscription; checkoutAction: () => Promise<CheckoutResult> };\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 }] = 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 freePlan={plan!}\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 },\n },\n }}>\n <CheckoutLayout className=\"stigg-checkout-layout\">\n {!isFreeDowngrade && <CheckoutProgressBar />}\n <CheckoutContent>\n <CheckoutPanel>{isLoadingCheckoutData ? <ContentLoadingSkeleton /> : checkoutContent}</CheckoutPanel>\n {isLoadingCheckoutData ? (\n <CheckoutSummarySkeleton />\n ) : (\n <CheckoutSummary\n disablePromotionCode={disablePromotionCode}\n disableSuccessAnimation={disableSuccessAnimation}\n onCheckout={onCheckout}\n onCheckoutCompleted={onCheckoutCompleted}\n isFreeDowngrade={isFreeDowngrade}\n onMockCheckoutPreview={onMockCheckoutPreview}\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 ...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 <CheckoutContainer {...containerProps} />\n </CheckoutProvider>\n );\n};\n","import { Subscription } from '@stigg/js-client-sdk';\nimport { useEffect, useMemo, useState } from 'react';\nimport { useStiggContext } from '../StiggProvider';\n\nfunction useQueryParams(paramName?: string) {\n return useMemo(() => {\n const urlSearchParams = new URLSearchParams(window.location.search);\n return paramName ? urlSearchParams.get(paramName) : urlSearchParams;\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 onProvisionStart && onProvisionStart();\n try {\n const subscription = await stigg.waitForCheckoutCompleted();\n setProvisionStatus(ProvisionStatus.SUCCEEDED);\n onProvisionSucceeded && onProvisionSucceeded(subscription);\n } catch (err) {\n console.error('Failed to wait for checkout to complete', err);\n setProvisionStatus(ProvisionStatus.FAILED);\n onProvisionFailed && onProvisionFailed(err);\n } finally {\n setIsAwaitingCheckout(false);\n }\n };\n\n waitForCheckoutToComplete();\n }, [stigg, checkoutCompleted]);\n\n return { isAwaitingCheckout, provisionStatus };\n};\n"],"names":["_extends","React.createElement","calculateUnitQuantityText","minUnitQuantity","maxUnitQuantity","unitsPlural","unitsText","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","rest","useTheme","level","levelClassName","className","React","EntitlementName","EntitlementRowContainer","EntitlementCheckIcon","CheckUrl","disabled","formatUsageNumber","usageLimit","toLocaleString","maximumFractionDigits","getResetPeriodText","resetPeriod","EntitlementResetPeriod","Day","Hour","Week","Month","getEntitlementDisplay","hasUnlimitedUsage","feature","isCustom","unitBasedEntitlement","resetPeriodSuffix","featureUnits","units","displayName","EntitlementRow","displayNameOverride","restProps","PlanEntitlementsContainer","getTitle","plan","paywallLocale","entitlementsTitle","title","basePlan","PlanEntitlements","billingPeriod","prices","pricePoints","filter","price","unitBasedEntitlements","map","shouldRenderUnitBasedEntitlement","key","entitlements","entitlement","hiddenFromWidgets","includes","WidgetType","Paywall","id","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","secondary","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","featureId","featureUnitsPlural","newUnitAmount","getPriceFeatureUnit","unitQuantity","getTierByQuantity","tiers","quantity","ascendingTiers","sort","a","b","upTo","tier","length","calculateTierPrice","currentTier","selectedBillingPeriod","shouldShowMonthlyPriceAmount","tiersMode","TiersMode","Volume","unitPrice","Annually","amount","getSelectedTier","currentSubscription","selectedTierByFeature","planTierPrices","isTieredPrice","tieredPrice","subscriptionPrice","pricingModel","BillingModel","PerUnit","result","PriceTierComparison","compareSelectedTierToCurrentTier","Equal","currentTierPrice","selectedTier","Lower","Higher","LoadingIndicator","ClipLoader","OfferingButton","$disabled","css","ButtonText","ScheduledUpdateText","CancelScheduledUpdateButton","TrialDaysLeft","ButtonLayout","PlanOfferingButton","isNextPlan","customer","isCustomerOnTrial","onPlanSelected","hasTiersRow","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","_path","currencyPriceFormatter","currency","Currency","Usd","locale","minimumFractionDigits","currencyString","currencySymbol","getSymbolFromCurrency","formattedPrice","Intl","NumberFormat","currencyDisplay","replace","getPaidPriceText","planPrices","paywallCalculatedPrice","priceAmount","isSinglePrice","priceNumber","tierUnits","pricePeriod","Monthly","unit","featureUnit","UsageBased","getPlanPrice","free","paywallCurrency","Paid","pricePoint","paywallCalculatedPricePoints","priceNotSet","paidParams","paid","TierSelect","Select","TierInput","OutlinedInput","TiersSelectContainer","componentId","handleTierChange","handleChange","event","_","target","value","minHeight","fullWidth","onChange","input","MenuProps","MenuListProps","disablePadding","PaperProps","sx","marginTop","borderRadius","MenuItem","lineHeight","EMPTY_CHAR","PlanPriceContainer","UnitSpan","PriceSpan","PriceBillingPeriod","hasMonthlyPrice","hasAnnuallyPrice","hasPrice","content","toLowerCase","PlanPrice","showStartingAt","withUnitPriceRow","withStartingAtRow","withTiersRow","setSelectedTierByFeature","planPrice","undefined","prevState","startingAtCaption","PlanOfferingContainer","$isCurrentPlan","$isHighlighted","PlanHeader","Divider","PlanDescription","HighlightBadge","HighlightText","HeaderWrapper","NextPlanTagContainer","StyledMiniSchedule","MiniSchedule","UpcomingChangeTag","iconsColor","Grid","display","alignItems","gap","PlanOffering","isHighlighted","shouldShowDescriptionSection","additionalChargesMayApply","planBadge","highlightChip","useEffect","onPlanButtonClick","billableFeatures","Object","keys","classNames","description","PickerContainer","PeriodText","StyledSwitch","Switch","DiscountRate","discount","BillingPeriodPicker","discountRate","onBillingPeriodChanged","availableBillingPeriods","isMonthlyBillingPeriod","uncheckedIcon","checkedIcon","width","isAnnuallySelected","checked","handleDiameter","calculateDiscountRate","monthlyPrice","annuallyPrice","annuallyPerMonthPrice","Math","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","hasPricePointsForPlans","some","hasPricePoints","getPlansToDisplay","PaywallPlansContainer","PaywallContainer","PaywallLayout","highlightedPlanId","useStiggContext","plansToShow","handleOnSubscribe","useCallback","subscription","isWidgetWatermarkEnabled","LoggerService","message","params","console","log","object","debug","StiggContext","createContext","DEFAULT_LOCALE","StiggProvider","apiKey","baseUri","baseEdgeUri","enableEdge","customerId","customerToken","resourceId","useEntitlementPolling","entitlementPollingInterval","entitlementsFallback","stiggClient","currentApiKey","useRef","initializeParams","Stigg","initialize","lazyLoad","isInitialized","refreshData","setContext","ctx","customerPortalUpdatedAt","Date","refresh","isMounted","safeSetContext","setContextFunc","onEntitlementsUpdated","updatedAt","setStiggInstance","removeListener","addListener","loadStiggClient","current","logger","waitForInitialization","clearCustomer","setCustomerId","Provider","SkeletonTheme","baseColor","highlightColor","useContext","Error","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","borderColor","currentPlanBackground","mapPaywallConfiguration","paywallConfiguration","backgroundColor","planWidth","mapCheckoutConfiguration","summaryBackgroundColor","getCustomerSubscriptionDetails","s","InTrial","mapPaywallData","paywall","showOnlyEligiblePlans","scheduledUpdates","downgradeSchedule","billingChangedSchedule","paywallPlans","sortBy","order","eligibleForProductTrial","eligibleForTrial","productTrial","productId","product","currentBillingPeriod","downgradeVariables","billingChangedVariables","isPlanHasBillingPeriodPrice","refId","planId","defaultTrialConfig","eligible","isUpcomingPlan","currentPlanOrder","useLoadPaywallData","billingCountryCode","setSelectedBillingPeriod","setAvailableBillingPeriods","setPaywall","loadPaywall","getPaywall","paywallResult","isCustomerLoaded","paywallData","getResolvedPaywallLocalize","localizeOverride","paywallDefaultLocalization","duration","symbol","SkeletonContainer","PlanOfferingSkeleton","PlansContainer","EntitlementContainer","FooterSkeletonLoader","BillingPeriodLoader","PlanOfferingLoader","Skeleton","circle","marginBottom","PaywallLoader","Fonts","externalFontUrl","Global","styles","CustomCssGlobal","useStiggTheme","remoteThemeOverride","externalTheme","mergedTheme","resolvedTheme","createTypographyTheme","htmlFontSize","coef","Number","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","StyledButton","MuiButton","SectionHeader","$disableMargin","SectionTitle","StyledEditIcon","EditIcon","SubscriptionsOverviewHeader","onManageSubscription","hideManageButton","marginLeft","AddonsList","addons","subscriptions","isEmpty","addon","index","addonId","Row","$borderColor","getPromotionTitle","promotionalEntitlement","Promotions","promotionalEntitlements","flexDirection","endDate","StyledTabs","Tabs","TabsLayout","TabContent","Box","$maxHeight","ListBox","$backgroundColor","getIconColor","_rect","_path2","_g","_defs","_path3","_circle","IconWrapper","$pathColor","$rectColor","$strokeColor","Icon","icon","svgPathColor","svgRectColor","svgStrokeColor","IconComponent","customIcons","TabPanel","maxHeight","other","role","hidden","TabTitle","isSelected","label","Medium","SubscriptionTabs","hiddenSections","allAddons","isSectionHidden","sectionName","section","showAddons","showPromotions","setValue","newValue","shouldShowTabs","borderBottom","Tab","textTransform","SkeletonLayout","SkeletonLayoutLeft","SubscriptionOverviewLoader","SubscriptionScheduledUpdateDowngradeRow","scheduleUpdate","container","ArrowDown","item","SubscriptionScheduledUpdateBillingPeriodChangeRow","nextBillingPeriod","SubscriptionScheduledUpdateUnitQuantityChangeRow","newQuantityUnits","flexWrap","SubscriptionScheduledUpdateRow","SubscriptionScheduleUpdateAlertContainer","StyledRestoreIcon","Restore","MultipleScheduledUpdates","justifyContent","SingleScheduledUpdate","SubscriptionScheduledUpdatesAlert","onCancelScheduledUpdates","stiggTheme","isSingleScheduledUpdate","flex","marginRight","SectionContainer","NextEstimatedBill","rangeEnd","NoUpcomingBilling","ContactCustomerSupportLayout","ContactSupportButton","Button","ContactCustomerSupport","onContactSupport","linkLabel","contactSupportText","Container","UpcomingBilling","noUsageBasedPrices","every","billingModel","scheduledDowngradeToFree","planName","total","totalPrice","InformationTooltip","placement","Tooltip","arrow","classes","popper","tooltip","$padding","$maxWidth","tooltipClasses","maxWidth","boxShadow","padding","styled","$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","SubscriptionView","mainSubscription","trialSubscription","USAGE_PERCENTAGE_WARNING_THRESHOLD","getUsagePercentage","currentUsage","limit","min","floor","getUsageProgressStatus","getResetUsageText","nextResetDate","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","push","orientation","name","email","defaultPaymentMethodId","defaultPaymentMethodLast4Digits","defaultPaymentExpirationMonth","defaultPaymentExpirationYear","unshift","padStart","editButton","billingPortalUrl","CustomerPortalPaywallLayout","$hideButtons","CustomerPortalPaywall","paywallComponent","hidePaywallButtons","CustomerPortalLayout","CustomerPortalSections","getFeatureDisplayName","getFeatureDisplayNameText","featureDisplayName","displayNameLowerCase","lowercase","FeatureUsageContainer","$highlight","FeatureUsage","hasOverageUsage","isUndefined","Footer","CustomerUsageLoader","spacing","range","xs","MAX_BOXES","CustomerUsageData","showAll","setShowAll","meteredEntitlements","meterType","MeterType","Fluctuating","Incremental","subscriptionPriceByFeature","priceEntitlements","otherEntitlements","sortedEntitlements","entitlementsToShow","slice","toggleShowAll","Minus","Plus","CustomerPortalContainer","customerPortalSectionRef","onManageClick","scrollIntoView","behavior","shouldShowUsage","shouldShowPaymentDetails","shouldShowInvoices","InvoicesSection","CustomerPortal","viewInvoiceHistoryButton","sortAddons","sortSubscriptionAddons","filterAddons","filterAddonPricePointsByBillingPeriod","mapAddonPricePointsByBillingCountryCode","filterSubscriptionAddons","getAddonsStepInitialState","availableAddons","compatibleAddons","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","getBillingPeriod","hasMonthlyPrices","hasAnnualPrices","isInAdvanceCommitmentCharge","getBillableFeatures","preconfiguredBillableFeatures","preconfBillableFeaturesByFeatureId","quantityByFeatureId","charge","preconfiguredQuantity","resolveBillingPeriod","isUpdate","getPlanStepInitialState","usePlanState","planStep","useSetBillableFeature","billableFeature","useSetBillingPeriod","usePlanStepModel","setBillingPeriod","setBillableFeature","CheckoutStepKey","CHECKOUT_STEPS","PLAN","ADDONS","PAYMENT","INITIAL_STATE","activeStep","completedSteps","steps","getProgressBarInitialState","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","type","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","CheckoutContext","CheckoutContextProvider","initialState","innerSetState","updater","old","produce","useMemo","contextValue","setContextValue","CheckoutProvider","checkoutTheme","resource","isLoadingCheckoutData","CheckoutLayout","CheckoutContent","CheckoutPanel","StyledProgress","shouldForwardProp","prop","startsWith","linearProgressClasses","root","bar","StyledStepButton","buttonClasses","StyledIcon","$shouldFill","stroke","fill","SkeletonsContainer","$flexDirection","$gap","FlexedSkeletonContainer","FlexedSkeleton","ReactSkeleton","CheckoutProgressBar","progress","mb","isCompleted","StepIcon","CHARGES_BILLING_MODEL_ORDER","FlatFee","sortCharges","charges","indexOf","useChargesSort","$success","$error","InputField","TextField","fieldset","ContentContainer","ContentLoadingSkeleton","marginY","usePromotionCodeState","useSetPromotionCode","usePromotionCodeModel","setPromotionCode","StyledPlusIcon","PlusIcon","AddPromotionCodeButton","onAddClick","CouponCodeAddButton","AddPromotionCode","persistPromotionCode","showInput","setShowInput","handlePromotionCode","immediateInvoice","toUpperCase","autoFocus","e","inputProps","maxLength","onKeyDown","preventDefault","InputProps","endAdornment","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","handleStripeFormValidations","elements","submit","elementsError","handleNewPaymentMethod","stripe","handleStripeSetup","clientSecret","newPaymentMethodId","setupErrorMessage","paymentMethodId","handleStripeNextAction","applySubscriptionResults","paymentIntentClientSecret","latestInvoice","paymentSecret","paymentCollection","PaymentCollection","ActionRequired","handleNextAction","NextActionError","confirmSetup","confirmParams","return_url","href","redirect","setupError","retrieveSetupIntent","setupIntent","payment_method","ANIMATION_DURATION","CheckoutSuccessContainer","CheckoutSuccessText","CheckoutSuccess","Lottie","isClickToPauseDisabled","loop","autoplay","animationData","delay","ms","res","useSubmit","onCheckout","onCheckoutCompleted","onSuccess","disableSuccessAnimation","subscriptionState","useStripe","useElements","handleSubmit","checkoutParams","checkoutAction","stripeValidationsErrorMessage","paymentMethodResults","applySubscription","nextActionResults","checkoutResults","externalCheckoutResults","checkoutActionResults","results","WithSkeleton","RemainingCreditsCaption","proration","netAmount","positiveAmount","ScheduledUpdatesCaption","hasScheduledUpdates","currentBillingPeriodEnd","changesWillApplyText","NextBillingCaption","recurringInvoice","hasUnitBasedPricing","hasNonUnitBasedPricing","totalAmountText","nextBillingDate","billingPeriodText","CheckoutCaptions","LineItemContainer","LineItemRow","getPriceString","billingPeriodString","addonPriceFormat","PayAsYouGoPriceTooltip","BilledPriceLineItem","isPayAsYouGo","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","values","PaymentMethodContainer","NewPaymentMethodContainer","PaymentMethodLayoutContainer","PaymentMethodTextContainer","PaymentMethodLayout","subtitle","Radio","ExistingPaymentMethod","onSelect","last4Digits","expirationMonth","expirationYear","NewPaymentMethod","Collapse","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","onWheel","blur","CheckoutChargeList","planCharges","p","chargesValidation","setChargesValidation","prev","CheckoutPlanContainer","CheckoutPlanStep","StyledArrowRightIcon","ArrowRightIcon","DowngradeToFreePlansContainer","DowngradeToFreeAlert","DowngradeToFreePlanBox","DowngradeToFreeContent","headerText","priceText","DowngradeToFreePlan","freePlan","alertAction","paidBillingPeriod","action","getStepProps","CheckoutContainer","checkoutContent","stripeElementsMode","Elements","appearance","colorText","colorPrimaryText","colorTextPlaceholder","Checkout","containerProps","useQueryParams","paramName","urlSearchParams","URLSearchParams","search","get","ProvisionStatus","useWaitForCheckoutCompleted","onProvisionStart","onProvisionSucceeded","onProvisionFailed","IN_PROGRESS","provisionStatus","setProvisionStatus","isAwaitingCheckout","setIsAwaitingCheckout","checkoutCompleted","waitForCheckoutToComplete","waitForCheckoutCompleted","SUCCEEDED","FAILED"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}
1
+ {"version":3,"file":"react-sdk.esm.js","sources":["../src/assets/check-stigg.svg","../src/components/paywall/utils/calculateUnitQuantityText.ts","../src/components/common/Typography.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/assets/mini-schedule.svg","../src/components/utils/currencyUtils.ts","../src/components/utils/getPaidPriceText.ts","../src/components/utils/getPlanPrice.ts","../src/components/common/TiersSelectContainer.tsx","../src/components/paywall/PlanPrice.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/StiggProvider.tsx","../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/paywall/hooks/useLoadPaywallData.ts","../src/components/paywall/paywallTextOverrides.ts","../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/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/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/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/components/common/Icon.tsx","../src/components/customerPortal/subscriptionOverview/tabs/SubscriptionTabs.tsx","../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/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/components/Skeletons.style.ts","../src/components/checkout/progressBar/CheckoutProgressBar.tsx","../src/components/hooks/useChargeSort.ts","../src/components/checkout/components/Button.tsx","../src/components/checkout/components/InputField.tsx","../src/components/checkout/components/ContentLoadingSkeleton.tsx","../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/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"],"sourcesContent":["<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","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","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 | '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} & 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 ...rest\n } = props;\n const theme = useTheme() as Theme;\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 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 React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { EntitlementResetPeriod } from '@stigg/js-client-sdk';\nimport CheckUrl from '../../assets/check-stigg.svg';\nimport { calculateUnitQuantityText } from './utils/calculateUnitQuantityText';\nimport { Typography } from '../common/Typography';\n\nconst EntitlementName = styled(Typography)`\n margin: 0;\n`;\n\nconst EntitlementRowContainer = styled.div`\n display: flex;\n align-items: baseline;\n`;\n\nconst EntitlementIconContainer = styled.div`\n display: flex;\n align-items: center;\n margin-right: 16px;\n height: ${({ theme }) => theme.stigg.typography.h3.fontSize};\n flex-shrink: 0;\n`;\n\nconst EntitlementCheckIcon = styled(CheckUrl)`\n flex-shrink: 0;\n * {\n fill: ${({ theme }) => theme.stigg.palette.text.disabled};\n }\n`;\n\nfunction formatUsageNumber(usageLimit: number) {\n return usageLimit.toLocaleString('en-US', {\n maximumFractionDigits: 0,\n });\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 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 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 `${formatUsageNumber(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\">\n <EntitlementIconContainer>\n <EntitlementCheckIcon 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) {\n if (paywallLocale.entitlementsTitle) {\n return paywallLocale.entitlementsTitle(plan);\n }\n let title = `${plan.displayName} includes`;\n if (plan.basePlan) {\n title = `Everything in ${plan.basePlan.displayName}, 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?.map(price => {\n const shouldRenderUnitBasedEntitlement =\n (price?.minUnitQuantity && price?.minUnitQuantity > 1) || price?.maxUnitQuantity;\n\n if (!shouldRenderUnitBasedEntitlement) {\n return null;\n }\n\n return (\n <EntitlementRow\n key={`priceUnitEntitlement-${price?.feature?.displayName}`}\n feature={price?.feature}\n minUnitQuantity={price?.minUnitQuantity}\n maxUnitQuantity={price?.maxUnitQuantity}\n />\n );\n });\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)}\n </Typography>\n {unitBasedEntitlements}\n {plan.entitlements\n .filter(entitlement => !(entitlement.hiddenFromWidgets || []).includes(WidgetType.Paywall))\n .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 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 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","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 disabled: textColor.alpha(0.5).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 { BillingPeriodChangeVariables, UnitAmountChangeVariables } from '../../types';\nimport { CustomerPortalSubscriptionPriceFragment } from '@stigg/api-client-js/src/generated/sdk';\nimport { compact, map } from 'lodash';\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 { PaywallPlan } from '../paywall/types';\n\nimport { BillingModel, TiersMode, BillingPeriod, Price, PriceTierFragment, Subscription } from '@stigg/js-client-sdk';\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) {\n if (!tiers) return;\n\n const ascendingTiers = [...tiers];\n ascendingTiers.sort((a, b) => a.upTo - b.upTo);\n\n for (const tier of ascendingTiers) {\n if (quantity <= tier.upTo) {\n return tier;\n }\n }\n\n return ascendingTiers[ascendingTiers.length - 1];\n}\n\nexport function calculateTierPrice(\n price: Price,\n currentTier: PriceTierFragment,\n selectedBillingPeriod: BillingPeriod,\n shouldShowMonthlyPriceAmount: boolean,\n): number {\n switch (price.tiersMode) {\n case TiersMode.Volume:\n const unitPrice =\n selectedBillingPeriod === BillingPeriod.Annually && shouldShowMonthlyPriceAmount\n ? currentTier.unitPrice.amount / 12\n : currentTier.unitPrice.amount;\n\n return unitPrice * currentTier.upTo;\n }\n\n return 0;\n}\n\nexport function getSelectedTier(\n plan: PaywallPlan,\n billingPeriod: BillingPeriod,\n currentSubscription: Subscription | null,\n selectedTierByFeature: Record<string, PriceTierFragment>,\n): Record<string, PriceTierFragment> {\n const planTierPrices = plan.pricePoints.filter(price => price.billingPeriod === billingPeriod && price.isTieredPrice);\n\n if (planTierPrices.length == 1) {\n const [price] = planTierPrices;\n const featureId = price.feature!.featureId;\n\n let currentTier = price.tiers![0];\n\n if (selectedTierByFeature[featureId]) {\n currentTier = price.tiers?.find(tier => tier.upTo === selectedTierByFeature[featureId].upTo) || currentTier;\n } else if (currentSubscription) {\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 currentTier = getTierByQuantity(price.tiers!, tieredPrice.feature!.unitQuantity || 1)!;\n }\n }\n\n const result: Record<string, PriceTierFragment> = {};\n result[featureId] = currentTier;\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 selectedTierByFeature: Record<string, PriceTierFragment>,\n currentSubscription: Subscription | null,\n): PriceTierComparison {\n if (!currentSubscription || !selectedTierByFeature) {\n return PriceTierComparison.Equal;\n }\n\n const currentTierPrice = currentSubscription.prices.find(\n price => price.pricingModel == BillingModel.PerUnit && price.tiersMode,\n );\n if (!currentTierPrice) {\n return PriceTierComparison.Equal;\n }\n\n const { featureId, unitQuantity } = currentTierPrice.feature!;\n\n if (!unitQuantity) {\n return PriceTierComparison.Equal;\n }\n\n const selectedTier = selectedTierByFeature[featureId];\n if (!selectedTier) {\n return PriceTierComparison.Equal;\n }\n\n if (selectedTier.upTo < unitQuantity!) {\n return PriceTierComparison.Lower;\n }\n\n if (selectedTier.upTo > unitQuantity!) {\n return PriceTierComparison.Higher;\n }\n\n return PriceTierComparison.Equal;\n}\n","import React, { useState } from 'react';\nimport { BillingPeriod, Customer, PriceTierFragment, 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 { 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 billingPeriod: BillingPeriod;\n isCustomerOnTrial: boolean;\n paywallLocale: PaywallLocalization;\n onPlanSelected: (intentionType: SubscribeIntentionType) => void | Promise<void>;\n withTrialLeftRow: boolean;\n selectedTierByFeature: Record<string, PriceTierFragment>;\n};\n\nexport function PlanOfferingButton({\n isNextPlan,\n customer,\n plan,\n billingPeriod,\n isCustomerOnTrial,\n onPlanSelected,\n paywallLocale,\n withTrialLeftRow,\n currentSubscription,\n selectedTierByFeature,\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(selectedTierByFeature, currentSubscription);\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 = 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","<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","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}: {\n amount: number;\n currency?: Currency | string;\n locale?: string;\n maximumFractionDigits?: number;\n minimumFractionDigits?: number;\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 ...(currencySymbol ? { currencyDisplay: 'code' } : {}),\n }).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","import {\n BillingModel,\n BillingPeriod,\n PaywallCalculatedPricePoint,\n Price,\n PriceTierFragment,\n} from '@stigg/js-client-sdk';\nimport { currencyPriceFormatter } from './currencyUtils';\nimport { PlanPriceText } from './getPlanPrice';\nimport { calculateTierPrice, getPriceFeatureUnit } from './priceTierUtils';\nimport { PaywallLocalization } from '../paywall';\n\ntype GetPaidPriceTextParams = {\n planPrices: Price[];\n paywallCalculatedPrice?: PaywallCalculatedPricePoint;\n selectedBillingPeriod: BillingPeriod;\n locale: string;\n shouldShowMonthlyPriceAmount: boolean;\n selectedTierByFeature: Record<string, PriceTierFragment>;\n paywallLocale: PaywallLocalization;\n};\n\nexport function getPaidPriceText({\n planPrices,\n paywallCalculatedPrice,\n selectedBillingPeriod,\n locale,\n shouldShowMonthlyPriceAmount,\n selectedTierByFeature,\n paywallLocale,\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) {\n let currentTier = price.tiers![0];\n if (selectedTierByFeature[price.feature!.featureId]) {\n currentTier = selectedTierByFeature[price.feature!.featureId] || currentTier;\n\n tiers = price.tiers;\n tierUnits = getPriceFeatureUnit(price);\n }\n\n priceNumber += calculateTierPrice(price, currentTier, selectedBillingPeriod, shouldShowMonthlyPriceAmount);\n }\n }\n\n if (isSinglePrice) {\n const price = planPrices[0];\n const featureUnit = price.feature?.units || '';\n\n if (price.pricingModel === BillingModel.PerUnit && !price.isTieredPrice) {\n unit = shouldShowMonthlyPriceAmount ? `per ${featureUnit} ${pricePeriod}` : `per ${featureUnit} ${pricePeriod}`;\n } else if (price.pricingModel === BillingModel.UsageBased) {\n unit = `per ${featureUnit}`;\n }\n }\n\n return {\n price: currencyPriceFormatter({ amount: priceNumber, currency: currency, locale }),\n unit: unit,\n tiers: tiers,\n tierUnits: tierUnits,\n };\n}\n","import { BillingPeriod, PriceTierFragment, PricingType } from '@stigg/js-client-sdk';\nimport { PaywallPlan } from '../paywall';\nimport { PaywallLocalization } from '../paywall';\nimport { getPaidPriceText } from './getPaidPriceText';\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 selectedTierByFeature?: Record<string, PriceTierFragment>,\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 as PlanPriceText;\n case PricingType.Custom:\n return {\n price: 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 selectedTierByFeature: selectedTierByFeature || {},\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 { PriceTierFragment } from '@stigg/js-client-sdk';\nimport MenuItem from '@mui/material/MenuItem';\nimport OutlinedInput from '@mui/material/OutlinedInput';\nimport Select, { SelectChangeEvent } from '@mui/material/Select';\nimport { map } from 'lodash';\nimport React, { ReactNode } from 'react';\nimport styled from '@emotion/styled/macro';\nimport { getTierByQuantity } from '../utils/priceTierUtils';\nimport { Typography } from './Typography';\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 TiersSelectContainer({\n componentId,\n tiers,\n tierUnits,\n selectedTier,\n handleTierChange,\n}: {\n componentId: string;\n tiers?: PriceTierFragment[] | null;\n tierUnits?: string;\n selectedTier?: PriceTierFragment;\n handleTierChange: (tier: PriceTierFragment) => void;\n}) {\n const handleChange = (event: SelectChangeEvent<unknown>, _: ReactNode) => {\n if (!tiers) return;\n\n handleTierChange(getTierByQuantity(tiers, event.target.value as number)!);\n };\n\n return (\n <Typography className=\"stigg-price-tier-select\" style={{ minHeight: '46px' }}>\n {tiers ? (\n <TierSelect\n value={selectedTier ? selectedTier.upTo.toString() : tiers[0].upTo.toString()}\n fullWidth\n onChange={handleChange}\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 {tier.upTo} {tierUnits}\n </Typography>\n </MenuItem>\n ))}\n </TierSelect>\n ) : (\n <div />\n )}\n </Typography>\n );\n}\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport { BillingPeriod, PriceTierFragment } 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 selectedTierByFeature,\n setSelectedTierByFeature,\n plan,\n billingPeriod,\n paywallLocale,\n locale,\n hasMonthlyPrice,\n hasAnnuallyPrice,\n}: {\n showStartingAt: boolean;\n withUnitPriceRow: boolean;\n withStartingAtRow: boolean;\n withTiersRow: boolean;\n selectedTierByFeature: Record<string, PriceTierFragment>;\n setSelectedTierByFeature: React.Dispatch<React.SetStateAction<Record<string, PriceTierFragment>>>;\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 selectedTierByFeature,\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 selectedTier = featureId ? selectedTierByFeature[featureId] : undefined;\n\n const handleTierChange = (tier: PriceTierFragment) => {\n if (!featureId) {\n return;\n }\n\n setSelectedTierByFeature((prevState) => ({\n ...prevState,\n [featureId]: tier,\n }));\n };\n\n return (\n <PlanPriceContainer 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 variant=\"h1\">{price}</PriceSpan>\n\n {withUnitPriceRow && (\n <Typography className=\"stigg-price-unit-and-billing-period-text\" style={{ minHeight: '48px' }}>\n <UnitSpan 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 selectedTier={selectedTier}\n handleTierChange={handleTierChange}\n />\n ) : null}\n </>\n </PlanPriceContainer>\n );\n};\n","import React, { useEffect } from 'react';\nimport {\n BillableFeature,\n BillingPeriod,\n Customer,\n PriceTierFragment,\n PricingType,\n Subscription,\n} 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 { PaywallPlan, 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 { getSelectedTier } from '../utils/priceTierUtils';\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 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 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};\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 shouldShowDescriptionSection,\n hasMonthlyPrice,\n hasAnnuallyPrice,\n isCustomerOnTrial,\n onPlanSelected,\n paywallLocale,\n locale,\n withStartingAtRow,\n isCustomerInCustomPlan,\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 [selectedTierByFeature, setSelectedTierByFeature] = React.useState<Record<string, PriceTierFragment>>(\n getSelectedTier(plan, billingPeriod, currentSubscription, {}),\n );\n\n useEffect(() => {\n setSelectedTierByFeature(getSelectedTier(plan, billingPeriod, currentSubscription, selectedTierByFeature));\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [billingPeriod, currentSubscription, plan]);\n\n const onPlanButtonClick = (intentionType: SubscribeIntentionType) => {\n const billableFeatures: BillableFeature[] = Object.keys(selectedTierByFeature).map((featureId) => ({\n featureId,\n quantity: selectedTierByFeature[featureId].upTo,\n }));\n\n return onPlanSelected(intentionType, billableFeatures);\n };\n\n return (\n <PlanOfferingContainer\n className={classNames('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 selectedTierByFeature={selectedTierByFeature}\n setSelectedTierByFeature={setSelectedTierByFeature}\n plan={plan}\n billingPeriod={billingPeriod}\n paywallLocale={paywallLocale}\n locale={locale}\n hasAnnuallyPrice={hasAnnuallyPrice}\n hasMonthlyPrice={hasMonthlyPrice}\n />\n\n {showCTAButton ? (\n <PlanOfferingButton\n isNextPlan={isNextPlan}\n customer={customer}\n plan={plan}\n currentSubscription={currentSubscription}\n billingPeriod={billingPeriod}\n isCustomerOnTrial={isCustomerOnTrial}\n onPlanSelected={onPlanButtonClick}\n paywallLocale={paywallLocale}\n withTrialLeftRow={withTrialLeftRow}\n selectedTierByFeature={selectedTierByFeature}\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 </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';\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 tieredPrice.tiers![0].unitPrice.amount;\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 PoweredByStiggSvg from '../../assets/powered-by-stigg.svg';\nimport styled from '@emotion/styled/macro';\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 >\n <PoweredByStiggThemedSvg />\n </StyledPoweredByStigg>\n );\n}\n","import { PaywallPlan } from '../types';\nimport { BillingPeriod } from '@stigg/js-client-sdk';\n\nexport function hasPricePointsForPlans(plans: PaywallPlan[], billingPeriod: BillingPeriod): boolean {\n return plans.some(plan => hasPricePoints(plan, billingPeriod));\n}\n\nexport function hasPricePoints(plan: PaywallPlan, billingPeriod: BillingPeriod): boolean {\n return plan.pricePoints.some(pricePoint => pricePoint.billingPeriod === billingPeriod);\n}","import { BillingPeriod, PricingType } from '@stigg/js-client-sdk';\nimport { PaywallPlan } from '../types';\nimport { hasPricePoints } from './hasPricePoints';\n\nexport function getPlansToDisplay(plans: PaywallPlan[], selectedBillingPeriod: BillingPeriod): PaywallPlan[] {\n return plans.filter(plan => plan.pricingType !== PricingType.Paid || hasPricePoints(plan, selectedBillingPeriod));\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 { OnPlanSelectedCallbackFn, PaywallPlan, SubscribeIntentionType } 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 { getSelectedTier } 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 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};\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}: 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);\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 = getSelectedTier(plan, selectedBillingPeriod, currentSubscription, {});\n return Object.values(tiers).length > 0;\n })\n );\n }, [selectedBillingPeriod, currentSubscription, 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 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 />\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 React, { useEffect, useState, PropsWithChildren, useContext, useRef } from 'react';\nimport * as StiggJs from '@stigg/js-client-sdk';\nimport Stigg, { EntitlementsFallback } from '@stigg/js-client-sdk';\nimport { SkeletonTheme } from 'react-loading-skeleton';\nimport { CustomizedTheme } from '../theme/Theme';\nimport logger from '../services/logger';\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 useEntitlementPolling?: boolean;\n entitlementPollingInterval?: number;\n stiggClient?: StiggJs.StiggClient;\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 useEntitlementPolling,\n entitlementPollingInterval,\n entitlementsFallback,\n stiggClient,\n children,\n}) => {\n const currentApiKey = useRef(apiKey);\n const initializeParams = {\n apiKey,\n customerId,\n customerToken,\n resourceId,\n baseUri,\n baseEdgeUri,\n enableEdge,\n entitlementsFallback,\n useEntitlementPolling,\n entitlementPollingInterval,\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\nexport const useStiggContext = (): StiggContextValue => {\n const ctx = useContext(StiggContext);\n if (!ctx) {\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, 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, 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 };\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 } = 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 };\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 { 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 isCustomerOnTrial: boolean;\n plans: PaywallPlan[];\n paywallConfiguration?: DeepPartial<StiggTheme>;\n};\n\nexport function mapPaywallData(paywall: Paywall | null, showOnlyEligiblePlans?: boolean): PaywallData {\n const { plans, currency, configuration, customer, activeSubscriptions, paywallCalculatedPricePoints } = paywall || {};\n const { currentSubscription, currentPlan, isCustomerOnTrial, trialDaysLeft } =\n getCustomerSubscriptionDetails(activeSubscriptions);\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 = 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 isCustomerOnTrial,\n plans: paywallPlans,\n paywallConfiguration,\n };\n}\n","import { BillingPeriod, Paywall } from '@stigg/js-client-sdk';\nimport { useEffect, useState } from 'react';\nimport logger from '../../../services/logger';\nimport { useStiggContext } from '../../StiggProvider';\nimport { PaywallData } from '../types';\nimport { computeBillingPeriods } from '../utils/computeDefaultBillingPeriod';\nimport { mapPaywallData } from '../utils/mapPaywallData';\n\ntype useLoadPaywallDataProps = {\n productId?: string;\n resourceId?: string;\n showOnlyEligiblePlans?: boolean;\n billingCountryCode?: string;\n preferredBillingPeriod?: BillingPeriod;\n};\n\nexport function useLoadPaywallData({\n productId,\n resourceId,\n showOnlyEligiblePlans,\n billingCountryCode,\n preferredBillingPeriod,\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]);\n\n const paywallData = mapPaywallData(paywall, showOnlyEligiblePlans);\n\n return {\n customer: paywall?.customer || null,\n isLoading: 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 type PaywallLocalization = {\n highlightChip: string;\n entitlementsTitle?: (plan: PaywallPlan) => string;\n planCTAButton: {\n upgrade: string | ((plan: PaywallPlan) => string);\n downgrade: string | ((plan: PaywallPlan) => string);\n startTrial: (plan: PaywallPlan) => string;\n custom: 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: 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 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","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';\nimport { useStiggContext } from '../components/StiggProvider';\nimport { DeepPartial } from '../types';\nimport { Fonts } from './Fonts';\nimport { getResolvedTheme } from './getResolvedTheme';\nimport { StiggTheme } from './types';\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 '../../StiggProvider';\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]);\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';\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 >\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 { OnPlanSelectedCallbackFn } 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};\n\nexport const PaywallContainer = ({\n productId,\n resourceId,\n highlightedPlanId,\n showOnlyEligiblePlans,\n textOverrides,\n onPlanSelected,\n preferredBillingPeriod,\n onBillingPeriodChange,\n billingCountryCode,\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 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 });\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 selectedBillingPeriod={selectedBillingPeriod}\n onBillingPeriodChanged={handlePeriodChange}\n availableBillingPeriods={availableBillingPeriods}\n highlightedPlanId={highlightedPlanId}\n isCustomerOnTrial={isCustomerOnTrial}\n onPlanSelected={onPlanSelected}\n paywallLocale={paywallLocale}\n locale={locale}\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 }) => !$disableMargin && `\n &:not(:last-child) {\n margin-bottom: 32px;\n }\n `};\n`;","import { Typography } from '../../common/Typography';\nimport React from 'react';\nimport { useCustomerPortalContext } from '../CustomerPortalProvider';\nimport Skeleton from 'react-loading-skeleton';\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 React from 'react';\nimport { CustomerPortal } from '@stigg/js-client-sdk';\nimport { StyledButton } from '../common/StyledButton';\nimport { Typography } from '../../common/Typography';\nimport EditIcon from '../../../assets/edit-icon.svg';\nimport { CustomerPortalLocalization } from '../customerPortalTextOverrides';\nimport styled from '@emotion/styled/macro';\nimport { SectionHeader } from '../common/SectionHeader';\nimport { SectionTitle } from '../common/SectionTitle';\n\ntype SubscriptionsOverviewHeaderProps = {\n customerPortal?: CustomerPortal | null;\n onManageSubscription: () => void;\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}\n >\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 >\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 { Typography } from '../../../common/Typography';\nimport { useCustomerPortalContext } from '../../CustomerPortalProvider';\nimport styled from '@emotion/styled/macro';\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-child {\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 => (\n <Row $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)<{ $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 { Theme } from '@emotion/react';\n\nexport type IconColor =\n | 'primary'\n | '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=\"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>\n","<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","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, { 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 { 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';\nimport { FontWeight } from 'styled-typography';\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","import styled from '@emotion/styled/macro';\nimport React from 'react';\nimport Skeleton from 'react-loading-skeleton';\n\nconst SkeletonLayout = styled.div`\n display: flex;\n justify-content: space-between;\n`;\n\nconst SkeletonLayoutLeft = styled.div`\n display: flex;\n flex-direction: column;\n gap: 32px;\n`;\n\nexport function SubscriptionOverviewLoader() {\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={295} 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 { Typography } from '../../../common/Typography';\nimport { BillingPeriodChangeVariables, UnitAmountChangeVariables } from '../../../../types';\nimport { compact, map } from 'lodash';\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 { Theme, 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() as Theme;\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';\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 padding: 64px;\n`;","import { Typography } from '../../../common/Typography';\nimport { currencyPriceFormatter } from '../../../utils/currencyUtils';\nimport { BillingPeriod, Currency } from '@stigg/js-client-sdk';\nimport moment from 'moment';\nimport React from 'react';\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 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 { Typography } from '../../../common/Typography';\nimport React from 'react';\n\ntype NoUpcomingBillingProps = {\n description: string;\n};\n\nexport function NoUpcomingBilling({ description }: NoUpcomingBillingProps) {\n return (\n <>\n <Typography variant='h6' color='secondary'>No upcoming bill</Typography>\n <Typography variant='body1' color='secondary'>\n {description}\n </Typography>\n </>\n );\n}\n","import React from 'react';\nimport { Typography } from '../../common/Typography';\nimport styled from '@emotion/styled/macro';\nimport Button from '@mui/material/Button';\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 let contactSupportText = <Typography color={onContactSupport ? 'primary.main' : 'secondary'}>{linkLabel}</Typography>;\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 >\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 { CSSProperties, ReactNode, useEffect, useRef, useState } from 'react';\nimport styled, { css } from 'styled-components';\nimport { TooltipProps } from '@mui/material/Tooltip';\nimport { InformationTooltip } from './InformationTooltip';\nimport React from 'react';\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 leftMargin?: boolean;\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 SandClockIcon from '../../../../assets/sand-clock.svg';\nimport { Typography } from '../../../common/Typography';\nimport { CustomerPortalSubscription, SubscriptionStatus } from '@stigg/js-client-sdk';\nimport Link from '@mui/material/Link';\nimport { LongText } from '../../../common/LongText';\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?: () => void;\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 className=\"stigg-subscription-trial-upgrade-button\" onClick={onManageSubscription}>\n <Typography color=\"white\">Upgrade plan</Typography>\n </StyledLink>\n </OnTrialBadge>\n );\n}\n","import React from 'react';\nimport { Typography } from '../../../common/Typography';\nimport { CustomerPortalSubscription } from '@stigg/js-client-sdk';\nimport { TrialPanel } from './TrialPanel';\nimport { CustomerPortalTheme } from '../../customerPortalTheme';\n\ntype SubscriptionViewProps = {\n mainSubscription: CustomerPortalSubscription;\n trialSubscription: CustomerPortalSubscription | undefined;\n onManageSubscription: () => void;\n theme: CustomerPortalTheme;\n};\n\nexport function SubscriptionView({ mainSubscription, trialSubscription, onManageSubscription, theme }: 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 >\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.nextResetDate) {\n return null;\n }\n\n const calculateResetDiff = (unit: 'days' | 'hours' | 'minutes') => {\n return moment.utc(entitlement.nextResetDate).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 { getUsagePercentage, getUsageProgressStatus } from './FeatureUsage.helper';\nimport React from 'react';\nimport { CustomerPortalEntitlement } from '@stigg/js-client-sdk';\nimport Divider from '@mui/material/Divider';\nimport Color from 'color';\n\nexport const StyledLinearProgress = styled(LinearProgress)<{ $progressStatus: 'standard' | 'warning' | 'error' }>`\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 { getUsagePercentage, USAGE_PERCENTAGE_WARNING_THRESHOLD } from './FeatureUsage.helper';\nimport Button from '@mui/material/Button';\nimport { Typography } from '../../../common/Typography';\nimport React from 'react';\nimport { OnBuyMoreCallbackFn } from '../../types';\nimport styled from 'styled-components';\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: (() => void) | undefined;\n onBuyMore?: OnBuyMoreCallbackFn;\n canBuyMore: boolean;\n canUpgradeSubscription: boolean;\n hasCustomSubscription: boolean;\n};\n\nexport function EntitlementCtaButton({ entitlement, feature, onManageSubscription, onBuyMore, canBuyMore, canUpgradeSubscription, hasCustomSubscription }: EntitlementCtaButtonProps) {\n\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 variant=\"text\" onClick={onManageSubscription}>\n <Typography color=\"primary.main\">Upgrade</Typography>\n </StyledButton>\n ) : null;\n }\n\n return null;\n}","import { Currency, CustomerPortalEntitlement } from '@stigg/js-client-sdk';\nimport React from 'react';\nimport { Typography } from '../../../common/Typography';\nimport { currencyPriceFormatter } from '../../../utils/currencyUtils';\nimport { FeatureUsageProgressBar } from '../../usage/featureUsage/FeatureUsageProgressBar';\nimport { LongText } from '../../../common/LongText';\nimport { FeatureFragment } from '@stigg/api-client-js/src/generated/sdk';\nimport { EntitlementCtaButton } from '../../usage/featureUsage/EntitlementCTAButton';\nimport { OnBuyMoreCallbackFn } from '../../types';\n\nexport type UsageBasedChargeProps = {\n entitlement: Exclude<CustomerPortalEntitlement, 'feature'>;\n feature: FeatureFragment;\n amount: number;\n currency: Currency;\n onBuyMore?: OnBuyMoreCallbackFn;\n onManageSubscription: () => void;\n canUpgradeSubscription: boolean;\n hasCustomSubscription: boolean;\n hideChargePrice?: boolean;\n};\n\nexport function ChargeItem({\n amount,\n currency,\n entitlement,\n feature,\n hideChargePrice,\n onBuyMore,\n onManageSubscription,\n canUpgradeSubscription,\n hasCustomSubscription,\n}: UsageBasedChargeProps) {\n return (\n <div className='stigg-charge-list-item' 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 {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={true}\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 { ChargeItem } from './ChargeItem';\nimport React from 'react';\nimport { keyBy } from 'lodash';\nimport { OnBuyMoreCallbackFn } from '../../types';\n\nexport type ChargesProps = {\n subscription: CustomerPortalSubscription;\n entitlements: CustomerPortalEntitlement[];\n onBuyMore?: OnBuyMoreCallbackFn;\n onManageSubscription: () => void;\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, 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 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 { SubscriptionsOverviewHeader } from './SubscriptionsOverviewHeader';\nimport { SubscriptionTabs } from './tabs/SubscriptionTabs';\nimport { useCustomerPortalContext } from '../CustomerPortalProvider';\nimport { CustomerPortalSubscription, PricingType, SubscriptionStatus } from '@stigg/js-client-sdk';\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';\n\nexport type SubscriptionsOverviewProps = {\n onManageSubscription: () => void;\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 >\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 className=\"stigg-overview-layout\" style={{ display: 'flex', alignItems: 'flex-start', gap: 64 }}>\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 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 { Typography } from '../../common/Typography';\nimport { StyledButton } from './StyledButton';\nimport { ExternalLink as ExternalLinkIcon } from 'react-feather';\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 >\n <ExternalLinkText color=\"primary.main\">{text}</ExternalLinkText>\n </StyledButton>\n );\n}","import styled from '@emotion/styled/macro';\nimport { Typography, TypographyProps } from '../../common/Typography';\nimport React from 'react';\nimport { FontWeight } from 'styled-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`;\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 >\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}","import React, { ReactElement } from 'react';\nimport { useCustomerPortalContext } from '../CustomerPortalProvider';\nimport { SectionTitle } from '../common/SectionTitle';\nimport { SectionContainer } from '../common/SectionContainer';\nimport { ExternalLinkButton } from '../common/ExternalLinkButton';\nimport Divider from '@mui/material/Divider';\nimport { InformationGrid, InformationGridContainer } from './InformationGrid';\nimport { padStart } from 'lodash';\nimport { SectionHeader } from '../common/SectionHeader';\nimport { SkeletonButton } from '../common/SkeletonButton';\nimport Skeleton from 'react-loading-skeleton';\n\nexport const EMPTY_CHAR = '-';\n\nexport function PaymentDetailsSection() {\n const { customerPortal, isLoading, textOverrides, theme } = useCustomerPortalContext();\n const { billingInformation } = customerPortal || {};\n const isLoadingData = !billingInformation || isLoading;\n\n const items: ReactElement[] = [];\n\n if (isLoadingData) {\n items.push(\n ...[\n <InformationGridContainer>\n <Skeleton width={220} height={12} />\n <Skeleton width={220} height={12} />\n <Skeleton width={220} height={12} />\n </InformationGridContainer>,\n <Divider orientation=\"vertical\" style={{ minHeight: 93 }} />,\n <InformationGridContainer>\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 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(<Divider orientation=\"vertical\" style={{ minHeight: 93 }} />);\n items.unshift(\n <InformationGrid\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: 64 }}>{items}</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`;","import { FeatureFragment } from '@stigg/api-client-js/src/generated/sdk';\nimport lowercase from 'lodash/lowerCase';\n\nexport function getFeatureDisplayName(feature: FeatureFragment) {\n return getFeatureDisplayNameText(feature.displayName, feature.featureUnits, feature.featureUnitsPlural);\n}\n\nexport function getFeatureDisplayNameText(featureDisplayName: string, featureUnits: string | undefined | null, featureUnitsPlural: string | undefined | null) {\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}","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`;","import { Typography } from '../../../common/Typography';\nimport isUndefined from 'lodash/isUndefined';\nimport React from 'react';\nimport { useCustomerPortalContext } from '../../CustomerPortalProvider';\nimport { BillingModel, CustomerPortalEntitlement } from '@stigg/js-client-sdk';\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 { CustomerPortalSubscriptionPriceFragment } from '@stigg/api-client-js/src/generated/sdk';\nimport { LongText } from '../../../common/LongText';\nimport { EntitlementCtaButton } from './EntitlementCTAButton';\nimport { OnBuyMoreCallbackFn } from '../../types';\n\nexport type UsageBoxProps = {\n entitlement: CustomerPortalEntitlement;\n subscriptionPrice: CustomerPortalSubscriptionPriceFragment | undefined;\n onManageSubscription: (() => void) | 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 >\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 >\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.nextResetDate ? (\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';\n\nexport const Footer = styled.div`\n margin-top: 32px;\n`;\n\nexport function CustomerUsageLoader() {\n return (\n <Grid container spacing={4} className=\"stigg-subscription-usage-skeleton-layout\">\n {range(6).map((item) => (\n <Grid key={item} item xs={4}>\n <Skeleton width={280} height={120} />\n </Grid>\n ))}\n </Grid>\n );\n}\n","import { useCustomerPortalContext } from '../CustomerPortalProvider';\nimport { MeterType, PricingType, SubscriptionStatus } from '@stigg/js-client-sdk';\nimport React from 'react';\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 { compact, keyBy } from 'lodash';\nimport { StyledButton } from '../common/StyledButton';\nimport { Minus, Plus } from 'react-feather';\nimport Grid from '@mui/material/Grid';\nimport { OnBuyMoreCallbackFn } from '../types';\n\nconst MAX_BOXES = 6;\n\nexport type CustomerUsageDataProps = {\n onManageSubscription?: () => void;\n onBuyMore?: OnBuyMoreCallbackFn;\n};\n\nexport function CustomerUsageData({ onManageSubscription, onBuyMore }: CustomerUsageDataProps) {\n const [showAll, setShowAll] = React.useState(false);\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 // 4 -> 3 per row, 6 -> 2 per row\n const xs = sortedEntitlements.length > 2 ? 4 : 6;\n\n const entitlementsToShow = showAll ? sortedEntitlements : sortedEntitlements.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 item 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 {sortedEntitlements.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';\n\nexport function CustomerPortalContainer({\n onManageSubscription,\n onBuyMore,\n onCancelScheduledUpdates,\n onContactSupport,\n paywallComponent,\n hiddenSections,\n}: CustomerPortalProps) {\n const { stigg } = useStiggContext();\n const { customerPortal, textOverrides, theme, isLoading } = useCustomerPortalContext();\n const customerPortalSectionRef = useRef<HTMLDivElement>(null);\n\n const onManageClick = () => {\n if (onManageSubscription) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n onManageSubscription();\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 && <CustomerUsageData onManageSubscription={onManageClick} onBuyMore={onBuyMore} />}\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 { CustomerPortalProvider } from './CustomerPortalProvider';\nimport { CustomerPortalContainer } from './CustomerPortalContainer';\nimport { DeepPartial } from '../../types';\nimport { CustomerPortalLocalization } from './customerPortalTextOverrides';\nimport { CustomerPortalTheme } from './customerPortalTheme';\nimport { CustomerPortalSubscription } from '@stigg/js-client-sdk';\nimport { OnBuyMoreCallbackFn } from './types';\n\nexport type CustomerPortalSection =\n | 'usage'\n | 'addons'\n | 'promotionalEntitlements'\n | 'billingInformation'\n | 'paymentDetails'\n | 'invoices';\n\nexport type CustomerPortalProps = {\n onManageSubscription?: () => Promise<void> | void;\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 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 ? <SkeletonButton /> : 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 >\n <SectionHeader className=\"stigg-invoices-section-header\">\n <SectionTitle isLoading={isLoadingData} className=\"stigg-invoices-section-title\" title={textOverrides.invoicesTitle} />\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\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\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","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 { useStiggContext } from '../../StiggProvider';\nimport { MockCheckoutStateCallback } from '../types';\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 };\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 } else if (price.maxUnitQuantity && quantity > price.maxUnitQuantity) {\n return price.maxUnitQuantity;\n }\n return quantity;\n};\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 } from '../../utils/priceTierUtils';\nimport { getValidPriceQuantity } from '../../utils/priceUtils';\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) {\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 hasMonthlyPrices = plan?.pricePoints.some((pricePoint) => pricePoint.billingPeriod === BillingPeriod.Monthly);\n const hasAnnualPrices = plan?.pricePoints.some((pricePoint) => pricePoint.billingPeriod === BillingPeriod.Annually);\n\n if (preferredBillingPeriod) {\n const billingPeriod = getBillingPeriod(preferredBillingPeriod, hasMonthlyPrices, hasAnnualPrices);\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(\n activeSubscription?.prices[0].billingPeriod,\n hasMonthlyPrices,\n hasAnnualPrices,\n );\n if (billingPeriod) {\n return billingPeriod;\n }\n }\n\n return hasAnnualPrices ? 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 { Addon } from '@stigg/js-client-sdk';\nimport { useCheckoutContext } from '../CheckoutProvider';\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\nexport function getProgressBarInitialState({ availableAddons }: { availableAddons?: Addon[] }) {\n if (availableAddons?.length === 0) {\n return { ...INITIAL_STATE, steps: CHECKOUT_STEPS.filter((step) => step.key !== CheckoutStepKey.ADDONS) };\n }\n\n return INITIAL_STATE;\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 { useStiggContext } from '../../StiggProvider';\nimport { useCheckoutContext } from '../CheckoutProvider';\nimport { useCheckoutModel } from './useCheckoutModel';\nimport { SubscriptionState, useSubscriptionModel } from './useSubscriptionModel';\nimport { MockCheckoutPreviewCallback } from '../types';\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};\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 };\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';\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}\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};\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}: {\n children: React.ReactNode;\n} & CheckoutProviderProps) {\n const { checkout, isLoading } = useLoadCheckout({ resourceId, planId, billingCountryCode, onMockCheckoutState });\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 availableAddons: isLoading ? undefined : addonsStep.availableAddons,\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 };\n\n return initialState;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [preferredBillingPeriod, billingCountryCode, checkout, isLoading, billingInformation?.taxDetails?.taxPercentage]);\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';\n\nexport const CheckoutLayout = styled.div`\n margin: auto;\n width: 100%;\n min-height: 760px;\n max-width: 920px;\n display: flex;\n position: relative;\n flex-direction: column;\n align-items: center;\n\n padding: 16px 32px;\n border-radius: 10px;\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`;\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\nexport const CheckoutPanel = styled(Box)`\n display: flex;\n flex-direction: column;\n gap: 0;\n flex: 2;\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 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 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 { StyledProgress, StyledStepButton, StyledIcon } from './CheckoutProgressBar.style';\nimport { Icons } from '../../common/Icon';\nimport { Skeleton } from '../components/Skeletons.style';\n\nexport const CheckoutProgressBar = () => {\n const { progressBarState, setActiveStep } = useProgressBarModel();\n const { widgetState } = useCheckoutModel();\n const { readOnly, isLoadingCheckoutData } = widgetState;\n const { activeStep, completedSteps, steps } = progressBarState || {};\n const progress = ((activeStep + 1) * 100) / steps.length;\n\n return (\n <Box sx={{ width: '100%', mb: 3 }}>\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 key={key} item display=\"flex\" flexDirection=\"row\" flex={1} 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 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 } else 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 } else 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 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 { 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\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 paymentIntentClientSecret = applySubscriptionResults?.subscription?.latestInvoice?.paymentSecret;\n if (\n stripe &&\n paymentIntentClientSecret &&\n applySubscriptionResults?.subscription?.paymentCollection === PaymentCollection.ActionRequired\n ) {\n const { error: NextActionError } = await stripe.handleNextAction({ clientSecret: paymentIntentClientSecret });\n if (NextActionError) {\n return { errorMessage: NextActionError.message || '' };\n }\n }\n\n return { subscription: applySubscriptionResults?.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 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 return (\n <CheckoutSuccessContainer className=\"stigg-checkout-success-container\">\n <Lottie\n width={350}\n height=\"auto\"\n isClickToPauseDisabled\n options={{ loop: false, autoplay: true, animationData }}\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 { 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=\"caption\" style={{ marginTop: 14 }}>\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=\"caption\" style={{ marginTop: 14 }}>\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 }}>\n <WithSkeleton isLoading={isFetchingSubscriptionPreview} width=\"100%\">\n {text}\n </WithSkeleton>\n </Typography>\n );\n};\n\nexport function CheckoutCaptions(props: CheckoutCaptionProps) {\n return (\n <>\n <RemainingCreditsCaption {...props} />\n\n <ScheduledUpdatesCaption {...props} />\n\n <NextBillingCaption {...props} />\n </>\n );\n}\n","import React from 'react';\nimport styled from '@emotion/styled/macro';\nimport Grid from '@mui/material/Grid';\nimport {\n BillingModel,\n BillingPeriod,\n Price,\n SubscriptionPreviewInvoice,\n SubscriptionPreviewV2,\n} from '@stigg/js-client-sdk';\nimport { Typography } from '../../../common/Typography';\nimport { currencyPriceFormatter } from '../../../utils/currencyUtils';\nimport { getTierByQuantity } from '../../../utils/priceTierUtils';\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';\n\nexport const LineItemContainer = styled.div`\n & + & {\n margin-top: 8px;\n }\n`;\n\nexport const LineItemRow = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n`;\n\nexport const getPriceString = ({ amount, price, quantity }: { amount: number; price: Price; quantity: number }) => {\n const { billingPeriod } = price;\n let billingPeriodString = null;\n\n if (billingPeriod === BillingPeriod.Annually) {\n amount /= 12;\n billingPeriodString = '12 months';\n }\n\n const addonPriceFormat = currencyPriceFormatter({ amount, currency: price.currency, minimumFractionDigits: 2 });\n\n return `${quantity > 1 ? `${quantity} x ${addonPriceFormat} each` : addonPriceFormat}${\n billingPeriodString ? ` x ${billingPeriodString}` : ''\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 { billingPeriod } = price;\n const isPayAsYouGo = price.pricingModel === BillingModel.UsageBased;\n\n let amount;\n if (price.isTieredPrice) {\n const tier = getTierByQuantity(price.tiers!, quantity);\n amount = tier!.unitPrice.amount!;\n } else {\n amount = price.amount!;\n }\n\n return (\n <LineItemContainer>\n <LineItemRow style={{ alignItems: 'flex-start' }}>\n <Grid item>\n <Typography variant=\"body1\" color=\"secondary\">\n {label}\n </Typography>\n {(quantity > 1 || billingPeriod === BillingPeriod.Annually) && (\n <Typography variant=\"body1\" color=\"secondary\">\n {getPriceString({ amount, price, quantity })}\n </Typography>\n )}\n </Grid>\n <Grid item display=\"flex\" gap={1} alignItems=\"center\">\n {isPayAsYouGo && <PayAsYouGoPriceTooltip checkoutLocalization={checkoutLocalization} />}\n <Typography variant=\"body1\" color=\"secondary\" style={{ wordBreak: 'break-word' }}>\n {currencyPriceFormatter({ amount: quantity * amount, currency: price.currency, minimumFractionDigits: 2 })}\n {isPayAsYouGo && ' / unit'}\n </Typography>\n </Grid>\n </LineItemRow>\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';\n\nexport const SummaryContainer = styled(Box)`\n max-width: 470px;\n flex: 1.5;\n`;\n\nexport const SummaryCard = styled(Paper)`\n border-radius: 10px;\n background: ${({ theme }) => theme.stigg.palette.backgroundHighlight};\n padding: 16px;\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}: CheckoutContainerProps & { isFreeDowngrade: 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 display=\"flex\" flexDirection=\"row\" alignItems=\"center\" 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 {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\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\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 = () => {\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\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';\n\nexport const CheckoutAddonsContainer = styled(Grid)`\n width: 100%;\n gap: 8px;\n`;\n\nexport const AddonListItemContainer = styled(Grid)`\n display: flex;\n justify-content: space-between;\n align-items: center;\n height: 80px;\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';\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 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>\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 sx={{ width: 120, marginX: 2 }}\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 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)`\n flex-direction: column;\n align-items: unset;\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 { Icon, Icons } from '../../../common/Icon';\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 icon: Icons;\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} & Pick<CheckoutContainerProps, 'onBillingAddressChange' | 'collectPhoneNumber'>;\n\nfunction PaymentMethodLayout({ checked, icon, text, subtitle, readOnly }: PaymentMethodLayoutProps) {\n return (\n <PaymentMethodLayoutContainer>\n <Radio checked={checked} disabled={readOnly} />\n <Icon icon={icon} style={{ display: 'flex' }} />\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 icon=\"PaymentMethod\"\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 checked,\n onSelect,\n readOnly,\n checkoutLocalization,\n onBillingAddressChange,\n collectPhoneNumber,\n}: NewPaymentMethodProps) {\n return (\n <NewPaymentMethodContainer item onClick={onSelect} $disabled={readOnly}>\n <PaymentMethodLayout\n checked={checked}\n readOnly={readOnly}\n icon=\"PaymentMethod\"\n text={<Typography variant=\"h6\">{checkoutLocalization.newPaymentMethodText}</Typography>}\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 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, PriceTierFragment } 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 { getTierByQuantity } from '../../../utils/priceTierUtils';\nimport { getValidPriceQuantity } from '../../../utils/priceUtils';\nimport { getFeatureDisplayNameText } from '../../../utils/getFeatureName';\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 flex-direction: row;\n justify-content: space-between;\n align-items: center;\n min-height: 60px;\n margin-top: 16px;\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 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 && featureId) {\n const tier = getTierByQuantity(charge.tiers!, billableFeature!.quantity || 1);\n chargeRow = (\n <TiersSelectContainer\n componentId={`${featureId}-tiers`}\n tiers={charge.tiers}\n selectedTier={tier}\n handleTierChange={(tier: PriceTierFragment) => {\n setBillableFeature(featureId, tier.upTo);\n }}\n />\n );\n } else {\n chargeRow = (\n <InputField\n sx={{ width: 120 }}\n id={`${featureId}-input`}\n type=\"number\"\n error={!isValid}\n helperText={!isValid ? getValidationText(charge, billableFeature?.quantity) : undefined}\n FormHelperTextProps={{ sx: { margin: '4px' } }}\n value={billableFeature?.quantity ?? ''}\n onChange={handleQuantityChange}\n onWheel={(e: React.WheelEvent<HTMLInputElement>) => (e.target as HTMLElement).blur()}\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 <div>\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 </div>\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 }] = 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 freePlan={plan!}\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 },\n },\n }}>\n <CheckoutLayout className=\"stigg-checkout-layout\">\n {!isFreeDowngrade && <CheckoutProgressBar />}\n <CheckoutContent>\n <CheckoutPanel>{isLoadingCheckoutData ? <ContentLoadingSkeleton /> : checkoutContent}</CheckoutPanel>\n {isLoadingCheckoutData ? (\n <CheckoutSummarySkeleton />\n ) : (\n <CheckoutSummary\n disablePromotionCode={disablePromotionCode}\n disableSuccessAnimation={disableSuccessAnimation}\n onCheckout={onCheckout}\n onCheckoutCompleted={onCheckoutCompleted}\n isFreeDowngrade={isFreeDowngrade}\n onMockCheckoutPreview={onMockCheckoutPreview}\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 ...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 <CheckoutContainer {...containerProps} />\n </CheckoutProvider>\n );\n};\n","import { Subscription } from '@stigg/js-client-sdk';\nimport { useEffect, useMemo, useState } from 'react';\nimport { useStiggContext } from '../StiggProvider';\n\nfunction useQueryParams(paramName?: string) {\n return useMemo(() => {\n const urlSearchParams = new URLSearchParams(window.location.search);\n return paramName ? urlSearchParams.get(paramName) : urlSearchParams;\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 onProvisionStart && onProvisionStart();\n try {\n const subscription = await stigg.waitForCheckoutCompleted();\n setProvisionStatus(ProvisionStatus.SUCCEEDED);\n onProvisionSucceeded && onProvisionSucceeded(subscription);\n } catch (err) {\n console.error('Failed to wait for checkout to complete', err);\n setProvisionStatus(ProvisionStatus.FAILED);\n onProvisionFailed && onProvisionFailed(err);\n } finally {\n setIsAwaitingCheckout(false);\n }\n };\n\n waitForCheckoutToComplete();\n }, [stigg, checkoutCompleted]);\n\n return { isAwaitingCheckout, provisionStatus };\n};\n"],"names":["_extends","React.createElement","calculateUnitQuantityText","minUnitQuantity","maxUnitQuantity","unitsPlural","unitsText","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","rest","useTheme","level","levelClassName","className","React","EntitlementName","EntitlementRowContainer","EntitlementIconContainer","fontSize","EntitlementCheckIcon","CheckUrl","disabled","formatUsageNumber","usageLimit","toLocaleString","maximumFractionDigits","getResetPeriodText","resetPeriod","EntitlementResetPeriod","Day","Hour","Week","Month","getEntitlementDisplay","hasUnlimitedUsage","feature","isCustom","unitBasedEntitlement","resetPeriodSuffix","featureUnits","units","displayName","EntitlementRow","displayNameOverride","restProps","PlanEntitlementsContainer","getTitle","plan","paywallLocale","entitlementsTitle","title","basePlan","PlanEntitlements","billingPeriod","prices","pricePoints","filter","price","unitBasedEntitlements","map","shouldRenderUnitBasedEntitlement","key","entitlements","entitlement","hiddenFromWidgets","includes","WidgetType","Paywall","id","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","secondary","layout","planMinWidth","planMaxWidth","planMargin","planPadding","ctaAlignment","headerAlignment","descriptionAlignment","descriptionMinHeight","switchBottomSpacing","shadows","light","popover","border","radius","fontFamily","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","featureId","featureUnitsPlural","newUnitAmount","getPriceFeatureUnit","unitQuantity","getTierByQuantity","tiers","quantity","ascendingTiers","sort","a","b","upTo","tier","length","calculateTierPrice","currentTier","selectedBillingPeriod","shouldShowMonthlyPriceAmount","tiersMode","TiersMode","Volume","unitPrice","Annually","amount","getSelectedTier","currentSubscription","selectedTierByFeature","planTierPrices","isTieredPrice","tieredPrice","subscriptionPrice","pricingModel","BillingModel","PerUnit","result","PriceTierComparison","compareSelectedTierToCurrentTier","Equal","currentTierPrice","selectedTier","Lower","Higher","LoadingIndicator","ClipLoader","OfferingButton","$disabled","css","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","_path","currencyPriceFormatter","currency","Currency","Usd","locale","minimumFractionDigits","currencyString","currencySymbol","getSymbolFromCurrency","formattedPrice","Intl","NumberFormat","currencyDisplay","replace","getPaidPriceText","planPrices","paywallCalculatedPrice","priceAmount","isSinglePrice","priceNumber","tierUnits","pricePeriod","Monthly","unit","featureUnit","UsageBased","getPlanPrice","free","paywallCurrency","Paid","pricePoint","paywallCalculatedPricePoints","priceNotSet","paidParams","paid","TierSelect","Select","TierInput","OutlinedInput","TiersSelectContainer","componentId","handleTierChange","handleChange","event","_","target","value","minHeight","fullWidth","onChange","input","MenuProps","MenuListProps","disablePadding","PaperProps","sx","marginTop","borderRadius","MenuItem","lineHeight","EMPTY_CHAR","PlanPriceContainer","UnitSpan","PriceSpan","PriceBillingPeriod","hasMonthlyPrice","hasAnnuallyPrice","hasPrice","content","toLowerCase","PlanPrice","showStartingAt","withUnitPriceRow","withStartingAtRow","withTiersRow","setSelectedTierByFeature","planPrice","undefined","prevState","startingAtCaption","PlanOfferingButtonHeight","PlanOfferingContainer","$isCurrentPlan","$isHighlighted","PlanHeader","Divider","PlanDescription","HighlightBadge","HighlightText","HeaderWrapper","NextPlanTagContainer","StyledMiniSchedule","MiniSchedule","UpcomingChangeTag","iconsColor","Grid","display","alignItems","gap","PlanOffering","isHighlighted","shouldShowDescriptionSection","isCustomerInCustomPlan","additionalChargesMayApply","showCTAButton","planBadge","highlightChip","useEffect","onPlanButtonClick","billableFeatures","Object","keys","classNames","description","PickerContainer","PeriodText","StyledSwitch","Switch","DiscountRate","discount","BillingPeriodPicker","discountRate","onBillingPeriodChanged","availableBillingPeriods","isMonthlyBillingPeriod","uncheckedIcon","checkedIcon","width","isAnnuallySelected","checked","handleDiameter","calculateDiscountRate","monthlyPrice","annuallyPrice","annuallyPerMonthPrice","Math","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","hasPricePointsForPlans","some","hasPricePoints","getPlansToDisplay","PaywallPlansContainer","PaywallContainer","PaywallLayout","highlightedPlanId","useStiggContext","plansToShow","handleOnSubscribe","useCallback","subscription","useMemo","values","isWidgetWatermarkEnabled","LoggerService","message","params","console","log","object","debug","StiggContext","createContext","DEFAULT_LOCALE","StiggProvider","apiKey","baseUri","baseEdgeUri","enableEdge","customerId","customerToken","resourceId","useEntitlementPolling","entitlementPollingInterval","entitlementsFallback","stiggClient","currentApiKey","useRef","initializeParams","Stigg","initialize","lazyLoad","isInitialized","refreshData","setContext","ctx","customerPortalUpdatedAt","Date","refresh","isMounted","safeSetContext","setContextFunc","onEntitlementsUpdated","updatedAt","setStiggInstance","removeListener","addListener","loadStiggClient","current","logger","waitForInitialization","clearCustomer","setCustomerId","Provider","SkeletonTheme","baseColor","highlightColor","useContext","Error","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","borderColor","currentPlanBackground","mapPaywallConfiguration","paywallConfiguration","backgroundColor","planWidth","mapCheckoutConfiguration","summaryBackgroundColor","getCustomerSubscriptionDetails","s","InTrial","mapPaywallData","paywall","showOnlyEligiblePlans","scheduledUpdates","downgradeSchedule","billingChangedSchedule","paywallPlans","sortBy","order","eligibleForProductTrial","eligibleForTrial","productTrial","productId","product","currentBillingPeriod","downgradeVariables","billingChangedVariables","isPlanHasBillingPeriodPrice","refId","planId","defaultTrialConfig","eligible","isUpcomingPlan","currentPlanOrder","useLoadPaywallData","billingCountryCode","setSelectedBillingPeriod","setAvailableBillingPeriods","setPaywall","loadPaywall","getPaywall","paywallResult","isCustomerLoaded","paywallData","getResolvedPaywallLocalize","localizeOverride","paywallDefaultLocalization","duration","symbol","SkeletonContainer","PlanOfferingSkeleton","PlansContainer","EntitlementContainer","FooterSkeletonLoader","BillingPeriodLoader","PlanOfferingLoader","Skeleton","circle","marginBottom","PaywallLoader","Fonts","externalFontUrl","Global","styles","CustomCssGlobal","useStiggTheme","remoteThemeOverride","externalTheme","mergedTheme","resolvedTheme","createTypographyTheme","htmlFontSize","coef","Number","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","StyledButton","MuiButton","SectionHeader","$disableMargin","SectionTitle","StyledEditIcon","EditIcon","SubscriptionsOverviewHeader","onManageSubscription","hideManageButton","marginLeft","AddonsList","addons","subscriptions","isEmpty","addon","index","addonId","Row","$borderColor","getPromotionTitle","promotionalEntitlement","Promotions","promotionalEntitlements","flexDirection","endDate","StyledTabs","Tabs","TabsLayout","TabContent","Box","$maxHeight","ListBox","$backgroundColor","getIconColor","_rect","_path2","_g","_defs","_path3","_circle","IconWrapper","$pathColor","$rectColor","$strokeColor","Icon","icon","svgPathColor","svgRectColor","svgStrokeColor","IconComponent","customIcons","TabPanel","maxHeight","other","role","hidden","TabTitle","isSelected","label","Medium","SubscriptionTabs","hiddenSections","allAddons","isSectionHidden","sectionName","section","showAddons","showPromotions","setValue","newValue","shouldShowTabs","borderBottom","Tab","textTransform","SkeletonLayout","SkeletonLayoutLeft","SubscriptionOverviewLoader","SubscriptionScheduledUpdateDowngradeRow","scheduleUpdate","container","ArrowDown","item","SubscriptionScheduledUpdateBillingPeriodChangeRow","nextBillingPeriod","SubscriptionScheduledUpdateUnitQuantityChangeRow","newQuantityUnits","flexWrap","SubscriptionScheduledUpdateRow","SubscriptionScheduleUpdateAlertContainer","StyledRestoreIcon","Restore","MultipleScheduledUpdates","justifyContent","SingleScheduledUpdate","SubscriptionScheduledUpdatesAlert","onCancelScheduledUpdates","stiggTheme","isSingleScheduledUpdate","flex","marginRight","SectionContainer","NextEstimatedBill","rangeEnd","NoUpcomingBilling","ContactCustomerSupportLayout","ContactSupportButton","Button","ContactCustomerSupport","onContactSupport","linkLabel","contactSupportText","Container","UpcomingBilling","noUsageBasedPrices","every","billingModel","scheduledDowngradeToFree","planName","total","totalPrice","InformationTooltip","placement","Tooltip","arrow","classes","popper","tooltip","$padding","$maxWidth","tooltipClasses","maxWidth","boxShadow","padding","styled","$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","SubscriptionView","mainSubscription","trialSubscription","USAGE_PERCENTAGE_WARNING_THRESHOLD","getUsagePercentage","currentUsage","limit","min","floor","getUsageProgressStatus","getResetUsageText","nextResetDate","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","push","orientation","name","email","defaultPaymentMethodId","defaultPaymentMethodLast4Digits","defaultPaymentExpirationMonth","defaultPaymentExpirationYear","unshift","padStart","editButton","billingPortalUrl","CustomerPortalPaywallLayout","CustomerPortalPaywall","paywallComponent","CustomerPortalLayout","CustomerPortalSections","getFeatureDisplayName","getFeatureDisplayNameText","featureDisplayName","displayNameLowerCase","lowercase","FeatureUsageContainer","$highlight","FeatureUsage","hasOverageUsage","isUndefined","Footer","CustomerUsageLoader","spacing","range","xs","MAX_BOXES","CustomerUsageData","showAll","setShowAll","meteredEntitlements","meterType","MeterType","Fluctuating","Incremental","subscriptionPriceByFeature","priceEntitlements","otherEntitlements","sortedEntitlements","entitlementsToShow","slice","toggleShowAll","Minus","Plus","CustomerPortalContainer","customerPortalSectionRef","onManageClick","scrollIntoView","behavior","shouldShowUsage","shouldShowPaymentDetails","shouldShowInvoices","InvoicesSection","CustomerPortal","viewInvoiceHistoryButton","sortAddons","sortSubscriptionAddons","filterAddons","filterAddonPricePointsByBillingPeriod","mapAddonPricePointsByBillingCountryCode","filterSubscriptionAddons","getAddonsStepInitialState","availableAddons","compatibleAddons","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","getBillingPeriod","hasMonthlyPrices","hasAnnualPrices","isInAdvanceCommitmentCharge","getBillableFeatures","preconfiguredBillableFeatures","preconfBillableFeaturesByFeatureId","quantityByFeatureId","charge","preconfiguredQuantity","resolveBillingPeriod","isUpdate","getPlanStepInitialState","usePlanState","planStep","useSetBillableFeature","billableFeature","useSetBillingPeriod","usePlanStepModel","setBillingPeriod","setBillableFeature","CheckoutStepKey","CHECKOUT_STEPS","PLAN","ADDONS","PAYMENT","INITIAL_STATE","activeStep","completedSteps","steps","getProgressBarInitialState","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","type","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","CheckoutContext","CheckoutContextProvider","initialState","innerSetState","updater","old","produce","contextValue","setContextValue","CheckoutProvider","checkoutTheme","resource","isLoadingCheckoutData","CheckoutLayout","CheckoutContent","CheckoutPanel","StyledProgress","shouldForwardProp","prop","startsWith","linearProgressClasses","root","bar","StyledStepButton","buttonClasses","StyledIcon","$shouldFill","stroke","fill","SkeletonsContainer","$flexDirection","$gap","FlexedSkeletonContainer","FlexedSkeleton","ReactSkeleton","CheckoutProgressBar","progress","mb","isCompleted","StepIcon","CHARGES_BILLING_MODEL_ORDER","FlatFee","sortCharges","charges","indexOf","useChargesSort","$success","$error","InputField","TextField","fieldset","ContentContainer","ContentLoadingSkeleton","marginY","usePromotionCodeState","useSetPromotionCode","usePromotionCodeModel","setPromotionCode","StyledPlusIcon","PlusIcon","AddPromotionCodeButton","onAddClick","CouponCodeAddButton","AddPromotionCode","persistPromotionCode","showInput","setShowInput","handlePromotionCode","immediateInvoice","toUpperCase","autoFocus","e","inputProps","maxLength","onKeyDown","preventDefault","InputProps","endAdornment","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","handleStripeFormValidations","elements","submit","elementsError","handleStripeNextAction","applySubscriptionResults","stripe","paymentIntentClientSecret","latestInvoice","paymentSecret","paymentCollection","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","Lottie","isClickToPauseDisabled","loop","autoplay","animationData","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","LineItemContainer","LineItemRow","getPriceString","billingPeriodString","addonPriceFormat","PayAsYouGoPriceTooltip","BilledPriceLineItem","isPayAsYouGo","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","PaymentMethodLayoutContainer","PaymentMethodTextContainer","PaymentMethodLayout","subtitle","Radio","ExistingPaymentMethod","onSelect","last4Digits","expirationMonth","expirationYear","NewPaymentMethod","Collapse","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","onWheel","blur","CheckoutChargeList","planCharges","p","chargesValidation","setChargesValidation","prev","CheckoutPlanContainer","CheckoutPlanStep","StyledArrowRightIcon","ArrowRightIcon","DowngradeToFreePlansContainer","DowngradeToFreeAlert","DowngradeToFreePlanBox","DowngradeToFreeContent","headerText","priceText","DowngradeToFreePlan","freePlan","alertAction","paidBillingPeriod","action","getStepProps","CheckoutContainer","checkoutContent","stripeElementsMode","Elements","appearance","colorText","colorPrimaryText","colorTextPlaceholder","Checkout","containerProps","useQueryParams","paramName","urlSearchParams","URLSearchParams","search","get","ProvisionStatus","useWaitForCheckoutCompleted","onProvisionStart","onProvisionSucceeded","onProvisionFailed","IN_PROGRESS","provisionStatus","setProvisionStatus","isAwaitingCheckout","setIsAwaitingCheckout","checkoutCompleted","waitForCheckoutToComplete","waitForCheckoutCompleted","SUCCEEDED","FAILED"],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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"}