@gem-sdk/pages 22.0.0-dev.64 → 22.0.0-staging.45
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/dist/cjs/components/AddSectionFromBottom.js +1 -1
- package/dist/cjs/components/EmptyPagePlaceholder.js +1 -1
- package/dist/cjs/components/EmptyPagePlaceholderContent.js +1 -1
- package/dist/cjs/components/GoogleAnalytic.js +2 -2
- package/dist/cjs/components/SharePageTracking.js +1 -1
- package/dist/cjs/components/builder/Body.js +1 -1
- package/dist/cjs/components/builder/PopupManager.js +1 -1
- package/dist/cjs/components/builder/SwitchView.js +1 -1
- package/dist/cjs/components/builder/Toolbar.js +1 -1
- package/dist/cjs/components/builder/Toolbox.js +1 -1
- package/dist/cjs/components/builder/toolbar/utils/findOverflowParent.js +1 -1
- package/dist/cjs/libs/api/get-builder-props.js +1 -1
- package/dist/cjs/libs/api/get-collection-props.js +1 -1
- package/dist/cjs/libs/api/get-collection-share-page-props.js +1 -1
- package/dist/cjs/libs/api/get-home-page-props-v2.js +1 -1
- package/dist/cjs/libs/api/get-home-page-props.js +1 -1
- package/dist/cjs/libs/api/get-post-purchase-props-preview.js +1 -1
- package/dist/cjs/libs/api/get-preview-content-props.js +1 -1
- package/dist/cjs/libs/api/get-preview-props.js +1 -1
- package/dist/cjs/libs/api/get-product-props.js +1 -1
- package/dist/cjs/libs/api/get-share-page-props.js +1 -1
- package/dist/cjs/libs/api/get-static-page-props-preview.js +1 -1
- package/dist/cjs/libs/api/get-static-page-props-v2.js +1 -1
- package/dist/cjs/libs/api/get-static-page-props.js +1 -1
- package/dist/cjs/libs/fetcher.js +1 -1
- package/dist/cjs/libs/google-fonts.js +2 -2
- package/dist/cjs/libs/helpers/gen-css.js +1 -1
- package/dist/cjs/libs/helpers/normalize.js +1 -1
- package/dist/cjs/libs/hooks/usePageViewedTracking.js +1 -1
- package/dist/cjs/pages/500.js +1 -1
- package/dist/cjs/pages/CollectionGlobalProvider.js +1 -1
- package/dist/cjs/pages/builder.js +1 -1
- package/dist/cjs/pages/collection-detail.js +1 -1
- package/dist/cjs/pages/headless.js +3 -3
- package/dist/cjs/pages/preview-template.js +1 -1
- package/dist/cjs/pages/product-detail.js +1 -1
- package/dist/cjs/pages/static-v2.js +3 -3
- package/dist/cjs/pages/static.js +1 -1
- package/dist/esm/components/AddSectionFromBottom.js +1 -1
- package/dist/esm/components/EmptyPagePlaceholder.js +1 -1
- package/dist/esm/components/EmptyPagePlaceholderContent.js +1 -1
- package/dist/esm/components/GoogleAnalytic.js +2 -2
- package/dist/esm/components/SharePageTracking.js +1 -1
- package/dist/esm/components/builder/Body.js +1 -1
- package/dist/esm/components/builder/PopupManager.js +1 -1
- package/dist/esm/components/builder/SwitchView.js +1 -1
- package/dist/esm/components/builder/Toolbar.js +1 -1
- package/dist/esm/components/builder/Toolbox.js +1 -1
- package/dist/esm/components/builder/toolbar/utils/findOverflowParent.js +1 -1
- package/dist/esm/libs/api/get-builder-props.js +1 -1
- package/dist/esm/libs/api/get-collection-props.js +1 -1
- package/dist/esm/libs/api/get-collection-share-page-props.js +1 -1
- package/dist/esm/libs/api/get-home-page-props-v2.js +1 -1
- package/dist/esm/libs/api/get-home-page-props.js +1 -1
- package/dist/esm/libs/api/get-post-purchase-props-preview.js +1 -1
- package/dist/esm/libs/api/get-preview-content-props.js +1 -1
- package/dist/esm/libs/api/get-preview-props.js +1 -1
- package/dist/esm/libs/api/get-product-props.js +1 -1
- package/dist/esm/libs/api/get-share-page-props.js +1 -1
- package/dist/esm/libs/api/get-static-page-props-preview.js +1 -1
- package/dist/esm/libs/api/get-static-page-props-v2.js +1 -1
- package/dist/esm/libs/api/get-static-page-props.js +1 -1
- package/dist/esm/libs/fetcher.js +1 -1
- package/dist/esm/libs/google-fonts.js +2 -2
- package/dist/esm/libs/helpers/gen-css.js +1 -1
- package/dist/esm/libs/helpers/normalize.js +1 -1
- package/dist/esm/libs/hooks/usePageViewedTracking.js +1 -1
- package/dist/esm/pages/500.js +1 -1
- package/dist/esm/pages/CollectionGlobalProvider.js +1 -1
- package/dist/esm/pages/builder.js +1 -1
- package/dist/esm/pages/collection-detail.js +1 -1
- package/dist/esm/pages/headless.js +3 -3
- package/dist/esm/pages/preview-template.js +1 -1
- package/dist/esm/pages/product-detail.js +1 -1
- package/dist/esm/pages/static-v2.js +3 -3
- package/dist/esm/pages/static.js +1 -1
- package/dist/types/index.d.ts +2 -3
- package/package.json +14 -14
- package/dist/cjs/libs/interaction.js +0 -1
- package/dist/esm/libs/interaction.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{PublishedThemePagesDocument as e,StorePropertyDocument as o,PublishedShopMetasDocument as t}from"@gem-sdk/core";import{
|
|
1
|
+
import{PublishedThemePagesDocument as e,StorePropertyDocument as o,PublishedShopMetasDocument as t}from"@gem-sdk/core";import{getStaticFontFacesFromPageTemplate as a,getStaticFontFacesFromGlobalStyle as l}from"../google-fonts.js";import{parseBuilderTemplateV2 as s,extractPageBackground as i}from"../helpers/normalize.js";import{getPublishedThemePageMetafieldByKey as r}from"../helpers/get-metafield.js";import{parseJson as n,serializableJson as d}from"../helpers/parse-json.js";import{generateSeoLinks as m}from"../helpers/generate-seo-links.js";import{PublishedThemePageMetafields as p}from"../../constants/index.js";import{ShopMetaDocument as u}from"@gem-sdk/adapter-shopify";import{getFallbackV2 as f}from"../helpers/get-fallback.js";import{captureException as c}from"@sentry/nextjs";import{getCustomFonts as h}from"../custom-fonts.js";import{genCSS as g}from"../helpers/gen-css.js";let T=(T,_)=>async()=>{try{let[c,y,A,I]=await Promise.allSettled([T([e.toString(),{slugType:"STATIC"}]),T([o.toString()]),_([u]),T([t.toString(),{keys:["source_font",p.GLOBAL_META_DESCRIPTION,p.GLOBAL_META_THUMBNAIL]}])]);if("rejected"===c.status)throw Error(c.reason?.[0]);let L="fulfilled"===I.status?I.value:void 0,C=L?.publishedShopMetas?.find(e=>e?.key==="source_font"),S=c.value?.publishedThemePages?.[0],P=c.value?.publishedThemePages?.[0]?.themePageCustomFonts;if(!S)throw Error("No data builder found for Home page");let v=s(S),[E,M,O,k]=await Promise.all([a({pageTemplate:v,sourceFont:C?.value,data:S?.pageStyle?.data}),l({data:S?.pageStyle?.data,sourceFont:C?.value}),f(T,v),h(P)]),D=S.isMobile??!1,B=r(p.GLOBAL_META_DESCRIPTION,S?.metafields)||L?.publishedShopMetas?.find(e=>e?.key===p.GLOBAL_META_DESCRIPTION)?.value,b=n(r(p.GLOBAL_META_THUMBNAIL,S?.metafields)||L?.publishedShopMetas?.find(e=>e?.key===p.GLOBAL_META_THUMBNAIL)?.value),j="fulfilled"===A.status?A.value:void 0,N="fulfilled"===y.status?y.value:void 0,G=N?.storeProperty?.favicon??"/favicon/favicon-32x32.png",H={defaultTitle:j?.shop.name,title:S?.name??"Home",description:B??j?.shop.description,openGraph:{locale:j?.localization.country.isoCode,title:S?.name??j?.shop.name,description:B??j?.shop.description,images:b?[b]:[]},additionalMetaTags:[{name:"theme-color",content:"#000000"}],canonical:`https://${N?.storeProperty?.primaryDomain}/`,additionalLinkTags:m({favicon:G,shopMeta:j})},w=j?.localization.language.isoCode??null,x=j?.localization.country.isoCode??null,F=w&&x?`${w}-${x}`:null;return d({id:c.value?.publishedThemePages?.[0]?.id??null,shopID:c.value?.publishedThemePages?.[0]?.shopID??null,themeStyle:g(S?.pageStyle?.data,D),fontStyle:M,elementFontStyle:E,builderData:v,swr:{fallback:O},moneyFormat:j?.shop.moneyFormat??null,currency:j?.localization.country.currency.isoCode??null,languageIsoCode:w,countryIsoCode:x,locale:F,swatches:n(N?.storeProperty?.swatchesConfig),seo:H,mobileOnly:D,gaTrackingId:r(p.ANALYTICS_GA_TRACKING_ID,S?.metafields)??null,facebookPixelId:r(p.ANALYTICS_FB_PIXEL_ID,S?.metafields)??null,tiktokPixelId:r(p.ANALYTICS_TIKTOK_PIXEL_ID,S?.metafields)??null,customCodeHeader:r(p.CUSTOM_CODE_HEADER,S?.metafields)??null,customCodeBody:r(p.CUSTOM_CODE_BODY,S?.metafields)??null,pageHandle:S.handle??null,customFonts:k,pageBackground:i(S)})}catch(e){throw c(e),e}};export{T as getHomePagePropsV2};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{PublishedThemePagesDocument as e,StorePropertyDocument as o,PublishedShopMetasDocument as t,prefetchQueries as r}from"@gem-sdk/core";import{
|
|
1
|
+
import{PublishedThemePagesDocument as e,StorePropertyDocument as o,PublishedShopMetasDocument as t,prefetchQueries as r}from"@gem-sdk/core";import{getPublishedThemePageMetafieldByKey as s}from"../helpers/get-metafield.js";import{parseJson as a,serializableJson as i}from"../helpers/parse-json.js";import{generateManifest as l}from"../helpers/generate-manifres.js";import{PublishedThemePageMetafields as n}from"../../constants/index.js";import{ShopMetaDocument as p}from"@gem-sdk/adapter-shopify";import{parseBuilderTemplate as m}from"../helpers/normalize.js";import{getFontFromGlobalStyle as c}from"../google-fonts.js";import{genCSS as d}from"../helpers/gen-css.js";let f=(f,u)=>async()=>{let h="STATIC",[g,y,_,T]=await Promise.allSettled([f([e.toString(),{slugType:h}]),f([o.toString()]),u([p]),f([t.toString(),{keys:[n.GLOBAL_META_DESCRIPTION,n.GLOBAL_META_THUMBNAIL]}])]);if("rejected"===g.status)return{pageType:h};let A="fulfilled"===T.status?T.value:void 0,L=g.value.publishedThemePages?.[0],z=m(L),v=await c(L?.pageStyle?.data,void 0),S=r(z),x=await Promise.allSettled(S.map(({query:e,variables:o,func:t})=>t?t(f,o):e?f([e,o]):{})),M=S.reduce((e,{key:o},t)=>{let r=x[t];return r?.status==="fulfilled"?{...e,[o]:r.value}:e},{}),I=s(n.GLOBAL_META_DESCRIPTION,L?.metafields)||A?.publishedShopMetas?.find(e=>e?.key===n.GLOBAL_META_DESCRIPTION)?.value,P=a(s(n.GLOBAL_META_THUMBNAIL,L?.metafields)||A?.publishedShopMetas?.find(e=>e?.key===n.GLOBAL_META_THUMBNAIL)?.value),j="fulfilled"===_.status?_.value:void 0,B="fulfilled"===y.status?y.value:void 0,C=B?.storeProperty?.favicon??"/favicon/favicon-32x32.png",E={defaultTitle:j?.shop.name,title:L?.name??"Home",description:I??j?.shop.description,openGraph:{locale:j?.localization.country.isoCode,title:L?.name??j?.shop.name,description:I??j?.shop.description,images:P?[P]:[]},additionalMetaTags:[{name:"theme-color",content:"#000000"}],canonical:"/",additionalLinkTags:[{rel:"icon",sizes:"32x32",href:`${C}-/crop/1:1/center/-/smart_resize/32x32/`},{rel:"icon",sizes:"16x16",href:`${C}-/crop/1:1/center/-/smart_resize/16x16/`},{rel:"apple-touch-icon",sizes:"180x180",href:`${C}-/crop/1:1/center/-/smart_resize/180x180/`},{rel:"manifest",href:l({theme_color:"#000000",background_color:"#ffffff",display:"standalone",scope:"/",start_url:"/",name:j?.shop.name,short_name:j?.shop.name,description:j?.shop.description,icons:[{src:`${C}-/crop/1:1/center/-/smart_resize/192x192/`,sizes:"192x192",type:"image/png",purpose:"any maskable"},{src:`${C}-/crop/1:1/center/-/smart_resize/512x512/`,sizes:"512x512",type:"image/png"}]})}]},O=j?.localization.language.isoCode??null,k=j?.localization.country.isoCode??null,G=O&&k?`${O}-${k}`:null;return i({themeStyle:d(L?.pageStyle?.data),fontStyle:v,builderData:z,pageType:h,swr:{fallback:M},moneyFormat:j?.shop.moneyFormat??null,currency:j?.localization.country.currency.isoCode??null,locale:G,languageIsoCode:O,countryIsoCode:k,swatches:a(B?.storeProperty?.swatchesConfig),seo:E})};export{f as getHomePageProps};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{LibraryTemplateDocument as e,StorePropertyDocument as r,LibrarySaleFunnelDocument as t,ShopLibraryPageDocument as a,SaleFunnelDiscountsDocument as l,SaleFunnelOfferDocument as n,ThemePageDocument as o,ThemePageMetaDocument as s}from"@gem-sdk/core";import{
|
|
1
|
+
import{LibraryTemplateDocument as e,StorePropertyDocument as r,LibrarySaleFunnelDocument as t,ShopLibraryPageDocument as a,SaleFunnelDiscountsDocument as l,SaleFunnelOfferDocument as n,ThemePageDocument as o,ThemePageMetaDocument as s}from"@gem-sdk/core";import{parseBuilderLibraryTemplate as i,parseShopLibraryPageTemplate as f,parseBuilderTemplateV2 as d,extractPageBackground as u}from"../helpers/normalize.js";import{getFontStyleFromPageTemplate as c,getFontLinkFromGlobalStyle as g}from"../google-fonts.js";import{usePagePreview as h}from"../hooks/usePagePreview.js";import{serializableJson as m}from"../helpers/parse-json.js";import{getFallbackV2 as y}from"../helpers/get-fallback.js";import{captureException as p}from"@sentry/nextjs";import{genCSS as P}from"../helpers/gen-css.js";let D="page_settings",S=async(e,t)=>{let a={themePageId:e.themePageId,first:1,where:{default:!0}},[l,n]=await Promise.allSettled([t([o.toString(),a]),t([r.toString()])]);if("rejected"===l.status)throw Error(l.reason?.[0]);return{dataBuilder:l.value.themePage,pageStyle:l.value.themePage?.theme?.themeStyles?.edges?.[0]?.node?.data,storeProperty:n,dynamicDiscountOffer:void 0,productOffers:[],sellingPlanSetting:{},buyerConsentPreCheck:{}}},w=async(e,t)=>{let a={themePageId:e.themePageId,first:1,where:{default:!0}},i={themePageID:e.themePageId,where:{key:D}},[f,d,u,c,g]=await Promise.allSettled([t([o.toString(),a]),t([r.toString()]),t([l.toString(),{where:{saleFunnelOfferID:e.currentOfferID}}]),t([n.toString(),{saleFunnelOfferId:e.currentOfferID}]),t([s.toString(),i])]);if("rejected"===f.status)throw Error(f.reason?.[0]);if("rejected"===u.status)throw Error(u.reason?.[0]);if("rejected"===c.status)throw Error(c.reason?.[0]);if("rejected"===g.status)throw Error(g.reason?.[0]);let h={},m={};if("fulfilled"===g.status){let e=g.value.themePageMeta?.edges?.find(e=>e?.node?.key===D)?.node?.value;if(e)try{let r=JSON.parse(e);h=r?.sellingPlanSetting,m=r?.buyerConsentPreCheck}catch(e){console.error("Error parsing selling plan setting:",e)}}return{dataBuilder:f.value.themePage,pageStyle:f.value.themePage?.theme?.themeStyles?.edges?.[0]?.node?.data,storeProperty:d,dynamicDiscountOffer:c.value.saleFunnelOffer?.dynamicDiscounts?.[0],productOffers:u.value.saleFunnelDiscounts?.edges?.filter(e=>e?.node?.objectType==="PRODUCT"&&e?.node?.type==="ORDER_VALUE")||[],sellingPlanSetting:h,buyerConsentPreCheck:m}},I=async(a,l)=>{let n={libraryTemplateId:a.libraryTemplateId},o=[],[s,i]=await Promise.allSettled([l([e.toString(),n]),l([r.toString()])]);if(a.currentOfferID){let[e]=await Promise.allSettled([l([t.toString(),{librarySaleFunnelId:a.librarySaleFunnelID}])]);if("rejected"===e.status)throw Error(e.reason?.[0]);let r=e.value.librarySaleFunnel?.offers?.find(e=>e?.id===a.currentOfferID);r&&(o=r.discounts?.filter(e=>e?.objectType==="PRODUCT"&&"ORDER_VALUE"===e.type).map(e=>({node:{...e}}))||[])}if("rejected"===s.status)throw Error(s.reason?.[0]);return{dataBuilder:s.value.libraryTemplate,pageStyle:void 0,storeProperty:i,dynamicDiscountOffer:void 0,productOffers:o,sellingPlanSetting:{},buyerConsentPreCheck:{}}},O=async(e,t)=>{let o={shopLibraryPageId:e.shopLibraryPageId},[s,i,f,d]=await Promise.allSettled([t([a.toString(),o]),t([r.toString()]),t([l.toString(),{where:{saleFunnelOfferID:e.currentOfferID}}]),t([n.toString(),{saleFunnelOfferId:e.currentOfferID}])]);if("rejected"===s.status)throw Error(s.reason?.[0]);if("rejected"===f.status)throw Error(f.reason?.[0]);if("rejected"===d.status)throw Error(d.reason?.[0]);return{dataBuilder:s.value.shopLibraryPage,pageStyle:void 0,storeProperty:i,dynamicDiscountOffer:d.value.saleFunnelOffer?.dynamicDiscounts?.[0],productOffers:f.value.saleFunnelDiscounts?.edges?.filter(e=>e?.node?.objectType==="PRODUCT"&&e?.node?.type==="ORDER_VALUE")||[],sellingPlanSetting:{},buyerConsentPreCheck:{}}},b=async(t,a)=>{let o={libraryTemplateId:t.libraryTemplateId},[s,i,f,d]=await Promise.allSettled([a([e.toString(),o]),a([r.toString()]),a([l.toString(),{where:{saleFunnelOfferID:t.currentOfferID}}]),a([n.toString(),{saleFunnelOfferId:t.currentOfferID}])]);if("rejected"===s.status)throw Error(s.reason?.[0]);if("rejected"===f.status)throw Error(f.reason?.[0]);if("rejected"===d.status)throw Error(d.reason?.[0]);return{dataBuilder:s.value.libraryTemplate,pageStyle:void 0,storeProperty:i,dynamicDiscountOffer:d.value.saleFunnelOffer?.dynamicDiscounts?.[0],productOffers:f.value.saleFunnelDiscounts?.edges?.filter(e=>e?.node?.objectType==="PRODUCT"&&e?.node?.type==="ORDER_VALUE")||[],sellingPlanSetting:{},buyerConsentPreCheck:{}}},v=async e=>{let{id:r,currentOfferID:t,fetcher:a,isLibraryTemplate:l,librarySaleFunnelID:n,isShopLibraryPage:o}=e;return n?await I({libraryTemplateId:r,currentOfferID:t,librarySaleFunnelID:n},a):o&&t?await O({shopLibraryPageId:r,currentOfferID:t},a):l&&t?await b({libraryTemplateId:r,currentOfferID:t},a):t?await w({themePageId:r,currentOfferID:t},a):await S({themePageId:r},a)},j=(e,r,t)=>async a=>{try{let{id:l,currentOfferID:n,isLibraryTemplate:o,isShopLibraryPage:s}=a,{dataBuilder:p,storeProperty:D,productOffers:S,pageStyle:w,dynamicDiscountOffer:I,sellingPlanSetting:O,buyerConsentPreCheck:b}=await v({id:l,currentOfferID:n,fetcher:e,isLibraryTemplate:o,isShopLibraryPage:s,librarySaleFunnelID:r});if(!p)throw Error(`No data builder found for slug: /preview/${l}`);let j=r||o&&n?i(p):s?f(p):d(p),E=t||e,[T,F,C]=await Promise.all([c(j,void 0,w),g(w,void 0),y(E,j,!1)]),{seo:R,pageConfig:k}=h(p,D);return m({themeStyle:P(w),seo:R,...k,elementFontStyle:T,fontStyle:F,builderData:j,swr:{fallback:C},productOffers:S,dynamicDiscountOffer:I,sellingPlanSetting:O,buyerConsentPreCheck:b,pageBackground:u(p)})}catch(e){throw console.log("error",e),p(e),e}};export{b as fetchLibraryTemplateDataByID,w as fetchPostPurchasePageDataByID,S as fetchSalePageDataByID,O as fetchShopLibraryPageDataByID,I as fetchThemePageDataByTemplateID,j as getPostPurchasePropsPreview,v as getRelevantPageData};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{StorePropertyDocument as e}from"@gem-sdk/core";import{
|
|
1
|
+
import{StorePropertyDocument as e}from"@gem-sdk/core";import{getFontStyleFromPageTemplate as l,getFontLinkFromGlobalStyle as t}from"../google-fonts.js";import{getCollectionSharePageProps as o}from"./get-collection-share-page-props.js";import{serializableJson as r,parseJson as s}from"../helpers/parse-json.js";import{parseBuilderTemplateV2 as n}from"../helpers/normalize.js";import{captureException as a}from"@sentry/nextjs";import{getCustomFonts as i}from"../custom-fonts.js";import{genCSS as u}from"../helpers/gen-css.js";import{createFetcher as p}from"../fetcher.js";let c=c=>async f=>{try{let{sharedPage:a,customFonts:m,publicToken:d}=await c([f]);if(!a||!d)return null;let{page:y,themeStyle:P,pageMeta:v,shopMeta:C,moneyFormat:_,moneyWithCurrencyFormat:g}=a,{sectionPosition:h}=y??{},O=n({...a,sectionPosition:h}),j=null,I=null,L=null;if(y?.type==="GP_COLLECTION"){let e=(v??[]).find(e=>"selected_preview_collection"===e.key)?.value,l=e?JSON.parse(e??{}):null;I=l?.collectionId,L=l?.collectionTitle}let T=null;if(y?.type==="GP_PRODUCT"){let e=(v??[]).find(e=>"selected_preview_product"===e.key)?.value;T=e?JSON.parse(e??{}):null}let[S,w,N,D,G]=await Promise.allSettled([l(O,void 0,P?.data),t(P?.data),i(m),p(d)([e.toString()]),y?.type==="GP_COLLECTION"?o(p(d))(I??void 0):null]);j="fulfilled"===G.status?G.value?.collection:null;let k="fulfilled"===S.status?S.value:null,E="fulfilled"===w.status?w.value:null,U="fulfilled"===N.status?N.value:null,b="fulfilled"===D.status?D.value:void 0;return r({builderData:O,page:y,themeStyle:u(P?.data,!1),pageMeta:v,shopMeta:C,elementFontStyle:k,fontStyle:E,customFonts:U,publicStoreFrontData:d?{token:d,endpoint:process.env.NEXT_PUBLIC_API_URL??""}:null,pageType:y?.type,moneyFormat:_,moneyWithCurrencyFormat:g,swatches:s(b?.storeProperty?.swatchesConfig),collection:j,dynamicCollection:y?.type==="GP_COLLECTION"?{collectionId:j?.baseID,collectionTitle:L}:null,dynamicProduct:y?.type==="GP_PRODUCT"?T:null})}catch(e){return a(e),null}};export{c as getSharePageContentProps};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{getStaticPageProps as r}from"./get-static-page-props.js";import{getCollectionProps as t}from"./get-collection-props.js";import{getProductProps as e}from"./get-product-props.js";let o=(o,p)=>async(s,c)=>{switch(s){case"COLLECTION":return t(o)(c);case"PRODUCT":return e(o)(c);default:return r(o,p)(c)}};export{o as getPreviewProps};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{getProductBySlug as e,PublishedThemePagesDocument as t,prefetchQueries as r}from"@gem-sdk/core";import{
|
|
1
|
+
import{getProductBySlug as e,PublishedThemePagesDocument as t,prefetchQueries as r}from"@gem-sdk/core";import{parseBuilderTemplate as a}from"../helpers/normalize.js";import{serializableJson as l}from"../helpers/parse-json.js";import{genCSS as s}from"../helpers/gen-css.js";let o=o=>async i=>{let m="PRODUCT",[d,p]=await Promise.all([e(o,i),o([t.toString(),{slug:i,slugType:m}])]),u=p.publishedThemePages?.[0];if(!d||!u)throw Error("Product not found");let g=a(u),f=r(g),h=await Promise.allSettled(f.map(({query:e,variables:t,func:r})=>r?r(o,t):e?o([e,t]):{})),n=f.reduce((e,{key:t},r)=>{let a=h[r];return a?.status==="fulfilled"?{...e,[t]:a.value}:e},{});return l({builderData:g,themeStyle:s(u.pageStyle?.data),pageType:m,swr:{fallback:n},seo:{title:d.title,description:d.description,openGraph:{images:d.featuredImage?.src?[{url:d.featuredImage.src,alt:d.featuredImage?.alt,height:d.featuredImage?.height,width:d.featuredImage?.width,type:d.featuredImage?.contentType}]:[]}},product:d})};export{o as getProductProps};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{serializableJson as t}from"../helpers/parse-json.js";import{captureException as e}from"@sentry/nextjs";let l=l=>async r=>{try{let{sharedPage:e,publicToken:a}=await l([r]);if(!e||!a)return null;let{share:n,shopMeta:i,page:o,pageMeta:s}=e,m=n?.thumbnails?Array.isArray(n.thumbnails)?n.thumbnails.map(t=>({url:t})):"string"==typeof n.thumbnails?[{url:n.thumbnails}]:[]:[],u={defaultTitle:i?.shop?.name??"",title:n?.title,openGraph:{site_name:i?.shop?.name??"",locale:i?.localization?.country?.isoCode??"",title:n?.title??i?.shop?.name??"",images:m},nofollow:!0,noindex:!0};return t({seo:u,share:n,page:o,pageMeta:s})}catch(t){return e(t),null}};export{l as getSharePageProps};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{parseBuilderTemplateV2 as e,extractPageBackground as o}from"../helpers/normalize.js";import{getFontStyleFromPageTemplate as t,getFontLinkFromGlobalStyle as a}from"../google-fonts.js";import{PreviewThemePageDocument as r,StorePropertyDocument as l}from"@gem-sdk/core";import{parseJson as i,serializableJson as n}from"../helpers/parse-json.js";import{generateSeoLinks as s}from"../helpers/generate-seo-links.js";import{ShopMetaDocument as m}from"@gem-sdk/adapter-shopify";import{sentryCaptureException as c}from"../helpers/sentry.js";import{getFallbackV2 as d}from"../helpers/get-fallback.js";import{captureException as p}from"@sentry/nextjs";import{getCustomFonts as u}from"../custom-fonts.js";import{genCSS as f}from"../helpers/gen-css.js";let h=(h,g)=>async y=>{try{let p="STATIC",v={handleURL:y,pageType:p},[k,w,P]=await Promise.allSettled([h([r.toString(),v]),h([l.toString()]),g([m])]);if("rejected"===k.status)throw c("PreviewThemePageDocument",k.reason,{variables:v,theme:k}),Error(k.reason?.[0]);let j=k.value.previewThemePage;if(!j)throw Error(`No data builder found for slug: /preview/${y}`);let S=j.customFonts,b={...j,shopID:""},C=e(b),[T,x,I,D]=await Promise.all([t(C,void 0,j?.themeStyle?.data),a(j?.themeStyle?.data),d(h,C),u(S)]),z=!!j.isMobile,E=j?.dataSEO?.find(e=>e?.key==="global-meta-description")?.value,$=i(j?.dataSEO?.find(e=>e?.key==="global-meta-thumbnail")?.value),F="fulfilled"===P.status?P.value:void 0,B="fulfilled"===w.status?w.value:void 0,L=B?.storeProperty?.favicon??"/favicon/favicon-32x32.png",M={defaultTitle:F?.shop.name,title:j?.name,description:E??F?.shop.description,openGraph:{locale:F?.localization.country.isoCode,title:j?.name??F?.shop.name,description:E??F?.shop.description,images:$?[$]:[]},nofollow:!0,noindex:!0,canonical:`/preview/${y}`,additionalMetaTags:[{name:"theme-color",content:"#000000"}],additionalLinkTags:s({favicon:L,shopMeta:F})},O=F?.localization.language.isoCode??null,A=F?.localization.country.isoCode??null,G=O&&A?`${O}-${A}`:null;return n({themeStyle:f(j?.themeStyle?.data,z),fontStyle:x,elementFontStyle:T,builderData:C,pageType:p,moneyFormat:F?.shop?.moneyFormat??null,currency:F?.localization?.country?.currency?.isoCode??null,languageIsoCode:O,countryIsoCode:A,locale:G,swr:{fallback:I},swatches:i(B?.storeProperty?.swatchesConfig),seo:M,mobileOnly:z,gaTrackingId:j.analytic?.gaTrackingID??null,facebookPixelId:j.analytic?.fbPixelID??null,tiktokPixelId:j.analytic?.tiktokPixelID??null,customCodeHeader:j.customCode?.header??null,customCodeBody:j.customCode?.body??null,customFonts:D,pageBackground:o(b),interaction:j?.interaction})}catch(e){throw p(e),e}};export{h as getStaticPagePropsPreview};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{PublishedThemePagesDocument as e,StorePropertyDocument as o,PublishedShopMetasDocument as t}from"@gem-sdk/core";import{
|
|
1
|
+
import{PublishedThemePagesDocument as e,StorePropertyDocument as o,PublishedShopMetasDocument as t}from"@gem-sdk/core";import{getStaticFontFacesFromPageTemplate as a,getStaticFontFacesFromGlobalStyle as l}from"../google-fonts.js";import{parseBuilderTemplateV2 as s,extractPageBackground as i}from"../helpers/normalize.js";import{getPublishedThemePageMetafieldByKey as r}from"../helpers/get-metafield.js";import{parseJson as n,serializableJson as d}from"../helpers/parse-json.js";import{generateSeoLinks as u}from"../helpers/generate-seo-links.js";import{PublishedThemePageMetafields as p}from"../../constants/index.js";import{ShopMetaDocument as m}from"@gem-sdk/adapter-shopify";import{getFallbackV2 as f}from"../helpers/get-fallback.js";import{captureException as h}from"@sentry/nextjs";import{getCustomFonts as c}from"../custom-fonts.js";import{genCSS as _}from"../helpers/gen-css.js";let T=(T,g)=>async E=>{try{let h="STATIC",[I,A,L,O]=await Promise.allSettled([T([e.toString(),{slug:E,slugType:h}]),T([o.toString()]),g([m]),T([t.toString(),{keys:["source_font",p.GLOBAL_META_DESCRIPTION,p.GLOBAL_META_THUMBNAIL,p.SHOW_PRICE_CURRENCY,p.MONEY_WITH_CURRENCY_FORMAT]}])]);if("rejected"===I.status)throw Error(I.reason?.[0]);let y="fulfilled"===O.status?O.value:void 0,C=y?.publishedShopMetas?.find(e=>e?.key==="source_font"),S=y?.publishedShopMetas?.find(e=>e?.key===p.SHOW_PRICE_CURRENCY),M=y?.publishedShopMetas?.find(e=>e?.key===p.MONEY_WITH_CURRENCY_FORMAT),N=I.value.publishedThemePages?.[0],v=I.value?.publishedThemePages?.[0]?.themePageCustomFonts;if(!N)throw Error(`No data builder found for slug: /${E}`);let P=s(N),[k,b,R,D]=await Promise.all([a({pageTemplate:P,sourceFont:C?.value,data:N?.pageStyle?.data}),l({data:N?.pageStyle?.data,sourceFont:C?.value}),f(T,P),c(v)]),B=N.isMobile??!1,Y=r(p.GLOBAL_META_DESCRIPTION,N?.metafields)||y?.publishedShopMetas?.find(e=>e?.key===p.GLOBAL_META_DESCRIPTION)?.value,j=r(p.GLOBAL_META_TITLE,N?.metafields)||y?.publishedShopMetas?.find(e=>e?.key===p.GLOBAL_META_TITLE)?.value,G=n(r(p.GLOBAL_META_THUMBNAIL,N?.metafields)||y?.publishedShopMetas?.find(e=>e?.key===p.GLOBAL_META_THUMBNAIL)?.value),F=r(p.NOINDEX_KEY,N?.metafields)||y?.publishedShopMetas?.find(e=>e?.key===p.NOINDEX_KEY)?.value,H=r(p.NOFOLLOW_KEY,N?.metafields)||y?.publishedShopMetas?.find(e=>e?.key===p.NOFOLLOW_KEY)?.value,w="fulfilled"===L.status?L.value:void 0,U="fulfilled"===A.status?A.value:void 0,x=U?.storeProperty?.favicon??"/favicon/favicon-32x32.png",K={defaultTitle:w?.shop.name,title:j||N?.name,description:Y??w?.shop.description,openGraph:{locale:w?.localization.country.isoCode,title:(j||N?.name)??w?.shop.name,description:Y??w?.shop.description,images:G?[G]:[]},noindex:"true"===F,nofollow:"true"===H,canonical:`https://${U?.storeProperty?.primaryDomain}/${E}`,additionalMetaTags:[{name:"theme-color",content:"#000000"}],additionalLinkTags:u({favicon:x,shopMeta:w})},W=w?.localization.language.isoCode??null,z=w?.localization.country.isoCode??null,$=W&&z?`${W}-${z}`:null;return d({id:I.value?.publishedThemePages?.[0]?.id??null,shopID:I.value?.publishedThemePages?.[0]?.shopID??null,themeStyle:_(N?.pageStyle?.data,B),fontStyle:b,elementFontStyle:k,builderData:P,pageType:h,moneyFormat:S?.value==="true"?M?.value:w?.shop.moneyFormat??null,currency:w?.localization.country.currency.isoCode??null,languageIsoCode:W,countryIsoCode:z,locale:$,swr:{fallback:R},swatches:n(U?.storeProperty?.swatchesConfig),seo:K,mobileOnly:B,gaTrackingId:r(p.ANALYTICS_GA_TRACKING_ID,N?.metafields)??null,facebookPixelId:r(p.ANALYTICS_FB_PIXEL_ID,N?.metafields)??null,tiktokPixelId:r(p.ANALYTICS_TIKTOK_PIXEL_ID,N?.metafields)??null,customCodeHeader:r(p.CUSTOM_CODE_HEADER,N?.metafields)??null,customCodeBody:r(p.CUSTOM_CODE_BODY,N?.metafields)??null,pageHandle:N.handle??null,customFonts:D,interaction:N?.interaction,pageBackground:i(N)})}catch(e){throw h(e),e}};export{T as getStaticPagePropsV2};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{PublishedThemePagesDocument as e,StorePropertyDocument as t,PublishedShopMetasDocument as o,prefetchQueries as r}from"@gem-sdk/core";import{
|
|
1
|
+
import{PublishedThemePagesDocument as e,StorePropertyDocument as t,PublishedShopMetasDocument as o,prefetchQueries as r}from"@gem-sdk/core";import{getPublishedThemePageMetafieldByKey as s}from"../helpers/get-metafield.js";import{parseJson as a,serializableJson as i}from"../helpers/parse-json.js";import{generateManifest as l}from"../helpers/generate-manifres.js";import{PublishedThemePageMetafields as n}from"../../constants/index.js";import{getFontLinkFromGlobalStyle as p}from"../google-fonts.js";import{ShopMetaDocument as c}from"@gem-sdk/adapter-shopify";import{parseBuilderTemplate as m}from"../helpers/normalize.js";import{genCSS as d}from"../helpers/gen-css.js";let f=(f,u)=>async h=>{let g="STATIC",[y,_,T,A]=await Promise.allSettled([f([e.toString(),{slug:h,slugType:g}]),f([t.toString()]),u([c]),f([o.toString(),{keys:["source_font",n.GLOBAL_META_DESCRIPTION,n.GLOBAL_META_THUMBNAIL]}])]);if("rejected"===y.status)return{pageType:g};let L="fulfilled"===A.status?A.value:void 0,z=y.value.publishedThemePages?.[0],S=m(z),v=await p(z?.pageStyle?.data),x=r(S),M=await Promise.allSettled(x.map(({query:e,variables:t,func:o})=>o?o(f,t):e?f([e,t]):{})),I=x.reduce((e,{key:t},o)=>{let r=M[o];return r?.status==="fulfilled"?{...e,[t]:r.value}:e},{}),P=s(n.GLOBAL_META_DESCRIPTION,z?.metafields)||L?.publishedShopMetas?.find(e=>e?.key===n.GLOBAL_META_DESCRIPTION)?.value,j=a(s(n.GLOBAL_META_THUMBNAIL,z?.metafields)||L?.publishedShopMetas?.find(e=>e?.key===n.GLOBAL_META_THUMBNAIL)?.value),B="fulfilled"===T.status?T.value:void 0,C="fulfilled"===_.status?_.value:void 0,E=C?.storeProperty?.favicon??"/favicon/favicon-32x32.png",O={defaultTitle:B?.shop.name??"",title:z?.name??"",description:P??B?.shop.description??"",openGraph:{locale:B?.localization.country.isoCode??"",title:z?.name??B?.shop.name??"",description:P??B?.shop.description??"",images:j?[j]:[]},additionalMetaTags:[{name:"theme-color",content:"#000000"}],canonical:`/${h}`,additionalLinkTags:[{rel:"icon",sizes:"32x32",href:`${E}-/crop/1:1/center/-/smart_resize/32x32/`},{rel:"icon",sizes:"16x16",href:`${E}-/crop/1:1/center/-/smart_resize/16x16/`},{rel:"apple-touch-icon",sizes:"180x180",href:`${E}-/crop/1:1/center/-/smart_resize/180x180/`},{rel:"manifest",href:l({theme_color:"#000000",background_color:"#ffffff",display:"standalone",scope:"/",start_url:"/",name:B?.shop.name,short_name:B?.shop.name,description:B?.shop.description,icons:[{src:`${E}-/crop/1:1/center/-/smart_resize/192x192/`,sizes:"192x192",type:"image/png",purpose:"any maskable"},{src:`${E}-/crop/1:1/center/-/smart_resize/512x512/`,sizes:"512x512",type:"image/png"}]})}]},k=B?.localization.language.isoCode??null,$=B?.localization.country.isoCode??null,G=k&&$?`${k}-${$}`:null;return i({themeStyle:d(z?.pageStyle?.data),fontStyle:v,builderData:S,pageType:g,moneyFormat:B?.shop.moneyFormat??null,currency:B?.localization.country.currency.isoCode??null,languageIsoCode:k,countryIsoCode:$,locale:G,swr:{fallback:I},swatches:a(C?.storeProperty?.swatchesConfig),seo:O})};export{f as getStaticPageProps};
|
package/dist/esm/libs/fetcher.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{extractOperation as e}from"./helpers/extract-operation.js";import{getStorefrontApi as r}from"./get-storefront-api.js";let t=r=>{let t=r||process.env.NEXT_PUBLIC_SHOP_TOKEN;return async r=>{let[o,n,s]=r;if(!t)throw Error("shopToken is not defined");let i=process.env.NEXT_PUBLIC_API_URL;if(!i)throw Error("NEXT_PUBLIC_API_URL is not defined");let h=e(o);return h&&(i=`${i}?gp-online-store-operation=${h}`),fetch(i,{method:"POST",headers:{"Content-Type":"application/json","X-GemX-Shop-Token":t},body:JSON.stringify({query:o,variables:n,operationName:s})}).then(e=>e.json()).then(e=>e.errors?Promise.reject(e.errors):e.data)}},o=(r,t)=>{let o=process.env.NEXT_APP_API_URL;return async n=>{let[s,i,h]=n;if(!r)throw Error("shopToken is not defined");if(!o)throw Error("NEXT_APP_API_URL is not defined");let a=e(s);a&&(o=`${o}?gp-online-store-operation=${a}`);let p={"Content-Type":"application/json",Authorization:`Token ${r}`,"X-GemX-Shop-ID":t||""};return fetch(`${o}?gp-online-store-operation=${h}`,{method:"POST",headers:p,body:JSON.stringify({query:s,variables:i,operationName:h})}).then(e=>e.json()).then(e=>e.errors?Promise.reject(e.errors):e.data)}},n=(e,t)=>{let o=e??process.env.NEXT_PUBLIC_STOREFRONT_TOKEN,n=t??process.env.NEXT_PUBLIC_STOREFRONT_HANDLE;return async e=>{if(!o)throw Error("NEXT_PUBLIC_STOREFRONT_TOKEN is not defined");if(!n)throw Error("NEXT_PUBLIC_STOREFRONT_HANDLE is not defined");let[t,s]=e;return fetch(r(n),{method:"POST",headers:{"Content-Type":"application/json","X-Shopify-Storefront-Access-Token":o},body:JSON.stringify({query:t,variables:s})}).then(e=>e.json()).then(e=>e.errors?Promise.reject(e.errors):e.data)}},s=e=>{let r=process.env.NEXT_PUBLIC_URL_SHARE_PAGE;return async()=>{if(!r)throw Error("NEXT_PUBLIC_URL_SHARE_PAGE is not defined");try{let t=await fetch(`${r}/share/page/${e}`,{method:"GET"});if(!t.ok)throw Error(`HTTP error! status: ${t.status}`);let o=await t.json();if(o.errors)throw Error(`API errors: ${JSON.stringify(o.errors)}`);return o.result}catch(e){throw console.error("Template fetcher error:",e),e}}};export{o as createAppAPIFetcher,t as createFetcher,n as createShopifyFetcher,s as createTemplateFetcher};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import{checkNotInOptionFont as t}from"./helpers/check-option-font.js";import{
|
|
1
|
+
import{checkNotInOptionFont as t}from"./helpers/check-option-font.js";import{THEME_FONT_CSS_KEYS as e}from"./constants/theme-font-keys.js";import{googleFontFamilies as r}from"../constants/googleFontV1.js";import{getFontsFromDataBuilder as n}from"./helpers/gen-fonts.js";import{sentryCaptureException as i}from"./helpers/sentry.js";import a from"./data/fonts.js";let l="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.61 Safari/537.36",o=t=>new Promise(e=>setTimeout(e,t));async function s(t,e){for(let r=0;r<=2;r++){let n=2===r;try{let a=await fetch(t,{headers:{"User-Agent":e},signal:AbortSignal.timeout(5e3)});if(200===a.status)return await a.text();if(a.status>=400&&a.status<500)return i("getFontForUA",`Unexpected status ${a.status}`,{url:t,UA:e,attempt:r}),"";n&&i("getFontForUA",`Unexpected status ${a.status}`,{url:t,UA:e,attempt:r})}catch(a){n&&i("getFontForUA","Error fetching font",{url:t,UA:e,attempt:r,error:String(a)})}n||await o(300)}return""}let f=t=>{let e=t.filter((t,e,r)=>e===r.findIndex(e=>e.family===t.family));return e.map(e=>{let r=t.filter(t=>t.family===e.family).reduce((t,e)=>[...t,...e.variants],[]).filter((t,e,r)=>e===r.findIndex(e=>e===t));return{...e,variants:r}})},c={"Roboto Flex":"https://fonts.googleapis.com/css2?family=Roboto+Flex:opsz,wght@8..144,100..1000&display=swap"},u=t=>t?.trim().replace(/\s+/g,"+")??"",y=t=>t.includes("fonts.googleapis.com/css2")?"css2":t.includes("fonts.bunny.net")?"bunny":"css1",p=t=>{let e=u(t);return c[t]??c[e]},g={regular:"400",normal:"400",bold:"700",italic:"400italic"},m=new Set(r),h=[...e,...e.map(t=>`--g-${t}`)],d=(e,r,n)=>{if(("google"===r||"google"===e.type)&&!m.has(e.family))return!1;let i="google"===e.type||"bunny"===e.type,a="theme"===e.type&&n,l=t(e.family,r);return!(i&&l)&&(i||!e.type||a)},b=t=>{let e=String(t).toLowerCase().trim();return g[e]??t},v=t=>{let e=t=>{let e=String(t).toLowerCase().trim(),r=e.includes("italic"),n=e.replace("italic","").trim(),i=g[n]??n,a=parseInt(i,10)||400;return{weight:a,isItalic:r}};return[...t].sort((t,r)=>{let n=e(t),i=e(r);return n.weight!==i.weight?n.weight-i.weight:n.isItalic!==i.isItalic?n.isItalic?1:-1:0})},S=(t,e,r)=>{let n=f(t).map(t=>{let e=t.variants.map(t=>b(t)),r=v(e);return`${t.family.replace(/ /g,"+")}:${r.join(",")}`}).join("|");if("sans-serif"===n)return;let i=new URLSearchParams;return(i.append("family",n),i.append("display",r?.display||"swap"),"bunny"===e)?`https://fonts.bunny.net/css?${decodeURIComponent(i.toString())}`:(r?.subset&&i.append("subset",r.subset),r?.effect&&i.append("effect",r.effect),`https://fonts.googleapis.com/css?${decodeURIComponent(i.toString())}`)},w=(t,e,r,n)=>{let i=t.filter(t=>d(t,r||"google",n));if(!i.length)return;let a=i.filter((t,e,r)=>e===r.findIndex(e=>e.family===t.family)),l=[],o=[];for(let t of a){let e=p(t.family);e&&"bunny"!==r?l.push(e):o.push(t)}let s=o.length?S(o,r||"google",e):void 0;return l.length&&s?[...l,s]:s?[s,...l]:l};async function F(t,e,r=!0,n){let a=t.filter(t=>!h.includes(t.family)),o=w(a,e,n),f=Array.isArray(o)?o:o?[o]:[];if(!f.length)return"";if(r)return f.map(t=>`@import url('${t}');`).join("");let c=await Promise.all(f.map(async t=>{let e=await s(t,l);if(!e){let e=y(t);i("getFonts",`Error fetching font ${e}`,{url:t,fontType:n,fontApiVersion:e})}return e})),u=f.map(t=>`@import url('${t}');`).join(""),p=c.map((t,e)=>t?"":`@import url('${f[e]}');`).join(""),g=p+c.join(""),m=new TextEncoder().encode(g).length;return m<51200?g:u}let j=(t,e)=>{let r=[];return t.forEach(t=>{r.push(...n(t.data,e))}),f(r)},$=(t,e)=>{let r="400";if(null!=t){let e=String(t).toLowerCase().trim();r=b(e)}let n=r,i=e&&"italic"===e.toLowerCase();return i&&!r.includes("italic")&&(n=r.includes("i")?r:`${r}italic`),n},O="heading-",W="subheading-",A="paragraph-",k=t=>{let e=t?.typography??{},r=t?.font??{},n=new Map;Object.entries(e).forEach(([t,e])=>{if(!e||"object"!=typeof e)return;let i=t.startsWith(O)||t.startsWith(W)?r.heading?"heading":void 0:t.startsWith(A)&&r.body?"body":void 0,a=e.desktop,l=a?.fontFamily,o=l||i;["desktop","mobile","tablet"].forEach(t=>{let i=e[t];if(!i||"object"!=typeof i)return;let l=i.fontFamily||o;if(!l||"string"!=typeof l||!r[l])return;let s=i.fontWeight??a?.fontWeight,f=i.fontStyle??a?.fontStyle;if(null==s)return;let c=$(s,f);n.has(l)||n.set(l,new Set),n.get(l).add(c)})});let i={};return n.forEach((t,e)=>{let n=r[e];n&&(i[e]={variants:Array.from(t).sort(),family:n.family,type:n.type})}),i},x=t=>{let e=t?.typography??{},r=t?.font??{},n=t?.font??{},i={};return Object.entries(e).forEach(([t,e])=>{if(!e||"object"!=typeof e)return;let a=e.desktop,l=e.mobile,o=e.tablet,s=t.startsWith(O)||t.startsWith(W)?n.heading?"heading":void 0:t.startsWith(A)&&n.body?"body":void 0,f=a?.fontFamily||l?.fontFamily||o?.fontFamily||s;if(!f||"string"!=typeof f)return;let c=r[f],u=n[f],y=c?.family||u?.family||f,p=c?.type||u?.type||"google";y&&(i[t]={family:y,type:p})}),i},E=async(t,e)=>{if(!t)return"";try{let r=JSON.parse(t),n=r?.font??{},i=Object.values(n),a=k(r);Object.keys(a).length>0&&(i=Object.entries(n).filter(([t])=>a[t]).map(([t,e])=>({...e,variants:a[t].variants})));let l=f(i);return F(l,void 0,void 0,e)}catch{return""}},I=(t,e)=>{if(!t)return"";try{let r=JSON.parse(t),n=r?.font??{},i=Object.entries(n).map(([,t])=>t);return F(i,void 0,void 0,e)}catch{return""}};async function C(t,e,r){let n,i=null;if(r)try{i=JSON.parse(r),n=x(i)}catch{}let a=j(t,n);if(!i){if(0===a.length)return[];let t=await F(a,void 0,void 0,e);return t?[t]:[]}let l=k(i),o=new Map;for(let t of Object.values(l)){let e=o.get(t.family);if(!e){o.set(t.family,new Set(t.variants));continue}t.variants.forEach(t=>e.add(t))}if(0===(a=a.map(t=>{let e=o.get(t.family);if(!e)return t;let r=t.variants.filter(t=>!e.has(t));return 0===r.length?null:{...t,variants:r}}).filter(t=>null!==t)).length)return[];let s=await F(a,void 0,void 0,e);return s?[s]:[]}let U=null;function T({fontFamily:t,fontStyle:e,fontWeight:r,src:n,fontDisplay:i}){let a=n.replace(/^"|"$/g,""),l=`@font-face {
|
|
2
2
|
`;return l+=` font-family: '${t}';
|
|
3
3
|
font-style: ${e};
|
|
4
4
|
font-weight: ${r};
|
|
5
5
|
`,i&&(l+=` font-display: ${i};
|
|
6
6
|
`),l+=` src: ${a};
|
|
7
|
-
}`}function L({variant:t}){let e=t.trim().toLowerCase();if("regular"===e||"400"===e)return{fontStyle:"normal",fontWeight:"400"};if("italic"===e)return{fontStyle:"italic",fontWeight:"400"};if("bold"===e||"700"===e)return{fontStyle:"normal",fontWeight:"700"};let r=e.endsWith("i")||e.endsWith("italic"),n=e.replace(/i(talic)?$/,"").trim()||"400";return{fontStyle:r?"italic":"normal",fontWeight:n}}async function M({fonts:t,sourceFont:e}){let
|
|
7
|
+
}`}function L({variant:t}){let e=t.trim().toLowerCase();if("regular"===e||"400"===e)return{fontStyle:"normal",fontWeight:"400"};if("italic"===e)return{fontStyle:"italic",fontWeight:"400"};if("bold"===e||"700"===e)return{fontStyle:"normal",fontWeight:"700"};let r=e.endsWith("i")||e.endsWith("italic"),n=e.replace(/i(talic)?$/,"").trim()||"400";return{fontStyle:r?"italic":"normal",fontWeight:n}}async function M({fonts:t,sourceFont:e}){let r=t.filter(t=>!h.includes(t.family));if(!r.length)return"";let n="bunny"===e,o=n?null:function(){if(U)return U;for(let t of(U={},a.fonts)){let e=`${t.fontFamily}_${t.fontStyle}_${t.fontWeight}`.replace(/\s+/g,"");U[e]=t}return U}(),f=await Promise.all(r.map(async t=>{let r=[],n=[];for(let e of t.variants){if(o){let{fontStyle:n,fontWeight:i}=L({variant:e}),a=`${t.family}_${n}_${i}`.replace(/\s+/g,""),l=o[a];if(l){r.push(T(l));continue}}n.push(e)}if(n.length){let a=w([{...t,variants:n}],void 0,e),o=Array.isArray(a)?a:a?[a]:[],f=await Promise.all(o.map(t=>s(t,l)));for(let e=0;e<f.length;e++){let a=f[e];a?r.push(a):i("resolveFontFaces","API fallback returned empty CSS",{family:t.family,variants:n,url:o[e]})}}return r.length?r.join("\n"):""}));return f.filter(Boolean).join("\n")}async function P({data:t,sourceFont:e}){if(!t)return"";try{let r="string"==typeof t?JSON.parse(t):t,n=r?.font??{},i=Object.values(n),a=k(r);return Object.keys(a).length>0&&(i=Object.entries(n).filter(([t])=>a[t]).map(([t,e])=>Object.assign({},e,{variants:a[t].variants}))),M({fonts:f(i),sourceFont:e})}catch{return""}}async function _({pageTemplate:t,sourceFont:e,data:r}){let n,i=null;if(r)try{i="string"==typeof r?JSON.parse(r):r,n=x(i)}catch(t){console.log(t)}let a=j(t,n);if(!i){if(!a.length)return[];let t=await M({fonts:a,sourceFont:e});return t?[t]:[]}let l=k(i),o=new Map,s=new Map,f=(t,e)=>`${t}::${e}`;for(let t of Object.values(l))if(t.type){let e=f(t.family,t.type),r=o.get(e);r?t.variants.forEach(t=>r.add(t)):o.set(e,new Set(t.variants))}else{let e=s.get(t.family);e?t.variants.forEach(t=>e.add(t)):s.set(t.family,new Set(t.variants))}if(!(a=a.map(t=>{let e=o.get(f(t.family,t.type))||s.get(t.family);if(!e)return t;let r=t.variants.filter(t=>!e.has(t));return r.length?Object.assign({},t,{variants:r}):null}).filter(t=>null!==t)).length)return[];let c=await M({fonts:a,sourceFont:e});return c?[c]:[]}export{f as composeFonts,w as createFontUrls,k as extractTypographyVariants,I as getFontFromGlobalStyle,E as getFontLinkFromGlobalStyle,C as getFontStyleFromPageTemplate,F as getFonts,P as getStaticFontFacesFromGlobalStyle,_ as getStaticFontFacesFromPageTemplate,x as mapTypographyToFontFamily,L as parseVariant,T as staticFontToCSS};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{THEME_FONT_CSS_KEYS as e}from"../constants/theme-font-keys.js";import{DEVICES as t,getShortName as r}from"@gem-sdk/core";import o from"deepmerge";let n={tablet:"1024px",mobile:"767px"},i=(e,t)=>Object.keys(e).reduce((r,o)=>{let n=t?`${t}-`:"";return"object"==typeof e[o]&&null!==e[o]&&Object.keys(e[o]).length>0?Object.assign(r,i(e[o],n+o)):r[n+o]=e[o],r},{}),s=e=>Object.entries(e??{}).reduce((e,[t,o])=>({...e,[r(t)]:"object"==typeof o?s(o):o}),{}),c=(e,t)=>{let r={typography:Object.fromEntries(Object.entries(e?.typography??{}).map(([e,r])=>{let o={...r?.[t]};return o?(o.fontFamily&&(o.fontFamily=`var(--g-font-${o.fontFamily}, ${o.fontFamily})`),[e,o]):[e,void 0]})),spacing:Object.fromEntries(Object.entries(e?.spacing??{}).map(([e,r])=>[e,r?.[t]])),container:Object.fromEntries(Object.entries(e?.container??{}).map(([e,r])=>[e,r?.[t]])),font:Object.fromEntries(Object.entries(e?.font??{}).map(([e,t])=>[e,t?.family])),theme:{font:Object.fromEntries(Object.entries(e?.theme?.font??{}).map(([e,t])=>[e,t?.family]))}};return r},a=e=>["sans-serif"].includes(e)?e:`'${e}'`,m=e=>"string"==typeof e&&e.includes("%")?`${(.01*parseFloat(e)).toFixed(2)}em`:e,l=t=>Object.entries(s(i(t))).map(([t,r])=>{if(void 0!==r){if(e.includes(t))return`--g-${t}: ${a(r)}`;if(t.includes("-ls")){let e=m(r);return`--g-${t}:${e}`}return`--g-${t}:${r}`}}).filter(e=>void 0!==e).join(";"),f=(e,r)=>{if(!e)return"";let i={};try{if(i="string"==typeof e?JSON.parse(e):e,r){let e=c(i,"desktop"),t=c(i,"mobile"),r=o(e,t);r.color=i.color,r.radius=i.radius;let n=l(r);return`:root{${n}}`}return t.map(e=>{let t=c(i,e);"desktop"===e&&(t.color=i.color,t.radius=i.radius);let r=l(t);return"desktop"===e?`:root{${r}}`:`@media (max-width: ${n[e]}) {:root{${r}}}`}).join("\n")}catch{return""}};export{f as genCSS};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{PublishedThemePageMetafields as e}from"../../constants/index.js";import{sentryCaptureException as t}from"./sentry.js";let r=e=>{let t={};return!function e(t,r={}){if(t){let{childrens:i,dateModified:n,editorConfigs:o,...a}=t;if("section"===a.type)r[a.uid]=a;else{let t=i?.map(e=>e?.uid)??[];r[a.uid]={...a,childrens:t},i&&i.map(t=>e(t,r))}}}(e,t),{...t}},i=(e,t)=>{let r=t?.filter(t=>e?.some(e=>e?.id===t)),i=r?.map(t=>e?.find(e=>e?.id===t))??[],n=e?.filter(e=>(!e?.id||!r?.includes(e.id))&&!e?.deletedAt)??[];return i.concat(n)};function n(e,t){let n=i(e,t),o=n.map(e=>{if(!e?.component)return!1;try{let t=JSON.parse(e.component);return t}catch{return!1}}).filter(Boolean);return o.map(e=>({uid:e.uid,lazy:!!e.settings?.lazy,priority:!!e.settings?.priority,data:r(e)}))}let o=e=>n([...e?.pageSections??[],...e?.themePageCustomSections??[],...e?.themeSections??[]],e?.sectionPosition),a=e=>(function(e,t){let n=i(e,t),o=n.map(e=>{if(!e?.component)return!1;try{let t=JSON.parse(e.component);return t}catch{return!1}}).filter(Boolean);return r({uid:"ROOT",tag:"Root",childrens:o})})([...e?.pageSections??[],...e?.themePageCustomSections??[]],e?.sectionPosition),s=r=>{let i=r?.metafields?.find(t=>t?.key===e.PAGE_BACKGROUND)?.value;if(!i)return{};try{let e=JSON.parse(i),t=e=>"string"==typeof e&&e.trim()?e:void 0;return{isUsePageBackground:!0===e.isUsePageBackground,background:t(e.background),themeBackground:t(e.themeBackground)}}catch(e){return t("extractPageBackground","Could not parse the page background metafield",{value:i,err:String(e)},{level:"warning"}),{}}},c=e=>n([...e?.sections??[]],e?.sectionPosition),l=e=>n([...e?.shopLibrarySections??[]],e?.sectionPosition);export{s as extractPageBackground,r as normalizeBuilderData,n as normalizePageSectionResponseV2,c as parseBuilderLibraryTemplate,a as parseBuilderTemplate,o as parseBuilderTemplateV2,l as parseShopLibraryPageTemplate};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import{
|
|
2
|
+
import{sendPageViewedTracking as e}from"../helpers/sendPageViewedTracking.js";import{useEffect as r}from"react";let i=({id:i,shopID:a,enabled:o=!0,domain:t})=>{r(()=>{o&&i&&a&&e({id:i,shopID:a,domain:t})},[o,i,a])};export{i as usePageViewedTracking};
|
package/dist/esm/pages/500.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import{jsxs as e,Fragment as t,jsx as p}from"react/jsx-runtime";import{cls as i}from"@gem-sdk/core";import{NextSeo as l}from"next-seo";import r
|
|
2
|
+
import{jsxs as e,Fragment as t,jsx as p}from"react/jsx-runtime";import{cls as i}from"@gem-sdk/core";import{NextSeo as l}from"next-seo";import{useState as r}from"react";import g from"next/image";let a=()=>{let[a,n]=r(!1);return e(t,{children:[p(l,{title:"Service Unavailable"}),e("div",{className:"gp-container gp-mx-auto gp-flex gp-min-h-screen gp-max-w-4xl gp-flex-col gp-items-center gp-justify-center gp-gap-8 gp-px-8 tablet:gp-max-w-2xl",children:[p(g,{sizes:"(max-width: 768px) 100vw, 50vw",src:"https://cdn.shopify.com/s/files/1/2005/9307/files/503.png",width:802,height:450,alt:"Not found",quality:100,priority:!0}),e("div",{className:"gp-flex gp-flex-col gp-gap-8 gp-pb-36",children:[e("div",{className:"gp-flex gp-flex-col gp-items-center gp-justify-center gp-gap-2 gp-text-center",children:[p("h1",{className:"gp-font-semiboldgp- gp-text-4xl mobile:gp-text-2xl",children:"Service Unavailable"}),p("p",{className:"gp-text-center",children:"The server is temporarily busy. Try again later."})]}),e("button",{className:"gp-mx-auto gp-inline-flex gp-h-10 gp-items-center gp-justify-center gp-gap-2 gp-rounded gp-bg-[#3C67FF] gp-px-6 gp-text-white active:gp-translate-y-1",onClick:()=>{n(!0),window.location.reload()},children:[p("svg",{className:i("gp-w-5",{"gp-animate-spin":a}),viewBox:"0 0 20 20",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:p("path",{d:"M12.3408 3.03528C10.6845 2.42235 8.86506 2.41356 7.20294 3.01045C5.54082 3.60734 4.14265 4.77163 3.25471 6.29822C2.36677 7.82482 2.04603 9.61579 2.34898 11.3557C2.65193 13.0955 3.55915 14.6727 4.91081 15.8093C6.26248 16.9459 7.97189 17.5691 9.73794 17.5691C10.0831 17.5691 10.3629 17.2893 10.3629 16.9441C10.3629 16.5989 10.0831 16.3191 9.73792 16.3191C8.26621 16.3191 6.8417 15.7998 5.71531 14.8526C4.58892 13.9054 3.83291 12.5911 3.58045 11.1412C3.32799 9.69134 3.59528 8.19886 4.33523 6.9267C5.07518 5.65454 6.24032 4.6843 7.62542 4.18689C9.01052 3.68948 10.5267 3.69681 11.9069 4.20758C13.2872 4.71835 14.4429 5.69981 15.1705 6.97906C15.8981 8.25832 16.151 9.75331 15.8845 11.2007C15.677 12.3276 15.1651 13.3694 14.4127 14.2174L14.4127 11.7856C14.4127 11.4405 14.1329 11.1606 13.7877 11.1606C13.4425 11.1606 13.1627 11.4405 13.1627 11.7856L13.1627 15.4106C13.1627 15.5764 13.2285 15.7354 13.3457 15.8526C13.4629 15.9698 13.6219 16.0356 13.7877 16.0356H17.2845C17.6297 16.0356 17.9095 15.7558 17.9095 15.4106C17.9095 15.0655 17.6297 14.7856 17.2845 14.7856H15.5691C16.3513 13.8186 16.8858 12.6657 17.1139 11.427C17.4336 9.69015 17.1302 7.89616 16.257 6.36106C15.3839 4.82595 13.9971 3.64821 12.3408 3.03528Z",fill:"currentColor"})}),"Refresh"]})]})]})]})};export{a as Page500};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import{jsx as e,Fragment as
|
|
2
|
+
import{jsx as e,Fragment as r,jsxs as o}from"react/jsx-runtime";import{useState as i,useCallback as t,useEffect as d}from"react";import{useCollectionsQuery as n}from"@gem-sdk/core";import l from"next/dynamic";let c=l(()=>import("@gem-sdk/core").then(e=>e.CollectionProvider)),a=({children:l})=>{let[a,m]=i({first:1,orderBy:{direction:"DESC",field:"UPDATED_AT"},where:{isSample:!1}}),{data:s,isLoading:f,error:p}=n(a),h=s?.collections?.edges?.[0]?.node,v=t(e=>{let r=e.detail;m({...a,where:{...a.where,baseID:r?.baseID}})},[a]);return d(()=>(window.addEventListener("update-collection-info",v),()=>{window.removeEventListener("update-collection-info",v)}),[v]),e(r,{children:f?e("div",{children:"Loading..."}):p?o("div",{children:["Error: ",p?.message]}):e(c,{collection:h,children:l})})};export{a as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import{jsxs as e,Fragment as o,jsx as t}from"react/jsx-runtime";import{useI18n as r,PageProvider as i,BuilderComponentProvider as n,SectionProvider as p,I18nProvider as m,BuilderPreviewProvider as s}from"@gem-sdk/core";import
|
|
2
|
+
import{jsxs as e,Fragment as o,jsx as t}from"react/jsx-runtime";import{useI18n as r,PageProvider as i,BuilderComponentProvider as n,SectionProvider as p,I18nProvider as m,BuilderPreviewProvider as s}from"@gem-sdk/core";import l from"../components/EmptyPagePlaceholder.js";import d from"../components/AddSectionFromBottom.js";import a from"../components/builder/PopupManager.js";import c from"../components/builder/SwitchView.js";import{useState as g,useMemo as f,useEffect as h}from"react";import b from"../components/builder/Toolbox.js";import u from"../components/builder/Toolbar.js";import y from"../components/builder/Header.js";import T from"../components/builder/Footer.js";import j from"../components/builder/Body.js";import{NextSeo as S}from"next-seo";import x from"next/head";let O=({components:O,seo:v,themeStyle:P,fontStyle:w,sectionData:E,pageType:M,isThemeSectionEditor:N,hiddenToolbar:R,pageName:_,isOriginTemplate:B})=>{let[H,F]=g(!1),{t:I}=r(),L=f(()=>({ROOT:{uid:"ROOT",tag:"Root",label:"Root",childrens:[]}}),[]);h(()=>{F(!0)},[]);let k=()=>{window?.parent?.postMessage(JSON.stringify({type:"open-page-setting"}),"*")};return e(o,{children:[t(S,{...v}),e(x,{children:[P&&t("style",{type:"text/css",id:"global-style",dangerouslySetInnerHTML:{__html:P}}),w&&t("style",{"data-id":"google-fonts",type:"text/css",dangerouslySetInnerHTML:{__html:w}})]}),t(i,{children:t(n,{components:O,children:t(p,{data:E,children:t(m,{t:I,children:e(s,{pageName:_,state:L,isThemeSectionEditor:N,children:[t(b,{}),!R&&t(u,{}),t(a,{}),H&&e("div",{className:"builder gp-relative gp-z-1",children:[!R&&(N?t("div",{className:"gp-h-[40px] gp-border-b-[1px] gp-border-[#eeeeee] gp-bg-[#ffffff]",children:t(c,{})}):t(y,{pageType:M,isOriginTemplate:B,openPageSetting:k})),t(j,{pageType:M,isThemeSectionEditor:N}),t(l,{isThemeSectionEditor:N}),t(d,{}),t("div",{id:"visual-content"}),!N&&!R&&t(T,{pageType:M,isOriginTemplate:B,openPageSetting:k})]})]},"preview")})})})})]})};export{O as BuilderPage};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{PageProvider as o,BuilderComponentProvider as l,SectionProvider as n,BuilderProvider as i,Render as d}from"@gem-sdk/core";import{
|
|
2
|
+
import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{PageProvider as o,BuilderComponentProvider as l,SectionProvider as n,BuilderProvider as i,Render as d}from"@gem-sdk/core";import{useRouter as a}from"next/router";import c from"next/dynamic";import{NextSeo as m}from"next-seo";import s from"next/head";let h=c(()=>import("@gem-sdk/core").then(e=>e.CollectionProvider)),p=({seo:c,components:p,builderData:g,sectionData:f,themeStyle:x,collection:y,fontStyle:u})=>{let _=a();return _.isFallback?e("div",{children:"Loading..."}):t(r,{children:[e(m,{...c}),t(s,{children:[x&&e("style",{"data-id":"global-style",type:"text/css",dangerouslySetInnerHTML:{__html:x}}),u&&e("style",{"data-id":"google-fonts",type:"text/css",dangerouslySetInnerHTML:{__html:u}})]}),e(o,{children:e(l,{components:p,children:e(n,{data:f,children:e(h,{collection:y,children:g&&e(i,{state:g,children:e(d,{uid:"ROOT"})})})})})})]})};export{p as default};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{jsx as e,jsxs as t,Fragment as s}from"react/jsx-runtime";import{PageProvider as a,BuilderComponentProvider as r,SectionProvider as
|
|
1
|
+
import{jsx as e,jsxs as t,Fragment as s}from"react/jsx-runtime";import{PageProvider as a,BuilderComponentProvider as r,SectionProvider as l,BuilderProvider as n,Render as i}from"@gem-sdk/core";import{usePageViewedTracking as o}from"../libs/hooks/usePageViewedTracking.js";import{parseHtml as d}from"../libs/parse-html.js";import{useRouter as p}from"next/router";import{NextSeo as c}from"next-seo";import{useEffect as g}from"react";import m from"next/script";import u from"next/head";let h=({components:h,builderData:f,sectionData:y,seo:_,themeStyle:b,fontStyle:v,elementFontStyle:x,customCodeHeader:S,customFonts:k,isPostPurchase:N,productOffers:T,publicStoreFrontData:P,dynamicDiscountOffer:H,isPreview:I,interaction:L,pageBackground:M,sellingPlanSetting:j,buyerConsentPreCheck:$,id:q,shopID:E,domainTrackingIlp:w})=>{let A=p(),B=process.env.NEXT_GP_BASE_ASSET_URL||"https://assets.gemcommerce.com";o({id:q,shopID:E,domain:w});let D="custom-code-header";if(g(()=>{let e=document.querySelectorAll(`[class*="${D}-"]`),t=[];e.length>1&&e.forEach(e=>{let s=e.className;if(t.includes(s)){e.remove();return}t.push(s)})},[]),A.isFallback)return e("div",{className:"gp-flex gp-h-[100vh] gp-items-center gp-justify-center",children:t("div",{className:"gp-flex gp-gap-2",children:[e("span",{className:"gp-aspect-square gp-h-2 gp-animate-[flashing_500ms_infinite_alternate] gp-rounded-full gp-bg-slate-800"}),e("span",{className:"gp-aspect-square gp-h-2 gp-animate-[flashing_500ms_infinite_200ms_linear_alternate] gp-rounded-full gp-bg-slate-800"}),e("span",{className:"gp-aspect-square gp-h-2 gp-animate-[flashing_500ms_infinite_500ms_alternate] gp-rounded-full gp-bg-slate-800"})]})});let O=(L?.value||[]).length>0,z=M?.isUsePageBackground?M?.background:M?.themeBackground;return t(s,{children:[e(c,{..._}),t(u,{children:[d(D,S,!0),b&&e("style",{"data-id":"global-style",type:"text/css",dangerouslySetInnerHTML:{__html:b}},"global-style"),v&&e("style",{"data-id":"google-fonts",type:"text/css",dangerouslySetInnerHTML:{__html:v}},"google-fonts"),x&&x.map(t=>e("style",{"data-id":"google-element-fonts",type:"text/css",dangerouslySetInnerHTML:{__html:t}},t)),k&&e("style",{"data-id":"custom-element-fonts",type:"text/css",dangerouslySetInnerHTML:{__html:k}},v),z&&e("style",{children:`
|
|
2
2
|
body {
|
|
3
|
-
background: ${
|
|
3
|
+
background: ${z};
|
|
4
4
|
}
|
|
5
|
-
`},`page_background_${
|
|
5
|
+
`},`page_background_${z}`)]}),e(a,{productOffers:T,publicStoreFrontData:P,dynamicDiscountOffer:H,sellingPlanMeta:j,buyerConsentChecked:$,children:e(r,{components:h,children:t("div",{role:"main",children:[O&&e("div",{dangerouslySetInnerHTML:{__html:`<div id="gp-interaction" style="display: none;">${JSON.stringify(L?.value||[])}</div>`}}),e(l,{data:y,children:f?.map(s=>t(n,{state:s.data,lazy:s.lazy,priority:s.priority,isPostPurchase:N,isPreview:I,children:[e(i,{uid:s.uid}),O&&e(m,{defer:!0,src:`${B}/assets-v2/gp-flow-action-lip-v7-5.js`})]}))})]})})})]})};export{h as Headless};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{jsx as e,jsxs as t,Fragment as a}from"react/jsx-runtime";import{usePreviewSharePage as l,useI18n as n,PageProvider as r,BuilderComponentProvider as s,SectionProvider as i,I18nProvider as o,BuilderProvider as d,Render as c}from"@gem-sdk/core";import g
|
|
1
|
+
import{jsx as e,jsxs as t,Fragment as a}from"react/jsx-runtime";import{usePreviewSharePage as l,useI18n as n,PageProvider as r,BuilderComponentProvider as s,SectionProvider as i,I18nProvider as o,BuilderProvider as d,Render as c}from"@gem-sdk/core";import{parseHtml as g}from"../libs/parse-html.js";import{useEffect as p,Fragment as m}from"react";import{useRouter as u}from"next/router";import h from"next/dynamic";import f from"next/head";let y=({components:y,builderData:_,sectionData:b,themeStyle:x,fontStyle:k,elementFontStyle:v,customCodeHeader:T,customFonts:N,pageBackground:L,publicStoreFrontData:P,page:S,collection:I,dynamicCollection:q,dynamicProduct:C})=>{let{disableExternalLinks:H}=l(),M=u(),{t:j}=n(),F="custom-code-header",$=h(()=>import("@gem-sdk/core").then(e=>e.CollectionProvider)),w=S?.type==="GP_COLLECTION"?$:m;return(p(()=>{let e=document.querySelectorAll(`[class*="${F}-"]`),t=[];e.length>1&&e.forEach(e=>{let a=e.className;if(t.includes(a)){e.remove();return}t.push(a)})},[]),p(()=>{H()},[H]),M.isFallback)?e("div",{className:"gp-flex gp-h-[100vh] gp-items-center gp-justify-center",children:t("div",{className:"gp-flex gp-gap-2",children:[e("span",{className:"gp-aspect-square gp-h-2 gp-animate-[flashing_500ms_infinite_alternate] gp-rounded-full gp-bg-slate-800"}),e("span",{className:"gp-aspect-square gp-h-2 gp-animate-[flashing_500ms_infinite_200ms_linear_alternate] gp-rounded-full gp-bg-slate-800"}),e("span",{className:"gp-aspect-square gp-h-2 gp-animate-[flashing_500ms_infinite_500ms_alternate] gp-rounded-full gp-bg-slate-800"})]})}):t(a,{children:[t(f,{children:[g(F,T,!0),x&&e("style",{"data-id":"global-style",type:"text/css",dangerouslySetInnerHTML:{__html:x}},"global-style"),k&&e("style",{"data-id":"google-fonts",type:"text/css",dangerouslySetInnerHTML:{__html:k}},"google-fonts"),v&&v.map(t=>e("style",{"data-id":"google-element-fonts",type:"text/css",dangerouslySetInnerHTML:{__html:t}},t)),N&&e("style",{"data-id":"custom-element-fonts",type:"text/css",dangerouslySetInnerHTML:{__html:N}},k),L?.isUsePageBackground&&L?.background&&e("style",{children:`
|
|
2
2
|
body {
|
|
3
3
|
background: ${L.background};
|
|
4
4
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{PageProvider as o,BuilderComponentProvider as d,SectionProvider as n,BuilderProvider as i,Render as l,AddOn as a}from"@gem-sdk/core";import{
|
|
2
|
+
import{jsx as e,jsxs as t,Fragment as r}from"react/jsx-runtime";import{PageProvider as o,BuilderComponentProvider as d,SectionProvider as n,BuilderProvider as i,Render as l,AddOn as a}from"@gem-sdk/core";import{useRouter as c}from"next/router";import m from"next/dynamic";import{NextSeo as s}from"next-seo";import h from"next/head";let p=m(()=>import("@gem-sdk/core").then(e=>e.ProductProvider)),u=({themeStyle:m,fontStyle:u,seo:g,product:y,components:f,builderData:x,sectionData:k})=>{let P=c();return P.isFallback?e("div",{children:"Loading..."}):t(r,{children:[e(s,{...g}),t(h,{children:[m&&e("style",{"data-id":"global-style",type:"text/css",dangerouslySetInnerHTML:{__html:m}}),u&&e("style",{"data-id":"google-fonts",type:"text/css",dangerouslySetInnerHTML:{__html:u}})]}),e(o,{children:e(d,{components:f,children:e(n,{data:k,children:t(p,{product:y,children:[x&&e(i,{state:x,children:e(l,{uid:"ROOT"})}),e(a,{name:"sticky-add-to-cart"})]})})})})]})};export{u as default};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import{jsx as e,jsxs as t,Fragment as s}from"react/jsx-runtime";import{useI18n as
|
|
1
|
+
import{jsx as e,jsxs as t,Fragment as s}from"react/jsx-runtime";import{useI18n as a,PageProvider as r,BuilderComponentProvider as n,I18nProvider as l,SectionProvider as o,BuilderProvider as i,Render as p}from"@gem-sdk/core";import{usePageViewedTracking as m}from"../libs/hooks/usePageViewedTracking.js";import c from"../components/FooterForPostPurchase.js";import d from"../components/builder/Header.js";import{parseHtml as g}from"../libs/parse-html.js";import{useRouter as u}from"next/router";import{NextSeo as h}from"next-seo";import{useEffect as f}from"react";import y from"next/script";import _ from"next/head";let b=({components:b,builderData:v,sectionData:S,seo:x,themeStyle:P,fontStyle:k,elementFontStyle:N,customCodeHeader:T,customFonts:j,isPostPurchase:H,shopName:I,productOffers:L,publicStoreFrontData:M,dynamicDiscountOffer:$,isPreview:E,interaction:q,pageBackground:w,sellingPlanSetting:A,buyerConsentPreCheck:F,id:O,shopID:B,domainTrackingIlp:C})=>{let D=u(),{t:U}=a(),z=process.env.NEXT_GP_BASE_ASSET_URL||"https://assets.gemcommerce.com";m({id:O,shopID:B,domain:C});let R="custom-code-header";if(f(()=>{let e=document.querySelectorAll(`[class*="${R}-"]`),t=[];e.length>1&&e.forEach(e=>{let s=e.className;if(t.includes(s)){e.remove();return}t.push(s)})},[]),D.isFallback)return e("div",{className:"gp-flex gp-h-[100vh] gp-items-center gp-justify-center",children:t("div",{className:"gp-flex gp-gap-2",children:[e("span",{className:"gp-aspect-square gp-h-2 gp-animate-[flashing_500ms_infinite_alternate] gp-rounded-full gp-bg-slate-800"}),e("span",{className:"gp-aspect-square gp-h-2 gp-animate-[flashing_500ms_infinite_200ms_linear_alternate] gp-rounded-full gp-bg-slate-800"}),e("span",{className:"gp-aspect-square gp-h-2 gp-animate-[flashing_500ms_infinite_500ms_alternate] gp-rounded-full gp-bg-slate-800"})]})});let V=(q?.value||[]).length>0,G=w?.isUsePageBackground?w?.background:w?.themeBackground;return t(s,{children:[e(h,{...x}),t(_,{children:[g(R,T,!0),P&&e("style",{"data-id":"global-style",type:"text/css",dangerouslySetInnerHTML:{__html:P}},"global-style"),k&&e("style",{"data-id":"google-fonts",type:"text/css",dangerouslySetInnerHTML:{__html:k}},"google-fonts"),N&&N.map(t=>e("style",{"data-id":"google-element-fonts",type:"text/css",dangerouslySetInnerHTML:{__html:t}},t)),j&&e("style",{"data-id":"custom-element-fonts",type:"text/css",dangerouslySetInnerHTML:{__html:j}},k),G&&e("style",{children:`
|
|
2
2
|
body {
|
|
3
|
-
background: ${
|
|
3
|
+
background: ${G};
|
|
4
4
|
}
|
|
5
|
-
`},`page_background_${
|
|
5
|
+
`},`page_background_${G}`)]}),e(r,{productOffers:L,publicStoreFrontData:M,dynamicDiscountOffer:$,sellingPlanMeta:A,buyerConsentChecked:F,children:e(n,{components:b,children:e(l,{t:U,children:t("div",{className:`${H?"post-purchase-page gp-bg-white":""} `,role:"main",children:[H&&e(d,{pageType:"POST_PURCHASE"}),V&&e("div",{dangerouslySetInnerHTML:{__html:`<div id="gp-interaction" style="display: none;">${JSON.stringify(q?.value||[])}</div>`}}),e(o,{data:S,children:v?.map(s=>t(i,{state:s.data,lazy:s.lazy,priority:s.priority,isPostPurchase:H,isPreview:E,children:[e(p,{uid:s.uid}),V&&e(y,{defer:!0,src:`${z}/assets-v2/gp-flow-action-lip-v7-5.js`})]},s.uid))}),H&&e(c,{shopName:I||""})]})})})})]})};export{b as StaticPageV2};
|
package/dist/esm/pages/static.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import{jsx as e,jsxs as t,Fragment as a}from"react/jsx-runtime";import{PageProvider as s,BuilderComponentProvider as l,SectionProvider as n,BuilderProvider as r,Render as i}from"@gem-sdk/core";import{
|
|
2
|
+
import{jsx as e,jsxs as t,Fragment as a}from"react/jsx-runtime";import{PageProvider as s,BuilderComponentProvider as l,SectionProvider as n,BuilderProvider as r,Render as i}from"@gem-sdk/core";import{useRouter as p}from"next/router";import{NextSeo as g}from"next-seo";import d from"next/head";let m=({components:m,builderData:c,sectionData:o,seo:h,themeStyle:f,fontStyle:u})=>{let _=p();return _.isFallback?e("div",{className:"gp-flex gp-h-[100vh] gp-items-center gp-justify-center",children:t("div",{className:"gp-flex gp-gap-2",children:[e("span",{className:"gp-aspect-square gp-h-2 gp-animate-[flashing_500ms_infinite_alternate] gp-rounded-full gp-bg-slate-800"}),e("span",{className:"gp-aspect-square gp-h-2 gp-animate-[flashing_500ms_infinite_200ms_linear_alternate] gp-rounded-full gp-bg-slate-800"}),e("span",{className:"gp-aspect-square gp-h-2 gp-animate-[flashing_500ms_infinite_500ms_alternate] gp-rounded-full gp-bg-slate-800"})]})}):t(a,{children:[e(g,{...h}),t(d,{children:[f&&e("style",{"data-id":"global-style",type:"text/css",dangerouslySetInnerHTML:{__html:f}}),u&&e("style",{"data-id":"google-fonts",type:"text/css",dangerouslySetInnerHTML:{__html:u}})]}),e(s,{children:e(l,{components:m,children:e(n,{data:o,children:e(a,{children:c&&e(r,{state:c,children:e(i,{uid:"ROOT"})},"body")})})})})]})};export{m as default};
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { BuilderState, SectionData as SectionData$1, ShopType, RenderMode, CollectionQueryResponse, ProductOffer, AppAPIType, PublicStoreFrontData, ProductSelectFragment, FetchFunc, ThemePageQueryResponse, StorePropertyQueryResponse, PublishedThemePageSelectFragment, TypographyV2FontFamilyType } from '@gem-sdk/core';
|
|
2
|
-
import { NextPage, GetStaticPaths } from 'next';
|
|
3
2
|
import * as next_seo from 'next-seo';
|
|
4
3
|
import { NextSeoProps } from 'next-seo';
|
|
5
4
|
import { AppProps } from 'next/app';
|
|
5
|
+
import { NextPage, GetStaticPaths } from 'next';
|
|
6
6
|
import { SWRConfig } from 'swr';
|
|
7
7
|
import * as React$1 from 'react';
|
|
8
8
|
import React__default, { Component } from 'react';
|
|
@@ -40,8 +40,7 @@ type PageBuilderProps = {
|
|
|
40
40
|
customCodeBody?: string | null;
|
|
41
41
|
isStorefront?: boolean;
|
|
42
42
|
customFonts?: string | null;
|
|
43
|
-
|
|
44
|
-
interactions?: ShopType.Maybe<Array<ShopType.Maybe<Pick<ShopType.PublishedPageInteraction, 'id' | 'key' | 'value'>>>>;
|
|
43
|
+
interaction?: ShopType.Maybe<Pick<ShopType.PublishedPageInteraction, 'id' | 'value'>>;
|
|
45
44
|
timezone?: string;
|
|
46
45
|
pageBackground?: {
|
|
47
46
|
isUsePageBackground?: boolean;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gem-sdk/pages",
|
|
3
|
-
"version": "22.0.0-
|
|
3
|
+
"version": "22.0.0-staging.45",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"main": "dist/cjs/index.js",
|
|
@@ -8,29 +8,29 @@
|
|
|
8
8
|
"dist"
|
|
9
9
|
],
|
|
10
10
|
"scripts": {
|
|
11
|
-
"cleanup": "rimraf es dist lib",
|
|
12
11
|
"prebuild": "yarn cleanup",
|
|
13
|
-
"pre:publish": "node ./../../helpers/convert-publish.js -p",
|
|
14
|
-
"post:publish": "node ./../../helpers/convert-publish.js",
|
|
15
|
-
"watch": "rollup -c ./../../helpers/rollup.config.mjs -w",
|
|
16
12
|
"build": "rollup -c ./../../helpers/rollup.config.mjs --environment NODE_ENV:production",
|
|
13
|
+
"cleanup": "rimraf es dist lib",
|
|
14
|
+
"gen-google-fonts": "node ./scripts/genFontGoogle.js",
|
|
17
15
|
"lint": "oxlint --format=stylish ./src",
|
|
18
|
-
"
|
|
16
|
+
"post:publish": "node ./../../helpers/convert-publish.js",
|
|
17
|
+
"pre:publish": "node ./../../helpers/convert-publish.js -p",
|
|
19
18
|
"test": "jest -c ./../../helpers/jest.config.ts",
|
|
20
|
-
"
|
|
19
|
+
"type-check": "node ../../node_modules/typescript7/bin/tsc --noEmit",
|
|
20
|
+
"watch": "rollup -c ./../../helpers/rollup.config.mjs -w"
|
|
21
21
|
},
|
|
22
22
|
"dependencies": {
|
|
23
|
-
"@sentry/nextjs": "
|
|
23
|
+
"@sentry/nextjs": "7.77.0",
|
|
24
24
|
"deepmerge": "4.3.1",
|
|
25
25
|
"html-react-parser": "4.2.10",
|
|
26
|
-
"next
|
|
27
|
-
"next": "
|
|
26
|
+
"next": "14.2.35",
|
|
27
|
+
"next-seo": "6.8.0"
|
|
28
28
|
},
|
|
29
29
|
"devDependencies": {
|
|
30
|
-
"@gem-sdk/core": "22.0.0-
|
|
31
|
-
"@gem-sdk/plugin-cookie-bar": "
|
|
32
|
-
"@gem-sdk/plugin-quick-view": "
|
|
33
|
-
"@gem-sdk/plugin-sticky-add-to-cart": "
|
|
30
|
+
"@gem-sdk/core": "22.0.0-staging.45",
|
|
31
|
+
"@gem-sdk/plugin-cookie-bar": "21.1.0-staging.43",
|
|
32
|
+
"@gem-sdk/plugin-quick-view": "21.1.0-staging.43",
|
|
33
|
+
"@gem-sdk/plugin-sticky-add-to-cart": "21.1.0-staging.43"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|
|
36
36
|
"next": "14.2.35"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";const t=t=>{let e=t.key??"";return!e||e.startsWith("gp-interaction-")?0:Number(e.split("-").pop())||0};exports.joinInteractionParts=e=>{let r=[...e??[]].filter(t=>!!t),i=r.filter(e=>t(e)>0);return(i.length?i:r).sort((e,r)=>t(e)-t(r)).flatMap(t=>t.value??[])};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
let t=t=>{let e=t.key??"";return!e||e.startsWith("gp-interaction-")?0:Number(e.split("-").pop())||0},e=e=>{let r=[...e??[]].filter(t=>!!t),l=r.filter(e=>t(e)>0);return(l.length?l:r).sort((e,r)=>t(e)-t(r)).flatMap(t=>t.value??[])};export{e as joinInteractionParts};
|