@bunnyapp/components 1.0.35 → 1.0.37

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 (191) hide show
  1. package/README.md +59 -20
  2. package/dist/cjs/index.js +20857 -0
  3. package/dist/cjs/playground/billingdetails/index.d.ts +1 -0
  4. package/dist/cjs/playground/main.d.ts +1 -0
  5. package/dist/cjs/playground/transactions/index.d.ts +1 -0
  6. package/dist/cjs/src/ajax.d.ts +1 -0
  7. package/dist/cjs/src/components/BillingDetails/BillingDetails.d.ts +15 -0
  8. package/dist/cjs/src/components/BillingDetails/BillingDetails.stories.d.ts +14 -0
  9. package/dist/cjs/src/components/BillingDetails/BillingDetailsForm.d.ts +9 -0
  10. package/dist/cjs/src/components/BillingDetails/index.d.ts +1 -0
  11. package/dist/cjs/src/components/BunnyProvider.d.ts +23 -0
  12. package/dist/cjs/src/components/Card.d.ts +7 -0
  13. package/dist/cjs/src/components/Checkout/Checkout.d.ts +11 -0
  14. package/dist/cjs/src/components/Checkout/CouponComponent.d.ts +7 -0
  15. package/dist/cjs/src/components/Checkout/QuoteCheckout.d.ts +12 -0
  16. package/dist/cjs/src/components/Checkout/checkoutUtils.d.ts +2 -0
  17. package/dist/cjs/src/components/Checkout/index.d.ts +2 -0
  18. package/dist/cjs/src/components/DrawerHeader.d.ts +7 -0
  19. package/dist/cjs/src/components/Error.d.ts +5 -0
  20. package/dist/cjs/src/components/FeatureUsageGraph.d.ts +6 -0
  21. package/dist/cjs/src/components/HeaderModalWrapper.d.ts +2 -0
  22. package/dist/cjs/src/components/Invoice/Invoice.d.ts +3 -0
  23. package/dist/cjs/src/components/Invoice/Invoice.stories.d.ts +18 -0
  24. package/dist/cjs/src/components/Invoice/InvoiceQuoteContext.d.ts +18 -0
  25. package/dist/cjs/src/components/Invoice/InvoiceQuoteView.d.ts +11 -0
  26. package/dist/cjs/src/components/Invoice/index.d.ts +8 -0
  27. package/dist/cjs/src/components/LegacyInvoicePDF.d.ts +5 -0
  28. package/dist/cjs/src/components/PageWrapper.d.ts +1 -0
  29. package/dist/cjs/src/components/PandadocPollingModal.d.ts +7 -0
  30. package/dist/cjs/src/components/PaymentForm/CheckoutFooter.d.ts +9 -0
  31. package/dist/cjs/src/components/PaymentForm/DemoPay/DemoPayCardCvc.d.ts +7 -0
  32. package/dist/cjs/src/components/PaymentForm/DemoPay/DemoPayCardNumber.d.ts +7 -0
  33. package/dist/cjs/src/components/PaymentForm/DemoPay/DemoPayExpiry.d.ts +7 -0
  34. package/dist/cjs/src/components/PaymentForm/DemoPay/DemoPayForm.d.ts +7 -0
  35. package/dist/cjs/src/components/PaymentForm/DemoPay/demoPayUtils.d.ts +21 -0
  36. package/dist/cjs/src/components/PaymentForm/DemoPay/hooks/usePay.d.ts +12 -0
  37. package/dist/cjs/src/components/PaymentForm/DemoPay/hooks/useSave.d.ts +21 -0
  38. package/dist/cjs/src/components/PaymentForm/DemoPay/index.d.ts +1 -0
  39. package/dist/cjs/src/components/PaymentForm/PaymentForm.d.ts +17 -0
  40. package/dist/cjs/src/components/PaymentForm/PaymentFormTypes.d.ts +24 -0
  41. package/dist/cjs/src/components/PaymentForm/PaymentMethod/CreditCard/CreditCard.d.ts +22 -0
  42. package/dist/cjs/src/components/PaymentForm/PaymentMethod/CreditCard/LargCardIcon.d.ts +2 -0
  43. package/dist/cjs/src/components/PaymentForm/PaymentMethod/CreditCard/PlusIcon.d.ts +4 -0
  44. package/dist/cjs/src/components/PaymentForm/PaymentMethod/PaymentMethod.d.ts +9 -0
  45. package/dist/cjs/src/components/PaymentForm/PaymentMethod/PaymentMethod.stories.d.ts +11 -0
  46. package/dist/cjs/src/components/PaymentForm/PaymentMethod/index.d.ts +1 -0
  47. package/dist/cjs/src/components/PaymentForm/PaymentMethodDetails.d.ts +9 -0
  48. package/dist/cjs/src/components/PaymentForm/PaymentMethodSelector.d.ts +7 -0
  49. package/dist/cjs/src/components/PaymentForm/SavePaymentMethodFooter.d.ts +6 -0
  50. package/dist/cjs/src/components/PaymentForm/Stripe/PaymentMethodForm.d.ts +7 -0
  51. package/dist/cjs/src/components/PaymentForm/Stripe/StripeForm.d.ts +7 -0
  52. package/dist/cjs/src/components/PaymentForm/Stripe/hooks/usePay.d.ts +12 -0
  53. package/dist/cjs/src/components/PaymentForm/Stripe/hooks/useSave.d.ts +10 -0
  54. package/dist/cjs/src/components/PaymentForm/Stripe/stripeUtils.d.ts +26 -0
  55. package/dist/cjs/src/components/PaymentForm/index.d.ts +2 -0
  56. package/dist/cjs/src/components/PaymentForm/useRemovePaymentMethod.d.ts +3 -0
  57. package/dist/cjs/src/components/Quote/AcceptQuoteModal.d.ts +9 -0
  58. package/dist/cjs/src/components/Quote/Quote.d.ts +3 -0
  59. package/dist/cjs/src/components/Quote/Quote.stories.d.ts +144 -0
  60. package/dist/cjs/src/components/Quote/StyledModal.d.ts +3 -0
  61. package/dist/cjs/src/components/Quote/index.d.ts +1 -0
  62. package/dist/cjs/src/components/Quotes/Quotes.d.ts +40 -0
  63. package/dist/cjs/src/components/Quotes/Quotes.stories.d.ts +22 -0
  64. package/dist/cjs/src/components/Quotes/index.d.ts +1 -0
  65. package/dist/cjs/src/components/Signup/PaymentForms.d.ts +18 -0
  66. package/dist/cjs/src/components/Signup/PaymentSuccess.d.ts +9 -0
  67. package/dist/cjs/src/components/Signup/PriceListDisplay.d.ts +6 -0
  68. package/dist/cjs/src/components/Signup/Signup.d.ts +21 -0
  69. package/dist/cjs/src/components/Signup/Signup.stories.d.ts +10 -0
  70. package/dist/cjs/src/components/Signup/index.d.ts +1 -0
  71. package/dist/cjs/src/components/StateTag.d.ts +4 -0
  72. package/dist/cjs/src/components/Subscriptions/Subscriptions.d.ts +23 -0
  73. package/dist/cjs/src/components/Subscriptions/Subscriptions.stories.d.ts +10 -0
  74. package/dist/cjs/src/components/Subscriptions/SubscriptionsContext.d.ts +8 -0
  75. package/dist/cjs/src/components/Subscriptions/index.d.ts +1 -0
  76. package/dist/cjs/src/components/Subscriptions/subscriptionsList/SubscriptionCardActions.d.ts +8 -0
  77. package/dist/cjs/src/components/Subscriptions/subscriptionsList/SubscriptionCardHeader.d.ts +8 -0
  78. package/dist/cjs/src/components/Subscriptions/subscriptionsList/SubscriptionChargeTotal.d.ts +6 -0
  79. package/dist/cjs/src/components/Subscriptions/subscriptionsList/SubscriptionChargeUnitPrice.d.ts +6 -0
  80. package/dist/cjs/src/components/Subscriptions/subscriptionsList/SubscriptionsList.d.ts +9 -0
  81. package/dist/cjs/src/components/Subscriptions/subscriptionsList/subscriptionCardDesktop/SubscriptionCardColumnHeaders.d.ts +12 -0
  82. package/dist/cjs/src/components/Subscriptions/subscriptionsList/subscriptionCardDesktop/SubscriptionCardDesktop.d.ts +8 -0
  83. package/dist/cjs/src/components/Subscriptions/subscriptionsList/subscriptionCardDesktop/SubscriptionsCardCell.d.ts +9 -0
  84. package/dist/cjs/src/components/Subscriptions/subscriptionsList/subscriptionCardMobile/SubscriptionCardCellMobile.d.ts +8 -0
  85. package/dist/cjs/src/components/Subscriptions/subscriptionsList/subscriptionCardMobile/SubscriptionCardMobile.d.ts +5 -0
  86. package/dist/cjs/src/components/Subscriptions/subscriptionsList/subscriptionUtils.d.ts +16 -0
  87. package/dist/cjs/src/components/TaxationForm.d.ts +6 -0
  88. package/dist/cjs/src/components/Transactions/Transactions.d.ts +55 -0
  89. package/dist/cjs/src/components/Transactions/Transactions.stories.d.ts +26 -0
  90. package/dist/cjs/src/components/Transactions/TransactionsListContext.d.ts +30 -0
  91. package/dist/cjs/src/components/Transactions/index.d.ts +1 -0
  92. package/dist/cjs/src/components/Transactions/transactionsList/TransactionDate.d.ts +4 -0
  93. package/dist/cjs/src/components/Transactions/transactionsList/TransactionDownload.d.ts +7 -0
  94. package/dist/cjs/src/components/Transactions/transactionsList/TransactionGridCell.d.ts +2 -0
  95. package/dist/cjs/src/components/Transactions/transactionsList/TransactionTitle.d.ts +5 -0
  96. package/dist/cjs/src/components/Transactions/transactionsList/TransactionsEmptyState.d.ts +2 -0
  97. package/dist/cjs/src/components/Transactions/transactionsList/TransactionsListDesktop.d.ts +7 -0
  98. package/dist/cjs/src/components/Transactions/transactionsList/TransactionsListMobile.d.ts +6 -0
  99. package/dist/cjs/src/components/Transactions/transactionsList/utils.d.ts +3 -0
  100. package/dist/cjs/src/components/icons/ArrowDownToLine.d.ts +5 -0
  101. package/dist/cjs/src/components/icons/CardIcon.d.ts +2 -0
  102. package/dist/cjs/src/components/index.d.ts +10 -0
  103. package/dist/cjs/src/contexts/BrandContext.d.ts +7 -0
  104. package/dist/cjs/src/contexts/NavigationContext.d.ts +9 -0
  105. package/dist/cjs/src/contexts/PaymentContext.d.ts +10 -0
  106. package/dist/cjs/src/enums/SubscriptionState.d.ts +8 -0
  107. package/dist/cjs/src/graphql/mutations/accountSignup.d.ts +12 -0
  108. package/dist/cjs/src/graphql/mutations/accountUpdate.d.ts +7 -0
  109. package/dist/cjs/src/graphql/mutations/billingDetailsUpdate.d.ts +6 -0
  110. package/dist/cjs/src/graphql/mutations/checkout.d.ts +23 -0
  111. package/dist/cjs/src/graphql/mutations/quoteAccountSignup.d.ts +14 -0
  112. package/dist/cjs/src/graphql/mutations/quoteAddCoupon.d.ts +8 -0
  113. package/dist/cjs/src/graphql/mutations/quoteCompose.d.ts +13 -0
  114. package/dist/cjs/src/graphql/mutations/quoteRecalculateTaxes.d.ts +6 -0
  115. package/dist/cjs/src/graphql/mutations/quoteSubscriptionReinstate.d.ts +7 -0
  116. package/dist/cjs/src/graphql/queries/getBillingDetails.d.ts +6 -0
  117. package/dist/cjs/src/graphql/queries/getBranding.d.ts +6 -0
  118. package/dist/cjs/src/graphql/queries/getFeatureUsage.d.ts +10 -0
  119. package/dist/cjs/src/graphql/queries/getFormattedQuote.d.ts +7 -0
  120. package/dist/cjs/src/graphql/queries/getPlanChangeOptions.d.ts +8 -0
  121. package/dist/cjs/src/graphql/queries/getPriceList.d.ts +7 -0
  122. package/dist/cjs/src/graphql/queries/getQuotes.d.ts +6 -0
  123. package/dist/cjs/src/graphql/queries/getSubscriptions.d.ts +7 -0
  124. package/dist/cjs/src/graphql/queries/getTaxationRequiredAccountFields.d.ts +6 -0
  125. package/dist/cjs/src/graphql/queries/getTransactions.d.ts +3 -0
  126. package/dist/cjs/src/hooks/index.d.ts +1 -0
  127. package/dist/cjs/src/hooks/quotes/useSendAcceptQuote.d.ts +20 -0
  128. package/dist/cjs/src/hooks/quotes/useSigningComplete.d.ts +5 -0
  129. package/dist/cjs/src/hooks/subscriptions/useSubscriptions.d.ts +5 -0
  130. package/dist/cjs/src/hooks/useFocusFirstInput.d.ts +7 -0
  131. package/dist/cjs/src/hooks/useHasTaxPlugin.d.ts +6 -0
  132. package/dist/cjs/src/hooks/useIsExpired.d.ts +2 -0
  133. package/dist/cjs/src/hooks/usePaymentMethod.d.ts +5 -0
  134. package/dist/cjs/src/hooks/usePaymentPlugins.d.ts +11 -0
  135. package/dist/cjs/src/hooks/usePlugins.d.ts +6 -0
  136. package/dist/cjs/src/hooks/useSigningPlugins.d.ts +6 -0
  137. package/dist/cjs/src/hooks/useToken.d.ts +2 -0
  138. package/dist/cjs/src/index.d.ts +3 -0
  139. package/dist/cjs/src/mocks/browser.d.ts +1 -0
  140. package/dist/cjs/src/mocks/handlers.d.ts +1 -0
  141. package/dist/cjs/src/storybook-utils.d.ts +10 -0
  142. package/dist/cjs/src/types/billingDetails.d.ts +14 -0
  143. package/dist/cjs/src/types/shadowType.d.ts +1 -0
  144. package/dist/cjs/src/utils/GraphQLClient.d.ts +2 -0
  145. package/dist/cjs/src/utils/quoteInvoiceUtils.d.ts +6 -0
  146. package/dist/cjs/src/utils/styled.d.ts +3 -0
  147. package/dist/cjs/vite.config.d.ts +2 -0
  148. package/dist/esm/index.js +218 -215
  149. package/dist/esm/src/ajax.d.ts +1 -1
  150. package/dist/esm/src/components/BillingDetails/BillingDetails.d.ts +2 -1
  151. package/dist/esm/src/components/BillingDetails/BillingDetails.stories.d.ts +3 -0
  152. package/dist/esm/src/components/BillingDetails/BillingDetailsForm.d.ts +9 -0
  153. package/dist/esm/src/components/BunnyProvider.d.ts +2 -2
  154. package/dist/esm/src/components/DrawerHeader.d.ts +3 -2
  155. package/dist/esm/src/components/LegacyInvoicePDF.d.ts +1 -1
  156. package/dist/esm/src/components/PaymentForm/DemoPay/demoPayUtils.d.ts +1 -1
  157. package/dist/esm/src/components/PaymentForm/DemoPay/hooks/useSave.d.ts +1 -1
  158. package/dist/esm/src/components/PaymentForm/PaymentForm.d.ts +3 -1
  159. package/dist/esm/src/components/PaymentForm/PaymentMethod/PaymentMethod.d.ts +2 -1
  160. package/dist/esm/src/components/PaymentForm/PaymentMethodDetails.d.ts +3 -1
  161. package/dist/esm/src/components/PaymentForm/Stripe/stripeUtils.d.ts +3 -3
  162. package/dist/esm/src/components/PaymentForm/index.d.ts +1 -0
  163. package/dist/esm/src/components/PaymentForm/useRemovePaymentMethod.d.ts +1 -1
  164. package/dist/esm/src/components/Transactions/Transactions.d.ts +2 -1
  165. package/dist/esm/src/components/Transactions/transactionsList/TransactionDownload.d.ts +1 -1
  166. package/dist/esm/src/components/Transactions/transactionsList/TransactionsListDesktop.d.ts +1 -1
  167. package/dist/esm/src/components/index.d.ts +1 -1
  168. package/dist/esm/src/graphql/mutations/accountUpdate.d.ts +1 -1
  169. package/dist/esm/src/graphql/mutations/billingDetailsUpdate.d.ts +1 -1
  170. package/dist/esm/src/graphql/mutations/checkout.d.ts +1 -1
  171. package/dist/esm/src/graphql/mutations/quoteAccountSignup.d.ts +1 -1
  172. package/dist/esm/src/graphql/mutations/quoteAddCoupon.d.ts +1 -1
  173. package/dist/esm/src/graphql/queries/getBillingDetails.d.ts +1 -1
  174. package/dist/esm/src/graphql/queries/getBranding.d.ts +1 -1
  175. package/dist/esm/src/graphql/queries/getFeatureUsage.d.ts +1 -1
  176. package/dist/esm/src/graphql/queries/getFormattedQuote.d.ts +1 -1
  177. package/dist/esm/src/graphql/queries/getPlanChangeOptions.d.ts +1 -1
  178. package/dist/esm/src/graphql/queries/getPriceList.d.ts +1 -1
  179. package/dist/esm/src/graphql/queries/getQuotes.d.ts +1 -1
  180. package/dist/esm/src/graphql/queries/getSubscriptions.d.ts +1 -1
  181. package/dist/esm/src/graphql/queries/getTransactions.d.ts +1 -1
  182. package/dist/esm/src/hooks/quotes/useSendAcceptQuote.d.ts +1 -1
  183. package/dist/esm/src/hooks/quotes/useSigningComplete.d.ts +1 -1
  184. package/dist/esm/src/hooks/usePaymentMethod.d.ts +4 -1
  185. package/dist/esm/src/hooks/usePaymentPlugins.d.ts +1 -1
  186. package/dist/esm/src/hooks/usePlugins.d.ts +1 -1
  187. package/dist/esm/src/hooks/useSigningPlugins.d.ts +1 -1
  188. package/dist/esm/src/hooks/useToken.d.ts +1 -1
  189. package/dist/esm/src/utils/GraphQLClient.d.ts +1 -1
  190. package/dist/index.d.ts +30 -11
  191. package/package.json +2 -3
package/dist/esm/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
2
  import { createContext, useEffect, useState, useContext, useMemo, useCallback, useRef } from 'react';
3
3
  import { Markup } from 'interweave';
4
- import { ConfigProvider, Button, Typography, Tag, Divider, Popconfirm, Input, Checkbox, Collapse, Modal, Form, Drawer, Card as Card$1, Select, Image, Dropdown, Skeleton } from 'antd';
4
+ import { ConfigProvider, Button, Typography, Tag, Divider, Popconfirm, Input, Checkbox, Collapse, Skeleton, Modal, Form, Drawer, Card as Card$1, Select, Image, Dropdown } from 'antd';
5
5
  import { DownloadOutlined, CreditCardOutlined, BankOutlined, SearchOutlined, CloseOutlined, CheckCircleFilled } from '@ant-design/icons';
6
6
  import styled from 'styled-components';
7
7
  import { DEFAULT_ACCENT_COLOR, DEFAULT_BRAND_COLOR, DEFAULT_SECONDARY_COLOR, DEFAULT_TOP_NAV_IMAGE_URL, gqlRequest, QueryKeyFactory, useIsMobile, isColorTooDark, MARK_PRO, INPUT_BORDER_COLOR, SLATE_50, SLATE_400, SLATE_200, getPlugins, useAllErrorFormats, formatCurrency, invokePlugin, GRAY_500, GRAY_200, useErrorNotification, useSuccessNotification, getFormattedInvoice, PAYABLE_INVOICE_STATES, BreakpointNumbers, useGraphQLmutation, formatDate, FrontendTransaction, SLATE_600, WHITE, TransactionKind, Lists, getAccount, SubscriptionChargeKind, SubscriptionState as SubscriptionState$2, MODAL_MAX_HEIGHT, SLATE_500, DataInterval, TAG_COLORS, ChargeType, PricingModel } from '@bunnyapp/common';
@@ -42,7 +42,7 @@ function styleInject(css, ref) {
42
42
  }
43
43
  }
44
44
 
45
- var css_248z = ".ant-divider-horizontal {\n margin: 0;\n}\n.ant-divider-horizontal {\n margin: 0;\n}\n.ant-tag {\n border: none;\n border-radius: 14px;\n font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;\n font-weight: 500;\n white-space: nowrap;\n margin: 0;\n}\n.ant-tag-blue {\n color: #3b82f6 !important;\n background: #bfdbfe !important;\n}\n.ant-tag-green {\n color: #059669 !important;\n background: #a7f3d0 !important;\n}\n.ant-tag-red {\n color: #ef4444 !important;\n background: #fecaca !important;\n}\n.ant-tag-orange {\n color: #f97316 !important;\n background: #fed7aa !important;\n}\n.ant-tag-yellow {\n color: #f59e0b !important;\n background: #fde68a !important;\n}\n.ant-tag-purple {\n color: #8b5cf6 !important;\n background: #ddd6fe !important;\n}\n.ant-tag-black {\n color: white !important;\n background: black !important;\n}\n.ant-popover {\n z-index: 1050;\n}\n.ant-popover-inner-content {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n max-width: 300px;\n}\n.ant-popover-message-title {\n padding: 0;\n text-align: center;\n font-size: 1rem;\n}\n.ant-popover-buttons {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.ant-btn-link:disabled {\n color: #717d94 !important;\n}\n.ant-btn-link:disabled:hover {\n background-color: transparent !important;\n}\n.ant-notification {\n width: min-content;\n}\n.ant-notification-topRight {\n right: 0 !important;\n left: 0 !important;\n margin-left: auto !important;\n margin-right: auto !important;\n}\n.ant-notification-notice-wrapper {\n width: 350px !important;\n overflow: hidden !important;\n}\n.ant-notification-notice {\n padding: 16px !important;\n width: 350px !important;\n display: flex !important;\n box-shadow: 0px 6px 10px rgba(0, 0, 0, 0.08), 0px 1px 18px rgba(0, 0, 0, 0.08), 0px 3px 5px rgba(0, 0, 0, 0.16) !important;\n}\n.ant-notification-notice-description {\n padding: 0 14px 0 0 !important;\n color: #232323 !important;\n font-size: 14px !important;\n word-break: break-all !important;\n overflow-wrap: break-word !important;\n}\n.ant-notification-notice-success {\n background-color: #edfffa !important;\n}\n.ant-notification-notice-error {\n background-color: #fff8f4 !important;\n}\n.ant-notification-notice-error .ant-notification-notice-message {\n color: #ff6e1c !important;\n font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji !important;\n font-weight: 500;\n}\n.ant-notification-notice-error .ant-notification-notice-icon {\n color: #ff6e1c;\n}\n.ant-notification-notice-success .ant-notification-notice-message {\n color: #00b76a !important;\n font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji !important;\n font-weight: 500;\n}\n.ant-notification-notice-success .ant-notification-notice-icon {\n color: #00b76a !important;\n}\n.ant-notification-notice-message {\n margin-bottom: 0 !important;\n}\n.ant-notification-notice-close {\n top: 16px !important;\n right: 16px !important;\n}\n.ant-menu-submenu-popup > .ant-menu .ant-menu-item {\n display: flex !important;\n align-items: center !important;\n}\n.ant-menu-submenu::after {\n display: none !important;\n}\n:root {\n --row-background: #ffffff;\n --row-background-alternate: rgba(100, 116, 139, 0.04);\n --row-background-dark: #121212;\n --row-background-alternate-dark: #1e1e1e;\n}\n.plan-step-line {\n height: 1px;\n min-width: 128px;\n background: #717d94;\n}\n.plan-step-number {\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 9999px;\n border: 1px solid #717d94;\n background: white;\n width: 24px;\n height: 24px;\n color: #717d94;\n}\n.plan-step-number.active {\n border: none;\n color: white;\n background: #ff6e1c;\n}\n.hidden {\n display: none;\n}\n.cardElement {\n padding: 8px 11px;\n border: 1px solid #e5e7eb;\n background-color: white;\n font-family: Inter !important;\n}\n.tooltip {\n visibility: hidden;\n position: absolute !important;\n}\n.has-tooltip:hover .tooltip {\n visibility: visible;\n z-index: 100;\n}\n.show-on-hover {\n opacity: 0;\n}\n.show-on-hover-container:hover .show-on-hover {\n opacity: 1;\n}\n.pdf-only {\n display: none !important;\n}\n.notes p {\n margin: 0;\n padding: 0;\n padding-bottom: 0.25rem;\n}\n#form-element #finix-form-container .field-holder label {\n color: #717d94 !important;\n font-size: 12px !important;\n}\n#form-element #finix-form-container > *:first-child,\n#form-element #finix-form-container > *:last-child {\n margin-top: 0 !important;\n}\n#form-element #finix-form-container > *:not(:first-child):not(:last-child) {\n margin-top: 12px !important;\n}\n#form-element #finix-form-container .field-array > * {\n margin-top: 0 !important;\n}\n#form-element #finix-form-container .field-holder .field,\n#form-element #finix-form-container iframe {\n height: 34px !important;\n}\n#form-element #finix-form-container .field {\n margin-top: 0 !important;\n padding-top: 2px !important;\n}\n#form-element #finix-form-container .field-holder .validation {\n font-size: 11px !important;\n color: #ff4d4f !important;\n}\n.icon-path {\n transition: fill 0.3s;\n}\n.shadow-padding-x {\n padding-right: 1rem;\n padding-left: 1rem;\n}\n.shadow-padding-xb {\n padding-right: 1rem;\n padding-left: 1rem;\n padding-bottom: 0.5rem;\n}\n.content-container {\n width: 100%;\n margin: 0 auto;\n}\n@media (min-width: 1220px) {\n .content-container {\n width: 1220px !important;\n margin: 0 auto;\n }\n}\n@media (min-width: 768px) {\n .shadow-padding-x {\n padding-right: 2rem;\n padding-left: 2rem;\n }\n .shadow-padding-xb {\n padding-right: 2rem;\n padding-left: 2rem;\n padding-bottom: 0.5rem;\n }\n .sm\\:flex {\n display: flex !important;\n }\n .sm\\:hidden {\n display: none !important;\n }\n}\n.rotate-45,\n.transform {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n}\n.shadow,\n.shadow-lg,\n.shadow-md,\n.shadow-none,\n.shadow-sm,\n.shadow-xl {\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n}\n.container {\n width: 100%;\n}\n@media (min-width: 768px) {\n .container {\n max-width: 768px;\n }\n}\n@media (min-width: 1024px) {\n .container {\n max-width: 1024px;\n }\n}\n@media (min-width: 1280px) {\n .container {\n max-width: 1280px;\n }\n}\n@media (min-width: 1536px) {\n .container {\n max-width: 1536px;\n }\n}\n.visible {\n visibility: visible;\n}\n.fixed {\n position: fixed;\n}\n.absolute {\n position: absolute;\n}\n.relative {\n position: relative;\n}\n.bottom-0 {\n bottom: 0px;\n}\n.left-0 {\n left: 0px;\n}\n.right-0 {\n right: 0px;\n}\n.top-0 {\n top: 0px;\n}\n.z-50 {\n z-index: 50;\n}\n.col-span-2 {\n grid-column: span 2 / span 2;\n}\n.col-span-3 {\n grid-column: span 3 / span 3;\n}\n.m-0 {\n margin: 0px;\n}\n.mx-4 {\n margin-left: 1rem;\n margin-right: 1rem;\n}\n.my-12 {\n margin-top: 3rem;\n margin-bottom: 3rem;\n}\n.my-2 {\n margin-top: 0.5rem;\n margin-bottom: 0.5rem;\n}\n.my-4 {\n margin-top: 1rem;\n margin-bottom: 1rem;\n}\n.mb-4 {\n margin-bottom: 1rem;\n}\n.ml-2 {\n margin-left: 0.5rem;\n}\n.mr-8 {\n margin-right: 2rem;\n}\n.mt-1 {\n margin-top: 0.25rem;\n}\n.mt-2 {\n margin-top: 0.5rem;\n}\n.mt-4 {\n margin-top: 1rem;\n}\n.mt-6 {\n margin-top: 1.5rem;\n}\n.mt-8 {\n margin-top: 2rem;\n}\n.block {\n display: block;\n}\n.flex {\n display: flex;\n}\n.table {\n display: table;\n}\n.grid {\n display: grid;\n}\n.contents {\n display: contents;\n}\n.hidden {\n display: none;\n}\n.h-4 {\n height: 1rem;\n}\n.h-5 {\n height: 1.25rem;\n}\n.h-8 {\n height: 2rem;\n}\n.h-full {\n height: 100%;\n}\n.w-1\\/2 {\n width: 50%;\n}\n.w-1\\/3 {\n width: 33.333333%;\n}\n.w-2\\/3 {\n width: 66.666667%;\n}\n.w-4 {\n width: 1rem;\n}\n.w-full {\n width: 100%;\n}\n.max-w-32 {\n max-width: 8rem;\n}\n.flex-1 {\n flex: 1 1 0%;\n}\n.shrink-0 {\n flex-shrink: 0;\n}\n.grow {\n flex-grow: 1;\n}\n.border-collapse {\n border-collapse: collapse;\n}\n.rotate-45 {\n --tw-rotate: 45deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.transform {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.cursor-pointer {\n cursor: pointer;\n}\n.grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n.grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n}\n.flex-row {\n flex-direction: row;\n}\n.flex-col {\n flex-direction: column;\n}\n.items-end {\n align-items: flex-end;\n}\n.items-center {\n align-items: center;\n}\n.justify-start {\n justify-content: flex-start;\n}\n.justify-end {\n justify-content: flex-end;\n}\n.justify-center {\n justify-content: center;\n}\n.justify-between {\n justify-content: space-between;\n}\n.gap-0 {\n gap: 0px;\n}\n.gap-1 {\n gap: 0.25rem;\n}\n.gap-2 {\n gap: 0.5rem;\n}\n.gap-4 {\n gap: 1rem;\n}\n.gap-6 {\n gap: 1.5rem;\n}\n.space-y-2 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));\n}\n.space-y-4 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1rem * var(--tw-space-y-reverse));\n}\n.space-y-8 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(2rem * var(--tw-space-y-reverse));\n}\n.overflow-auto {\n overflow: auto;\n}\n.overflow-hidden {\n overflow: hidden;\n}\n.overflow-visible {\n overflow: visible;\n}\n.whitespace-nowrap {\n white-space: nowrap;\n}\n.text-nowrap {\n text-wrap: nowrap;\n}\n.rounded {\n border-radius: 0.25rem;\n}\n.rounded-full {\n border-radius: 9999px;\n}\n.rounded-md {\n border-radius: 0.375rem;\n}\n.border {\n border-width: 1px;\n}\n.border-solid {\n border-style: solid;\n}\n.border-gray-400 {\n --tw-border-opacity: 1;\n border-color: rgb(156 163 175 / var(--tw-border-opacity, 1));\n}\n.border-gray-500 {\n --tw-border-opacity: 1;\n border-color: rgb(107 114 128 / var(--tw-border-opacity, 1));\n}\n.border-slate-200 {\n --tw-border-opacity: 1;\n border-color: rgb(226 232 240 / var(--tw-border-opacity, 1));\n}\n.border-slate-300 {\n --tw-border-opacity: 1;\n border-color: rgb(203 213 225 / var(--tw-border-opacity, 1));\n}\n.border-slate-700 {\n --tw-border-opacity: 1;\n border-color: rgb(51 65 85 / var(--tw-border-opacity, 1));\n}\n.bg-black {\n --tw-bg-opacity: 1;\n background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));\n}\n.bg-emerald-200 {\n --tw-bg-opacity: 1;\n background-color: rgb(167 243 208 / var(--tw-bg-opacity, 1));\n}\n.bg-green-200 {\n --tw-bg-opacity: 1;\n background-color: rgb(187 247 208 / var(--tw-bg-opacity, 1));\n}\n.bg-orange-200 {\n --tw-bg-opacity: 1;\n background-color: rgb(254 215 170 / var(--tw-bg-opacity, 1));\n}\n.bg-red-200 {\n --tw-bg-opacity: 1;\n background-color: rgb(254 202 202 / var(--tw-bg-opacity, 1));\n}\n.bg-red-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(239 68 68 / var(--tw-bg-opacity, 1));\n}\n.bg-slate-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));\n}\n.bg-white {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n}\n.bg-yellow-200 {\n --tw-bg-opacity: 1;\n background-color: rgb(254 240 138 / var(--tw-bg-opacity, 1));\n}\n.p-0 {\n padding: 0px;\n}\n.p-1 {\n padding: 0.25rem;\n}\n.p-2 {\n padding: 0.5rem;\n}\n.p-4 {\n padding: 1rem;\n}\n.p-8 {\n padding: 2rem;\n}\n.px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n.px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n.px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n.px-6 {\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n.py-1 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n.py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n.py-4 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n.py-6 {\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n}\n.pb-2 {\n padding-bottom: 0.5rem;\n}\n.pb-4 {\n padding-bottom: 1rem;\n}\n.pb-6 {\n padding-bottom: 1.5rem;\n}\n.pb-8 {\n padding-bottom: 2rem;\n}\n.pl-0 {\n padding-left: 0px;\n}\n.pl-2 {\n padding-left: 0.5rem;\n}\n.pl-4 {\n padding-left: 1rem;\n}\n.pt-1 {\n padding-top: 0.25rem;\n}\n.pt-12 {\n padding-top: 3rem;\n}\n.pt-2 {\n padding-top: 0.5rem;\n}\n.pt-4 {\n padding-top: 1rem;\n}\n.pt-5 {\n padding-top: 1.25rem;\n}\n.pt-6 {\n padding-top: 1.5rem;\n}\n.pt-8 {\n padding-top: 2rem;\n}\n.text-left {\n text-align: left;\n}\n.text-center {\n text-align: center;\n}\n.text-right {\n text-align: right;\n}\n.align-middle {\n vertical-align: middle;\n}\n.text-2xl {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n.text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n.text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.text-xl {\n font-size: 1.25rem;\n line-height: 1.75rem;\n}\n.text-xs {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n.font-bold {\n font-weight: 700;\n}\n.font-medium {\n font-weight: 500;\n}\n.font-normal {\n font-weight: 400;\n}\n.capitalize {\n text-transform: capitalize;\n}\n.text-emerald-600 {\n --tw-text-opacity: 1;\n color: rgb(5 150 105 / var(--tw-text-opacity, 1));\n}\n.text-emerald-700 {\n --tw-text-opacity: 1;\n color: rgb(4 120 87 / var(--tw-text-opacity, 1));\n}\n.text-gray-600 {\n --tw-text-opacity: 1;\n color: rgb(75 85 99 / var(--tw-text-opacity, 1));\n}\n.text-gray-900 {\n --tw-text-opacity: 1;\n color: rgb(17 24 39 / var(--tw-text-opacity, 1));\n}\n.text-green-600 {\n --tw-text-opacity: 1;\n color: rgb(22 163 74 / var(--tw-text-opacity, 1));\n}\n.text-orange-500 {\n --tw-text-opacity: 1;\n color: rgb(249 115 22 / var(--tw-text-opacity, 1));\n}\n.text-red-500 {\n --tw-text-opacity: 1;\n color: rgb(239 68 68 / var(--tw-text-opacity, 1));\n}\n.text-slate-400 {\n --tw-text-opacity: 1;\n color: rgb(148 163 184 / var(--tw-text-opacity, 1));\n}\n.text-slate-500 {\n --tw-text-opacity: 1;\n color: rgb(100 116 139 / var(--tw-text-opacity, 1));\n}\n.text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n.text-yellow-500 {\n --tw-text-opacity: 1;\n color: rgb(234 179 8 / var(--tw-text-opacity, 1));\n}\n.underline {\n text-decoration-line: underline;\n}\n.shadow {\n --tw-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-lg {\n --tw-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-md {\n --tw-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-none {\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-sm {\n --tw-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-xl {\n --tw-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);\n --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.transition {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.font-light {\n font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;\n}\n.font-medium {\n font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;\n}\n.font-bold {\n font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;\n}\n@media (min-width: 768px) {\n .sm\\:flex {\n display: flex;\n }\n .sm\\:hidden {\n display: none;\n }\n}\n* {\n margin: 0;\n padding: 0;\n box-sizing: border-box !important;\n font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;\n line-height: 1.15;\n}\nbody {\n color: #232323;\n background-color: #f8fafc;\n}\nth {\n font-weight: normal;\n}\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, \"Courier New\", monospace;\n}\n@media only screen and (max-width: 768px) {\n select,\n textarea,\n input[type=\"text\"],\n input[type=\"password\"],\n input[type=\"datetime\"],\n input[type=\"datetime-local\"],\n input[type=\"date\"],\n input[type=\"month\"],\n input[type=\"time\"],\n input[type=\"week\"],\n input[type=\"number\"],\n input[type=\"email\"],\n input[type=\"url\"],\n input[type=\"search\"],\n input[type=\"tel\"],\n input[type=\"color\"] {\n font-size: 16px !important;\n }\n}\n@keyframes App-logo-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n";
45
+ var css_248z = ".ant-divider-horizontal {\n margin: 0;\n}\n.ant-divider-horizontal {\n margin: 0;\n}\n.ant-tag {\n border: none;\n border-radius: 14px;\n font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;\n font-weight: 500;\n white-space: nowrap;\n margin: 0;\n}\n.ant-tag-blue {\n color: #3b82f6 !important;\n background: #bfdbfe !important;\n}\n.ant-tag-green {\n color: #059669 !important;\n background: #a7f3d0 !important;\n}\n.ant-tag-red {\n color: #ef4444 !important;\n background: #fecaca !important;\n}\n.ant-tag-orange {\n color: #f97316 !important;\n background: #fed7aa !important;\n}\n.ant-tag-yellow {\n color: #f59e0b !important;\n background: #fde68a !important;\n}\n.ant-tag-purple {\n color: #8b5cf6 !important;\n background: #ddd6fe !important;\n}\n.ant-tag-black {\n color: white !important;\n background: black !important;\n}\n.ant-popover {\n z-index: 1050;\n}\n.ant-popover-inner-content {\n display: flex;\n flex-direction: column;\n gap: 0.5rem;\n max-width: 300px;\n}\n.ant-popover-message-title {\n padding: 0;\n text-align: center;\n font-size: 1rem;\n}\n.ant-popover-buttons {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n.ant-btn-link:disabled {\n color: #717d94 !important;\n}\n.ant-btn-link:disabled:hover {\n background-color: transparent !important;\n}\n.ant-notification {\n width: min-content;\n}\n.ant-notification-topRight {\n right: 0 !important;\n left: 0 !important;\n margin-left: auto !important;\n margin-right: auto !important;\n}\n.ant-notification-notice-wrapper {\n width: 350px !important;\n overflow: hidden !important;\n}\n.ant-notification-notice {\n padding: 16px !important;\n width: 350px !important;\n display: flex !important;\n box-shadow: 0px 6px 10px rgba(0, 0, 0, 0.08), 0px 1px 18px rgba(0, 0, 0, 0.08), 0px 3px 5px rgba(0, 0, 0, 0.16) !important;\n}\n.ant-notification-notice-description {\n padding: 0 14px 0 0 !important;\n color: #232323 !important;\n font-size: 14px !important;\n word-break: break-all !important;\n overflow-wrap: break-word !important;\n}\n.ant-notification-notice-success {\n background-color: #edfffa !important;\n}\n.ant-notification-notice-error {\n background-color: #fff8f4 !important;\n}\n.ant-notification-notice-error .ant-notification-notice-message {\n color: #ff6e1c !important;\n font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji !important;\n font-weight: 500;\n}\n.ant-notification-notice-error .ant-notification-notice-icon {\n color: #ff6e1c;\n}\n.ant-notification-notice-success .ant-notification-notice-message {\n color: #00b76a !important;\n font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji !important;\n font-weight: 500;\n}\n.ant-notification-notice-success .ant-notification-notice-icon {\n color: #00b76a !important;\n}\n.ant-notification-notice-message {\n margin-bottom: 0 !important;\n}\n.ant-notification-notice-close {\n top: 16px !important;\n right: 16px !important;\n}\n.ant-menu-submenu-popup > .ant-menu .ant-menu-item {\n display: flex !important;\n align-items: center !important;\n}\n.ant-menu-submenu::after {\n display: none !important;\n}\n:root {\n --row-background: #ffffff;\n --row-background-alternate: rgba(100, 116, 139, 0.04);\n --row-background-dark: #121212;\n --row-background-alternate-dark: #1e1e1e;\n}\n.plan-step-line {\n height: 1px;\n min-width: 128px;\n background: #717d94;\n}\n.plan-step-number {\n display: flex;\n align-items: center;\n justify-content: center;\n border-radius: 9999px;\n border: 1px solid #717d94;\n background: white;\n width: 24px;\n height: 24px;\n color: #717d94;\n}\n.plan-step-number.active {\n border: none;\n color: white;\n background: #ff6e1c;\n}\n.hidden {\n display: none;\n}\n.cardElement {\n padding: 8px 11px;\n border: 1px solid #e5e7eb;\n background-color: white;\n font-family: Inter !important;\n}\n.tooltip {\n visibility: hidden;\n position: absolute !important;\n}\n.has-tooltip:hover .tooltip {\n visibility: visible;\n z-index: 100;\n}\n.show-on-hover {\n opacity: 0;\n}\n.show-on-hover-container:hover .show-on-hover {\n opacity: 1;\n}\n.pdf-only {\n display: none !important;\n}\n.notes p {\n margin: 0;\n padding: 0;\n padding-bottom: 0.25rem;\n}\n#form-element #finix-form-container .field-holder label {\n color: #717d94 !important;\n font-size: 12px !important;\n}\n#form-element #finix-form-container > *:first-child,\n#form-element #finix-form-container > *:last-child {\n margin-top: 0 !important;\n}\n#form-element #finix-form-container > *:not(:first-child):not(:last-child) {\n margin-top: 12px !important;\n}\n#form-element #finix-form-container .field-array > * {\n margin-top: 0 !important;\n}\n#form-element #finix-form-container .field-holder .field,\n#form-element #finix-form-container iframe {\n height: 34px !important;\n}\n#form-element #finix-form-container .field {\n margin-top: 0 !important;\n padding-top: 2px !important;\n}\n#form-element #finix-form-container .field-holder .validation {\n font-size: 11px !important;\n color: #ff4d4f !important;\n}\n.icon-path {\n transition: fill 0.3s;\n}\n.shadow-padding-x {\n padding-right: 1rem;\n padding-left: 1rem;\n}\n.shadow-padding-xb {\n padding-right: 1rem;\n padding-left: 1rem;\n padding-bottom: 0.5rem;\n}\n.content-container {\n width: 100%;\n margin: 0 auto;\n}\n@media (min-width: 1220px) {\n .content-container {\n width: 1220px !important;\n margin: 0 auto;\n }\n}\n@media (min-width: 768px) {\n .shadow-padding-x {\n padding-right: 2rem;\n padding-left: 2rem;\n }\n .shadow-padding-xb {\n padding-right: 2rem;\n padding-left: 2rem;\n padding-bottom: 0.5rem;\n }\n .sm\\:flex {\n display: flex !important;\n }\n .sm\\:hidden {\n display: none !important;\n }\n}\n.rotate-45,\n.transform {\n --tw-translate-x: 0;\n --tw-translate-y: 0;\n --tw-rotate: 0;\n --tw-skew-x: 0;\n --tw-skew-y: 0;\n --tw-scale-x: 1;\n --tw-scale-y: 1;\n}\n.shadow,\n.shadow-lg,\n.shadow-md,\n.shadow-none,\n.shadow-sm,\n.shadow-xl {\n --tw-ring-offset-shadow: 0 0 #0000;\n --tw-ring-shadow: 0 0 #0000;\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n}\n.container {\n width: 100%;\n}\n@media (min-width: 768px) {\n .container {\n max-width: 768px;\n }\n}\n@media (min-width: 1024px) {\n .container {\n max-width: 1024px;\n }\n}\n@media (min-width: 1280px) {\n .container {\n max-width: 1280px;\n }\n}\n@media (min-width: 1536px) {\n .container {\n max-width: 1536px;\n }\n}\n.visible {\n visibility: visible;\n}\n.fixed {\n position: fixed;\n}\n.absolute {\n position: absolute;\n}\n.relative {\n position: relative;\n}\n.bottom-0 {\n bottom: 0px;\n}\n.left-0 {\n left: 0px;\n}\n.right-0 {\n right: 0px;\n}\n.top-0 {\n top: 0px;\n}\n.z-50 {\n z-index: 50;\n}\n.col-span-2 {\n grid-column: span 2 / span 2;\n}\n.col-span-3 {\n grid-column: span 3 / span 3;\n}\n.m-0 {\n margin: 0px;\n}\n.mx-4 {\n margin-left: 1rem;\n margin-right: 1rem;\n}\n.my-12 {\n margin-top: 3rem;\n margin-bottom: 3rem;\n}\n.my-2 {\n margin-top: 0.5rem;\n margin-bottom: 0.5rem;\n}\n.my-4 {\n margin-top: 1rem;\n margin-bottom: 1rem;\n}\n.mb-4 {\n margin-bottom: 1rem;\n}\n.ml-2 {\n margin-left: 0.5rem;\n}\n.mr-8 {\n margin-right: 2rem;\n}\n.mt-1 {\n margin-top: 0.25rem;\n}\n.mt-2 {\n margin-top: 0.5rem;\n}\n.mt-4 {\n margin-top: 1rem;\n}\n.mt-6 {\n margin-top: 1.5rem;\n}\n.mt-8 {\n margin-top: 2rem;\n}\n.block {\n display: block;\n}\n.flex {\n display: flex;\n}\n.table {\n display: table;\n}\n.grid {\n display: grid;\n}\n.contents {\n display: contents;\n}\n.hidden {\n display: none;\n}\n.h-4 {\n height: 1rem;\n}\n.h-full {\n height: 100%;\n}\n.w-1\\/2 {\n width: 50%;\n}\n.w-1\\/3 {\n width: 33.333333%;\n}\n.w-2\\/3 {\n width: 66.666667%;\n}\n.w-4 {\n width: 1rem;\n}\n.w-full {\n width: 100%;\n}\n.max-w-32 {\n max-width: 8rem;\n}\n.flex-1 {\n flex: 1 1 0%;\n}\n.shrink {\n flex-shrink: 1;\n}\n.shrink-0 {\n flex-shrink: 0;\n}\n.grow {\n flex-grow: 1;\n}\n.border-collapse {\n border-collapse: collapse;\n}\n.rotate-45 {\n --tw-rotate: 45deg;\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.transform {\n transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y));\n}\n.cursor-pointer {\n cursor: pointer;\n}\n.grid-cols-2 {\n grid-template-columns: repeat(2, minmax(0, 1fr));\n}\n.grid-cols-3 {\n grid-template-columns: repeat(3, minmax(0, 1fr));\n}\n.flex-row {\n flex-direction: row;\n}\n.flex-col {\n flex-direction: column;\n}\n.items-end {\n align-items: flex-end;\n}\n.items-center {\n align-items: center;\n}\n.justify-start {\n justify-content: flex-start;\n}\n.justify-end {\n justify-content: flex-end;\n}\n.justify-center {\n justify-content: center;\n}\n.justify-between {\n justify-content: space-between;\n}\n.gap-0 {\n gap: 0px;\n}\n.gap-1 {\n gap: 0.25rem;\n}\n.gap-2 {\n gap: 0.5rem;\n}\n.gap-4 {\n gap: 1rem;\n}\n.gap-6 {\n gap: 1.5rem;\n}\n.space-y-2 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(0.5rem * var(--tw-space-y-reverse));\n}\n.space-y-4 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(1rem * var(--tw-space-y-reverse));\n}\n.space-y-8 > :not([hidden]) ~ :not([hidden]) {\n --tw-space-y-reverse: 0;\n margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse)));\n margin-bottom: calc(2rem * var(--tw-space-y-reverse));\n}\n.overflow-auto {\n overflow: auto;\n}\n.overflow-hidden {\n overflow: hidden;\n}\n.overflow-visible {\n overflow: visible;\n}\n.whitespace-nowrap {\n white-space: nowrap;\n}\n.text-nowrap {\n text-wrap: nowrap;\n}\n.rounded {\n border-radius: 0.25rem;\n}\n.rounded-full {\n border-radius: 9999px;\n}\n.rounded-md {\n border-radius: 0.375rem;\n}\n.rounded-sm {\n border-radius: 0.125rem;\n}\n.border {\n border-width: 1px;\n}\n.border-solid {\n border-style: solid;\n}\n.border-none {\n border-style: none;\n}\n.border-gray-400 {\n --tw-border-opacity: 1;\n border-color: rgb(156 163 175 / var(--tw-border-opacity, 1));\n}\n.border-gray-500 {\n --tw-border-opacity: 1;\n border-color: rgb(107 114 128 / var(--tw-border-opacity, 1));\n}\n.border-slate-200 {\n --tw-border-opacity: 1;\n border-color: rgb(226 232 240 / var(--tw-border-opacity, 1));\n}\n.border-slate-300 {\n --tw-border-opacity: 1;\n border-color: rgb(203 213 225 / var(--tw-border-opacity, 1));\n}\n.border-slate-700 {\n --tw-border-opacity: 1;\n border-color: rgb(51 65 85 / var(--tw-border-opacity, 1));\n}\n.bg-black {\n --tw-bg-opacity: 1;\n background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));\n}\n.bg-emerald-200 {\n --tw-bg-opacity: 1;\n background-color: rgb(167 243 208 / var(--tw-bg-opacity, 1));\n}\n.bg-green-200 {\n --tw-bg-opacity: 1;\n background-color: rgb(187 247 208 / var(--tw-bg-opacity, 1));\n}\n.bg-orange-200 {\n --tw-bg-opacity: 1;\n background-color: rgb(254 215 170 / var(--tw-bg-opacity, 1));\n}\n.bg-red-200 {\n --tw-bg-opacity: 1;\n background-color: rgb(254 202 202 / var(--tw-bg-opacity, 1));\n}\n.bg-red-500 {\n --tw-bg-opacity: 1;\n background-color: rgb(239 68 68 / var(--tw-bg-opacity, 1));\n}\n.bg-slate-50 {\n --tw-bg-opacity: 1;\n background-color: rgb(248 250 252 / var(--tw-bg-opacity, 1));\n}\n.bg-transparent {\n background-color: transparent;\n}\n.bg-white {\n --tw-bg-opacity: 1;\n background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));\n}\n.bg-yellow-200 {\n --tw-bg-opacity: 1;\n background-color: rgb(254 240 138 / var(--tw-bg-opacity, 1));\n}\n.p-0 {\n padding: 0px;\n}\n.p-1 {\n padding: 0.25rem;\n}\n.p-2 {\n padding: 0.5rem;\n}\n.p-4 {\n padding: 1rem;\n}\n.p-8 {\n padding: 2rem;\n}\n.px-2 {\n padding-left: 0.5rem;\n padding-right: 0.5rem;\n}\n.px-3 {\n padding-left: 0.75rem;\n padding-right: 0.75rem;\n}\n.px-4 {\n padding-left: 1rem;\n padding-right: 1rem;\n}\n.px-6 {\n padding-left: 1.5rem;\n padding-right: 1.5rem;\n}\n.py-1 {\n padding-top: 0.25rem;\n padding-bottom: 0.25rem;\n}\n.py-2 {\n padding-top: 0.5rem;\n padding-bottom: 0.5rem;\n}\n.py-4 {\n padding-top: 1rem;\n padding-bottom: 1rem;\n}\n.py-6 {\n padding-top: 1.5rem;\n padding-bottom: 1.5rem;\n}\n.pb-2 {\n padding-bottom: 0.5rem;\n}\n.pb-4 {\n padding-bottom: 1rem;\n}\n.pb-6 {\n padding-bottom: 1.5rem;\n}\n.pb-8 {\n padding-bottom: 2rem;\n}\n.pl-0 {\n padding-left: 0px;\n}\n.pl-2 {\n padding-left: 0.5rem;\n}\n.pl-4 {\n padding-left: 1rem;\n}\n.pt-1 {\n padding-top: 0.25rem;\n}\n.pt-12 {\n padding-top: 3rem;\n}\n.pt-2 {\n padding-top: 0.5rem;\n}\n.pt-4 {\n padding-top: 1rem;\n}\n.pt-6 {\n padding-top: 1.5rem;\n}\n.pt-8 {\n padding-top: 2rem;\n}\n.pb-1 {\n padding-bottom: 0.25rem;\n}\n.text-left {\n text-align: left;\n}\n.text-center {\n text-align: center;\n}\n.text-right {\n text-align: right;\n}\n.align-middle {\n vertical-align: middle;\n}\n.text-2xl {\n font-size: 1.5rem;\n line-height: 2rem;\n}\n.text-base {\n font-size: 1rem;\n line-height: 1.5rem;\n}\n.text-lg {\n font-size: 1.125rem;\n line-height: 1.75rem;\n}\n.text-sm {\n font-size: 0.875rem;\n line-height: 1.25rem;\n}\n.text-xl {\n font-size: 1.25rem;\n line-height: 1.75rem;\n}\n.text-xs {\n font-size: 0.75rem;\n line-height: 1rem;\n}\n.font-bold {\n font-weight: 700;\n}\n.font-medium {\n font-weight: 500;\n}\n.font-normal {\n font-weight: 400;\n}\n.capitalize {\n text-transform: capitalize;\n}\n.text-emerald-600 {\n --tw-text-opacity: 1;\n color: rgb(5 150 105 / var(--tw-text-opacity, 1));\n}\n.text-emerald-700 {\n --tw-text-opacity: 1;\n color: rgb(4 120 87 / var(--tw-text-opacity, 1));\n}\n.text-gray-600 {\n --tw-text-opacity: 1;\n color: rgb(75 85 99 / var(--tw-text-opacity, 1));\n}\n.text-gray-900 {\n --tw-text-opacity: 1;\n color: rgb(17 24 39 / var(--tw-text-opacity, 1));\n}\n.text-green-600 {\n --tw-text-opacity: 1;\n color: rgb(22 163 74 / var(--tw-text-opacity, 1));\n}\n.text-orange-500 {\n --tw-text-opacity: 1;\n color: rgb(249 115 22 / var(--tw-text-opacity, 1));\n}\n.text-red-500 {\n --tw-text-opacity: 1;\n color: rgb(239 68 68 / var(--tw-text-opacity, 1));\n}\n.text-slate-400 {\n --tw-text-opacity: 1;\n color: rgb(148 163 184 / var(--tw-text-opacity, 1));\n}\n.text-slate-500 {\n --tw-text-opacity: 1;\n color: rgb(100 116 139 / var(--tw-text-opacity, 1));\n}\n.text-white {\n --tw-text-opacity: 1;\n color: rgb(255 255 255 / var(--tw-text-opacity, 1));\n}\n.text-yellow-500 {\n --tw-text-opacity: 1;\n color: rgb(234 179 8 / var(--tw-text-opacity, 1));\n}\n.underline {\n text-decoration-line: underline;\n}\n.shadow {\n --tw-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1);\n --tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-lg {\n --tw-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);\n --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-md {\n --tw-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);\n --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-none {\n --tw-shadow: 0 0 #0000;\n --tw-shadow-colored: 0 0 #0000;\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-sm {\n --tw-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);\n --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.shadow-xl {\n --tw-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 8px 10px -6px rgba(0, 0, 0, 0.1);\n --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);\n box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);\n}\n.transition {\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, -webkit-backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;\n transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter, -webkit-backdrop-filter;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.transition-all {\n transition-property: all;\n transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\n transition-duration: 150ms;\n}\n.duration-200 {\n transition-duration: 200ms;\n}\n.font-light {\n font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;\n}\n.font-medium {\n font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;\n}\n.font-bold {\n font-family: Inter, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, Roboto, Helvetica Neue, Arial, Noto Sans, sans-serif, Apple Color Emoji, Segoe UI Emoji, Segoe UI Symbol, Noto Color Emoji;\n}\n.hover\\:bg-gray-100:hover {\n --tw-bg-opacity: 1;\n background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1));\n}\n@media (min-width: 768px) {\n .sm\\:flex {\n display: flex;\n }\n .sm\\:hidden {\n display: none;\n }\n}\n* {\n margin: 0;\n padding: 0;\n box-sizing: border-box !important;\n line-height: 1.15;\n}\nbody {\n color: #232323;\n background-color: #f8fafc;\n}\nth {\n font-weight: normal;\n}\ncode {\n font-family: source-code-pro, Menlo, Monaco, Consolas, \"Courier New\", monospace;\n}\n@media only screen and (max-width: 768px) {\n select,\n textarea,\n input[type=\"text\"],\n input[type=\"password\"],\n input[type=\"datetime\"],\n input[type=\"datetime-local\"],\n input[type=\"date\"],\n input[type=\"month\"],\n input[type=\"time\"],\n input[type=\"week\"],\n input[type=\"number\"],\n input[type=\"email\"],\n input[type=\"url\"],\n input[type=\"search\"],\n input[type=\"tel\"],\n input[type=\"color\"] {\n font-size: 16px !important;\n }\n}\n@keyframes App-logo-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n}\n";
46
46
  styleInject(css_248z);
47
47
 
48
48
  /******************************************************************************
@@ -109,6 +109,16 @@ function __generator(thisArg, body) {
109
109
  }
110
110
  }
111
111
 
112
+ function __spreadArray(to, from, pack) {
113
+ if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
114
+ if (ar || !(i in from)) {
115
+ if (!ar) ar = Array.prototype.slice.call(from, 0, i);
116
+ ar[i] = from[i];
117
+ }
118
+ }
119
+ return to.concat(ar || Array.prototype.slice.call(from));
120
+ }
121
+
112
122
  function __makeTemplateObject(cooked, raw) {
113
123
  if (Object.defineProperty) { Object.defineProperty(cooked, "raw", { value: raw }); } else { cooked.raw = raw; }
114
124
  return cooked;
@@ -149,11 +159,13 @@ var getBranding = function (_a) {
149
159
  });
150
160
  };
151
161
 
152
- var createGraphQLClient = function (token, apiHost) {
162
+ var createGraphQLClient = function (apiHost, token) {
153
163
  return new GraphQLClient(apiHost + "/graphql", {
154
- headers: {
155
- Authorization: token,
156
- },
164
+ headers: token
165
+ ? {
166
+ Authorization: token,
167
+ }
168
+ : undefined,
157
169
  });
158
170
  };
159
171
 
@@ -162,7 +174,7 @@ var extraQueryClient = new QueryClient();
162
174
  // Every component shares similar props and functionality, which this wrapper handles.
163
175
  function BunnyProvider(_a) {
164
176
  var children = _a.children, _b = _a.darkMode, darkMode = _b === void 0 ? false : _b, queryClient = _a.queryClient, apiHost = _a.apiHost, token = _a.token, onTokenExpired = _a.onTokenExpired, configProviderProps = _a.configProviderProps;
165
- var graphQLClient = createGraphQLClient(token, apiHost || "");
177
+ var graphQLClient = createGraphQLClient(apiHost || "", token);
166
178
  useEffect(function () {
167
179
  var script = document.createElement("script");
168
180
  script.src = "https://js.finix.com/v/1/0/6/finix.js";
@@ -229,8 +241,12 @@ function ContextualWrapper(_a) {
229
241
  boxShadowSecondary: "none",
230
242
  fontWeight: "normal",
231
243
  contentFontSizeLG: 14,
232
- colorBgContainerDisabled: "#eef0f2",
233
- borderColorDisabled: "#eef0f2",
244
+ colorBgContainerDisabled: darkMode
245
+ ? "var(--row-background-dark)"
246
+ : "#eef0f2",
247
+ borderColorDisabled: darkMode
248
+ ? "var(--row-background-dark)"
249
+ : "#eef0f2",
234
250
  },
235
251
  Drawer: {
236
252
  colorBgElevated: darkMode
@@ -403,14 +419,14 @@ function InvoicePDF(_a) {
403
419
  }
404
420
 
405
421
  var paymentMethodsQuery = "query paymentMethods ($filter: String, $first: Int, $sort: String) {\n paymentMethods (filter: $filter, first: $first, sort: $sort) {\n nodes {\n id\n disabled\n pluginId\n accountId\n expirationDate\n plugin {\n guid\n id\n }\n state\n metadata {\n issuer\n identifier\n kind\n description\n icon\n }\n }\n }\n}";
406
- var usePaymentMethod = function (graphQLClient, entityId, token) {
407
- var result = useQuery({
408
- queryKey: QueryKeyFactory.default.accountPaymentMethodKey(entityId, token),
422
+ var usePaymentMethod = function (graphQLClient, entityId, token, accountId) {
423
+ var _a = useQuery({
424
+ queryKey: QueryKeyFactory.default.accountPaymentMethodKey(entityId, token, accountId),
409
425
  queryFn: function () {
410
426
  return graphQLClient
411
427
  .request(paymentMethodsQuery, {
412
428
  first: 1,
413
- filter: "disabled is false",
429
+ filter: "disabled is false".concat(accountId ? " && accountId=".concat(accountId) : ""),
414
430
  })
415
431
  .then(function (data) {
416
432
  var _a, _b;
@@ -419,8 +435,8 @@ var usePaymentMethod = function (graphQLClient, entityId, token) {
419
435
  return paymentMethod;
420
436
  });
421
437
  },
422
- });
423
- return result;
438
+ }), data = _a.data, isLoading = _a.isLoading;
439
+ return { data: data, isLoading: isLoading };
424
440
  };
425
441
 
426
442
  var usePlugins = function (_a) {
@@ -518,7 +534,7 @@ function usePay$1(_a) {
518
534
  switch (_a.label) {
519
535
  case 0:
520
536
  amountDue = quote ? getQuoteAmountDue(quote) : invoice === null || invoice === void 0 ? void 0 : invoice.amountDue;
521
- currencyId = (quote === null || quote === void 0 ? void 0 : quote.currencyId) || (invoice === null || invoice === void 0 ? void 0 : invoice.currency);
537
+ currencyId = (quote === null || quote === void 0 ? void 0 : quote.currencyId) || (invoice === null || invoice === void 0 ? void 0 : invoice.currencyId);
522
538
  if (!amountDue || !currencyId) {
523
539
  throw new Error("No amount or currencyId");
524
540
  }
@@ -1022,7 +1038,7 @@ var createPaymentMethod = function (_a) {
1022
1038
  });
1023
1039
  });
1024
1040
  };
1025
- var createSetupIntent = function (plugin, token, apiHost, accountId) {
1041
+ var createSetupIntent = function (plugin, apiHost, token, accountId) {
1026
1042
  return invokePlugin({
1027
1043
  plugin: plugin,
1028
1044
  method: "create_setup_intent",
@@ -1033,7 +1049,7 @@ var createSetupIntent = function (plugin, token, apiHost, accountId) {
1033
1049
  },
1034
1050
  });
1035
1051
  };
1036
- var fetchStripeKey = function (plugin, token, apiHost, accountId) { return __awaiter(void 0, void 0, void 0, function () {
1052
+ var fetchStripeKey = function (plugin, apiHost, token, accountId) { return __awaiter(void 0, void 0, void 0, function () {
1037
1053
  var response;
1038
1054
  return __generator(this, function (_a) {
1039
1055
  switch (_a.label) {
@@ -1053,7 +1069,7 @@ var fetchStripeKey = function (plugin, token, apiHost, accountId) { return __awa
1053
1069
  });
1054
1070
  }); };
1055
1071
  loadStripe.setLoadParameters({ advancedFraudSignals: false });
1056
- var useStripePlugin = function (plugin, token, apiHost, currencyId, accountId) {
1072
+ var useStripePlugin = function (plugin, apiHost, currencyId, token, accountId) {
1057
1073
  var _a = useState(null), stripe = _a[0], setStripe = _a[1];
1058
1074
  var showErrorNotification = useErrorNotification();
1059
1075
  var options = {
@@ -1067,7 +1083,7 @@ var useStripePlugin = function (plugin, token, apiHost, currencyId, accountId) {
1067
1083
  return;
1068
1084
  if (((_b = (_a = plugin.components) === null || _a === void 0 ? void 0 : _a.frontend) === null || _b === void 0 ? void 0 : _b[0].name) !== "StripePayment")
1069
1085
  return;
1070
- fetchStripeKey(plugin, token, apiHost || "", accountId)
1086
+ fetchStripeKey(plugin, apiHost || "", token, accountId)
1071
1087
  .then(function (_a) {
1072
1088
  var payload = _a.payload;
1073
1089
  return loadStripe(payload.publishable_key).then(setStripe);
@@ -1110,7 +1126,7 @@ function useSave(_a) {
1110
1126
  submitError = (_d.sent()).error;
1111
1127
  if (submitError)
1112
1128
  throw new Error(submitError.message);
1113
- return [4 /*yield*/, createSetupIntent(plugin, token, apiHost, accountId)];
1129
+ return [4 /*yield*/, createSetupIntent(plugin, apiHost, token, accountId)];
1114
1130
  case 2:
1115
1131
  response = _d.sent();
1116
1132
  if (response.status !== "success")
@@ -1205,8 +1221,8 @@ var StripeForm = function (_a) {
1205
1221
  };
1206
1222
 
1207
1223
  var PaymentMethodDetails = function (_a) {
1208
- var _b, _c;
1209
- var onFail = _a.onFail, paymentMethod = _a.paymentMethod, onSavePaymentMethod = _a.onSavePaymentMethod;
1224
+ var _b, _c, _d, _e, _f, _g, _h, _j;
1225
+ var onFail = _a.onFail, paymentMethod = _a.paymentMethod, onSavePaymentMethod = _a.onSavePaymentMethod, customPaymentForms = _a.customPaymentForms;
1210
1226
  if (!paymentMethod)
1211
1227
  return null;
1212
1228
  paymentMethod = paymentMethod;
@@ -1216,6 +1232,11 @@ var PaymentMethodDetails = function (_a) {
1216
1232
  case "DemoPayPayment":
1217
1233
  return (jsx(DemoPayForm, { onFail: onFail, onSavePaymentMethod: onSavePaymentMethod, plugin: paymentMethod }));
1218
1234
  default:
1235
+ if (customPaymentForms &&
1236
+ ((_e = (_d = paymentMethod.components) === null || _d === void 0 ? void 0 : _d.frontend) === null || _e === void 0 ? void 0 : _e[0].name) &&
1237
+ customPaymentForms[(_g = (_f = paymentMethod.components) === null || _f === void 0 ? void 0 : _f.frontend) === null || _g === void 0 ? void 0 : _g[0].name]) {
1238
+ return (jsx(Fragment, { children: customPaymentForms[(_j = (_h = paymentMethod.components) === null || _h === void 0 ? void 0 : _h.frontend) === null || _j === void 0 ? void 0 : _j[0].name] }));
1239
+ }
1219
1240
  return jsx("p", { children: "Can not find form for plugin" });
1220
1241
  }
1221
1242
  };
@@ -1227,6 +1248,7 @@ var CardIcon = function () {
1227
1248
  var Text$c = Typography.Text;
1228
1249
  var PaymentMethodSelector = function (_a) {
1229
1250
  var paymentMethodAllowedPlugins = _a.paymentMethodAllowedPlugins, onSelect = _a.onSelect, value = _a.value;
1251
+ console.log("COMPS paymentMethodAllowedPlugins", paymentMethodAllowedPlugins);
1230
1252
  return (jsx("div", __assign({ className: "flex flex-col gap-2" }, { children: paymentMethodAllowedPlugins === null || paymentMethodAllowedPlugins === void 0 ? void 0 : paymentMethodAllowedPlugins.map(function (plugin, index) { return (jsx(PaymentOption, { name: plugin.name, onClick: onSelect, paymentPlugin: plugin, selected: (value === null || value === void 0 ? void 0 : value.id) === plugin.id }, index)); }) })));
1231
1253
  };
1232
1254
  var PaymentOption = function (_a) {
@@ -1249,7 +1271,7 @@ var PaymentOptionContainer = defaultStyled.div(templateObject_1$5 || (templateOb
1249
1271
  });
1250
1272
  var templateObject_1$5;
1251
1273
 
1252
- function useRemovePaymentMethod(paymentPlugins, token, apiHost, entityId, accountId) {
1274
+ function useRemovePaymentMethod(paymentPlugins, apiHost, entityId, token, accountId) {
1253
1275
  var _this = this;
1254
1276
  var queryClient = useQueryClient();
1255
1277
  var showErrorNotification = useErrorNotification();
@@ -1273,7 +1295,7 @@ function useRemovePaymentMethod(paymentPlugins, token, apiHost, entityId, accoun
1273
1295
  })
1274
1296
  .then(function () {
1275
1297
  showSuccessNotification("Payment method was removed", "Success");
1276
- queryClient.setQueryData(QueryKeyFactory.default.accountPaymentMethodKey(entityId, token), null);
1298
+ queryClient.setQueryData(QueryKeyFactory.default.accountPaymentMethodKey(entityId, token, accountId), null);
1277
1299
  })
1278
1300
  .catch(function (error) {
1279
1301
  showErrorNotification(error.message, "Error removing payment method");
@@ -1291,7 +1313,7 @@ function useRemovePaymentMethod(paymentPlugins, token, apiHost, entityId, accoun
1291
1313
  var Panel = Collapse.Panel;
1292
1314
  var PaymentForm = function (_a) {
1293
1315
  var _b;
1294
- var entityId = _a.entityId, invoice = _a.invoice, onFail = _a.onFail, onPaymentSuccess = _a.onPaymentSuccess, quote = _a.quote, accountId = _a.accountId, onSavePaymentMethod = _a.onSavePaymentMethod, overrideToken = _a.overrideToken, graphQLClient = _a.graphQLClient, customCheckoutFunction = _a.customCheckoutFunction, currencyIdFromProps = _a.currencyId;
1316
+ var entityId = _a.entityId, invoice = _a.invoice, onFail = _a.onFail, onPaymentSuccess = _a.onPaymentSuccess, quote = _a.quote, accountId = _a.accountId, onSavePaymentMethod = _a.onSavePaymentMethod, overrideToken = _a.overrideToken, graphQLClient = _a.graphQLClient, customCheckoutFunction = _a.customCheckoutFunction, currencyIdFromProps = _a.currencyId, customPaymentForms = _a.customPaymentForms;
1295
1317
  // Local state
1296
1318
  var _c = useState(), selectedPaymentMethod = _c[0], setSelectedPaymentMethod = _c[1];
1297
1319
  var _d = useState(false), showPaymentMethodForm = _d[0], setShowPaymentMethodForm = _d[1];
@@ -1302,10 +1324,12 @@ var PaymentForm = function (_a) {
1302
1324
  // Hooks
1303
1325
  var apiHost = useContext(BunnyContext).apiHost;
1304
1326
  var token = useToken();
1305
- var storedPaymentMethod = usePaymentMethod(graphQLClient, entityId, overrideToken || token).data;
1327
+ var _e = usePaymentMethod(graphQLClient, entityId, overrideToken || token, accountId), storedPaymentMethod = _e.data, isPaymentMethodLoading = _e.isLoading;
1328
+ console.log("COMPS accountId", accountId);
1329
+ console.log("COMPS storedPaymentMethod", storedPaymentMethod);
1306
1330
  var isPaymentMethodFetched = storedPaymentMethod !== undefined;
1307
- var _e = usePaymentPlugins({ entityId: entityId, apiHost: apiHost, token: overrideToken || token }), paymentMethodAllowedPlugins = _e.paymentMethodAllowedPlugins, arePluginsFetched = _e.isFetched;
1308
- var onClickRemove = useRemovePaymentMethod(paymentMethodAllowedPlugins || [], overrideToken || token, apiHost, entityId, accountId);
1331
+ var _f = usePaymentPlugins({ entityId: entityId, apiHost: apiHost, token: overrideToken || token }), paymentMethodAllowedPlugins = _f.paymentPlugins, arePluginsFetched = _f.isFetched;
1332
+ var onClickRemove = useRemovePaymentMethod(paymentMethodAllowedPlugins || [], apiHost, entityId, overrideToken || token, accountId);
1309
1333
  var queryClient = useQueryClient();
1310
1334
  // Set default plugin
1311
1335
  useEffect(function () {
@@ -1340,11 +1364,14 @@ var PaymentForm = function (_a) {
1340
1364
  };
1341
1365
  var handleSavePaymentMethod = function () {
1342
1366
  queryClient.invalidateQueries({
1343
- queryKey: QueryKeyFactory.default.accountPaymentMethodKey(entityId, token),
1367
+ queryKey: QueryKeyFactory.default.accountPaymentMethodKey(entityId, token, accountId),
1344
1368
  });
1345
1369
  onSavePaymentMethod === null || onSavePaymentMethod === void 0 ? void 0 : onSavePaymentMethod();
1346
1370
  setShowPaymentMethodForm(false);
1347
1371
  };
1372
+ if (isPaymentMethodLoading) {
1373
+ return jsx(Skeleton, { active: true, className: "p-4" });
1374
+ }
1348
1375
  return (jsx(PaymentContext.Provider, __assign({ value: {
1349
1376
  onClickCancel: function () { return setShowPaymentMethodForm(false); },
1350
1377
  accountId: accountId,
@@ -1355,11 +1382,11 @@ var PaymentForm = function (_a) {
1355
1382
  //if not paying and payment method is saved, show Collapse
1356
1383
  jsx(Collapse, __assign({ bordered: false, activeKey: showPaymentMethodForm ? "1" : undefined, ghost: true, collapsible: "disabled", destroyInactivePanel: true }, { children: jsx(Panel, __assign({ header: jsx(Fragment, { children: !showPaymentMethodForm ? (jsx("div", __assign({ className: "pt-2" }, { children: jsxs(Button, __assign({ onClick: function () {
1357
1384
  setShowPaymentMethodForm(true);
1358
- }, type: "default", className: "w-full", id: "addPaymentMethod" }, { children: [storedPaymentMethod ? "Update" : "Add", " payment method"] })) }))) : null }), showArrow: false }, { children: jsx("div", { children: selectedPaymentMethod ? (jsxs("div", __assign({ className: "flex flex-col gap-2 mt-2" }, { children: [showPaymentMethodSelector && (jsx(PaymentMethodSelector, { onSelect: setSelectedPaymentMethod, paymentMethodAllowedPlugins: paymentMethodAllowedPlugins, value: selectedPaymentMethod })), jsx("div", __assign({ className: "flex flex-col" }, { children: jsx(PaymentMethodDetails, { onFail: onFail, onSavePaymentMethod: handleSavePaymentMethod, paymentMethod: selectedPaymentMethod }) }))] }))) : (jsx("div", { children: "No payment method selected" })) }) }), "1") })))] }) })) })) })));
1385
+ }, type: "default", className: "w-full", id: "addPaymentMethod" }, { children: [storedPaymentMethod ? "Update" : "Add", " payment method"] })) }))) : null }), showArrow: false }, { children: jsx("div", { children: selectedPaymentMethod ? (jsxs("div", __assign({ className: "flex flex-col gap-2 mt-2" }, { children: [showPaymentMethodSelector && (jsx(PaymentMethodSelector, { onSelect: setSelectedPaymentMethod, paymentMethodAllowedPlugins: paymentMethodAllowedPlugins, value: selectedPaymentMethod })), jsx("div", __assign({ className: "flex flex-col" }, { children: jsx(PaymentMethodDetails, { onFail: onFail, onSavePaymentMethod: handleSavePaymentMethod, paymentMethod: selectedPaymentMethod, customPaymentForms: customPaymentForms }) }))] }))) : (jsx("div", { children: "No payment method selected" })) }) }), "1") })))] }) })) })) })));
1359
1386
  };
1360
1387
  function StripeWrapper(_a) {
1361
1388
  var children = _a.children, plugin = _a.plugin, token = _a.token, apiHost = _a.apiHost, currencyId = _a.currencyId, accountId = _a.accountId;
1362
- var _b = useStripePlugin(plugin, token, apiHost, currencyId || "usd", accountId), stripe = _b.stripe, options = _b.options;
1389
+ var _b = useStripePlugin(plugin, apiHost, currencyId || "usd", token, accountId), stripe = _b.stripe, options = _b.options;
1363
1390
  return (jsx(Elements, __assign({ options: options, stripe: stripe }, { children: children })));
1364
1391
  }
1365
1392
 
@@ -1478,7 +1505,7 @@ var useSendAcceptQuote = function (_a) {
1478
1505
  var variables = {
1479
1506
  quoteId: quoteId,
1480
1507
  };
1481
- graphQLMutation(token, mutation, variables, function (rsp) {
1508
+ graphQLMutation(mutation, variables, function (rsp) {
1482
1509
  if (rsp.errors)
1483
1510
  console.log("rsp.errors", rsp.errors);
1484
1511
  else {
@@ -1492,7 +1519,7 @@ var useSendAcceptQuote = function (_a) {
1492
1519
  window.location.href = rsp.data.quoteSigningUrlCreate.redirectUri;
1493
1520
  }
1494
1521
  }
1495
- });
1522
+ }, token);
1496
1523
  };
1497
1524
  var openDropboxSignModal = function (clientId, url) { return __awaiter(void 0, void 0, void 0, function () {
1498
1525
  var HelloSign, client;
@@ -1528,7 +1555,7 @@ var useSendAcceptQuote = function (_a) {
1528
1555
  var sendAccept = function (changedFormItems) {
1529
1556
  var mutation = "mutation quoteAccept($name: String!, $title: String!, $poNumber: String, $taxNumber: String, $quoteId: ID) {\n quoteAccept(name: $name, title: $title, poNumber: $poNumber, taxNumber: $taxNumber, quoteId: $quoteId) {\n errors\n }\n }";
1530
1557
  var variables = __assign(__assign({}, changedFormItems), { quoteId: quoteId });
1531
- graphQLMutation(token, mutation, variables, function (rsp) {
1558
+ graphQLMutation(mutation, variables, function (rsp) {
1532
1559
  if (rsp.errors)
1533
1560
  handleAllErrorFormats(rsp.errors);
1534
1561
  else {
@@ -1540,7 +1567,7 @@ var useSendAcceptQuote = function (_a) {
1540
1567
  queryKey: QueryKeyFactory.default.createQuoteKey(token),
1541
1568
  });
1542
1569
  }
1543
- });
1570
+ }, token);
1544
1571
  };
1545
1572
  var startAcceptance = function () {
1546
1573
  setIsAccepting(true);
@@ -1603,7 +1630,7 @@ var PandadocPollingModal = function (_a) {
1603
1630
  var variables = {
1604
1631
  id: id,
1605
1632
  };
1606
- graphQLMutation(token, mutation, variables, function (rsp) {
1633
+ graphQLMutation(mutation, variables, function (rsp) {
1607
1634
  if (rsp.errors)
1608
1635
  handleAllErrorFormats(rsp.errors);
1609
1636
  else if (rsp.data.quotePollSigningUrl.status === "document.sent") {
@@ -1611,7 +1638,7 @@ var PandadocPollingModal = function (_a) {
1611
1638
  window.location.href = rsp.data.quotePollSigningUrl.redirectUri;
1612
1639
  }
1613
1640
  setInfoMessage(rsp.data.quotePollSigningUrl.infoMessage || "");
1614
- });
1641
+ }, token);
1615
1642
  setNumberOfPolls(numberOfPolls + 1);
1616
1643
  };
1617
1644
  var interval = setInterval(pollPandadocMutation, 1000);
@@ -1769,8 +1796,8 @@ var getQuotes = function (_a) {
1769
1796
  });
1770
1797
  };
1771
1798
 
1772
- var transactionMutation = function (filter) { return "\nquery transactions {\n transactions ".concat(filter ? "(".concat(filter, ")") : "", " {\n nodes {\n amount\n createdAt\n currencyId\n description\n id\n kind\n state\n transactionableId\n transactionable {\n ...on Payment { amount }\n ...on Invoice { amount number dueAt issuedAt isLegacy }\n ...on CreditNote { amount number issuedAt }\n }\n }\n }\n}"); };
1773
- var getTransactions = function (filter, token, apiHost) { return __awaiter(void 0, void 0, void 0, function () {
1799
+ var transactionMutation = function (filter) { return "\nquery transactions {\n transactions ".concat(filter ? "(".concat(filter, ")") : "", " {\n nodes {\n amount\n createdAt\n currencyId\n description\n id\n kind\n state\n transactionableId\n transactionable {\n ...on Payment { amount }\n ...on Invoice { amount number dueAt issuedAt isLegacy }\n ...on CreditNote { amount number issuedAt }\n }\n account {\n name\n id\n }\n }\n }\n}"); };
1800
+ var getTransactions = function (filter, apiHost, token) { return __awaiter(void 0, void 0, void 0, function () {
1774
1801
  var response, _a, data, errors;
1775
1802
  return __generator(this, function (_b) {
1776
1803
  switch (_b.label) {
@@ -19127,14 +19154,17 @@ var TransactionsListDesktop = function (_a) {
19127
19154
  var _b = useContext(TransactionsListContext), columns = _b.columns, transactionDateType = _b.transactionDateType;
19128
19155
  var _c = useContext(BunnyContext), apiHost = _c.apiHost, darkMode = _c.darkMode;
19129
19156
  var token = useToken();
19130
- var showAmount = columns.includes("amount");
19131
- var showDateAndTitle = columns.includes("date-and-title");
19157
+ // Columns to show
19158
+ var showDate = columns.includes("date");
19159
+ var showTitle = columns.includes("title");
19160
+ var showAccountName = columns.includes("accountName");
19132
19161
  var showDownload = columns.includes("download");
19162
+ var showAmount = columns.includes("amount");
19133
19163
  var showState = columns.includes("state");
19134
19164
  if ((transactions === null || transactions === void 0 ? void 0 : transactions.length) === 0)
19135
19165
  return jsx(TransactionsEmptyState, {});
19136
19166
  return (jsx(Fragment, { children: transactions === null || transactions === void 0 ? void 0 : transactions.map(function (transaction, index) {
19137
- var _a;
19167
+ var _a, _b;
19138
19168
  var isClickable = onTransactionClick !== undefined;
19139
19169
  return (jsxs("div", __assign({ className: "contents ".concat(isClickable && "cursor-pointer", " show-on-hover-container"), onClick: function () {
19140
19170
  onTransactionClick === null || onTransactionClick === void 0 ? void 0 : onTransactionClick(transaction);
@@ -19142,10 +19172,12 @@ var TransactionsListDesktop = function (_a) {
19142
19172
  backgroundColor: index % 2 === 0
19143
19173
  ? "var(--row-background".concat(darkMode ? "-dark" : "", ")")
19144
19174
  : "var(--row-background-alternate".concat(darkMode ? "-dark" : "", ")"),
19145
- } }, { children: [!showDateAndTitle &&
19175
+ } }, { children: [!showDate &&
19176
+ !showTitle &&
19146
19177
  !showState &&
19147
19178
  !showAmount &&
19148
- !showDownload && (jsx(TransactionGridCell, { children: jsx(Text$8, { children: "No columns selected" }) })), showDateAndTitle && (jsxs(Fragment, { children: [jsx(TransactionGridCell, __assign({ right: false }, { children: jsx(TransactionDate, { date: transactionDateToDisplay(transaction, transactionDateType) }) })), jsxs(TransactionGridCell, __assign({ right: false, className: "flex items-center gap-2" }, { children: [jsx(Text$8, { children: lodashExports.capitalize(transaction.kind.toLowerCase()) }), jsx(TransactionRowTitle, { transaction: transaction })] }))] })), showDownload && (jsx(TransactionGridCell, { children: jsx(TransactionDownload, { transaction: transaction, token: token, apiHost: apiHost }) })), showState ? (jsx(TransactionGridCell, __assign({ right: true }, { children: jsx(StateTag, { state: transaction.state }) }))) : null, showAmount && (jsx(TransactionGridCell, __assign({ right: true }, { children: jsx(Text$8, { children: formatCurrency(((_a = transaction === null || transaction === void 0 ? void 0 : transaction.transactionable) === null || _a === void 0 ? void 0 : _a.amount) || transaction.amount, transaction.currencyId) }) })))] }), index));
19179
+ !showDownload &&
19180
+ !showAccountName && (jsx(TransactionGridCell, { children: jsx(Text$8, { children: "No columns selected" }) })), showDate && (jsx(TransactionGridCell, __assign({ right: false }, { children: jsx(TransactionDate, { date: transactionDateToDisplay(transaction, transactionDateType) }) }))), showTitle && (jsx(Fragment, { children: jsxs(TransactionGridCell, __assign({ right: false, className: "flex items-center gap-2" }, { children: [jsx(Text$8, { children: lodashExports.capitalize(transaction.kind.toLowerCase()) }), jsx(TransactionRowTitle, { transaction: transaction })] })) })), showAccountName && (jsx(TransactionGridCell, __assign({ right: false }, { children: jsx(Text$8, { children: (_a = transaction.account) === null || _a === void 0 ? void 0 : _a.name }) }))), !showDate && !showTitle && !showAccountName && (jsx(TransactionGridCell, { right: false })), showDownload && (jsx(TransactionGridCell, { children: jsx(TransactionDownload, { transaction: transaction, token: token, apiHost: apiHost }) })), showState ? (jsx(TransactionGridCell, __assign({ right: true }, { children: jsx(StateTag, { state: transaction.state }) }))) : null, showAmount && (jsx(TransactionGridCell, __assign({ right: true }, { children: jsx(Text$8, { children: formatCurrency(((_b = transaction === null || transaction === void 0 ? void 0 : transaction.transactionable) === null || _b === void 0 ? void 0 : _b.amount) || transaction.amount, transaction.currencyId) }) })))] }), index));
19149
19181
  }) }));
19150
19182
  };
19151
19183
 
@@ -19156,12 +19188,15 @@ var TransactionsListMobile = function (_a) {
19156
19188
  var _c = useContext(BunnyContext), apiHost = _c.apiHost, darkMode = _c.darkMode;
19157
19189
  var token = useToken();
19158
19190
  var showAmount = columns.includes("amount");
19159
- var showDateAndTitle = columns.includes("date-and-title");
19191
+ var showDate = columns.includes("date");
19192
+ var showTitle = columns.includes("title");
19193
+ var showAccountName = columns.includes("accountName");
19160
19194
  var showDownload = columns.includes("download");
19161
19195
  var showState = columns.includes("state");
19162
19196
  if ((transactions === null || transactions === void 0 ? void 0 : transactions.length) === 0)
19163
19197
  return jsx(TransactionsEmptyState, {});
19164
19198
  return (jsx(Fragment, { children: transactions === null || transactions === void 0 ? void 0 : transactions.map(function (transaction, index) {
19199
+ var _a;
19165
19200
  var isClickable = transaction.kind === "INVOICE";
19166
19201
  return (jsxs("div", __assign({ className: "contents ".concat(isClickable && "cursor-pointer", " show-on-hover-container"), onClick: function () {
19167
19202
  onTransactionClick(transaction);
@@ -19169,7 +19204,7 @@ var TransactionsListMobile = function (_a) {
19169
19204
  backgroundColor: index % 2 === 0
19170
19205
  ? "var(--row-background".concat(darkMode ? "-dark" : "", ")")
19171
19206
  : "var(--row-background-alternate".concat(darkMode ? "-dark" : "", ")"),
19172
- } }, { children: [jsx(TransactionGridCell, { children: jsxs("div", __assign({ className: "flex flex-col gap-2" }, { children: [jsxs("div", __assign({ className: "flex items-center gap-2" }, { children: [showDateAndTitle && (jsxs(Fragment, { children: [jsx(Text$7, { children: lodashExports.capitalize(transaction.kind.toLowerCase()) }), jsx(TransactionRowTitle, { transaction: transaction })] })), showState && jsx(StateTag, { state: transaction.state })] })), jsxs("div", __assign({ className: "flex items-center gap-2" }, { children: [showDateAndTitle && (jsx(TransactionDate, { date: transactionDateToDisplay(transaction, transactionDateType) })), showAmount && showDateAndTitle && jsx(Text$7, { children: "\u00B7" }), showAmount && (jsx(Text$7, { children: formatCurrency(transaction.transactionable.amount ||
19207
+ } }, { children: [jsx(TransactionGridCell, { children: jsxs("div", __assign({ className: "flex flex-col gap-2" }, { children: [(showTitle || showState) && (jsxs("div", __assign({ className: "flex items-center gap-2" }, { children: [showTitle && (jsxs(Fragment, { children: [jsx(Text$7, { children: lodashExports.capitalize(transaction.kind.toLowerCase()) }), jsx(TransactionRowTitle, { transaction: transaction })] })), showState && jsx(StateTag, { state: transaction.state })] }))), jsxs("div", __assign({ className: "flex items-center gap-2" }, { children: [showAccountName && jsx(Text$7, { children: (_a = transaction.account) === null || _a === void 0 ? void 0 : _a.name }), showAccountName && showDate && jsx(Text$7, { children: "\u00B7" }), showDate && (jsx(TransactionDate, { date: transactionDateToDisplay(transaction, transactionDateType) })), showDate && showAmount && jsx(Text$7, { children: "\u00B7" }), showAmount && (jsx(Text$7, { children: formatCurrency(transaction.transactionable.amount ||
19173
19208
  transaction.amount, transaction.currencyId) }))] }))] })) }), showDownload && (jsx(TransactionGridCell, __assign({ right: true }, { children: jsx(TransactionDownload, { transaction: transaction, token: token, apiHost: apiHost }) })))] }), index));
19174
19209
  }) }));
19175
19210
  };
@@ -19177,7 +19212,7 @@ var TransactionsListMobile = function (_a) {
19177
19212
  var Text$6 = Typography.Text;
19178
19213
  var DISPLAY_WIDTH = 1200;
19179
19214
  function Transactions(_a) {
19180
- var transactionComponent = _a.transactionComponent, _b = _a.showSearchBar, showSearchBar = _b === void 0 ? true : _b, _c = _a.showTitle, showTitle = _c === void 0 ? true : _c, _d = _a.title, title = _d === void 0 ? "Past transactions" : _d, _e = _a.columns, columns = _e === void 0 ? ["date-and-title", "state", "amount", "download"] : _e, className = _a.className, _f = _a.shadow, shadow = _f === void 0 ? "shadow-md" : _f, searchBarClassName = _a.searchBarClassName, _g = _a.useModal, useModal = _g === void 0 ? false : _g, onTransactionClick = _a.onTransactionClick, _h = _a.suppressTransactionDisplay, suppressTransactionDisplay = _h === void 0 ? false : _h, _j = _a.kindsToShow, kindsToShow = _j === void 0 ? [
19215
+ var transactionComponent = _a.transactionComponent, _b = _a.showSearchBar, showSearchBar = _b === void 0 ? true : _b, _c = _a.showTitle, showTitle = _c === void 0 ? true : _c, _d = _a.title, title = _d === void 0 ? "Past transactions" : _d, _e = _a.columns, columns = _e === void 0 ? ["date", "title", "state", "amount", "download"] : _e, className = _a.className, _f = _a.shadow, shadow = _f === void 0 ? "shadow-md" : _f, searchBarClassName = _a.searchBarClassName, _g = _a.useModal, useModal = _g === void 0 ? false : _g, onTransactionClick = _a.onTransactionClick, _h = _a.suppressTransactionDisplay, suppressTransactionDisplay = _h === void 0 ? false : _h, _j = _a.kindsToShow, kindsToShow = _j === void 0 ? [
19181
19216
  TransactionKind.INVOICE,
19182
19217
  TransactionKind.PAYMENT,
19183
19218
  TransactionKind.REFUND,
@@ -19215,7 +19250,7 @@ function Transactions(_a) {
19215
19250
  // Queries
19216
19251
  var data = useQuery({
19217
19252
  queryKey: ["transactions", token, filterValue],
19218
- queryFn: function () { return getTransactions(filterValue, token, apiHost); },
19253
+ queryFn: function () { return getTransactions(filterValue, apiHost, token); },
19219
19254
  placeholderData: keepPreviousData,
19220
19255
  }).data;
19221
19256
  return (jsx(TransactionsListContext.Provider, __assign({ value: contextValues }, { children: jsx(TransactionsDisplay, { transactions: data || [], onSearchValueChanged: setSearch, search: search }) })));
@@ -19249,7 +19284,8 @@ function TransactionsDisplay(_a) {
19249
19284
  var gridTemplateColumns = function () {
19250
19285
  var templateColumns = [];
19251
19286
  if (isMobile) {
19252
- if (columns.includes("date-and-title") ||
19287
+ if (columns.includes("date") ||
19288
+ columns.includes("title") ||
19253
19289
  columns.includes("state") ||
19254
19290
  columns.includes("amount")) {
19255
19291
  templateColumns.push("auto");
@@ -19259,18 +19295,21 @@ function TransactionsDisplay(_a) {
19259
19295
  }
19260
19296
  }
19261
19297
  else {
19262
- if (columns.includes("date-and-title")) {
19263
- templateColumns.push("auto 3fr");
19298
+ var leftColumns = ["accountName", "date", "title"].filter(function (column) {
19299
+ return columns.includes(column);
19300
+ }).length;
19301
+ // The rightmost column (for left columns) should be 3fr, the rest should be auto
19302
+ if (leftColumns === 0 || leftColumns === 1) {
19303
+ templateColumns.push("3fr");
19264
19304
  }
19265
- if (columns.includes("download")) {
19266
- templateColumns.push("auto");
19267
- }
19268
- if (columns.includes("state")) {
19269
- templateColumns.push("auto");
19270
- }
19271
- if (columns.includes("amount")) {
19272
- templateColumns.push("auto");
19305
+ else {
19306
+ templateColumns.push.apply(templateColumns, __spreadArray(__spreadArray([], Array(leftColumns - 1).fill("auto"), false), ["3fr"], false));
19273
19307
  }
19308
+ // Right columns are only auto
19309
+ var rightColumns = ["download", "state", "amount"].filter(function (column) {
19310
+ return columns.includes(column);
19311
+ }).length;
19312
+ templateColumns.push.apply(templateColumns, Array(rightColumns).fill("auto"));
19274
19313
  }
19275
19314
  return templateColumns.join(" ");
19276
19315
  };
@@ -19301,7 +19340,7 @@ function TransactionsDisplay(_a) {
19301
19340
  }
19302
19341
 
19303
19342
  function Quotes(_a) {
19304
- var className = _a.className, _b = _a.columns, columns = _b === void 0 ? ["date-and-title", "amount", "download", "state"] : _b, entityId = _a.entityId, filter = _a.filter, filterQuotes = _a.filterQuotes, _c = _a.sort, sort = _c === void 0 ? function (a, b) {
19343
+ var className = _a.className, _b = _a.columns, columns = _b === void 0 ? ["date", "title", "amount", "download", "state"] : _b, entityId = _a.entityId, filter = _a.filter, filterQuotes = _a.filterQuotes, _c = _a.sort, sort = _c === void 0 ? function (a, b) {
19305
19344
  return new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime();
19306
19345
  } : _c, _d = _a.noQuotesMessage, noQuotesMessage = _d === void 0 ? "There are no quotes" : _d, onQuoteClick = _a.onQuoteClick, quoteComponent = _a.quoteComponent, searchBarClassName = _a.searchBarClassName, _e = _a.shadow, shadow = _e === void 0 ? "shadow-md" : _e, _f = _a.showSearchBar, showSearchBar = _f === void 0 ? true : _f, _g = _a.showTitle, showTitle = _g === void 0 ? true : _g, _h = _a.title, title = _h === void 0 ? "Past quotes" : _h, style = _a.style, _j = _a.suppressQuoteDisplay, suppressQuoteDisplay = _j === void 0 ? false : _j, _k = _a.useModal, useModal = _k === void 0 ? false : _k;
19307
19346
  var apiHost = useContext(BunnyContext).apiHost;
@@ -19382,26 +19421,27 @@ function QuotesWrapper() {
19382
19421
  var quotes = data.nodes.filter(function (quote) {
19383
19422
  return quote.state !== "DRAFT";
19384
19423
  });
19385
- var quotesAsTransactions = quotes.map(function (quote) { return ({
19386
- transactionableId: quote.id,
19387
- state: quote.state,
19388
- amount: quote.amount || quote.amountDue,
19389
- kind: "QUOTE",
19390
- currencyId: quote.currencyId,
19391
- transactionable: {
19392
- number: quote.number,
19393
- },
19394
- createdAt: quote.createdAt,
19395
- }); });
19424
+ var quotesAsTransactions = quotes.map(function (quote) {
19425
+ var _a, _b;
19426
+ return ({
19427
+ transactionableId: quote.id,
19428
+ state: quote.state,
19429
+ amount: quote.amount || quote.amountDue,
19430
+ kind: "QUOTE",
19431
+ currencyId: quote.currencyId,
19432
+ transactionable: {
19433
+ number: quote.number,
19434
+ },
19435
+ createdAt: quote.createdAt,
19436
+ account: {
19437
+ name: (_a = quote.account) === null || _a === void 0 ? void 0 : _a.name,
19438
+ id: (_b = quote.account) === null || _b === void 0 ? void 0 : _b.id,
19439
+ },
19440
+ });
19441
+ });
19396
19442
  return (jsx(TransactionsDisplay, { transactions: quotesAsTransactions, onSearchValueChanged: setSearch, search: search }));
19397
19443
  }
19398
19444
 
19399
- var Text$5 = Typography.Text;
19400
- var DrawerHeader = function (_a) {
19401
- var description = _a.description, onClose = _a.onClose, title = _a.title;
19402
- return (jsxs("div", __assign({ className: "flex flex-col gap-4" }, { children: [jsxs("div", __assign({ className: "flex items-center justify-between gap-2" }, { children: [jsx(Text$5, __assign({ className: "text-xl", style: { fontWeight: 400 } }, { children: title })), jsx("button", __assign({ onClick: onClose, className: "ant-drawer-close" }, { children: jsx(CloseOutlined, {}) }))] })), description && jsx("div", __assign({ className: "text-xs" }, { children: description }))] })));
19403
- };
19404
-
19405
19445
  // TODO: move this to common
19406
19446
  var billingDetailsQuery = function () {
19407
19447
  return "\nquery BillingDetails {\n billingDetails {\n billingCity\n billingContact {\n email\n }\n billingCountry\n billingState\n billingStreet\n billingZip\n name\n taxNumber\n currency {\n id\n }\n }\n}";
@@ -19429,26 +19469,35 @@ var getBillingDetails = function (_a) {
19429
19469
  });
19430
19470
  };
19431
19471
 
19472
+ var Text$5 = Typography.Text;
19473
+ var DrawerHeader = function (_a) {
19474
+ var description = _a.description, onClose = _a.onClose, title = _a.title, closeButtonClassName = _a.closeButtonClassName;
19475
+ return (jsxs("div", __assign({ className: "flex flex-col gap-4" }, { children: [jsxs("div", __assign({ className: "flex items-center justify-between gap-2" }, { children: [jsx(Text$5, __assign({ className: "text-xl", style: { fontWeight: 400 } }, { children: title })), onClose ? (jsx("button", __assign({ onClick: onClose, className: closeButtonClassName }, { children: jsx(CloseOutlined, {}) }))) : null] })), description && jsx("div", __assign({ className: "text-xs" }, { children: description }))] })));
19476
+ };
19477
+
19432
19478
  var PaymentMethod = function (_a) {
19433
19479
  var _b;
19434
- var entityId = _a.entityId, className = _a.className, _c = _a.shadow, shadow = _c === void 0 ? "shadow-md" : _c, _d = _a.cardEnabled, cardEnabled = _d === void 0 ? true : _d;
19435
- var _e = useContext(BunnyContext), apiHost = _e.apiHost, graphQLClient = _e.graphQLClient, onTokenExpired = _e.onTokenExpired;
19480
+ var entityId = _a.entityId, className = _a.className, _c = _a.shadow, shadow = _c === void 0 ? "shadow-md" : _c, _d = _a.cardEnabled, cardEnabled = _d === void 0 ? true : _d,
19481
+ /** Whether to use a modal instead of a drawer for the payment method form */
19482
+ _e = _a.useModal,
19483
+ /** Whether to use a modal instead of a drawer for the payment method form */
19484
+ useModal = _e === void 0 ? true : _e;
19485
+ var _f = useContext(BunnyContext), apiHost = _f.apiHost, graphQLClient = _f.graphQLClient, onTokenExpired = _f.onTokenExpired;
19436
19486
  var token = useToken();
19437
19487
  // Hooks
19438
19488
  var queryClient = useQueryClient();
19439
19489
  var paymentPlugins = usePaymentPlugins({ entityId: entityId, apiHost: apiHost, token: token }).paymentPlugins;
19440
19490
  var showSuccessNotification = useSuccessNotification();
19441
19491
  var handleAllErrorFormats = useAllErrorFormats(onTokenExpired);
19442
- var isMobile = useIsMobile();
19443
19492
  var data = usePaymentMethod(graphQLClient, entityId, token).data;
19444
- var onClickRemove = useRemovePaymentMethod(paymentPlugins || [], token, apiHost, entityId);
19493
+ var onClickRemove = useRemovePaymentMethod(paymentPlugins || [], apiHost, entityId, token);
19445
19494
  // Queries
19446
19495
  var billingDetails = useQuery({
19447
19496
  queryKey: QueryKeyFactory.default.billingDetailsKey(entityId, token),
19448
19497
  queryFn: function () { return getBillingDetails({ token: token, apiHost: apiHost }); },
19449
19498
  }).data;
19450
19499
  // Local state
19451
- var _f = useState(false), showModal = _f[0], setShowModal = _f[1];
19500
+ var _g = useState(false), showModal = _g[0], setShowModal = _g[1];
19452
19501
  var onSuccess = function () {
19453
19502
  queryClient.invalidateQueries({
19454
19503
  queryKey: QueryKeyFactory.default.accountPaymentMethodKey(entityId, token),
@@ -19467,18 +19516,27 @@ var PaymentMethod = function (_a) {
19467
19516
  return [2 /*return*/];
19468
19517
  }
19469
19518
  });
19470
- }); }, onClickUpdate: function () { return setShowModal(true); }, paymentMethodData: data, shadow: shadow, cardEnabled: cardEnabled })) : (jsx(EmptyCard, { onClick: function () { return setShowModal(true); }, shadow: shadow, cardEnabled: cardEnabled })), jsx(Drawer, __assign({ closeIcon: null, onClose: function () { return setShowModal(false); }, open: showModal, styles: {
19471
- body: isMobile
19472
- ? {
19473
- padding: "1rem 0 0",
19474
- }
19475
- : {},
19476
- }, title: jsx(DrawerHeader, { onClose: function () { return setShowModal(false); }, title: "New payment method" }) }, { children: jsx(PaymentForm, { entityId: entityId, onFail: function (error) {
19519
+ }); }, onClickUpdate: function () { return setShowModal(true); }, paymentMethodData: data, shadow: shadow, cardEnabled: cardEnabled })) : (jsx(EmptyCard, { onClick: function () { return setShowModal(true); }, shadow: shadow, cardEnabled: cardEnabled })), jsx(PaymentMethodDisplay, __assign({ useModal: useModal, setShowModal: setShowModal, showModal: showModal }, { children: jsx(PaymentForm, { entityId: entityId, onFail: function (error) {
19477
19520
  handleAllErrorFormats(error);
19478
19521
  }, onPaymentSuccess: function () {
19479
19522
  onSuccess();
19480
19523
  }, graphQLClient: graphQLClient, currencyId: (_b = billingDetails === null || billingDetails === void 0 ? void 0 : billingDetails.currency) === null || _b === void 0 ? void 0 : _b.id }) }))] })));
19481
19524
  };
19525
+ var PaymentMethodDisplay = function (_a) {
19526
+ var children = _a.children, useModal = _a.useModal, setShowModal = _a.setShowModal, showModal = _a.showModal;
19527
+ if (useModal) {
19528
+ return (jsx(Modal, __assign({ closeIcon: null, open: showModal, onClose: function () { return setShowModal(false); }, onCancel: function () { return setShowModal(false); }, styles: {
19529
+ body: {
19530
+ padding: "1rem 0 0 0",
19531
+ },
19532
+ }, title: jsx("div", __assign({ className: "px-4" }, { children: jsx(DrawerHeader, { title: "New payment method", onClose: function () { return setShowModal(false); }, closeButtonClassName: "bg-transparent border-none cursor-pointer hover:bg-gray-100 p-2 rounded-sm transition-all duration-200" }) })), footer: null }, { children: children })));
19533
+ }
19534
+ return (jsx(Drawer, __assign({ closeIcon: null, onClose: function () { return setShowModal(false); }, open: showModal, styles: {
19535
+ body: {
19536
+ padding: "1rem 0.5rem 0",
19537
+ },
19538
+ }, title: jsx(DrawerHeader, { onClose: function () { return setShowModal(false); }, title: "New payment method", closeButtonClassName: "ant-drawer-close" }) }, { children: children })));
19539
+ };
19482
19540
 
19483
19541
  var pageWrapperClassName = function (isMobile) {
19484
19542
  return "flex flex-col grow pt-4 ".concat(isMobile ? "pb-4 overflow-hidden" : "pb-8", " ").concat("content-container");
@@ -19830,7 +19888,7 @@ var getPriceList = function (_a) {
19830
19888
  function PaymentForms(_a) {
19831
19889
  var quote = _a.quote, handlePaymentSuccess = _a.handlePaymentSuccess, handlePaymentFail = _a.handlePaymentFail, handleSubmit = _a.handleSubmit, proceedingToPayment = _a.proceedingToPayment, entityId = _a.entityId, accountId = _a.accountId, overrideToken = _a.overrideToken, customCheckoutFunction = _a.customCheckoutFunction;
19832
19890
  var apiHost = useContext(BunnyContext).apiHost;
19833
- return (jsx(Fragment, { children: quote ? (jsx(Fragment, { children: overrideToken ? (jsx(PaymentForm, { entityId: entityId, onFail: handlePaymentFail, onPaymentSuccess: handlePaymentSuccess, accountId: accountId, quote: quote, overrideToken: overrideToken, graphQLClient: createGraphQLClient(overrideToken, apiHost), customCheckoutFunction: customCheckoutFunction })) : null })) : (jsx(InitialSignupForm, { onSubmit: handleSubmit, submitting: proceedingToPayment })) }));
19891
+ return (jsx(Fragment, { children: quote ? (jsx(Fragment, { children: overrideToken ? (jsx(PaymentForm, { entityId: entityId, onFail: handlePaymentFail, onPaymentSuccess: handlePaymentSuccess, accountId: accountId, quote: quote, overrideToken: overrideToken, graphQLClient: createGraphQLClient(apiHost, overrideToken), customCheckoutFunction: customCheckoutFunction })) : null })) : (jsx(InitialSignupForm, { onSubmit: handleSubmit, submitting: proceedingToPayment })) }));
19834
19892
  }
19835
19893
  function InitialSignupForm(_a) {
19836
19894
  var onSubmit = _a.onSubmit, submitting = _a.submitting;
@@ -19908,7 +19966,7 @@ function Signup(_a) {
19908
19966
  data = _a.sent();
19909
19967
  setAccountId(data.account.id);
19910
19968
  setPortalSessionToken(data.portalSessionToken);
19911
- setPaymentMethodGraphQLClient(createGraphQLClient(data.portalSessionToken, apiHost || ""));
19969
+ setPaymentMethodGraphQLClient(createGraphQLClient(apiHost || "", data.portalSessionToken));
19912
19970
  // We must invalidate the accountPaymentMethodKey query in order to clear payment methods from the provided api token,
19913
19971
  // to instead use paymentMethods from portalSessionToken.
19914
19972
  queryClient.invalidateQueries({
@@ -20131,73 +20189,6 @@ var getFeatureUsage = function (_a) {
20131
20189
  })];
20132
20190
  case 1:
20133
20191
  response = _c.sent();
20134
- // const test = {
20135
- // featureUsageHistogram: {
20136
- // subscriptionCharge: {
20137
- // id: "37",
20138
- // name: "Users",
20139
- // amount: 0,
20140
- // currentPeriodPriceByTiers: null,
20141
- // },
20142
- // feature: {
20143
- // id: "1",
20144
- // name: "User",
20145
- // },
20146
- // periodRange: "2023-07-20..2024-07-19",
20147
- // dataInterval: "MONTHLY",
20148
- // data: [
20149
- // {
20150
- // periodStart: "2024-01-01T00:00:00+00:00",
20151
- // periodEnd: "2024-03-31T00:00:00+00:00",
20152
- // intervals: [
20153
- // {
20154
- // intervalStart: "2024-01-01T00:00:00Z",
20155
- // intervalUsage: 1061,
20156
- // },
20157
- // {
20158
- // intervalStart: "2024-02-01T00:00:00Z",
20159
- // intervalUsage: 1107,
20160
- // },
20161
- // {
20162
- // intervalStart: "2024-03-01T00:00:00Z",
20163
- // intervalUsage: 1130,
20164
- // },
20165
- // ],
20166
- // intervalsTotal: 3298,
20167
- // },
20168
- // {
20169
- // periodStart: "2024-04-01T00:00:00+00:00",
20170
- // periodEnd: "2024-06-30T00:00:00+00:00",
20171
- // intervals: [
20172
- // {
20173
- // intervalStart: "2024-05-01T00:00:00Z",
20174
- // intervalUsage: 1068,
20175
- // },
20176
- // {
20177
- // intervalStart: "2024-04-01T00:00:00Z",
20178
- // intervalUsage: 794,
20179
- // },
20180
- // {
20181
- // intervalStart: "2024-06-01T00:00:00Z",
20182
- // intervalUsage: 871,
20183
- // },
20184
- // ],
20185
- // intervalsTotal: 2733,
20186
- // },
20187
- // {
20188
- // periodStart: "2024-07-01T00:00:00+00:00",
20189
- // periodEnd: "2024-09-30T00:00:00+00:00",
20190
- // intervals: [
20191
- // {
20192
- // intervalStart: "2024-07-01T00:00:00Z",
20193
- // intervalUsage: 950,
20194
- // },
20195
- // ],
20196
- // intervalsTotal: 950,
20197
- // },
20198
- // ],
20199
- // },
20200
- // };
20201
20192
  if ((_b = response.featureUsageHistogram) === null || _b === void 0 ? void 0 : _b.data)
20202
20193
  return [2 /*return*/, response.featureUsageHistogram];
20203
20194
  else
@@ -20638,34 +20629,29 @@ var billingDetailsUpdate = function (_a) {
20638
20629
  });
20639
20630
  };
20640
20631
 
20641
- var BillingDetails = function (_a) {
20642
- var entityId = _a.entityId, _b = _a.isCardEnabled, isCardEnabled = _b === void 0 ? true : _b, _c = _a.shadow, shadow = _c === void 0 ? "shadow-md" : _c, className = _a.className, hidePaymentMethodForm = _a.hidePaymentMethodForm, countryListFilter = _a.countryListFilter;
20643
- // Hooks
20644
- var _d = useContext(BunnyContext), apiHost = _d.apiHost, onTokenExpired = _d.onTokenExpired, graphQLClient = _d.graphQLClient;
20632
+ function BillingDetailsSection(_a) {
20633
+ var _this = this;
20634
+ var entityId = _a.entityId, hidePaymentMethodForm = _a.hidePaymentMethodForm, countryListFilter = _a.countryListFilter;
20635
+ // State
20636
+ var _b = useState(false), isFormEdited = _b[0], setIsFormEdited = _b[1];
20637
+ var _c = useState(false), formIsValid = _c[0], setFormIsValid = _c[1];
20638
+ var form = Form.useForm()[0];
20639
+ var values = Form.useWatch([], form);
20640
+ // Context
20641
+ var apiHost = useContext(BunnyContext).apiHost;
20645
20642
  var token = useToken();
20646
20643
  // Hooks
20647
20644
  var isMobile = useIsMobile();
20648
20645
  var queryClient = useQueryClient();
20649
- var showSuccessNotification = useSuccessNotification();
20650
20646
  var showErrorNotification = useErrorNotification();
20651
- var handleAllErrorFormats = useAllErrorFormats(onTokenExpired);
20652
- // State
20653
- var form = Form.useForm()[0];
20654
- var _e = useState(false), isFormEdited = _e[0], setIsFormEdited = _e[1];
20655
- var _f = useState(false), formIsValid = _f[0], setFormIsValid = _f[1];
20656
- useMemo(function () {
20657
- return countryListFilter
20658
- ? Lists.COUNTRY_LIST.filter(countryListFilter)
20659
- : Lists.COUNTRY_LIST;
20660
- }, [countryListFilter]);
20661
- var values = Form.useWatch([], form);
20647
+ var showSuccessNotification = useSuccessNotification();
20662
20648
  // Queries
20663
- var _g = useQuery({
20649
+ var _d = useQuery({
20664
20650
  queryKey: QueryKeyFactory.default.billingDetailsKey(entityId, token),
20665
20651
  queryFn: function () { return getBillingDetails({ token: token, apiHost: apiHost }); },
20666
- }), billingDetails = _g.data, isLoadingBillingDetails = _g.isLoading;
20667
- var _h = useMutation({
20668
- mutationFn: function (changedFormData) { return __awaiter(void 0, void 0, void 0, function () {
20652
+ }), billingDetails = _d.data, isLoadingBillingDetails = _d.isLoading;
20653
+ var _e = useMutation({
20654
+ mutationFn: function (changedFormData) { return __awaiter(_this, void 0, void 0, function () {
20669
20655
  var updatedBillingDetails;
20670
20656
  return __generator(this, function (_a) {
20671
20657
  switch (_a.label) {
@@ -20698,7 +20684,7 @@ var BillingDetails = function (_a) {
20698
20684
  queryKey: QueryKeyFactory.default.taxationRequiredAccountFieldsKey(entityId, token),
20699
20685
  });
20700
20686
  },
20701
- }), updateBillingDetails = _h.mutate, isUpdatingBillingDetails = _h.isPending;
20687
+ }), updateBillingDetails = _e.mutate, isUpdatingBillingDetails = _e.isPending;
20702
20688
  // Set form values when billing details are loaded
20703
20689
  useEffect(function () {
20704
20690
  var _a;
@@ -20715,7 +20701,6 @@ var BillingDetails = function (_a) {
20715
20701
  });
20716
20702
  }
20717
20703
  }, [billingDetails]);
20718
- // Validate form when values change
20719
20704
  useEffect(function () {
20720
20705
  form
20721
20706
  .validateFields({ validateOnly: true })
@@ -20742,13 +20727,11 @@ var BillingDetails = function (_a) {
20742
20727
  });
20743
20728
  };
20744
20729
  setIsFormEdited(isFormEdited());
20745
- }, [form, values]);
20746
- var onSuccess = useCallback(function () {
20747
- showSuccessNotification("Your payment method has been saved");
20748
- }, [queryClient]);
20749
- var saveBillingDetails = function () { return __awaiter(void 0, void 0, void 0, function () {
20730
+ }, [form, values, billingDetails]);
20731
+ var saveBillingDetails = function () { return __awaiter(_this, void 0, void 0, function () {
20732
+ var _this = this;
20750
20733
  return __generator(this, function (_a) {
20751
- form.validateFields({ validateOnly: false }).then(function () { return __awaiter(void 0, void 0, void 0, function () {
20734
+ form.validateFields({ validateOnly: false }).then(function () { return __awaiter(_this, void 0, void 0, function () {
20752
20735
  var error_1;
20753
20736
  return __generator(this, function (_a) {
20754
20737
  switch (_a.label) {
@@ -20778,37 +20761,57 @@ var BillingDetails = function (_a) {
20778
20761
  return [2 /*return*/];
20779
20762
  });
20780
20763
  }); };
20781
- return (jsx(WrapperComponent, __assign({ isCardEnabled: isCardEnabled, shadow: shadow, className: className }, { children: jsxs("div", __assign({ className: "flex p-2 my-2 ".concat(isMobile ? "flex-col space-y-4" : "flex-row", " gap-4") }, { children: [jsxs("div", __assign({ className: "".concat(isMobile || hidePaymentMethodForm ? "w-full" : "w-1/2", " px-4") }, { children: [jsx(Skeleton, __assign({ loading: isLoadingBillingDetails }, { children: jsxs(Form, __assign({ className: "flex flex-col gap-2", form: form, layout: "vertical", disabled: isUpdatingBillingDetails, autoComplete: "off" }, { children: [jsx(Form.Item, __assign({ label: "Account name", name: "name", rules: [
20782
- { required: true, message: "Account name is required" },
20783
- ] }, { children: jsx(Input, {}) })), jsx(Form.Item, __assign({ label: "Street address", name: "billingStreet", rules: [
20784
- { required: true, message: "Street address is required" },
20785
- ] }, { children: jsx(Input, {}) })), jsxs("div", __assign({ className: "flex gap-4" }, { children: [jsx(Form.Item, __assign({ label: "City", name: "billingCity", rules: [{ required: true, message: "City is required" }], className: "flex-1" }, { children: jsx(Input, {}) })), jsx(Form.Item, __assign({ label: "Zipcode", name: "billingZip", rules: [{ required: true, message: "Zipcode is required" }], className: "flex-1" }, { children: jsx(Input, {}) }))] })), jsxs("div", __assign({ className: "flex ".concat(isMobile ? "flex-col pb-2" : "flex-row", " gap-4") }, { children: [jsx(Form.Item, __assign({ label: "State", name: "billingState", className: "flex-1", rules: [
20786
- {
20787
- required: false,
20788
- },
20789
- ] }, { children: jsx(Input, {}) })), jsx(Form.Item, __assign({ label: "Country", name: "billingCountry", className: "flex-1", rules: [{ required: true, message: "Country is required" }] }, { children: jsx(Select, { options: Lists.COUNTRY_LIST, placeholder: "Select a country", showSearch: true, filterOption: function (input, option) {
20790
- var _a, _b;
20791
- return ((_a = option === null || option === void 0 ? void 0 : option.label) !== null && _a !== void 0 ? _a : "")
20792
- .toLowerCase()
20793
- .includes(input.toLowerCase()) ||
20794
- ((_b = option === null || option === void 0 ? void 0 : option.value) !== null && _b !== void 0 ? _b : "")
20795
- .toLowerCase()
20796
- .includes(input.toLowerCase());
20797
- } }) }))] })), jsx(Form.Item, __assign({ label: "Email", name: "billingContactEmail", rules: [
20798
- {
20799
- required: true,
20800
- message: "Email is required",
20801
- type: "email",
20802
- },
20803
- ] }, { children: jsx(Input, {}) })), jsx(Form.Item, __assign({ label: "Tax ID", name: "taxNumber", tooltip: "Tax ID will be printed on quotes and invoices below the account's address", rules: [{ required: false }] }, { children: jsx(Input, {}) }))] })) })), jsx(Button, __assign({ disabled: !isFormEdited || isUpdatingBillingDetails || !formIsValid, className: "w-full mt-4", type: "primary", onClick: saveBillingDetails }, { children: "Save" }))] })), isMobile ? (jsx("div", __assign({ className: "mx-4" }, { children: jsx(Divider, {}) }))) : (jsx("div", { children: jsx(Divider, { className: "h-full", type: "vertical" }) })), jsx("div", __assign({ className: "".concat(isMobile ? "w-full" : "w-1/2 pt-4", " flex justify-center") }, { children: jsx(PaymentForm, { entityId: entityId, onFail: function (error) {
20804
- handleAllErrorFormats(error);
20805
- }, onSavePaymentMethod: function () {
20806
- onSuccess();
20807
- }, graphQLClient: graphQLClient }) }))] })) })));
20764
+ var filteredCountryList = useMemo(function () {
20765
+ return countryListFilter
20766
+ ? Lists.COUNTRY_LIST.filter(countryListFilter)
20767
+ : Lists.COUNTRY_LIST;
20768
+ }, [countryListFilter]);
20769
+ return (jsxs("div", __assign({ className: "".concat(isMobile || hidePaymentMethodForm ? "w-full" : "w-1/2", " px-4") }, { children: [jsx(Skeleton, __assign({ loading: isLoadingBillingDetails }, { children: jsxs(Form, __assign({ className: "flex flex-col gap-2", form: form, layout: "vertical", disabled: isUpdatingBillingDetails, autoComplete: "off" }, { children: [jsx(Form.Item, __assign({ label: "Account name", name: "name", rules: [{ required: true, message: "Account name is required" }] }, { children: jsx(Input, {}) })), jsx(Form.Item, __assign({ label: "Street address", name: "billingStreet", rules: [{ required: true, message: "Street address is required" }] }, { children: jsx(Input, {}) })), jsxs("div", __assign({ className: "flex gap-4" }, { children: [jsx(Form.Item, __assign({ label: "City", name: "billingCity", rules: [{ required: true, message: "City is required" }], className: "flex-1" }, { children: jsx(Input, {}) })), jsx(Form.Item, __assign({ label: "Zipcode", name: "billingZip", rules: [{ required: true, message: "Zipcode is required" }], className: "flex-1" }, { children: jsx(Input, {}) }))] })), jsxs("div", __assign({ className: "flex ".concat(isMobile ? "flex-col pb-2" : "flex-row", " gap-4") }, { children: [jsx(Form.Item, __assign({ label: "State", name: "billingState", className: "flex-1", rules: [
20770
+ {
20771
+ required: false,
20772
+ },
20773
+ ] }, { children: jsx(Input, {}) })), jsx(Form.Item, __assign({ label: "Country", name: "billingCountry", className: "flex-1", rules: [{ required: true, message: "Country is required" }] }, { children: jsx(Select, { options: filteredCountryList, placeholder: "Select a country", showSearch: true, filterOption: function (input, option) {
20774
+ var _a, _b;
20775
+ return ((_a = option === null || option === void 0 ? void 0 : option.label) !== null && _a !== void 0 ? _a : "")
20776
+ .toLowerCase()
20777
+ .includes(input.toLowerCase()) ||
20778
+ ((_b = option === null || option === void 0 ? void 0 : option.value) !== null && _b !== void 0 ? _b : "")
20779
+ .toLowerCase()
20780
+ .includes(input.toLowerCase());
20781
+ } }) }))] })), jsx(Form.Item, __assign({ label: "Email", name: "billingContactEmail", rules: [
20782
+ {
20783
+ required: true,
20784
+ message: "Email is required",
20785
+ type: "email",
20786
+ },
20787
+ ] }, { children: jsx(Input, {}) })), jsx(Form.Item, __assign({ label: "Tax ID", name: "taxNumber", tooltip: "Tax ID will be printed on quotes and invoices below the account's address", rules: [{ required: false }] }, { children: jsx(Input, {}) }))] })) })), jsx(Button, __assign({ disabled: !isFormEdited || isUpdatingBillingDetails || !formIsValid, className: "w-full mt-4", type: "primary", onClick: saveBillingDetails }, { children: "Save" }))] })));
20788
+ }
20789
+
20790
+ var BillingDetails = function (_a) {
20791
+ var entityId = _a.entityId, _b = _a.isCardEnabled, isCardEnabled = _b === void 0 ? true : _b, _c = _a.shadow, shadow = _c === void 0 ? "shadow-md" : _c, className = _a.className, _d = _a.hidePaymentMethodForm, hidePaymentMethodForm = _d === void 0 ? false : _d, _e = _a.hideBillingDetailsForm, hideBillingDetailsForm = _e === void 0 ? false : _e, countryListFilter = _a.countryListFilter;
20792
+ // Hooks
20793
+ var isMobile = useIsMobile();
20794
+ return (jsx(WrapperComponent, __assign({ isCardEnabled: isCardEnabled, shadow: shadow, className: className }, { children: jsxs("div", __assign({ className: "flex p-2 my-2 ".concat(isMobile ? "flex-col space-y-4" : "flex-row", " gap-4") }, { children: [!hideBillingDetailsForm ? (jsx(BillingDetailsSection, { hidePaymentMethodForm: hidePaymentMethodForm, countryListFilter: countryListFilter, entityId: entityId })) : null, !hideBillingDetailsForm && !hidePaymentMethodForm ? (jsx(ResponsiveDivider, {})) : null, !hidePaymentMethodForm ? (jsx(PaymentFormSection, { entityId: entityId, hideBillingDetailsForm: hideBillingDetailsForm })) : null] })) })));
20808
20795
  };
20809
20796
  var WrapperComponent = function (_a) {
20810
20797
  var children = _a.children, isCardEnabled = _a.isCardEnabled, shadow = _a.shadow, className = _a.className;
20811
20798
  return (jsx("div", __assign({ className: "".concat(className) }, { children: isCardEnabled ? (jsx(Card, __assign({ className: "".concat(shadow) }, { children: children }))) : (jsx("div", { children: children })) })));
20812
20799
  };
20800
+ var ResponsiveDivider = function () {
20801
+ var isMobile = useIsMobile();
20802
+ return isMobile ? (jsx("div", __assign({ className: "mx-4" }, { children: jsx(Divider, {}) }))) : (jsx("div", { children: jsx(Divider, { className: "h-full", type: "vertical" }) }));
20803
+ };
20804
+ var PaymentFormSection = function (_a) {
20805
+ var entityId = _a.entityId, hideBillingDetailsForm = _a.hideBillingDetailsForm;
20806
+ var isMobile = useIsMobile();
20807
+ var _b = useContext(BunnyContext), onTokenExpired = _b.onTokenExpired, graphQLClient = _b.graphQLClient;
20808
+ var handleAllErrorFormats = useAllErrorFormats(onTokenExpired);
20809
+ var showSuccessNotification = useSuccessNotification();
20810
+ return (jsx("div", __assign({ className: "".concat(isMobile || hideBillingDetailsForm ? "w-full" : "w-1/2 pt-4", " flex justify-center") }, { children: jsx(PaymentForm, { entityId: entityId, onFail: function (error) {
20811
+ handleAllErrorFormats(error);
20812
+ }, onSavePaymentMethod: function () {
20813
+ showSuccessNotification("Your payment method has been saved");
20814
+ }, graphQLClient: graphQLClient }) })));
20815
+ };
20813
20816
 
20814
- export { BillingDetails, BunnyProvider, Checkout, Invoice, PaymentMethod, Quote, Quotes, Signup, Subscriptions, Transactions, getQuoteAmountDue, usePaymentMethod };
20817
+ export { BillingDetails, BunnyProvider, Checkout, Invoice, PaymentForm, PaymentMethod, Quote, Quotes, Signup, Subscriptions, Transactions, getQuoteAmountDue, usePaymentMethod };