tf-checkout-react 1.7.30 → 2.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (453) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +141 -1033
  3. package/dist/checkout.css +17 -0
  4. package/dist/index.d.mts +3930 -0
  5. package/dist/index.d.ts +3930 -30
  6. package/dist/index.esm.js +9123 -0
  7. package/dist/index.esm.js.map +1 -0
  8. package/dist/index.js +9277 -6
  9. package/dist/index.js.map +1 -0
  10. package/dist/styles/addons.css +75 -0
  11. package/dist/styles/auth.css +294 -0
  12. package/dist/styles/billing.css +98 -0
  13. package/dist/styles/confirmation.css +51 -0
  14. package/dist/styles/foundation.css +146 -0
  15. package/dist/styles/payment.css +179 -0
  16. package/dist/styles/primitives.css +356 -0
  17. package/dist/styles/seat-map.css +46 -0
  18. package/dist/styles/tickets.css +285 -0
  19. package/dist/styles/verification-confirmation.css +258 -0
  20. package/package.json +93 -78
  21. package/src/.d.ts +1 -1
  22. package/src/CardInput.tsx +374 -0
  23. package/src/EmbeddedCheckout.tsx +400 -0
  24. package/src/ResumedCheckout.tsx +132 -0
  25. package/src/auth/AuthModal.tsx +231 -0
  26. package/src/auth/ForgotPasswordForm.tsx +93 -0
  27. package/src/auth/LoginForm.tsx +104 -0
  28. package/src/auth/PasswordInput.tsx +33 -0
  29. package/src/auth/RegisterForm.tsx +333 -0
  30. package/src/auth/ResetPasswordForm.tsx +112 -0
  31. package/src/auth/index.ts +5 -0
  32. package/src/checkout.css +17 -0
  33. package/src/configure.ts +29 -0
  34. package/src/confirmer.ts +439 -0
  35. package/src/index.ts +41 -30
  36. package/src/instance.ts +21 -0
  37. package/src/sections/AddOns.tsx +241 -0
  38. package/src/sections/BillingInfo.tsx +743 -0
  39. package/src/sections/Confirmation.tsx +146 -0
  40. package/src/sections/IDVerification.tsx +76 -0
  41. package/src/sections/OrderConfirmation.tsx +277 -0
  42. package/src/sections/OrderIDVerification.tsx +117 -0
  43. package/src/sections/OrderSummary.tsx +84 -0
  44. package/src/sections/Payment.tsx +541 -0
  45. package/src/sections/SeatMap.tsx +512 -0
  46. package/src/sections/Tickets.tsx +573 -0
  47. package/src/sections/billing/BillingAddressFields.tsx +138 -0
  48. package/src/sections/billing/BuyerField.tsx +75 -0
  49. package/src/sections/billing/TicketHoldersCard.tsx +119 -0
  50. package/src/sections/billing/types.ts +10 -0
  51. package/src/sections/index.ts +15 -0
  52. package/src/sections/seatMap.utils.ts +105 -0
  53. package/src/styles/addons.css +75 -0
  54. package/src/styles/auth.css +294 -0
  55. package/src/styles/billing.css +98 -0
  56. package/src/styles/confirmation.css +51 -0
  57. package/src/styles/foundation.css +146 -0
  58. package/src/styles/payment.css +179 -0
  59. package/src/styles/primitives.css +356 -0
  60. package/src/styles/seat-map.css +46 -0
  61. package/src/styles/tickets.css +285 -0
  62. package/src/styles/verification-confirmation.css +258 -0
  63. package/src/typings.d.ts +2 -2
  64. package/src/ui/Button.tsx +38 -0
  65. package/src/ui/Card.tsx +54 -0
  66. package/src/ui/CheckoutProvider.tsx +172 -0
  67. package/src/ui/CustomFields.tsx +195 -0
  68. package/src/ui/Field.tsx +114 -0
  69. package/src/ui/I18nProvider.tsx +36 -0
  70. package/src/ui/InstallmentPicker.tsx +69 -0
  71. package/src/ui/Loader.tsx +12 -0
  72. package/src/ui/PaymentMethods.tsx +133 -0
  73. package/src/ui/PriceLine.tsx +24 -0
  74. package/src/ui/QuantitySelect.tsx +50 -0
  75. package/src/ui/Stepper.tsx +36 -0
  76. package/src/ui/Timer.tsx +34 -0
  77. package/src/ui/TimerBanner.tsx +55 -0
  78. package/src/ui/cx.ts +3 -0
  79. package/src/ui/index.ts +54 -0
  80. package/src/ui/theme.ts +83 -0
  81. package/src/useCheckout.ts +35 -0
  82. package/src/xendit.ts +438 -0
  83. package/dist/adapters/customFields.d.ts +0 -12
  84. package/dist/adapters/index.d.ts +0 -1
  85. package/dist/api/auth.d.ts +0 -27
  86. package/dist/api/cart.d.ts +0 -2
  87. package/dist/api/checkout.d.ts +0 -3
  88. package/dist/api/common.d.ts +0 -11
  89. package/dist/api/guestTicketDelegation.d.ts +0 -47
  90. package/dist/api/index.d.ts +0 -82
  91. package/dist/api/interceptors.d.ts +0 -1
  92. package/dist/api/orders.d.ts +0 -2
  93. package/dist/api/payment.d.ts +0 -5
  94. package/dist/api/preRegistrationComplete.d.ts +0 -3
  95. package/dist/api/publicRequest.d.ts +0 -9
  96. package/dist/api/resale.d.ts +0 -5
  97. package/dist/components/account-settings/index.d.ts +0 -3
  98. package/dist/components/addonsContainer/AddonComponent.d.ts +0 -18
  99. package/dist/components/addonsContainer/SimpleAddonsContainer.d.ts +0 -20
  100. package/dist/components/addonsContainer/adapters/index.d.ts +0 -12
  101. package/dist/components/addonsContainer/index.d.ts +0 -22
  102. package/dist/components/addonsContainer/normalizers/index.d.ts +0 -1
  103. package/dist/components/addonsContainer/useAddons.d.ts +0 -23
  104. package/dist/components/addonsContainer/utils/index.d.ts +0 -16
  105. package/dist/components/billing-info-container/hooks/index.d.ts +0 -3
  106. package/dist/components/billing-info-container/hooks/usePaymentContext.d.ts +0 -5
  107. package/dist/components/billing-info-container/hooks/usePaymentRedirect.d.ts +0 -14
  108. package/dist/components/billing-info-container/hooks/useStripePayment.d.ts +0 -18
  109. package/dist/components/billing-info-container/index.d.ts +0 -69
  110. package/dist/components/billing-info-container/utils.d.ts +0 -59
  111. package/dist/components/common/Checkbox.d.ts +0 -11
  112. package/dist/components/common/CheckboxField/index.d.ts +0 -9
  113. package/dist/components/common/CopyField.d.ts +0 -12
  114. package/dist/components/common/CopyMessageModal.d.ts +0 -7
  115. package/dist/components/common/CustomField.d.ts +0 -26
  116. package/dist/components/common/DatePickerField.d.ts +0 -20
  117. package/dist/components/common/FieldSection/index.d.ts +0 -19
  118. package/dist/components/common/FieldSection/utils/index.d.ts +0 -8
  119. package/dist/components/common/FormikPhoneNumberField.d.ts +0 -11
  120. package/dist/components/common/Loader.d.ts +0 -2
  121. package/dist/components/common/ModalComponent/index.d.ts +0 -16
  122. package/dist/components/common/NativeSelectFeild/index.d.ts +0 -21
  123. package/dist/components/common/PhoneNumberField.d.ts +0 -14
  124. package/dist/components/common/PoweredBy.d.ts +0 -2
  125. package/dist/components/common/RadioField.d.ts +0 -11
  126. package/dist/components/common/RadioGroupField/index.d.ts +0 -17
  127. package/dist/components/common/RedirectModal.d.ts +0 -7
  128. package/dist/components/common/SelectField/index.d.ts +0 -19
  129. package/dist/components/common/SnackbarAlert.d.ts +0 -13
  130. package/dist/components/common/index.d.ts +0 -11
  131. package/dist/components/common/socials.d.ts +0 -10
  132. package/dist/components/confirmModal/index.d.ts +0 -10
  133. package/dist/components/confirmationContainer/config.d.ts +0 -1
  134. package/dist/components/confirmationContainer/index.d.ts +0 -46
  135. package/dist/components/confirmationContainer/social-buttons.d.ts +0 -16
  136. package/dist/components/countdown/index.d.ts +0 -14
  137. package/dist/components/delegationsContainer/IssueComponent.d.ts +0 -10
  138. package/dist/components/delegationsContainer/IssueTicketForm.d.ts +0 -9
  139. package/dist/components/delegationsContainer/TicketsAssignedTable.d.ts +0 -11
  140. package/dist/components/delegationsContainer/TicketsAvailableTable.d.ts +0 -11
  141. package/dist/components/delegationsContainer/index.d.ts +0 -10
  142. package/dist/components/forgotPasswordModal/index.d.ts +0 -12
  143. package/dist/components/idVerificationContainer/VerificationPendingModal.d.ts +0 -10
  144. package/dist/components/idVerificationContainer/constants.d.ts +0 -21
  145. package/dist/components/idVerificationContainer/index.d.ts +0 -16
  146. package/dist/components/index.d.ts +0 -12
  147. package/dist/components/loginForm/index.d.ts +0 -31
  148. package/dist/components/loginModal/SignUpForm.d.ts +0 -10
  149. package/dist/components/loginModal/constants.d.ts +0 -39
  150. package/dist/components/loginModal/index.d.ts +0 -22
  151. package/dist/components/myTicketsContainer/index.d.ts +0 -16
  152. package/dist/components/myTicketsContainer/row.d.ts +0 -3
  153. package/dist/components/myTicketsContainer/tableConfig.d.ts +0 -5
  154. package/dist/components/orderDetailsContainer/CustomFieldsForm.d.ts +0 -12
  155. package/dist/components/orderDetailsContainer/TicketHolderCustomFields.d.ts +0 -10
  156. package/dist/components/orderDetailsContainer/index.d.ts +0 -66
  157. package/dist/components/orderDetailsContainer/ticketsTable.d.ts +0 -46
  158. package/dist/components/orderDetailsContainer/utils/index.d.ts +0 -6
  159. package/dist/components/paymentContainer/OrderDetails.d.ts +0 -9
  160. package/dist/components/paymentContainer/PaymentPlanSection.d.ts +0 -10
  161. package/dist/components/paymentContainer/handlePayment.d.ts +0 -15
  162. package/dist/components/paymentContainer/index.d.ts +0 -39
  163. package/dist/components/preRegistration/FieldsSection.d.ts +0 -19
  164. package/dist/components/preRegistration/Influancers.d.ts +0 -2
  165. package/dist/components/preRegistration/PreRegistrationComplete.d.ts +0 -13
  166. package/dist/components/preRegistration/PreRegistrationInformations.d.ts +0 -2
  167. package/dist/components/preRegistration/Prewards.d.ts +0 -2
  168. package/dist/components/preRegistration/ShareOptions.d.ts +0 -2
  169. package/dist/components/preRegistration/constants.d.ts +0 -2
  170. package/dist/components/preRegistration/index.d.ts +0 -23
  171. package/dist/components/preRegistration/utils.d.ts +0 -12
  172. package/dist/components/registerForm/adapters/index.d.ts +0 -4
  173. package/dist/components/registerForm/constants.d.ts +0 -1
  174. package/dist/components/registerForm/index.d.ts +0 -16
  175. package/dist/components/registerModal/index.d.ts +0 -12
  176. package/dist/components/resetPasswordContainer/index.d.ts +0 -10
  177. package/dist/components/rsvpContainer/index.d.ts +0 -7
  178. package/dist/components/seatMapContainer/SeatMapComponent.d.ts +0 -8
  179. package/dist/components/seatMapContainer/TicketsSection.d.ts +0 -9
  180. package/dist/components/seatMapContainer/addToCart.d.ts +0 -14
  181. package/dist/components/seatMapContainer/index.d.ts +0 -2
  182. package/dist/components/seatMapContainer/utils.d.ts +0 -6
  183. package/dist/components/signupModal/index.d.ts +0 -12
  184. package/dist/components/ticketResale/index.d.ts +0 -12
  185. package/dist/components/ticketResaleModal/index.d.ts +0 -19
  186. package/dist/components/ticketsContainer/AccessCodeSection.d.ts +0 -7
  187. package/dist/components/ticketsContainer/InfoIcon.d.ts +0 -5
  188. package/dist/components/ticketsContainer/PromoCodeSection.d.ts +0 -15
  189. package/dist/components/ticketsContainer/ReferralLogic.d.ts +0 -5
  190. package/dist/components/ticketsContainer/TicketRow.d.ts +0 -13
  191. package/dist/components/ticketsContainer/TicketsSection.d.ts +0 -20
  192. package/dist/components/ticketsContainer/TimeSlotTicketRow.d.ts +0 -19
  193. package/dist/components/ticketsContainer/TimeSlotsSection.d.ts +0 -25
  194. package/dist/components/ticketsContainer/index.d.ts +0 -93
  195. package/dist/components/ticketsContainer/utils.d.ts +0 -13
  196. package/dist/components/timerWidget/index.d.ts +0 -16
  197. package/dist/components/waitingList/index.d.ts +0 -9
  198. package/dist/constants/index.d.ts +0 -7
  199. package/dist/env.d.ts +0 -16
  200. package/dist/hoc/CustomFields/index.d.ts +0 -3
  201. package/dist/hoc/index.d.ts +0 -1
  202. package/dist/hooks/index.d.ts +0 -1
  203. package/dist/hooks/useCookieListener.d.ts +0 -1
  204. package/dist/hooks/useEventListener.d.ts +0 -1
  205. package/dist/hooks/useLocalStorageListener.d.ts +0 -1
  206. package/dist/hooks/useOnline.d.ts +0 -1
  207. package/dist/hooks/usePixel.d.ts +0 -6
  208. package/dist/images/Polygon.png +0 -0
  209. package/dist/images/cross.svg +0 -44
  210. package/dist/images/done.svg +0 -3
  211. package/dist/images/edit.svg +0 -10
  212. package/dist/images/email.svg +0 -1
  213. package/dist/images/instagram.svg +0 -5
  214. package/dist/images/logo-ttf.png +0 -0
  215. package/dist/images/spotify.svg +0 -6
  216. package/dist/images/user.svg +0 -1
  217. package/dist/images/xmark.svg +0 -92
  218. package/dist/normalizers/index.d.ts +0 -4
  219. package/dist/tf-checkout-react.cjs.development.js +0 -16149
  220. package/dist/tf-checkout-react.cjs.development.js.map +0 -1
  221. package/dist/tf-checkout-react.cjs.production.min.js +0 -2
  222. package/dist/tf-checkout-react.cjs.production.min.js.map +0 -1
  223. package/dist/tf-checkout-react.esm.js +0 -16116
  224. package/dist/tf-checkout-react.esm.js.map +0 -1
  225. package/dist/tf-checkout-styles.css +0 -1
  226. package/dist/types/add_on.d.ts +0 -8
  227. package/dist/types/billing-info-data.d.ts +0 -27
  228. package/dist/types/checkoutPageConfigs.d.ts +0 -13
  229. package/dist/types/index.d.ts +0 -6
  230. package/dist/types/order-data.d.ts +0 -15
  231. package/dist/types/payment-field.d.ts +0 -6
  232. package/dist/types/payment-plan-configuration.d.ts +0 -18
  233. package/dist/types/referral-promotion.d.ts +0 -6
  234. package/dist/types/verification.d.ts +0 -12
  235. package/dist/utils/adaptStripeErrors.d.ts +0 -8
  236. package/dist/utils/auth.d.ts +0 -21
  237. package/dist/utils/cookies.d.ts +0 -3
  238. package/dist/utils/createCheckoutDataBodyWithDefaultHolder.d.ts +0 -23
  239. package/dist/utils/createMarkup.d.ts +0 -3
  240. package/dist/utils/customFields.d.ts +0 -35
  241. package/dist/utils/downloadPDF.d.ts +0 -1
  242. package/dist/utils/form.d.ts +0 -3
  243. package/dist/utils/formikErrorFocus.d.ts +0 -2
  244. package/dist/utils/getDomain.d.ts +0 -1
  245. package/dist/utils/getImage.d.ts +0 -1
  246. package/dist/utils/getQueryVariable.d.ts +0 -1
  247. package/dist/utils/htmlNodeFromString.d.ts +0 -1
  248. package/dist/utils/index.d.ts +0 -15
  249. package/dist/utils/isBrowser.d.ts +0 -1
  250. package/dist/utils/isValidNumber.d.ts +0 -1
  251. package/dist/utils/jsonUtils.d.ts +0 -1
  252. package/dist/utils/replaceVarInString.d.ts +0 -1
  253. package/dist/utils/setConfigs.d.ts +0 -11
  254. package/dist/utils/showZero.d.ts +0 -1
  255. package/dist/validators/index.d.ts +0 -8
  256. package/src/adapters/customFields.ts +0 -85
  257. package/src/adapters/index.ts +0 -1
  258. package/src/api/auth.ts +0 -88
  259. package/src/api/cart.ts +0 -28
  260. package/src/api/checkout.ts +0 -28
  261. package/src/api/common.ts +0 -190
  262. package/src/api/guestTicketDelegation.ts +0 -79
  263. package/src/api/index.ts +0 -346
  264. package/src/api/interceptors.ts +0 -77
  265. package/src/api/orders.ts +0 -30
  266. package/src/api/payment.ts +0 -77
  267. package/src/api/preRegistrationComplete.ts +0 -37
  268. package/src/api/publicRequest.ts +0 -47
  269. package/src/api/resale.ts +0 -28
  270. package/src/assets/images/Polygon.png +0 -0
  271. package/src/assets/images/cross.svg +0 -44
  272. package/src/assets/images/done.svg +0 -3
  273. package/src/assets/images/edit.svg +0 -10
  274. package/src/assets/images/email.svg +0 -1
  275. package/src/assets/images/instagram.svg +0 -5
  276. package/src/assets/images/logo-ttf.png +0 -0
  277. package/src/assets/images/spotify.svg +0 -6
  278. package/src/assets/images/user.svg +0 -1
  279. package/src/assets/images/xmark.svg +0 -92
  280. package/src/components/account-settings/index.tsx +0 -161
  281. package/src/components/account-settings/style.css +0 -200
  282. package/src/components/addonsContainer/AddonComponent.tsx +0 -204
  283. package/src/components/addonsContainer/SimpleAddonsContainer.tsx +0 -459
  284. package/src/components/addonsContainer/adapters/index.tsx +0 -62
  285. package/src/components/addonsContainer/index.tsx +0 -353
  286. package/src/components/addonsContainer/normalizers/index.ts +0 -5
  287. package/src/components/addonsContainer/useAddons.ts +0 -248
  288. package/src/components/addonsContainer/utils/index.tsx +0 -231
  289. package/src/components/billing-info-container/hooks/index.ts +0 -3
  290. package/src/components/billing-info-container/hooks/usePaymentContext.ts +0 -22
  291. package/src/components/billing-info-container/hooks/usePaymentRedirect.ts +0 -145
  292. package/src/components/billing-info-container/hooks/useStripePayment.ts +0 -119
  293. package/src/components/billing-info-container/index.tsx +0 -1695
  294. package/src/components/billing-info-container/style.css +0 -150
  295. package/src/components/billing-info-container/utils.tsx +0 -413
  296. package/src/components/common/Checkbox.tsx +0 -51
  297. package/src/components/common/CheckboxField/index.tsx +0 -41
  298. package/src/components/common/CopyField.tsx +0 -53
  299. package/src/components/common/CopyMessageModal.tsx +0 -34
  300. package/src/components/common/CustomField.tsx +0 -168
  301. package/src/components/common/DatePickerField.tsx +0 -126
  302. package/src/components/common/FieldSection/index.tsx +0 -141
  303. package/src/components/common/FieldSection/utils/index.tsx +0 -92
  304. package/src/components/common/FormikPhoneNumberField.tsx +0 -51
  305. package/src/components/common/Loader.tsx +0 -8
  306. package/src/components/common/ModalComponent/index.tsx +0 -68
  307. package/src/components/common/NativeSelectFeild/index.tsx +0 -86
  308. package/src/components/common/PhoneNumberField.tsx +0 -117
  309. package/src/components/common/PoweredBy.tsx +0 -15
  310. package/src/components/common/RadioField.tsx +0 -36
  311. package/src/components/common/RadioGroupField/index.tsx +0 -76
  312. package/src/components/common/RedirectModal.tsx +0 -43
  313. package/src/components/common/SelectField/index.tsx +0 -104
  314. package/src/components/common/SnackbarAlert.tsx +0 -52
  315. package/src/components/common/index.tsx +0 -11
  316. package/src/components/common/socials.tsx +0 -33
  317. package/src/components/confirmModal/index.tsx +0 -60
  318. package/src/components/confirmationContainer/config.ts +0 -79
  319. package/src/components/confirmationContainer/index.tsx +0 -349
  320. package/src/components/confirmationContainer/social-buttons.tsx +0 -149
  321. package/src/components/confirmationContainer/style.css +0 -206
  322. package/src/components/countdown/index.tsx +0 -100
  323. package/src/components/countdown/style.css +0 -10
  324. package/src/components/delegationsContainer/IssueComponent.tsx +0 -156
  325. package/src/components/delegationsContainer/IssueTicketForm.tsx +0 -109
  326. package/src/components/delegationsContainer/TicketsAssignedTable.tsx +0 -55
  327. package/src/components/delegationsContainer/TicketsAvailableTable.tsx +0 -54
  328. package/src/components/delegationsContainer/index.tsx +0 -83
  329. package/src/components/forgotPasswordModal/index.tsx +0 -138
  330. package/src/components/forgotPasswordModal/style.css +0 -47
  331. package/src/components/idVerificationContainer/VerificationPendingModal.tsx +0 -47
  332. package/src/components/idVerificationContainer/constants.ts +0 -27
  333. package/src/components/idVerificationContainer/index.tsx +0 -323
  334. package/src/components/index.ts +0 -12
  335. package/src/components/loginForm/index.tsx +0 -202
  336. package/src/components/loginModal/SignUpForm.tsx +0 -329
  337. package/src/components/loginModal/constants.ts +0 -46
  338. package/src/components/loginModal/index.tsx +0 -263
  339. package/src/components/loginModal/style.css +0 -116
  340. package/src/components/myTicketsContainer/index.tsx +0 -228
  341. package/src/components/myTicketsContainer/row.tsx +0 -46
  342. package/src/components/myTicketsContainer/style.css +0 -40
  343. package/src/components/myTicketsContainer/tableConfig.tsx +0 -80
  344. package/src/components/myTicketsContainer/types.d.ts +0 -41
  345. package/src/components/orderDetailsContainer/CustomFieldsForm.tsx +0 -75
  346. package/src/components/orderDetailsContainer/TicketHolderCustomFields.tsx +0 -100
  347. package/src/components/orderDetailsContainer/index.tsx +0 -586
  348. package/src/components/orderDetailsContainer/style.css +0 -77
  349. package/src/components/orderDetailsContainer/ticketsTable.tsx +0 -246
  350. package/src/components/orderDetailsContainer/utils/index.tsx +0 -55
  351. package/src/components/paymentContainer/OrderDetails.tsx +0 -277
  352. package/src/components/paymentContainer/PaymentPlanSection.tsx +0 -169
  353. package/src/components/paymentContainer/handlePayment.ts +0 -86
  354. package/src/components/paymentContainer/index.tsx +0 -643
  355. package/src/components/paymentContainer/style.css +0 -196
  356. package/src/components/preRegistration/FieldsSection.tsx +0 -150
  357. package/src/components/preRegistration/Influancers.tsx +0 -34
  358. package/src/components/preRegistration/PreRegistrationComplete.tsx +0 -186
  359. package/src/components/preRegistration/PreRegistrationInformations.tsx +0 -60
  360. package/src/components/preRegistration/Prewards.tsx +0 -41
  361. package/src/components/preRegistration/ShareOptions.tsx +0 -77
  362. package/src/components/preRegistration/constants.tsx +0 -169
  363. package/src/components/preRegistration/index.tsx +0 -330
  364. package/src/components/preRegistration/style.css +0 -3
  365. package/src/components/preRegistration/utils.ts +0 -163
  366. package/src/components/registerForm/adapters/index.tsx +0 -10
  367. package/src/components/registerForm/constants.tsx +0 -98
  368. package/src/components/registerForm/index.tsx +0 -188
  369. package/src/components/registerModal/index.tsx +0 -154
  370. package/src/components/registerModal/style.css +0 -18
  371. package/src/components/resetPasswordContainer/index.tsx +0 -102
  372. package/src/components/resetPasswordContainer/style.css +0 -36
  373. package/src/components/rsvpContainer/index.tsx +0 -126
  374. package/src/components/seatMapContainer/SeatMapComponent.tsx +0 -77
  375. package/src/components/seatMapContainer/TicketsSection.tsx +0 -286
  376. package/src/components/seatMapContainer/addToCart.ts +0 -66
  377. package/src/components/seatMapContainer/index.tsx +0 -443
  378. package/src/components/seatMapContainer/utils.ts +0 -133
  379. package/src/components/signupModal/index.tsx +0 -178
  380. package/src/components/signupModal/style.css +0 -58
  381. package/src/components/ticketResale/index.tsx +0 -86
  382. package/src/components/ticketResaleModal/index.tsx +0 -224
  383. package/src/components/ticketResaleModal/style.css +0 -28
  384. package/src/components/ticketsContainer/AccessCodeSection.tsx +0 -50
  385. package/src/components/ticketsContainer/InfoIcon.tsx +0 -35
  386. package/src/components/ticketsContainer/PromoCodeSection.tsx +0 -116
  387. package/src/components/ticketsContainer/ReferralLogic.tsx +0 -33
  388. package/src/components/ticketsContainer/TicketRow.tsx +0 -107
  389. package/src/components/ticketsContainer/TicketsSection.tsx +0 -350
  390. package/src/components/ticketsContainer/TimeSlotTicketRow.tsx +0 -243
  391. package/src/components/ticketsContainer/TimeSlotsSection.tsx +0 -194
  392. package/src/components/ticketsContainer/index.tsx +0 -986
  393. package/src/components/ticketsContainer/style.css +0 -178
  394. package/src/components/ticketsContainer/utils.ts +0 -35
  395. package/src/components/timerWidget/index.tsx +0 -97
  396. package/src/components/timerWidget/style.css +0 -35
  397. package/src/components/waitingList/index.tsx +0 -190
  398. package/src/components/waitingList/style.css +0 -27
  399. package/src/constants/index.ts +0 -3
  400. package/src/env.ts +0 -29
  401. package/src/hoc/CustomFields/index.tsx +0 -85
  402. package/src/hoc/index.ts +0 -1
  403. package/src/hooks/index.ts +0 -1
  404. package/src/hooks/useCookieListener.ts +0 -32
  405. package/src/hooks/useEventListener.ts +0 -32
  406. package/src/hooks/useLocalStorageListener.ts +0 -32
  407. package/src/hooks/useOnline.ts +0 -21
  408. package/src/hooks/usePixel.ts +0 -88
  409. package/src/normalizers/index.ts +0 -49
  410. package/src/types/add_on.ts +0 -8
  411. package/src/types/api/auth.d.ts +0 -63
  412. package/src/types/api/axiosResponse.d.ts +0 -6
  413. package/src/types/api/cart.d.ts +0 -73
  414. package/src/types/api/checkout.d.ts +0 -92
  415. package/src/types/api/common.d.ts +0 -153
  416. package/src/types/api/guestTicketDelegation.d.ts +0 -18
  417. package/src/types/api/orders.d.ts +0 -116
  418. package/src/types/api/payment.d.ts +0 -180
  419. package/src/types/api/preRegistration.d.ts +0 -11
  420. package/src/types/api/preRegistrationComplete.d.ts +0 -95
  421. package/src/types/api/ticketResale.d.ts +0 -13
  422. package/src/types/billing-info-data.ts +0 -37
  423. package/src/types/checkoutPageConfigs.ts +0 -13
  424. package/src/types/formFields.d.ts +0 -29
  425. package/src/types/index.ts +0 -6
  426. package/src/types/order-data.ts +0 -16
  427. package/src/types/payment-field.ts +0 -7
  428. package/src/types/payment-plan-configuration.ts +0 -19
  429. package/src/types/pre-registration-complete.d.ts +0 -47
  430. package/src/types/referral-promotion.ts +0 -7
  431. package/src/types/seatMap.d.ts +0 -159
  432. package/src/types/verification.ts +0 -12
  433. package/src/utils/adaptStripeErrors.ts +0 -26
  434. package/src/utils/auth.ts +0 -45
  435. package/src/utils/cookies.ts +0 -73
  436. package/src/utils/createCheckoutDataBodyWithDefaultHolder.ts +0 -81
  437. package/src/utils/createMarkup.ts +0 -1
  438. package/src/utils/customFields.ts +0 -80
  439. package/src/utils/downloadPDF.tsx +0 -42
  440. package/src/utils/form.ts +0 -34
  441. package/src/utils/formikErrorFocus.ts +0 -24
  442. package/src/utils/getDomain.ts +0 -21
  443. package/src/utils/getImage.ts +0 -14
  444. package/src/utils/getQueryVariable.ts +0 -13
  445. package/src/utils/htmlNodeFromString.ts +0 -6
  446. package/src/utils/index.ts +0 -15
  447. package/src/utils/isBrowser.ts +0 -2
  448. package/src/utils/isValidNumber.ts +0 -8
  449. package/src/utils/jsonUtils.ts +0 -8
  450. package/src/utils/replaceVarInString.ts +0 -9
  451. package/src/utils/setConfigs.ts +0 -24
  452. package/src/utils/showZero.tsx +0 -10
  453. package/src/validators/index.ts +0 -61
@@ -0,0 +1,133 @@
1
+ /**
2
+ * `<PaymentMethods>` — a controlled radio-list of payment methods (icon + label
3
+ * per row), matching the hosted checkout's iconed selector. Presentational only:
4
+ * it renders the choices + the selected row's extra input (and hosts a card
5
+ * field in the card row via `children`/`inputSlotFor`). It does NOT own the Pay
6
+ * button or `placeOrder` — `<Payment/>` builds the options and maps a selection
7
+ * back to a `placeOrder` request.
8
+ */
9
+ import React, { type FC, type ReactNode } from 'react'
10
+
11
+ import { cx } from './cx'
12
+ import { Field, Input } from './Field'
13
+
14
+ // The method descriptor + row shape live in the SDK so both platforms render
15
+ // the SAME option list. Imported for local use and re-exported for consumers
16
+ // that already import them from here.
17
+ import type {
18
+ PaymentMethodId,
19
+ PaymentMethodOption,
20
+ } from 'tf-checkout-shared'
21
+
22
+ export type { PaymentMethodId, PaymentMethodOption }
23
+
24
+ export interface PaymentMethodsProps {
25
+ options: PaymentMethodOption[]
26
+ /** Selected `option.value` (controlled). */
27
+ selected: string
28
+ onSelect: (value: string) => void
29
+ /** Extra-field values keyed by `option.value`. */
30
+ extraValues: Record<string, { cashtag?: string; phoneNumber?: string }>
31
+ onExtraChange: (
32
+ value: string,
33
+ patch: { cashtag?: string; phoneNumber?: string }
34
+ ) => void
35
+ /** Reveal required extra-field errors after the buyer attempts payment. */
36
+ showValidation?: boolean
37
+ /** Rendered inside the row whose `value === inputSlotFor` (e.g. `<CardInput/>`). */
38
+ children?: ReactNode
39
+ inputSlotFor?: string
40
+ className?: string
41
+ }
42
+
43
+ const EXTRA_LABEL: Record<'cashtag' | 'phoneNumber', string> = {
44
+ cashtag: 'Jenius $cashtag',
45
+ phoneNumber: 'OVO phone number',
46
+ }
47
+
48
+ export const PaymentMethods: FC<PaymentMethodsProps> = ({
49
+ options,
50
+ selected,
51
+ onSelect,
52
+ extraValues,
53
+ onExtraChange,
54
+ showValidation = false,
55
+ children,
56
+ inputSlotFor,
57
+ className,
58
+ }) => (
59
+ <div
60
+ className={cx('tf-checkout-payment__methods', className)}
61
+ role="radiogroup"
62
+ aria-label="Payment method"
63
+ >
64
+ {options.map((o) => {
65
+ const isSelected = o.value === selected
66
+ const extraValue =
67
+ o.extra === 'phoneNumber'
68
+ ? extraValues[o.value]?.phoneNumber
69
+ : extraValues[o.value]?.cashtag
70
+ const extraInvalid =
71
+ Boolean(isSelected && o.extra && showValidation) && !extraValue?.trim()
72
+ return (
73
+ <label
74
+ key={o.value}
75
+ className={cx(
76
+ 'tf-checkout-payment__method',
77
+ isSelected && 'tf-checkout-payment__method--selected'
78
+ )}
79
+ >
80
+ <span className="tf-checkout-payment__method-head">
81
+ <input
82
+ type="radio"
83
+ name="tf-pay-method"
84
+ className="tf-checkout-payment__method-radio"
85
+ checked={isSelected}
86
+ onChange={() => onSelect(o.value)}
87
+ />
88
+ {o.iconUrl && (
89
+ <img className="tf-checkout-payment__method-icon" src={o.iconUrl} alt="" />
90
+ )}
91
+ <span className="tf-checkout-payment__method-label">{o.label}</span>
92
+ </span>
93
+
94
+ {isSelected && (o.value === inputSlotFor || o.extra) && (
95
+ <div className="tf-checkout-payment__method-body">
96
+ {o.value === inputSlotFor && children}
97
+ {o.extra && (
98
+ <Field
99
+ label={`${EXTRA_LABEL[o.extra]} *`}
100
+ error={extraInvalid ? 'This field is required.' : undefined}
101
+ invalid={extraInvalid}
102
+ >
103
+ <Input
104
+ inputMode={o.extra === 'phoneNumber' ? 'tel' : 'text'}
105
+ required
106
+ invalid={extraInvalid}
107
+ aria-invalid={extraInvalid}
108
+ placeholder={
109
+ o.extra === 'phoneNumber' ? 'e.g. 081234567890' : '$cashtag'
110
+ }
111
+ value={
112
+ o.extra === 'phoneNumber'
113
+ ? (extraValues[o.value]?.phoneNumber ?? '')
114
+ : (extraValues[o.value]?.cashtag ?? '')
115
+ }
116
+ onChange={(e) =>
117
+ onExtraChange(
118
+ o.value,
119
+ o.extra === 'phoneNumber'
120
+ ? { phoneNumber: e.target.value }
121
+ : { cashtag: e.target.value }
122
+ )
123
+ }
124
+ />
125
+ </Field>
126
+ )}
127
+ </div>
128
+ )}
129
+ </label>
130
+ )
131
+ })}
132
+ </div>
133
+ )
@@ -0,0 +1,24 @@
1
+ import React, { type FC, type ReactNode } from 'react'
2
+
3
+ import { cx } from './cx'
4
+
5
+ /** A price with optional struck-through original + a fees/deposit note. */
6
+ export const PriceLine: FC<{
7
+ currency?: string
8
+ amount: number | string
9
+ /** Struck-through pre-discount price. */
10
+ original?: number | string
11
+ /** e.g. "incl. fees" or "50% deposit". */
12
+ note?: ReactNode
13
+ className?: string
14
+ }> = ({ currency, amount, original, note, className }) => (
15
+ <span className={cx('tf-checkout-price', className)}>
16
+ {original != null && (
17
+ <span className="tf-checkout-price__original">
18
+ {currency} {original}
19
+ </span>
20
+ )}
21
+ {currency} {amount}
22
+ {note != null && <span className="tf-checkout-price__fees">{note}</span>}
23
+ </span>
24
+ )
@@ -0,0 +1,50 @@
1
+ /**
2
+ * `<QuantitySelect>` — a compact quantity dropdown (0…max), the control the old
3
+ * checkout used for tickets and add-ons (not a +/- stepper).
4
+ */
5
+ import React, { type FC } from 'react'
6
+
7
+ import { cx } from './cx'
8
+
9
+ export interface QuantitySelectProps {
10
+ value: number
11
+ onChange: (value: number) => void
12
+ /** Minimum purchasable quantity when buying (0 = none is always allowed). */
13
+ min?: number
14
+ max?: number
15
+ /** Step between options (the old checkout's `multiplier`). */
16
+ step?: number
17
+ disabled?: boolean
18
+ className?: string
19
+ }
20
+
21
+ export const QuantitySelect: FC<QuantitySelectProps> = ({
22
+ value,
23
+ onChange,
24
+ min = 0,
25
+ max = 10,
26
+ step = 1,
27
+ disabled,
28
+ className,
29
+ }) => {
30
+ // 0 (buy none) is always offered; the first non-zero option honors the ticket's
31
+ // minimum, then steps up to the cap — so a min-2 type offers 0, 2, 3, … not 1.
32
+ const cap = Math.min(max, 50)
33
+ const lo = Math.max(1, min)
34
+ const options: number[] = [0]
35
+ for (let n = lo; n <= cap; n += step) options.push(n)
36
+ return (
37
+ <select
38
+ className={cx('tf-checkout-qty', className)}
39
+ value={value}
40
+ disabled={disabled}
41
+ onChange={(e) => onChange(Number(e.target.value))}
42
+ >
43
+ {options.map((n) => (
44
+ <option key={n} value={n}>
45
+ {n}
46
+ </option>
47
+ ))}
48
+ </select>
49
+ )
50
+ }
@@ -0,0 +1,36 @@
1
+ import React, { type FC } from 'react'
2
+
3
+ import { cx } from './cx'
4
+
5
+ /** Quantity ± control (ticket / add-on quantities). */
6
+ export const Stepper: FC<{
7
+ value: number
8
+ onChange: (value: number) => void
9
+ min?: number
10
+ max?: number
11
+ step?: number
12
+ disabled?: boolean
13
+ className?: string
14
+ }> = ({ value, onChange, min = 0, max = Infinity, step = 1, disabled, className }) => (
15
+ <div className={cx('tf-checkout-stepper', className)}>
16
+ <button
17
+ type="button"
18
+ className="tf-checkout-stepper__btn"
19
+ aria-label="Decrease"
20
+ disabled={disabled || value <= min}
21
+ onClick={() => onChange(Math.max(min, value - step))}
22
+ >
23
+
24
+ </button>
25
+ <span className="tf-checkout-stepper__value">{value}</span>
26
+ <button
27
+ type="button"
28
+ className="tf-checkout-stepper__btn"
29
+ aria-label="Increase"
30
+ disabled={disabled || value >= max}
31
+ onClick={() => onChange(Math.min(max, value + step))}
32
+ >
33
+ +
34
+ </button>
35
+ </div>
36
+ )
@@ -0,0 +1,34 @@
1
+ import React, { type FC, type ReactNode } from 'react'
2
+
3
+ import { cx } from './cx'
4
+
5
+ const clock = (s: number) => {
6
+ const v = Math.max(0, Math.floor(s))
7
+ return v >= 3600
8
+ ? `${Math.floor(v / 3600)}:${String(Math.floor((v % 3600) / 60)).padStart(
9
+ 2,
10
+ '0'
11
+ )}:${String(v % 60).padStart(2, '0')}`
12
+ : `${Math.floor(v / 60)}:${String(v % 60).padStart(2, '0')}`
13
+ }
14
+
15
+ /** Reservation countdown. Pass `checkout.secondsLeft`. */
16
+ export const Timer: FC<{
17
+ seconds: number
18
+ /** Below this many seconds it turns urgent (default 60). */
19
+ urgentAt?: number
20
+ /** Text before the clock, e.g. "Reserved for". */
21
+ label?: ReactNode
22
+ className?: string
23
+ }> = ({ seconds, urgentAt = 60, label, className }) => (
24
+ <span
25
+ className={cx(
26
+ 'tf-checkout-timer',
27
+ seconds <= urgentAt && 'tf-checkout-timer--urgent',
28
+ className
29
+ )}
30
+ >
31
+ {label != null && <span>{label}</span>}
32
+ {clock(seconds)}
33
+ </span>
34
+ )
@@ -0,0 +1,55 @@
1
+ /**
2
+ * `<TimerBanner>` — the reservation countdown banner the old checkout showed at
3
+ * the top of the add-ons / billing / payment steps: "Please complete your
4
+ * purchase before the timer reaches zero." + mm:ss, with a dismiss X. Feed it
5
+ * `checkout.secondsLeft`. Renders nothing when there's no live reservation.
6
+ */
7
+ import React, { useState, type FC } from 'react'
8
+
9
+ import { cx } from './cx'
10
+
11
+ const clock = (s: number) => {
12
+ const m = String(Math.floor(s / 60)).padStart(2, '0')
13
+ const ss = String(s % 60).padStart(2, '0')
14
+ return `${m}:${ss}`
15
+ }
16
+
17
+ export interface TimerBannerProps {
18
+ seconds?: number
19
+ /** Show red styling at/under this many seconds. Default 60. */
20
+ urgentAt?: number
21
+ message?: string
22
+ className?: string
23
+ }
24
+
25
+ export const TimerBanner: FC<TimerBannerProps> = ({
26
+ seconds,
27
+ urgentAt = 60,
28
+ message = 'Please complete your purchase before the timer reaches zero.',
29
+ className,
30
+ }) => {
31
+ const [dismissed, setDismissed] = useState(false)
32
+ if (seconds === undefined || seconds <= 0 || dismissed) return null
33
+ const urgent = seconds <= urgentAt
34
+ return (
35
+ <div
36
+ role="status"
37
+ className={cx(
38
+ 'tf-checkout-timerbanner',
39
+ urgent && 'tf-checkout-timerbanner--urgent',
40
+ className
41
+ )}
42
+ >
43
+ <span className="tf-checkout-timerbanner__msg">{message}</span>
44
+ <span className="tf-checkout-timerbanner__clock">{clock(seconds)}</span>
45
+ <button
46
+ type="button"
47
+ className="tf-checkout-timerbanner__close"
48
+ aria-label="Dismiss"
49
+ onClick={() => setDismissed(true)}
50
+ >
51
+ ×
52
+ </button>
53
+ </div>
54
+ )
55
+ }
package/src/ui/cx.ts ADDED
@@ -0,0 +1,3 @@
1
+ /** Join truthy class names (tiny, dependency-free). */
2
+ export const cx = (...parts: Array<string | false | null | undefined>): string =>
3
+ parts.filter(Boolean).join(' ')
@@ -0,0 +1,54 @@
1
+ /**
2
+ * tf-checkout UI kit — the themeable primitives every section composes.
3
+ * All scoped under `.tf-checkout`, all `tf-checkout-*` BEM classes, all take a
4
+ * `className`. Styles load automatically from the package entry point.
5
+ */
6
+ export {
7
+ CheckoutProvider,
8
+ useCheckoutContext,
9
+ useCheckoutValidation,
10
+ type CheckoutProviderProps,
11
+ } from './CheckoutProvider'
12
+ export { themeToVars, type CheckoutTheme } from './theme'
13
+ export { cx } from './cx'
14
+ export {
15
+ Card,
16
+ SectionHeader,
17
+ Pill,
18
+ type CardProps,
19
+ type SectionHeaderProps,
20
+ } from './Card'
21
+ export { Button, type ButtonProps } from './Button'
22
+ export {
23
+ Field,
24
+ FieldRow,
25
+ Input,
26
+ Textarea,
27
+ Select,
28
+ Checkbox,
29
+ type InputProps,
30
+ type TextareaProps,
31
+ type SelectProps,
32
+ type CheckboxProps,
33
+ } from './Field'
34
+ export {
35
+ CustomFieldInput,
36
+ CustomFieldGroupFields,
37
+ customFieldsComplete,
38
+ type CustomFieldInputProps,
39
+ type CustomFieldGroupFieldsProps,
40
+ } from './CustomFields'
41
+ export {
42
+ PaymentMethods,
43
+ type PaymentMethodsProps,
44
+ type PaymentMethodOption,
45
+ type PaymentMethodId,
46
+ } from './PaymentMethods'
47
+ export { Stepper } from './Stepper'
48
+ export { QuantitySelect, type QuantitySelectProps } from './QuantitySelect'
49
+ export { PriceLine } from './PriceLine'
50
+ export { Timer } from './Timer'
51
+ export { TimerBanner, type TimerBannerProps } from './TimerBanner'
52
+ export { Loader } from './Loader'
53
+ export { useInstallmentPicker } from './InstallmentPicker'
54
+ export { I18nProvider, useT, type I18nProviderProps } from './I18nProvider'
@@ -0,0 +1,83 @@
1
+ /**
2
+ * The checkout theme — a structured, documented token set. Pass any subset to
3
+ * `<CheckoutProvider theme={…}>`; each token maps to a `--tf-checkout-*` CSS
4
+ * custom property that `checkout.css` (and every component) reads. Anything you
5
+ * omit falls back to the stylesheet default.
6
+ */
7
+ import type { CSSProperties } from 'react'
8
+
9
+ export interface CheckoutTheme {
10
+ /** `'dark'` adds the `tf-checkout--dark` class (dark default palette). */
11
+ colorScheme?: 'light' | 'dark'
12
+
13
+ // color
14
+ /** Primary color — buttons, step badges, focus ring, links. */
15
+ accent?: string
16
+ /** Hover state for `accent` (defaults near `accent`). */
17
+ accentHover?: string
18
+ /** Text/icon color on top of `accent`. */
19
+ accentContrast?: string
20
+ /** Card background. */
21
+ surface?: string
22
+ /** Subtle fill (summary rows, muted pills). */
23
+ surfaceMuted?: string
24
+ /** Primary text. */
25
+ text?: string
26
+ /** Secondary text (labels, "incl. fees", hints). */
27
+ muted?: string
28
+ /** Borders + dividers. */
29
+ border?: string
30
+ /** Error text + invalid field borders. */
31
+ error?: string
32
+ /** Success (confirmation check). */
33
+ success?: string
34
+
35
+ // shape
36
+ /** Corner radius for cards. */
37
+ radiusCard?: string
38
+ /** Corner radius for inputs / buttons. */
39
+ radiusControl?: string
40
+ /** Card shadow. */
41
+ shadow?: string
42
+
43
+ // type
44
+ /** Font family for the whole component tree. */
45
+ font?: string
46
+ /** Base font size (e.g. `15px`). */
47
+ fontSize?: string
48
+
49
+ // layout
50
+ /** Max width of the checkout column. */
51
+ maxWidth?: string
52
+ }
53
+
54
+ const MAP: Record<keyof Omit<CheckoutTheme, 'colorScheme'>, string> = {
55
+ accent: '--tf-checkout-accent',
56
+ accentHover: '--tf-checkout-accent-hover',
57
+ accentContrast: '--tf-checkout-accent-contrast',
58
+ surface: '--tf-checkout-surface',
59
+ surfaceMuted: '--tf-checkout-surface-muted',
60
+ text: '--tf-checkout-text',
61
+ muted: '--tf-checkout-muted',
62
+ border: '--tf-checkout-border',
63
+ error: '--tf-checkout-error',
64
+ success: '--tf-checkout-success',
65
+ radiusCard: '--tf-checkout-radius-card',
66
+ radiusControl: '--tf-checkout-radius-control',
67
+ shadow: '--tf-checkout-shadow',
68
+ font: '--tf-checkout-font',
69
+ fontSize: '--tf-checkout-font-size',
70
+ maxWidth: '--tf-checkout-max-width',
71
+ }
72
+
73
+ /** Turn a theme into inline `--tf-checkout-*` custom properties for the root. */
74
+ export const themeToVars = (theme?: CheckoutTheme): CSSProperties => {
75
+ const out: Record<string, string> = {}
76
+ if (theme) {
77
+ for (const key of Object.keys(MAP) as (keyof typeof MAP)[]) {
78
+ const value = theme[key]
79
+ if (value != null) out[MAP[key]] = value
80
+ }
81
+ }
82
+ return out as CSSProperties
83
+ }
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Web `useCheckout` — a thin injector: the SDK's `useCheckout` with the web
3
+ * platform ports pre-wired (Stripe confirmer, popup provider page, inline
4
+ * Xendit). ALL the DX (countdown, isBusy, promo/referrer/waiting-list, auto ID
5
+ * verification, the flat snapshot) lives in the SDK's hook, so web and React
6
+ * Native share it — this file only supplies what's browser-specific.
7
+ *
8
+ * configureCheckout({ env: 'PROD', clientId, clientSecret }) // once, at app start
9
+ * const checkout = useCheckout()
10
+ * await checkout.setTickets(eventId, selections)
11
+ * checkout.setBilling(b)
12
+ * await checkout.placeOrder('card') // <CardInput/> rendered
13
+ */
14
+ import {
15
+ useCheckout as useSharedCheckout,
16
+ type CheckoutOptions,
17
+ type CheckoutPorts,
18
+ type UseCheckout,
19
+ } from 'tf-checkout-shared'
20
+
21
+ import { webConfirmer, webPorts } from './instance'
22
+
23
+ export interface UseCheckoutOptions {
24
+ /** Extra platform ports merged over the web defaults — e.g. MSI's
25
+ * `onInstallmentOffers` picker. Read once, at first render. */
26
+ ports?: Omit<CheckoutPorts, 'confirmer'>
27
+ /** Wallet/redirect engine options (merchant identity, redirect URL). */
28
+ options?: CheckoutOptions
29
+ }
30
+
31
+ export const useCheckout = (opts: UseCheckoutOptions = {}): UseCheckout =>
32
+ useSharedCheckout({
33
+ ports: { confirmer: webConfirmer, ...webPorts, ...opts.ports },
34
+ options: opts.options,
35
+ })