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,60 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = StyleSelect;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _Select = _interopRequireDefault(require("../Select"));
9
+ var _utils = require("../../utils");
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ function StyleSelect({
12
+ collections,
13
+ value,
14
+ onChange
15
+ }) {
16
+ const handleChange = e => {
17
+ const value = e.target.value;
18
+ if (value.includes(':::')) {
19
+ const [fontStyleId, variableInstanceName] = value.split(':::');
20
+ const fontStyle = collections.flatMap(coll => coll.fontStyles).find(style => style.id === fontStyleId);
21
+ const instance = fontStyle?.variableInstances?.find(({
22
+ name
23
+ }) => name === variableInstanceName);
24
+ let variableSettings;
25
+ if (instance) variableSettings = (0, _utils.variableInstanceSettings)(instance);
26
+ onChange({
27
+ fontStyleId,
28
+ variableSettings
29
+ });
30
+ } else {
31
+ onChange({
32
+ fontStyleId: value
33
+ });
34
+ }
35
+ };
36
+ let selectValue = value.fontStyleId;
37
+ if (value.variableSettings) {
38
+ const fontStyle = collections.flatMap(coll => coll.fontStyles).find(style => style.id === value.fontStyleId);
39
+ const instance = fontStyle?.variableInstances?.find(instance => (0, _utils.compareVariableSettings)(instance, value.variableSettings));
40
+ if (instance) {
41
+ selectValue = `${value.fontStyleId}:::${instance.name}`;
42
+ }
43
+ }
44
+ return /*#__PURE__*/_react.default.createElement(_Select.default, {
45
+ options: collections.flatMap(coll => {
46
+ if (coll.isVariableFont) {
47
+ return coll.fontStyles?.flatMap(style => style.variableInstances?.map(instance => ({
48
+ value: `${style.id}:::${instance.name}`,
49
+ text: `${coll.name} ${instance.name}`
50
+ })).filter(_utils.notEmpty)).filter(_utils.notEmpty) ?? [];
51
+ }
52
+ return coll.fontStyles?.map(style => ({
53
+ value: style.id,
54
+ text: `${coll.name} ${style.name}`
55
+ })).filter(_utils.notEmpty) ?? [];
56
+ }),
57
+ value: selectValue,
58
+ onChange: handleChange
59
+ });
60
+ }
@@ -0,0 +1,441 @@
1
+ "use strict";
2
+ 'use client';
3
+
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.CharacterViewerPreloadedIDQueryRenderer = CharacterViewerPreloadedIDQueryRenderer;
8
+ exports.CharacterViewerPreloadedSlugQueryRenderer = CharacterViewerPreloadedSlugQueryRenderer;
9
+ exports.default = CharacterViewer;
10
+ var _CharacterViewerSlugQuery2 = _interopRequireDefault(require("../../__generated__/CharacterViewerSlugQuery.graphql"));
11
+ var _CharacterViewerIDQuery2 = _interopRequireDefault(require("../../__generated__/CharacterViewerIDQuery.graphql"));
12
+ var _CharacterViewer_style2 = _interopRequireDefault(require("../../__generated__/CharacterViewer_style.graphql"));
13
+ var _CharacterViewer_collection2 = _interopRequireDefault(require("../../__generated__/CharacterViewer_collection.graphql"));
14
+ var _CharacterViewer_family2 = _interopRequireDefault(require("../../__generated__/CharacterViewer_family.graphql"));
15
+ var _react = _interopRequireWildcard(require("react"));
16
+ var _reactRelay = require("react-relay");
17
+ var _resizeObserver = _interopRequireDefault(require("@react-hook/resize-observer"));
18
+ var _retryImport = _interopRequireDefault(require("../../retryImport"));
19
+ var _utils = require("../../utils");
20
+ var _useFontStyle = _interopRequireDefault(require("../useFontStyle"));
21
+ var _useSerializablePreloadedQuery = _interopRequireDefault(require("../../relay/useSerializablePreloadedQuery"));
22
+ var _StyleSelect = _interopRequireDefault(require("./StyleSelect"));
23
+ var _Checkbox = _interopRequireDefault(require("../Checkbox"));
24
+ var _CharacterViewerStyleRefetchQuery = _interopRequireDefault(require("../../__generated__/CharacterViewerStyleRefetchQuery.graphql"));
25
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
26
+ 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); }
27
+ 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; }
28
+ 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); }
29
+ function useSize() {
30
+ const ref = (0, _react.useRef)(null);
31
+ const [size, setSize] = _react.default.useState();
32
+ (0, _react.useEffect)(() => {
33
+ if (!ref.current) return;
34
+ setSize(ref.current.getBoundingClientRect());
35
+ }, [ref]);
36
+ (0, _resizeObserver.default)(ref, entry => setSize(entry.contentRect), {
37
+ polyfill: typeof window === 'undefined' ? ServerSideResizeObserverPolyfill : null
38
+ });
39
+ return {
40
+ ref,
41
+ width: size?.width,
42
+ height: size?.height
43
+ };
44
+ }
45
+ class ServerSideResizeObserverPolyfill {
46
+ constructor(_callback) {}
47
+ observe(_target, _options) {}
48
+ unobserve(_target) {}
49
+ }
50
+ function Character(props) {
51
+ const ref = (0, _react.useRef)(null);
52
+ const [size, setSize] = (0, _react.useState)(1);
53
+ (0, _resizeObserver.default)(ref, entry => {
54
+ if (entry.target.scrollWidth > entry.target.clientWidth) {
55
+ setSize(size + 1);
56
+ }
57
+ }, {
58
+ polyfill: typeof window === 'undefined' ? ServerSideResizeObserverPolyfill : null
59
+ });
60
+ return /*#__PURE__*/_react.default.createElement("div", _extends({
61
+ ref: ref
62
+ }, props, {
63
+ "data-size": size
64
+ }));
65
+ }
66
+ function GlyphMeta({
67
+ glyph,
68
+ featuresChecked,
69
+ setFeaturesChecked,
70
+ getGlyphName,
71
+ getUnicodeName
72
+ }) {
73
+ if (!glyph) return null;
74
+ const unicodeName = getUnicodeName(glyph);
75
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", null, "Glyph name"), /*#__PURE__*/_react.default.createElement("span", null, getGlyphName(glyph)), unicodeName && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", null, "Unicode name"), /*#__PURE__*/_react.default.createElement("span", {
76
+ title: unicodeName
77
+ }, unicodeName)), /*#__PURE__*/_react.default.createElement("span", null, "Unicode decimal"), /*#__PURE__*/_react.default.createElement("span", null, glyph.string.split('').map(str => str.charCodeAt(0).toString(10)).join(', ')), /*#__PURE__*/_react.default.createElement("span", null, "Unicode hex"), /*#__PURE__*/_react.default.createElement("span", null, glyph.string.split('').map(str => str.charCodeAt(0).toString(16).padStart(4, '0')).join(', ')), glyph.features && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", null, "OpenType feature", glyph.features.length > 1 ? 's' : ''), /*#__PURE__*/_react.default.createElement("span", null, /*#__PURE__*/_react.default.createElement("label", null, /*#__PURE__*/_react.default.createElement(_Checkbox.default, {
78
+ checked: featuresChecked,
79
+ onChange: e => setFeaturesChecked(e.target.checked)
80
+ }), glyph.features.join(', ')))));
81
+ }
82
+ function useUnicodeData() {
83
+ const [data, setData] = (0, _react.useState)();
84
+ (0, _react.useEffect)(() => {
85
+ function fetchData() {
86
+ (0, _retryImport.default)(() => Promise.resolve().then(() => _interopRequireWildcard(require('../../data/unicodeData')))).then(data => {
87
+ if (!ignore) setData(data.default);
88
+ }).catch(() => {});
89
+ }
90
+ let ignore = false;
91
+ fetchData();
92
+ return () => {
93
+ ignore = true;
94
+ };
95
+ }, []);
96
+ return data;
97
+ }
98
+ function compareGlyphs(a, b) {
99
+ if (!a || !b) return false;
100
+ if (a.string !== b.string) return false;
101
+ if (a.features?.length !== b.features?.length) return false;
102
+ if (a.features && b.features) {
103
+ return a.features.every(feature => b.features?.includes(feature));
104
+ }
105
+ return true;
106
+ }
107
+ function charCode(c) {
108
+ return c.codePointAt(0) ?? 0;
109
+ }
110
+ function fromCharCode(code) {
111
+ return String.fromCodePoint(code);
112
+ }
113
+ function flattenCharacterList(charSet, glyphNames) {
114
+ if (!glyphNames || !charSet || !charSet.characters) return null;
115
+ return {
116
+ features: charSet.features,
117
+ characters: charSet.characters.reduce((acc, item) => {
118
+ if (item.__typename === 'CharacterString') {
119
+ acc.push(item.string);
120
+ } else if (item.__typename === 'CharacterRange') {
121
+ for (let code = charCode(item.first); code <= charCode(item.last); code++) {
122
+ acc.push(fromCharCode(code));
123
+ }
124
+ }
125
+ return acc;
126
+ }, []).filter(string => glyphNames.some(({
127
+ characters,
128
+ features
129
+ }) => compareGlyphs({
130
+ string,
131
+ features: charSet.features
132
+ }, {
133
+ string: characters,
134
+ features
135
+ })))
136
+ };
137
+ }
138
+ _CharacterViewer_family2.default.hash && _CharacterViewer_family2.default.hash !== "162b1a99fe187b20ee8560018cd5b3ce" && console.error("The definition of 'CharacterViewer_family' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."), _CharacterViewer_family2.default;
139
+ function areCombiningChars(input) {
140
+ for (const char of input) {
141
+ const codePoint = char.codePointAt(0);
142
+ if (codePoint === undefined) return false;
143
+ const isDiacriticalMark = codePoint >= 0x0300 && codePoint <= 0x036f;
144
+ const isSpacingModifierLetter = codePoint >= 0x02b0 && codePoint <= 0x02ff;
145
+ const isCombiningDiacriticalSupplement = codePoint >= 0x1dc0 && codePoint <= 0x1dff;
146
+ const isCombiningDiacriticalExtended = codePoint >= 0x1ab0 && codePoint <= 0x1aff;
147
+ const isCombiningHalfMark = codePoint >= 0xfe20 && codePoint <= 0xfe2f;
148
+ const isCombiningSymbolMark = codePoint >= 0x20d0 && codePoint <= 0x20ff;
149
+ const isCombiningChar = isDiacriticalMark || isSpacingModifierLetter || isCombiningDiacriticalSupplement || isCombiningDiacriticalExtended || isCombiningHalfMark || isCombiningSymbolMark;
150
+ if (!isCombiningChar) return false;
151
+ }
152
+ return true;
153
+ }
154
+
155
+ // Arabic positional features that don't render correctly in Safari
156
+ // These require text shaping that Safari doesn't properly support with ZWJ
157
+ const UNSUPPORTED_POSITIONAL_FEATURES = ['init', 'medi', 'fina'];
158
+ function hasUnsupportedPositionalFeatures(features) {
159
+ if (!features) return false;
160
+ return features.some(f => UNSUPPORTED_POSITIONAL_FEATURES.includes(f));
161
+ }
162
+ function CharacterViewerComponent({
163
+ collection: collectionKey
164
+ }) {
165
+ const collection = (0, _reactRelay.useFragment)((_CharacterViewer_collection2.default.hash && _CharacterViewer_collection2.default.hash !== "c2116c3c2c795e5306c3a2a0ecd60137" && console.error("The definition of 'CharacterViewer_collection' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."), _CharacterViewer_collection2.default), collectionKey);
166
+ const [fontStyle, refetchFontStyle] = (0, _reactRelay.useRefetchableFragment)((_CharacterViewer_style2.default.hash && _CharacterViewer_style2.default.hash !== "8cbf3328030930b88b3ec3601aaf7c45" && console.error("The definition of 'CharacterViewer_style' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."), _CharacterViewer_style2.default), collection.featureStyle);
167
+ let families = [];
168
+ if (collection.collectionType === 'family') families = [collection];
169
+ if (collection.collectionType === 'superfamily' && collection.children) families = collection.children;
170
+ const unicodeData = useUnicodeData();
171
+ let initialVariableSettings;
172
+ if (fontStyle?.variableInstances) {
173
+ initialVariableSettings = (0, _utils.variableInstanceSettings)(fontStyle.variableInstances[0]);
174
+ }
175
+ const [variableSettings, setVariableSettings] = (0, _react.useState)(initialVariableSettings);
176
+ const [featuresChecked, setFeaturesChecked] = (0, _react.useState)(true);
177
+ const environment = (0, _reactRelay.useRelayEnvironment)();
178
+ const handleStyleSelect = value => {
179
+ const variables = {
180
+ id: value.fontStyleId
181
+ };
182
+ // avoid Suspense using fetchQuery. future react may simplify this
183
+ (0, _reactRelay.fetchQuery)(environment, _CharacterViewerStyleRefetchQuery.default, variables).subscribe({
184
+ complete: () => {
185
+ refetchFontStyle(variables, {
186
+ fetchPolicy: 'store-only'
187
+ });
188
+ setVariableSettings(value.variableSettings);
189
+ }
190
+ });
191
+ };
192
+ let {
193
+ style
194
+ } = (0, _useFontStyle.default)({
195
+ fontStyle: fontStyle
196
+ });
197
+ if (variableSettings) {
198
+ style = {
199
+ ...style,
200
+ ...(0, _utils.variableSettingsCSS)(variableSettings)
201
+ };
202
+ }
203
+ const [selectedGlyph, setSelectedGlyph] = (0, _react.useState)({
204
+ string: 'A'
205
+ });
206
+ const [activeGlyph, setActiveGlyph] = (0, _react.useState)({
207
+ string: 'A'
208
+ });
209
+ const visibleGlyph = activeGlyph ?? selectedGlyph;
210
+ const getGlyphName = (0, _react.useCallback)(glyph => {
211
+ return fontStyle?.glyphNames?.find(({
212
+ characters,
213
+ features
214
+ }) => compareGlyphs(glyph, {
215
+ string: characters,
216
+ features
217
+ }))?.name ?? null;
218
+ }, [fontStyle, compareGlyphs]);
219
+ const getUnicodeName = (0, _react.useCallback)(glyph => {
220
+ return unicodeData?.[glyph.string.charCodeAt(0)] ?? null;
221
+ }, [unicodeData]);
222
+ const handleMouseLeave = () => {
223
+ if (selectedGlyph) setActiveGlyph(undefined);
224
+ };
225
+ const {
226
+ ref: blocksRef,
227
+ width: blocksWidth
228
+ } = useSize();
229
+ const {
230
+ ref: monitorRef,
231
+ width: monitorWidth
232
+ } = useSize();
233
+ if (!fontStyle) return null;
234
+ const {
235
+ ascender,
236
+ descender,
237
+ capHeight,
238
+ xHeight,
239
+ lineGap,
240
+ unitsPerEm
241
+ } = fontStyle.verticalMetrics;
242
+ const halfGap = (lineGap ?? 0) / 2;
243
+ const pos = offset => ascender + halfGap - offset;
244
+
245
+ // Lines in priority order — lower-priority lines hidden when overlapping higher ones.
246
+ // Threshold: ~18px (label height) converted to font units via current scale.
247
+ const scale = monitorWidth ? monitorWidth / 2 / unitsPerEm : 0;
248
+ const threshold = scale > 0 ? 18 / scale : 0;
249
+ const lines = [{
250
+ name: 'baseline',
251
+ position: pos(0),
252
+ label: 'Baseline',
253
+ value: 0
254
+ }, capHeight != null && {
255
+ name: 'cap-height',
256
+ position: pos(capHeight),
257
+ label: 'Cap height',
258
+ value: capHeight
259
+ }, xHeight != null && {
260
+ name: 'x-height',
261
+ position: pos(xHeight),
262
+ label: 'x-Height',
263
+ value: xHeight
264
+ }, {
265
+ name: 'ascender',
266
+ position: pos(ascender),
267
+ label: 'Ascender',
268
+ value: ascender
269
+ }, {
270
+ name: 'descender',
271
+ position: pos(descender),
272
+ label: 'Descender',
273
+ value: descender
274
+ }].filter(line => Boolean(line)).reduce((visible, line) =>
275
+ // Skip this line if it's within the threshold of any already-accepted
276
+ // higher-priority line — otherwise accept it
277
+ threshold > 0 && visible.some(v => Math.abs(v.position - line.position) < threshold) ? visible : [...visible, line], []);
278
+ const groups = (0, _react.useMemo)(() => {
279
+ return collection.glyphGroups?.map(({
280
+ name,
281
+ characterSets
282
+ }) => ({
283
+ name,
284
+ characterSets: characterSets
285
+ // Filter out character sets with Arabic positional features (init, medi, fina)
286
+ // These don't render correctly in Safari due to text shaping limitations
287
+ ?.filter(charSet => !hasUnsupportedPositionalFeatures(charSet.features))?.map(charSet => flattenCharacterList(charSet, fontStyle.glyphNames)).filter(_utils.notEmpty)
288
+ }))
289
+ // Filter out groups that have no character sets left after filtering
290
+ .filter(group => group.characterSets && group.characterSets.length > 0);
291
+ }, [collection, fontStyle]);
292
+ return /*#__PURE__*/_react.default.createElement("div", {
293
+ className: "character-viewer",
294
+ style: {
295
+ '--units-per-em': fontStyle.verticalMetrics.unitsPerEm,
296
+ '--ascender': fontStyle.verticalMetrics.ascender,
297
+ '--descender': fontStyle.verticalMetrics.descender,
298
+ '--cap-height': fontStyle.verticalMetrics.capHeight ?? undefined,
299
+ '--x-height': fontStyle.verticalMetrics.xHeight ?? undefined,
300
+ '--line-gap': fontStyle.verticalMetrics.lineGap ?? undefined,
301
+ '--monitor-width': monitorWidth
302
+ }
303
+ }, /*#__PURE__*/_react.default.createElement("div", {
304
+ className: "character-viewer__character-map"
305
+ }, /*#__PURE__*/_react.default.createElement("div", {
306
+ className: "character-viewer__monitor"
307
+ }, visibleGlyph && /*#__PURE__*/_react.default.createElement("div", {
308
+ className: "character-viewer__monitor__container"
309
+ }, /*#__PURE__*/_react.default.createElement("div", {
310
+ className: "character-viewer__monitor__character-container"
311
+ }, /*#__PURE__*/_react.default.createElement("div", {
312
+ className: "character-viewer__monitor__character",
313
+ style: {
314
+ ...style,
315
+ fontFeatureSettings: visibleGlyph.features && featuresChecked ? `${visibleGlyph.features.map(feature => `'${feature}' 1`).join(', ')}` : `'calt' off, 'liga' off`
316
+ },
317
+ ref: monitorRef
318
+ }, /*#__PURE__*/_react.default.createElement("span", null, visibleGlyph.string)), lines.map(line => /*#__PURE__*/_react.default.createElement("div", {
319
+ className: "character-viewer__monitor__line",
320
+ "data-name": line.name,
321
+ key: line.name
322
+ }, /*#__PURE__*/_react.default.createElement("span", {
323
+ className: "character-viewer__monitor__line__label"
324
+ }, line.label), /*#__PURE__*/_react.default.createElement("span", {
325
+ className: "character-viewer__monitor__line__value"
326
+ }, line.value)))), /*#__PURE__*/_react.default.createElement("div", {
327
+ className: "character-viewer__monitor__details"
328
+ }, /*#__PURE__*/_react.default.createElement("span", null, "Font style"), /*#__PURE__*/_react.default.createElement("span", null, /*#__PURE__*/_react.default.createElement(_StyleSelect.default, {
329
+ collections: families,
330
+ onChange: handleStyleSelect,
331
+ value: {
332
+ fontStyleId: fontStyle.id,
333
+ variableSettings
334
+ }
335
+ })), /*#__PURE__*/_react.default.createElement(GlyphMeta, {
336
+ glyph: visibleGlyph,
337
+ getGlyphName: getGlyphName,
338
+ getUnicodeName: getUnicodeName,
339
+ featuresChecked: featuresChecked,
340
+ setFeaturesChecked: setFeaturesChecked
341
+ })))), /*#__PURE__*/_react.default.createElement("div", {
342
+ className: "character-viewer_blocks",
343
+ ref: blocksRef,
344
+ style: {
345
+ '--width': blocksWidth ?? 600
346
+ }
347
+ }, groups?.map(({
348
+ name,
349
+ characterSets
350
+ }, i) => /*#__PURE__*/_react.default.createElement("div", {
351
+ className: "character-viewer__block",
352
+ key: i,
353
+ "data-name": name
354
+ }, /*#__PURE__*/_react.default.createElement("div", {
355
+ className: "character-viewer__block__name"
356
+ }, name), /*#__PURE__*/_react.default.createElement("div", {
357
+ className: "character-viewer__block__characters",
358
+ style: style,
359
+ onMouseLeave: handleMouseLeave
360
+ }, characterSets?.map((set, j) => /*#__PURE__*/_react.default.createElement("div", {
361
+ key: j,
362
+ className: "character-viewer__block__character-list",
363
+ style: {
364
+ fontFeatureSettings: set.features ? `${set.features.map(feature => `'${feature}' 1`).join(', ')}` : undefined
365
+ }
366
+ }, set.characters.map((chars, k) => {
367
+ const selection = {
368
+ string: chars,
369
+ features: set.features
370
+ };
371
+ return /*#__PURE__*/_react.default.createElement(Character, {
372
+ key: k,
373
+ onClick: () => setSelectedGlyph(selection),
374
+ onMouseEnter: () => setActiveGlyph(selection),
375
+ "data-selected": compareGlyphs(selectedGlyph, selection)
376
+ }, areCombiningChars(chars) ? /*#__PURE__*/_react.default.createElement("span", null, '\u200C', chars) : chars);
377
+ })))))))));
378
+ }
379
+ const idQuery = (_CharacterViewerIDQuery2.default.hash && _CharacterViewerIDQuery2.default.hash !== "f90b09a4df6d95307b0a5d5fda487cdc" && console.error("The definition of 'CharacterViewerIDQuery' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."), _CharacterViewerIDQuery2.default);
380
+ function CharacterViewerIdQueryRenderer({
381
+ collectionId
382
+ }) {
383
+ const data = (0, _reactRelay.useLazyLoadQuery)(idQuery, {
384
+ collectionId
385
+ });
386
+ if (!data.node) return null;
387
+ return /*#__PURE__*/_react.default.createElement(CharacterViewerComponent, {
388
+ collection: data.node
389
+ });
390
+ }
391
+ function CharacterViewerPreloadedIDQueryRenderer({
392
+ preloadedQuery,
393
+ ...rest
394
+ }) {
395
+ const queryRef = (0, _useSerializablePreloadedQuery.default)(preloadedQuery);
396
+ const data = (0, _reactRelay.usePreloadedQuery)(idQuery, queryRef);
397
+ if (!data.node) return null;
398
+ return /*#__PURE__*/_react.default.createElement(CharacterViewerComponent, _extends({}, rest, {
399
+ collection: data.node
400
+ }));
401
+ }
402
+ function CharacterViewerSlugQueryRenderer({
403
+ collectionSlug
404
+ }) {
405
+ const data = (0, _reactRelay.useLazyLoadQuery)((_CharacterViewerSlugQuery2.default.hash && _CharacterViewerSlugQuery2.default.hash !== "afa08a8f050e0434308892fea6e3c267" && console.error("The definition of 'CharacterViewerSlugQuery' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."), _CharacterViewerSlugQuery2.default), {
406
+ collectionSlug
407
+ });
408
+ const collection = data?.viewer?.slug?.fontCollection;
409
+ if (!collection) return null;
410
+ return /*#__PURE__*/_react.default.createElement(CharacterViewerComponent, {
411
+ collection: collection
412
+ });
413
+ }
414
+ function CharacterViewerPreloadedSlugQueryRenderer({
415
+ preloadedQuery,
416
+ ...rest
417
+ }) {
418
+ const queryRef = (0, _useSerializablePreloadedQuery.default)(preloadedQuery);
419
+ const data = (0, _reactRelay.usePreloadedQuery)(idQuery, queryRef);
420
+ const collection = data?.viewer?.slug?.fontCollection;
421
+ if (!collection) return null;
422
+ return /*#__PURE__*/_react.default.createElement(CharacterViewerComponent, _extends({}, rest, {
423
+ collection: collection
424
+ }));
425
+ }
426
+ function CharacterViewer({
427
+ collectionId,
428
+ collectionSlug
429
+ }) {
430
+ if (collectionId) {
431
+ return /*#__PURE__*/_react.default.createElement(CharacterViewerIdQueryRenderer, {
432
+ collectionId: collectionId
433
+ });
434
+ }
435
+ if (collectionSlug) {
436
+ return /*#__PURE__*/_react.default.createElement(CharacterViewerSlugQueryRenderer, {
437
+ collectionSlug: collectionSlug
438
+ });
439
+ }
440
+ throw new Error('CharacterViewer expected either a collectionId or collectionSlug prop');
441
+ }
@@ -0,0 +1,36 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = CharacterViewer;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _loadSerializableQuery = _interopRequireDefault(require("../../relay/loadSerializableQuery"));
9
+ var _index = require("./index");
10
+ var _CharacterViewerIDQuery = _interopRequireDefault(require("../../__generated__/CharacterViewerIDQuery.graphql"));
11
+ var _CharacterViewerSlugQuery = _interopRequireDefault(require("../../__generated__/CharacterViewerSlugQuery.graphql"));
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ 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); }
14
+ async function CharacterViewer({
15
+ collectionId,
16
+ collectionSlug,
17
+ ...rest
18
+ }) {
19
+ if (collectionId) {
20
+ const preloadedQuery = await (0, _loadSerializableQuery.default)(_CharacterViewerIDQuery.default, {
21
+ collectionId
22
+ });
23
+ return /*#__PURE__*/_react.default.createElement(_index.CharacterViewerPreloadedIDQueryRenderer, _extends({
24
+ preloadedQuery: preloadedQuery
25
+ }, rest));
26
+ }
27
+ if (collectionSlug) {
28
+ const preloadedQuery = await (0, _loadSerializableQuery.default)(_CharacterViewerSlugQuery.default, {
29
+ collectionSlug
30
+ });
31
+ return /*#__PURE__*/_react.default.createElement(_index.CharacterViewerPreloadedSlugQueryRenderer, _extends({
32
+ preloadedQuery: preloadedQuery
33
+ }, rest));
34
+ }
35
+ return null;
36
+ }
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _ConfigContext = _interopRequireDefault(require("../ConfigContext"));
9
+ var _Icons = require("../Icons");
10
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
11
+ 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); }
12
+ 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; }
13
+ 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); }
14
+ const Checkbox = props => {
15
+ const {
16
+ form: config
17
+ } = (0, _react.useContext)(_ConfigContext.default);
18
+ return /*#__PURE__*/_react.default.createElement("div", {
19
+ className: "checkbox"
20
+ }, /*#__PURE__*/_react.default.createElement("input", _extends({
21
+ type: "checkbox"
22
+ }, props)), /*#__PURE__*/_react.default.createElement("div", {
23
+ className: "checkbox__icon"
24
+ }, config.checkboxStyle === 'check' ? /*#__PURE__*/_react.default.createElement(_Icons.Check, null) : /*#__PURE__*/_react.default.createElement(_Icons.X, null)));
25
+ };
26
+ var _default = Checkbox;
27
+ exports.default = _default;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.CollectionAa = void 0;
7
+ var _CollectionAa_Query2 = _interopRequireDefault(require("../../__generated__/CollectionAa_Query.graphql"));
8
+ var _CollectionAa_product2 = _interopRequireDefault(require("../../__generated__/CollectionAa_product.graphql"));
9
+ var _react = _interopRequireDefault(require("react"));
10
+ var _reactRelay = require("react-relay");
11
+ var _FontStyle = _interopRequireDefault(require("../FontStyle"));
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ const CollectionAa = ({
14
+ product: productKey
15
+ }) => {
16
+ const product = (0, _reactRelay.useFragment)((_CollectionAa_product2.default.hash && _CollectionAa_product2.default.hash !== "c6b0113fe8474166dab3649c41880d84" && console.error("The definition of 'CollectionAa_product' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."), _CollectionAa_product2.default), productKey);
17
+ let fontStyle;
18
+ if (product?.__typename === 'Bundle') {
19
+ fontStyle = product.fontStyles?.[0];
20
+ } else if (product?.__typename === 'FontCollection') {
21
+ fontStyle = product.featureStyle;
22
+ }
23
+ if (!fontStyle) return null;
24
+ return /*#__PURE__*/_react.default.createElement(_FontStyle.default, {
25
+ fontStyle: fontStyle
26
+ }, /*#__PURE__*/_react.default.createElement("span", null, "A"), /*#__PURE__*/_react.default.createElement("span", null, "a"));
27
+ };
28
+ exports.CollectionAa = CollectionAa;
29
+ function CollectionAaQueryRenderer({
30
+ collectionId
31
+ }) {
32
+ const data = (0, _reactRelay.useLazyLoadQuery)((_CollectionAa_Query2.default.hash && _CollectionAa_Query2.default.hash !== "fbe1f59d074d964464c71ea00d2bd90f" && console.error("The definition of 'CollectionAa_Query' appears to have changed. Run `relay-compiler` to update the generated files to receive the expected data."), _CollectionAa_Query2.default), {
33
+ collectionId
34
+ });
35
+ return /*#__PURE__*/_react.default.createElement(CollectionAa, data);
36
+ }
37
+ var _default = CollectionAaQueryRenderer;
38
+ exports.default = _default;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ 'use client';
3
+
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.default = void 0;
8
+ var _react = _interopRequireDefault(require("react"));
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ const ComponentsContext = /*#__PURE__*/_react.default.createContext({});
11
+ var _default = ComponentsContext;
12
+ exports.default = _default;