@bunnyapp/components 1.8.0-beta.18 → 1.8.0-beta.19

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 (44) hide show
  1. package/dist/cjs/index.js +41 -28
  2. package/dist/cjs/types/src/components/Checkout/QuoteCheckout.d.ts +4 -4
  3. package/dist/cjs/types/src/components/PaymentForm/DemoPay/CreditCard/MiniCreditCard.d.ts +2 -0
  4. package/dist/cjs/types/src/components/QuoteProvider/fragments/quoteFieldsFragment.d.ts +3 -3
  5. package/dist/cjs/types/src/components/QuoteProvider/fragments/quoteFragment.d.ts +1 -1
  6. package/dist/cjs/types/src/components/QuoteProvider/fragments/useQuantityEditableCharges_QuoteFragment.d.ts +1 -1
  7. package/dist/cjs/types/src/components/QuoteProvider/hooks/useSelectedPriceListQuoteChange.d.ts +1 -1
  8. package/dist/cjs/types/src/components/Signup/components/CheckoutSummary/CheckoutSummary.d.ts +1 -1
  9. package/dist/cjs/types/src/components/Signup/components/CheckoutSummary/hooks/sortQuoteChangeCharges.d.ts +1 -1
  10. package/dist/cjs/types/src/components/Signup/mutations/accountSignup.d.ts +1 -1
  11. package/dist/cjs/types/src/components/Subscriptions/Upgrade/PlanPicker/checkoutBar/CheckoutPrice.d.ts +1 -1
  12. package/dist/cjs/types/src/components/Subscriptions/quantityChangeDrawer/utils/utils.d.ts +1 -1
  13. package/dist/cjs/types/src/components/Subscriptions/queries/getSubscriptions.d.ts +3 -3
  14. package/dist/cjs/types/src/components/Subscriptions/subscriptionsList/SubscriptionChargeTotal.d.ts +1 -1
  15. package/dist/cjs/types/src/components/Subscriptions/subscriptionsList/SubscriptionChargeUnitPrice.d.ts +1 -1
  16. package/dist/cjs/types/src/components/Subscriptions/subscriptionsList/subscriptionCardDesktop/SubscriptionCardDesktopRow.d.ts +1 -1
  17. package/dist/cjs/types/src/components/Subscriptions/subscriptionsList/subscriptionCardMobile/SubscriptionCardMobile.d.ts +1 -1
  18. package/dist/cjs/types/src/components/Subscriptions/subscriptionsList/subscriptionUtils.d.ts +1 -1
  19. package/dist/cjs/types/src/components/Subscriptions/subscriptionsList/utils/sortSubscriptionCharges.d.ts +1 -1
  20. package/dist/cjs/types/src/graphql/mutations/checkout.d.ts +24 -14
  21. package/dist/cjs/types/src/utils/couponUtils.d.ts +1 -1
  22. package/dist/esm/index.js +42 -29
  23. package/dist/esm/types/src/components/Checkout/QuoteCheckout.d.ts +4 -4
  24. package/dist/esm/types/src/components/PaymentForm/DemoPay/CreditCard/MiniCreditCard.d.ts +2 -0
  25. package/dist/esm/types/src/components/QuoteProvider/fragments/quoteFieldsFragment.d.ts +3 -3
  26. package/dist/esm/types/src/components/QuoteProvider/fragments/quoteFragment.d.ts +1 -1
  27. package/dist/esm/types/src/components/QuoteProvider/fragments/useQuantityEditableCharges_QuoteFragment.d.ts +1 -1
  28. package/dist/esm/types/src/components/QuoteProvider/hooks/useSelectedPriceListQuoteChange.d.ts +1 -1
  29. package/dist/esm/types/src/components/Signup/components/CheckoutSummary/CheckoutSummary.d.ts +1 -1
  30. package/dist/esm/types/src/components/Signup/components/CheckoutSummary/hooks/sortQuoteChangeCharges.d.ts +1 -1
  31. package/dist/esm/types/src/components/Signup/mutations/accountSignup.d.ts +1 -1
  32. package/dist/esm/types/src/components/Subscriptions/Upgrade/PlanPicker/checkoutBar/CheckoutPrice.d.ts +1 -1
  33. package/dist/esm/types/src/components/Subscriptions/quantityChangeDrawer/utils/utils.d.ts +1 -1
  34. package/dist/esm/types/src/components/Subscriptions/queries/getSubscriptions.d.ts +3 -3
  35. package/dist/esm/types/src/components/Subscriptions/subscriptionsList/SubscriptionChargeTotal.d.ts +1 -1
  36. package/dist/esm/types/src/components/Subscriptions/subscriptionsList/SubscriptionChargeUnitPrice.d.ts +1 -1
  37. package/dist/esm/types/src/components/Subscriptions/subscriptionsList/subscriptionCardDesktop/SubscriptionCardDesktopRow.d.ts +1 -1
  38. package/dist/esm/types/src/components/Subscriptions/subscriptionsList/subscriptionCardMobile/SubscriptionCardMobile.d.ts +1 -1
  39. package/dist/esm/types/src/components/Subscriptions/subscriptionsList/subscriptionUtils.d.ts +1 -1
  40. package/dist/esm/types/src/components/Subscriptions/subscriptionsList/utils/sortSubscriptionCharges.d.ts +1 -1
  41. package/dist/esm/types/src/graphql/mutations/checkout.d.ts +24 -14
  42. package/dist/esm/types/src/utils/couponUtils.d.ts +1 -1
  43. package/dist/index.d.ts +2 -0
  44. package/package.json +1 -1
package/dist/cjs/index.js CHANGED
@@ -1288,7 +1288,7 @@ const DEFAULT_CONFIG = {
1288
1288
  };
1289
1289
 
1290
1290
  // This will be replaced at build time by rollup-plugin-replace
1291
- const PACKAGE_VERSION = '1.8.0-beta.17';
1291
+ const PACKAGE_VERSION = '1.8.0-beta.18';
1292
1292
  const createRequestHeaders = (token) => {
1293
1293
  const headers = createClientDevHeaders({ token });
1294
1294
  // Add the components version header
@@ -1343,7 +1343,7 @@ const createClientDevHeaders = ({ token, componentsVersion, additionalHeaders, }
1343
1343
  return headers;
1344
1344
  };
1345
1345
 
1346
- const MUTATION$5 = `
1346
+ const MUTATION$4 = `
1347
1347
  query FormattedInvoice($id: ID) {
1348
1348
  formattedInvoice(id: $id) {
1349
1349
  amount
@@ -1411,7 +1411,7 @@ query FormattedInvoice($id: ID) {
1411
1411
  const getFormattedInvoice = async ({ id, token, apiHost, }) => {
1412
1412
  const vars = { id };
1413
1413
  const response = await gqlRequest({
1414
- query: MUTATION$5,
1414
+ query: MUTATION$4,
1415
1415
  token,
1416
1416
  vars,
1417
1417
  apiHost,
@@ -19783,6 +19783,8 @@ const MiniCreditCard_PaymentMethodFragment = t(`
19783
19783
  type
19784
19784
  identifier
19785
19785
  }
19786
+ state
19787
+ failureReason
19786
19788
  id
19787
19789
  }
19788
19790
  `, [CardImage_PaymentMethodFragment]);
@@ -19790,6 +19792,7 @@ function MiniCreditCard({ className, buttons, hideDropdownMenu = false, hideDefa
19790
19792
  var _a, _b, _c;
19791
19793
  const { darkMode } = react.useContext(BunnyContext);
19792
19794
  const { brandColor } = useBrand();
19795
+ const [isHovering, setIsHovering] = react.useState(false);
19793
19796
  // Read fragment
19794
19797
  const paymentMethod = readFragment(MiniCreditCard_PaymentMethodFragment, maskedPaymentMethod);
19795
19798
  const borderColor = react.useMemo(() => {
@@ -19799,7 +19802,15 @@ function MiniCreditCard({ className, buttons, hideDropdownMenu = false, hideDefa
19799
19802
  return darkMode ? 'var(--row-background-alternate)' : 'bg-slate-50';
19800
19803
  }, [darkMode]);
19801
19804
  const isDefault = paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.isDefault;
19802
- return (jsxRuntime.jsx("div", { className: `bunny-flex bunny-flex-row bunny-justify-between bunny-items-center bunny-p-1 bunny-px-3 bunny-border-solid ${backgroundColor} bunny-${borderColor} bunny-rounded-md bunny-border ${className}`, id: id, children: paymentMethod ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("div", { className: "bunny-flex bunny-flex-row bunny-gap-4", children: jsxRuntime.jsxs("div", { className: "bunny-flex bunny-items-center bunny-gap-2 bunny-space-between bunny-w-full", children: [jsxRuntime.jsx(CardImage, { paymentMethod: paymentMethod }), jsxRuntime.jsx(Issuer, { issuer: (_a = paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.metadata) === null || _a === void 0 ? void 0 : _a.issuer }), jsxRuntime.jsx(Identifier, { type: (_b = paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.metadata) === null || _b === void 0 ? void 0 : _b.type, identifier: (_c = paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.metadata) === null || _c === void 0 ? void 0 : _c.identifier }), !hideDefaultTag && (jsxRuntime.jsx("div", { children: isDefault ? (jsxRuntime.jsx(antd.Tag, { bordered: false, style: { color: brandColor, backgroundColor: `${brandColor}30` }, children: "Default" })) : null }))] }) }), buttons ? (buttons) : (jsxRuntime.jsx(jsxRuntime.Fragment, { children: !hideDropdownMenu && (jsxRuntime.jsx(DropdownMenu, { setDefault: onClickSetDefault, remove: onClickRemove, isDefault: isDefault !== null && isDefault !== void 0 ? isDefault : false, id: `credit-card-dropdown-${paymentMethod.id}` })) }))] })) : (jsxRuntime.jsxs("div", { className: "bunny-flex bunny-flex-row bunny-items-center justify-between w-full", children: [jsxRuntime.jsxs("div", { className: "bunny-flex bunny-flex-row bunny-gap-2 bunny-items-center", children: [jsxRuntime.jsx(icons.CreditCardOutlined, {}), jsxRuntime.jsx(Text$D, { className: "bunny-text-slate-400 bunny-text-sm", children: "No payment methods" })] }), jsxRuntime.jsx(antd.Button, { disabled: true, type: "link" }), buttons] })) }));
19805
+ const isFailed = (paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.state) === 'FAILED';
19806
+ return (jsxRuntime.jsx("div", { className: `bunny-flex bunny-flex-row bunny-justify-between bunny-items-center bunny-p-1 bunny-px-3 bunny-border-solid ${backgroundColor} bunny-${borderColor} bunny-rounded-md bunny-border ${className}`, id: id, onMouseEnter: () => setIsHovering(true), onMouseLeave: () => setIsHovering(false), children: paymentMethod ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("div", { className: "bunny-flex bunny-flex-row bunny-gap-4", children: jsxRuntime.jsxs("div", { className: "bunny-flex bunny-items-center bunny-gap-2 bunny-space-between bunny-w-full", children: [jsxRuntime.jsx(CardImage, { paymentMethod: paymentMethod }), jsxRuntime.jsx(Issuer, { issuer: (_a = paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.metadata) === null || _a === void 0 ? void 0 : _a.issuer }), jsxRuntime.jsx(Identifier, { type: (_b = paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.metadata) === null || _b === void 0 ? void 0 : _b.type, identifier: (_c = paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.metadata) === null || _c === void 0 ? void 0 : _c.identifier }), jsxRuntime.jsxs("div", { className: "bunny-flex bunny-items-center bunny-gap-1", children: [isDefault && !hideDefaultTag && (jsxRuntime.jsx(antd.Tag, { bordered: false, style: { color: brandColor, backgroundColor: `${brandColor}30` }, children: "Default" })), isFailed && (jsxRuntime.jsx(FailedTag, { failureReason: paymentMethod.failureReason, forceOpenTooltip: isHovering }))] })] }) }), buttons ? (buttons) : (jsxRuntime.jsx(jsxRuntime.Fragment, { children: !hideDropdownMenu && (jsxRuntime.jsx(DropdownMenu, { setDefault: onClickSetDefault, remove: onClickRemove, isDefault: isDefault !== null && isDefault !== void 0 ? isDefault : false, id: `credit-card-dropdown-${paymentMethod.id}` })) }))] })) : (jsxRuntime.jsxs("div", { className: "bunny-flex bunny-flex-row bunny-items-center justify-between w-full", children: [jsxRuntime.jsxs("div", { className: "bunny-flex bunny-flex-row bunny-gap-2 bunny-items-center", children: [jsxRuntime.jsx(icons.CreditCardOutlined, {}), jsxRuntime.jsx(Text$D, { className: "bunny-text-slate-400 bunny-text-sm", children: "No payment methods" })] }), jsxRuntime.jsx(antd.Button, { disabled: true, type: "link" }), buttons] })) }));
19807
+ }
19808
+ function FailedTag({ failureReason, forceOpenTooltip }) {
19809
+ const tag = (jsxRuntime.jsx(antd.Tag, { bordered: false, color: "red", children: "Failed" }));
19810
+ if (!failureReason) {
19811
+ return tag;
19812
+ }
19813
+ return jsxRuntime.jsx(antd.Tooltip, { title: failureReason, open: forceOpenTooltip, children: tag });
19803
19814
  }
19804
19815
  const Identifier = ({ type, identifier, }) => {
19805
19816
  if (type === 'link') {
@@ -19850,7 +19861,7 @@ const PaymentForm_PaymentMethodsFragment = t(`
19850
19861
  }
19851
19862
  `, [MiniCreditCard_PaymentMethodFragment]);
19852
19863
 
19853
- const mutation$i = t(`
19864
+ const mutation$j = t(`
19854
19865
  query PaymentPlugins($accountId: ID) {
19855
19866
  paymentPlugins(accountId: $accountId) {
19856
19867
  enabled
@@ -19878,7 +19889,7 @@ const mutation$i = t(`
19878
19889
  // }[];
19879
19890
  // };
19880
19891
  const getPaymentPlugins = async ({ apiHost, token, accountId, }) => {
19881
- const response = await execute(mutation$i, { apiHost, token }, { accountId });
19892
+ const response = await execute(mutation$j, { apiHost, token }, { accountId });
19882
19893
  return response === null || response === void 0 ? void 0 : response.paymentPlugins;
19883
19894
  };
19884
19895
  const usePaymentPlugins = (accountId) => {
@@ -20408,17 +20419,17 @@ function StripeFormProvider({ children, currencyId, accountId, }) {
20408
20419
  return (jsxRuntime.jsx(reactStripeJs.Elements, { options: options, stripe: stripe, children: children }));
20409
20420
  }
20410
20421
 
20411
- const MUTATION$4 = `
20412
- mutation checkout(
20413
- $invoiceId: ID,
20414
- $quoteId: ID,
20415
- $paymentMethodId: ID,
20422
+ const mutation$i = t(`
20423
+ mutation Checkout(
20424
+ $invoiceId: ID
20425
+ $quoteId: ID
20426
+ $paymentMethodId: ID
20416
20427
  $paymentMethodData: CheckoutPaymentMethodAttributes
20417
20428
  ) {
20418
20429
  checkout(
20419
- invoiceId: $invoiceId,
20420
- quoteId: $quoteId,
20421
- paymentMethodId: $paymentMethodId,
20430
+ invoiceId: $invoiceId
20431
+ quoteId: $quoteId
20432
+ paymentMethodId: $paymentMethodId
20422
20433
  paymentMethodData: $paymentMethodData
20423
20434
  ) {
20424
20435
  invoice {
@@ -20443,7 +20454,7 @@ const MUTATION$4 = `
20443
20454
  }
20444
20455
  }
20445
20456
  }
20446
- `;
20457
+ `);
20447
20458
  const checkout = async ({ quoteId, invoiceId, paymentMethodId, paymentMethodData, token, apiHost, }) => {
20448
20459
  const mutationVars = {
20449
20460
  quoteId,
@@ -20456,18 +20467,8 @@ const checkout = async ({ quoteId, invoiceId, paymentMethodId, paymentMethodData
20456
20467
  metadata: paymentMethodData.metadata,
20457
20468
  };
20458
20469
  }
20459
- const response = await gqlRequest({
20460
- query: MUTATION$4,
20461
- token,
20462
- vars: mutationVars,
20463
- apiHost: apiHost,
20464
- });
20465
- const { errors } = response === null || response === void 0 ? void 0 : response.checkout;
20466
- if (errors)
20467
- throw errors;
20468
- return {
20469
- savePaymentMethod: paymentMethodData === null || paymentMethodData === void 0 ? void 0 : paymentMethodData.savePaymentMethod,
20470
- };
20470
+ const response = await execute(mutation$i, { apiHost, token }, mutationVars);
20471
+ return response === null || response === void 0 ? void 0 : response.checkout;
20471
20472
  };
20472
20473
 
20473
20474
  const getQuoteAmountDue_QuoteFragment = t(`
@@ -21013,6 +21014,7 @@ function usePay$2({ onPaymentSuccess, onPaymentError, quoteId, invoiceId, plugin
21013
21014
  const showErrorNotification$9 = useErrorNotification();
21014
21015
  function usePay$1({ onPaymentSuccess, onPaymentError, quoteId, invoiceId, plugin, }) {
21015
21016
  // Hooks
21017
+ const queryClient = reactQuery.useQueryClient();
21016
21018
  const { apiHost } = react.useContext(BunnyContext);
21017
21019
  const customCheckoutFunction = useCustomCheckoutFunction();
21018
21020
  const token = useToken();
@@ -21045,6 +21047,10 @@ function usePay$1({ onPaymentSuccess, onPaymentError, quoteId, invoiceId, plugin
21045
21047
  }
21046
21048
  catch (error) {
21047
21049
  onPaymentError === null || onPaymentError === void 0 ? void 0 : onPaymentError(error);
21050
+ // invalidate payment methods query on error so we can immediately display failure reason on stored payment methods
21051
+ queryClient.invalidateQueries({
21052
+ queryKey: QueryKeyFactory.accountPaymentMethodsKey({}),
21053
+ });
21048
21054
  }
21049
21055
  finally {
21050
21056
  setIsPaying(false);
@@ -24204,7 +24210,14 @@ const QuoteCheckout = ({ account, onSuccess, onFail, quote: maskedQuote, taxatio
24204
24210
  return await checkout({ quoteId: quote.id, token, apiHost });
24205
24211
  },
24206
24212
  onSuccess,
24207
- onError: onFail,
24213
+ onError: (error) => {
24214
+ console.log("error", error);
24215
+ // invalidate payment methods query on error so we can immediately display failure reason on stored payment methods
24216
+ queryClient.invalidateQueries({
24217
+ queryKey: QueryKeyFactory.accountPaymentMethodsKey({}),
24218
+ });
24219
+ onFail(error);
24220
+ },
24208
24221
  });
24209
24222
  async function handleCheckoutNoPayment() {
24210
24223
  setIsSaving(true);
@@ -11,7 +11,7 @@ export declare const QuoteCheckout_QuoteFragment: import("gql.tada").TadaDocumen
11
11
  quoteChanges: ({
12
12
  id: string | null;
13
13
  charges: {
14
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
14
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
15
15
  coupon: {
16
16
  couponCode: string;
17
17
  } | null;
@@ -19,7 +19,7 @@ export declare const QuoteCheckout_QuoteFragment: import("gql.tada").TadaDocumen
19
19
  }[] & {
20
20
  currencyId: string;
21
21
  id: string | null;
22
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE";
22
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE";
23
23
  charges: {
24
24
  subtotal: number | null;
25
25
  amountsByPeriod: {
@@ -44,7 +44,7 @@ export declare const QuoteCheckout_QuoteFragment: import("gql.tada").TadaDocumen
44
44
  couponCode: string;
45
45
  } | null;
46
46
  quantity: number | null;
47
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
47
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
48
48
  }[];
49
49
  priceList: {
50
50
  id: string;
@@ -70,7 +70,7 @@ export declare const QuoteCheckout_QuoteFragment: import("gql.tada").TadaDocumen
70
70
  amount: number | null;
71
71
  startDate: unknown;
72
72
  }[];
73
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE";
73
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE";
74
74
  [$tada.fragmentRefs]: {
75
75
  canApplyCoupons_QuoteFragment: "Quote";
76
76
  } & {
@@ -9,6 +9,8 @@ export declare const MiniCreditCard_PaymentMethodFragment: import("gql.tada").Ta
9
9
  type: string | null;
10
10
  identifier: string | null;
11
11
  } | null;
12
+ state: "FAILED" | "UNKNOWN" | "SUCCESS" | null;
13
+ failureReason: string | null;
12
14
  id: string;
13
15
  }, {}, {
14
16
  fragment: "MiniCreditCard_PaymentMethodFragment";
@@ -17,11 +17,11 @@ export declare const QuoteFields_QuoteFragment: import("gql.tada").TadaDocumentN
17
17
  amount: number | null;
18
18
  startDate: unknown;
19
19
  }[];
20
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE";
20
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE";
21
21
  quoteChanges: {
22
22
  currencyId: string;
23
23
  id: string | null;
24
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE";
24
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE";
25
25
  charges: {
26
26
  subtotal: number | null;
27
27
  amountsByPeriod: {
@@ -46,7 +46,7 @@ export declare const QuoteFields_QuoteFragment: import("gql.tada").TadaDocumentN
46
46
  couponCode: string;
47
47
  } | null;
48
48
  quantity: number | null;
49
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
49
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
50
50
  }[];
51
51
  priceList: {
52
52
  id: string;
@@ -17,7 +17,7 @@ export declare const QuoteContext_QuoteFragment: import("gql.tada").TadaDocument
17
17
  startDate: unknown;
18
18
  quoteChanges: {
19
19
  id: string | null;
20
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE";
20
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE";
21
21
  priceList: {
22
22
  id: string;
23
23
  } | null;
@@ -1,6 +1,6 @@
1
1
  export declare const useQuantityEditableCharges_QuoteFragment: import("gql.tada").TadaDocumentNode<{
2
2
  quoteChanges: {
3
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE";
3
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE";
4
4
  charges: {
5
5
  priceListCharge: {
6
6
  deprecated: boolean | null;
@@ -13,7 +13,7 @@ export declare const useSelectedPriceListQuoteChange_QuoteChangeFragment: import
13
13
  priceList: {
14
14
  id: string;
15
15
  } | null;
16
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE";
16
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE";
17
17
  }, {}, {
18
18
  fragment: "useSelectedPriceListQuoteChange_QuoteChangeFragment";
19
19
  on: "QuoteChange";
@@ -18,7 +18,7 @@ export declare const CheckoutSummary_QuoteFragment: import("gql.tada").TadaDocum
18
18
  quoteChanges: {
19
19
  charges: {
20
20
  id: string | null;
21
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
21
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
22
22
  name: string | null;
23
23
  coupon: {
24
24
  couponCode: string;
@@ -1,6 +1,6 @@
1
1
  import { ResultOf } from 'gql.tada';
2
2
  declare const sortQuoteChangeCharges_QuoteChargeFragment: import("gql.tada").TadaDocumentNode<{
3
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
3
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
4
4
  }, {}, {
5
5
  fragment: "sortQuoteChangeCharges_QuoteChargeFragment";
6
6
  on: "QuoteCharge";
@@ -33,7 +33,7 @@ declare const accountSignup: ({ token, apiHost, accountId, quoteId, paymentToken
33
33
  invoiceImmediatelyAvailable: boolean | null;
34
34
  invoiceUntil: unknown;
35
35
  isPendingApprovalRequest: boolean;
36
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE";
36
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE";
37
37
  message: string | null;
38
38
  name: string | null;
39
39
  netPaymentDays: number | null;
@@ -5,7 +5,7 @@ export declare const CheckoutPrice_QuoteFragment: import("gql.tada").TadaDocumen
5
5
  amountDue: number | null;
6
6
  quoteChanges: {
7
7
  charges: {
8
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
8
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
9
9
  chargeType: "ONE_TIME" | "RECURRING" | "USAGE" | null;
10
10
  }[];
11
11
  }[] | null;
@@ -4,7 +4,7 @@ export declare const CanShowQuantitiesInput_SubscriptionChargeFragment: import("
4
4
  pricingModel: "FLAT" | "TIERED" | "VOLUME" | "BANDS" | null;
5
5
  expired: boolean;
6
6
  selfServiceQuantity: boolean | null;
7
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
7
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
8
8
  chargeType: "ONE_TIME" | "RECURRING" | "USAGE" | null;
9
9
  }, {}, {
10
10
  fragment: "CanShowQuantitiesInput_SubscriptionChargeFragment";
@@ -75,7 +75,7 @@ export declare const getSubscriptions: ({ apiHost, isInPreviewMode, token, }: {
75
75
  id: string | null;
76
76
  isAmendment: boolean;
77
77
  isRamp: boolean;
78
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
78
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
79
79
  name: string | null;
80
80
  periodPrice: number | null;
81
81
  price: string | null;
@@ -134,7 +134,7 @@ export declare const getSubscriptions: ({ apiHost, isInPreviewMode, token, }: {
134
134
  id: string | null;
135
135
  isAmendment: boolean;
136
136
  isRamp: boolean;
137
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
137
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
138
138
  name: string | null;
139
139
  periodPrice: number | null;
140
140
  price: string | null;
@@ -173,7 +173,7 @@ export declare const getSubscriptions: ({ apiHost, isInPreviewMode, token, }: {
173
173
  id: string | null;
174
174
  isAmendment: boolean;
175
175
  isRamp: boolean;
176
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
176
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
177
177
  name: string | null;
178
178
  periodPrice: number | null;
179
179
  price: string | null;
@@ -3,7 +3,7 @@ export declare const SubscriptionChargeTotal_SubscriptionChargeFragment: import(
3
3
  billingPeriod: "MONTHLY" | "QUARTERLY" | "SEMI_ANNUAL" | "ANNUAL" | "ONCE" | null;
4
4
  chargeType: "ONE_TIME" | "RECURRING" | "USAGE" | null;
5
5
  trial: boolean;
6
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
6
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
7
7
  price: string | null;
8
8
  periodPrice: number | null;
9
9
  }, {}, {
@@ -3,7 +3,7 @@ export declare const SubscriptionChargeUnitPrice_SubscriptionChargeFragment: imp
3
3
  trial: boolean;
4
4
  discountedPrice: string | null;
5
5
  priceDecimals: number | null;
6
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
6
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
7
7
  pricingModel: "FLAT" | "TIERED" | "VOLUME" | "BANDS" | null;
8
8
  priceTiers: {
9
9
  starts: number | null;
@@ -5,7 +5,7 @@ export declare const SubscriptionCardDesktopRow_SubscriptionChargeFragment: impo
5
5
  trial: boolean;
6
6
  startDate: unknown;
7
7
  endDate: unknown;
8
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
8
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
9
9
  chargeType: "ONE_TIME" | "RECURRING" | "USAGE" | null;
10
10
  quantity: number | null;
11
11
  name: string | null;
@@ -14,7 +14,7 @@ export declare const SubscriptionCardMobile_SubscriptionFragment: import("gql.ta
14
14
  };
15
15
  isRamp: boolean;
16
16
  name: string | null;
17
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
17
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
18
18
  startDate: unknown;
19
19
  endDate: unknown;
20
20
  quantity: number | null;
@@ -35,7 +35,7 @@ export declare const splitSubscriptionsByPriceList_SubscriptionFragment: import(
35
35
  } | null;
36
36
  }[] | null;
37
37
  chargeReport: {
38
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
38
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
39
39
  startDate: unknown;
40
40
  endDate: unknown;
41
41
  priceList: {
@@ -2,7 +2,7 @@ import { FragmentOf } from 'gql.tada';
2
2
  export declare const sortSubscriptionCharges_SubscriptionChargeFragment: import("gql.tada").TadaDocumentNode<{
3
3
  id: string | null;
4
4
  priceListChargeId: string | null;
5
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
5
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
6
6
  endDate: unknown;
7
7
  startDate: unknown;
8
8
  isAmendment: boolean;
@@ -1,14 +1,4 @@
1
- import Payment from '@/types/Payment';
2
- import Invoice from '@/types/Invoice';
3
- import { Transaction } from '@/types/Transaction';
4
- import PaymentApplication from '@/types/PaymentApplication';
5
- export type CheckoutResponse = {
6
- invoice: Invoice;
7
- payment: Payment;
8
- paymentApplication: PaymentApplication;
9
- transaction: Transaction;
10
- };
11
- declare const checkout: ({ quoteId, invoiceId, paymentMethodId, paymentMethodData, token, apiHost, }: {
1
+ type CheckoutProps = {
12
2
  quoteId?: string | null;
13
3
  invoiceId?: string | null;
14
4
  paymentMethodId?: string;
@@ -20,7 +10,27 @@ declare const checkout: ({ quoteId, invoiceId, paymentMethodId, paymentMethodDat
20
10
  };
21
11
  token?: string;
22
12
  apiHost: string;
23
- }) => Promise<{
24
- savePaymentMethod: boolean | undefined;
25
- }>;
13
+ };
14
+ declare const checkout: ({ quoteId, invoiceId, paymentMethodId, paymentMethodData, token, apiHost, }: CheckoutProps) => Promise<{
15
+ invoice: {
16
+ id: string | null;
17
+ state: "READY" | "NOT_DUE" | "DUE" | "UNPAID" | "DRAFT" | "PREPARING" | "PAID" | "VOIDED" | "FAILED" | "PROCESSING_PAYMENT" | "MERGED" | "QUEUED" | "CONSOLIDATED";
18
+ amount: number;
19
+ amountDue: number | null;
20
+ } | null;
21
+ payment: {
22
+ id: string;
23
+ state: "APPLIED" | "PARTIALLY_APPLIED" | "UNAPPLIED";
24
+ amount: number;
25
+ } | null;
26
+ paymentApplication: {
27
+ id: string;
28
+ invoiceId: string | null;
29
+ paymentId: string | null;
30
+ } | null;
31
+ transaction: {
32
+ id: string;
33
+ amount: number;
34
+ } | null;
35
+ } | null>;
26
36
  export default checkout;
@@ -1,7 +1,7 @@
1
1
  import { FragmentOf } from 'gql.tada';
2
2
  export declare const canApplyCoupons_QuoteFragment: import("gql.tada").TadaDocumentNode<{
3
3
  id: string | null;
4
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE";
4
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE";
5
5
  amountDue: number | null;
6
6
  }, {}, {
7
7
  fragment: "canApplyCoupons_QuoteFragment";
package/dist/esm/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
2
2
  import { useState, useEffect, isValidElement, createContext, useContext, useMemo, useCallback, useRef, createElement, Fragment as Fragment$1 } from 'react';
3
3
  import { WarningOutlined, CheckCircleOutlined, CreditCardOutlined, EllipsisOutlined, BankOutlined, DownloadOutlined, SearchOutlined, CheckCircleFilled, LoadingOutlined, InfoCircleOutlined, CloseOutlined } from '@ant-design/icons';
4
- import { notification, theme, ConfigProvider, Tag, Button, Dropdown, Typography, Skeleton, Input, Modal, Checkbox, Collapse, Spin, Form, Tooltip as Tooltip$1, Drawer, Card as Card$1, Divider, Select, Popconfirm, Table, Radio, Space, Switch } from 'antd';
4
+ import { notification, theme, ConfigProvider, Tag, Button, Tooltip as Tooltip$1, Dropdown, Typography, Skeleton, Input, Modal, Checkbox, Collapse, Spin, Form, Drawer, Card as Card$1, Divider, Select, Popconfirm, Table, Radio, Space, Switch } from 'antd';
5
5
  import { QueryClient, MutationCache, QueryCache, QueryClientProvider, useQuery, useQueryClient, useMutation, keepPreviousData, useIsMutating, useIsFetching } from '@tanstack/react-query';
6
6
  import request$1 from 'graphql-request';
7
7
  import { RecoilRoot } from 'recoil';
@@ -1286,7 +1286,7 @@ const DEFAULT_CONFIG = {
1286
1286
  };
1287
1287
 
1288
1288
  // This will be replaced at build time by rollup-plugin-replace
1289
- const PACKAGE_VERSION = '1.8.0-beta.17';
1289
+ const PACKAGE_VERSION = '1.8.0-beta.18';
1290
1290
  const createRequestHeaders = (token) => {
1291
1291
  const headers = createClientDevHeaders({ token });
1292
1292
  // Add the components version header
@@ -1341,7 +1341,7 @@ const createClientDevHeaders = ({ token, componentsVersion, additionalHeaders, }
1341
1341
  return headers;
1342
1342
  };
1343
1343
 
1344
- const MUTATION$5 = `
1344
+ const MUTATION$4 = `
1345
1345
  query FormattedInvoice($id: ID) {
1346
1346
  formattedInvoice(id: $id) {
1347
1347
  amount
@@ -1409,7 +1409,7 @@ query FormattedInvoice($id: ID) {
1409
1409
  const getFormattedInvoice = async ({ id, token, apiHost, }) => {
1410
1410
  const vars = { id };
1411
1411
  const response = await gqlRequest({
1412
- query: MUTATION$5,
1412
+ query: MUTATION$4,
1413
1413
  token,
1414
1414
  vars,
1415
1415
  apiHost,
@@ -19781,6 +19781,8 @@ const MiniCreditCard_PaymentMethodFragment = t(`
19781
19781
  type
19782
19782
  identifier
19783
19783
  }
19784
+ state
19785
+ failureReason
19784
19786
  id
19785
19787
  }
19786
19788
  `, [CardImage_PaymentMethodFragment]);
@@ -19788,6 +19790,7 @@ function MiniCreditCard({ className, buttons, hideDropdownMenu = false, hideDefa
19788
19790
  var _a, _b, _c;
19789
19791
  const { darkMode } = useContext(BunnyContext);
19790
19792
  const { brandColor } = useBrand();
19793
+ const [isHovering, setIsHovering] = useState(false);
19791
19794
  // Read fragment
19792
19795
  const paymentMethod = readFragment(MiniCreditCard_PaymentMethodFragment, maskedPaymentMethod);
19793
19796
  const borderColor = useMemo(() => {
@@ -19797,7 +19800,15 @@ function MiniCreditCard({ className, buttons, hideDropdownMenu = false, hideDefa
19797
19800
  return darkMode ? 'var(--row-background-alternate)' : 'bg-slate-50';
19798
19801
  }, [darkMode]);
19799
19802
  const isDefault = paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.isDefault;
19800
- return (jsx("div", { className: `bunny-flex bunny-flex-row bunny-justify-between bunny-items-center bunny-p-1 bunny-px-3 bunny-border-solid ${backgroundColor} bunny-${borderColor} bunny-rounded-md bunny-border ${className}`, id: id, children: paymentMethod ? (jsxs(Fragment, { children: [jsx("div", { className: "bunny-flex bunny-flex-row bunny-gap-4", children: jsxs("div", { className: "bunny-flex bunny-items-center bunny-gap-2 bunny-space-between bunny-w-full", children: [jsx(CardImage, { paymentMethod: paymentMethod }), jsx(Issuer, { issuer: (_a = paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.metadata) === null || _a === void 0 ? void 0 : _a.issuer }), jsx(Identifier, { type: (_b = paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.metadata) === null || _b === void 0 ? void 0 : _b.type, identifier: (_c = paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.metadata) === null || _c === void 0 ? void 0 : _c.identifier }), !hideDefaultTag && (jsx("div", { children: isDefault ? (jsx(Tag, { bordered: false, style: { color: brandColor, backgroundColor: `${brandColor}30` }, children: "Default" })) : null }))] }) }), buttons ? (buttons) : (jsx(Fragment, { children: !hideDropdownMenu && (jsx(DropdownMenu, { setDefault: onClickSetDefault, remove: onClickRemove, isDefault: isDefault !== null && isDefault !== void 0 ? isDefault : false, id: `credit-card-dropdown-${paymentMethod.id}` })) }))] })) : (jsxs("div", { className: "bunny-flex bunny-flex-row bunny-items-center justify-between w-full", children: [jsxs("div", { className: "bunny-flex bunny-flex-row bunny-gap-2 bunny-items-center", children: [jsx(CreditCardOutlined, {}), jsx(Text$D, { className: "bunny-text-slate-400 bunny-text-sm", children: "No payment methods" })] }), jsx(Button, { disabled: true, type: "link" }), buttons] })) }));
19803
+ const isFailed = (paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.state) === 'FAILED';
19804
+ return (jsx("div", { className: `bunny-flex bunny-flex-row bunny-justify-between bunny-items-center bunny-p-1 bunny-px-3 bunny-border-solid ${backgroundColor} bunny-${borderColor} bunny-rounded-md bunny-border ${className}`, id: id, onMouseEnter: () => setIsHovering(true), onMouseLeave: () => setIsHovering(false), children: paymentMethod ? (jsxs(Fragment, { children: [jsx("div", { className: "bunny-flex bunny-flex-row bunny-gap-4", children: jsxs("div", { className: "bunny-flex bunny-items-center bunny-gap-2 bunny-space-between bunny-w-full", children: [jsx(CardImage, { paymentMethod: paymentMethod }), jsx(Issuer, { issuer: (_a = paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.metadata) === null || _a === void 0 ? void 0 : _a.issuer }), jsx(Identifier, { type: (_b = paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.metadata) === null || _b === void 0 ? void 0 : _b.type, identifier: (_c = paymentMethod === null || paymentMethod === void 0 ? void 0 : paymentMethod.metadata) === null || _c === void 0 ? void 0 : _c.identifier }), jsxs("div", { className: "bunny-flex bunny-items-center bunny-gap-1", children: [isDefault && !hideDefaultTag && (jsx(Tag, { bordered: false, style: { color: brandColor, backgroundColor: `${brandColor}30` }, children: "Default" })), isFailed && (jsx(FailedTag, { failureReason: paymentMethod.failureReason, forceOpenTooltip: isHovering }))] })] }) }), buttons ? (buttons) : (jsx(Fragment, { children: !hideDropdownMenu && (jsx(DropdownMenu, { setDefault: onClickSetDefault, remove: onClickRemove, isDefault: isDefault !== null && isDefault !== void 0 ? isDefault : false, id: `credit-card-dropdown-${paymentMethod.id}` })) }))] })) : (jsxs("div", { className: "bunny-flex bunny-flex-row bunny-items-center justify-between w-full", children: [jsxs("div", { className: "bunny-flex bunny-flex-row bunny-gap-2 bunny-items-center", children: [jsx(CreditCardOutlined, {}), jsx(Text$D, { className: "bunny-text-slate-400 bunny-text-sm", children: "No payment methods" })] }), jsx(Button, { disabled: true, type: "link" }), buttons] })) }));
19805
+ }
19806
+ function FailedTag({ failureReason, forceOpenTooltip }) {
19807
+ const tag = (jsx(Tag, { bordered: false, color: "red", children: "Failed" }));
19808
+ if (!failureReason) {
19809
+ return tag;
19810
+ }
19811
+ return jsx(Tooltip$1, { title: failureReason, open: forceOpenTooltip, children: tag });
19801
19812
  }
19802
19813
  const Identifier = ({ type, identifier, }) => {
19803
19814
  if (type === 'link') {
@@ -19848,7 +19859,7 @@ const PaymentForm_PaymentMethodsFragment = t(`
19848
19859
  }
19849
19860
  `, [MiniCreditCard_PaymentMethodFragment]);
19850
19861
 
19851
- const mutation$i = t(`
19862
+ const mutation$j = t(`
19852
19863
  query PaymentPlugins($accountId: ID) {
19853
19864
  paymentPlugins(accountId: $accountId) {
19854
19865
  enabled
@@ -19876,7 +19887,7 @@ const mutation$i = t(`
19876
19887
  // }[];
19877
19888
  // };
19878
19889
  const getPaymentPlugins = async ({ apiHost, token, accountId, }) => {
19879
- const response = await execute(mutation$i, { apiHost, token }, { accountId });
19890
+ const response = await execute(mutation$j, { apiHost, token }, { accountId });
19880
19891
  return response === null || response === void 0 ? void 0 : response.paymentPlugins;
19881
19892
  };
19882
19893
  const usePaymentPlugins = (accountId) => {
@@ -20406,17 +20417,17 @@ function StripeFormProvider({ children, currencyId, accountId, }) {
20406
20417
  return (jsx(Elements, { options: options, stripe: stripe, children: children }));
20407
20418
  }
20408
20419
 
20409
- const MUTATION$4 = `
20410
- mutation checkout(
20411
- $invoiceId: ID,
20412
- $quoteId: ID,
20413
- $paymentMethodId: ID,
20420
+ const mutation$i = t(`
20421
+ mutation Checkout(
20422
+ $invoiceId: ID
20423
+ $quoteId: ID
20424
+ $paymentMethodId: ID
20414
20425
  $paymentMethodData: CheckoutPaymentMethodAttributes
20415
20426
  ) {
20416
20427
  checkout(
20417
- invoiceId: $invoiceId,
20418
- quoteId: $quoteId,
20419
- paymentMethodId: $paymentMethodId,
20428
+ invoiceId: $invoiceId
20429
+ quoteId: $quoteId
20430
+ paymentMethodId: $paymentMethodId
20420
20431
  paymentMethodData: $paymentMethodData
20421
20432
  ) {
20422
20433
  invoice {
@@ -20441,7 +20452,7 @@ const MUTATION$4 = `
20441
20452
  }
20442
20453
  }
20443
20454
  }
20444
- `;
20455
+ `);
20445
20456
  const checkout = async ({ quoteId, invoiceId, paymentMethodId, paymentMethodData, token, apiHost, }) => {
20446
20457
  const mutationVars = {
20447
20458
  quoteId,
@@ -20454,18 +20465,8 @@ const checkout = async ({ quoteId, invoiceId, paymentMethodId, paymentMethodData
20454
20465
  metadata: paymentMethodData.metadata,
20455
20466
  };
20456
20467
  }
20457
- const response = await gqlRequest({
20458
- query: MUTATION$4,
20459
- token,
20460
- vars: mutationVars,
20461
- apiHost: apiHost,
20462
- });
20463
- const { errors } = response === null || response === void 0 ? void 0 : response.checkout;
20464
- if (errors)
20465
- throw errors;
20466
- return {
20467
- savePaymentMethod: paymentMethodData === null || paymentMethodData === void 0 ? void 0 : paymentMethodData.savePaymentMethod,
20468
- };
20468
+ const response = await execute(mutation$i, { apiHost, token }, mutationVars);
20469
+ return response === null || response === void 0 ? void 0 : response.checkout;
20469
20470
  };
20470
20471
 
20471
20472
  const getQuoteAmountDue_QuoteFragment = t(`
@@ -21011,6 +21012,7 @@ function usePay$2({ onPaymentSuccess, onPaymentError, quoteId, invoiceId, plugin
21011
21012
  const showErrorNotification$9 = useErrorNotification();
21012
21013
  function usePay$1({ onPaymentSuccess, onPaymentError, quoteId, invoiceId, plugin, }) {
21013
21014
  // Hooks
21015
+ const queryClient = useQueryClient();
21014
21016
  const { apiHost } = useContext(BunnyContext);
21015
21017
  const customCheckoutFunction = useCustomCheckoutFunction();
21016
21018
  const token = useToken();
@@ -21043,6 +21045,10 @@ function usePay$1({ onPaymentSuccess, onPaymentError, quoteId, invoiceId, plugin
21043
21045
  }
21044
21046
  catch (error) {
21045
21047
  onPaymentError === null || onPaymentError === void 0 ? void 0 : onPaymentError(error);
21048
+ // invalidate payment methods query on error so we can immediately display failure reason on stored payment methods
21049
+ queryClient.invalidateQueries({
21050
+ queryKey: QueryKeyFactory.accountPaymentMethodsKey({}),
21051
+ });
21046
21052
  }
21047
21053
  finally {
21048
21054
  setIsPaying(false);
@@ -24202,7 +24208,14 @@ const QuoteCheckout = ({ account, onSuccess, onFail, quote: maskedQuote, taxatio
24202
24208
  return await checkout({ quoteId: quote.id, token, apiHost });
24203
24209
  },
24204
24210
  onSuccess,
24205
- onError: onFail,
24211
+ onError: (error) => {
24212
+ console.log("error", error);
24213
+ // invalidate payment methods query on error so we can immediately display failure reason on stored payment methods
24214
+ queryClient.invalidateQueries({
24215
+ queryKey: QueryKeyFactory.accountPaymentMethodsKey({}),
24216
+ });
24217
+ onFail(error);
24218
+ },
24206
24219
  });
24207
24220
  async function handleCheckoutNoPayment() {
24208
24221
  setIsSaving(true);
@@ -11,7 +11,7 @@ export declare const QuoteCheckout_QuoteFragment: import("gql.tada").TadaDocumen
11
11
  quoteChanges: ({
12
12
  id: string | null;
13
13
  charges: {
14
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
14
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
15
15
  coupon: {
16
16
  couponCode: string;
17
17
  } | null;
@@ -19,7 +19,7 @@ export declare const QuoteCheckout_QuoteFragment: import("gql.tada").TadaDocumen
19
19
  }[] & {
20
20
  currencyId: string;
21
21
  id: string | null;
22
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE";
22
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE";
23
23
  charges: {
24
24
  subtotal: number | null;
25
25
  amountsByPeriod: {
@@ -44,7 +44,7 @@ export declare const QuoteCheckout_QuoteFragment: import("gql.tada").TadaDocumen
44
44
  couponCode: string;
45
45
  } | null;
46
46
  quantity: number | null;
47
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
47
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
48
48
  }[];
49
49
  priceList: {
50
50
  id: string;
@@ -70,7 +70,7 @@ export declare const QuoteCheckout_QuoteFragment: import("gql.tada").TadaDocumen
70
70
  amount: number | null;
71
71
  startDate: unknown;
72
72
  }[];
73
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE";
73
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE";
74
74
  [$tada.fragmentRefs]: {
75
75
  canApplyCoupons_QuoteFragment: "Quote";
76
76
  } & {
@@ -9,6 +9,8 @@ export declare const MiniCreditCard_PaymentMethodFragment: import("gql.tada").Ta
9
9
  type: string | null;
10
10
  identifier: string | null;
11
11
  } | null;
12
+ state: "FAILED" | "UNKNOWN" | "SUCCESS" | null;
13
+ failureReason: string | null;
12
14
  id: string;
13
15
  }, {}, {
14
16
  fragment: "MiniCreditCard_PaymentMethodFragment";
@@ -17,11 +17,11 @@ export declare const QuoteFields_QuoteFragment: import("gql.tada").TadaDocumentN
17
17
  amount: number | null;
18
18
  startDate: unknown;
19
19
  }[];
20
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE";
20
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE";
21
21
  quoteChanges: {
22
22
  currencyId: string;
23
23
  id: string | null;
24
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE";
24
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE";
25
25
  charges: {
26
26
  subtotal: number | null;
27
27
  amountsByPeriod: {
@@ -46,7 +46,7 @@ export declare const QuoteFields_QuoteFragment: import("gql.tada").TadaDocumentN
46
46
  couponCode: string;
47
47
  } | null;
48
48
  quantity: number | null;
49
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
49
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
50
50
  }[];
51
51
  priceList: {
52
52
  id: string;
@@ -17,7 +17,7 @@ export declare const QuoteContext_QuoteFragment: import("gql.tada").TadaDocument
17
17
  startDate: unknown;
18
18
  quoteChanges: {
19
19
  id: string | null;
20
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE";
20
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE";
21
21
  priceList: {
22
22
  id: string;
23
23
  } | null;
@@ -1,6 +1,6 @@
1
1
  export declare const useQuantityEditableCharges_QuoteFragment: import("gql.tada").TadaDocumentNode<{
2
2
  quoteChanges: {
3
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE";
3
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE";
4
4
  charges: {
5
5
  priceListCharge: {
6
6
  deprecated: boolean | null;
@@ -13,7 +13,7 @@ export declare const useSelectedPriceListQuoteChange_QuoteChangeFragment: import
13
13
  priceList: {
14
14
  id: string;
15
15
  } | null;
16
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE";
16
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE";
17
17
  }, {}, {
18
18
  fragment: "useSelectedPriceListQuoteChange_QuoteChangeFragment";
19
19
  on: "QuoteChange";
@@ -18,7 +18,7 @@ export declare const CheckoutSummary_QuoteFragment: import("gql.tada").TadaDocum
18
18
  quoteChanges: {
19
19
  charges: {
20
20
  id: string | null;
21
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
21
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
22
22
  name: string | null;
23
23
  coupon: {
24
24
  couponCode: string;
@@ -1,6 +1,6 @@
1
1
  import { ResultOf } from 'gql.tada';
2
2
  declare const sortQuoteChangeCharges_QuoteChargeFragment: import("gql.tada").TadaDocumentNode<{
3
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
3
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
4
4
  }, {}, {
5
5
  fragment: "sortQuoteChangeCharges_QuoteChargeFragment";
6
6
  on: "QuoteCharge";
@@ -33,7 +33,7 @@ declare const accountSignup: ({ token, apiHost, accountId, quoteId, paymentToken
33
33
  invoiceImmediatelyAvailable: boolean | null;
34
34
  invoiceUntil: unknown;
35
35
  isPendingApprovalRequest: boolean;
36
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE";
36
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE";
37
37
  message: string | null;
38
38
  name: string | null;
39
39
  netPaymentDays: number | null;
@@ -5,7 +5,7 @@ export declare const CheckoutPrice_QuoteFragment: import("gql.tada").TadaDocumen
5
5
  amountDue: number | null;
6
6
  quoteChanges: {
7
7
  charges: {
8
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
8
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
9
9
  chargeType: "ONE_TIME" | "RECURRING" | "USAGE" | null;
10
10
  }[];
11
11
  }[] | null;
@@ -4,7 +4,7 @@ export declare const CanShowQuantitiesInput_SubscriptionChargeFragment: import("
4
4
  pricingModel: "FLAT" | "TIERED" | "VOLUME" | "BANDS" | null;
5
5
  expired: boolean;
6
6
  selfServiceQuantity: boolean | null;
7
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
7
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
8
8
  chargeType: "ONE_TIME" | "RECURRING" | "USAGE" | null;
9
9
  }, {}, {
10
10
  fragment: "CanShowQuantitiesInput_SubscriptionChargeFragment";
@@ -75,7 +75,7 @@ export declare const getSubscriptions: ({ apiHost, isInPreviewMode, token, }: {
75
75
  id: string | null;
76
76
  isAmendment: boolean;
77
77
  isRamp: boolean;
78
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
78
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
79
79
  name: string | null;
80
80
  periodPrice: number | null;
81
81
  price: string | null;
@@ -134,7 +134,7 @@ export declare const getSubscriptions: ({ apiHost, isInPreviewMode, token, }: {
134
134
  id: string | null;
135
135
  isAmendment: boolean;
136
136
  isRamp: boolean;
137
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
137
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
138
138
  name: string | null;
139
139
  periodPrice: number | null;
140
140
  price: string | null;
@@ -173,7 +173,7 @@ export declare const getSubscriptions: ({ apiHost, isInPreviewMode, token, }: {
173
173
  id: string | null;
174
174
  isAmendment: boolean;
175
175
  isRamp: boolean;
176
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
176
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
177
177
  name: string | null;
178
178
  periodPrice: number | null;
179
179
  price: string | null;
@@ -3,7 +3,7 @@ export declare const SubscriptionChargeTotal_SubscriptionChargeFragment: import(
3
3
  billingPeriod: "MONTHLY" | "QUARTERLY" | "SEMI_ANNUAL" | "ANNUAL" | "ONCE" | null;
4
4
  chargeType: "ONE_TIME" | "RECURRING" | "USAGE" | null;
5
5
  trial: boolean;
6
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
6
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
7
7
  price: string | null;
8
8
  periodPrice: number | null;
9
9
  }, {}, {
@@ -3,7 +3,7 @@ export declare const SubscriptionChargeUnitPrice_SubscriptionChargeFragment: imp
3
3
  trial: boolean;
4
4
  discountedPrice: string | null;
5
5
  priceDecimals: number | null;
6
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
6
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
7
7
  pricingModel: "FLAT" | "TIERED" | "VOLUME" | "BANDS" | null;
8
8
  priceTiers: {
9
9
  starts: number | null;
@@ -5,7 +5,7 @@ export declare const SubscriptionCardDesktopRow_SubscriptionChargeFragment: impo
5
5
  trial: boolean;
6
6
  startDate: unknown;
7
7
  endDate: unknown;
8
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
8
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
9
9
  chargeType: "ONE_TIME" | "RECURRING" | "USAGE" | null;
10
10
  quantity: number | null;
11
11
  name: string | null;
@@ -14,7 +14,7 @@ export declare const SubscriptionCardMobile_SubscriptionFragment: import("gql.ta
14
14
  };
15
15
  isRamp: boolean;
16
16
  name: string | null;
17
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
17
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
18
18
  startDate: unknown;
19
19
  endDate: unknown;
20
20
  quantity: number | null;
@@ -35,7 +35,7 @@ export declare const splitSubscriptionsByPriceList_SubscriptionFragment: import(
35
35
  } | null;
36
36
  }[] | null;
37
37
  chargeReport: {
38
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
38
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
39
39
  startDate: unknown;
40
40
  endDate: unknown;
41
41
  priceList: {
@@ -2,7 +2,7 @@ import { FragmentOf } from 'gql.tada';
2
2
  export declare const sortSubscriptionCharges_SubscriptionChargeFragment: import("gql.tada").TadaDocumentNode<{
3
3
  id: string | null;
4
4
  priceListChargeId: string | null;
5
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
5
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE" | null;
6
6
  endDate: unknown;
7
7
  startDate: unknown;
8
8
  isAmendment: boolean;
@@ -1,14 +1,4 @@
1
- import Payment from '@/types/Payment';
2
- import Invoice from '@/types/Invoice';
3
- import { Transaction } from '@/types/Transaction';
4
- import PaymentApplication from '@/types/PaymentApplication';
5
- export type CheckoutResponse = {
6
- invoice: Invoice;
7
- payment: Payment;
8
- paymentApplication: PaymentApplication;
9
- transaction: Transaction;
10
- };
11
- declare const checkout: ({ quoteId, invoiceId, paymentMethodId, paymentMethodData, token, apiHost, }: {
1
+ type CheckoutProps = {
12
2
  quoteId?: string | null;
13
3
  invoiceId?: string | null;
14
4
  paymentMethodId?: string;
@@ -20,7 +10,27 @@ declare const checkout: ({ quoteId, invoiceId, paymentMethodId, paymentMethodDat
20
10
  };
21
11
  token?: string;
22
12
  apiHost: string;
23
- }) => Promise<{
24
- savePaymentMethod: boolean | undefined;
25
- }>;
13
+ };
14
+ declare const checkout: ({ quoteId, invoiceId, paymentMethodId, paymentMethodData, token, apiHost, }: CheckoutProps) => Promise<{
15
+ invoice: {
16
+ id: string | null;
17
+ state: "READY" | "NOT_DUE" | "DUE" | "UNPAID" | "DRAFT" | "PREPARING" | "PAID" | "VOIDED" | "FAILED" | "PROCESSING_PAYMENT" | "MERGED" | "QUEUED" | "CONSOLIDATED";
18
+ amount: number;
19
+ amountDue: number | null;
20
+ } | null;
21
+ payment: {
22
+ id: string;
23
+ state: "APPLIED" | "PARTIALLY_APPLIED" | "UNAPPLIED";
24
+ amount: number;
25
+ } | null;
26
+ paymentApplication: {
27
+ id: string;
28
+ invoiceId: string | null;
29
+ paymentId: string | null;
30
+ } | null;
31
+ transaction: {
32
+ id: string;
33
+ amount: number;
34
+ } | null;
35
+ } | null>;
26
36
  export default checkout;
@@ -1,7 +1,7 @@
1
1
  import { FragmentOf } from 'gql.tada';
2
2
  export declare const canApplyCoupons_QuoteFragment: import("gql.tada").TadaDocumentNode<{
3
3
  id: string | null;
4
- kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE";
4
+ kind: "SUBSCRIBE" | "UPDATE" | "RENEW" | "REINSTATE" | "UNSUBSCRIBE" | "ADJUSTMENT" | "COUPON" | "DISCOUNT" | "PERCENTAGE_DISCOUNT" | "CREDIT" | "PRICE_UPDATE" | "QUANTITY_UPDATE" | "FREE_PERIOD_DISCOUNT" | "ACTIVATE";
5
5
  amountDue: number | null;
6
6
  }, {}, {
7
7
  fragment: "canApplyCoupons_QuoteFragment";
package/dist/index.d.ts CHANGED
@@ -350,6 +350,8 @@ declare const MiniCreditCard_PaymentMethodFragment: gql_tada.TadaDocumentNode<{
350
350
  type: string | null;
351
351
  identifier: string | null;
352
352
  } | null;
353
+ state: "FAILED" | "UNKNOWN" | "SUCCESS" | null;
354
+ failureReason: string | null;
353
355
  id: string;
354
356
  }, {}, {
355
357
  fragment: "MiniCreditCard_PaymentMethodFragment";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bunnyapp/components",
3
- "version": "1.8.0-beta.18",
3
+ "version": "1.8.0-beta.19",
4
4
  "description": "Components from the Bunny portal to embed Bunny UI functionality into your application.",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",