fontdue-js 2.22.0 → 2.22.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (370) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/dist/components/ConfigContext.d.ts +3 -0
  3. package/dist/components/ConfigContext.js +2 -1
  4. package/dist/components/FontdueProvider/FontdueProviderClientComponent.js +2 -0
  5. package/dist/corsError.d.ts +1 -0
  6. package/dist/corsError.js +16 -9
  7. package/dist/global-shim.d.ts +1 -0
  8. package/dist/global-shim.js +8 -0
  9. package/dist/relay/environment.js +51 -42
  10. package/dist-cjs/__generated__/AddToCartBannerQuery.graphql.js +194 -0
  11. package/dist-cjs/__generated__/AddToCartBanner_item.graphql.js +107 -0
  12. package/dist-cjs/__generated__/AddToCartBanner_order.graphql.js +131 -0
  13. package/dist-cjs/__generated__/AddressFieldsRefetchQuery.graphql.js +170 -0
  14. package/dist-cjs/__generated__/AddressFields_viewer.graphql.js +125 -0
  15. package/dist-cjs/__generated__/BuyButtonIDQuery.graphql.js +121 -0
  16. package/dist-cjs/__generated__/BuyButtonSlugQuery.graphql.js +146 -0
  17. package/dist-cjs/__generated__/BuyButton_collection.graphql.js +56 -0
  18. package/dist-cjs/__generated__/CartButtonQuery.graphql.js +139 -0
  19. package/dist-cjs/__generated__/CartButton_order.graphql.js +71 -0
  20. package/dist-cjs/__generated__/CartItemAdditionalLicenses_licenses.graphql.js +42 -0
  21. package/dist-cjs/__generated__/CartItemAdditionalLicenses_orderItem.graphql.js +52 -0
  22. package/dist-cjs/__generated__/CartItemLicense_selection.graphql.js +80 -0
  23. package/dist-cjs/__generated__/CartItemProduct_product.graphql.js +113 -0
  24. package/dist-cjs/__generated__/CartItemVariable_selection.graphql.js +107 -0
  25. package/dist-cjs/__generated__/CartItemVariable_variable.graphql.js +58 -0
  26. package/dist-cjs/__generated__/CartItem_node.graphql.js +166 -0
  27. package/dist-cjs/__generated__/CartOrderCompleteOrderMutation.graphql.js +783 -0
  28. package/dist-cjs/__generated__/CartOrderRemoveDiscountMutation.graphql.js +760 -0
  29. package/dist-cjs/__generated__/CartOrderUpdateMutation.graphql.js +795 -0
  30. package/dist-cjs/__generated__/CartOrder_UpdateErrors.graphql.js +43 -0
  31. package/dist-cjs/__generated__/CartOrder_order.graphql.js +264 -0
  32. package/dist-cjs/__generated__/CartOrder_viewer.graphql.js +51 -0
  33. package/dist-cjs/__generated__/CartQuery.graphql.js +887 -0
  34. package/dist-cjs/__generated__/CartStateRemoveDiscountMutation.graphql.js +422 -0
  35. package/dist-cjs/__generated__/CartStateUpdateMutation.graphql.js +790 -0
  36. package/dist-cjs/__generated__/CartState_order.graphql.js +122 -0
  37. package/dist-cjs/__generated__/CartTotals_order.graphql.js +140 -0
  38. package/dist-cjs/__generated__/CharacterViewerIDQuery.graphql.js +332 -0
  39. package/dist-cjs/__generated__/CharacterViewerSlugQuery.graphql.js +362 -0
  40. package/dist-cjs/__generated__/CharacterViewerStyleRefetchQuery.graphql.js +226 -0
  41. package/dist-cjs/__generated__/CharacterViewer_collection.graphql.js +197 -0
  42. package/dist-cjs/__generated__/CharacterViewer_family.graphql.js +101 -0
  43. package/dist-cjs/__generated__/CharacterViewer_style.graphql.js +161 -0
  44. package/dist-cjs/__generated__/CheckoutUpdateCustomerMutation.graphql.js +770 -0
  45. package/dist-cjs/__generated__/CheckoutUpdateOrderMutation.graphql.js +811 -0
  46. package/dist-cjs/__generated__/Checkout_UpdateOrderErrors.graphql.js +97 -0
  47. package/dist-cjs/__generated__/Checkout_identity.graphql.js +94 -0
  48. package/dist-cjs/__generated__/Checkout_order.graphql.js +144 -0
  49. package/dist-cjs/__generated__/Checkout_viewer.graphql.js +74 -0
  50. package/dist-cjs/__generated__/CollectionAa_Query.graphql.js +192 -0
  51. package/dist-cjs/__generated__/CollectionAa_product.graphql.js +69 -0
  52. package/dist-cjs/__generated__/CouponCodeInputApplyCouponMutation.graphql.js +432 -0
  53. package/dist-cjs/__generated__/CouponText_coupon.graphql.js +73 -0
  54. package/dist-cjs/__generated__/CustomerLoginFormLoginMutation.graphql.js +72 -0
  55. package/dist-cjs/__generated__/CustomerLoginFormQuery.graphql.js +91 -0
  56. package/dist-cjs/__generated__/DownloadRefetchQuery.graphql.js +124 -0
  57. package/dist-cjs/__generated__/Download_order.graphql.js +61 -0
  58. package/dist-cjs/__generated__/FamilyList_node.graphql.js +96 -0
  59. package/dist-cjs/__generated__/Family_node.graphql.js +160 -0
  60. package/dist-cjs/__generated__/FontFamiliesQuery.graphql.js +368 -0
  61. package/dist-cjs/__generated__/FontStyle_fontStyle.graphql.js +32 -0
  62. package/dist-cjs/__generated__/IdentityBox_identity.graphql.js +52 -0
  63. package/dist-cjs/__generated__/License_node.graphql.js +97 -0
  64. package/dist-cjs/__generated__/NewsletterSignupQuery.graphql.js +110 -0
  65. package/dist-cjs/__generated__/NewsletterSignupUpdateCustomerMutation.graphql.js +81 -0
  66. package/dist-cjs/__generated__/NodePasswordFormAccessNodeMutation.graphql.js +72 -0
  67. package/dist-cjs/__generated__/NodePasswordFormIDQuery.graphql.js +93 -0
  68. package/dist-cjs/__generated__/NodePasswordFormSlugQuery.graphql.js +115 -0
  69. package/dist-cjs/__generated__/OrderVariableSelectionReduxRefetchQuery.graphql.js +154 -0
  70. package/dist-cjs/__generated__/OrderVariableSelectionRedux_viewer.graphql.js +75 -0
  71. package/dist-cjs/__generated__/OrderVariableSelection_variables.graphql.js +107 -0
  72. package/dist-cjs/__generated__/PrecartAddToCartMutation.graphql.js +793 -0
  73. package/dist-cjs/__generated__/PrecartClearCartMutation.graphql.js +81 -0
  74. package/dist-cjs/__generated__/PrecartQuery.graphql.js +308 -0
  75. package/dist-cjs/__generated__/Precart_collection.graphql.js +81 -0
  76. package/dist-cjs/__generated__/Precart_license.graphql.js +67 -0
  77. package/dist-cjs/__generated__/Precart_viewer.graphql.js +161 -0
  78. package/dist-cjs/__generated__/PriceBarSectionRefetchQuery.graphql.js +184 -0
  79. package/dist-cjs/__generated__/PriceBarSection_node.graphql.js +121 -0
  80. package/dist-cjs/__generated__/PriceBar_node.graphql.js +60 -0
  81. package/dist-cjs/__generated__/Price_price.graphql.js +40 -0
  82. package/dist-cjs/__generated__/SKUPrice_sku.graphql.js +69 -0
  83. package/dist-cjs/__generated__/SelectButton_sku.graphql.js +54 -0
  84. package/{dist-bundle/chunks/index-o29NNufd.js → dist-cjs/__generated__/ServerConfigProviderQuery.graphql.js} +7 -30
  85. package/dist-cjs/__generated__/ShareCartCreateSnapshotMutation.graphql.js +84 -0
  86. package/dist-cjs/__generated__/SpecimenLinkQuery.graphql.js +120 -0
  87. package/dist-cjs/__generated__/StoreModalBundleButton_bundle.graphql.js +85 -0
  88. package/dist-cjs/__generated__/StoreModalCartQuery.graphql.js +1017 -0
  89. package/dist-cjs/__generated__/StoreModalCheckoutQuery.graphql.js +194 -0
  90. package/dist-cjs/__generated__/StoreModalContainerQuery.graphql.js +228 -0
  91. package/dist-cjs/__generated__/StoreModalDownloadRefetchQuery.graphql.js +102 -0
  92. package/dist-cjs/__generated__/StoreModalDownload_order.graphql.js +40 -0
  93. package/dist-cjs/__generated__/StoreModalFamilyButton_collection.graphql.js +135 -0
  94. package/dist-cjs/__generated__/StoreModalFamily_collection.graphql.js +130 -0
  95. package/dist-cjs/__generated__/StoreModalIndexItem_fontCollection.graphql.js +98 -0
  96. package/dist-cjs/__generated__/StoreModalIndexQuery.graphql.js +263 -0
  97. package/dist-cjs/__generated__/StoreModalOrderVariableSelection_order.graphql.js +98 -0
  98. package/dist-cjs/__generated__/StoreModalOrderVariableSelection_viewer.graphql.js +66 -0
  99. package/dist-cjs/__generated__/StoreModalProductContent_collection.graphql.js +92 -0
  100. package/dist-cjs/__generated__/StoreModalProductLicenseSelection_collection.graphql.js +47 -0
  101. package/dist-cjs/__generated__/StoreModalProductLicense_license.graphql.js +104 -0
  102. package/dist-cjs/__generated__/StoreModalProductQuery.graphql.js +702 -0
  103. package/dist-cjs/__generated__/StoreModalProductRefetchQuery.graphql.js +433 -0
  104. package/dist-cjs/__generated__/StoreModalProductSummaryAddToCartMutation.graphql.js +149 -0
  105. package/dist-cjs/__generated__/StoreModalProductSummaryClearCartMutation.graphql.js +81 -0
  106. package/dist-cjs/__generated__/StoreModalProductSummaryRefetchQuery.graphql.js +281 -0
  107. package/dist-cjs/__generated__/StoreModalProductSummary_viewer.graphql.js +243 -0
  108. package/dist-cjs/__generated__/StoreModalReviewIdentity_identity.graphql.js +52 -0
  109. package/dist-cjs/__generated__/StoreModalStyleButton_fontStyle.graphql.js +113 -0
  110. package/dist-cjs/__generated__/StoreModalUnifiedCheckoutCompleteOrderMutation.graphql.js +302 -0
  111. package/dist-cjs/__generated__/StoreModalUnifiedCheckoutUpdateCustomerMutation.graphql.js +323 -0
  112. package/dist-cjs/__generated__/StoreModalUnifiedCheckoutUpdateOrderMutation.graphql.js +473 -0
  113. package/dist-cjs/__generated__/StoreModalUnifiedCheckout_order.graphql.js +237 -0
  114. package/dist-cjs/__generated__/StoreModalUnifiedCheckout_viewer.graphql.js +117 -0
  115. package/dist-cjs/__generated__/StripeProviderCreateCheckoutSessionMutation.graphql.js +105 -0
  116. package/dist-cjs/__generated__/StripeProvider_viewer.graphql.js +139 -0
  117. package/dist-cjs/__generated__/TestFontsFormUpdateCustomerMutation.graphql.js +770 -0
  118. package/dist-cjs/__generated__/TestFontsForm_Query.graphql.js +126 -0
  119. package/dist-cjs/__generated__/TestModeBannerQuery.graphql.js +87 -0
  120. package/dist-cjs/__generated__/ThemeConfigQuery.graphql.js +87 -0
  121. package/dist-cjs/__generated__/TypeTesterFeaturesButton_fontStyle.graphql.js +32 -0
  122. package/dist-cjs/__generated__/TypeTesterFeatures_fontStyle.graphql.js +36 -0
  123. package/dist-cjs/__generated__/TypeTesterFloatingToolbar_testers.graphql.js +53 -0
  124. package/dist-cjs/__generated__/TypeTesterStandaloneChangedStylesQuery.graphql.js +347 -0
  125. package/dist-cjs/__generated__/TypeTesterStandaloneQuery.graphql.js +450 -0
  126. package/dist-cjs/__generated__/TypeTesterStyleSelectData_fontStyle.graphql.js +106 -0
  127. package/dist-cjs/__generated__/TypeTesterStyleSelectData_fontStyleData.graphql.js +88 -0
  128. package/dist-cjs/__generated__/TypeTesterStyleSelectData_viewer.graphql.js +166 -0
  129. package/dist-cjs/__generated__/TypeTesterToolbar_fontStyle.graphql.js +36 -0
  130. package/dist-cjs/__generated__/TypeTesterVariableAxes_fontStyle.graphql.js +61 -0
  131. package/dist-cjs/__generated__/TypeTester_fontStyle.graphql.js +106 -0
  132. package/dist-cjs/__generated__/TypeTester_viewer.graphql.js +40 -0
  133. package/dist-cjs/__generated__/TypeTestersChangedStylesQuery.graphql.js +347 -0
  134. package/dist-cjs/__generated__/TypeTestersIDQuery.graphql.js +637 -0
  135. package/dist-cjs/__generated__/TypeTestersRefetchQuery.graphql.js +554 -0
  136. package/dist-cjs/__generated__/TypeTestersSlugQuery.graphql.js +644 -0
  137. package/dist-cjs/__generated__/TypeTesters_collection.graphql.js +258 -0
  138. package/dist-cjs/__generated__/TypeTesters_viewer.graphql.js +40 -0
  139. package/dist-cjs/__generated__/VariableTableAmounts_option.graphql.js +34 -0
  140. package/dist-cjs/__generated__/VariableTableAmounts_variable.graphql.js +34 -0
  141. package/dist-cjs/__generated__/productState_Query.graphql.js +184 -0
  142. package/dist-cjs/__generated__/productState_bundle.graphql.js +79 -0
  143. package/dist-cjs/__generated__/productState_collection.graphql.js +90 -0
  144. package/dist-cjs/__generated__/productState_collectionBundle.graphql.js +88 -0
  145. package/dist-cjs/__generated__/productState_node.graphql.js +122 -0
  146. package/dist-cjs/__generated__/productState_sku.graphql.js +51 -0
  147. package/dist-cjs/__generated__/useFeaturesData_fontStyle.graphql.js +64 -0
  148. package/dist-cjs/__generated__/useFontStyle_fontStyle.graphql.js +94 -0
  149. package/dist-cjs/__generated__/useTotalStyles_fontCollection.graphql.js +57 -0
  150. package/dist-cjs/__tests__/collectionBundleSelection.test.js +1630 -0
  151. package/dist-cjs/components/AddToCartBanner/index.js +75 -0
  152. package/dist-cjs/components/BuyButton/index.js +124 -0
  153. package/dist-cjs/components/BuyButton/index.server.js +36 -0
  154. package/dist-cjs/components/BuyingOptions/index.js +23 -0
  155. package/dist-cjs/components/Cart/AddressFields.js +162 -0
  156. package/dist-cjs/components/Cart/CartItem/CartItemAdditionalLicenses.js +33 -0
  157. package/dist-cjs/components/Cart/CartItem/CartItemLicense.js +66 -0
  158. package/dist-cjs/components/Cart/CartItem/CartItemProduct.js +36 -0
  159. package/dist-cjs/components/Cart/CartItem/CartItemVariable.js +66 -0
  160. package/dist-cjs/components/Cart/CartItem/VariableTextInput.js +79 -0
  161. package/dist-cjs/components/Cart/CartItem/index.js +95 -0
  162. package/dist-cjs/components/Cart/CartOrder.js +314 -0
  163. package/dist-cjs/components/Cart/CartState.js +93 -0
  164. package/dist-cjs/components/Cart/CartTotals.js +97 -0
  165. package/dist-cjs/components/Cart/Checkout.js +473 -0
  166. package/dist-cjs/components/Cart/CheckoutSteps.js +15 -0
  167. package/dist-cjs/components/Cart/CouponCodeInput.js +90 -0
  168. package/dist-cjs/components/Cart/CustomerFields.js +80 -0
  169. package/dist-cjs/components/Cart/Download.js +62 -0
  170. package/dist-cjs/components/Cart/EmptyCart.js +42 -0
  171. package/dist-cjs/components/Cart/IdentityBox.js +37 -0
  172. package/dist-cjs/components/Cart/ShareCart.js +87 -0
  173. package/dist-cjs/components/Cart/index.js +36 -0
  174. package/dist-cjs/components/Cart/injectRelayEnvironment.js +21 -0
  175. package/dist-cjs/components/Cart/types.js +5 -0
  176. package/dist-cjs/components/Cart/utils.js +8 -0
  177. package/dist-cjs/components/CartButton/index.js +127 -0
  178. package/dist-cjs/components/CartButton/index.server.js +18 -0
  179. package/dist-cjs/components/CharacterViewer/StyleSelect.js +60 -0
  180. package/dist-cjs/components/CharacterViewer/index.js +441 -0
  181. package/dist-cjs/components/CharacterViewer/index.server.js +36 -0
  182. package/dist-cjs/components/Checkbox/index.js +27 -0
  183. package/dist-cjs/components/CollectionAa/index.js +38 -0
  184. package/dist-cjs/components/ComponentsContext.js +12 -0
  185. package/dist-cjs/components/ConfigContext.js +86 -0
  186. package/{dist-bundle/chunks/consent-DMvR5rEh.js → dist-cjs/components/ConsentBanner/consent.js} +12 -4
  187. package/dist-cjs/components/ConsentBanner/index.js +84 -0
  188. package/dist-cjs/components/CookieNotification/index.js +83 -0
  189. package/{dist-bundle/chunks/CorsErrorModal-C1g_-3Re.js → dist-cjs/components/CorsErrorModal.js} +19 -16
  190. package/dist-cjs/components/CouponText/index.js +38 -0
  191. package/dist-cjs/components/CustomerLoginForm/index.js +88 -0
  192. package/dist-cjs/components/Family/FamilyList.js +43 -0
  193. package/dist-cjs/components/Family/index.js +77 -0
  194. package/dist-cjs/components/FontFamilies/index.js +53 -0
  195. package/dist-cjs/components/FontStyle/index.js +37 -0
  196. package/dist-cjs/components/FontdueProvider/FontdueProviderClientComponent.js +74 -0
  197. package/dist-cjs/components/FontdueProvider/index.js +43 -0
  198. package/dist-cjs/components/FontdueProvider/index.server.js +35 -0
  199. package/dist-cjs/components/FontdueProvider/useAuxUIOwner.js +32 -0
  200. package/dist-cjs/components/Icons/Align.js +58 -0
  201. package/dist-cjs/components/Icons/ArrowDownRight.js +19 -0
  202. package/dist-cjs/components/Icons/ArrowLeft.js +22 -0
  203. package/dist-cjs/components/Icons/ArrowRight.js +19 -0
  204. package/dist-cjs/components/Icons/CarrotDown.js +19 -0
  205. package/dist-cjs/components/Icons/CarrotUp.js +19 -0
  206. package/dist-cjs/components/Icons/Cart.js +23 -0
  207. package/dist-cjs/components/Icons/CartNew.js +33 -0
  208. package/dist-cjs/components/Icons/Check.js +19 -0
  209. package/dist-cjs/components/Icons/Checkbox.js +24 -0
  210. package/dist-cjs/components/Icons/CheckboxChecked.js +24 -0
  211. package/dist-cjs/components/Icons/CheckboxCrossed.js +26 -0
  212. package/dist-cjs/components/Icons/CircledCheck.js +21 -0
  213. package/dist-cjs/components/Icons/CircledInfo.js +21 -0
  214. package/dist-cjs/components/Icons/CircledMinus.js +21 -0
  215. package/dist-cjs/components/Icons/ColorPicker.js +19 -0
  216. package/dist-cjs/components/Icons/CreditCard.js +21 -0
  217. package/dist-cjs/components/Icons/DownArrow.js +24 -0
  218. package/dist-cjs/components/Icons/DownloadFonts.js +25 -0
  219. package/dist-cjs/components/Icons/FrowningFace.js +25 -0
  220. package/dist-cjs/components/Icons/License.js +19 -0
  221. package/dist-cjs/components/Icons/Receipt.js +34 -0
  222. package/dist-cjs/components/Icons/User.js +19 -0
  223. package/dist-cjs/components/Icons/X.js +19 -0
  224. package/dist-cjs/components/Icons/index.js +167 -0
  225. package/dist-cjs/components/NewsletterSignup/NewsletterSignupElement.js +15 -0
  226. package/dist-cjs/components/NewsletterSignup/index.js +192 -0
  227. package/dist-cjs/components/NewsletterSignup/index.server.js +18 -0
  228. package/dist-cjs/components/NodePasswordForm/index.js +114 -0
  229. package/dist-cjs/components/OrderVariableSelection/OrderVariableSelectionRedux.js +66 -0
  230. package/dist-cjs/components/OrderVariableSelection/index.js +199 -0
  231. package/dist-cjs/components/Precart/License.js +70 -0
  232. package/dist-cjs/components/Precart/index.js +331 -0
  233. package/dist-cjs/components/Price/index.js +111 -0
  234. package/dist-cjs/components/PriceBar/PriceBarSection.js +61 -0
  235. package/dist-cjs/components/PriceBar/index.js +49 -0
  236. package/dist-cjs/components/Root/index.js +208 -0
  237. package/dist-cjs/components/Root/productState.js +143 -0
  238. package/dist-cjs/components/SKUPrice/index.js +46 -0
  239. package/dist-cjs/components/Select/index.js +36 -0
  240. package/dist-cjs/components/SelectButton/index.js +79 -0
  241. package/dist-cjs/components/ServerConfigProvider/index.js +39 -0
  242. package/dist-cjs/components/SpecimenLink/index.js +37 -0
  243. package/dist-cjs/components/StickyNav/index.js +80 -0
  244. package/dist-cjs/components/StoreModal/StoreModalBundleButton.js +47 -0
  245. package/dist-cjs/components/StoreModal/StoreModalCart.js +79 -0
  246. package/dist-cjs/components/StoreModal/StoreModalCheckout.js +24 -0
  247. package/dist-cjs/components/StoreModal/StoreModalCheckoutContext.js +14 -0
  248. package/dist-cjs/components/StoreModal/StoreModalContainer.js +117 -0
  249. package/dist-cjs/components/StoreModal/StoreModalDownload.js +38 -0
  250. package/dist-cjs/components/StoreModal/StoreModalFamily.js +58 -0
  251. package/dist-cjs/components/StoreModal/StoreModalFamilyButton.js +69 -0
  252. package/dist-cjs/components/StoreModal/StoreModalIndex.js +27 -0
  253. package/dist-cjs/components/StoreModal/StoreModalIndexItem.js +63 -0
  254. package/dist-cjs/components/StoreModal/StoreModalLicenseeIsBillingSelection.js +30 -0
  255. package/dist-cjs/components/StoreModal/StoreModalLoader.js +22 -0
  256. package/dist-cjs/components/StoreModal/StoreModalOrderVariableSelection.js +89 -0
  257. package/dist-cjs/components/StoreModal/StoreModalProduct.js +154 -0
  258. package/dist-cjs/components/StoreModal/StoreModalReviewIdentity.js +18 -0
  259. package/dist-cjs/components/StoreModal/StoreModalRouter.js +28 -0
  260. package/dist-cjs/components/StoreModal/StoreModalStyleButton.js +52 -0
  261. package/dist-cjs/components/StoreModal/index.js +39 -0
  262. package/dist-cjs/components/StoreModal/routes.js +51 -0
  263. package/dist-cjs/components/StoreModal/types.js +5 -0
  264. package/dist-cjs/components/StoreModalProductLicenseSelection/LicenseElement.js +46 -0
  265. package/dist-cjs/components/StoreModalProductLicenseSelection/LicenseVariableElement.js +35 -0
  266. package/dist-cjs/components/StoreModalProductLicenseSelection/LicenseVariableRadioElement.js +47 -0
  267. package/dist-cjs/components/StoreModalProductLicenseSelection/StoreModalProductLicense.js +133 -0
  268. package/dist-cjs/components/StoreModalProductLicenseSelection/index.js +31 -0
  269. package/dist-cjs/components/StoreModalProductSummary/index.js +219 -0
  270. package/dist-cjs/components/StripeLogo.js +17 -0
  271. package/dist-cjs/components/StripeProvider/index.js +172 -0
  272. package/dist-cjs/components/Switch/index.js +7 -0
  273. package/dist-cjs/components/TestFontsForm/TestFontsFormElement.js +15 -0
  274. package/dist-cjs/components/TestFontsForm/index.js +208 -0
  275. package/dist-cjs/components/TestFontsForm/index.server.js +18 -0
  276. package/dist-cjs/components/TestModeBanner/index.js +34 -0
  277. package/dist-cjs/components/TextField/index.js +42 -0
  278. package/dist-cjs/components/ThemeConfig/index.js +41 -0
  279. package/dist-cjs/components/ThemeConfig/index.server.js +17 -0
  280. package/{dist-bundle/chunks/index-DsvF5W13.js → dist-cjs/components/Tracking/index.js} +19 -14
  281. package/dist-cjs/components/TypeTester/TypeTesterAlignButtons.js +34 -0
  282. package/dist-cjs/components/TypeTester/TypeTesterBullet.js +23 -0
  283. package/dist-cjs/components/TypeTester/TypeTesterContent.js +58 -0
  284. package/dist-cjs/components/TypeTester/TypeTesterContext.js +166 -0
  285. package/dist-cjs/components/TypeTester/TypeTesterEditAll.js +36 -0
  286. package/dist-cjs/components/TypeTester/TypeTesterFeatures.js +133 -0
  287. package/dist-cjs/components/TypeTester/TypeTesterFeaturesButton.js +82 -0
  288. package/dist-cjs/components/TypeTester/TypeTesterFitter.js +21 -0
  289. package/dist-cjs/components/TypeTester/TypeTesterFloatingToolbar.js +79 -0
  290. package/dist-cjs/components/TypeTester/TypeTesterInput.js +72 -0
  291. package/dist-cjs/components/TypeTester/TypeTesterSlider.js +76 -0
  292. package/dist-cjs/components/TypeTester/TypeTesterStandalone.js +137 -0
  293. package/dist-cjs/components/TypeTester/TypeTesterStandalone.preload.js +27 -0
  294. package/dist-cjs/components/TypeTester/TypeTesterStandalone.server.js +26 -0
  295. package/dist-cjs/components/TypeTester/TypeTesterStandaloneElement.js +65 -0
  296. package/dist-cjs/components/TypeTester/TypeTesterState.js +133 -0
  297. package/dist-cjs/components/TypeTester/TypeTesterStyleSelect.js +101 -0
  298. package/dist-cjs/components/TypeTester/TypeTesterStyleSelectData.js +102 -0
  299. package/dist-cjs/components/TypeTester/TypeTesterToolbar.js +94 -0
  300. package/dist-cjs/components/TypeTester/TypeTesterVariableAxes.js +65 -0
  301. package/dist-cjs/components/TypeTester/features.js +150 -0
  302. package/dist-cjs/components/TypeTester/index.js +169 -0
  303. package/dist-cjs/components/TypeTester/types.js +14 -0
  304. package/dist-cjs/components/TypeTester/useFeaturesData.js +36 -0
  305. package/dist-cjs/components/TypeTester/useTypeTesterStyler.js +83 -0
  306. package/dist-cjs/components/TypeTesters/TypeTestersElement.js +33 -0
  307. package/dist-cjs/components/TypeTesters/index.js +271 -0
  308. package/dist-cjs/components/TypeTesters/index.server.js +44 -0
  309. package/dist-cjs/components/UrlContext.js +16 -0
  310. package/dist-cjs/components/VariableTableAmounts/index.js +28 -0
  311. package/dist-cjs/components/elements/Button/index.js +21 -0
  312. package/dist-cjs/components/elements/EmptyCart/index.js +30 -0
  313. package/dist-cjs/components/elements/StoreModalCartLayout/index.js +38 -0
  314. package/dist-cjs/components/elements/StoreModalContainer/StoreModalContainerContext.js +11 -0
  315. package/dist-cjs/components/elements/StoreModalContainer/index.js +77 -0
  316. package/dist-cjs/components/elements/StoreModalDownloadLayout/index.js +25 -0
  317. package/dist-cjs/components/elements/StoreModalFamily/index.js +31 -0
  318. package/dist-cjs/components/elements/StoreModalFamilyButton/index.js +45 -0
  319. package/dist-cjs/components/elements/StoreModalIndexItem/index.js +35 -0
  320. package/dist-cjs/components/elements/StoreModalLicenseeIsBillingIdentityElement.js +59 -0
  321. package/dist-cjs/components/elements/StoreModalLoadingScreen/index.js +14 -0
  322. package/dist-cjs/components/elements/StoreModalPageContainer/index.js +22 -0
  323. package/dist-cjs/components/elements/StoreModalStyleButton/index.js +37 -0
  324. package/dist-cjs/components/elements/StoreModalUnifiedCheckout.js +753 -0
  325. package/dist-cjs/components/useConsent.js +26 -0
  326. package/dist-cjs/components/useFont.js +76 -0
  327. package/dist-cjs/components/useFontStyle.js +58 -0
  328. package/dist-cjs/components/useInterval.js +28 -0
  329. package/dist-cjs/components/useTotalStyles.js +26 -0
  330. package/{dist-bundle/index.js → dist-cjs/config.js} +8 -4
  331. package/dist-cjs/corsError.js +89 -0
  332. package/dist-cjs/data/unicodeData.js +1 -0
  333. package/dist-cjs/fontLoader.js +55 -0
  334. package/dist-cjs/global-shim.js +12 -0
  335. package/dist-cjs/hooks/useAutofit.js +114 -0
  336. package/dist-cjs/hooks/useLicenseAndOrderVariables.js +25 -0
  337. package/dist-cjs/hooks/useRefetchOnLicenseChanges.js +60 -0
  338. package/dist-cjs/hooks.js +18 -0
  339. package/dist-cjs/index.js +18 -0
  340. package/dist-cjs/package.json +1 -0
  341. package/dist-cjs/react-ranger.d.js +1 -0
  342. package/dist-cjs/react-ranger.js +301 -0
  343. package/dist-cjs/reducer.js +291 -0
  344. package/dist-cjs/relay/environment.js +148 -0
  345. package/{dist-bundle/TypeTester.preload.js → dist-cjs/relay/loadSerializableQuery.js} +8 -26
  346. package/dist-cjs/relay/useSerializablePreloadedQuery.js +52 -0
  347. package/dist-cjs/retryImport.js +24 -0
  348. package/dist-cjs/scripts/updateUnicodeData.js +49 -0
  349. package/dist-cjs/utils.js +107 -0
  350. package/dist-cjs/vanilla/FontStyle.js +58 -0
  351. package/dist-cjs/vanilla/TruncatedMarkdown.js +28 -0
  352. package/package.json +1 -1
  353. package/dist-bundle/FontdueProvider.js +0 -6
  354. package/dist-bundle/FontdueProvider.js.map +0 -1
  355. package/dist-bundle/TypeTester.js +0 -7
  356. package/dist-bundle/TypeTester.js.map +0 -1
  357. package/dist-bundle/TypeTester.preload.js.map +0 -1
  358. package/dist-bundle/chunks/ComponentsContext-CmkN9J4X.js +0 -20843
  359. package/dist-bundle/chunks/ComponentsContext-CmkN9J4X.js.map +0 -1
  360. package/dist-bundle/chunks/CorsErrorModal-C1g_-3Re.js.map +0 -1
  361. package/dist-bundle/chunks/TypeTesterStandalone-BMWuv8Ca.js +0 -27486
  362. package/dist-bundle/chunks/TypeTesterStandalone-BMWuv8Ca.js.map +0 -1
  363. package/dist-bundle/chunks/consent-DMvR5rEh.js.map +0 -1
  364. package/dist-bundle/chunks/index-BNSbxp7B.js +0 -78
  365. package/dist-bundle/chunks/index-BNSbxp7B.js.map +0 -1
  366. package/dist-bundle/chunks/index-C4ak9qTL.js +0 -423
  367. package/dist-bundle/chunks/index-C4ak9qTL.js.map +0 -1
  368. package/dist-bundle/chunks/index-DsvF5W13.js.map +0 -1
  369. package/dist-bundle/chunks/index-o29NNufd.js.map +0 -1
  370. package/dist-bundle/index.js.map +0 -1
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = CartTotals;
7
+ var _CartTotals_order2 = _interopRequireDefault(require("../../__generated__/CartTotals_order.graphql"));
8
+ var _react = _interopRequireDefault(require("react"));
9
+ var _reactRelay = require("react-relay");
10
+ var _relayRuntime = require("relay-runtime");
11
+ var _Price = _interopRequireDefault(require("../Price"));
12
+ var _CouponText = _interopRequireDefault(require("../CouponText"));
13
+ var _Icons = require("../Icons");
14
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
15
+ function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
16
+ function percentage(decimalValue) {
17
+ if (!decimalValue) return null;
18
+ return `${parseFloat(decimalValue) * 100}%`;
19
+ }
20
+ function PriceBlock({
21
+ label,
22
+ belowPrice,
23
+ price,
24
+ invert,
25
+ ...rest
26
+ }) {
27
+ return /*#__PURE__*/_react.default.createElement("div", _extends({
28
+ className: "cart__price-block",
29
+ "data-label": label
30
+ }, rest), /*#__PURE__*/_react.default.createElement("div", {
31
+ className: "cart__price-block__label"
32
+ }, label), /*#__PURE__*/_react.default.createElement("div", {
33
+ className: "cart__price-block__price"
34
+ }, /*#__PURE__*/_react.default.createElement(_Price.default, {
35
+ price: price,
36
+ invert: invert
37
+ }), belowPrice));
38
+ }
39
+ function CartTotals({
40
+ order: orderKey,
41
+ onRemoveDiscount,
42
+ allowDiscountRemoval = true,
43
+ billingIdentity,
44
+ taxSystem
45
+ }) {
46
+ const order = (0, _reactRelay.useFragment)((_CartTotals_order2.default.hash && _CartTotals_order2.default.hash !== "aee2e882d4d0d063fd4eaf6cb43485db" && console.error("The definition of 'CartTotals_order' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."), _CartTotals_order2.default), orderKey);
47
+ return /*#__PURE__*/_react.default.createElement("div", {
48
+ className: "cart__price-blocks",
49
+ "data-has-discount": Boolean(order.discount)
50
+ }, /*#__PURE__*/_react.default.createElement(PriceBlock, {
51
+ label: "Subtotal",
52
+ price: order.subtotal,
53
+ "data-line": "subtotal"
54
+ }), order.discount && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(PriceBlock, {
55
+ label: "Discount applied",
56
+ price: order.discount.amount,
57
+ invert: true,
58
+ belowPrice: allowDiscountRemoval && /*#__PURE__*/_react.default.createElement("button", {
59
+ title: "Remove discount",
60
+ type: "button",
61
+ onClick: onRemoveDiscount,
62
+ className: "cart__remove-discount-button"
63
+ }, /*#__PURE__*/_react.default.createElement(_Icons.X, null)),
64
+ "data-line": "discount"
65
+ }), order.discount.coupon && /*#__PURE__*/_react.default.createElement("p", {
66
+ className: "cart__coupon-text"
67
+ }, '(', /*#__PURE__*/_react.default.createElement(_CouponText.default, {
68
+ coupon: order.discount.coupon,
69
+ subtract: order.discount.amount ? order.discount.amount.amount : 0
70
+ }), ')'), /*#__PURE__*/_react.default.createElement(PriceBlock, {
71
+ label: "Discounted subtotal",
72
+ price: order.discountedSubtotal,
73
+ "data-line": "discounted-subtotal"
74
+ })), taxSystem !== 'none' && /*#__PURE__*/_react.default.createElement("div", {
75
+ className: "cart__price-block",
76
+ "data-line": "taxes"
77
+ }, /*#__PURE__*/_react.default.createElement("div", {
78
+ className: "cart__price-block__label"
79
+ }, order.taxNotApplicable ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, order.taxName ?? 'VAT', " not applicable", order.taxNotApplicableReason && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement("span", {
80
+ className: "cart__price-block__placeholder"
81
+ }, order.taxNotApplicableReason))) : order.taxes && order.taxName ? `${order.taxName} (${percentage(order.taxRate)})` : 'Tax'), /*#__PURE__*/_react.default.createElement("div", {
82
+ className: "cart__price-block__price"
83
+ }, order.taxes ? /*#__PURE__*/_react.default.createElement(_Price.default, {
84
+ price: order.taxes
85
+ }) : taxSystem === 'stripe' || taxSystem === 'fontdue' && !billingIdentity ? /*#__PURE__*/_react.default.createElement("span", {
86
+ className: "cart__price-block__placeholder"
87
+ }, "Calculated at checkout") : '-')), /*#__PURE__*/_react.default.createElement("div", {
88
+ className: "cart__price-block",
89
+ "data-line": "total"
90
+ }, /*#__PURE__*/_react.default.createElement("div", {
91
+ className: "cart__price-block__label"
92
+ }, "Total", order.gstIncluded ? ' including GST' : ''), /*#__PURE__*/_react.default.createElement("div", {
93
+ className: "cart__price-block__price"
94
+ }, /*#__PURE__*/_react.default.createElement(_Price.default, {
95
+ price: order.total
96
+ }))));
97
+ }
@@ -0,0 +1,473 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _Checkout_viewer2 = _interopRequireDefault(require("../../__generated__/Checkout_viewer.graphql"));
8
+ var _Checkout_order2 = _interopRequireDefault(require("../../__generated__/Checkout_order.graphql"));
9
+ var _CheckoutUpdateOrderMutation2 = _interopRequireDefault(require("../../__generated__/CheckoutUpdateOrderMutation.graphql"));
10
+ var _Checkout_UpdateOrderErrors2 = _interopRequireDefault(require("../../__generated__/Checkout_UpdateOrderErrors.graphql"));
11
+ var _CheckoutUpdateCustomerMutation2 = _interopRequireDefault(require("../../__generated__/CheckoutUpdateCustomerMutation.graphql"));
12
+ var _Checkout_identity2 = _interopRequireDefault(require("../../__generated__/Checkout_identity.graphql"));
13
+ var _react = _interopRequireWildcard(require("react"));
14
+ var _reactRelay = require("react-relay");
15
+ var _reactStripeJs = require("@stripe/react-stripe-js");
16
+ var _Icons = require("../Icons");
17
+ var _AddressFields = _interopRequireDefault(require("./AddressFields"));
18
+ var _CustomerFields = _interopRequireDefault(require("./CustomerFields"));
19
+ var _CheckoutSteps = _interopRequireDefault(require("./CheckoutSteps"));
20
+ var _ConfigContext = _interopRequireDefault(require("../ConfigContext"));
21
+ var _utils = require("../../utils");
22
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
23
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
24
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
25
+ const MOBILE = 'mobile';
26
+ const DESKTOP = 'desktop';
27
+
28
+ // countryData will take care of knowing which address fields
29
+ // are required
30
+ const IDENTITY_REQUIRED_FIELDS = ['name', 'email', 'country'];
31
+ _Checkout_identity2.default.hash && _Checkout_identity2.default.hash !== "bd574bf28c2ab018312eb3f033fabb73" && console.error("The definition of 'Checkout_identity' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."), _Checkout_identity2.default;
32
+ const updateCustomerMutation = (_CheckoutUpdateCustomerMutation2.default.hash && _CheckoutUpdateCustomerMutation2.default.hash !== "0b5cfd0771be9b3107817aefcc7029cf" && console.error("The definition of 'CheckoutUpdateCustomerMutation' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."), _CheckoutUpdateCustomerMutation2.default);
33
+ _Checkout_UpdateOrderErrors2.default.hash && _Checkout_UpdateOrderErrors2.default.hash !== "15a33f6b0c5a3de7f1b1dee6982f12ff" && console.error("The definition of 'Checkout_UpdateOrderErrors' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."), _Checkout_UpdateOrderErrors2.default;
34
+ const updateOrderMutation = (_CheckoutUpdateOrderMutation2.default.hash && _CheckoutUpdateOrderMutation2.default.hash !== "089745e2478edf385a09357905e4173c" && console.error("The definition of 'CheckoutUpdateOrderMutation' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."), _CheckoutUpdateOrderMutation2.default);
35
+ const Checkout = ({
36
+ order,
37
+ viewer,
38
+ checkoutStep,
39
+ setCheckoutStep,
40
+ onScrollToTop,
41
+ onComplete,
42
+ error: errorProp,
43
+ saveText = 'Next',
44
+ onCancel,
45
+ skipPaymentMethod = false
46
+ }) => {
47
+ const orderData = (0, _reactRelay.useFragment)((_Checkout_order2.default.hash && _Checkout_order2.default.hash !== "693ae9c7f2c7fe9a179bad7b86c16928" && console.error("The definition of 'Checkout_order' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."), _Checkout_order2.default), order);
48
+ const viewerData = (0, _reactRelay.useFragment)((_Checkout_viewer2.default.hash && _Checkout_viewer2.default.hash !== "be63ce5562013aa6a1439e6259c80e2f" && console.error("The definition of 'Checkout_viewer' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."), _Checkout_viewer2.default), viewer);
49
+ const identity = {
50
+ name: '',
51
+ organization: '',
52
+ email: '',
53
+ phone: '',
54
+ country: viewerData.country,
55
+ administrativeArea: null,
56
+ street: '',
57
+ locality: '',
58
+ sublocality: '',
59
+ zip: '',
60
+ vatNumber: ''
61
+ };
62
+
63
+ // Transform phoneNullable from GraphQL to phone for internal state
64
+ const transformIdentity = data => {
65
+ if (!data) return identity;
66
+ return {
67
+ name: data.name ?? '',
68
+ organization: data.organization ?? null,
69
+ email: data.email ?? '',
70
+ phone: data.phoneNullable ?? '',
71
+ country: data.country ?? '',
72
+ administrativeArea: data.administrativeArea ?? null,
73
+ street: data.street ?? null,
74
+ locality: data.locality ?? null,
75
+ sublocality: data.sublocality ?? null,
76
+ zip: data.zip ?? null,
77
+ vatNumber: data.vatNumber ?? null
78
+ };
79
+ };
80
+ const [customer, setCustomer] = (0, _react.useState)(orderData?.customer ?? {
81
+ name: null,
82
+ email: null,
83
+ newsletterOptIn: false
84
+ });
85
+ const [billingIdentity, setBillingIdentity] = (0, _react.useState)(transformIdentity(orderData?.billingIdentity));
86
+ const [licenseeIdentity, setLicenseeIdentity] = (0, _react.useState)(transformIdentity(orderData?.licenseeIdentity));
87
+ const [billingRequired, setBillingRequired] = (0, _react.useState)();
88
+ const [licenseeRequired, setLicenseeRequired] = (0, _react.useState)(null);
89
+ const [licenseeIsBillingIdentity, setLicenseeIsBillingIdentity] = (0, _react.useState)(orderData?.licenseeIsBillingIdentity ?? true);
90
+ const [error, setError] = (0, _react.useState)(null);
91
+ const [submitting, setSubmitting] = (0, _react.useState)(false);
92
+ const [mediaQuery, setMediaQuery] = (0, _react.useState)(DESKTOP);
93
+ (0, _react.useEffect)(() => {
94
+ const updateMediaQuery = () => {
95
+ setMediaQuery(window.innerWidth < 960 ? MOBILE : DESKTOP);
96
+ };
97
+ updateMediaQuery();
98
+ window.addEventListener('resize', updateMediaQuery);
99
+ return () => window.removeEventListener('resize', updateMediaQuery);
100
+ }, []);
101
+ (0, _react.useEffect)(() => {
102
+ setError(null);
103
+ setErrorsObject(null);
104
+ onScrollToTop();
105
+ }, [checkoutStep]);
106
+ const environment = (0, _reactRelay.useRelayEnvironment)();
107
+ const [errorsObject, setErrorsObject] = (0, _react.useState)(null);
108
+ const onCompleted = (res, errors, onSuccess) => {
109
+ if (errors && errors.length > 0) {
110
+ setError(errors[0].message);
111
+ setSubmitting(false);
112
+ onScrollToTop();
113
+ } else if ('updateOrder' in res && res.updateOrder?.errors) {
114
+ setSubmitting(false);
115
+ setErrorsObject(res.updateOrder.errors);
116
+ onScrollToTop();
117
+ } else {
118
+ if (typeof onSuccess === 'function') onSuccess();
119
+ setSubmitting(false);
120
+ setError(null);
121
+ }
122
+ };
123
+ const onError = error => {
124
+ setError(error.message);
125
+ setSubmitting(false);
126
+ onScrollToTop();
127
+ };
128
+ const updateCustomer = (variables, onSuccess) => {
129
+ (0, _reactRelay.commitMutation)(environment, {
130
+ mutation: updateCustomerMutation,
131
+ variables,
132
+ onCompleted: (res, errors) => onCompleted(res, errors, onSuccess),
133
+ onError
134
+ });
135
+ };
136
+ const updateOrder = (variables, onSuccess) => {
137
+ (0, _reactRelay.commitMutation)(environment, {
138
+ mutation: updateOrderMutation,
139
+ variables,
140
+ onCompleted: (res, errors) => onCompleted(res, errors, onSuccess)
141
+ });
142
+ };
143
+ let stripe;
144
+ let elements;
145
+ if (!skipPaymentMethod) {
146
+ // https://twitter.com/acdlite/status/1581401077915975680
147
+ stripe = (0, _reactStripeJs.useStripe)();
148
+ elements = (0, _reactStripeJs.useElements)();
149
+ }
150
+ const handleSubmit = async () => {
151
+ // Validate Stripe elements first (for Billing and Licensee steps)
152
+ if ((checkoutStep === _CheckoutSteps.default.Billing || checkoutStep === _CheckoutSteps.default.Licensee && !licenseeIsBillingIdentity) && elements) {
153
+ const result = await elements.submit();
154
+ if (result.error) {
155
+ // Stripe will show validation errors in the UI
156
+ onScrollToTop();
157
+ return;
158
+ }
159
+ }
160
+ setSubmitting(true);
161
+ setError(null);
162
+ if (checkoutStep === _CheckoutSteps.default.Customer) {
163
+ if (!billingIdentity.name && !billingIdentity.email) {
164
+ setBillingIdentity({
165
+ ...billingIdentity,
166
+ name: customer.name ?? '',
167
+ email: customer.email ?? ''
168
+ });
169
+ }
170
+ updateCustomer({
171
+ input: customer
172
+ }, () => setCheckoutStep(_CheckoutSteps.default.Billing));
173
+ }
174
+ if (checkoutStep === _CheckoutSteps.default.Billing) {
175
+ updateOrder({
176
+ input: {
177
+ billingIdentity
178
+ }
179
+ }, () => setCheckoutStep(_CheckoutSteps.default.Licensee));
180
+ }
181
+ if (checkoutStep === _CheckoutSteps.default.Licensee) {
182
+ updateOrder({
183
+ input: {
184
+ licenseeIsBillingIdentity,
185
+ licenseeIdentity: licenseeIsBillingIdentity ? null : licenseeIdentity
186
+ }
187
+ }, () => {
188
+ if (orderData?.canCompleteWithCoupon || skipPaymentMethod) {
189
+ onComplete();
190
+ } else {
191
+ setCheckoutStep(_CheckoutSteps.default.Payment);
192
+ }
193
+ });
194
+ }
195
+ if (checkoutStep === _CheckoutSteps.default.Payment) {
196
+ if (!stripe || !elements) {
197
+ console.error('Stripe failed to load');
198
+ return;
199
+ }
200
+ const card = elements.getElement(_reactStripeJs.CardElement);
201
+ if (!card) {
202
+ console.error('Didnt find Stripe Card element');
203
+ return;
204
+ }
205
+ stripe.createPaymentMethod({
206
+ type: 'card',
207
+ card,
208
+ billing_details: {
209
+ email: billingIdentity.email,
210
+ name: billingIdentity.name,
211
+ address: {
212
+ line1: billingIdentity.street?.split(/\n/)[0],
213
+ city: billingIdentity.locality || '',
214
+ state: billingIdentity.administrativeArea || '',
215
+ country: billingIdentity.country,
216
+ postal_code: billingIdentity.zip ?? undefined
217
+ }
218
+ }
219
+ }).then(({
220
+ paymentMethod,
221
+ error
222
+ }) => {
223
+ if (error) {
224
+ setError(error?.message ?? 'Unknown Stripe error');
225
+ setSubmitting(false);
226
+ } else {
227
+ if (paymentMethod) {
228
+ updateOrder({
229
+ input: {
230
+ stripePaymentMethodId: paymentMethod.id
231
+ }
232
+ }, onComplete);
233
+ }
234
+ }
235
+ }).catch(console.error);
236
+ }
237
+ };
238
+ const handleCustomerChange = value => setCustomer(currentValue => ({
239
+ ...currentValue,
240
+ ...value
241
+ }));
242
+ const handleBillingChange = value => {
243
+ setErrorsObject(currentValue => {
244
+ if (currentValue?.billingIdentity) {
245
+ const keys = Object.keys(value);
246
+ return {
247
+ ...currentValue,
248
+ billingIdentity: {
249
+ ...currentValue.billingIdentity,
250
+ ...keys.reduce((acc, field) => {
251
+ acc[field] = null;
252
+ return acc;
253
+ }, {})
254
+ }
255
+ };
256
+ }
257
+ return null;
258
+ });
259
+ setBillingIdentity(currentValue => ({
260
+ ...currentValue,
261
+ ...value
262
+ }));
263
+ };
264
+ const handleLicenseeChange = value => {
265
+ setErrorsObject(currentValue => {
266
+ if (currentValue?.licenseeIdentity) {
267
+ const keys = Object.keys(value);
268
+ return {
269
+ ...currentValue,
270
+ licenseeIdentity: {
271
+ ...currentValue.licenseeIdentity,
272
+ ...keys.reduce((acc, field) => {
273
+ acc[field] = undefined;
274
+ return acc;
275
+ }, {})
276
+ }
277
+ };
278
+ }
279
+ return null;
280
+ });
281
+ setLicenseeIdentity(currentValue => ({
282
+ ...currentValue,
283
+ ...value
284
+ }));
285
+ };
286
+ const isValid = () => {
287
+ if (checkoutStep === _CheckoutSteps.default.Customer) {
288
+ return Boolean(customer.name && customer.email);
289
+ }
290
+ if (checkoutStep === _CheckoutSteps.default.Billing) {
291
+ const requiredFields = IDENTITY_REQUIRED_FIELDS.concat(billingRequired ?? []);
292
+ return requiredFields.every(field => billingIdentity[field]);
293
+ }
294
+ if (checkoutStep === _CheckoutSteps.default.Licensee) {
295
+ if (licenseeIsBillingIdentity) return true;
296
+ const requiredFields = IDENTITY_REQUIRED_FIELDS.concat(licenseeRequired ?? []);
297
+ return requiredFields.every(field => licenseeIdentity[field]);
298
+ }
299
+ return true;
300
+ };
301
+ const renderErrors = () => {
302
+ if (errorsObject) {
303
+ return /*#__PURE__*/_react.default.createElement("div", {
304
+ className: "checkout-modal__errors"
305
+ }, "Please correct the errors.");
306
+ }
307
+ if (!error && !errorProp) {
308
+ return null;
309
+ }
310
+ return /*#__PURE__*/_react.default.createElement("div", {
311
+ className: "checkout-modal__errors"
312
+ }, error && /*#__PURE__*/_react.default.createElement("p", null, error), errorProp && /*#__PURE__*/_react.default.createElement("p", null, errorProp));
313
+ };
314
+ const config = (0, _react.useContext)(_ConfigContext.default);
315
+ const renderStep = checkoutStep => {
316
+ const customProperties = (0, _utils.parseCustomProperties)(viewerData.themeConfig?.customProperties);
317
+
318
+ // stripe validates that the strings match this pattern and throws an error
319
+ // if they don't, and refuses to render the element. for example if a font
320
+ // family has a special character in the name (which is actually valid).
321
+ // so we just don't try to the fontFamily if it's not gonna be valid.
322
+ // this regex is copied from the stripe js
323
+ const stripeRegex = /^[#a-zA-Z0-9-_\s,"'().]*$/;
324
+ let fontFamily = `"${viewerData.settings?.uiFontName}", sans-serif`;
325
+ if (!stripeRegex.test(fontFamily)) fontFamily = undefined;
326
+ const inputStyles = {
327
+ base: {
328
+ fontFamily,
329
+ fontSize: mediaQuery === MOBILE ? '14px' : '36px',
330
+ fontWeight: '400',
331
+ color: customProperties['--primary_text_color'],
332
+ '::placeholder': {
333
+ color: customProperties['--secondary_text_color']
334
+ }
335
+ },
336
+ invalid: {
337
+ color: customProperties['--error_color']
338
+ }
339
+ };
340
+ if (checkoutStep === _CheckoutSteps.default.Customer) {
341
+ return /*#__PURE__*/_react.default.createElement(_CustomerFields.default, {
342
+ title: "Contact information",
343
+ value: customer,
344
+ onChange: handleCustomerChange,
345
+ optInLabel: viewerData.settings?.newsletterOptInLabel
346
+ });
347
+ }
348
+ const customerBreadcrumb = /*#__PURE__*/_react.default.createElement("div", {
349
+ className: "checkout-modal__section"
350
+ }, /*#__PURE__*/_react.default.createElement("div", {
351
+ className: "checkout-modal__customer-info"
352
+ }, /*#__PURE__*/_react.default.createElement("button", {
353
+ className: "checkout-modal__customer-info__button",
354
+ onClick: () => setCheckoutStep(_CheckoutSteps.default.Customer),
355
+ type: "button"
356
+ }, /*#__PURE__*/_react.default.createElement(_Icons.User, null), " Contact information", ' ', /*#__PURE__*/_react.default.createElement("span", {
357
+ className: "checkout-modal__customer-info__check"
358
+ }, /*#__PURE__*/_react.default.createElement(_Icons.Check, null)))));
359
+ if (checkoutStep === _CheckoutSteps.default.Billing) {
360
+ return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, customerBreadcrumb, /*#__PURE__*/_react.default.createElement("div", {
361
+ className: "checkout-modal__section"
362
+ }, /*#__PURE__*/_react.default.createElement("div", {
363
+ className: "checkout-modal__header"
364
+ }, /*#__PURE__*/_react.default.createElement("div", {
365
+ className: "checkout-modal__customer-info-message"
366
+ }, /*#__PURE__*/_react.default.createElement("p", null, /*#__PURE__*/_react.default.createElement(_Icons.Receipt, null), " Billing information")))), /*#__PURE__*/_react.default.createElement(_AddressFields.default, {
367
+ viewer: viewerData,
368
+ value: billingIdentity,
369
+ onChange: handleBillingChange,
370
+ errorsObject: errorsObject?.billingIdentity,
371
+ identityType: "billing"
372
+ }));
373
+ }
374
+ const billingBreadcrumb = /*#__PURE__*/_react.default.createElement("div", {
375
+ className: "checkout-modal__section"
376
+ }, /*#__PURE__*/_react.default.createElement("div", {
377
+ className: "checkout-modal__customer-info"
378
+ }, /*#__PURE__*/_react.default.createElement("button", {
379
+ className: "checkout-modal__customer-info__button",
380
+ onClick: () => setCheckoutStep(_CheckoutSteps.default.Billing),
381
+ type: "button"
382
+ }, /*#__PURE__*/_react.default.createElement(_Icons.Receipt, null), " Billing information", ' ', /*#__PURE__*/_react.default.createElement("span", {
383
+ className: "checkout-modal__customer-info__check"
384
+ }, /*#__PURE__*/_react.default.createElement(_Icons.Check, null)))));
385
+ if (checkoutStep === _CheckoutSteps.default.Licensee) {
386
+ return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, customerBreadcrumb, billingBreadcrumb, /*#__PURE__*/_react.default.createElement("div", {
387
+ className: "checkout-modal__section"
388
+ }, /*#__PURE__*/_react.default.createElement("div", {
389
+ className: "checkout-modal__header"
390
+ }, /*#__PURE__*/_react.default.createElement("div", {
391
+ className: "checkout-modal__customer-info-message"
392
+ }, /*#__PURE__*/_react.default.createElement("p", null, /*#__PURE__*/_react.default.createElement(_Icons.License, null), " Licensee information")))), /*#__PURE__*/_react.default.createElement("div", {
393
+ className: "checkout-modal__checkbox-field"
394
+ }, /*#__PURE__*/_react.default.createElement("div", {
395
+ className: "checkbox"
396
+ }, /*#__PURE__*/_react.default.createElement("input", {
397
+ type: "checkbox",
398
+ id: "licensee-is-billing-identity",
399
+ checked: licenseeIsBillingIdentity,
400
+ onChange: e => setLicenseeIsBillingIdentity(e.target.checked)
401
+ }), /*#__PURE__*/_react.default.createElement("div", {
402
+ className: "checkbox__icon"
403
+ }, config.form?.checkboxStyle === 'check' ? /*#__PURE__*/_react.default.createElement(_Icons.Check, null) : /*#__PURE__*/_react.default.createElement(_Icons.X, null))), /*#__PURE__*/_react.default.createElement("label", {
404
+ htmlFor: "licensee-is-billing-identity"
405
+ }, "Use the same billing details for licensee")), licenseeIsBillingIdentity === false && /*#__PURE__*/_react.default.createElement(_AddressFields.default, {
406
+ viewer: viewerData,
407
+ value: licenseeIdentity,
408
+ onChange: handleLicenseeChange,
409
+ errorsObject: errorsObject?.licenseeIdentity,
410
+ identityType: "licensee"
411
+ }));
412
+ }
413
+ const licenseeBreadcrumb = /*#__PURE__*/_react.default.createElement("div", {
414
+ className: "checkout-modal__section"
415
+ }, /*#__PURE__*/_react.default.createElement("div", {
416
+ className: "checkout-modal__customer-info"
417
+ }, /*#__PURE__*/_react.default.createElement("button", {
418
+ className: "checkout-modal__customer-info__button",
419
+ onClick: () => setCheckoutStep(_CheckoutSteps.default.Licensee),
420
+ type: "button"
421
+ }, /*#__PURE__*/_react.default.createElement(_Icons.License, null), " Licensee information", ' ', /*#__PURE__*/_react.default.createElement("span", {
422
+ className: "checkout-modal__customer-info__check"
423
+ }, /*#__PURE__*/_react.default.createElement(_Icons.Check, null)))));
424
+ if (checkoutStep === _CheckoutSteps.default.Payment) {
425
+ return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, customerBreadcrumb, billingBreadcrumb, licenseeBreadcrumb, /*#__PURE__*/_react.default.createElement("div", {
426
+ className: "checkout-modal__section"
427
+ }, /*#__PURE__*/_react.default.createElement("div", {
428
+ className: "checkout-modal__header"
429
+ }, /*#__PURE__*/_react.default.createElement("div", {
430
+ className: "checkout-modal__customer-info-message"
431
+ }, /*#__PURE__*/_react.default.createElement("p", null, /*#__PURE__*/_react.default.createElement(_Icons.CreditCard, null), " Payment")), /*#__PURE__*/_react.default.createElement("div", {
432
+ className: "checkout-modal__credit-card-message"
433
+ }, /*#__PURE__*/_react.default.createElement("div", {
434
+ className: "checkout-modal__credit-card-message__text"
435
+ }, /*#__PURE__*/_react.default.createElement("p", {
436
+ className: "checkout-modal__credit-card-message__primary-text"
437
+ }, "Please enter your credit card info."), /*#__PURE__*/_react.default.createElement("p", {
438
+ className: "checkout-modal__credit-card-message__secondary-text"
439
+ }, "(Secure payments powered by Stripe)"))))), /*#__PURE__*/_react.default.createElement("div", {
440
+ className: "checkout-modal__section"
441
+ }, /*#__PURE__*/_react.default.createElement(_reactStripeJs.CardElement, {
442
+ options: {
443
+ style: inputStyles,
444
+ hidePostalCode: true
445
+ }
446
+ })), errorsObject && errorsObject.stripePaymentMethodId && errorsObject.stripePaymentMethodId.length > 0 && /*#__PURE__*/_react.default.createElement("p", {
447
+ className: "checkout-modal__section__errors"
448
+ }, errorsObject.stripePaymentMethodId[0]));
449
+ }
450
+ return null;
451
+ };
452
+ return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, renderErrors(), /*#__PURE__*/_react.default.createElement("form", {
453
+ onSubmit: e => (e.preventDefault(), handleSubmit())
454
+ }, /*#__PURE__*/_react.default.createElement("div", {
455
+ className: "checkout-modal__sections"
456
+ }, renderStep(checkoutStep)), /*#__PURE__*/_react.default.createElement("div", {
457
+ className: "checkout-modal__buttons"
458
+ }, /*#__PURE__*/_react.default.createElement("button", {
459
+ className: "checkout-modal__button",
460
+ onClick: onCancel,
461
+ "data-label": "cancel",
462
+ type: "button"
463
+ }, "Cancel"), /*#__PURE__*/_react.default.createElement("button", {
464
+ className: "checkout-modal__button",
465
+ "data-label": "confirm",
466
+ disabled: !isValid() || submitting,
467
+ type: "submit"
468
+ }, submitting ? 'Submitting...' : /*#__PURE__*/_react.default.createElement(_react.Fragment, null, saveText, /*#__PURE__*/_react.default.createElement("span", {
469
+ className: "checkout-modal__button__arrow"
470
+ }, " \u2192"))))));
471
+ };
472
+ var _default = Checkout;
473
+ exports.default = _default;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var CheckoutSteps;
8
+ (function (CheckoutSteps) {
9
+ CheckoutSteps[CheckoutSteps["Customer"] = 0] = "Customer";
10
+ CheckoutSteps[CheckoutSteps["Billing"] = 1] = "Billing";
11
+ CheckoutSteps[CheckoutSteps["Licensee"] = 2] = "Licensee";
12
+ CheckoutSteps[CheckoutSteps["Payment"] = 3] = "Payment";
13
+ })(CheckoutSteps || (CheckoutSteps = {}));
14
+ var _default = CheckoutSteps;
15
+ exports.default = _default;