@stigg/react-sdk 7.7.1-beta.0 → 7.8.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (289) hide show
  1. package/dist/index.d.mts +829 -0
  2. package/dist/index.d.ts +829 -935
  3. package/dist/stigg-sdk.cjs.js +5915 -0
  4. package/dist/stigg-sdk.esm.js +5915 -0
  5. package/package.json +18 -21
  6. package/dist/react-sdk.cjs.js +0 -3446
  7. package/dist/react-sdk.esm.js +0 -12191
  8. package/src/assets/add.svg +0 -3
  9. package/src/assets/addons.svg +0 -12
  10. package/src/assets/arrow-forward.svg +0 -3
  11. package/src/assets/arrow-right.svg +0 -6
  12. package/src/assets/billing-info-customer.svg +0 -11
  13. package/src/assets/check-stigg.svg +0 -3
  14. package/src/assets/check.svg +0 -5
  15. package/src/assets/close.svg +0 -3
  16. package/src/assets/contact-support.svg +0 -13
  17. package/src/assets/coupon.svg +0 -6
  18. package/src/assets/credit-card.svg +0 -10
  19. package/src/assets/dollar-coin.svg +0 -13
  20. package/src/assets/edit-icon.svg +0 -3
  21. package/src/assets/entitlement-check.svg +0 -3
  22. package/src/assets/lottie/checkout-success.json +0 -1
  23. package/src/assets/mini-schedule.svg +0 -3
  24. package/src/assets/outlined-checked-circle-disabled.svg +0 -6
  25. package/src/assets/outlined-checked-circle.svg +0 -6
  26. package/src/assets/outlined-circle.svg +0 -3
  27. package/src/assets/pay-as-you-go-charge.svg +0 -11
  28. package/src/assets/payment-method.svg +0 -4
  29. package/src/assets/plus-icon.svg +0 -6
  30. package/src/assets/powered-by-stigg.svg +0 -13
  31. package/src/assets/promotions.svg +0 -13
  32. package/src/assets/remove.svg +0 -3
  33. package/src/assets/restore.svg +0 -3
  34. package/src/assets/sand-clock.svg +0 -4
  35. package/src/assets/schedule-box.svg +0 -9
  36. package/src/assets/schedule.svg +0 -3
  37. package/src/assets/subscription-renews-icon.svg +0 -14
  38. package/src/assets/trash.svg +0 -8
  39. package/src/components/StiggProvider.tsx +0 -170
  40. package/src/components/checkout/Checkout.tsx +0 -37
  41. package/src/components/checkout/CheckoutContainer.style.ts +0 -51
  42. package/src/components/checkout/CheckoutContainer.tsx +0 -193
  43. package/src/components/checkout/CheckoutProvider.tsx +0 -181
  44. package/src/components/checkout/components/Button.tsx +0 -35
  45. package/src/components/checkout/components/ChangePlanButton.tsx +0 -30
  46. package/src/components/checkout/components/ContentLoadingSkeleton.tsx +0 -41
  47. package/src/components/checkout/components/DowngradeToFreeContainer.tsx +0 -115
  48. package/src/components/checkout/components/InputField.tsx +0 -26
  49. package/src/components/checkout/components/Skeletons.style.ts +0 -30
  50. package/src/components/checkout/components/StyledArrow.tsx +0 -9
  51. package/src/components/checkout/components/index.ts +0 -3
  52. package/src/components/checkout/configurations/steps.ts +0 -1
  53. package/src/components/checkout/configurations/textOverrides.ts +0 -150
  54. package/src/components/checkout/configurations/theme.ts +0 -46
  55. package/src/components/checkout/configurations/typography.ts +0 -30
  56. package/src/components/checkout/formatting.ts +0 -12
  57. package/src/components/checkout/hooks/index.ts +0 -8
  58. package/src/components/checkout/hooks/useAddonsStepModel.ts +0 -92
  59. package/src/components/checkout/hooks/useCheckoutModel.ts +0 -53
  60. package/src/components/checkout/hooks/useCouponModel.ts +0 -28
  61. package/src/components/checkout/hooks/useLoadCheckout.ts +0 -48
  62. package/src/components/checkout/hooks/usePaymentStepModel.ts +0 -68
  63. package/src/components/checkout/hooks/usePlanStepModel.ts +0 -184
  64. package/src/components/checkout/hooks/usePreviewSubscription.ts +0 -165
  65. package/src/components/checkout/hooks/useProgressBarModel.ts +0 -211
  66. package/src/components/checkout/hooks/useSubscriptionModel.ts +0 -22
  67. package/src/components/checkout/hooks/useSubscriptionState.ts +0 -26
  68. package/src/components/checkout/index.ts +0 -8
  69. package/src/components/checkout/planHeader/PlanHeader.tsx +0 -41
  70. package/src/components/checkout/planHeader/index.ts +0 -1
  71. package/src/components/checkout/progressBar/CheckoutProgressBar.style.ts +0 -35
  72. package/src/components/checkout/progressBar/CheckoutProgressBar.tsx +0 -82
  73. package/src/components/checkout/promotionCode/AddPromotionCode.tsx +0 -107
  74. package/src/components/checkout/promotionCode/AddPromotionCodeButton.tsx +0 -43
  75. package/src/components/checkout/promotionCode/AppliedPromotionCode.tsx +0 -49
  76. package/src/components/checkout/promotionCode/PromotionCodeSection.tsx +0 -40
  77. package/src/components/checkout/promotionCode/index.ts +0 -1
  78. package/src/components/checkout/steps/addons/CheckoutAddonsStep.style.tsx +0 -34
  79. package/src/components/checkout/steps/addons/CheckoutAddonsStep.tsx +0 -144
  80. package/src/components/checkout/steps/addons/addon.utils.ts +0 -67
  81. package/src/components/checkout/steps/addons/components/AddonInputContainer.tsx +0 -84
  82. package/src/components/checkout/steps/addons/components/AddonTextContainer.tsx +0 -45
  83. package/src/components/checkout/steps/addons/index.ts +0 -1
  84. package/src/components/checkout/steps/payment/PaymentMethods.style.ts +0 -36
  85. package/src/components/checkout/steps/payment/PaymentMethods.tsx +0 -106
  86. package/src/components/checkout/steps/payment/PaymentStep.tsx +0 -63
  87. package/src/components/checkout/steps/payment/index.ts +0 -1
  88. package/src/components/checkout/steps/payment/stripe/StripePaymentForm.tsx +0 -79
  89. package/src/components/checkout/steps/payment/stripe/index.ts +0 -3
  90. package/src/components/checkout/steps/payment/stripe/stripe.utils.ts +0 -122
  91. package/src/components/checkout/steps/payment/stripe/useStripeIntegration.ts +0 -33
  92. package/src/components/checkout/steps/payment/stripe/useSubmit.ts +0 -135
  93. package/src/components/checkout/steps/payment/zuora/ZuoraPaymentForm.tsx +0 -128
  94. package/src/components/checkout/steps/payment/zuora/index.ts +0 -9
  95. package/src/components/checkout/steps/payment/zuora/useZuoraIntegration.ts +0 -57
  96. package/src/components/checkout/steps/payment/zuora/useZuoraSubmit.ts +0 -125
  97. package/src/components/checkout/steps/payment/zuora/zuora.utils.ts +0 -72
  98. package/src/components/checkout/steps/plan/BillingPeriodPicker.style.tsx +0 -69
  99. package/src/components/checkout/steps/plan/BillingPeriodPicker.tsx +0 -86
  100. package/src/components/checkout/steps/plan/CheckoutChargeList.tsx +0 -223
  101. package/src/components/checkout/steps/plan/CheckoutPlanStep.style.tsx +0 -6
  102. package/src/components/checkout/steps/plan/CheckoutPlanStep.tsx +0 -31
  103. package/src/components/checkout/steps/plan/index.ts +0 -1
  104. package/src/components/checkout/summary/CheckoutSuccess.tsx +0 -82
  105. package/src/components/checkout/summary/CheckoutSummary.tsx +0 -458
  106. package/src/components/checkout/summary/CheckoutSummarySkeleton.tsx +0 -38
  107. package/src/components/checkout/summary/components/CheckoutCaptions.tsx +0 -145
  108. package/src/components/checkout/summary/components/GraduatedPriceBreakdown.tsx +0 -70
  109. package/src/components/checkout/summary/components/LineItems.tsx +0 -275
  110. package/src/components/checkout/summary/components/WithSkeleton.tsx +0 -16
  111. package/src/components/checkout/summary/components/getPriceBreakdownString.ts +0 -66
  112. package/src/components/checkout/summary/index.ts +0 -2
  113. package/src/components/checkout/types.ts +0 -82
  114. package/src/components/common/CollapsableSectionIcon.tsx +0 -9
  115. package/src/components/common/Icon.tsx +0 -61
  116. package/src/components/common/InformationTooltip.tsx +0 -28
  117. package/src/components/common/LongText.tsx +0 -100
  118. package/src/components/common/PoweredByStigg.tsx +0 -59
  119. package/src/components/common/ProgressBar.tsx +0 -41
  120. package/src/components/common/StatusChip.tsx +0 -29
  121. package/src/components/common/TiersSelectContainer.tsx +0 -39
  122. package/src/components/common/Typography.tsx +0 -117
  123. package/src/components/common/VolumeBulkSelect.tsx +0 -74
  124. package/src/components/common/VolumePerUnitInput.tsx +0 -42
  125. package/src/components/common/chart/chartjs.helpers.ts +0 -17
  126. package/src/components/common/chart/chartjs.plugins.ts +0 -34
  127. package/src/components/common/chart/chartjs.theme.ts +0 -41
  128. package/src/components/common/chart/chartjs.tooltip.plugin.tsx +0 -224
  129. package/src/components/common/customIcons.ts +0 -24
  130. package/src/components/common/iconColor.ts +0 -15
  131. package/src/components/common/mapExternalTheme.ts +0 -147
  132. package/src/components/common/mediaQuery.ts +0 -19
  133. package/src/components/common/table/DataRows.tsx +0 -33
  134. package/src/components/common/table/EmptyState.tsx +0 -19
  135. package/src/components/common/table/ErrorState.tsx +0 -19
  136. package/src/components/common/table/GenericTable.tsx +0 -155
  137. package/src/components/common/table/LoadingRows.tsx +0 -33
  138. package/src/components/common/table/index.ts +0 -6
  139. package/src/components/common/table/types.ts +0 -30
  140. package/src/components/credits/balance/CreditBalance.tsx +0 -70
  141. package/src/components/credits/balance/CreditBalanceValue.tsx +0 -60
  142. package/src/components/credits/creditUsageChart/CreditUsage.chartjs.ts +0 -223
  143. package/src/components/credits/creditUsageChart/CreditUsageChart.tsx +0 -128
  144. package/src/components/credits/creditUsageChart/CreditUsageChartEmptyState.tsx +0 -29
  145. package/src/components/credits/creditUsageChart/CreditUsageChartErrorState.tsx +0 -19
  146. package/src/components/credits/creditUsageChart/CreditUsageChartHeader.tsx +0 -104
  147. package/src/components/credits/creditUsageChart/CreditUsageChartTooltip.tsx +0 -93
  148. package/src/components/credits/creditUsageChart/CreditUsageLegend.tsx +0 -141
  149. package/src/components/credits/creditUsageChart/types.ts +0 -4
  150. package/src/components/credits/grants/CreditGrants.tsx +0 -64
  151. package/src/components/credits/grants/CreditGrantsTable.tsx +0 -101
  152. package/src/components/credits/grants/types.ts +0 -38
  153. package/src/components/credits/grants/utils.ts +0 -25
  154. package/src/components/credits/hooks/useCreditBalance.ts +0 -75
  155. package/src/components/credits/hooks/useCreditGrants.ts +0 -40
  156. package/src/components/credits/hooks/useCreditUsage.ts +0 -50
  157. package/src/components/credits/index.ts +0 -15
  158. package/src/components/credits/localization.ts +0 -25
  159. package/src/components/credits/utilization/CreditUtilization.tsx +0 -74
  160. package/src/components/credits/utilization/CreditUtilizationValue.tsx +0 -113
  161. package/src/components/credits/utils/creditBalanceUtils.ts +0 -31
  162. package/src/components/credits/utils/creditGrantUtils.ts +0 -27
  163. package/src/components/customerPortal/CustomerPortal.style.ts +0 -20
  164. package/src/components/customerPortal/CustomerPortal.tsx +0 -37
  165. package/src/components/customerPortal/CustomerPortalContainer.tsx +0 -77
  166. package/src/components/customerPortal/CustomerPortalContext.ts +0 -32
  167. package/src/components/customerPortal/CustomerPortalHeader.tsx +0 -18
  168. package/src/components/customerPortal/CustomerPortalProvider.tsx +0 -49
  169. package/src/components/customerPortal/billing/InformationGrid.tsx +0 -54
  170. package/src/components/customerPortal/billing/InvoicesSection.tsx +0 -41
  171. package/src/components/customerPortal/billing/PaymentDetailsSection.tsx +0 -140
  172. package/src/components/customerPortal/common/ExternalLinkButton.tsx +0 -34
  173. package/src/components/customerPortal/common/SectionContainer.tsx +0 -22
  174. package/src/components/customerPortal/common/SectionHeader.ts +0 -15
  175. package/src/components/customerPortal/common/SectionTitle.tsx +0 -23
  176. package/src/components/customerPortal/common/SkeletonButton.tsx +0 -5
  177. package/src/components/customerPortal/common/StyledButton.tsx +0 -13
  178. package/src/components/customerPortal/customerPortalTextOverrides.ts +0 -39
  179. package/src/components/customerPortal/customerPortalTheme.ts +0 -35
  180. package/src/components/customerPortal/hooks/useCustomerPortal.ts +0 -39
  181. package/src/components/customerPortal/index.ts +0 -16
  182. package/src/components/customerPortal/paywall/CustomerPortalPaywall.style.ts +0 -33
  183. package/src/components/customerPortal/paywall/CustomerPortalPaywall.tsx +0 -36
  184. package/src/components/customerPortal/subscriptionOverview/ContactCustomerSupport.tsx +0 -50
  185. package/src/components/customerPortal/subscriptionOverview/SubscriptionOverviewLoader.tsx +0 -28
  186. package/src/components/customerPortal/subscriptionOverview/SubscriptionsOverview.tsx +0 -106
  187. package/src/components/customerPortal/subscriptionOverview/SubscriptionsOverviewHeader.tsx +0 -48
  188. package/src/components/customerPortal/subscriptionOverview/charges/ChargeItem.tsx +0 -74
  189. package/src/components/customerPortal/subscriptionOverview/charges/ChargeList.tsx +0 -65
  190. package/src/components/customerPortal/subscriptionOverview/subscriptionScheduledUpdates/SubscriptionScheduledUpdateRow.tsx +0 -110
  191. package/src/components/customerPortal/subscriptionOverview/subscriptionScheduledUpdates/SubscriptionScheduledUpdatesAlert.tsx +0 -158
  192. package/src/components/customerPortal/subscriptionOverview/subscriptionView/SubscriptionView.style.ts +0 -6
  193. package/src/components/customerPortal/subscriptionOverview/subscriptionView/SubscriptionView.tsx +0 -37
  194. package/src/components/customerPortal/subscriptionOverview/subscriptionView/TrialPanel.tsx +0 -58
  195. package/src/components/customerPortal/subscriptionOverview/tabs/AddonsList.tsx +0 -28
  196. package/src/components/customerPortal/subscriptionOverview/tabs/Promotions.tsx +0 -62
  197. package/src/components/customerPortal/subscriptionOverview/tabs/SubscriptionTabs.style.tsx +0 -32
  198. package/src/components/customerPortal/subscriptionOverview/tabs/SubscriptionTabs.tsx +0 -100
  199. package/src/components/customerPortal/subscriptionOverview/types/customerPortal.types.ts +0 -4
  200. package/src/components/customerPortal/subscriptionOverview/upcomingBilling/NextEstimatedBill.tsx +0 -29
  201. package/src/components/customerPortal/subscriptionOverview/upcomingBilling/NoUpcomingBilling.tsx +0 -18
  202. package/src/components/customerPortal/subscriptionOverview/upcomingBilling/UpcomingBilling.tsx +0 -89
  203. package/src/components/customerPortal/types.ts +0 -20
  204. package/src/components/customerPortal/usage/CustomerUsageData.style.tsx +0 -22
  205. package/src/components/customerPortal/usage/CustomerUsageData.tsx +0 -124
  206. package/src/components/customerPortal/usage/featureUsage/EntitlementCTAButton.tsx +0 -62
  207. package/src/components/customerPortal/usage/featureUsage/FeatureUsage.helper.ts +0 -45
  208. package/src/components/customerPortal/usage/featureUsage/FeatureUsage.style.ts +0 -13
  209. package/src/components/customerPortal/usage/featureUsage/FeatureUsage.tsx +0 -96
  210. package/src/components/customerPortal/usage/featureUsage/FeatureUsageProgressBar.tsx +0 -56
  211. package/src/components/guards/BooleanEntitlementGuard.tsx +0 -21
  212. package/src/components/guards/EnumEntitlementGuard.tsx +0 -17
  213. package/src/components/guards/MeteredEntitlementGuard.tsx +0 -21
  214. package/src/components/guards/NumericEntitlementGuard.tsx +0 -21
  215. package/src/components/hooks/index.ts +0 -1
  216. package/src/components/hooks/useChargeSort.ts +0 -17
  217. package/src/components/hooks/useIsScreenWiderThan.ts +0 -6
  218. package/src/components/hooks/useWaitForCheckoutCompleted.ts +0 -65
  219. package/src/components/paywall/BillingPeriodPicker.tsx +0 -90
  220. package/src/components/paywall/EntitlementRow.tsx +0 -127
  221. package/src/components/paywall/Paywall.tsx +0 -189
  222. package/src/components/paywall/PaywallContainer.tsx +0 -119
  223. package/src/components/paywall/PaywallLoader.tsx +0 -96
  224. package/src/components/paywall/PlanCompatibleAddons.tsx +0 -127
  225. package/src/components/paywall/PlanEntitlements.tsx +0 -75
  226. package/src/components/paywall/PlanOffering.tsx +0 -256
  227. package/src/components/paywall/PlanOfferingButton.tsx +0 -232
  228. package/src/components/paywall/PlanPrice.tsx +0 -154
  229. package/src/components/paywall/hooks/useLoadPaywallData.ts +0 -75
  230. package/src/components/paywall/index.ts +0 -5
  231. package/src/components/paywall/paywallTextOverrides.ts +0 -79
  232. package/src/components/paywall/types.ts +0 -80
  233. package/src/components/paywall/utils/calculateTrialDaysLeft.ts +0 -5
  234. package/src/components/paywall/utils/calculateUnitQuantityText.ts +0 -23
  235. package/src/components/paywall/utils/computeDefaultBillingPeriod.ts +0 -36
  236. package/src/components/paywall/utils/getPlansToDisplay.ts +0 -13
  237. package/src/components/paywall/utils/hasPricePoints.ts +0 -10
  238. package/src/components/paywall/utils/mapPaywallData.ts +0 -126
  239. package/src/components/utils/calculateDiscountRate.ts +0 -49
  240. package/src/components/utils/currencyUtils.ts +0 -38
  241. package/src/components/utils/dateUtils.ts +0 -17
  242. package/src/components/utils/fixtures/price.fixtures.ts +0 -42
  243. package/src/components/utils/formatNumber.ts +0 -5
  244. package/src/components/utils/getFeatureName.ts +0 -26
  245. package/src/components/utils/getPaidPriceText.ts +0 -77
  246. package/src/components/utils/getPlanPrice.ts +0 -62
  247. package/src/components/utils/getSubscriptionScheduleUpdateTexts.tsx +0 -88
  248. package/src/components/utils/numberUtils.ts +0 -6
  249. package/src/components/utils/onWheelBlur.ts +0 -3
  250. package/src/components/utils/planPrices.ts +0 -10
  251. package/src/components/utils/priceTierUtils.spec.ts +0 -84
  252. package/src/components/utils/priceTierUtils.ts +0 -250
  253. package/src/components/utils/priceUtils.ts +0 -11
  254. package/src/custom.d.ts +0 -6
  255. package/src/hooks/index.ts +0 -8
  256. package/src/hooks/useActiveSubscriptions.ts +0 -21
  257. package/src/hooks/useBooleanEntitlement.ts +0 -20
  258. package/src/hooks/useCustomerPortal.ts +0 -21
  259. package/src/hooks/useEnumEntitlement.ts +0 -20
  260. package/src/hooks/useFetch.ts +0 -32
  261. package/src/hooks/useMeteredEntitlement.ts +0 -20
  262. package/src/hooks/useNumericEntitlement.ts +0 -20
  263. package/src/hooks/usePaywall.ts +0 -21
  264. package/src/hooks/useStiggContext.ts +0 -13
  265. package/src/index.ts +0 -103
  266. package/src/services/logger.ts +0 -22
  267. package/src/stories/Checkout.stories.tsx +0 -123
  268. package/src/stories/CreditBalance.stories.tsx +0 -248
  269. package/src/stories/CreditGrants.stories.tsx +0 -210
  270. package/src/stories/CreditUsageChart.stories.tsx +0 -347
  271. package/src/stories/CreditUtilization.stories.tsx +0 -287
  272. package/src/stories/CustomTheme.ts +0 -57
  273. package/src/stories/CustomerPortal.stories.tsx +0 -265
  274. package/src/stories/GenericTable.stories.tsx +0 -263
  275. package/src/stories/Paywall.stories.tsx +0 -147
  276. package/src/stories/ProgressBar.stories.tsx +0 -103
  277. package/src/stories/StatusChip.stories.tsx +0 -154
  278. package/src/stories/baseArgs.ts +0 -10
  279. package/src/stories/mocks/checkout/consts.ts +0 -15
  280. package/src/stories/mocks/checkout/mockCheckoutPreview.ts +0 -152
  281. package/src/stories/mocks/checkout/mockCheckoutState.ts +0 -212
  282. package/src/styles.css +0 -46
  283. package/src/theme/Fonts.tsx +0 -80
  284. package/src/theme/Theme.tsx +0 -64
  285. package/src/theme/emotion.d.ts +0 -17
  286. package/src/theme/getResolvedTheme.ts +0 -135
  287. package/src/theme/types.ts +0 -85
  288. package/src/types.ts +0 -22
  289. package/src/utils/styledUtils.ts +0 -64
@@ -1,48 +0,0 @@
1
- import styled from '@utils/style';
2
- import { StyledButton } from '../common/StyledButton';
3
- import { Typography } from '../../common/Typography';
4
- import EditIcon from '../../../assets/edit-icon.svg';
5
- import { CustomerPortalLocalization } from '../customerPortalTextOverrides';
6
- import { SectionHeader } from '../common/SectionHeader';
7
- import { SectionTitle } from '../common/SectionTitle';
8
- import { OnManageClick } from '../CustomerPortalContainer';
9
- import { CustomerPortalIntentionType } from '../types';
10
-
11
- type SubscriptionsOverviewHeaderProps = {
12
- onManageSubscription: OnManageClick;
13
- hideManageButton: boolean;
14
- textOverrides: CustomerPortalLocalization;
15
- };
16
-
17
- const StyledEditIcon = styled(EditIcon)`
18
- path {
19
- stroke: ${({ theme }) => theme.stigg.palette.primary};
20
- }
21
- `;
22
-
23
- export function SubscriptionsOverviewHeader({
24
- onManageSubscription,
25
- hideManageButton,
26
- textOverrides,
27
- }: SubscriptionsOverviewHeaderProps) {
28
- return (
29
- <SectionHeader className="stigg-customer-portal-overview-header" $disableMargin>
30
- <SectionTitle title="Subscription" className="stigg-overview-title" />
31
- {!hideManageButton && (
32
- <StyledButton
33
- className="stigg-manage-subscription-button"
34
- variant="outlined"
35
- onClick={() => onManageSubscription({ intentionType: CustomerPortalIntentionType.MANAGE_SUBSCRIPTION })}>
36
- <StyledEditIcon className="stigg-manage-subscription-button-image" />
37
- <Typography
38
- className="stigg-manage-subscription-button-text"
39
- color="primary.main"
40
- style={{ marginLeft: '8px' }}
41
- variant="body1">
42
- {textOverrides?.manageSubscription}
43
- </Typography>
44
- </StyledButton>
45
- )}
46
- </SectionHeader>
47
- );
48
- }
@@ -1,74 +0,0 @@
1
- import { Currency, CustomerPortalEntitlement } from '@stigg/js-client-sdk';
2
- import { FeatureFragment } from '@stigg/api-client-js/src/generated/sdk';
3
- import { Typography } from '../../../common/Typography';
4
- import { currencyPriceFormatter } from '../../../utils/currencyUtils';
5
- import { FeatureUsageProgressBar } from '../../usage/featureUsage/FeatureUsageProgressBar';
6
- import { LongText } from '../../../common/LongText';
7
- import { EntitlementCtaButton } from '../../usage/featureUsage/EntitlementCTAButton';
8
- import { OnBuyMoreCallbackFn } from '../../types';
9
- import { OnManageClick } from '../../CustomerPortalContainer';
10
-
11
- export type UsageBasedChargeProps = {
12
- entitlement: Exclude<CustomerPortalEntitlement, 'feature'>;
13
- feature: FeatureFragment;
14
- amount: number;
15
- blockSize?: number | null;
16
- currency: Currency;
17
- onBuyMore?: OnBuyMoreCallbackFn;
18
- onManageSubscription: OnManageClick;
19
- canUpgradeSubscription: boolean;
20
- hasCustomSubscription: boolean;
21
- hideChargePrice?: boolean;
22
- };
23
-
24
- export function ChargeItem({
25
- amount,
26
- currency,
27
- blockSize,
28
- entitlement,
29
- feature,
30
- hideChargePrice,
31
- onBuyMore,
32
- onManageSubscription,
33
- canUpgradeSubscription,
34
- hasCustomSubscription,
35
- }: UsageBasedChargeProps) {
36
- return (
37
- <div
38
- className={`stigg-charge-list-item stigg-charge-list-item-${entitlement.feature!.refId}`}
39
- style={{ display: 'flex', flexDirection: 'column', gap: 12 }}>
40
- <div style={{ display: 'flex', justifyContent: 'space-between', gap: 12 }}>
41
- <div style={{ display: 'flex', gap: 12 }}>
42
- <LongText variant="body1" color="primary">
43
- {feature.displayName}
44
- </LongText>
45
- {!hideChargePrice && (
46
- <LongText variant="body1" color="secondary">
47
- {currencyPriceFormatter({ amount, currency })} per {blockSize ? `${blockSize} ` : ''}
48
- {blockSize ? feature.featureUnitsPlural : feature.featureUnits}
49
- </LongText>
50
- )}
51
- </div>
52
-
53
- <div style={{ display: 'flex', gap: 12 }}>
54
- <EntitlementCtaButton
55
- entitlement={entitlement}
56
- feature={feature}
57
- canBuyMore
58
- onBuyMore={onBuyMore}
59
- onManageSubscription={onManageSubscription}
60
- canUpgradeSubscription={canUpgradeSubscription}
61
- hasCustomSubscription={hasCustomSubscription}
62
- />
63
- <Typography variant="body1" color="primary" style={{ whiteSpace: 'nowrap' }}>
64
- {entitlement.hasUnlimitedUsage
65
- ? entitlement.currentUsage?.toLocaleString()
66
- : `${entitlement.currentUsage?.toLocaleString()} of ${entitlement.usageLimit?.toLocaleString()}`}
67
- </Typography>
68
- </div>
69
- </div>
70
-
71
- <FeatureUsageProgressBar entitlement={entitlement} />
72
- </div>
73
- );
74
- }
@@ -1,65 +0,0 @@
1
- import { BillingModel, CustomerPortalEntitlement, CustomerPortalSubscription } from '@stigg/js-client-sdk';
2
- import { keyBy } from 'lodash';
3
- import { ChargeItem } from './ChargeItem';
4
- import { OnBuyMoreCallbackFn } from '../../types';
5
- import { OnManageClick } from '../../CustomerPortalContainer';
6
-
7
- export type ChargesProps = {
8
- subscription: CustomerPortalSubscription;
9
- entitlements: CustomerPortalEntitlement[];
10
- onBuyMore?: OnBuyMoreCallbackFn;
11
- onManageSubscription: OnManageClick;
12
- canUpgradeSubscription: boolean;
13
- hasCustomSubscription: boolean;
14
- };
15
-
16
- export function ChargeList({
17
- subscription,
18
- entitlements,
19
- onBuyMore,
20
- onManageSubscription,
21
- hasCustomSubscription,
22
- canUpgradeSubscription,
23
- }: ChargesProps) {
24
- const entitlementByFeature = keyBy(entitlements, 'feature.refId');
25
-
26
- const filteredSubscriptionPrices = subscription.prices.filter(
27
- ({ feature, price }) => !!feature && entitlementByFeature[feature.refId] && !!price,
28
- );
29
-
30
- if (!filteredSubscriptionPrices.length) {
31
- return null;
32
- }
33
-
34
- return (
35
- <div className="stigg-charge-list" style={{ display: 'flex', flexDirection: 'column', gap: 16, marginTop: 32 }}>
36
- {filteredSubscriptionPrices.map(({ feature, price, blockSize, billingModel }) => {
37
- if (!feature || !price) {
38
- return null;
39
- }
40
-
41
- const entitlement = entitlementByFeature[feature.refId];
42
-
43
- if (!entitlement || !entitlement.feature) {
44
- return null;
45
- }
46
-
47
- return (
48
- <ChargeItem
49
- key={feature.refId}
50
- entitlement={entitlement}
51
- feature={entitlement.feature}
52
- amount={price.amount}
53
- blockSize={blockSize}
54
- currency={price.currency}
55
- hideChargePrice={billingModel === BillingModel.PerUnit}
56
- onBuyMore={onBuyMore}
57
- onManageSubscription={onManageSubscription}
58
- canUpgradeSubscription={canUpgradeSubscription}
59
- hasCustomSubscription={hasCustomSubscription}
60
- />
61
- );
62
- })}
63
- </div>
64
- );
65
- }
@@ -1,110 +0,0 @@
1
- import { ArrowDown } from 'react-feather';
2
- import Grid from '@mui/material/Grid';
3
- import {
4
- CustomerPortalSubscription,
5
- CustomerPortalSubscriptionScheduledUpdateDataFragment,
6
- SubscriptionScheduleType,
7
- BillingPeriod,
8
- } from '@stigg/js-client-sdk';
9
- import { compact } from 'lodash';
10
- import { Typography } from '../../../common/Typography';
11
- import { BillingPeriodChangeVariables, UnitAmountChangeVariables } from '../../../../types';
12
- import { FeatureType } from '../types/customerPortal.types';
13
-
14
- export type SubscriptionScheduledUpdateRowProps = {
15
- scheduleUpdate: CustomerPortalSubscriptionScheduledUpdateDataFragment;
16
- };
17
-
18
- function SubscriptionScheduledUpdateDowngradeRow({ scheduleUpdate }: SubscriptionScheduledUpdateRowProps) {
19
- const { targetPackage } = scheduleUpdate;
20
- return (
21
- <Grid container alignItems="center">
22
- <Grid>
23
- <ArrowDown color="#D94052" height={20} className="stigg-scheduled-updates-arrow-down" />
24
- </Grid>
25
- <Grid item>
26
- <Typography className="stigg-scheduled-updates-description" variant="body1">
27
- Downgrade to the <b>{targetPackage?.displayName}</b> plan
28
- </Typography>
29
- </Grid>
30
- </Grid>
31
- );
32
- }
33
-
34
- function SubscriptionScheduledUpdateBillingPeriodChangeRow({ scheduleUpdate }: SubscriptionScheduledUpdateRowProps) {
35
- const { scheduleVariables } = scheduleUpdate;
36
- const { billingPeriod } = scheduleVariables as BillingPeriodChangeVariables;
37
- const currentBillingPeriod = billingPeriod === BillingPeriod.Monthly ? 'annually' : 'monthly';
38
- const nextBillingPeriod = billingPeriod === BillingPeriod.Monthly ? 'monthly' : 'annually';
39
-
40
- return (
41
- <Grid container alignItems="center">
42
- <Grid>
43
- <ArrowDown color="#D94052" height={20} className="stigg-scheduled-updates-arrow-down" />
44
- </Grid>
45
- <Grid item>
46
- <Typography className="stigg-scheduled-updates-description" variant="body1">
47
- Change from an {currentBillingPeriod} to a <b>{nextBillingPeriod}</b> billing cycle
48
- </Typography>
49
- </Grid>
50
- </Grid>
51
- );
52
- }
53
-
54
- function SubscriptionScheduledUpdateUnitQuantityChangeRow({
55
- subscription,
56
- scheduleUpdate,
57
- }: SubscriptionScheduledUpdateRowProps & { subscription: CustomerPortalSubscription }) {
58
- const { scheduleVariables } = scheduleUpdate;
59
- const { newUnitAmount, featureId } = scheduleVariables as UnitAmountChangeVariables;
60
- const features: FeatureType[] = compact(subscription.prices.map(({ feature }) => feature));
61
- const feature = features.find((f) => f.id === featureId);
62
-
63
- if (!feature) {
64
- return null;
65
- }
66
-
67
- const { featureUnits, featureUnitsPlural } = feature;
68
- const newQuantityUnits = newUnitAmount === 1 ? featureUnits : featureUnitsPlural;
69
-
70
- return (
71
- <Grid container alignItems="flex-start" flexWrap="nowrap">
72
- <Grid>
73
- <ArrowDown color="#D94052" height={20} className="stigg-scheduled-updates-arrow-down" />
74
- </Grid>
75
- <Grid item>
76
- <Typography className="stigg-scheduled-updates-description" variant="body1">
77
- Reduce the <b>{featureUnits}</b> quantity to {newUnitAmount} {newQuantityUnits}
78
- </Typography>
79
- </Grid>
80
- </Grid>
81
- );
82
- }
83
-
84
- export function SubscriptionScheduledUpdateRow({
85
- scheduleUpdate,
86
- subscription,
87
- }: {
88
- scheduleUpdate: CustomerPortalSubscriptionScheduledUpdateDataFragment;
89
- subscription: CustomerPortalSubscription;
90
- }) {
91
- switch (scheduleUpdate.subscriptionScheduleType) {
92
- case SubscriptionScheduleType.Downgrade: {
93
- return <SubscriptionScheduledUpdateDowngradeRow scheduleUpdate={scheduleUpdate} />;
94
- }
95
-
96
- case SubscriptionScheduleType.BillingPeriod: {
97
- return <SubscriptionScheduledUpdateBillingPeriodChangeRow scheduleUpdate={scheduleUpdate} />;
98
- }
99
-
100
- case SubscriptionScheduleType.UnitAmount: {
101
- return (
102
- <SubscriptionScheduledUpdateUnitQuantityChangeRow scheduleUpdate={scheduleUpdate} subscription={subscription} />
103
- );
104
- }
105
-
106
- default: {
107
- return null;
108
- }
109
- }
110
- }
@@ -1,158 +0,0 @@
1
- import { useState } from 'react';
2
- import Box from '@mui/material/Box';
3
- import Grid from '@mui/material/Grid';
4
- import { CustomerPortalSubscription } from '@stigg/js-client-sdk';
5
- import styled from '@utils/style';
6
- import { useTheme } from '@emotion/react';
7
- import ClipLoader from 'react-spinners/ClipLoader';
8
- import { CustomerPortalTheme } from '../../customerPortalTheme';
9
- import Restore from '../../../../assets/restore.svg';
10
- import { Icon } from '../../../common/Icon';
11
- import { Typography } from '../../../common/Typography';
12
- import { SubscriptionScheduledUpdateRow } from './SubscriptionScheduledUpdateRow';
13
- import { getSubscriptionScheduleUpdateTexts } from '../../../utils/getSubscriptionScheduleUpdateTexts';
14
- import { StyledButton } from '../../common/StyledButton';
15
-
16
- export type SubscriptionScheduledUpdatesAlertProps = {
17
- subscription: CustomerPortalSubscription;
18
- onCancelScheduledUpdates?: (subscription: CustomerPortalSubscription) => void;
19
- theme: CustomerPortalTheme;
20
- cancelScheduledUpdatesButtonTitle: string;
21
- };
22
-
23
- const SubscriptionScheduleUpdateAlertContainer = styled(Box)<{ $borderColor: string }>`
24
- border-bottom: ${({ $borderColor }) => `1px solid ${$borderColor}`};
25
- border-top-left-radius: 10px;
26
- border-top-right-radius: 10px;
27
- margin: -64px -64px 64px -64px;
28
- padding: 24px 32px;
29
- `;
30
-
31
- const LoadingIndicator = styled(ClipLoader)`
32
- margin-left: 4px;
33
- `;
34
-
35
- const StyledRestoreIcon = styled(Restore)`
36
- color: ${({ theme }) => theme.stigg.palette.primary};
37
- path {
38
- fill: ${({ theme }) => theme.stigg.palette.primary};
39
- }
40
- `;
41
-
42
- function MultipleScheduledUpdates({ subscription }: Pick<SubscriptionScheduledUpdatesAlertProps, 'subscription'>) {
43
- const { scheduledUpdates } = subscription;
44
-
45
- return (
46
- <>
47
- <Grid container alignItems="center" justifyContent="space-between" gap={1}>
48
- <Grid>
49
- <Typography className="stigg-scheduled-updates-description" variant="body1">
50
- The following updates will take effect in the next billing cycle:
51
- </Typography>
52
- </Grid>
53
- </Grid>
54
- <Grid>
55
- {(scheduledUpdates || []).map((scheduleUpdate) => (
56
- <SubscriptionScheduledUpdateRow
57
- key={scheduleUpdate.subscriptionScheduleType}
58
- scheduleUpdate={scheduleUpdate}
59
- subscription={subscription}
60
- />
61
- ))}
62
- </Grid>
63
- </>
64
- );
65
- }
66
-
67
- function SingleScheduledUpdate({ subscription }: Pick<SubscriptionScheduledUpdatesAlertProps, 'subscription'>) {
68
- const { scheduledUpdates } = subscription;
69
- const [scheduledUpdate] = scheduledUpdates || [];
70
-
71
- const { line1, line2 } = getSubscriptionScheduleUpdateTexts({
72
- scheduledUpdate,
73
- subscriptionPrices: subscription.prices,
74
- billingPeriodRange: subscription.billingPeriodRange,
75
- options: {
76
- postfix: 'at the end of the current billing period', // We can later remove this if unnecessary
77
- },
78
- });
79
-
80
- return (
81
- <>
82
- <Grid container alignItems="center" justifyContent="space-between" gap={1}>
83
- <Grid>
84
- <Typography className="stigg-scheduled-updates-title" variant="body1" color="primary">
85
- {line1}
86
- </Typography>
87
- </Grid>
88
- </Grid>
89
- {line2 && (
90
- <Grid>
91
- <Typography className="stigg-scheduled-updates-subtitle" variant="body1" color="secondary">
92
- {line2}
93
- </Typography>
94
- </Grid>
95
- )}
96
- </>
97
- );
98
- }
99
-
100
- export function SubscriptionScheduledUpdatesAlert({
101
- subscription,
102
- onCancelScheduledUpdates,
103
- theme,
104
- cancelScheduledUpdatesButtonTitle,
105
- }: SubscriptionScheduledUpdatesAlertProps) {
106
- const stiggTheme = useTheme();
107
- const [isLoading, setIsLoading] = useState(false);
108
- const { scheduledUpdates } = subscription;
109
-
110
- if (!scheduledUpdates || scheduledUpdates.length === 0) {
111
- return null;
112
- }
113
-
114
- const isSingleScheduledUpdate = scheduledUpdates.length === 1;
115
-
116
- return (
117
- <SubscriptionScheduleUpdateAlertContainer
118
- $borderColor={theme.borderColor}
119
- className="stigg-scheduled-updates-alert-container">
120
- <Grid container alignItems={isSingleScheduledUpdate ? 'center' : 'flex-start'} gap={2}>
121
- <Grid item display="flex">
122
- <Icon icon="ScheduleBox" svgPathColor={theme.iconsColor} svgRectColor={theme.iconsBackgroundColor} />
123
- </Grid>
124
-
125
- <Grid item flex={1}>
126
- {isSingleScheduledUpdate ? (
127
- <SingleScheduledUpdate subscription={subscription} />
128
- ) : (
129
- <MultipleScheduledUpdates subscription={subscription} />
130
- )}
131
- </Grid>
132
-
133
- {!!onCancelScheduledUpdates && (
134
- <Grid item>
135
- <StyledButton
136
- variant="outlined"
137
- onClick={() => {
138
- setIsLoading(true);
139
- Promise.resolve(onCancelScheduledUpdates(subscription)).finally(() => setIsLoading(false));
140
- }}>
141
- {isLoading ? (
142
- <LoadingIndicator loading size={16} color={stiggTheme.stigg.palette.text.disabled} />
143
- ) : (
144
- <StyledRestoreIcon
145
- style={{ display: 'flex', marginRight: 4 }}
146
- className="stigg-scheduled-updates-cancel-update-button-icon"
147
- />
148
- )}
149
- <Typography variant="body1" color="primary.main" className="stigg-scheduled-updates-cancel-update-button">
150
- {cancelScheduledUpdatesButtonTitle}
151
- </Typography>
152
- </StyledButton>
153
- </Grid>
154
- )}
155
- </Grid>
156
- </SubscriptionScheduleUpdateAlertContainer>
157
- );
158
- }
@@ -1,6 +0,0 @@
1
- import styled from '@utils/style';
2
-
3
- export const SubscriptionViewLayout = styled.div`
4
- padding: 24px 0;
5
- border-bottom: 1px solid rgba(0, 30, 108, 0.15);
6
- `;
@@ -1,37 +0,0 @@
1
- import { CustomerPortalSubscription } from '@stigg/js-client-sdk';
2
- import { Typography } from '../../../common/Typography';
3
- import { TrialPanel } from './TrialPanel';
4
- import { CustomerPortalTheme } from '../../customerPortalTheme';
5
- import { OnManageClick } from '../../CustomerPortalContainer';
6
-
7
- type SubscriptionViewProps = {
8
- mainSubscription: CustomerPortalSubscription;
9
- trialSubscription: CustomerPortalSubscription | undefined;
10
- onManageSubscription: OnManageClick;
11
- theme: CustomerPortalTheme;
12
- };
13
-
14
- export function SubscriptionView({
15
- mainSubscription,
16
- trialSubscription,
17
- onManageSubscription,
18
- theme,
19
- }: SubscriptionViewProps) {
20
- return (
21
- <div className="stigg-subscription-view-layout">
22
- <Typography
23
- className="stigg-subscription-plan-name"
24
- variant="h1"
25
- overrideColor={theme.planNameColor}
26
- style={{ marginTop: 8 }}>
27
- {mainSubscription.planName} plan
28
- </Typography>
29
-
30
- <TrialPanel
31
- subscription={trialSubscription}
32
- includePlanName={trialSubscription?.planName !== mainSubscription.planName}
33
- onManageSubscription={onManageSubscription}
34
- />
35
- </div>
36
- );
37
- }
@@ -1,58 +0,0 @@
1
- import styled from '@utils/style';
2
- import { CustomerPortalSubscription, SubscriptionStatus } from '@stigg/js-client-sdk';
3
- import Link from '@mui/material/Link';
4
- import SandClockIcon from '../../../../assets/sand-clock.svg';
5
- import { Typography } from '../../../common/Typography';
6
- import { LongText } from '../../../common/LongText';
7
- import { OnManageClick } from '../../CustomerPortalContainer';
8
- import { CustomerPortalIntentionType } from '../../types';
9
-
10
- const OnTrialBadge = styled.div`
11
- width: 100%;
12
- display: flex;
13
- align-items: center;
14
- gap: 4px;
15
- background-color: ${({ theme }) => theme.stigg.palette.warning};
16
- border-radius: 10px;
17
- padding: 8px 16px;
18
- margin-top: 16px;
19
- `;
20
-
21
- const StyledLink = styled(Link)`
22
- text-decoration-color: white;
23
- color: white;
24
- cursor: pointer;
25
- `;
26
-
27
- export function TrialPanel({
28
- subscription,
29
- includePlanName,
30
- onManageSubscription,
31
- }: {
32
- subscription: CustomerPortalSubscription | undefined;
33
- includePlanName: boolean;
34
- onManageSubscription: OnManageClick;
35
- }) {
36
- if (subscription?.status !== SubscriptionStatus.InTrial) {
37
- return null;
38
- }
39
-
40
- return (
41
- <OnTrialBadge className="stigg-subscription-trial-badge">
42
- <SandClockIcon className="stigg-subscription-trial-badge-image" />
43
-
44
- <div style={{ flex: 1, marginRight: 4 }}>
45
- <LongText variant="body1" className="stigg-subscription-trial-badge-text" color="white">
46
- {`${subscription.trialRemainingDays} days remaining in trial`}
47
- {includePlanName && ` of the ${subscription.planName} plan`}
48
- </LongText>
49
- </div>
50
-
51
- <StyledLink
52
- className="stigg-subscription-trial-upgrade-button"
53
- onClick={() => onManageSubscription({ intentionType: CustomerPortalIntentionType.UPGRADE_TRIAL_PLAN })}>
54
- <Typography color="white">Upgrade plan</Typography>
55
- </StyledLink>
56
- </OnTrialBadge>
57
- );
58
- }
@@ -1,28 +0,0 @@
1
- import flatMap from 'lodash/flatMap';
2
- import isEmpty from 'lodash/isEmpty';
3
- import { CustomerPortalSubscription, CustomerPortalSubscriptionAddonFragment } from '@stigg/js-client-sdk';
4
- import { Typography } from '../../../common/Typography';
5
- import { useCustomerPortalContext } from '../../CustomerPortalContext';
6
-
7
- export function AddonsList() {
8
- const { customerPortal } = useCustomerPortalContext();
9
- const addons: CustomerPortalSubscriptionAddonFragment[] = flatMap(
10
- customerPortal?.subscriptions,
11
- (subscription: CustomerPortalSubscription) => subscription.addons,
12
- );
13
- if (isEmpty(addons)) {
14
- return null;
15
- }
16
-
17
- return (
18
- <div className="stigg-addons-list-layout">
19
- {addons.map((addon, index) => (
20
- <Typography key={addon.addonId} as="span" className="stigg-addon-list-item-text" variant="body1">
21
- {addon.quantity > 1 && `${addon.quantity} X `}
22
- {addon.displayName}
23
- {index === addons.length - 1 ? '' : ', '}
24
- </Typography>
25
- ))}
26
- </div>
27
- );
28
- }
@@ -1,62 +0,0 @@
1
- import { CustomerPortalPromotionalEntitlement } from '@stigg/js-client-sdk';
2
- import moment, { MomentInput } from 'moment';
3
- import styled from '@utils/style';
4
- import { Typography } from '../../../common/Typography';
5
- import { useCustomerPortalContext } from '../../CustomerPortalContext';
6
-
7
- const Row = styled.div<{ $borderColor: string }>`
8
- display: flex;
9
- justify-content: space-between;
10
- align-items: center;
11
- gap: 64px;
12
- border-bottom: ${({ $borderColor }) => `1px solid ${$borderColor}`};
13
- padding: 16px 0;
14
-
15
- & > *:first-of-type {
16
- max-width: 60%;
17
- }
18
- `;
19
-
20
- function getPromotionTitle(promotionalEntitlement: CustomerPortalPromotionalEntitlement) {
21
- const { displayName, usageLimit, hasUnlimitedUsage } = promotionalEntitlement;
22
-
23
- if (hasUnlimitedUsage) {
24
- return `Unlimited ${displayName}`;
25
- }
26
- if (usageLimit) {
27
- return `${displayName} x ${promotionalEntitlement.usageLimit?.toLocaleString()}`;
28
- }
29
-
30
- return displayName;
31
- }
32
-
33
- export function Promotions() {
34
- const { customerPortal, textOverrides, theme } = useCustomerPortalContext();
35
- const promotionalEntitlements = customerPortal?.promotionalEntitlements;
36
-
37
- return (
38
- <div style={{ display: 'flex', flexDirection: 'column' }}>
39
- <Typography color="secondary">{textOverrides.promotionsSubtitle}</Typography>
40
- <div style={{ display: 'flex', flexDirection: 'column' }}>
41
- <Row $borderColor={theme.borderColor}>
42
- <Typography variant="body1" bold>
43
- Feature
44
- </Typography>
45
- <Typography variant="body1" bold>
46
- Expiration date
47
- </Typography>
48
- </Row>
49
- {promotionalEntitlements?.map((promotionalEntitlement, index) => (
50
- <Row key={`${promotionalEntitlement.displayName}-${index}`} $borderColor={theme.borderColor}>
51
- <Typography variant="body1">{getPromotionTitle(promotionalEntitlement)}</Typography>
52
- <Typography variant="body1" color="disabled">
53
- {promotionalEntitlement.endDate
54
- ? moment.utc(promotionalEntitlement.endDate as MomentInput).format('MMM Do, YYYY')
55
- : 'None'}
56
- </Typography>
57
- </Row>
58
- ))}
59
- </div>
60
- </div>
61
- );
62
- }
@@ -1,32 +0,0 @@
1
- import styled from '@utils/style';
2
- import Box from '@mui/material/Box';
3
- import Tabs from '@mui/material/Tabs';
4
-
5
- export const StyledTabs = styled(Tabs)`
6
- .MuiTabs-indicator {
7
- background-color: #001e6c;
8
- }
9
- `;
10
-
11
- export const TabsLayout = styled.div`
12
- width: 100%;
13
- flex: 1;
14
- margin-top: 16px;
15
- `;
16
-
17
- export const TabContent = styled(Box, { shouldForwardProp: (prop) => !prop.startsWith('$') })<{ $maxHeight: string }>`
18
- margin-top: 16px;
19
- max-height: ${({ $maxHeight }) => $maxHeight};
20
- overflow-y: auto;
21
- `;
22
-
23
- export const ListBox = styled.div<{ $backgroundColor: string; $borderColor: string }>`
24
- display: flex;
25
- flex-direction: column;
26
- padding: 24px;
27
- border: ${({ $borderColor }) => `1px solid ${$borderColor}`};
28
- border-radius: 10px;
29
- margin-bottom: 16px;
30
- row-gap: 16px;
31
- background-color: ${({ $backgroundColor }) => $backgroundColor};
32
- `;