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,231 @@
1
+ import { useT } from '../ui/I18nProvider'
2
+ import React, { useCallback, useEffect, useRef, type FC, type MouseEvent } from 'react'
3
+
4
+ import { hooks, type AuthFlowView, type TfProfile } from 'tf-checkout-shared'
5
+
6
+ import { cx } from '../ui/cx'
7
+ import { ForgotPasswordForm } from './ForgotPasswordForm'
8
+ import { LoginForm } from './LoginForm'
9
+ import { RegisterForm } from './RegisterForm'
10
+
11
+ const DEFAULT_LOGO = 'https://www.ticketfairy.com/resources/images/logo-ttf-black.svg'
12
+
13
+ export interface AuthModalProps {
14
+ open: boolean
15
+ onClose: () => void
16
+ initialView?: AuthFlowView
17
+ initialEmail?: string
18
+ /** Optional context shown above the active form. */
19
+ message?: string
20
+ allowRegistration?: boolean
21
+ allowPasswordReset?: boolean
22
+ requireRegistrationAddress?: boolean
23
+ /** Extra backend fields for specialized registrations such as delegations. */
24
+ registrationFields?: Record<string, string>
25
+ logoUrl?: string
26
+ onAuthenticated?: (profile: TfProfile) => void
27
+ className?: string
28
+ }
29
+
30
+ /** Accessible web presentation over `hooks.useAuthFlow()`. Render it inside
31
+ * `<CheckoutProvider>` so it inherits the checkout theme tokens. */
32
+ export const AuthModal: FC<AuthModalProps> = ({
33
+ open,
34
+ onClose,
35
+ initialView = 'login',
36
+ initialEmail,
37
+ message,
38
+ allowRegistration = true,
39
+ allowPasswordReset = true,
40
+ requireRegistrationAddress = true,
41
+ registrationFields,
42
+ logoUrl = DEFAULT_LOGO,
43
+ onAuthenticated,
44
+ className,
45
+ }) => {
46
+ const t = useT()
47
+ const closeAfterAuth = useCallback(
48
+ (profile: TfProfile) => {
49
+ onAuthenticated?.(profile)
50
+ onClose()
51
+ },
52
+ [onAuthenticated, onClose]
53
+ )
54
+ const auth = hooks.useAuthFlow({
55
+ initialView: initialView === 'register' && !allowRegistration ? 'login' : initialView,
56
+ initialEmail,
57
+ requireRegistrationAddress,
58
+ registrationFields,
59
+ onAuthenticated: closeAfterAuth,
60
+ })
61
+ const dialogRef = useRef<HTMLDivElement | null>(null)
62
+ const previouslyFocused = useRef<HTMLElement | null>(null)
63
+ const submittingRef = useRef(auth.isSubmitting)
64
+ submittingRef.current = auth.isSubmitting
65
+
66
+ useEffect(() => {
67
+ if (!open) return
68
+ previouslyFocused.current = document.activeElement as HTMLElement | null
69
+ const previousOverflow = document.body.style.overflow
70
+ document.body.style.overflow = 'hidden'
71
+ const focusable = () =>
72
+ Array.from(
73
+ dialogRef.current?.querySelectorAll<HTMLElement>(
74
+ 'button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [href], [tabindex]:not([tabindex="-1"])'
75
+ ) ?? []
76
+ ).filter((element) => element.offsetParent !== null)
77
+ const initialFocus =
78
+ dialogRef.current?.querySelector<HTMLElement>(
79
+ 'input:not([disabled]), select:not([disabled]), textarea:not([disabled])'
80
+ ) ??
81
+ focusable()[0] ??
82
+ dialogRef.current
83
+ initialFocus?.focus()
84
+
85
+ const onKeyDown = (event: KeyboardEvent) => {
86
+ if (event.key === 'Escape' && !submittingRef.current) onClose()
87
+ if (event.key !== 'Tab') return
88
+ const elements = focusable()
89
+ if (elements.length === 0) {
90
+ event.preventDefault()
91
+ dialogRef.current?.focus()
92
+ return
93
+ }
94
+ const first = elements[0]
95
+ const last = elements[elements.length - 1]
96
+ if (event.shiftKey && document.activeElement === first) {
97
+ event.preventDefault()
98
+ last.focus()
99
+ } else if (!event.shiftKey && document.activeElement === last) {
100
+ event.preventDefault()
101
+ first.focus()
102
+ }
103
+ }
104
+ document.addEventListener('keydown', onKeyDown)
105
+ return () => {
106
+ document.removeEventListener('keydown', onKeyDown)
107
+ document.body.style.overflow = previousOverflow
108
+ previouslyFocused.current?.focus()
109
+ }
110
+ }, [onClose, open])
111
+
112
+ if (!open) return null
113
+
114
+ const closeFromBackdrop = (event: MouseEvent<HTMLDivElement>) => {
115
+ if (event.target === event.currentTarget && !auth.isSubmitting) onClose()
116
+ }
117
+ const isPasswordReset = auth.view === 'forgot-password'
118
+ const title = isPasswordReset ? 'Password reset' : 'Ticket Fairy account'
119
+
120
+ return (
121
+ <div className={cx('tf-checkout-auth', className)} onMouseDown={closeFromBackdrop}>
122
+ <div
123
+ ref={dialogRef}
124
+ className="tf-checkout-auth__dialog"
125
+ role="dialog"
126
+ aria-modal="true"
127
+ aria-label={isPasswordReset ? undefined : title}
128
+ aria-labelledby={isPasswordReset ? 'tf-checkout-auth-title' : undefined}
129
+ tabIndex={-1}
130
+ >
131
+ <button
132
+ type="button"
133
+ className="tf-checkout-auth__close"
134
+ aria-label={t('common.close')}
135
+ disabled={auth.isSubmitting}
136
+ onClick={onClose}
137
+ >
138
+ ×
139
+ </button>
140
+ {allowRegistration && !isPasswordReset && (
141
+ <div
142
+ className="tf-checkout-auth__tabs"
143
+ role="tablist"
144
+ aria-label={t('auth.title')}
145
+ >
146
+ <button
147
+ type="button"
148
+ role="tab"
149
+ aria-selected={auth.view === 'login'}
150
+ className={cx(
151
+ 'tf-checkout-auth__tab',
152
+ auth.view === 'login' && 'tf-checkout-auth__tab--active'
153
+ )}
154
+ onClick={() => auth.showLogin(auth.suggestedEmail)}
155
+ >
156
+ Login
157
+ </button>
158
+ <button
159
+ type="button"
160
+ role="tab"
161
+ aria-selected={auth.view === 'register'}
162
+ className={cx(
163
+ 'tf-checkout-auth__tab',
164
+ auth.view === 'register' && 'tf-checkout-auth__tab--active'
165
+ )}
166
+ onClick={() => auth.showRegister(auth.suggestedEmail)}
167
+ >
168
+ Sign Up
169
+ </button>
170
+ </div>
171
+ )}
172
+
173
+ {logoUrl && (
174
+ <div className="tf-checkout-auth__logo-wrap">
175
+ <img
176
+ className="tf-checkout-auth__logo"
177
+ src={logoUrl}
178
+ alt="The Ticket Fairy"
179
+ />
180
+ </div>
181
+ )}
182
+
183
+ {isPasswordReset && (
184
+ <h2 id="tf-checkout-auth-title" className="tf-checkout-auth__title">
185
+ {title}
186
+ </h2>
187
+ )}
188
+
189
+ {message && !isPasswordReset && (
190
+ <p className="tf-checkout-auth__message">{message}</p>
191
+ )}
192
+
193
+ {auth.view === 'login' && (
194
+ <LoginForm
195
+ initialEmail={auth.suggestedEmail}
196
+ errors={auth.fieldErrors}
197
+ error={auth.error}
198
+ loading={auth.isSubmitting}
199
+ allowPasswordReset={allowPasswordReset}
200
+ onSubmit={auth.submitLogin}
201
+ onForgotPassword={auth.showForgotPassword}
202
+ onFieldChange={auth.clearFieldError}
203
+ />
204
+ )}
205
+ {auth.view === 'register' && allowRegistration && (
206
+ <RegisterForm
207
+ initialEmail={auth.suggestedEmail}
208
+ errors={auth.fieldErrors}
209
+ error={auth.error}
210
+ loading={auth.isSubmitting}
211
+ requireAddress={requireRegistrationAddress}
212
+ onSubmit={auth.submitRegistration}
213
+ onFieldChange={auth.clearFieldError}
214
+ />
215
+ )}
216
+ {auth.view === 'forgot-password' && (
217
+ <ForgotPasswordForm
218
+ initialEmail={auth.suggestedEmail}
219
+ errors={auth.fieldErrors}
220
+ error={auth.error}
221
+ successMessage={auth.successMessage}
222
+ loading={auth.isSubmitting}
223
+ onSubmit={auth.submitPasswordReset}
224
+ onBackToLogin={auth.showLogin}
225
+ onFieldChange={() => auth.clearFieldError('email')}
226
+ />
227
+ )}
228
+ </div>
229
+ </div>
230
+ )
231
+ }
@@ -0,0 +1,93 @@
1
+ import { useT } from '../ui/I18nProvider'
2
+ import React, { useEffect, useState, type FC, type FormEvent } from 'react'
3
+
4
+ import type { AuthFieldErrors } from 'tf-checkout-shared'
5
+
6
+ import { Button } from '../ui/Button'
7
+ import { Field, Input } from '../ui/Field'
8
+
9
+ export interface ForgotPasswordFormProps {
10
+ initialEmail?: string
11
+ errors?: AuthFieldErrors
12
+ error?: string
13
+ successMessage?: string
14
+ loading?: boolean
15
+ onSubmit: (email: string) => void | Promise<unknown>
16
+ onBackToLogin: (email: string) => void
17
+ onFieldChange?: () => void
18
+ }
19
+
20
+ /** Password-recovery presentation over the shared auth-flow controller. */
21
+ export const ForgotPasswordForm: FC<ForgotPasswordFormProps> = ({
22
+ initialEmail = '',
23
+ errors = {},
24
+ error,
25
+ successMessage,
26
+ loading = false,
27
+ onSubmit,
28
+ onBackToLogin,
29
+ onFieldChange,
30
+ }) => {
31
+ const t = useT()
32
+ const [email, setEmail] = useState(initialEmail)
33
+
34
+ useEffect(() => {
35
+ if (initialEmail && !email) setEmail(initialEmail)
36
+ }, [email, initialEmail])
37
+
38
+ const submit = (event: FormEvent) => {
39
+ event.preventDefault()
40
+ void onSubmit(email)
41
+ }
42
+
43
+ if (successMessage) {
44
+ return (
45
+ <div className="tf-checkout-auth__form">
46
+ <div className="tf-checkout-auth__success" role="status">
47
+ {successMessage}
48
+ </div>
49
+ <Button type="button" block onClick={() => onBackToLogin(email)}>
50
+ Back to log in
51
+ </Button>
52
+ </div>
53
+ )
54
+ }
55
+
56
+ return (
57
+ <form className="tf-checkout-auth__form" onSubmit={submit} noValidate>
58
+ <p className="tf-checkout-auth__intro">
59
+ Enter your email and we’ll send you instructions to reset your password.
60
+ </p>
61
+ {error && (
62
+ <div className="tf-checkout-auth__alert" role="alert">
63
+ {error}
64
+ </div>
65
+ )}
66
+ <Field label={t('auth.email')} error={errors.email}>
67
+ <Input
68
+ type="email"
69
+ name="email"
70
+ autoComplete="email"
71
+ autoFocus
72
+ required
73
+ value={email}
74
+ invalid={Boolean(errors.email)}
75
+ onChange={(event) => {
76
+ setEmail(event.target.value)
77
+ onFieldChange?.()
78
+ }}
79
+ />
80
+ </Field>
81
+ <Button type="submit" block loading={loading}>
82
+ Send reset instructions
83
+ </Button>
84
+ <button
85
+ type="button"
86
+ className="tf-checkout-auth__text-button tf-checkout-auth__back"
87
+ onClick={() => onBackToLogin(email)}
88
+ >
89
+ Back to log in
90
+ </button>
91
+ </form>
92
+ )
93
+ }
@@ -0,0 +1,104 @@
1
+ import { useT } from '../ui/I18nProvider'
2
+ import React, { useEffect, useState, type FC, type FormEvent } from 'react'
3
+
4
+ import type { AuthFieldErrors, AuthLoginInput } from 'tf-checkout-shared'
5
+
6
+ import { Button } from '../ui/Button'
7
+ import { Field, Input } from '../ui/Field'
8
+ import { PasswordInput } from './PasswordInput'
9
+
10
+ export interface LoginFormProps {
11
+ initialEmail?: string
12
+ errors?: AuthFieldErrors
13
+ error?: string
14
+ loading?: boolean
15
+ allowPasswordReset?: boolean
16
+ onSubmit: (input: AuthLoginInput) => void | Promise<unknown>
17
+ onForgotPassword?: (email: string) => void
18
+ onFieldChange?: (field: keyof AuthLoginInput) => void
19
+ }
20
+
21
+ /** Pure web form: it renders fields and delegates all auth work to its caller. */
22
+ export const LoginForm: FC<LoginFormProps> = ({
23
+ initialEmail = '',
24
+ errors = {},
25
+ error,
26
+ loading = false,
27
+ allowPasswordReset = true,
28
+ onSubmit,
29
+ onForgotPassword,
30
+ onFieldChange,
31
+ }) => {
32
+ const t = useT()
33
+ const [email, setEmail] = useState(initialEmail)
34
+ const [password, setPassword] = useState('')
35
+
36
+ useEffect(() => {
37
+ if (initialEmail && !email) setEmail(initialEmail)
38
+ }, [email, initialEmail])
39
+
40
+ const submit = (event: FormEvent) => {
41
+ event.preventDefault()
42
+ void onSubmit({ email, password })
43
+ }
44
+
45
+ return (
46
+ <form className="tf-checkout-auth__form" onSubmit={submit} noValidate>
47
+ {error && (
48
+ <div className="tf-checkout-auth__alert" role="alert">
49
+ {error}
50
+ </div>
51
+ )}
52
+ <Field
53
+ className="tf-checkout-auth__input-field"
54
+ label={t('auth.email')}
55
+ error={errors.email}
56
+ >
57
+ <Input
58
+ type="email"
59
+ name="email"
60
+ placeholder={t('auth.emailPlaceholder')}
61
+ autoComplete="email"
62
+ autoFocus
63
+ required
64
+ value={email}
65
+ invalid={Boolean(errors.email)}
66
+ onChange={(event) => {
67
+ setEmail(event.target.value)
68
+ onFieldChange?.('email')
69
+ }}
70
+ />
71
+ </Field>
72
+ <Field
73
+ className="tf-checkout-auth__input-field"
74
+ label={t('auth.password')}
75
+ error={errors.password}
76
+ >
77
+ <PasswordInput
78
+ name="password"
79
+ placeholder={t('auth.passwordPlaceholder')}
80
+ autoComplete="current-password"
81
+ required
82
+ value={password}
83
+ invalid={Boolean(errors.password)}
84
+ onChange={(event) => {
85
+ setPassword(event.target.value)
86
+ onFieldChange?.('password')
87
+ }}
88
+ />
89
+ </Field>
90
+ <Button type="submit" block loading={loading}>
91
+ Login
92
+ </Button>
93
+ {allowPasswordReset && onForgotPassword && (
94
+ <button
95
+ type="button"
96
+ className="tf-checkout-auth__text-button tf-checkout-auth__forgot"
97
+ onClick={() => onForgotPassword(email)}
98
+ >
99
+ Forgot password?
100
+ </button>
101
+ )}
102
+ </form>
103
+ )
104
+ }
@@ -0,0 +1,33 @@
1
+ import React, { forwardRef, useState } from 'react'
2
+
3
+ import { Input, type InputProps } from '../ui/Field'
4
+
5
+ /** Password control with the same reveal affordance as the legacy checkout. */
6
+ export const PasswordInput = forwardRef<HTMLInputElement, InputProps>(
7
+ ({ className, ...props }, ref) => {
8
+ const [visible, setVisible] = useState(false)
9
+
10
+ return (
11
+ <span className="tf-checkout-auth__password">
12
+ <Input
13
+ {...props}
14
+ ref={ref}
15
+ className={className}
16
+ type={visible ? 'text' : 'password'}
17
+ />
18
+ <button
19
+ type="button"
20
+ className="tf-checkout-auth__password-toggle"
21
+ aria-label={visible ? 'Hide password' : 'Show password'}
22
+ aria-pressed={visible}
23
+ onClick={() => setVisible((current) => !current)}
24
+ >
25
+ <svg aria-hidden="true" viewBox="0 0 24 24">
26
+ <path d="M12 5c5.3 0 9.3 4.8 10.5 6.4a1 1 0 0 1 0 1.2C21.3 14.2 17.3 19 12 19S2.7 14.2 1.5 12.6a1 1 0 0 1 0-1.2C2.7 9.8 6.7 5 12 5Zm0 2c-3.8 0-7 3.2-8.4 5 1.4 1.8 4.6 5 8.4 5s7-3.2 8.4-5C19 10.2 15.8 7 12 7Zm0 2.1a2.9 2.9 0 1 1 0 5.8 2.9 2.9 0 0 1 0-5.8Z" />
27
+ </svg>
28
+ </button>
29
+ </span>
30
+ )
31
+ }
32
+ )
33
+ PasswordInput.displayName = 'PasswordInput'