@gem-sdk/core 2.0.0-staging.872 → 2.0.0-staging.877

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,2 +1,2 @@
1
1
  'use client';
2
- "use strict";var jsxRuntime=require("react/jsx-runtime"),react=require("react"),zustand=require("zustand");require("swr"),require("@gem-sdk/adapter-shopify"),require("swr/mutation"),require("swr/infinite"),require("vanilla-lazyload"),require("../hooks/useCartUI.js"),require("../hooks/useStickyStore.js");var variant=require("../helpers/variant.js");require("react-transition-group"),require("@gem-sdk/core"),require("classnames"),require("dayjs");var flattenConnection=require("../helpers/flatten-connection.js");require("../helpers/convert.js");const ProductContext=react.createContext(null),createProductStoreProvider=e=>zustand.createStore((t,r)=>({...e,updateProperty:(e,r)=>{t(t=>({properties:t.properties?.map(t=>t.key===e?{...t,...r}:t)}))},setUseProductCompareAtPrice:e=>{t({useProductCompareAtPrice:e})},setShouldRequireUploadMessage:e=>{t({shouldRequireUploadMessage:e})},setRequireUpload:e=>{t({requireUpload:e})},addProperty:e=>{let i=r().properties;i?.some(t=>t.key===e.key)||t(t=>({properties:[...t.properties??[],e]}))},removeProperty:e=>{t(t=>({properties:t.properties?.filter(t=>t.key!==e)}))},setQuantity:e=>{t({quantity:e>0?e:1})},setProductFeaturedImage:e=>{t({featuredImageGlobal:e})},incrementQuantity:()=>{t(e=>{let t=e.quantity??1;return{quantity:t+1}})},decrementQuantity:()=>{t(e=>{let t=e.quantity??1;return{quantity:t>2?t-1:1}})},setSelectedOption:(e,r)=>{t(t=>e&&r?{selectedOptions:{...t?.selectedOptions,[e]:r}}:t)},forceSelectedOption:e=>{t(t=>({selectedOptions:{...t?.selectedOptions,...e}}))},updateIsSubmit:e=>{t({isSubmit:e})},setHasUpdatePriceFollowQuantity:e=>{t({updatePrice:e})},setHasPreSelected:e=>{t({hasPreSelected:e})},setIsChangeSelectedOption:e=>{t({isChangeSelectedOption:e})}})),ProductProvider=({children:e,product:t,initialVariantId:r,quantity:i=1,isSyncProduct:o,hasPreSelected:s})=>{let u=react.useId(),a=react.useMemo(()=>{let e,a={};if(t){let i=flattenConnection.flattenConnection(t.variants),o=i[0],s=i.find(e=>variant.checkInStock(e)),u=i.find(e=>e?.id===r)??s??o;a=u?.selectedOptions?.reduce((e,t)=>t.name?{...e,[t.name]:t.value}:e,{}),e=t.medias?.edges.find(e=>e.node?.id===u?.mediaId)?.node??t.featuredImage}return createProductStoreProvider({product:t,quantity:i,selectedOptions:a,uiqueId:u,featuredImageGlobal:e,isSyncProduct:o,hasPreSelected:s})},[t,i,u,o,s,r]);return jsxRuntime.jsx(ProductContext.Provider,{value:a,children:jsxRuntime.jsx(jsxRuntime.Fragment,{children:e})})},useProductStore=(e,t)=>{let r=react.useContext(ProductContext);if(!r)throw Error("Element of product must be used inside a Product");return zustand.useStore(r,e,t)};exports.ProductProvider=ProductProvider,exports.useProductStore=useProductStore;
2
+ "use strict";var jsxRuntime=require("react/jsx-runtime"),react=require("react"),zustand=require("zustand");require("swr"),require("@gem-sdk/adapter-shopify"),require("swr/mutation"),require("swr/infinite"),require("vanilla-lazyload"),require("../hooks/useCartUI.js"),require("../hooks/useStickyStore.js");var variant=require("../helpers/variant.js");require("react-transition-group"),require("@gem-sdk/core"),require("classnames"),require("dayjs");var flattenConnection=require("../helpers/flatten-connection.js");require("../helpers/convert.js");const ProductContext=react.createContext(null),createProductStoreProvider=e=>zustand.createStore((t,r)=>({...e,updateProperty:(e,r)=>{t(t=>({properties:t.properties?.map(t=>t.key===e?{...t,...r}:t)}))},setUseProductCompareAtPrice:e=>{t({useProductCompareAtPrice:e})},setShouldRequireUploadMessage:e=>{t({shouldRequireUploadMessage:e})},setRequireUpload:e=>{t({requireUpload:e})},addProperty:e=>{let i=r().properties;i?.some(t=>t.key===e.key)||t(t=>({properties:[...t.properties??[],e]}))},removeProperty:e=>{t(t=>({properties:t.properties?.filter(t=>t.key!==e)}))},setQuantity:e=>{t({quantity:e>0?e:1})},setProductFeaturedImage:e=>{t({featuredImageGlobal:e})},incrementQuantity:()=>{t(e=>{let t=e.quantity??1;return{quantity:t+1}})},decrementQuantity:()=>{t(e=>{let t=e.quantity??1;return{quantity:t>2?t-1:1}})},setSelectedOption:(e,r)=>{t(t=>e&&r?{selectedOptions:{...t?.selectedOptions,[e]:r}}:t)},forceSelectedOption:e=>{t(t=>({selectedOptions:{...t?.selectedOptions,...e}}))},updateIsSubmit:e=>{t({isSubmit:e})},setHasUpdatePriceFollowQuantity:e=>{t({updatePrice:e})},setHasPreSelected:e=>{t({hasPreSelected:e})},setIsChangeSelectedOption:e=>{t({isChangeSelectedOption:e})}})),ProductProvider=({children:e,product:t,initialVariantId:r,initialVariantBaseId:i,quantity:o=1,isSyncProduct:s,hasPreSelected:u})=>{let a=react.useId(),n=react.useMemo(()=>{let e,n={};if(t){let o=flattenConnection.flattenConnection(t.variants),s=o[0],u=o.find(e=>variant.checkInStock(e)),a=o.find(e=>e?.id===r||e?.baseID===i)??u??s;n=a?.selectedOptions?.reduce((e,t)=>t.name?{...e,[t.name]:t.value}:e,{}),e=t.medias?.edges.find(e=>e.node?.id===a?.mediaId)?.node??t.featuredImage}return createProductStoreProvider({product:t,quantity:o,selectedOptions:n,uiqueId:a,featuredImageGlobal:e,isSyncProduct:s,hasPreSelected:u})},[t,o,a,s,u,r]);return jsxRuntime.jsx(ProductContext.Provider,{value:n,children:jsxRuntime.jsx(jsxRuntime.Fragment,{children:e})})},useProductStore=(e,t)=>{let r=react.useContext(ProductContext);if(!r)throw Error("Element of product must be used inside a Product");return zustand.useStore(r,e,t)};exports.ProductProvider=ProductProvider,exports.useProductStore=useProductStore;
@@ -1,2 +1,2 @@
1
1
  'use client';
2
- import{jsx as e,Fragment as t}from"react/jsx-runtime";import{useId as r,useMemo as o,useContext as i,createContext as s}from"react";import{useStore as d,createStore as a}from"zustand";import"swr";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"swr/infinite";import"vanilla-lazyload";import"../hooks/useCartUI.js";import"../hooks/useStickyStore.js";import{checkInStock as p}from"../helpers/variant.js";import"react-transition-group";import"@gem-sdk/core";import"classnames";import"dayjs";import{flattenConnection as n}from"../helpers/flatten-connection.js";import"../helpers/convert.js";let ProductContext=s(null),createProductStoreProvider=e=>a((t,r)=>({...e,updateProperty:(e,r)=>{t(t=>({properties:t.properties?.map(t=>t.key===e?{...t,...r}:t)}))},setUseProductCompareAtPrice:e=>{t({useProductCompareAtPrice:e})},setShouldRequireUploadMessage:e=>{t({shouldRequireUploadMessage:e})},setRequireUpload:e=>{t({requireUpload:e})},addProperty:e=>{let o=r().properties;o?.some(t=>t.key===e.key)||t(t=>({properties:[...t.properties??[],e]}))},removeProperty:e=>{t(t=>({properties:t.properties?.filter(t=>t.key!==e)}))},setQuantity:e=>{t({quantity:e>0?e:1})},setProductFeaturedImage:e=>{t({featuredImageGlobal:e})},incrementQuantity:()=>{t(e=>{let t=e.quantity??1;return{quantity:t+1}})},decrementQuantity:()=>{t(e=>{let t=e.quantity??1;return{quantity:t>2?t-1:1}})},setSelectedOption:(e,r)=>{t(t=>e&&r?{selectedOptions:{...t?.selectedOptions,[e]:r}}:t)},forceSelectedOption:e=>{t(t=>({selectedOptions:{...t?.selectedOptions,...e}}))},updateIsSubmit:e=>{t({isSubmit:e})},setHasUpdatePriceFollowQuantity:e=>{t({updatePrice:e})},setHasPreSelected:e=>{t({hasPreSelected:e})},setIsChangeSelectedOption:e=>{t({isChangeSelectedOption:e})}})),ProductProvider=({children:i,product:s,initialVariantId:d,quantity:a=1,isSyncProduct:u,hasPreSelected:l})=>{let c=r(),m=o(()=>{let e,t={};if(s){let r=n(s.variants),o=r[0],i=r.find(e=>p(e)),a=r.find(e=>e?.id===d)??i??o;t=a?.selectedOptions?.reduce((e,t)=>t.name?{...e,[t.name]:t.value}:e,{}),e=s.medias?.edges.find(e=>e.node?.id===a?.mediaId)?.node??s.featuredImage}return createProductStoreProvider({product:s,quantity:a,selectedOptions:t,uiqueId:c,featuredImageGlobal:e,isSyncProduct:u,hasPreSelected:l})},[s,a,c,u,l,d]);return e(ProductContext.Provider,{value:m,children:e(t,{children:i})})},useProductStore=(e,t)=>{let r=i(ProductContext);if(!r)throw Error("Element of product must be used inside a Product");return d(r,e,t)};export{ProductProvider,useProductStore};
2
+ import{jsx as e,Fragment as t}from"react/jsx-runtime";import{useId as r,useMemo as o,useContext as i,createContext as s}from"react";import{useStore as d,createStore as a}from"zustand";import"swr";import"@gem-sdk/adapter-shopify";import"swr/mutation";import"swr/infinite";import"vanilla-lazyload";import"../hooks/useCartUI.js";import"../hooks/useStickyStore.js";import{checkInStock as p}from"../helpers/variant.js";import"react-transition-group";import"@gem-sdk/core";import"classnames";import"dayjs";import{flattenConnection as n}from"../helpers/flatten-connection.js";import"../helpers/convert.js";let ProductContext=s(null),createProductStoreProvider=e=>a((t,r)=>({...e,updateProperty:(e,r)=>{t(t=>({properties:t.properties?.map(t=>t.key===e?{...t,...r}:t)}))},setUseProductCompareAtPrice:e=>{t({useProductCompareAtPrice:e})},setShouldRequireUploadMessage:e=>{t({shouldRequireUploadMessage:e})},setRequireUpload:e=>{t({requireUpload:e})},addProperty:e=>{let o=r().properties;o?.some(t=>t.key===e.key)||t(t=>({properties:[...t.properties??[],e]}))},removeProperty:e=>{t(t=>({properties:t.properties?.filter(t=>t.key!==e)}))},setQuantity:e=>{t({quantity:e>0?e:1})},setProductFeaturedImage:e=>{t({featuredImageGlobal:e})},incrementQuantity:()=>{t(e=>{let t=e.quantity??1;return{quantity:t+1}})},decrementQuantity:()=>{t(e=>{let t=e.quantity??1;return{quantity:t>2?t-1:1}})},setSelectedOption:(e,r)=>{t(t=>e&&r?{selectedOptions:{...t?.selectedOptions,[e]:r}}:t)},forceSelectedOption:e=>{t(t=>({selectedOptions:{...t?.selectedOptions,...e}}))},updateIsSubmit:e=>{t({isSubmit:e})},setHasUpdatePriceFollowQuantity:e=>{t({updatePrice:e})},setHasPreSelected:e=>{t({hasPreSelected:e})},setIsChangeSelectedOption:e=>{t({isChangeSelectedOption:e})}})),ProductProvider=({children:i,product:s,initialVariantId:d,initialVariantBaseId:a,quantity:u=1,isSyncProduct:l,hasPreSelected:c})=>{let m=r(),P=o(()=>{let e,t={};if(s){let r=n(s.variants),o=r[0],i=r.find(e=>p(e)),u=r.find(e=>e?.id===d||e?.baseID===a)??i??o;t=u?.selectedOptions?.reduce((e,t)=>t.name?{...e,[t.name]:t.value}:e,{}),e=s.medias?.edges.find(e=>e.node?.id===u?.mediaId)?.node??s.featuredImage}return createProductStoreProvider({product:s,quantity:u,selectedOptions:t,uiqueId:m,featuredImageGlobal:e,isSyncProduct:l,hasPreSelected:c})},[s,u,m,l,c,d]);return e(ProductContext.Provider,{value:P,children:e(t,{children:i})})},useProductStore=(e,t)=>{let r=i(ProductContext);if(!r)throw Error("Element of product must be used inside a Product");return d(r,e,t)};export{ProductProvider,useProductStore};
@@ -34818,6 +34818,7 @@ type ProductContextProps = {
34818
34818
  };
34819
34819
  type ProductProviderProps = Pick<ProductContextProps, 'product' | 'quantity' | 'selectedOptions' | 'isSyncProduct' | 'hasPreSelected'> & {
34820
34820
  initialVariantId?: string;
34821
+ initialVariantBaseId?: string;
34821
34822
  readOnly?: boolean;
34822
34823
  children: React.ReactNode;
34823
34824
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gem-sdk/core",
3
- "version": "2.0.0-staging.872",
3
+ "version": "2.0.0-staging.877",
4
4
  "license": "MIT",
5
5
  "sideEffects": false,
6
6
  "main": "dist/cjs/index.js",