@gem-sdk/components 8.0.0-dev.102 → 8.0.0-dev.106

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.
@@ -1 +1 @@
1
- "use strict";var core=require("@gem-sdk/core"),helper=require("../../common/helper.js");const composeClasses=e=>core.filterTruthyStyles(e),getWrapperClassName=({align:e,uid:t})=>{let s={"gp-flex gp-items-center":!0,"gp-justify-center":"center"===e,"gp-justify-end":"right"===e,"gp-justify-start":"right"!==e&&"center"!==e};return t&&(s[t]=!!t),composeClasses(s)},getCheckboxContainerClassName=()=>({"gp-flex gp-items-start":!0}),getCheckboxClassName=()=>composeClasses({"gp-h-[20px] gp-w-[20px] gp-inline-block gp-static":!0}),getLinkComponentClassName=e=>{let t=helper.checkIsValidURL(e||"");return{"gp-underline":t}},getLinkComponentStyles=()=>({color:helper.postPurchaseTextColor.defaultLink});exports.getCheckboxClassName=getCheckboxClassName,exports.getCheckboxContainerClassName=getCheckboxContainerClassName,exports.getLinkComponentClassName=getLinkComponentClassName,exports.getLinkComponentStyles=getLinkComponentStyles,exports.getWrapperClassName=getWrapperClassName;
1
+ "use strict";var core=require("@gem-sdk/core"),helper=require("../../common/helper.js");const composeClasses=e=>core.filterTruthyStyles(e),getWrapperClassName=({align:e,uid:s})=>{let t={"gp-flex gp-items-center":!0,"gp-justify-center":"center"===e,"gp-justify-end":"right"===e,"gp-justify-start":"right"!==e&&"center"!==e};return s&&(t[s]=!!s),composeClasses(t)},getCheckboxContainerClassName=()=>({"gp-flex gp-items-start":!0}),getCheckboxClassName=()=>composeClasses({"gp-h-[20px] gp-w-[20px] gp-inline-block gp-static":!0}),getLinkComponentClassName=()=>({"gp-underline":!0}),getLinkComponentStyles=()=>({color:helper.postPurchaseTextColor.defaultLink});exports.getCheckboxClassName=getCheckboxClassName,exports.getCheckboxContainerClassName=getCheckboxContainerClassName,exports.getLinkComponentClassName=getLinkComponentClassName,exports.getLinkComponentStyles=getLinkComponentStyles,exports.getWrapperClassName=getWrapperClassName;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var jsxRuntime=require("react/jsx-runtime"),React=require("react"),system=require("@gem-sdk/system"),styles=require("../common/styles.js"),classes=require("../common/classes.js"),helpers=require("../common/helpers.js"),core=require("@gem-sdk/core");const COMPONENT_ID_PREFIX="buyer-consent-product",BuyerConsent=({styles:e,builderProps:s,setting:t})=>{let r=core.useProduct(),{description:l,policyLabel:a,policyLink:c,align:n}=t??{},[y,m]=React.useState(t?.selected),o=r?.id?`buyer-consent-product-${r.id}`:void 0,i=helpers.getComponentTag(c),u=system.createStyle(styles.getWrapperStyles({styles:e})),d=system.createClass(classes.getWrapperClassName({align:n,uid:s?.uid})),C=system.createStyle(styles.getContainerStyles({styles:e})),x=system.createClass(classes.getCheckboxContainerClassName()),p=system.createStyle(styles.getCheckboxInputStyles()),g=system.createStyle(styles.getTextStyle({styles:e})),h=system.createClass(classes.getCheckboxClassName()),j=system.createClass(classes.getLinkComponentClassName(c)),k=system.createStyle(classes.getLinkComponentStyles()),S=e=>{m(e.target.checked)};return React.useEffect(()=>{m(t?.selected)},[t?.selected]),jsxRuntime.jsx("div",{"data-id":s?.uid,style:u,className:d,children:jsxRuntime.jsxs("label",{htmlFor:o,style:C,className:x,children:[jsxRuntime.jsx("input",{id:o,name:o,type:"checkbox",style:p,className:h,checked:y,onChange:S}),jsxRuntime.jsxs("bdo",{dir:e?.direction??"ltr",style:g,children:[l," ",jsxRuntime.jsx(i,{target:"_blank",rel:"noreferrer",href:c,className:j,style:k,children:a})]})]})})};exports.default=BuyerConsent;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var jsxRuntime=require("react/jsx-runtime"),React=require("react"),system=require("@gem-sdk/system"),styles=require("../common/styles.js"),classes=require("../common/classes.js"),helpers=require("../common/helpers.js"),core=require("@gem-sdk/core");const COMPONENT_ID_PREFIX="buyer-consent-product",BuyerConsent=({styles:e,builderProps:s,setting:t})=>{let r=core.useProduct(),l=core.useProductStore(e=>e.isAgreeBuyWithSubscription),c=core.useProductStore(e=>e.setIsAgreeBuyWithSubscription),{description:a,policyLabel:n,policyLink:o,align:i}=t??{},y=r?.id?`buyer-consent-product-${r.id}`:void 0,u=helpers.getComponentTag(o),m=system.createStyle(styles.getWrapperStyles({styles:e})),d=system.createClass(classes.getWrapperClassName({align:i,uid:s?.uid})),p=system.createStyle(styles.getContainerStyles({styles:e})),C=system.createClass(classes.getCheckboxContainerClassName()),x=system.createStyle(styles.getCheckboxInputStyles()),g=system.createStyle(styles.getTextStyle({styles:e})),h=system.createClass(classes.getCheckboxClassName()),j=system.createClass(classes.getLinkComponentClassName()),S=system.createStyle(classes.getLinkComponentStyles()),b=e=>{c(e.target.checked)};return React.useEffect(()=>{c(t?.selected??!1)},[c,t?.selected]),jsxRuntime.jsx("div",{"data-id":s?.uid,style:m,className:d,children:jsxRuntime.jsxs("label",{htmlFor:y,style:p,className:C,children:[jsxRuntime.jsx("input",{id:y,name:y,type:"checkbox",style:x,className:h,checked:l,onChange:b}),jsxRuntime.jsxs("bdo",{dir:e?.direction??"ltr",style:g,children:[a," ",jsxRuntime.jsx(u,{target:"_blank",rel:"noreferrer",href:o,className:j,style:S,children:n})]})]})})};exports.default=BuyerConsent;
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var jsxRuntime=require("react/jsx-runtime"),core=require("@gem-sdk/core"),Button=require("../../button/components/Button.js"),useGetTextSetting=require("../hooks/useGetTextSetting.js");const PostPurchaseAcceptButton=e=>{let t=core.useCurrentVariantInStock(),{text:s}=useGetTextSetting.useGetTextSetting(t,e);return jsxRuntime.jsx(Button.default,{...e,disabled:!t,setting:{...e.setting,text:s},styles:e.styles})};exports.default=PostPurchaseAcceptButton;
2
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var jsxRuntime=require("react/jsx-runtime"),core=require("@gem-sdk/core"),Button=require("../../button/components/Button.js"),useGetTextSetting=require("../hooks/useGetTextSetting.js"),useSubscriptionConsentCheck=require("../hooks/useSubscriptionConsentCheck.js");const PostPurchaseAcceptButton=e=>{let t=core.useCurrentVariantInStock(),{isDisableAccept:s}=useSubscriptionConsentCheck.useSubscriptionConsentCheck(),{text:n}=useGetTextSetting.useGetTextSetting({isInStock:t,props:e,isRequireSubscriptionConsent:s});return jsxRuntime.jsx(Button.default,{...e,disabled:!t||s,setting:{...e.setting,text:n},styles:e.styles})};exports.default=PostPurchaseAcceptButton;
@@ -1 +1 @@
1
- "use strict";var core=require("@gem-sdk/core"),useDynamicProduct=require("../../../hooks/useDynamicProduct.js"),React=require("react"),index=require("../../../helpers/index.js"),ProductOfferPlaceholder=require("../../../constants/ProductOfferPlaceholder.js");const useProductOfferData=()=>{let e=core.usePageStore(e=>e.productOffers),o=core.usePageStore(e=>e.publicStoreFrontData),{isDynamicProduct:r}=useDynamicProduct.useDynamicProduct(),t=core.usePageStore(e=>e.dynamicDiscountOffer),c=React.useMemo(()=>r?t?.appliedProductCount:e?.length,[t?.appliedProductCount,r,e?.length]),u=React.useMemo(()=>e?.sort((e,o)=>e?.node?.position&&o?.node?.position?e.node.position-o.node.position:0).map(e=>e?.node?.objectBaseID).filter(Boolean),[e]),{isLoading:a,isValidating:d,data:n}=core.useProductsQuery(u||[],{revalidateOnMount:!0},{allStatus:!0,fetcher:index.hasPublicStoreFrontData(o)?index.createStoreFrontFetcher(o):void 0}),s=React.useMemo(()=>a||d,[a,d]),i=React.useMemo(()=>core.flattenConnection(n?.products),[n?.products]),l=React.useMemo(()=>r&&t?.appliedProductCount?Array(t.appliedProductCount).fill(ProductOfferPlaceholder.productOfferPlaceholder):u?.map(e=>i?.find(o=>o?.baseID===e)).filter(Boolean),[r,t?.appliedProductCount,u,i]);return{isLoading:s,productSortedById:l,totalProduct:c}};exports.useProductOfferData=useProductOfferData;
1
+ "use strict";var core=require("@gem-sdk/core"),useDynamicProduct=require("../../../hooks/useDynamicProduct.js"),React=require("react"),index=require("../../../helpers/index.js"),ProductOfferPlaceholder=require("../../../constants/ProductOfferPlaceholder.js");const useProductOfferData=()=>{let e=core.usePageStore(e=>e.productOffers),o=core.usePageStore(e=>e.publicStoreFrontData),{isDynamicProduct:r}=useDynamicProduct.useDynamicProduct(),t=core.usePageStore(e=>e.dynamicDiscountOffer),c=React.useMemo(()=>r?t?.appliedProductCount:e?.length,[t?.appliedProductCount,r,e?.length]),u=React.useMemo(()=>e?.sort((e,o)=>e?.node?.position&&o?.node?.position?e.node.position-o.node.position:0).map(e=>e?.node?.objectBaseID).filter(Boolean),[e]),{isLoading:a,isValidating:d,data:n}=core.useProductOffersQuery(u||[],{revalidateOnMount:!0},{allStatus:!0,fetcher:index.hasPublicStoreFrontData(o)?index.createStoreFrontFetcher(o):void 0}),s=React.useMemo(()=>a||d,[a,d]),i=React.useMemo(()=>core.flattenConnection(n?.products),[n?.products]),l=React.useMemo(()=>r&&t?.appliedProductCount?Array(t.appliedProductCount).fill(ProductOfferPlaceholder.productOfferPlaceholder):u?.map(e=>i?.find(o=>o?.baseID===e)).filter(Boolean),[r,t?.appliedProductCount,u,i]);return{isLoading:s,productSortedById:l,totalProduct:c}};exports.useProductOfferData=useProductOfferData;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var jsxRuntime=require("react/jsx-runtime"),system=require("@gem-sdk/system"),styles=require("../common/styles.js"),classes=require("../common/classes.js"),SubscriptionDetail=require("./SubscriptionDetail.js"),SellingPlanDropdown=require("./SellingPlanDropdown.js"),SellingPlanRadio=require("./SellingPlanRadio.js"),SellingPlanLabel=require("./SellingPlanLabel.js");const ProductSubscription=({styles:e,setting:s})=>{let l=system.createStyle(styles.getSubscriptionStyles(e,s)),t=system.createStyle(styles.getSubscriptionWrapperStyles(e?.align)),i=system.createClass(classes.getWrapperClasses()),n=system.createClass(classes.getContainerClasses());return jsxRuntime.jsx("div",{className:i,style:t,children:jsxRuntime.jsxs("div",{className:n,style:l,children:[jsxRuntime.jsx(SellingPlanLabel.SellingPlanLabel,{setting:s,styles:e}),s?.sellingStyle==="radio"?jsxRuntime.jsx(SellingPlanRadio.SellingPlanRadio,{setting:s}):jsxRuntime.jsx(SellingPlanDropdown.SellingPlanDropdown,{setting:s}),jsxRuntime.jsx(SubscriptionDetail.SubscriptionDetail,{setting:s,styles:e})]})})};exports.default=ProductSubscription;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var jsxRuntime=require("react/jsx-runtime"),system=require("@gem-sdk/system"),styles=require("../common/styles.js"),classes=require("../common/classes.js"),SubscriptionDetail=require("./SubscriptionDetail.js"),SellingPlanDropdown=require("./SellingPlanDropdown.js"),SellingPlanRadio=require("./SellingPlanRadio.js"),SellingPlanLabel=require("./SellingPlanLabel.js"),core=require("@gem-sdk/core"),React=require("react"),index=require("../../../constants/index.js");const ProductSubscription=({styles:e,setting:s})=>{let l=core.useProductStore(e=>e.setSubscriptionSellingType),t=system.createStyle(styles.getSubscriptionStyles(e,s)),i=system.createStyle(styles.getSubscriptionWrapperStyles(e?.align)),n=system.createClass(classes.getWrapperClasses()),r=system.createClass(classes.getContainerClasses());return React.useEffect(()=>{l(s?.sellingType??index.PostPurchaseSubscriptionSellingType.SUBSCRIPTION)},[l,s?.sellingType]),jsxRuntime.jsx("div",{className:n,style:i,children:jsxRuntime.jsxs("div",{className:r,style:t,children:[jsxRuntime.jsx(SellingPlanLabel.SellingPlanLabel,{setting:s,styles:e}),s?.sellingStyle==="radio"?jsxRuntime.jsx(SellingPlanRadio.SellingPlanRadio,{setting:s}):jsxRuntime.jsx(SellingPlanDropdown.SellingPlanDropdown,{setting:s}),jsxRuntime.jsx(SubscriptionDetail.SubscriptionDetail,{setting:s,styles:e})]})})};exports.default=ProductSubscription;
@@ -1 +1 @@
1
- "use strict";const NEXT_AND_PREV_URLS={},BUTTON_URL_MAP_POST_PURCHASE={next:{vertical:{disabled:"https://cdn.shopify.com/s/files/1/0789/8018/6418/files/472169286689883168-6c7f10a8-a205-43bd-b39c-aab044bb3771.svg",enabled:"https://cdn.shopify.com/s/files/1/0789/8018/6418/files/472169286689883168-a3c3d74c-2cde-49e5-9854-8079f5239013.svg"},horizontal:{disabled:"https://cdn.shopify.com/s/files/1/0789/8018/6418/files/472169286689883168-a3d1f159-001d-4301-bead-214606caf995.svg",enabled:"https://cdn.shopify.com/s/files/1/0789/8018/6418/files/472169286689883168-a5ac0286-5941-4bd7-a21d-72a6c017aeea.svg"}},prev:{vertical:{disabled:"https://cdn.shopify.com/s/files/1/0789/8018/6418/files/472169286689883168-010c3c2a-fcc3-4b09-84a2-734d924ad49b.svg",enabled:"https://cdn.shopify.com/s/files/1/0789/8018/6418/files/472169286689883168-4e4e886a-5aa1-4bb3-ab48-aa7752fd5eba.svg"},horizontal:{disabled:"https://cdn.shopify.com/s/files/1/0789/8018/6418/files/472169286689883168-33e3810b-a94c-40a1-a48b-4eba39013f15.svg",enabled:"https://cdn.shopify.com/s/files/1/0789/8018/6418/files/472169286689883168-a2eb5093-0203-4973-8ade-183d5bdefdce.svg"}}};exports.BUTTON_URL_MAP_POST_PURCHASE=BUTTON_URL_MAP_POST_PURCHASE;
1
+ "use strict";const NEXT_AND_PREV_URLS={},BUTTON_URL_MAP_POST_PURCHASE={next:{vertical:{disabled:"https://cdn.shopify.com/s/files/1/0789/8018/6418/files/472169286689883168-6c7f10a8-a205-43bd-b39c-aab044bb3771.svg",enabled:"https://cdn.shopify.com/s/files/1/0789/8018/6418/files/472169286689883168-a3c3d74c-2cde-49e5-9854-8079f5239013.svg"},horizontal:{disabled:"https://cdn.shopify.com/s/files/1/0789/8018/6418/files/472169286689883168-a3d1f159-001d-4301-bead-214606caf995.svg",enabled:"https://cdn.shopify.com/s/files/1/0789/8018/6418/files/472169286689883168-a5ac0286-5941-4bd7-a21d-72a6c017aeea.svg"}},prev:{vertical:{disabled:"https://cdn.shopify.com/s/files/1/0789/8018/6418/files/472169286689883168-010c3c2a-fcc3-4b09-84a2-734d924ad49b.svg",enabled:"https://cdn.shopify.com/s/files/1/0789/8018/6418/files/472169286689883168-4e4e886a-5aa1-4bb3-ab48-aa7752fd5eba.svg"},horizontal:{disabled:"https://cdn.shopify.com/s/files/1/0789/8018/6418/files/472169286689883168-33e3810b-a94c-40a1-a48b-4eba39013f15.svg",enabled:"https://cdn.shopify.com/s/files/1/0789/8018/6418/files/472169286689883168-a2eb5093-0203-4973-8ade-183d5bdefdce.svg"}}};exports.PostPurchaseSubscriptionSellingType=void 0,function(s){s.ONE_TIME="one-time",s.SUBSCRIPTION="subscription"}(exports.PostPurchaseSubscriptionSellingType||(exports.PostPurchaseSubscriptionSellingType={})),exports.BUTTON_URL_MAP_POST_PURCHASE=BUTTON_URL_MAP_POST_PURCHASE;
@@ -1 +1 @@
1
- "use strict";var React=require("react");const useGetTextSetting=(t,e)=>{let s=React.useMemo(()=>t?e?.setting?.text:e?.setting?.outOfStockLabel,[t,e?.setting?.text,e?.setting?.outOfStockLabel]);return{text:s}};exports.useGetTextSetting=useGetTextSetting;
1
+ "use strict";var React=require("react");const useGetTextSetting=({isInStock:e,props:t,isRequireSubscriptionConsent:r})=>{let s=React.useMemo(()=>e?r?t?.setting?.requireAcceptTermLabel??"Accept terms to purchase":t?.setting?.text:t?.setting?.outOfStockLabel,[e,r,t?.setting?.text,t?.setting?.outOfStockLabel,t?.setting?.requireAcceptTermLabel]);return{text:s}};exports.useGetTextSetting=useGetTextSetting;
@@ -0,0 +1 @@
1
+ "use strict";var core=require("@gem-sdk/core"),React=require("react"),index=require("../constants/index.js"),product=require("../../../product/helpers/product.js");const useSubscriptionConsentCheck=()=>{let e=core.useProductStore(e=>e.isAgreeBuyWithSubscription),r=core.useProductStore(e=>e.selectedOptions),t=core.useProductStore(e=>e.subscriptionSellingType),s=core.useProduct(),n=core.useVariants(),u=React.useMemo(()=>{let u=t===index.PostPurchaseSubscriptionSellingType.ONE_TIME;if(e||u)return!1;let o=!!s?.sellingPlanGroups?.length||!!s?.variants?.edges.find(e=>!!e.node?.sellingPlanGroups?.length);if(!o||!r)return!1;let i=product.checkDefaultVariant(s);if(!i){let e=n.find(e=>e?.selectedOptions.every(e=>r[e.name??""]===e.value)),t=!!e?.sellingPlanGroups?.length;return t}return!0},[r,t,e,s,n]);return{isDisableAccept:u}};exports.useSubscriptionConsentCheck=useSubscriptionConsentCheck;
@@ -1 +1 @@
1
- "use strict";require("react/jsx-runtime"),require("@gem-sdk/core"),require("@gem-sdk/system"),require("react"),require("./components/product-variant/components/variants/VariantItem.js"),require("next/link"),require("next/head"),require("next/image"),require("react-youtube"),require("../image/components/Img.js");var ProductTitle$1=require("./settings/product-title/ProductTitle.js"),ProductDescription$1=require("./settings/product-description/ProductDescription.js"),ProductPrice$1=require("./settings/product-price/ProductPrice.js"),ProductVariant$1=require("./settings/product-variants/ProductVariant.js"),index$1=require("./settings/accept-button/index.js"),index$2=require("./settings/product-quantity/index.js"),index$4=require("./settings/product-offer/index.js"),index$3=require("./settings/product-price-breakdown/index.js"),ProductDiscountTag$1=require("./settings/product-discount-tag/ProductDiscountTag.js"),index$5=require("./settings/product-subscription/index.js"),ProductImages=require("./settings/product-image/ProductImages.js");const postPurchaseProductSetting={PostPurchaseProductTitle:ProductTitle$1.default,PostPurchaseProductDescription:ProductDescription$1.default,PostPurchaseProductPrice:ProductPrice$1.default,PostPurchaseProductVariants:ProductVariant$1.default,PostPurchaseAcceptButton:index$1.default,PostPurchaseProductQuantity:index$2.default,PostPurchaseProductPriceBreakdown:index$3.default,PostPurchaseProductOffer:index$4.default,PostPurchaseProductDiscountTag:ProductDiscountTag$1.default,PostPurchaseProductImages:ProductImages.default,PostPurchaseProductSubscription:index$5.default};exports.postPurchaseProductSetting=postPurchaseProductSetting;
1
+ "use strict";require("react/jsx-runtime"),require("@gem-sdk/core"),require("@gem-sdk/system"),require("react"),require("./components/product-variant/components/variants/VariantItem.js"),require("next/link"),require("./constants/index.js"),require("next/head"),require("next/image"),require("react-youtube"),require("../image/components/Img.js");var ProductTitle$1=require("./settings/product-title/ProductTitle.js"),ProductDescription$1=require("./settings/product-description/ProductDescription.js"),ProductPrice$1=require("./settings/product-price/ProductPrice.js"),ProductVariant$1=require("./settings/product-variants/ProductVariant.js"),index$1=require("./settings/accept-button/index.js"),index$2=require("./settings/product-quantity/index.js"),index$4=require("./settings/product-offer/index.js"),index$3=require("./settings/product-price-breakdown/index.js"),ProductDiscountTag$1=require("./settings/product-discount-tag/ProductDiscountTag.js"),index$5=require("./settings/product-subscription/index.js"),ProductImages=require("./settings/product-image/ProductImages.js");const postPurchaseProductSetting={PostPurchaseProductTitle:ProductTitle$1.default,PostPurchaseProductDescription:ProductDescription$1.default,PostPurchaseProductPrice:ProductPrice$1.default,PostPurchaseProductVariants:ProductVariant$1.default,PostPurchaseAcceptButton:index$1.default,PostPurchaseProductQuantity:index$2.default,PostPurchaseProductPriceBreakdown:index$3.default,PostPurchaseProductOffer:index$4.default,PostPurchaseProductDiscountTag:ProductDiscountTag$1.default,PostPurchaseProductImages:ProductImages.default,PostPurchaseProductSubscription:index$5.default};exports.postPurchaseProductSetting=postPurchaseProductSetting;
@@ -1 +1 @@
1
- import{filterTruthyStyles as e}from"@gem-sdk/core";import{postPurchaseTextColor as t,checkIsValidURL as s}from"../../common/helper.js";let composeClasses=t=>e(t),getWrapperClassName=({align:e,uid:t})=>{let s={"gp-flex gp-items-center":!0,"gp-justify-center":"center"===e,"gp-justify-end":"right"===e,"gp-justify-start":"right"!==e&&"center"!==e};return t&&(s[t]=!!t),composeClasses(s)},getCheckboxContainerClassName=()=>({"gp-flex gp-items-start":!0}),getCheckboxClassName=()=>composeClasses({"gp-h-[20px] gp-w-[20px] gp-inline-block gp-static":!0}),getLinkComponentClassName=e=>{let t=s(e||"");return{"gp-underline":t}},getLinkComponentStyles=()=>({color:t.defaultLink});export{getCheckboxClassName,getCheckboxContainerClassName,getLinkComponentClassName,getLinkComponentStyles,getWrapperClassName};
1
+ import{filterTruthyStyles as e}from"@gem-sdk/core";import{postPurchaseTextColor as t}from"../../common/helper.js";let composeClasses=t=>e(t),getWrapperClassName=({align:e,uid:t})=>{let s={"gp-flex gp-items-center":!0,"gp-justify-center":"center"===e,"gp-justify-end":"right"===e,"gp-justify-start":"right"!==e&&"center"!==e};return t&&(s[t]=!!t),composeClasses(s)},getCheckboxContainerClassName=()=>({"gp-flex gp-items-start":!0}),getCheckboxClassName=()=>composeClasses({"gp-h-[20px] gp-w-[20px] gp-inline-block gp-static":!0}),getLinkComponentClassName=()=>({"gp-underline":!0}),getLinkComponentStyles=()=>({color:t.defaultLink});export{getCheckboxClassName,getCheckboxContainerClassName,getLinkComponentClassName,getLinkComponentStyles,getWrapperClassName};
@@ -1 +1 @@
1
- import{jsx as e,jsxs as r}from"react/jsx-runtime";import{useState as t,useEffect as o}from"react";import{createStyle as s,createClass as m}from"@gem-sdk/system";import{getWrapperStyles as c,getContainerStyles as l,getCheckboxInputStyles as d,getTextStyle as i}from"../common/styles.js";import{getWrapperClassName as n,getCheckboxContainerClassName as a,getCheckboxClassName as p,getLinkComponentClassName as u,getLinkComponentStyles as y}from"../common/classes.js";import{getComponentTag as h}from"../common/helpers.js";import{useProduct as f}from"@gem-sdk/core";let COMPONENT_ID_PREFIX="buyer-consent-product",BuyerConsent=({styles:b,builderProps:k,setting:N})=>{let g=f(),{description:j,policyLabel:C,policyLink:x,align:_}=N??{},[v,B]=t(N?.selected),E=g?.id?`buyer-consent-product-${g.id}`:void 0,F=h(x),I=s(c({styles:b})),O=m(n({align:_,uid:k?.uid})),P=s(l({styles:b})),D=m(a()),M=s(d()),R=s(i({styles:b})),T=m(p()),X=m(u(x)),$=s(y()),q=e=>{B(e.target.checked)};return o(()=>{B(N?.selected)},[N?.selected]),e("div",{"data-id":k?.uid,style:I,className:O,children:r("label",{htmlFor:E,style:P,className:D,children:[e("input",{id:E,name:E,type:"checkbox",style:M,className:T,checked:v,onChange:q}),r("bdo",{dir:b?.direction??"ltr",style:R,children:[j," ",e(F,{target:"_blank",rel:"noreferrer",href:x,className:X,style:$,children:C})]})]})})};export{BuyerConsent as default};
1
+ import{jsx as e,jsxs as r}from"react/jsx-runtime";import{useEffect as t}from"react";import{createStyle as s,createClass as o}from"@gem-sdk/system";import{getWrapperStyles as i,getContainerStyles as c,getCheckboxInputStyles as m,getTextStyle as l}from"../common/styles.js";import{getWrapperClassName as d,getCheckboxContainerClassName as n,getCheckboxClassName as a,getLinkComponentClassName as u,getLinkComponentStyles as p}from"../common/classes.js";import{getComponentTag as y}from"../common/helpers.js";import{useProduct as h,useProductStore as f}from"@gem-sdk/core";let COMPONENT_ID_PREFIX="buyer-consent-product",BuyerConsent=({styles:b,builderProps:g,setting:k})=>{let N=h(),j=f(e=>e.isAgreeBuyWithSubscription),B=f(e=>e.setIsAgreeBuyWithSubscription),{description:C,policyLabel:x,policyLink:I,align:_}=k??{},v=N?.id?`buyer-consent-product-${N.id}`:void 0,A=y(I),E=s(i({styles:b})),F=o(d({align:_,uid:g?.uid})),O=s(c({styles:b})),P=o(n()),S=s(m()),W=s(l({styles:b})),D=o(a()),M=o(u()),R=s(p()),T=e=>{B(e.target.checked)};return t(()=>{B(k?.selected??!1)},[B,k?.selected]),e("div",{"data-id":g?.uid,style:E,className:F,children:r("label",{htmlFor:v,style:O,className:P,children:[e("input",{id:v,name:v,type:"checkbox",style:S,className:D,checked:j,onChange:T}),r("bdo",{dir:b?.direction??"ltr",style:W,children:[C," ",e(A,{target:"_blank",rel:"noreferrer",href:I,className:M,style:R,children:x})]})]})})};export{BuyerConsent as default};
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{jsx as t}from"react/jsx-runtime";import{useCurrentVariantInStock as e}from"@gem-sdk/core";import o from"../../button/components/Button.js";import{useGetTextSetting as s}from"../hooks/useGetTextSetting.js";let PostPurchaseAcceptButton=r=>{let m=e(),{text:n}=s(m,r);return t(o,{...r,disabled:!m,setting:{...r.setting,text:n},styles:r.styles})};export{PostPurchaseAcceptButton as default};
2
+ import{jsx as t}from"react/jsx-runtime";import{useCurrentVariantInStock as e}from"@gem-sdk/core";import o from"../../button/components/Button.js";import{useGetTextSetting as s}from"../hooks/useGetTextSetting.js";import{useSubscriptionConsentCheck as r}from"../hooks/useSubscriptionConsentCheck.js";let PostPurchaseAcceptButton=n=>{let i=e(),{isDisableAccept:u}=r(),{text:m}=s({isInStock:i,props:n,isRequireSubscriptionConsent:u});return t(o,{...n,disabled:!i||u,setting:{...n.setting,text:m},styles:n.styles})};export{PostPurchaseAcceptButton as default};
@@ -1 +1 @@
1
- import{usePageStore as o,useProductsQuery as t,flattenConnection as e}from"@gem-sdk/core";import{useDynamicProduct as r}from"../../../hooks/useDynamicProduct.js";import{useMemo as i}from"react";import{hasPublicStoreFrontData as d,createStoreFrontFetcher as n}from"../../../helpers/index.js";import{productOfferPlaceholder as a}from"../../../constants/ProductOfferPlaceholder.js";let useProductOfferData=()=>{let p=o(o=>o.productOffers),u=o(o=>o.publicStoreFrontData),{isDynamicProduct:s}=r(),c=o(o=>o.dynamicDiscountOffer),l=i(()=>s?c?.appliedProductCount:p?.length,[c?.appliedProductCount,s,p?.length]),f=i(()=>p?.sort((o,t)=>o?.node?.position&&t?.node?.position?o.node.position-t.node.position:0).map(o=>o?.node?.objectBaseID).filter(Boolean),[p]),{isLoading:m,isValidating:P,data:D}=t(f||[],{revalidateOnMount:!0},{allStatus:!0,fetcher:d(u)?n(u):void 0}),h=i(()=>m||P,[m,P]),O=i(()=>e(D?.products),[D?.products]),C=i(()=>s&&c?.appliedProductCount?Array(c.appliedProductCount).fill(a):f?.map(o=>O?.find(t=>t?.baseID===o)).filter(Boolean),[s,c?.appliedProductCount,f,O]);return{isLoading:h,productSortedById:C,totalProduct:l}};export{useProductOfferData};
1
+ import{usePageStore as o,useProductOffersQuery as t,flattenConnection as e}from"@gem-sdk/core";import{useDynamicProduct as r}from"../../../hooks/useDynamicProduct.js";import{useMemo as i}from"react";import{hasPublicStoreFrontData as d,createStoreFrontFetcher as n}from"../../../helpers/index.js";import{productOfferPlaceholder as a}from"../../../constants/ProductOfferPlaceholder.js";let useProductOfferData=()=>{let p=o(o=>o.productOffers),u=o(o=>o.publicStoreFrontData),{isDynamicProduct:s}=r(),c=o(o=>o.dynamicDiscountOffer),l=i(()=>s?c?.appliedProductCount:p?.length,[c?.appliedProductCount,s,p?.length]),f=i(()=>p?.sort((o,t)=>o?.node?.position&&t?.node?.position?o.node.position-t.node.position:0).map(o=>o?.node?.objectBaseID).filter(Boolean),[p]),{isLoading:m,isValidating:P,data:D}=t(f||[],{revalidateOnMount:!0},{allStatus:!0,fetcher:d(u)?n(u):void 0}),h=i(()=>m||P,[m,P]),O=i(()=>e(D?.products),[D?.products]),C=i(()=>s&&c?.appliedProductCount?Array(c.appliedProductCount).fill(a):f?.map(o=>O?.find(t=>t?.baseID===o)).filter(Boolean),[s,c?.appliedProductCount,f,O]);return{isLoading:h,productSortedById:C,totalProduct:l}};export{useProductOfferData};
@@ -1 +1 @@
1
- import{jsx as t,jsxs as s}from"react/jsx-runtime";import{createStyle as i,createClass as e}from"@gem-sdk/system";import{getSubscriptionStyles as o,getSubscriptionWrapperStyles as r}from"../common/styles.js";import{getWrapperClasses as l,getContainerClasses as m}from"../common/classes.js";import{SubscriptionDetail as n}from"./SubscriptionDetail.js";import{SellingPlanDropdown as a}from"./SellingPlanDropdown.js";import{SellingPlanRadio as c}from"./SellingPlanRadio.js";import{SellingPlanLabel as p}from"./SellingPlanLabel.js";let ProductSubscription=({styles:d,setting:g})=>{let f=i(o(d,g)),u=i(r(d?.align)),j=e(l()),y=e(m());return t("div",{className:j,style:u,children:s("div",{className:y,style:f,children:[t(p,{setting:g,styles:d}),g?.sellingStyle==="radio"?t(c,{setting:g}):t(a,{setting:g}),t(n,{setting:g,styles:d})]})})};export{ProductSubscription as default};
1
+ import{jsx as t,jsxs as s}from"react/jsx-runtime";import{createStyle as e,createClass as i}from"@gem-sdk/system";import{getSubscriptionStyles as o,getSubscriptionWrapperStyles as r}from"../common/styles.js";import{getWrapperClasses as l,getContainerClasses as m}from"../common/classes.js";import{SubscriptionDetail as n}from"./SubscriptionDetail.js";import{SellingPlanDropdown as p}from"./SellingPlanDropdown.js";import{SellingPlanRadio as a}from"./SellingPlanRadio.js";import{SellingPlanLabel as c}from"./SellingPlanLabel.js";import{useProductStore as g}from"@gem-sdk/core";import{useEffect as d}from"react";import{PostPurchaseSubscriptionSellingType as f}from"../../../constants/index.js";let ProductSubscription=({styles:S,setting:y})=>{let u=g(t=>t.setSubscriptionSellingType),j=e(o(S,y)),P=e(r(S?.align)),b=i(l()),T=i(m());return d(()=>{u(y?.sellingType??f.SUBSCRIPTION)},[u,y?.sellingType]),t("div",{className:b,style:P,children:s("div",{className:T,style:j,children:[t(c,{setting:y,styles:S}),y?.sellingStyle==="radio"?t(a,{setting:y}):t(p,{setting:y}),t(n,{setting:y,styles:S})]})})};export{ProductSubscription as default};
@@ -1 +1 @@
1
- let NEXT_AND_PREV_URLS={},BUTTON_URL_MAP_POST_PURCHASE={next:{vertical:{disabled:"https://cdn.shopify.com/s/files/1/0789/8018/6418/files/472169286689883168-6c7f10a8-a205-43bd-b39c-aab044bb3771.svg",enabled:"https://cdn.shopify.com/s/files/1/0789/8018/6418/files/472169286689883168-a3c3d74c-2cde-49e5-9854-8079f5239013.svg"},horizontal:{disabled:"https://cdn.shopify.com/s/files/1/0789/8018/6418/files/472169286689883168-a3d1f159-001d-4301-bead-214606caf995.svg",enabled:"https://cdn.shopify.com/s/files/1/0789/8018/6418/files/472169286689883168-a5ac0286-5941-4bd7-a21d-72a6c017aeea.svg"}},prev:{vertical:{disabled:"https://cdn.shopify.com/s/files/1/0789/8018/6418/files/472169286689883168-010c3c2a-fcc3-4b09-84a2-734d924ad49b.svg",enabled:"https://cdn.shopify.com/s/files/1/0789/8018/6418/files/472169286689883168-4e4e886a-5aa1-4bb3-ab48-aa7752fd5eba.svg"},horizontal:{disabled:"https://cdn.shopify.com/s/files/1/0789/8018/6418/files/472169286689883168-33e3810b-a94c-40a1-a48b-4eba39013f15.svg",enabled:"https://cdn.shopify.com/s/files/1/0789/8018/6418/files/472169286689883168-a2eb5093-0203-4973-8ade-183d5bdefdce.svg"}}};export{BUTTON_URL_MAP_POST_PURCHASE};
1
+ var PostPurchaseSubscriptionSellingType;let NEXT_AND_PREV_URLS={},BUTTON_URL_MAP_POST_PURCHASE={next:{vertical:{disabled:"https://cdn.shopify.com/s/files/1/0789/8018/6418/files/472169286689883168-6c7f10a8-a205-43bd-b39c-aab044bb3771.svg",enabled:"https://cdn.shopify.com/s/files/1/0789/8018/6418/files/472169286689883168-a3c3d74c-2cde-49e5-9854-8079f5239013.svg"},horizontal:{disabled:"https://cdn.shopify.com/s/files/1/0789/8018/6418/files/472169286689883168-a3d1f159-001d-4301-bead-214606caf995.svg",enabled:"https://cdn.shopify.com/s/files/1/0789/8018/6418/files/472169286689883168-a5ac0286-5941-4bd7-a21d-72a6c017aeea.svg"}},prev:{vertical:{disabled:"https://cdn.shopify.com/s/files/1/0789/8018/6418/files/472169286689883168-010c3c2a-fcc3-4b09-84a2-734d924ad49b.svg",enabled:"https://cdn.shopify.com/s/files/1/0789/8018/6418/files/472169286689883168-4e4e886a-5aa1-4bb3-ab48-aa7752fd5eba.svg"},horizontal:{disabled:"https://cdn.shopify.com/s/files/1/0789/8018/6418/files/472169286689883168-33e3810b-a94c-40a1-a48b-4eba39013f15.svg",enabled:"https://cdn.shopify.com/s/files/1/0789/8018/6418/files/472169286689883168-a2eb5093-0203-4973-8ade-183d5bdefdce.svg"}}};!function(s){s.ONE_TIME="one-time",s.SUBSCRIPTION="subscription"}(PostPurchaseSubscriptionSellingType||(PostPurchaseSubscriptionSellingType={}));export{BUTTON_URL_MAP_POST_PURCHASE,PostPurchaseSubscriptionSellingType};
@@ -1 +1 @@
1
- import{useMemo as t}from"react";let useGetTextSetting=(e,i)=>{let n=t(()=>e?i?.setting?.text:i?.setting?.outOfStockLabel,[e,i?.setting?.text,i?.setting?.outOfStockLabel]);return{text:n}};export{useGetTextSetting};
1
+ import{useMemo as t}from"react";let useGetTextSetting=({isInStock:e,props:r,isRequireSubscriptionConsent:i})=>{let c=t(()=>e?i?r?.setting?.requireAcceptTermLabel??"Accept terms to purchase":r?.setting?.text:r?.setting?.outOfStockLabel,[e,i,r?.setting?.text,r?.setting?.outOfStockLabel,r?.setting?.requireAcceptTermLabel]);return{text:c}};export{useGetTextSetting};
@@ -0,0 +1 @@
1
+ import{useProductStore as e,useProduct as t,useVariants as r}from"@gem-sdk/core";import{useMemo as n}from"react";import{PostPurchaseSubscriptionSellingType as s}from"../constants/index.js";import{checkDefaultVariant as i}from"../../../product/helpers/product.js";let useSubscriptionConsentCheck=()=>{let o=e(e=>e.isAgreeBuyWithSubscription),l=e(e=>e.selectedOptions),p=e(e=>e.subscriptionSellingType),u=t(),c=r(),d=n(()=>{let e=p===s.ONE_TIME;if(o||e)return!1;let t=!!u?.sellingPlanGroups?.length||!!u?.variants?.edges.find(e=>!!e.node?.sellingPlanGroups?.length);if(!t||!l)return!1;let r=i(u);if(!r){let e=c.find(e=>e?.selectedOptions.every(e=>l[e.name??""]===e.value)),t=!!e?.sellingPlanGroups?.length;return t}return!0},[l,p,o,u,c]);return{isDisableAccept:d}};export{useSubscriptionConsentCheck};
@@ -1 +1 @@
1
- import"react/jsx-runtime";import"@gem-sdk/core";import"@gem-sdk/system";import"react";import"./components/product-variant/components/variants/VariantItem.js";import"next/link";import"next/head";import"next/image";import"react-youtube";import"../image/components/Img.js";import t from"./settings/product-title/ProductTitle.js";import r from"./settings/product-description/ProductDescription.js";import o from"./settings/product-price/ProductPrice.js";import s from"./settings/product-variants/ProductVariant.js";import i from"./settings/accept-button/index.js";import e from"./settings/product-quantity/index.js";import c from"./settings/product-offer/index.js";import u from"./settings/product-price-breakdown/index.js";import n from"./settings/product-discount-tag/ProductDiscountTag.js";import p from"./settings/product-subscription/index.js";import m from"./settings/product-image/ProductImages.js";let postPurchaseProductSetting={PostPurchaseProductTitle:t,PostPurchaseProductDescription:r,PostPurchaseProductPrice:o,PostPurchaseProductVariants:s,PostPurchaseAcceptButton:i,PostPurchaseProductQuantity:e,PostPurchaseProductPriceBreakdown:u,PostPurchaseProductOffer:c,PostPurchaseProductDiscountTag:n,PostPurchaseProductImages:m,PostPurchaseProductSubscription:p};export{postPurchaseProductSetting};
1
+ import"react/jsx-runtime";import"@gem-sdk/core";import"@gem-sdk/system";import"react";import"./components/product-variant/components/variants/VariantItem.js";import"next/link";import"./constants/index.js";import"next/head";import"next/image";import"react-youtube";import"../image/components/Img.js";import t from"./settings/product-title/ProductTitle.js";import r from"./settings/product-description/ProductDescription.js";import o from"./settings/product-price/ProductPrice.js";import s from"./settings/product-variants/ProductVariant.js";import i from"./settings/accept-button/index.js";import e from"./settings/product-quantity/index.js";import c from"./settings/product-offer/index.js";import u from"./settings/product-price-breakdown/index.js";import n from"./settings/product-discount-tag/ProductDiscountTag.js";import p from"./settings/product-subscription/index.js";import m from"./settings/product-image/ProductImages.js";let postPurchaseProductSetting={PostPurchaseProductTitle:t,PostPurchaseProductDescription:r,PostPurchaseProductPrice:o,PostPurchaseProductVariants:s,PostPurchaseAcceptButton:i,PostPurchaseProductQuantity:e,PostPurchaseProductPriceBreakdown:u,PostPurchaseProductOffer:c,PostPurchaseProductDiscountTag:n,PostPurchaseProductImages:m,PostPurchaseProductSubscription:p};export{postPurchaseProductSetting};
@@ -2556,6 +2556,7 @@ type PostPurchaseButtonSettingProps = {
2556
2556
  text?: string | number;
2557
2557
  buttonType?: 'primary' | 'secondary' | 'link';
2558
2558
  outOfStockLabel?: string;
2559
+ requireAcceptTermLabel?: string;
2559
2560
  };
2560
2561
  type PostPurchaseButtonStyleProps = {
2561
2562
  typo?: PostPurchaseTypo;
@@ -2569,6 +2570,7 @@ declare const Button$2: ({ styles, builderAttrs, style, setting, advanced, build
2569
2570
  text?: string | number | undefined;
2570
2571
  buttonType?: "link" | "primary" | "secondary" | undefined;
2571
2572
  outOfStockLabel?: string | undefined;
2573
+ requireAcceptTermLabel?: string | undefined;
2572
2574
  }, {
2573
2575
  typo?: _gem_sdk_core.PostPurchaseTypo | undefined;
2574
2576
  align?: "center" | "end" | "start" | undefined;
@@ -6322,6 +6324,7 @@ declare const _default$3: {
6322
6324
  text?: string | number | undefined;
6323
6325
  buttonType?: "link" | "primary" | "secondary" | undefined;
6324
6326
  outOfStockLabel?: string | undefined;
6327
+ requireAcceptTermLabel?: string | undefined;
6325
6328
  }, {
6326
6329
  typo?: _gem_sdk_core.PostPurchaseTypo | undefined;
6327
6330
  align?: "center" | "end" | "start" | undefined;
@@ -7496,6 +7499,7 @@ declare const _default$2: {
7496
7499
  text?: string | number | undefined;
7497
7500
  buttonType?: "link" | "primary" | "secondary" | undefined;
7498
7501
  outOfStockLabel?: string | undefined;
7502
+ requireAcceptTermLabel?: string | undefined;
7499
7503
  }, {
7500
7504
  typo?: _gem_sdk_core.PostPurchaseTypo | undefined;
7501
7505
  align?: "center" | "end" | "start" | undefined;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gem-sdk/components",
3
- "version": "8.0.0-dev.102",
3
+ "version": "8.0.0-dev.106",
4
4
  "license": "MIT",
5
5
  "sideEffects": false,
6
6
  "main": "dist/cjs/index.js",
@@ -26,9 +26,9 @@
26
26
  "i18n:generate": "node ./scripts/update-locales-to-setting.js"
27
27
  },
28
28
  "devDependencies": {
29
- "@gem-sdk/core": "8.0.0-dev.102",
30
- "@gem-sdk/styles": "8.0.0-dev.99",
31
- "@gem-sdk/system": "8.0.0-dev.99",
29
+ "@gem-sdk/core": "8.0.0-dev.107",
30
+ "@gem-sdk/styles": "8.0.0-dev.106",
31
+ "@gem-sdk/system": "8.0.0-dev.106",
32
32
  "@types/react-transition-group": "^4.4.12",
33
33
  "tsup": "^8.5.0",
34
34
  "postcss-import": "^16.1.1",