fontdue-js 2.21.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.
- package/CHANGELOG.md +11 -0
- package/dist/components/ConfigContext.d.ts +3 -0
- package/dist/components/ConfigContext.js +2 -1
- package/dist/components/FontdueProvider/FontdueProviderClientComponent.js +2 -0
- package/dist/components/FontdueProvider/useAuxUIOwner.d.ts +1 -0
- package/dist/components/FontdueProvider/useAuxUIOwner.js +28 -0
- package/dist/components/TypeTester/TypeTesterFeatures.js +2 -1
- package/dist/components/TypeTester/TypeTesterFeaturesButton.js +5 -3
- package/dist/components/TypeTester/TypeTesterStandalone.d.ts +2 -2
- package/dist/components/TypeTester/TypeTesterStandalone.js +2 -1
- package/dist/components/TypeTester/TypeTesterStandalone.preload.d.ts +14 -0
- package/dist/components/TypeTester/TypeTesterStandalone.preload.js +19 -0
- package/dist/components/TypeTester/types.d.ts +2 -0
- package/dist/components/TypeTester/types.js +10 -1
- package/dist/components/TypeTesters/TypeTestersElement.d.ts +2 -1
- package/dist/components/TypeTesters/TypeTestersElement.js +3 -1
- package/dist/components/TypeTesters/index.d.ts +2 -0
- package/dist/components/TypeTesters/index.js +5 -2
- package/dist/config.d.ts +6 -0
- package/dist/config.js +20 -0
- package/dist/corsError.d.ts +1 -0
- package/dist/corsError.js +16 -9
- package/dist/global-shim.js +8 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -0
- package/dist/relay/environment.js +51 -42
- package/dist-cjs/__generated__/AddToCartBannerQuery.graphql.js +194 -0
- package/dist-cjs/__generated__/AddToCartBanner_item.graphql.js +107 -0
- package/dist-cjs/__generated__/AddToCartBanner_order.graphql.js +131 -0
- package/dist-cjs/__generated__/AddressFieldsRefetchQuery.graphql.js +170 -0
- package/dist-cjs/__generated__/AddressFields_viewer.graphql.js +125 -0
- package/dist-cjs/__generated__/BuyButtonIDQuery.graphql.js +121 -0
- package/dist-cjs/__generated__/BuyButtonSlugQuery.graphql.js +146 -0
- package/dist-cjs/__generated__/BuyButton_collection.graphql.js +56 -0
- package/dist-cjs/__generated__/CartButtonQuery.graphql.js +139 -0
- package/dist-cjs/__generated__/CartButton_order.graphql.js +71 -0
- package/dist-cjs/__generated__/CartItemAdditionalLicenses_licenses.graphql.js +42 -0
- package/dist-cjs/__generated__/CartItemAdditionalLicenses_orderItem.graphql.js +52 -0
- package/dist-cjs/__generated__/CartItemLicense_selection.graphql.js +80 -0
- package/{dist/__generated__/CartItem_product.graphql.js → dist-cjs/__generated__/CartItemProduct_product.graphql.js} +27 -38
- package/{dist/__generated__/CartItem_licenseSelection.graphql.js → dist-cjs/__generated__/CartItemVariable_selection.graphql.js} +32 -31
- package/dist-cjs/__generated__/CartItemVariable_variable.graphql.js +58 -0
- package/dist-cjs/__generated__/CartItem_node.graphql.js +166 -0
- package/dist-cjs/__generated__/CartOrderCompleteOrderMutation.graphql.js +783 -0
- package/dist-cjs/__generated__/CartOrderRemoveDiscountMutation.graphql.js +760 -0
- package/dist-cjs/__generated__/CartOrderUpdateMutation.graphql.js +795 -0
- package/{dist/__generated__/ThemeConfig_viewer.graphql.js → dist-cjs/__generated__/CartOrder_UpdateErrors.graphql.js} +8 -8
- package/{dist/__generated__/StoreModalReview_order.graphql.js → dist-cjs/__generated__/CartOrder_order.graphql.js} +125 -105
- package/{dist/__generated__/StoreModalReview_viewer.graphql.js → dist-cjs/__generated__/CartOrder_viewer.graphql.js} +7 -3
- package/dist-cjs/__generated__/CartQuery.graphql.js +887 -0
- package/{dist/__generated__/StoreModalReviewCompleteOrderMutation.graphql.js → dist-cjs/__generated__/CartStateRemoveDiscountMutation.graphql.js} +188 -208
- package/dist-cjs/__generated__/CartStateUpdateMutation.graphql.js +790 -0
- package/dist-cjs/__generated__/CartState_order.graphql.js +122 -0
- package/dist-cjs/__generated__/CartTotals_order.graphql.js +140 -0
- package/dist-cjs/__generated__/CharacterViewerIDQuery.graphql.js +332 -0
- package/dist-cjs/__generated__/CharacterViewerSlugQuery.graphql.js +362 -0
- package/dist-cjs/__generated__/CharacterViewerStyleRefetchQuery.graphql.js +226 -0
- package/dist-cjs/__generated__/CharacterViewer_collection.graphql.js +197 -0
- package/dist-cjs/__generated__/CharacterViewer_family.graphql.js +101 -0
- package/dist-cjs/__generated__/CharacterViewer_style.graphql.js +161 -0
- package/{dist/__generated__/CartOrderApplyCouponMutation.graphql.js → dist-cjs/__generated__/CheckoutUpdateCustomerMutation.graphql.js} +269 -418
- package/dist-cjs/__generated__/CheckoutUpdateOrderMutation.graphql.js +811 -0
- package/dist-cjs/__generated__/Checkout_UpdateOrderErrors.graphql.js +97 -0
- package/dist-cjs/__generated__/Checkout_identity.graphql.js +94 -0
- package/dist-cjs/__generated__/Checkout_order.graphql.js +144 -0
- package/{dist/__generated__/TestModeBanner_viewer.graphql.js → dist-cjs/__generated__/Checkout_viewer.graphql.js} +20 -10
- package/dist-cjs/__generated__/CollectionAa_Query.graphql.js +192 -0
- package/dist-cjs/__generated__/CollectionAa_product.graphql.js +69 -0
- package/{dist/__generated__/StoreModalReviewUpdateOrderMutation.graphql.js → dist-cjs/__generated__/CouponCodeInputApplyCouponMutation.graphql.js} +191 -204
- package/dist-cjs/__generated__/CouponText_coupon.graphql.js +73 -0
- package/dist-cjs/__generated__/CustomerLoginFormLoginMutation.graphql.js +72 -0
- package/dist-cjs/__generated__/CustomerLoginFormQuery.graphql.js +91 -0
- package/{dist/__generated__/SKUPrice_RefetchQuery.graphql.js → dist-cjs/__generated__/DownloadRefetchQuery.graphql.js} +38 -43
- package/dist-cjs/__generated__/Download_order.graphql.js +61 -0
- package/dist-cjs/__generated__/FamilyList_node.graphql.js +96 -0
- package/dist-cjs/__generated__/Family_node.graphql.js +160 -0
- package/dist-cjs/__generated__/FontFamiliesQuery.graphql.js +368 -0
- package/dist-cjs/__generated__/FontStyle_fontStyle.graphql.js +32 -0
- package/dist-cjs/__generated__/IdentityBox_identity.graphql.js +52 -0
- package/{dist/__generated__/CartItem_license.graphql.js → dist-cjs/__generated__/License_node.graphql.js} +29 -8
- package/{dist/__generated__/NewsletterSignup_Query.graphql.js → dist-cjs/__generated__/NewsletterSignupQuery.graphql.js} +19 -8
- package/dist-cjs/__generated__/NewsletterSignupUpdateCustomerMutation.graphql.js +81 -0
- package/dist-cjs/__generated__/NodePasswordFormAccessNodeMutation.graphql.js +72 -0
- package/dist-cjs/__generated__/NodePasswordFormIDQuery.graphql.js +93 -0
- package/dist-cjs/__generated__/NodePasswordFormSlugQuery.graphql.js +115 -0
- package/dist-cjs/__generated__/OrderVariableSelectionReduxRefetchQuery.graphql.js +154 -0
- package/dist-cjs/__generated__/OrderVariableSelectionRedux_viewer.graphql.js +75 -0
- package/dist-cjs/__generated__/OrderVariableSelection_variables.graphql.js +107 -0
- package/dist-cjs/__generated__/PrecartAddToCartMutation.graphql.js +793 -0
- package/dist-cjs/__generated__/PrecartClearCartMutation.graphql.js +81 -0
- package/dist-cjs/__generated__/PrecartQuery.graphql.js +308 -0
- package/{dist/__generated__/CartItem_viewer.graphql.js → dist-cjs/__generated__/Precart_collection.graphql.js} +22 -28
- package/dist-cjs/__generated__/Precart_license.graphql.js +67 -0
- package/dist-cjs/__generated__/Precart_viewer.graphql.js +161 -0
- package/{dist/__generated__/PriceBarSection_RefetchQuery.graphql.js → dist-cjs/__generated__/PriceBarSectionRefetchQuery.graphql.js} +51 -35
- package/dist-cjs/__generated__/PriceBarSection_node.graphql.js +121 -0
- package/dist-cjs/__generated__/PriceBar_node.graphql.js +60 -0
- package/dist-cjs/__generated__/Price_price.graphql.js +40 -0
- package/dist-cjs/__generated__/SKUPrice_sku.graphql.js +69 -0
- package/dist-cjs/__generated__/SelectButton_sku.graphql.js +54 -0
- package/dist-cjs/__generated__/ServerConfigProviderQuery.graphql.js +108 -0
- package/{dist/__generated__/CartTotalsCreateSnapshotMutation.graphql.js → dist-cjs/__generated__/ShareCartCreateSnapshotMutation.graphql.js} +7 -7
- package/dist-cjs/__generated__/SpecimenLinkQuery.graphql.js +120 -0
- package/dist-cjs/__generated__/StoreModalBundleButton_bundle.graphql.js +85 -0
- package/dist-cjs/__generated__/StoreModalCartQuery.graphql.js +1017 -0
- package/dist-cjs/__generated__/StoreModalCheckoutQuery.graphql.js +194 -0
- package/dist-cjs/__generated__/StoreModalContainerQuery.graphql.js +228 -0
- package/dist-cjs/__generated__/StoreModalDownloadRefetchQuery.graphql.js +102 -0
- package/dist-cjs/__generated__/StoreModalDownload_order.graphql.js +40 -0
- package/dist-cjs/__generated__/StoreModalFamilyButton_collection.graphql.js +135 -0
- package/dist-cjs/__generated__/StoreModalFamily_collection.graphql.js +130 -0
- package/dist-cjs/__generated__/StoreModalIndexItem_fontCollection.graphql.js +98 -0
- package/dist-cjs/__generated__/StoreModalIndexQuery.graphql.js +263 -0
- package/dist-cjs/__generated__/StoreModalOrderVariableSelection_order.graphql.js +98 -0
- package/dist-cjs/__generated__/StoreModalOrderVariableSelection_viewer.graphql.js +66 -0
- package/dist-cjs/__generated__/StoreModalProductContent_collection.graphql.js +92 -0
- package/{dist/__generated__/StoreModalProductLicenseSelection_viewer.graphql.js → dist-cjs/__generated__/StoreModalProductLicenseSelection_collection.graphql.js} +6 -10
- package/dist-cjs/__generated__/StoreModalProductLicense_license.graphql.js +104 -0
- package/dist-cjs/__generated__/StoreModalProductQuery.graphql.js +702 -0
- package/dist-cjs/__generated__/StoreModalProductRefetchQuery.graphql.js +433 -0
- package/dist-cjs/__generated__/StoreModalProductSummaryAddToCartMutation.graphql.js +149 -0
- package/dist-cjs/__generated__/StoreModalProductSummaryClearCartMutation.graphql.js +81 -0
- package/dist-cjs/__generated__/StoreModalProductSummaryRefetchQuery.graphql.js +281 -0
- package/dist-cjs/__generated__/StoreModalProductSummary_viewer.graphql.js +243 -0
- package/dist-cjs/__generated__/StoreModalReviewIdentity_identity.graphql.js +52 -0
- package/dist-cjs/__generated__/StoreModalStyleButton_fontStyle.graphql.js +113 -0
- package/dist-cjs/__generated__/StoreModalUnifiedCheckoutCompleteOrderMutation.graphql.js +302 -0
- package/dist-cjs/__generated__/StoreModalUnifiedCheckoutUpdateCustomerMutation.graphql.js +323 -0
- package/{dist/__generated__/StoreModalReviewQuery.graphql.js → dist-cjs/__generated__/StoreModalUnifiedCheckoutUpdateOrderMutation.graphql.js} +243 -261
- package/dist-cjs/__generated__/StoreModalUnifiedCheckout_order.graphql.js +237 -0
- package/{dist/__generated__/TestFontsForm_viewer.graphql.js → dist-cjs/__generated__/StoreModalUnifiedCheckout_viewer.graphql.js} +48 -32
- package/dist-cjs/__generated__/StripeProviderCreateCheckoutSessionMutation.graphql.js +105 -0
- package/dist-cjs/__generated__/StripeProvider_viewer.graphql.js +139 -0
- package/dist-cjs/__generated__/TestFontsFormUpdateCustomerMutation.graphql.js +770 -0
- package/dist-cjs/__generated__/TestFontsForm_Query.graphql.js +126 -0
- package/dist-cjs/__generated__/TestModeBannerQuery.graphql.js +87 -0
- package/dist-cjs/__generated__/ThemeConfigQuery.graphql.js +87 -0
- package/dist-cjs/__generated__/TypeTesterFeaturesButton_fontStyle.graphql.js +32 -0
- package/dist-cjs/__generated__/TypeTesterFeatures_fontStyle.graphql.js +36 -0
- package/{dist/__generated__/Cart_viewer.graphql.js → dist-cjs/__generated__/TypeTesterFloatingToolbar_testers.graphql.js} +18 -14
- package/{dist/__generated__/TypeTester_NewStyleQuery.graphql.js → dist-cjs/__generated__/TypeTesterStandaloneChangedStylesQuery.graphql.js} +125 -122
- package/dist-cjs/__generated__/TypeTesterStandaloneQuery.graphql.js +450 -0
- package/dist-cjs/__generated__/TypeTesterStyleSelectData_fontStyle.graphql.js +106 -0
- package/dist-cjs/__generated__/TypeTesterStyleSelectData_fontStyleData.graphql.js +88 -0
- package/dist-cjs/__generated__/TypeTesterStyleSelectData_viewer.graphql.js +166 -0
- package/dist-cjs/__generated__/TypeTesterToolbar_fontStyle.graphql.js +36 -0
- package/{dist/__generated__/SpecimenLink_node.graphql.js → dist-cjs/__generated__/TypeTesterVariableAxes_fontStyle.graphql.js} +14 -8
- package/dist-cjs/__generated__/TypeTester_fontStyle.graphql.js +106 -0
- package/dist-cjs/__generated__/TypeTester_viewer.graphql.js +40 -0
- package/dist-cjs/__generated__/TypeTestersChangedStylesQuery.graphql.js +347 -0
- package/dist-cjs/__generated__/TypeTestersIDQuery.graphql.js +637 -0
- package/dist-cjs/__generated__/TypeTestersRefetchQuery.graphql.js +554 -0
- package/dist-cjs/__generated__/TypeTestersSlugQuery.graphql.js +644 -0
- package/dist-cjs/__generated__/TypeTesters_collection.graphql.js +258 -0
- package/dist-cjs/__generated__/TypeTesters_viewer.graphql.js +40 -0
- package/{dist/__generated__/CouponCodeInput_order.graphql.js → dist-cjs/__generated__/VariableTableAmounts_option.graphql.js} +10 -4
- package/dist-cjs/__generated__/VariableTableAmounts_variable.graphql.js +34 -0
- package/dist-cjs/__generated__/productState_Query.graphql.js +184 -0
- package/{dist/__generated__/CartItem_variable.graphql.js → dist-cjs/__generated__/productState_bundle.graphql.js} +31 -19
- package/dist-cjs/__generated__/productState_collection.graphql.js +90 -0
- package/dist-cjs/__generated__/productState_collectionBundle.graphql.js +88 -0
- package/dist-cjs/__generated__/productState_node.graphql.js +122 -0
- package/{dist/__generated__/TypeTester_sku.graphql.js → dist-cjs/__generated__/productState_sku.graphql.js} +7 -13
- package/dist-cjs/__generated__/useFeaturesData_fontStyle.graphql.js +64 -0
- package/dist-cjs/__generated__/useFontStyle_fontStyle.graphql.js +94 -0
- package/{dist/__generated__/FontFamilies_node.graphql.js → dist-cjs/__generated__/useTotalStyles_fontCollection.graphql.js} +19 -11
- package/dist-cjs/__tests__/collectionBundleSelection.test.js +1630 -0
- package/dist-cjs/components/AddToCartBanner/index.js +75 -0
- package/dist-cjs/components/BuyButton/index.js +124 -0
- package/{dist/components/BuyButton/BuyButton.server.js → dist-cjs/components/BuyButton/index.server.js} +9 -12
- package/dist-cjs/components/BuyingOptions/index.js +23 -0
- package/dist-cjs/components/Cart/AddressFields.js +162 -0
- package/dist-cjs/components/Cart/CartItem/CartItemAdditionalLicenses.js +33 -0
- package/dist-cjs/components/Cart/CartItem/CartItemLicense.js +66 -0
- package/dist-cjs/components/Cart/CartItem/CartItemProduct.js +36 -0
- package/dist-cjs/components/Cart/CartItem/CartItemVariable.js +66 -0
- package/dist-cjs/components/Cart/CartItem/VariableTextInput.js +79 -0
- package/dist-cjs/components/Cart/CartItem/index.js +95 -0
- package/dist-cjs/components/Cart/CartOrder.js +314 -0
- package/dist-cjs/components/Cart/CartState.js +93 -0
- package/dist-cjs/components/Cart/CartTotals.js +97 -0
- package/dist-cjs/components/Cart/Checkout.js +473 -0
- package/dist-cjs/components/Cart/CheckoutSteps.js +15 -0
- package/dist-cjs/components/Cart/CouponCodeInput.js +90 -0
- package/dist-cjs/components/Cart/CustomerFields.js +80 -0
- package/dist-cjs/components/Cart/Download.js +62 -0
- package/dist-cjs/components/Cart/EmptyCart.js +42 -0
- package/dist-cjs/components/Cart/IdentityBox.js +37 -0
- package/dist-cjs/components/Cart/ShareCart.js +87 -0
- package/dist-cjs/components/Cart/index.js +36 -0
- package/dist-cjs/components/Cart/injectRelayEnvironment.js +21 -0
- package/dist-cjs/components/Cart/types.js +5 -0
- package/dist-cjs/components/Cart/utils.js +8 -0
- package/dist-cjs/components/CartButton/index.js +127 -0
- package/dist-cjs/components/CartButton/index.server.js +18 -0
- package/dist-cjs/components/CharacterViewer/StyleSelect.js +60 -0
- package/dist-cjs/components/CharacterViewer/index.js +441 -0
- package/dist-cjs/components/CharacterViewer/index.server.js +36 -0
- package/dist-cjs/components/Checkbox/index.js +27 -0
- package/dist-cjs/components/CollectionAa/index.js +38 -0
- package/dist-cjs/components/ComponentsContext.js +12 -0
- package/dist-cjs/components/ConfigContext.js +86 -0
- package/dist-cjs/components/ConsentBanner/consent.js +92 -0
- package/dist-cjs/components/ConsentBanner/index.js +84 -0
- package/dist-cjs/components/CookieNotification/index.js +83 -0
- package/dist-cjs/components/CorsErrorModal.js +98 -0
- package/dist-cjs/components/CouponText/index.js +38 -0
- package/dist-cjs/components/CustomerLoginForm/index.js +88 -0
- package/dist-cjs/components/Family/FamilyList.js +43 -0
- package/dist-cjs/components/Family/index.js +77 -0
- package/dist-cjs/components/FontFamilies/index.js +53 -0
- package/dist-cjs/components/FontStyle/index.js +37 -0
- package/dist-cjs/components/FontdueProvider/FontdueProviderClientComponent.js +74 -0
- package/dist-cjs/components/FontdueProvider/index.js +43 -0
- package/dist-cjs/components/FontdueProvider/index.server.js +35 -0
- package/dist-cjs/components/FontdueProvider/useAuxUIOwner.js +32 -0
- package/dist-cjs/components/Icons/Align.js +58 -0
- package/dist-cjs/components/Icons/ArrowDownRight.js +19 -0
- package/dist-cjs/components/Icons/ArrowLeft.js +22 -0
- package/dist-cjs/components/Icons/ArrowRight.js +19 -0
- package/dist-cjs/components/Icons/CarrotDown.js +19 -0
- package/dist-cjs/components/Icons/CarrotUp.js +19 -0
- package/dist-cjs/components/Icons/Cart.js +23 -0
- package/dist-cjs/components/Icons/CartNew.js +33 -0
- package/dist-cjs/components/Icons/Check.js +19 -0
- package/dist-cjs/components/Icons/Checkbox.js +24 -0
- package/dist-cjs/components/Icons/CheckboxChecked.js +24 -0
- package/dist-cjs/components/Icons/CheckboxCrossed.js +26 -0
- package/dist-cjs/components/Icons/CircledCheck.js +21 -0
- package/dist-cjs/components/Icons/CircledInfo.js +21 -0
- package/dist-cjs/components/Icons/CircledMinus.js +21 -0
- package/dist-cjs/components/Icons/ColorPicker.js +19 -0
- package/dist-cjs/components/Icons/CreditCard.js +21 -0
- package/dist-cjs/components/Icons/DownArrow.js +24 -0
- package/dist-cjs/components/Icons/DownloadFonts.js +25 -0
- package/dist-cjs/components/Icons/FrowningFace.js +25 -0
- package/dist-cjs/components/Icons/License.js +19 -0
- package/dist-cjs/components/Icons/Receipt.js +34 -0
- package/dist-cjs/components/Icons/User.js +19 -0
- package/dist-cjs/components/Icons/X.js +19 -0
- package/dist-cjs/components/Icons/index.js +167 -0
- package/dist-cjs/components/NewsletterSignup/NewsletterSignupElement.js +15 -0
- package/dist-cjs/components/NewsletterSignup/index.js +192 -0
- package/dist-cjs/components/NewsletterSignup/index.server.js +18 -0
- package/dist-cjs/components/NodePasswordForm/index.js +114 -0
- package/dist-cjs/components/OrderVariableSelection/OrderVariableSelectionRedux.js +66 -0
- package/dist-cjs/components/OrderVariableSelection/index.js +199 -0
- package/dist-cjs/components/Precart/License.js +70 -0
- package/dist-cjs/components/Precart/index.js +331 -0
- package/dist-cjs/components/Price/index.js +111 -0
- package/dist-cjs/components/PriceBar/PriceBarSection.js +61 -0
- package/dist-cjs/components/PriceBar/index.js +49 -0
- package/dist-cjs/components/Root/index.js +208 -0
- package/dist-cjs/components/Root/productState.js +143 -0
- package/dist-cjs/components/SKUPrice/index.js +46 -0
- package/dist-cjs/components/Select/index.js +36 -0
- package/dist-cjs/components/SelectButton/index.js +79 -0
- package/dist-cjs/components/ServerConfigProvider/index.js +39 -0
- package/dist-cjs/components/SpecimenLink/index.js +37 -0
- package/dist-cjs/components/StickyNav/index.js +80 -0
- package/dist-cjs/components/StoreModal/StoreModalBundleButton.js +47 -0
- package/dist-cjs/components/StoreModal/StoreModalCart.js +79 -0
- package/dist-cjs/components/StoreModal/StoreModalCheckout.js +24 -0
- package/dist-cjs/components/StoreModal/StoreModalCheckoutContext.js +14 -0
- package/dist-cjs/components/StoreModal/StoreModalContainer.js +117 -0
- package/dist-cjs/components/StoreModal/StoreModalDownload.js +38 -0
- package/dist-cjs/components/StoreModal/StoreModalFamily.js +58 -0
- package/dist-cjs/components/StoreModal/StoreModalFamilyButton.js +69 -0
- package/dist-cjs/components/StoreModal/StoreModalIndex.js +27 -0
- package/dist-cjs/components/StoreModal/StoreModalIndexItem.js +63 -0
- package/dist-cjs/components/StoreModal/StoreModalLicenseeIsBillingSelection.js +30 -0
- package/dist-cjs/components/StoreModal/StoreModalLoader.js +22 -0
- package/dist-cjs/components/StoreModal/StoreModalOrderVariableSelection.js +89 -0
- package/dist-cjs/components/StoreModal/StoreModalProduct.js +154 -0
- package/dist-cjs/components/StoreModal/StoreModalReviewIdentity.js +18 -0
- package/dist-cjs/components/StoreModal/StoreModalRouter.js +28 -0
- package/dist-cjs/components/StoreModal/StoreModalStyleButton.js +52 -0
- package/dist-cjs/components/StoreModal/index.js +39 -0
- package/dist-cjs/components/StoreModal/routes.js +51 -0
- package/dist-cjs/components/StoreModal/types.js +5 -0
- package/dist-cjs/components/StoreModalProductLicenseSelection/LicenseElement.js +46 -0
- package/dist-cjs/components/StoreModalProductLicenseSelection/LicenseVariableElement.js +35 -0
- package/dist-cjs/components/StoreModalProductLicenseSelection/LicenseVariableRadioElement.js +47 -0
- package/dist-cjs/components/StoreModalProductLicenseSelection/StoreModalProductLicense.js +133 -0
- package/dist-cjs/components/StoreModalProductLicenseSelection/index.js +31 -0
- package/dist-cjs/components/StoreModalProductSummary/index.js +219 -0
- package/dist-cjs/components/StripeLogo.js +17 -0
- package/dist-cjs/components/StripeProvider/index.js +172 -0
- package/dist-cjs/components/Switch/index.js +7 -0
- package/dist-cjs/components/TestFontsForm/TestFontsFormElement.js +15 -0
- package/dist-cjs/components/TestFontsForm/index.js +208 -0
- package/dist-cjs/components/TestFontsForm/index.server.js +18 -0
- package/dist-cjs/components/TestModeBanner/index.js +34 -0
- package/dist-cjs/components/TextField/index.js +42 -0
- package/dist-cjs/components/ThemeConfig/index.js +41 -0
- package/dist-cjs/components/ThemeConfig/index.server.js +17 -0
- package/dist-cjs/components/Tracking/index.js +164 -0
- package/dist-cjs/components/TypeTester/TypeTesterAlignButtons.js +34 -0
- package/dist-cjs/components/TypeTester/TypeTesterBullet.js +23 -0
- package/dist-cjs/components/TypeTester/TypeTesterContent.js +58 -0
- package/dist-cjs/components/TypeTester/TypeTesterContext.js +166 -0
- package/dist-cjs/components/TypeTester/TypeTesterEditAll.js +36 -0
- package/dist-cjs/components/TypeTester/TypeTesterFeatures.js +133 -0
- package/dist-cjs/components/TypeTester/TypeTesterFeaturesButton.js +82 -0
- package/dist-cjs/components/TypeTester/TypeTesterFitter.js +21 -0
- package/dist-cjs/components/TypeTester/TypeTesterFloatingToolbar.js +79 -0
- package/dist-cjs/components/TypeTester/TypeTesterInput.js +72 -0
- package/dist-cjs/components/TypeTester/TypeTesterSlider.js +76 -0
- package/dist-cjs/components/TypeTester/TypeTesterStandalone.js +137 -0
- package/dist-cjs/components/TypeTester/TypeTesterStandalone.preload.js +27 -0
- package/dist-cjs/components/TypeTester/TypeTesterStandalone.server.js +26 -0
- package/dist-cjs/components/TypeTester/TypeTesterStandaloneElement.js +65 -0
- package/dist-cjs/components/TypeTester/TypeTesterState.js +133 -0
- package/dist-cjs/components/TypeTester/TypeTesterStyleSelect.js +101 -0
- package/dist-cjs/components/TypeTester/TypeTesterStyleSelectData.js +102 -0
- package/dist-cjs/components/TypeTester/TypeTesterToolbar.js +94 -0
- package/dist-cjs/components/TypeTester/TypeTesterVariableAxes.js +65 -0
- package/dist-cjs/components/TypeTester/features.js +150 -0
- package/dist-cjs/components/TypeTester/index.js +169 -0
- package/dist-cjs/components/TypeTester/types.js +14 -0
- package/dist-cjs/components/TypeTester/useFeaturesData.js +36 -0
- package/dist-cjs/components/TypeTester/useTypeTesterStyler.js +83 -0
- package/dist-cjs/components/TypeTesters/TypeTestersElement.js +33 -0
- package/dist-cjs/components/TypeTesters/index.js +271 -0
- package/dist-cjs/components/TypeTesters/index.server.js +44 -0
- package/dist-cjs/components/UrlContext.js +16 -0
- package/dist-cjs/components/VariableTableAmounts/index.js +28 -0
- package/dist-cjs/components/elements/Button/index.js +21 -0
- package/dist-cjs/components/elements/EmptyCart/index.js +30 -0
- package/dist-cjs/components/elements/StoreModalCartLayout/index.js +38 -0
- package/dist-cjs/components/elements/StoreModalContainer/StoreModalContainerContext.js +11 -0
- package/dist-cjs/components/elements/StoreModalContainer/index.js +77 -0
- package/dist-cjs/components/elements/StoreModalDownloadLayout/index.js +25 -0
- package/dist-cjs/components/elements/StoreModalFamily/index.js +31 -0
- package/dist-cjs/components/elements/StoreModalFamilyButton/index.js +45 -0
- package/dist-cjs/components/elements/StoreModalIndexItem/index.js +35 -0
- package/dist-cjs/components/elements/StoreModalLicenseeIsBillingIdentityElement.js +59 -0
- package/dist-cjs/components/elements/StoreModalLoadingScreen/index.js +14 -0
- package/dist-cjs/components/elements/StoreModalPageContainer/index.js +22 -0
- package/dist-cjs/components/elements/StoreModalStyleButton/index.js +37 -0
- package/dist-cjs/components/elements/StoreModalUnifiedCheckout.js +753 -0
- package/dist-cjs/components/useConsent.js +26 -0
- package/dist-cjs/components/useFont.js +76 -0
- package/dist-cjs/components/useFontStyle.js +58 -0
- package/dist-cjs/components/useInterval.js +28 -0
- package/dist-cjs/components/useTotalStyles.js +26 -0
- package/dist-cjs/config.js +27 -0
- package/dist-cjs/corsError.js +89 -0
- package/dist-cjs/data/unicodeData.js +1 -0
- package/dist-cjs/fontLoader.js +55 -0
- package/dist-cjs/global-shim.js +12 -0
- package/dist-cjs/hooks/useAutofit.js +114 -0
- package/dist-cjs/hooks/useLicenseAndOrderVariables.js +25 -0
- package/dist-cjs/hooks/useRefetchOnLicenseChanges.js +60 -0
- package/dist-cjs/hooks.js +18 -0
- package/dist-cjs/index.js +18 -0
- package/dist-cjs/package.json +1 -0
- package/dist-cjs/react-ranger.d.js +1 -0
- package/dist-cjs/react-ranger.js +301 -0
- package/dist-cjs/reducer.js +291 -0
- package/dist-cjs/relay/environment.js +148 -0
- package/dist-cjs/relay/loadSerializableQuery.js +57 -0
- package/dist-cjs/relay/useSerializablePreloadedQuery.js +52 -0
- package/dist-cjs/retryImport.js +24 -0
- package/dist-cjs/scripts/updateUnicodeData.js +49 -0
- package/dist-cjs/utils.js +107 -0
- package/dist-cjs/vanilla/FontStyle.js +58 -0
- package/dist-cjs/vanilla/TruncatedMarkdown.js +28 -0
- package/package.json +1 -1
- package/dist/__generated__/CartItem_license.graphql.d.ts +0 -27
- package/dist/__generated__/CartItem_licenseSelection.graphql.d.ts +0 -34
- package/dist/__generated__/CartItem_product.graphql.d.ts +0 -32
- package/dist/__generated__/CartItem_variable.graphql.d.ts +0 -23
- package/dist/__generated__/CartItem_viewer.graphql.d.ts +0 -30
- package/dist/__generated__/CartOrderApplyCouponMutation.graphql.d.ts +0 -21
- package/dist/__generated__/CartStateApplyCouponMutation.graphql.d.ts +0 -21
- package/dist/__generated__/CartStateApplyCouponMutation.graphql.js +0 -274
- package/dist/__generated__/CartTotalsCreateSnapshotMutation.graphql.d.ts +0 -22
- package/dist/__generated__/Cart_viewer.graphql.d.ts +0 -20
- package/dist/__generated__/CharacterViewer_Query.graphql.d.ts +0 -21
- package/dist/__generated__/CharacterViewer_Query.graphql.js +0 -230
- package/dist/__generated__/CharacterViewer_SlugQuery.graphql.d.ts +0 -25
- package/dist/__generated__/CharacterViewer_SlugQuery.graphql.js +0 -257
- package/dist/__generated__/CouponCodeInput_Refetch_Query.graphql.d.ts +0 -17
- package/dist/__generated__/CouponCodeInput_Refetch_Query.graphql.js +0 -201
- package/dist/__generated__/CouponCodeInput_order.graphql.d.ts +0 -13
- package/dist/__generated__/CouponCodeInput_viewer.graphql.d.ts +0 -25
- package/dist/__generated__/CouponCodeInput_viewer.graphql.js +0 -88
- package/dist/__generated__/CouponCodeRefetchQuery.graphql.d.ts +0 -22
- package/dist/__generated__/CouponCodeRefetchQuery.graphql.js +0 -178
- package/dist/__generated__/Family_viewer.graphql.d.ts +0 -17
- package/dist/__generated__/FontFamilies_node.graphql.d.ts +0 -20
- package/dist/__generated__/NewsletterSignup_Query.graphql.d.ts +0 -21
- package/dist/__generated__/NewsletterSignup_viewer.graphql.d.ts +0 -20
- package/dist/__generated__/NewsletterSignup_viewer.graphql.js +0 -56
- package/dist/__generated__/OrderVariableSelectionMutation.graphql.d.ts +0 -69
- package/dist/__generated__/OrderVariableSelectionMutation_viewer.graphql.d.ts +0 -30
- package/dist/__generated__/PriceBarSection_RefetchQuery.graphql.d.ts +0 -26
- package/dist/__generated__/PriceBarSection_viewer.graphql.d.ts +0 -17
- package/dist/__generated__/PriceBar_viewer.graphql.d.ts +0 -17
- package/dist/__generated__/SKUPriceRefetchQuery.graphql.d.ts +0 -31
- package/dist/__generated__/SKUPriceRefetchQuery.graphql.js +0 -130
- package/dist/__generated__/SKUPriceUpdateQuery.graphql.d.ts +0 -29
- package/dist/__generated__/SKUPrice_RefetchQuery.graphql.d.ts +0 -26
- package/dist/__generated__/SKUPrice_viewer.graphql.d.ts +0 -19
- package/dist/__generated__/SelectButton_viewer.graphql.d.ts +0 -17
- package/dist/__generated__/SpecimenLink_node.graphql.d.ts +0 -21
- package/dist/__generated__/StoreModalBundleButton_viewer.graphql.d.ts +0 -17
- package/dist/__generated__/StoreModalFamilyButton_viewer.graphql.d.ts +0 -17
- package/dist/__generated__/StoreModalFamily_viewer.graphql.d.ts +0 -17
- package/dist/__generated__/StoreModalOrderVariableSelectionHookQuery.graphql.d.ts +0 -26
- package/dist/__generated__/StoreModalOrderVariableSelectionOrderUpdateMutation.graphql.d.ts +0 -60
- package/dist/__generated__/StoreModalOrderVariableSelectionRefetchQuery.graphql.d.ts +0 -26
- package/dist/__generated__/StoreModalOrderVariableSelectionVariable_order.graphql.d.ts +0 -27
- package/dist/__generated__/StoreModalOrderVariableSelectionVariable_variable.graphql.d.ts +0 -24
- package/dist/__generated__/StoreModalProductContent_viewer.graphql.d.ts +0 -30
- package/dist/__generated__/StoreModalProductLicenseSelection_viewer.graphql.d.ts +0 -20
- package/dist/__generated__/StoreModalProductViewerRefetchQuery.graphql.d.ts +0 -31
- package/dist/__generated__/StoreModalReviewCompleteOrderMutation.graphql.d.ts +0 -25
- package/dist/__generated__/StoreModalReviewQuery.graphql.d.ts +0 -22
- package/dist/__generated__/StoreModalReviewUpdateOrderMutation.graphql.d.ts +0 -63
- package/dist/__generated__/StoreModalReview_order.graphql.d.ts +0 -59
- package/dist/__generated__/StoreModalReview_viewer.graphql.d.ts +0 -19
- package/dist/__generated__/StoreModalStyleButton_viewer.graphql.d.ts +0 -17
- package/dist/__generated__/TestFontsForm_viewer.graphql.d.ts +0 -29
- package/dist/__generated__/TestModeBanner_viewer.graphql.d.ts +0 -23
- package/dist/__generated__/ThemeConfig_viewer.graphql.d.ts +0 -19
- package/dist/__generated__/TypeTesterStandalone_StyleQuery.graphql.d.ts +0 -32
- package/dist/__generated__/TypeTesterStandalone_StyleQuery.graphql.js +0 -385
- package/dist/__generated__/TypeTesterStyleSelect_family.graphql.d.ts +0 -33
- package/dist/__generated__/TypeTesterStyleSelect_fontStyle.graphql.d.ts +0 -27
- package/dist/__generated__/TypeTester_NewStyleQuery.graphql.d.ts +0 -41
- package/dist/__generated__/TypeTester_sku.graphql.d.ts +0 -21
- package/dist/__generated__/useOrderVariables_order.graphql.d.ts +0 -24
- package/dist/components/BuyButton/BuyButton.server.d.ts +0 -3
- package/dist/components/CartButton/index-server.d.ts +0 -3
- package/dist/components/CartButton/index-server.js +0 -18
- package/dist/components/OrderVariableSelection/OrderVariableSelectionMutation.d.ts +0 -7
- package/dist/components/SelectField/index.d.ts +0 -13
- package/dist/components/SelectField/index.js +0 -49
- package/dist/components/StoreModal/StoreModalReview.d.ts +0 -6
- package/dist/components/StoreModal/StoreModalReview.js +0 -221
- package/dist/components/StoreModal/StoreModalRouterContext.d.ts +0 -7
- package/dist/components/StoreModal/StoreModalRouterContext.js +0 -11
- package/dist/components/StoreModal/createRouter.d.ts +0 -41
- package/dist/components/StoreModal/createRouter.js +0 -48
- package/dist/components/StoreModalProductLicenseSelection/ContainerElement.d.ts +0 -9
- package/dist/components/StoreModalProductLicenseSelection/ContainerElement.js +0 -25
- package/dist/components/Stylesheet/index.d.ts +0 -7
- package/dist/components/Stylesheet/index.js +0 -43
- package/dist/components/TestModeBanner/index.server.d.ts +0 -2
- package/dist/components/TestModeBanner/index.server.js +0 -17
- package/dist/components/elements/StoreModalReviewConfirm/index.d.ts +0 -12
- package/dist/components/elements/StoreModalReviewConfirm/index.js +0 -50
- package/dist/components/elements/StoreModalReviewItem/index.d.ts +0 -9
- package/dist/components/elements/StoreModalReviewItem/index.js +0 -21
- package/dist/components/elements/StoreModalReviewLayout/index.d.ts +0 -17
- package/dist/components/elements/StoreModalReviewLayout/index.js +0 -59
- package/dist/components/useFontLoaded.d.ts +0 -24
- package/dist/components/useFontLoaded.js +0 -60
- package/dist/deepMerge.d.ts +0 -4
- package/dist/deepMerge.js +0 -24
- package/dist/hooks/useOrderVariables.d.ts +0 -5
- package/dist/relay-environment.d.ts +0 -7
- package/dist/relay-environment.js +0 -34
- package/dist/utils/interpolateOrderVariableDescription.d.ts +0 -36
- package/dist/utils/interpolateOrderVariableDescription.test.d.ts +0 -1
- /package/dist/{__tests__/collectionBundleSelection.test.d.ts → global-shim.d.ts} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,14 @@
|
|
|
1
|
+
## 2.22.1
|
|
2
|
+
|
|
3
|
+
- Added `corsErrorModal` config option (default `true`). Set to `false` on `<FontdueProvider>` or the script-tag config to suppress the CORS error modal entirely while keeping console warnings and auto-reload polling.
|
|
4
|
+
- GraphQL requests now retry up to 2 times (with a 1s delay) before falling through to CORS error detection. Transient network failures no longer trigger a false-positive CORS modal.
|
|
5
|
+
|
|
6
|
+
## 2.22.0
|
|
7
|
+
|
|
8
|
+
- **`features="*"` wildcard on `<TypeTester>` and `<TypeTesters>`** to expose every OpenType feature each font supports without curating a list. Custom *stylistic set* names defined by the foundry are picked up automatically. Works on both the standalone `<fontdue-type-tester>` HTML element and the React `<TypeTester>` / `<TypeTesters>` components.
|
|
9
|
+
- **`features` prop on `<TypeTesters>`** — the plural now accepts a `features` prop (or `features` HTML attribute on `<fontdue-type-testers>`) that overrides `collection.typeTesterFeatures`, matching the singular API. Useful for setting `features="*"` per-embed without changing the collection's saved settings.
|
|
10
|
+
- The `features` prop on both singular and plural now accepts the literal string `"*"` as a scalar in addition to `["*"]`, so React consumers can write `features="*"` instead of `features={['*']}`.
|
|
11
|
+
|
|
1
12
|
## 2.21.0
|
|
2
13
|
|
|
3
14
|
- Fixed `CharacterViewer` silently dropping characters from supplementary-plane Unicode blocks (e.g. Latin Extended-F, Enclosed Alphanumeric Supplement). Range expansion now uses `codePointAt` / `String.fromCodePoint` so characters above U+FFFF render correctly instead of getting filtered out as unpaired surrogates
|
|
@@ -29,6 +29,7 @@ export interface Config {
|
|
|
29
29
|
typeTester?: TypeTesterConfig;
|
|
30
30
|
stripe?: StripeConfig;
|
|
31
31
|
tracking?: TrackingConfig;
|
|
32
|
+
corsErrorModal?: boolean;
|
|
32
33
|
}
|
|
33
34
|
export declare const makeConfig: (config?: Config) => {
|
|
34
35
|
typeTester: {
|
|
@@ -99,6 +100,7 @@ export declare const makeConfig: (config?: Config) => {
|
|
|
99
100
|
consentMessage: string | undefined;
|
|
100
101
|
segment: SegmentConfig | undefined;
|
|
101
102
|
};
|
|
103
|
+
corsErrorModal: boolean;
|
|
102
104
|
};
|
|
103
105
|
declare const _default: React.Context<{
|
|
104
106
|
typeTester: {
|
|
@@ -169,5 +171,6 @@ declare const _default: React.Context<{
|
|
|
169
171
|
consentMessage: string | undefined;
|
|
170
172
|
segment: SegmentConfig | undefined;
|
|
171
173
|
};
|
|
174
|
+
corsErrorModal: boolean;
|
|
172
175
|
}>;
|
|
173
176
|
export default _default;
|
|
@@ -79,7 +79,8 @@ const makeConfig = config => {
|
|
|
79
79
|
consentRequired: (config === null || config === void 0 ? void 0 : (_config$tracking2 = config.tracking) === null || _config$tracking2 === void 0 ? void 0 : _config$tracking2.consentRequired) ?? false,
|
|
80
80
|
consentMessage: config === null || config === void 0 ? void 0 : (_config$tracking3 = config.tracking) === null || _config$tracking3 === void 0 ? void 0 : _config$tracking3.consentMessage,
|
|
81
81
|
segment: config === null || config === void 0 ? void 0 : (_config$tracking4 = config.tracking) === null || _config$tracking4 === void 0 ? void 0 : _config$tracking4.segment
|
|
82
|
-
}
|
|
82
|
+
},
|
|
83
|
+
corsErrorModal: (config === null || config === void 0 ? void 0 : config.corsErrorModal) ?? true
|
|
83
84
|
};
|
|
84
85
|
};
|
|
85
86
|
exports.makeConfig = makeConfig;
|
|
@@ -15,6 +15,7 @@ var _reducer = require("../../reducer");
|
|
|
15
15
|
var _ComponentsContext = _interopRequireDefault(require("../ComponentsContext"));
|
|
16
16
|
var _UrlContext = _interopRequireDefault(require("../UrlContext"));
|
|
17
17
|
var _retryImport = _interopRequireDefault(require("../../retryImport"));
|
|
18
|
+
var _corsError = require("../../corsError");
|
|
18
19
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
19
20
|
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); }
|
|
20
21
|
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; }
|
|
@@ -35,6 +36,7 @@ function FontdueProviderClientComponent(_ref) {
|
|
|
35
36
|
stripeIntegration
|
|
36
37
|
});
|
|
37
38
|
const configValue = (0, _ConfigContext.makeConfig)(config);
|
|
39
|
+
(0, _corsError.setCorsModalEnabled)(configValue.corsErrorModal);
|
|
38
40
|
const storeRef = (0, _react.useRef)(store ?? (0, _reducer.createDefaultStore)(config));
|
|
39
41
|
return /*#__PURE__*/_react.default.createElement(_reactRelay.RelayEnvironmentProvider, {
|
|
40
42
|
environment: environment
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function useAuxUIOwner(): boolean;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { useEffect, useState } from 'react';
|
|
4
|
+
|
|
5
|
+
// Module-level claim: only one FontdueProvider on a page renders
|
|
6
|
+
// auxiliary UI (TestModeBanner, ThemeConfig, Tracking, ConsentBanner,
|
|
7
|
+
// ServerConfigProvider). Starts false on both server and client to avoid
|
|
8
|
+
// hydration mismatch; the first provider to run `useEffect` wins and flips
|
|
9
|
+
// its own state to true. Relinquishes the claim on unmount so HMR and
|
|
10
|
+
// route changes don't leak.
|
|
11
|
+
|
|
12
|
+
let ownerId = null;
|
|
13
|
+
export default function useAuxUIOwner() {
|
|
14
|
+
const [isOwner, setIsOwner] = useState(false);
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
const myId = {};
|
|
17
|
+
if (ownerId == null) {
|
|
18
|
+
ownerId = myId;
|
|
19
|
+
setIsOwner(true);
|
|
20
|
+
}
|
|
21
|
+
return () => {
|
|
22
|
+
if (ownerId === myId) {
|
|
23
|
+
ownerId = null;
|
|
24
|
+
}
|
|
25
|
+
};
|
|
26
|
+
}, []);
|
|
27
|
+
return isOwner;
|
|
28
|
+
}
|
|
@@ -108,7 +108,8 @@ function TypeTesterFeatures(_ref) {
|
|
|
108
108
|
}
|
|
109
109
|
}, columnConfig.features.filter(feature => shouldIncludeFeature(fontFeatures === null || fontFeatures === void 0 ? void 0 : fontFeatures.supportedFeatures, typeof feature === 'string' ? feature : feature.code)).map(renderFeature))));
|
|
110
110
|
} else {
|
|
111
|
-
|
|
111
|
+
const expanded = showFeatures !== null && showFeatures !== void 0 && showFeatures.includes('*') ? (fontFeatures === null || fontFeatures === void 0 ? void 0 : fontFeatures.supportedFeatures) ?? [] : (showFeatures ?? []).filter(feature => shouldIncludeFeature(fontFeatures === null || fontFeatures === void 0 ? void 0 : fontFeatures.supportedFeatures, feature));
|
|
112
|
+
featuresColumns = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, expanded.map(renderFeature));
|
|
112
113
|
}
|
|
113
114
|
const {
|
|
114
115
|
height: featuresHeight,
|
|
@@ -37,10 +37,12 @@ const TypeTesterFeaturesButton = _ref => {
|
|
|
37
37
|
const selectedFeature = features[0];
|
|
38
38
|
const fontStyle = (0, _reactRelay.useFragment)((_TypeTesterFeaturesButton_fontStyle2.default.hash && _TypeTesterFeaturesButton_fontStyle2.default.hash !== "bfda99c867db0b614314fc774911c4b0" && console.error("The definition of 'TypeTesterFeaturesButton_fontStyle' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."), _TypeTesterFeaturesButton_fontStyle2.default), fontStyleKey);
|
|
39
39
|
const {
|
|
40
|
-
featureNames
|
|
40
|
+
featureNames,
|
|
41
|
+
fontFeatures
|
|
41
42
|
} = (0, _useFeaturesData.default)({
|
|
42
43
|
fontStyle
|
|
43
44
|
});
|
|
45
|
+
const effectiveFeatures = showFeatures !== null && showFeatures !== void 0 && showFeatures.includes('*') ? (fontFeatures === null || fontFeatures === void 0 ? void 0 : fontFeatures.supportedFeatures) ?? [] : showFeatures;
|
|
44
46
|
if (config.openTypeFeatures.interactionStyle === 'panel') {
|
|
45
47
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
46
48
|
className: "type-tester__features-button",
|
|
@@ -55,7 +57,7 @@ const TypeTesterFeaturesButton = _ref => {
|
|
|
55
57
|
}, config.openTypeFeatures.buttonLabel), ' ', featuresOpen ? /*#__PURE__*/_react.default.createElement(_CarrotUp.default, null) : /*#__PURE__*/_react.default.createElement(_CarrotDown.default, null)));
|
|
56
58
|
}
|
|
57
59
|
if (config.openTypeFeatures.interactionStyle === 'select') {
|
|
58
|
-
if (!
|
|
60
|
+
if (!effectiveFeatures || effectiveFeatures.length === 0) return null;
|
|
59
61
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
60
62
|
className: "type-tester__features-select"
|
|
61
63
|
}, /*#__PURE__*/_react.default.createElement(_Select.default, {
|
|
@@ -63,7 +65,7 @@ const TypeTesterFeaturesButton = _ref => {
|
|
|
63
65
|
options: [{
|
|
64
66
|
value: '',
|
|
65
67
|
text: 'OT Features'
|
|
66
|
-
}].concat(
|
|
68
|
+
}].concat(effectiveFeatures.map(feature => ({
|
|
67
69
|
value: feature,
|
|
68
70
|
text: featureNames[feature]
|
|
69
71
|
}))),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { Alignment, Direction } from './types';
|
|
2
|
+
import { Alignment, Direction, FeaturesProp } from './types';
|
|
3
3
|
import { SerializablePreloadedQuery } from '../../relay/loadSerializableQuery';
|
|
4
4
|
import { TypeTesterStandaloneQuery } from '__generated__/TypeTesterStandaloneQuery.graphql';
|
|
5
5
|
interface TypeTesterStandaloneComponent_props {
|
|
@@ -7,7 +7,7 @@ interface TypeTesterStandaloneComponent_props {
|
|
|
7
7
|
letterSpacing?: number | null;
|
|
8
8
|
fontSize?: number | null;
|
|
9
9
|
axes?: string[] | null;
|
|
10
|
-
features?:
|
|
10
|
+
features?: FeaturesProp;
|
|
11
11
|
featuresSelected?: string[] | null;
|
|
12
12
|
featureSettings?: {
|
|
13
13
|
feature: string;
|
|
@@ -12,6 +12,7 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
12
12
|
var _reactRelay = require("react-relay");
|
|
13
13
|
var _index = _interopRequireDefault(require("./index"));
|
|
14
14
|
var _TypeTesterContext = _interopRequireDefault(require("./TypeTesterContext"));
|
|
15
|
+
var _types = require("./types");
|
|
15
16
|
var _useSerializablePreloadedQuery = _interopRequireDefault(require("../../relay/useSerializablePreloadedQuery"));
|
|
16
17
|
var _ConfigContext = _interopRequireDefault(require("../ConfigContext"));
|
|
17
18
|
var _useLicenseAndOrderVariables = require("../../hooks/useLicenseAndOrderVariables");
|
|
@@ -98,7 +99,7 @@ function TypeTesterStandaloneComponent(_ref) {
|
|
|
98
99
|
fontStyle: changedStyle ? changedStylesData.node : (_data$viewer = data.viewer) === null || _data$viewer === void 0 ? void 0 : _data$viewer.fontStyle,
|
|
99
100
|
onStyleSelect: handleStyleSelect,
|
|
100
101
|
axes: axes,
|
|
101
|
-
features: features,
|
|
102
|
+
features: (0, _types.normalizeFeaturesProp)(features),
|
|
102
103
|
productId: ((_data$viewer2 = data.viewer) === null || _data$viewer2 === void 0 ? void 0 : (_data$viewer2$fontSty = _data$viewer2.fontStyle) === null || _data$viewer2$fontSty === void 0 ? void 0 : (_data$viewer2$fontSty2 = _data$viewer2$fontSty.family) === null || _data$viewer2$fontSty2 === void 0 ? void 0 : (_data$viewer2$fontSty3 = _data$viewer2$fontSty2.parent) === null || _data$viewer2$fontSty3 === void 0 ? void 0 : _data$viewer2$fontSty3.id) ?? ((_data$viewer3 = data.viewer) === null || _data$viewer3 === void 0 ? void 0 : (_data$viewer3$fontSty = _data$viewer3.fontStyle) === null || _data$viewer3$fontSty === void 0 ? void 0 : (_data$viewer3$fontSty2 = _data$viewer3$fontSty.family) === null || _data$viewer3$fontSty2 === void 0 ? void 0 : _data$viewer3$fontSty2.id),
|
|
103
104
|
groupEdit: false,
|
|
104
105
|
onFocus: onFocus,
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { LoadSerializableQueryOptions, SerializablePreloadedQuery } from '../../relay/loadSerializableQuery';
|
|
3
|
+
import { TypeTesterStandaloneQuery } from '../../__generated__/TypeTesterStandaloneQuery.graphql';
|
|
4
|
+
import { TypeTesterStandalonePreloadedQueryRenderer } from './TypeTesterStandalone';
|
|
5
|
+
export type TypeTesterPreloadedQuery = SerializablePreloadedQuery<TypeTesterStandaloneQuery>;
|
|
6
|
+
export interface LoadTypeTesterQueryVariables {
|
|
7
|
+
familyName: string;
|
|
8
|
+
styleName: string;
|
|
9
|
+
selectable?: boolean;
|
|
10
|
+
}
|
|
11
|
+
export declare function loadTypeTesterQuery(variables: LoadTypeTesterQueryVariables, options?: LoadSerializableQueryOptions): Promise<TypeTesterPreloadedQuery>;
|
|
12
|
+
type RendererProps = React.ComponentProps<typeof TypeTesterStandalonePreloadedQueryRenderer>;
|
|
13
|
+
export declare function TypeTesterPreloaded(props: RendererProps): React.JSX.Element;
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import loadSerializableQuery from '../../relay/loadSerializableQuery';
|
|
3
|
+
import TypeTesterStandaloneQueryNode from '../../__generated__/TypeTesterStandaloneQuery.graphql';
|
|
4
|
+
import FontdueProvider from '../FontdueProvider';
|
|
5
|
+
import { TypeTesterStandalonePreloadedQueryRenderer } from './TypeTesterStandalone';
|
|
6
|
+
export async function loadTypeTesterQuery(variables, options) {
|
|
7
|
+
return loadSerializableQuery(TypeTesterStandaloneQueryNode, {
|
|
8
|
+
familyName: variables.familyName,
|
|
9
|
+
styleName: variables.styleName,
|
|
10
|
+
selectable: variables.selectable ?? true
|
|
11
|
+
}, options);
|
|
12
|
+
}
|
|
13
|
+
// Self-wraps with FontdueProvider so consumers don't need to. The provider
|
|
14
|
+
// state is a module-level singleton under the hood, so multiple
|
|
15
|
+
// TypeTesterPreloaded (or other *Preloaded) components on a page all share
|
|
16
|
+
// one Relay env + Redux store + auxiliary UI.
|
|
17
|
+
export function TypeTesterPreloaded(props) {
|
|
18
|
+
return /*#__PURE__*/React.createElement(FontdueProvider, null, /*#__PURE__*/React.createElement(TypeTesterStandalonePreloadedQueryRenderer, props));
|
|
19
|
+
}
|
|
@@ -3,6 +3,8 @@ export type Content = EditorState;
|
|
|
3
3
|
export type Size = number;
|
|
4
4
|
export type LineHeight = number;
|
|
5
5
|
export type Features = string[];
|
|
6
|
+
export type FeaturesProp = ReadonlyArray<string> | '*' | null | undefined;
|
|
7
|
+
export declare const normalizeFeaturesProp: (features: FeaturesProp) => ReadonlyArray<string> | null;
|
|
6
8
|
export type Alignment = 'left' | 'center' | 'right';
|
|
7
9
|
export type Direction = 'ltr' | 'rtl';
|
|
8
10
|
export type TypeTesterAxesPosition = 'auto' | 'features-panel' | 'inline' | 'above';
|
|
@@ -2,4 +2,13 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
|
-
});
|
|
5
|
+
});
|
|
6
|
+
exports.normalizeFeaturesProp = void 0;
|
|
7
|
+
// Public-API feature prop. Accepts an array of feature codes, or the literal
|
|
8
|
+
// string '*' to expose every feature the font supports.
|
|
9
|
+
|
|
10
|
+
const normalizeFeaturesProp = features => features === '*' ? ['*'] : features ?? null;
|
|
11
|
+
|
|
12
|
+
// controls whether the type tester editing should apply to all of the
|
|
13
|
+
// testers within a group
|
|
14
|
+
exports.normalizeFeaturesProp = normalizeFeaturesProp;
|
|
@@ -4,8 +4,9 @@ interface TypeTestersElementProps {
|
|
|
4
4
|
collectionSlug?: string;
|
|
5
5
|
defaultMode?: string;
|
|
6
6
|
autofit?: string;
|
|
7
|
+
features?: string;
|
|
7
8
|
tags?: string;
|
|
8
9
|
excludeTags?: string;
|
|
9
10
|
}
|
|
10
|
-
declare function TypeTestersElement({ autofit, tags, excludeTags, defaultMode, ...rest }: TypeTestersElementProps): React.JSX.Element;
|
|
11
|
+
declare function TypeTestersElement({ autofit, tags, excludeTags, defaultMode, features, ...rest }: TypeTestersElementProps): React.JSX.Element;
|
|
11
12
|
export default TypeTestersElement;
|
|
@@ -19,13 +19,15 @@ function TypeTestersElement(_ref) {
|
|
|
19
19
|
tags,
|
|
20
20
|
excludeTags,
|
|
21
21
|
defaultMode,
|
|
22
|
+
features,
|
|
22
23
|
...rest
|
|
23
24
|
} = _ref;
|
|
24
25
|
return /*#__PURE__*/_react.default.createElement(_index.default, _extends({
|
|
25
26
|
tags: tags === null || tags === void 0 ? void 0 : tags.split(','),
|
|
26
27
|
excludeTags: excludeTags === null || excludeTags === void 0 ? void 0 : excludeTags.split(','),
|
|
27
28
|
autofit: autofit ? autofit === 'true' : undefined,
|
|
28
|
-
defaultMode: getDefaultMode(defaultMode, autofit === 'true')
|
|
29
|
+
defaultMode: getDefaultMode(defaultMode, autofit === 'true'),
|
|
30
|
+
features: features === null || features === void 0 ? void 0 : features.split(',')
|
|
29
31
|
}, rest));
|
|
30
32
|
}
|
|
31
33
|
var _default = TypeTestersElement;
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { TypeTestersIDQuery } from '../../__generated__/TypeTestersIDQuery.graphql';
|
|
3
3
|
import { TypeTestersSlugQuery } from '../../__generated__/TypeTestersSlugQuery.graphql';
|
|
4
|
+
import { FeaturesProp } from '../TypeTester/types';
|
|
4
5
|
import { SerializablePreloadedQuery } from '../../relay/loadSerializableQuery';
|
|
5
6
|
export interface TypeTesters_props {
|
|
6
7
|
collectionId?: string;
|
|
7
8
|
collectionSlug?: string;
|
|
8
9
|
defaultMode?: 'group' | 'local';
|
|
9
10
|
autofit?: boolean;
|
|
11
|
+
features?: FeaturesProp;
|
|
10
12
|
tags?: string[] | null;
|
|
11
13
|
excludeTags?: string[] | null;
|
|
12
14
|
onFocus?: () => void;
|
|
@@ -23,6 +23,7 @@ var _useRefetchOnLicenseChanges = require("../../hooks/useRefetchOnLicenseChange
|
|
|
23
23
|
var _TypeTestersRefetchQuery = _interopRequireDefault(require("../../__generated__/TypeTestersRefetchQuery.graphql"));
|
|
24
24
|
var _TypeTester = _interopRequireDefault(require("../TypeTester"));
|
|
25
25
|
var _TypeTesterFloatingToolbar = _interopRequireDefault(require("../TypeTester/TypeTesterFloatingToolbar"));
|
|
26
|
+
var _types = require("../TypeTester/types");
|
|
26
27
|
var _useSerializablePreloadedQuery = _interopRequireDefault(require("../../relay/useSerializablePreloadedQuery"));
|
|
27
28
|
var _useLicenseAndOrderVariables = require("../../hooks/useLicenseAndOrderVariables");
|
|
28
29
|
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); }
|
|
@@ -63,6 +64,7 @@ function TypeTestersComponent(_ref) {
|
|
|
63
64
|
viewer: viewerKey,
|
|
64
65
|
defaultMode,
|
|
65
66
|
autofit,
|
|
67
|
+
features: featuresOverride,
|
|
66
68
|
onFocus,
|
|
67
69
|
onBlur,
|
|
68
70
|
onToolbarOpenClose,
|
|
@@ -146,13 +148,14 @@ function TypeTestersComponent(_ref) {
|
|
|
146
148
|
return acc;
|
|
147
149
|
}, {});
|
|
148
150
|
if (!testers) return null;
|
|
151
|
+
const features = (0, _types.normalizeFeaturesProp)(featuresOverride) ?? collection.typeTesterFeatures;
|
|
149
152
|
return /*#__PURE__*/_react.default.createElement(_TypeTesterContext.default, {
|
|
150
153
|
key: collection.id,
|
|
151
154
|
defaultMode: defaultMode ?? (autofit ? 'local' : 'group'),
|
|
152
155
|
testers: testers
|
|
153
156
|
}, config.toolsPosition === 'floating' && /*#__PURE__*/_react.default.createElement(_TypeTesterFloatingToolbar.default, {
|
|
154
157
|
testers: ((_collection$typeTeste4 = collection.typeTesters) === null || _collection$typeTeste4 === void 0 ? void 0 : (_collection$typeTeste5 = _collection$typeTeste4.edges) === null || _collection$typeTeste5 === void 0 ? void 0 : _collection$typeTeste5.map(edge => edge.node)) ?? [],
|
|
155
|
-
features:
|
|
158
|
+
features: features,
|
|
156
159
|
axes: collection.typeTesterAxes,
|
|
157
160
|
onToolbarOpenClose: onToolbarOpenClose
|
|
158
161
|
}), getTypeTesterGroups(collection).map((typeTesterGroup, i) => {
|
|
@@ -179,7 +182,7 @@ function TypeTestersComponent(_ref) {
|
|
|
179
182
|
onStyleSelect: fontStyleId => handleStyleSelect(node.id, fontStyleId),
|
|
180
183
|
key: j,
|
|
181
184
|
productId: productId,
|
|
182
|
-
features:
|
|
185
|
+
features: features,
|
|
183
186
|
axes: collection.typeTesterAxes,
|
|
184
187
|
viewer: viewer,
|
|
185
188
|
tags: node.tags
|
package/dist/config.d.ts
ADDED
package/dist/config.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
// Module-level global configuration. Consumers call `configure()` once at
|
|
2
|
+
// app startup (e.g. Astro middleware, Next layout, Vite entry) and every
|
|
3
|
+
// fontdue-js entry point reads defaults from here. Explicit options passed
|
|
4
|
+
// to loadSerializableQuery / FontdueProvider still override.
|
|
5
|
+
//
|
|
6
|
+
// Per-request isolation note: `configure` sets module-level state. That's
|
|
7
|
+
// fine for single-tenant apps (one URL for the whole site). Multi-tenant
|
|
8
|
+
// servers that switch URL per request should pass `url` explicitly to
|
|
9
|
+
// loadSerializableQuery rather than rely on configure().
|
|
10
|
+
|
|
11
|
+
let current = {};
|
|
12
|
+
export function configure(opts) {
|
|
13
|
+
current = {
|
|
14
|
+
...current,
|
|
15
|
+
...opts
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
export function getConfig() {
|
|
19
|
+
return current;
|
|
20
|
+
}
|
package/dist/corsError.d.ts
CHANGED
package/dist/corsError.js
CHANGED
|
@@ -4,12 +4,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.handlePossibleCorsError = handlePossibleCorsError;
|
|
7
|
+
exports.setCorsModalEnabled = setCorsModalEnabled;
|
|
7
8
|
var _retryImport = _interopRequireDefault(require("./retryImport"));
|
|
8
9
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
10
|
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); }
|
|
10
11
|
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; }
|
|
11
12
|
let detected = false;
|
|
12
13
|
let navigating = false;
|
|
14
|
+
let modalEnabled = true;
|
|
15
|
+
function setCorsModalEnabled(enabled) {
|
|
16
|
+
modalEnabled = enabled;
|
|
17
|
+
}
|
|
13
18
|
if (typeof window !== 'undefined') {
|
|
14
19
|
window.addEventListener('beforeunload', () => {
|
|
15
20
|
navigating = true;
|
|
@@ -52,15 +57,17 @@ async function isCorsBlocked(fetchUrl) {
|
|
|
52
57
|
}
|
|
53
58
|
function showCorsError(origin, fetchUrl) {
|
|
54
59
|
console.error(`[Fontdue] Cross-origin request to ${fetchUrl} was blocked.\n\n` + `Your website (${origin}) is not listed as an allowed origin ` + `in your Fontdue CORS settings.\n\n` + `To fix this:\n` + `1. Log in to your Fontdue dashboard\n` + `2. Go to Settings \u2192 Security\n` + `3. Add "${origin}" to the "Cross-origin API access" field\n` + `4. Save \u2014 this page will reload automatically`);
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
60
|
+
if (modalEnabled) {
|
|
61
|
+
(0, _retryImport.default)(() => Promise.resolve().then(() => _interopRequireWildcard(require('./components/CorsErrorModal')))).then(_ref => {
|
|
62
|
+
let {
|
|
63
|
+
renderCorsErrorModal
|
|
64
|
+
} = _ref;
|
|
65
|
+
renderCorsErrorModal(origin, fetchUrl);
|
|
66
|
+
}).catch(() => {
|
|
67
|
+
// Chunk failed to load — the console.error above already
|
|
68
|
+
// told the developer what's wrong.
|
|
69
|
+
});
|
|
70
|
+
}
|
|
64
71
|
startPolling(fetchUrl);
|
|
65
72
|
}
|
|
66
73
|
function handlePossibleCorsError(error, fetchUrl) {
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// fbjs (transitive via draft-js) references Node's `global` at module init.
|
|
2
|
+
// Browsers don't define `global`, so hydration blows up with a ReferenceError.
|
|
3
|
+
// ESM evaluates imports in source order, so importing this first ensures the
|
|
4
|
+
// alias is in place before fbjs/setImmediate evaluates.
|
|
5
|
+
if (typeof globalThis.global === 'undefined') {
|
|
6
|
+
globalThis.global = globalThis;
|
|
7
|
+
}
|
|
8
|
+
export {};
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { configure, getConfig } from './config';
|
|
@@ -23,52 +23,61 @@ const CACHE_TTL = 10 * 1000; // 10 seconds, to resolve preloaded results
|
|
|
23
23
|
function createNetworkFetch(options) {
|
|
24
24
|
return async function networkFetch(request, variables) {
|
|
25
25
|
const url = (FONTDUE_URL && `${FONTDUE_URL}/graphql`) ?? ((options === null || options === void 0 ? void 0 : options.url) ?? '') + '/graphql';
|
|
26
|
-
let
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
26
|
+
for (let attempt = 0; attempt <= 2; attempt++) {
|
|
27
|
+
try {
|
|
28
|
+
const resp = await fetch(url + `?queryName=${request.name}`, {
|
|
29
|
+
method: 'POST',
|
|
30
|
+
credentials: 'include',
|
|
31
|
+
headers: {
|
|
32
|
+
Accept: 'application/json',
|
|
33
|
+
'Content-Type': 'application/json',
|
|
34
|
+
'fontdue-stripe-integration': STRIPE_INTEGRATION ?? ((options === null || options === void 0 ? void 0 : options.stripeIntegration) || 'dynamic'),
|
|
35
|
+
'fontdue-client-version': _package.version
|
|
36
|
+
},
|
|
37
|
+
body: JSON.stringify({
|
|
38
|
+
query: request.text,
|
|
39
|
+
variables
|
|
40
|
+
}),
|
|
41
|
+
// @ts-ignore
|
|
42
|
+
next: {
|
|
43
|
+
tags: ['graphql', `operation:${request.name}`]
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
const json = await resp.json();
|
|
47
|
+
|
|
48
|
+
// GraphQL returns exceptions (for example, a missing required variable) in the "errors"
|
|
49
|
+
// property of the response. If any exceptions occurred when processing the request,
|
|
50
|
+
// throw an error to indicate to the developer what went wrong.
|
|
51
|
+
if (Array.isArray(json.errors)) {
|
|
52
|
+
var _json$errors, _error$extensions;
|
|
53
|
+
const error = (_json$errors = json.errors) === null || _json$errors === void 0 ? void 0 : _json$errors[0];
|
|
54
|
+
console.error('GraphQL Error:', {
|
|
55
|
+
message: error.message,
|
|
56
|
+
code: (_error$extensions = error.extensions) === null || _error$extensions === void 0 ? void 0 : _error$extensions.code,
|
|
57
|
+
path: error.path
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
return json;
|
|
61
|
+
} catch (error) {
|
|
62
|
+
// Retry on network errors (TypeError) before falling through to CORS detection
|
|
63
|
+
if (attempt < 2 && error instanceof TypeError) {
|
|
64
|
+
await new Promise(resolve => setTimeout(resolve, 1000));
|
|
65
|
+
continue;
|
|
44
66
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
67
|
+
if ((0, _corsError.handlePossibleCorsError)(error, url)) {
|
|
68
|
+
return {
|
|
69
|
+
data: undefined,
|
|
70
|
+
errors: [{
|
|
71
|
+
message: 'Cross-origin request blocked'
|
|
72
|
+
}]
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
throw error;
|
|
54
76
|
}
|
|
55
|
-
throw error;
|
|
56
77
|
}
|
|
57
|
-
const json = await resp.json();
|
|
58
78
|
|
|
59
|
-
//
|
|
60
|
-
|
|
61
|
-
// throw an error to indicate to the developer what went wrong.
|
|
62
|
-
if (Array.isArray(json.errors)) {
|
|
63
|
-
var _json$errors, _error$extensions;
|
|
64
|
-
const error = (_json$errors = json.errors) === null || _json$errors === void 0 ? void 0 : _json$errors[0];
|
|
65
|
-
console.error('GraphQL Error:', {
|
|
66
|
-
message: error.message,
|
|
67
|
-
code: (_error$extensions = error.extensions) === null || _error$extensions === void 0 ? void 0 : _error$extensions.code,
|
|
68
|
-
path: error.path
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
return json;
|
|
79
|
+
// Unreachable — final iteration either returns or throws
|
|
80
|
+
throw new Error('Unexpected: exhausted retries');
|
|
72
81
|
};
|
|
73
82
|
}
|
|
74
83
|
const networkFetch = createNetworkFetch();
|