@stigg/react-sdk 7.7.1-beta.0 → 7.7.1-beta.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 (286) hide show
  1. package/dist/index.d.ts +5 -2
  2. package/dist/react-sdk.cjs.js +298 -238
  3. package/dist/react-sdk.esm.js +5223 -3827
  4. package/package.json +2 -3
  5. package/src/assets/add.svg +0 -3
  6. package/src/assets/addons.svg +0 -12
  7. package/src/assets/arrow-forward.svg +0 -3
  8. package/src/assets/arrow-right.svg +0 -6
  9. package/src/assets/billing-info-customer.svg +0 -11
  10. package/src/assets/check-stigg.svg +0 -3
  11. package/src/assets/check.svg +0 -5
  12. package/src/assets/close.svg +0 -3
  13. package/src/assets/contact-support.svg +0 -13
  14. package/src/assets/coupon.svg +0 -6
  15. package/src/assets/credit-card.svg +0 -10
  16. package/src/assets/dollar-coin.svg +0 -13
  17. package/src/assets/edit-icon.svg +0 -3
  18. package/src/assets/entitlement-check.svg +0 -3
  19. package/src/assets/lottie/checkout-success.json +0 -1
  20. package/src/assets/mini-schedule.svg +0 -3
  21. package/src/assets/outlined-checked-circle-disabled.svg +0 -6
  22. package/src/assets/outlined-checked-circle.svg +0 -6
  23. package/src/assets/outlined-circle.svg +0 -3
  24. package/src/assets/pay-as-you-go-charge.svg +0 -11
  25. package/src/assets/payment-method.svg +0 -4
  26. package/src/assets/plus-icon.svg +0 -6
  27. package/src/assets/powered-by-stigg.svg +0 -13
  28. package/src/assets/promotions.svg +0 -13
  29. package/src/assets/remove.svg +0 -3
  30. package/src/assets/restore.svg +0 -3
  31. package/src/assets/sand-clock.svg +0 -4
  32. package/src/assets/schedule-box.svg +0 -9
  33. package/src/assets/schedule.svg +0 -3
  34. package/src/assets/subscription-renews-icon.svg +0 -14
  35. package/src/assets/trash.svg +0 -8
  36. package/src/components/StiggProvider.tsx +0 -170
  37. package/src/components/checkout/Checkout.tsx +0 -37
  38. package/src/components/checkout/CheckoutContainer.style.ts +0 -51
  39. package/src/components/checkout/CheckoutContainer.tsx +0 -193
  40. package/src/components/checkout/CheckoutProvider.tsx +0 -181
  41. package/src/components/checkout/components/Button.tsx +0 -35
  42. package/src/components/checkout/components/ChangePlanButton.tsx +0 -30
  43. package/src/components/checkout/components/ContentLoadingSkeleton.tsx +0 -41
  44. package/src/components/checkout/components/DowngradeToFreeContainer.tsx +0 -115
  45. package/src/components/checkout/components/InputField.tsx +0 -26
  46. package/src/components/checkout/components/Skeletons.style.ts +0 -30
  47. package/src/components/checkout/components/StyledArrow.tsx +0 -9
  48. package/src/components/checkout/components/index.ts +0 -3
  49. package/src/components/checkout/configurations/steps.ts +0 -1
  50. package/src/components/checkout/configurations/textOverrides.ts +0 -150
  51. package/src/components/checkout/configurations/theme.ts +0 -46
  52. package/src/components/checkout/configurations/typography.ts +0 -30
  53. package/src/components/checkout/formatting.ts +0 -12
  54. package/src/components/checkout/hooks/index.ts +0 -8
  55. package/src/components/checkout/hooks/useAddonsStepModel.ts +0 -92
  56. package/src/components/checkout/hooks/useCheckoutModel.ts +0 -53
  57. package/src/components/checkout/hooks/useCouponModel.ts +0 -28
  58. package/src/components/checkout/hooks/useLoadCheckout.ts +0 -48
  59. package/src/components/checkout/hooks/usePaymentStepModel.ts +0 -68
  60. package/src/components/checkout/hooks/usePlanStepModel.ts +0 -184
  61. package/src/components/checkout/hooks/usePreviewSubscription.ts +0 -165
  62. package/src/components/checkout/hooks/useProgressBarModel.ts +0 -211
  63. package/src/components/checkout/hooks/useSubscriptionModel.ts +0 -22
  64. package/src/components/checkout/hooks/useSubscriptionState.ts +0 -26
  65. package/src/components/checkout/index.ts +0 -8
  66. package/src/components/checkout/planHeader/PlanHeader.tsx +0 -41
  67. package/src/components/checkout/planHeader/index.ts +0 -1
  68. package/src/components/checkout/progressBar/CheckoutProgressBar.style.ts +0 -35
  69. package/src/components/checkout/progressBar/CheckoutProgressBar.tsx +0 -82
  70. package/src/components/checkout/promotionCode/AddPromotionCode.tsx +0 -107
  71. package/src/components/checkout/promotionCode/AddPromotionCodeButton.tsx +0 -43
  72. package/src/components/checkout/promotionCode/AppliedPromotionCode.tsx +0 -49
  73. package/src/components/checkout/promotionCode/PromotionCodeSection.tsx +0 -40
  74. package/src/components/checkout/promotionCode/index.ts +0 -1
  75. package/src/components/checkout/steps/addons/CheckoutAddonsStep.style.tsx +0 -34
  76. package/src/components/checkout/steps/addons/CheckoutAddonsStep.tsx +0 -144
  77. package/src/components/checkout/steps/addons/addon.utils.ts +0 -67
  78. package/src/components/checkout/steps/addons/components/AddonInputContainer.tsx +0 -84
  79. package/src/components/checkout/steps/addons/components/AddonTextContainer.tsx +0 -45
  80. package/src/components/checkout/steps/addons/index.ts +0 -1
  81. package/src/components/checkout/steps/payment/PaymentMethods.style.ts +0 -36
  82. package/src/components/checkout/steps/payment/PaymentMethods.tsx +0 -106
  83. package/src/components/checkout/steps/payment/PaymentStep.tsx +0 -63
  84. package/src/components/checkout/steps/payment/index.ts +0 -1
  85. package/src/components/checkout/steps/payment/stripe/StripePaymentForm.tsx +0 -79
  86. package/src/components/checkout/steps/payment/stripe/index.ts +0 -3
  87. package/src/components/checkout/steps/payment/stripe/stripe.utils.ts +0 -122
  88. package/src/components/checkout/steps/payment/stripe/useStripeIntegration.ts +0 -33
  89. package/src/components/checkout/steps/payment/stripe/useSubmit.ts +0 -135
  90. package/src/components/checkout/steps/payment/zuora/ZuoraPaymentForm.tsx +0 -128
  91. package/src/components/checkout/steps/payment/zuora/index.ts +0 -9
  92. package/src/components/checkout/steps/payment/zuora/useZuoraIntegration.ts +0 -57
  93. package/src/components/checkout/steps/payment/zuora/useZuoraSubmit.ts +0 -125
  94. package/src/components/checkout/steps/payment/zuora/zuora.utils.ts +0 -72
  95. package/src/components/checkout/steps/plan/BillingPeriodPicker.style.tsx +0 -69
  96. package/src/components/checkout/steps/plan/BillingPeriodPicker.tsx +0 -86
  97. package/src/components/checkout/steps/plan/CheckoutChargeList.tsx +0 -223
  98. package/src/components/checkout/steps/plan/CheckoutPlanStep.style.tsx +0 -6
  99. package/src/components/checkout/steps/plan/CheckoutPlanStep.tsx +0 -31
  100. package/src/components/checkout/steps/plan/index.ts +0 -1
  101. package/src/components/checkout/summary/CheckoutSuccess.tsx +0 -82
  102. package/src/components/checkout/summary/CheckoutSummary.tsx +0 -458
  103. package/src/components/checkout/summary/CheckoutSummarySkeleton.tsx +0 -38
  104. package/src/components/checkout/summary/components/CheckoutCaptions.tsx +0 -145
  105. package/src/components/checkout/summary/components/GraduatedPriceBreakdown.tsx +0 -70
  106. package/src/components/checkout/summary/components/LineItems.tsx +0 -275
  107. package/src/components/checkout/summary/components/WithSkeleton.tsx +0 -16
  108. package/src/components/checkout/summary/components/getPriceBreakdownString.ts +0 -66
  109. package/src/components/checkout/summary/index.ts +0 -2
  110. package/src/components/checkout/types.ts +0 -82
  111. package/src/components/common/CollapsableSectionIcon.tsx +0 -9
  112. package/src/components/common/Icon.tsx +0 -61
  113. package/src/components/common/InformationTooltip.tsx +0 -28
  114. package/src/components/common/LongText.tsx +0 -100
  115. package/src/components/common/PoweredByStigg.tsx +0 -59
  116. package/src/components/common/ProgressBar.tsx +0 -41
  117. package/src/components/common/StatusChip.tsx +0 -29
  118. package/src/components/common/TiersSelectContainer.tsx +0 -39
  119. package/src/components/common/Typography.tsx +0 -117
  120. package/src/components/common/VolumeBulkSelect.tsx +0 -74
  121. package/src/components/common/VolumePerUnitInput.tsx +0 -42
  122. package/src/components/common/chart/chartjs.helpers.ts +0 -17
  123. package/src/components/common/chart/chartjs.plugins.ts +0 -34
  124. package/src/components/common/chart/chartjs.theme.ts +0 -41
  125. package/src/components/common/chart/chartjs.tooltip.plugin.tsx +0 -224
  126. package/src/components/common/customIcons.ts +0 -24
  127. package/src/components/common/iconColor.ts +0 -15
  128. package/src/components/common/mapExternalTheme.ts +0 -147
  129. package/src/components/common/mediaQuery.ts +0 -19
  130. package/src/components/common/table/DataRows.tsx +0 -33
  131. package/src/components/common/table/EmptyState.tsx +0 -19
  132. package/src/components/common/table/ErrorState.tsx +0 -19
  133. package/src/components/common/table/GenericTable.tsx +0 -155
  134. package/src/components/common/table/LoadingRows.tsx +0 -33
  135. package/src/components/common/table/index.ts +0 -6
  136. package/src/components/common/table/types.ts +0 -30
  137. package/src/components/credits/balance/CreditBalance.tsx +0 -70
  138. package/src/components/credits/balance/CreditBalanceValue.tsx +0 -60
  139. package/src/components/credits/creditUsageChart/CreditUsage.chartjs.ts +0 -223
  140. package/src/components/credits/creditUsageChart/CreditUsageChart.tsx +0 -128
  141. package/src/components/credits/creditUsageChart/CreditUsageChartEmptyState.tsx +0 -29
  142. package/src/components/credits/creditUsageChart/CreditUsageChartErrorState.tsx +0 -19
  143. package/src/components/credits/creditUsageChart/CreditUsageChartHeader.tsx +0 -104
  144. package/src/components/credits/creditUsageChart/CreditUsageChartTooltip.tsx +0 -93
  145. package/src/components/credits/creditUsageChart/CreditUsageLegend.tsx +0 -141
  146. package/src/components/credits/creditUsageChart/types.ts +0 -4
  147. package/src/components/credits/grants/CreditGrants.tsx +0 -64
  148. package/src/components/credits/grants/CreditGrantsTable.tsx +0 -101
  149. package/src/components/credits/grants/types.ts +0 -38
  150. package/src/components/credits/grants/utils.ts +0 -25
  151. package/src/components/credits/hooks/useCreditBalance.ts +0 -75
  152. package/src/components/credits/hooks/useCreditGrants.ts +0 -40
  153. package/src/components/credits/hooks/useCreditUsage.ts +0 -50
  154. package/src/components/credits/index.ts +0 -15
  155. package/src/components/credits/localization.ts +0 -25
  156. package/src/components/credits/utilization/CreditUtilization.tsx +0 -74
  157. package/src/components/credits/utilization/CreditUtilizationValue.tsx +0 -113
  158. package/src/components/credits/utils/creditBalanceUtils.ts +0 -31
  159. package/src/components/credits/utils/creditGrantUtils.ts +0 -27
  160. package/src/components/customerPortal/CustomerPortal.style.ts +0 -20
  161. package/src/components/customerPortal/CustomerPortal.tsx +0 -37
  162. package/src/components/customerPortal/CustomerPortalContainer.tsx +0 -77
  163. package/src/components/customerPortal/CustomerPortalContext.ts +0 -32
  164. package/src/components/customerPortal/CustomerPortalHeader.tsx +0 -18
  165. package/src/components/customerPortal/CustomerPortalProvider.tsx +0 -49
  166. package/src/components/customerPortal/billing/InformationGrid.tsx +0 -54
  167. package/src/components/customerPortal/billing/InvoicesSection.tsx +0 -41
  168. package/src/components/customerPortal/billing/PaymentDetailsSection.tsx +0 -140
  169. package/src/components/customerPortal/common/ExternalLinkButton.tsx +0 -34
  170. package/src/components/customerPortal/common/SectionContainer.tsx +0 -22
  171. package/src/components/customerPortal/common/SectionHeader.ts +0 -15
  172. package/src/components/customerPortal/common/SectionTitle.tsx +0 -23
  173. package/src/components/customerPortal/common/SkeletonButton.tsx +0 -5
  174. package/src/components/customerPortal/common/StyledButton.tsx +0 -13
  175. package/src/components/customerPortal/customerPortalTextOverrides.ts +0 -39
  176. package/src/components/customerPortal/customerPortalTheme.ts +0 -35
  177. package/src/components/customerPortal/hooks/useCustomerPortal.ts +0 -39
  178. package/src/components/customerPortal/index.ts +0 -16
  179. package/src/components/customerPortal/paywall/CustomerPortalPaywall.style.ts +0 -33
  180. package/src/components/customerPortal/paywall/CustomerPortalPaywall.tsx +0 -36
  181. package/src/components/customerPortal/subscriptionOverview/ContactCustomerSupport.tsx +0 -50
  182. package/src/components/customerPortal/subscriptionOverview/SubscriptionOverviewLoader.tsx +0 -28
  183. package/src/components/customerPortal/subscriptionOverview/SubscriptionsOverview.tsx +0 -106
  184. package/src/components/customerPortal/subscriptionOverview/SubscriptionsOverviewHeader.tsx +0 -48
  185. package/src/components/customerPortal/subscriptionOverview/charges/ChargeItem.tsx +0 -74
  186. package/src/components/customerPortal/subscriptionOverview/charges/ChargeList.tsx +0 -65
  187. package/src/components/customerPortal/subscriptionOverview/subscriptionScheduledUpdates/SubscriptionScheduledUpdateRow.tsx +0 -110
  188. package/src/components/customerPortal/subscriptionOverview/subscriptionScheduledUpdates/SubscriptionScheduledUpdatesAlert.tsx +0 -158
  189. package/src/components/customerPortal/subscriptionOverview/subscriptionView/SubscriptionView.style.ts +0 -6
  190. package/src/components/customerPortal/subscriptionOverview/subscriptionView/SubscriptionView.tsx +0 -37
  191. package/src/components/customerPortal/subscriptionOverview/subscriptionView/TrialPanel.tsx +0 -58
  192. package/src/components/customerPortal/subscriptionOverview/tabs/AddonsList.tsx +0 -28
  193. package/src/components/customerPortal/subscriptionOverview/tabs/Promotions.tsx +0 -62
  194. package/src/components/customerPortal/subscriptionOverview/tabs/SubscriptionTabs.style.tsx +0 -32
  195. package/src/components/customerPortal/subscriptionOverview/tabs/SubscriptionTabs.tsx +0 -100
  196. package/src/components/customerPortal/subscriptionOverview/types/customerPortal.types.ts +0 -4
  197. package/src/components/customerPortal/subscriptionOverview/upcomingBilling/NextEstimatedBill.tsx +0 -29
  198. package/src/components/customerPortal/subscriptionOverview/upcomingBilling/NoUpcomingBilling.tsx +0 -18
  199. package/src/components/customerPortal/subscriptionOverview/upcomingBilling/UpcomingBilling.tsx +0 -89
  200. package/src/components/customerPortal/types.ts +0 -20
  201. package/src/components/customerPortal/usage/CustomerUsageData.style.tsx +0 -22
  202. package/src/components/customerPortal/usage/CustomerUsageData.tsx +0 -124
  203. package/src/components/customerPortal/usage/featureUsage/EntitlementCTAButton.tsx +0 -62
  204. package/src/components/customerPortal/usage/featureUsage/FeatureUsage.helper.ts +0 -45
  205. package/src/components/customerPortal/usage/featureUsage/FeatureUsage.style.ts +0 -13
  206. package/src/components/customerPortal/usage/featureUsage/FeatureUsage.tsx +0 -96
  207. package/src/components/customerPortal/usage/featureUsage/FeatureUsageProgressBar.tsx +0 -56
  208. package/src/components/guards/BooleanEntitlementGuard.tsx +0 -21
  209. package/src/components/guards/EnumEntitlementGuard.tsx +0 -17
  210. package/src/components/guards/MeteredEntitlementGuard.tsx +0 -21
  211. package/src/components/guards/NumericEntitlementGuard.tsx +0 -21
  212. package/src/components/hooks/index.ts +0 -1
  213. package/src/components/hooks/useChargeSort.ts +0 -17
  214. package/src/components/hooks/useIsScreenWiderThan.ts +0 -6
  215. package/src/components/hooks/useWaitForCheckoutCompleted.ts +0 -65
  216. package/src/components/paywall/BillingPeriodPicker.tsx +0 -90
  217. package/src/components/paywall/EntitlementRow.tsx +0 -127
  218. package/src/components/paywall/Paywall.tsx +0 -189
  219. package/src/components/paywall/PaywallContainer.tsx +0 -119
  220. package/src/components/paywall/PaywallLoader.tsx +0 -96
  221. package/src/components/paywall/PlanCompatibleAddons.tsx +0 -127
  222. package/src/components/paywall/PlanEntitlements.tsx +0 -75
  223. package/src/components/paywall/PlanOffering.tsx +0 -256
  224. package/src/components/paywall/PlanOfferingButton.tsx +0 -232
  225. package/src/components/paywall/PlanPrice.tsx +0 -154
  226. package/src/components/paywall/hooks/useLoadPaywallData.ts +0 -75
  227. package/src/components/paywall/index.ts +0 -5
  228. package/src/components/paywall/paywallTextOverrides.ts +0 -79
  229. package/src/components/paywall/types.ts +0 -80
  230. package/src/components/paywall/utils/calculateTrialDaysLeft.ts +0 -5
  231. package/src/components/paywall/utils/calculateUnitQuantityText.ts +0 -23
  232. package/src/components/paywall/utils/computeDefaultBillingPeriod.ts +0 -36
  233. package/src/components/paywall/utils/getPlansToDisplay.ts +0 -13
  234. package/src/components/paywall/utils/hasPricePoints.ts +0 -10
  235. package/src/components/paywall/utils/mapPaywallData.ts +0 -126
  236. package/src/components/utils/calculateDiscountRate.ts +0 -49
  237. package/src/components/utils/currencyUtils.ts +0 -38
  238. package/src/components/utils/dateUtils.ts +0 -17
  239. package/src/components/utils/fixtures/price.fixtures.ts +0 -42
  240. package/src/components/utils/formatNumber.ts +0 -5
  241. package/src/components/utils/getFeatureName.ts +0 -26
  242. package/src/components/utils/getPaidPriceText.ts +0 -77
  243. package/src/components/utils/getPlanPrice.ts +0 -62
  244. package/src/components/utils/getSubscriptionScheduleUpdateTexts.tsx +0 -88
  245. package/src/components/utils/numberUtils.ts +0 -6
  246. package/src/components/utils/onWheelBlur.ts +0 -3
  247. package/src/components/utils/planPrices.ts +0 -10
  248. package/src/components/utils/priceTierUtils.spec.ts +0 -84
  249. package/src/components/utils/priceTierUtils.ts +0 -250
  250. package/src/components/utils/priceUtils.ts +0 -11
  251. package/src/custom.d.ts +0 -6
  252. package/src/hooks/index.ts +0 -8
  253. package/src/hooks/useActiveSubscriptions.ts +0 -21
  254. package/src/hooks/useBooleanEntitlement.ts +0 -20
  255. package/src/hooks/useCustomerPortal.ts +0 -21
  256. package/src/hooks/useEnumEntitlement.ts +0 -20
  257. package/src/hooks/useFetch.ts +0 -32
  258. package/src/hooks/useMeteredEntitlement.ts +0 -20
  259. package/src/hooks/useNumericEntitlement.ts +0 -20
  260. package/src/hooks/usePaywall.ts +0 -21
  261. package/src/hooks/useStiggContext.ts +0 -13
  262. package/src/index.ts +0 -103
  263. package/src/services/logger.ts +0 -22
  264. package/src/stories/Checkout.stories.tsx +0 -123
  265. package/src/stories/CreditBalance.stories.tsx +0 -248
  266. package/src/stories/CreditGrants.stories.tsx +0 -210
  267. package/src/stories/CreditUsageChart.stories.tsx +0 -347
  268. package/src/stories/CreditUtilization.stories.tsx +0 -287
  269. package/src/stories/CustomTheme.ts +0 -57
  270. package/src/stories/CustomerPortal.stories.tsx +0 -265
  271. package/src/stories/GenericTable.stories.tsx +0 -263
  272. package/src/stories/Paywall.stories.tsx +0 -147
  273. package/src/stories/ProgressBar.stories.tsx +0 -103
  274. package/src/stories/StatusChip.stories.tsx +0 -154
  275. package/src/stories/baseArgs.ts +0 -10
  276. package/src/stories/mocks/checkout/consts.ts +0 -15
  277. package/src/stories/mocks/checkout/mockCheckoutPreview.ts +0 -152
  278. package/src/stories/mocks/checkout/mockCheckoutState.ts +0 -212
  279. package/src/styles.css +0 -46
  280. package/src/theme/Fonts.tsx +0 -80
  281. package/src/theme/Theme.tsx +0 -64
  282. package/src/theme/emotion.d.ts +0 -17
  283. package/src/theme/getResolvedTheme.ts +0 -135
  284. package/src/theme/types.ts +0 -85
  285. package/src/types.ts +0 -22
  286. 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
- `;