@crossmint/client-sdk-react-ui 1.1.10 → 1.1.11

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/README.md CHANGED
@@ -11,7 +11,7 @@ If you're using React.js, or Next.js, Crossmint provides a client integration sp
11
11
  First, add the Crossmint Client SDK to your project with the following command:
12
12
 
13
13
  ```shell
14
- yarn add @crossmint/client-sdk-react-ui
14
+ pnpm add @crossmint/client-sdk-react-ui
15
15
  ```
16
16
 
17
17
  ### Add payment button to your site
package/dist/index.cjs CHANGED
@@ -1,2 +1,2 @@
1
- "use strict";var Be=Object.create;var y=Object.defineProperty;var Oe=Object.getOwnPropertyDescriptor;var Le=Object.getOwnPropertyNames,P=Object.getOwnPropertySymbols,Me=Object.getPrototypeOf,D=Object.prototype.hasOwnProperty,J=Object.prototype.propertyIsEnumerable;var z=(e,t,o)=>t in e?y(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,c=(e,t)=>{for(var o in t||(t={}))D.call(t,o)&&z(e,o,t[o]);if(P)for(var o of P(t))J.call(t,o)&&z(e,o,t[o]);return e};var S=(e,t)=>{var o={};for(var n in e)D.call(e,n)&&t.indexOf(n)<0&&(o[n]=e[n]);if(e!=null&&P)for(var n of P(e))t.indexOf(n)<0&&J.call(e,n)&&(o[n]=e[n]);return o};var _e=(e,t)=>{for(var o in t)y(e,o,{get:t[o],enumerable:!0})},K=(e,t,o,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of Le(t))!D.call(e,a)&&a!==o&&y(e,a,{get:()=>t[a],enumerable:!(n=Oe(t,a))||n.enumerable});return e};var T=(e,t,o)=>(o=e!=null?Be(Me(e)):{},K(t||!e||!e.__esModule?y(o,"default",{value:e,enumerable:!0}):o,e)),He=e=>K(y({},"__esModule",{value:!0}),e);var w=(e,t,o)=>new Promise((n,a)=>{var l=i=>{try{u(o.next(i))}catch(r){a(r)}},C=i=>{try{u(o.throw(i))}catch(r){a(r)}},u=i=>i.done?n(i.value):Promise.resolve(i.value).then(l,C);u((o=o.apply(e,t)).next())});var Ge={};_e(Ge,{CrossmintEvents:()=>O.CrossmintEvents,CrossmintNFTCollectionView:()=>De,CrossmintNFTDetail:()=>Ve,CrossmintPayButton:()=>Ye,CrossmintPaymentElement:()=>Ue,useCrossmintEvents:()=>O.useCrossmintEvents});module.exports=He(Ge);var v=require("@crossmint/client-sdk-base");var f="1.1.10";var Q=require("react/jsx-runtime");function De(e){(0,v.assertValidNFTCollectionViewProps)(e);let t=(0,v.getNFTCollectionViewSrc)(e,f);return(0,Q.jsx)("iframe",{src:t,width:"100%",height:"100%",style:{flexGrow:"1",border:"none",margin:"0",padding:"0"},role:"nft-collection-view"})}var F=require("@crossmint/client-sdk-base");var X=require("react/jsx-runtime");function Ve(e){(0,F.assertValidValidateNFTDetailProps)(e);let t=(0,F.getNFTDetailSrc)(e,f);return(0,X.jsx)("iframe",{src:t,width:"100%",height:"100%",style:{flexGrow:"1",border:"none",margin:"0",padding:"0"},role:"nft-details"})}var R=require("@crossmint/client-sdk-base");var oe=require("@crossmint/client-sdk-base");var Z=T(require("lodash.isequal"),1),x=require("react");function V(e,t){let o=(0,x.useRef)(t);(0,x.useEffect)(()=>{if(t.some((a,l)=>!(0,Z.default)(a,o.current[l])))return o.current=t,e()},[t])}var ee=T(require("bs58"),1),d=require("@crossmint/client-sdk-base");var g=require("react"),N=require("@crossmint/client-sdk-base");var j=require("react/jsx-runtime");function b(o){var n=o,{onInternalEvent:e}=n,t=S(n,["onInternalEvent"]);let{getUrl:a,listenToEvents:l,listenToInternalEvents:C}=(0,N.crossmintIFrameService)(t),[u,i]=(0,g.useState)(0),[r]=(0,g.useState)(a(t));return(0,g.useEffect)(()=>{let m=l(s=>{var p;return(p=t.onEvent)==null?void 0:p.call(t,s.data)});return()=>{m()}},[]),(0,g.useEffect)(()=>{let m=C(s=>{let{type:p,payload:L}=s.data;p===N.IncomingInternalEvents.UI_HEIGHT_CHANGED&&i(L.height),e==null||e(s.data)});return()=>{m()}},[]),(0,j.jsx)("iframe",{src:r,id:"crossmint-embedded-checkout.iframe",role:"crossmint-embedded-checkout.iframe",allow:"payment *",style:{boxShadow:"none",border:"none",padding:"0px",width:"100%",minWidth:"100%",overflow:"hidden",display:"block",userSelect:"none",transform:"translate(0px)",opacity:"1",transition:"ease 0s, opacity 0.4s ease 0.1s",height:`${u}px`}})}var te=require("react/jsx-runtime");function U(e){let{emitInternalEvent:t}=(0,d.crossmintIFrameService)(e),{signer:o,paymentMethod:n}=e;function a(i){let{type:r,payload:m}=i;if(r===d.IncomingInternalEvents.CRYPTO_PAYMENT_INCOMING_TRANSACTION){let{serializedTransaction:s}=m;console.log("[Crossmint] Received incoming transaction",s),l(s)}if(r===d.IncomingInternalEvents.CRYPTO_CHAIN_SWITCH){let{chain:s}=m;console.log("[Crossmint] Received change of chain",s);let p=o.handleChainSwitch;if(p==null)throw new Error("switchNetwork function should have been defined");p(s)}}function l(i){return w(this,null,function*(){try{let r;switch(n){case"SOL":r=yield C(o,i);break;case"ETH":r=yield u(o,i);break;default:throw new Error(`Unsupported payment method ${n}`)}console.log("[Crossmint] Signed and sent transaction",r),t({type:d.OutgoingInternalEvents.CRYPTO_PAYMENT_USER_ACCEPTED,payload:{txId:r}})}catch(r){console.error("[Crossmint] Failed to sign and send transaction",r),t({type:d.OutgoingInternalEvents.CRYPTO_PAYMENT_USER_REJECTED,payload:{}})}})}function C(i,r){return w(this,null,function*(){let{Transaction:m}=yield import("@solana/web3.js"),s=m.from(ee.default.decode(r));return console.log("[Crossmint] Deserialized SOL transaction",s),yield i.signAndSendTransaction(s)})}function u(i,r){return w(this,null,function*(){let{parse:m}=yield import("@ethersproject/transactions"),s=m(r);return console.log("[Crossmint] Deserialized ETH transaction",s),yield i.signAndSendTransaction(s)})}return V(()=>{t({type:"params-update",payload:(0,d.embeddedCheckoutPropsToUpdatableParamsPayload)(e)})},[e.signer.address,e.recipient,e.mintConfig,e.locale,e.currency,e.whPassThroughArgs,..."chain"in e.signer?[e.signer.chain]:[]]),(0,te.jsx)(b,c({onInternalEvent:a},e))}var re=require("react/jsx-runtime");function ne(e){if(!(0,oe.isCryptoEmbeddedCheckoutPropsWithSigner)(e))throw new Error("Invalid parameters: signer is required in versions < 2.0.0");return(0,re.jsx)(U,c({},e))}var ie=require("react/jsx-runtime");function A(e){return(0,ie.jsx)(b,c({},e))}var ae=require("react/jsx-runtime");function se(e){return(0,ae.jsx)(A,c({},e))}var Y=require("react/jsx-runtime");function Ue(e){if((0,R.isFiatEmbeddedCheckoutProps)(e))return(0,Y.jsx)(se,c({},e));if((0,R.isCryptoEmbeddedCheckoutProps)(e))return(0,Y.jsx)(ne,c({},e));throw new Error("Unsupported: Fiat is the only supported payment method.")}var ue=require("react"),pe=require("react"),E=require("@crossmint/client-sdk-base");var B=require("react");function G(){let[e,t]=(0,B.useState)(!0);return(0,B.useEffect)(()=>{t(!1)},[]),{isServerSideRendering:e}}var me=require("react-jss"),Ae="#1e1e1e",ce=e=>e==="light",de=e=>({buttonBgColor:ce(e)?"white":Ae,paragraphColor:ce(e)?"black":"white"}),le=(0,me.createUseStyles)({"@global":{"@import":"url('https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap')"},crossmintButton:{display:"flex","flex-direction":"row","align-items":"center",padding:"0.875rem 0.875rem","font-weight":"900",transition:"opacity ease-in-out 0.25s","border-radius":"0.5rem","font-family":'"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif',outline:"none",border:"none","box-shadow":"0px 8px 15px rgba(0, 0, 0, 0.1)","justify-content":"center",background:({buttonBgColor:e})=>e,"&:hover:enabled":{opacity:"0.6",cursor:"pointer"}},crossmintImg:{width:"21px",height:"21px","margin-right":"0.875rem"},crossmintParagraph:{color:({paragraphColor:e})=>e,margin:"0"}});var h=require("react/jsx-runtime");function Ye(e){let q=e,{className:t,disabled:o,onClick:n,style:a,tabIndex:l,theme:C="dark",mintTo:u,emailTo:i,listingId:r,auctionId:m,showOverlay:s=!0,mintConfig:p,whPassThroughArgs:L,environment:he,paymentMethod:I,preferredSigninMethod:Ce,dismissOverlayOnClick:fe,prepay:ge,locale:W="en-US",currency:Ee="usd",successCallbackURL:ye="",failureCallbackURL:be="",loginEmail:Ie="",projectId:ke,getButtonText:M,checkoutProps:$={experimental:!1,display:"same-tab",paymentMethods:["fiat","ETH","SOL"]}}=q,_=S(q,["className","disabled","onClick","style","tabIndex","theme","mintTo","emailTo","listingId","auctionId","showOverlay","mintConfig","whPassThroughArgs","environment","paymentMethod","preferredSigninMethod","dismissOverlayOnClick","prepay","locale","currency","successCallbackURL","failureCallbackURL","loginEmail","projectId","getButtonText","checkoutProps"]),Pe="clientId"in _?_.clientId:_.collectionId,[k,Se]=(0,pe.useState)(!1),{isServerSideRendering:Te}=G(),{connect:we}=(0,E.crossmintModalService)({clientId:Pe,projectId:ke,showOverlay:s,dismissOverlayOnClick:fe,setConnecting:Se,libVersion:f,environment:he,clientName:E.clientNames.reactUi,locale:W,currency:Ee,successCallbackURL:ye,failureCallbackURL:be,loginEmail:Ie}),{getButtonText:ve,handleClick:Fe}=(0,E.crossmintPayButtonService)({onClick:n,connecting:k,paymentMethod:I,locale:W,checkoutProps:$}),xe=Re=>Fe(Re,()=>{we(p,u,i,r,L,I,Ce,ge,$)}),H=le(de(C)),Ne=(0,ue.useMemo)(()=>(0,h.jsx)("span",{className:H.crossmintParagraph,role:"button-paragraph",children:M!=null?M(k,I||"fiat"):ve(k)}),[k,M,I]);return(0,h.jsx)(h.Fragment,{children:!Te&&(0,h.jsxs)("button",{className:`${H.crossmintButton} ${t||""}`,disabled:o,onClick:xe,style:c({},a),tabIndex:l,children:[(0,h.jsx)("img",{className:H.crossmintImg,src:"https://www.crossmint.io/assets/crossmint/logo.svg",alt:"Crossmint logo"}),Ne]})})}var O=require("@crossmint/client-sdk-base");0&&(module.exports={CrossmintEvents,CrossmintNFTCollectionView,CrossmintNFTDetail,CrossmintPayButton,CrossmintPaymentElement,useCrossmintEvents});
1
+ "use strict";var Bt=Object.create;var y=Object.defineProperty;var Ot=Object.getOwnPropertyDescriptor;var Lt=Object.getOwnPropertyNames,S=Object.getOwnPropertySymbols,Mt=Object.getPrototypeOf,D=Object.prototype.hasOwnProperty,J=Object.prototype.propertyIsEnumerable;var z=(t,e,o)=>e in t?y(t,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[e]=o,c=(t,e)=>{for(var o in e||(e={}))D.call(e,o)&&z(t,o,e[o]);if(S)for(var o of S(e))J.call(e,o)&&z(t,o,e[o]);return t};var k=(t,e)=>{var o={};for(var n in t)D.call(t,n)&&e.indexOf(n)<0&&(o[n]=t[n]);if(t!=null&&S)for(var n of S(t))e.indexOf(n)<0&&J.call(t,n)&&(o[n]=t[n]);return o};var _t=(t,e)=>{for(var o in e)y(t,o,{get:e[o],enumerable:!0})},K=(t,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of Lt(e))!D.call(t,a)&&a!==o&&y(t,a,{get:()=>e[a],enumerable:!(n=Ot(e,a))||n.enumerable});return t};var T=(t,e,o)=>(o=t!=null?Bt(Mt(t)):{},K(e||!t||!t.__esModule?y(o,"default",{value:t,enumerable:!0}):o,t)),Ht=t=>K(y({},"__esModule",{value:!0}),t);var w=(t,e,o)=>new Promise((n,a)=>{var l=s=>{try{u(o.next(s))}catch(r){a(r)}},C=s=>{try{u(o.throw(s))}catch(r){a(r)}},u=s=>s.done?n(s.value):Promise.resolve(s.value).then(l,C);u((o=o.apply(t,e)).next())});var Wt={};_t(Wt,{CrossmintEvents:()=>O.CrossmintEvents,CrossmintNFTCollectionView:()=>Dt,CrossmintNFTDetail:()=>Vt,CrossmintPayButton:()=>Gt,CrossmintPaymentElement:()=>Ut,useCrossmintEvents:()=>O.useCrossmintEvents});module.exports=Ht(Wt);var v=require("@crossmint/client-sdk-base");var g="1.1.11";var Q=require("react/jsx-runtime");function Dt(t){(0,v.assertValidNFTCollectionViewProps)(t);let e=(0,v.getNFTCollectionViewSrc)(t,g);return(0,Q.jsx)("iframe",{src:e,width:"100%",height:"100%",style:{flexGrow:"1",border:"none",margin:"0",padding:"0"},role:"nft-collection-view"})}var x=require("@crossmint/client-sdk-base");var X=require("react/jsx-runtime");function Vt(t){(0,x.assertValidValidateNFTDetailProps)(t);let e=(0,x.getNFTDetailSrc)(t,g);return(0,X.jsx)("iframe",{src:e,width:"100%",height:"100%",style:{flexGrow:"1",border:"none",margin:"0",padding:"0"},role:"nft-details"})}var R=require("@crossmint/client-sdk-base");var ot=require("@crossmint/client-sdk-base");var Z=T(require("lodash.isequal"),1),F=require("react");function V(t,e){let o=(0,F.useRef)(e);(0,F.useEffect)(()=>{if(e.some((a,l)=>!(0,Z.default)(a,o.current[l])))return o.current=e,t()},[e])}var tt=T(require("bs58"),1),d=require("@crossmint/client-sdk-base");var f=require("react"),N=require("@crossmint/client-sdk-base");var j=require("react/jsx-runtime");function b(o){var n=o,{onInternalEvent:t}=n,e=k(n,["onInternalEvent"]);let{getUrl:a,listenToEvents:l,listenToInternalEvents:C}=(0,N.crossmintIFrameService)(e),[u,s]=(0,f.useState)(0),[r]=(0,f.useState)(a(e));return(0,f.useEffect)(()=>{let m=l(i=>{var p;return(p=e.onEvent)==null?void 0:p.call(e,i.data)});return()=>{m()}},[]),(0,f.useEffect)(()=>{let m=C(i=>{let{type:p,payload:L}=i.data;p===N.IncomingInternalEvents.UI_HEIGHT_CHANGED&&s(L.height),t==null||t(i.data)});return()=>{m()}},[]),(0,j.jsx)("iframe",{src:r,id:"crossmint-embedded-checkout.iframe",role:"crossmint-embedded-checkout.iframe",allow:"payment *",style:{boxShadow:"none",border:"none",padding:"0px",width:"100%",minWidth:"100%",overflow:"hidden",display:"block",userSelect:"none",transform:"translate(0px)",opacity:"1",transition:"ease 0s, opacity 0.4s ease 0.1s",height:`${u}px`}})}var et=require("react/jsx-runtime");function U(t){let{emitInternalEvent:e}=(0,d.crossmintIFrameService)(t),{signer:o,paymentMethod:n}=t;function a(s){let{type:r,payload:m}=s;if(r===d.IncomingInternalEvents.CRYPTO_PAYMENT_INCOMING_TRANSACTION){let{serializedTransaction:i}=m;console.log("[Crossmint] Received incoming transaction",i),l(i)}if(r===d.IncomingInternalEvents.CRYPTO_CHAIN_SWITCH){let{chain:i}=m;console.log("[Crossmint] Received change of chain",i);let p=o.handleChainSwitch;if(p==null)throw new Error("switchNetwork function should have been defined");p(i)}}function l(s){return w(this,null,function*(){try{let r;switch(n){case"SOL":r=yield C(o,s);break;case"ETH":r=yield u(o,s);break;default:throw new Error(`Unsupported payment method ${n}`)}console.log("[Crossmint] Signed and sent transaction",r),e({type:d.OutgoingInternalEvents.CRYPTO_PAYMENT_USER_ACCEPTED,payload:{txId:r}})}catch(r){console.error("[Crossmint] Failed to sign and send transaction",r),e({type:d.OutgoingInternalEvents.CRYPTO_PAYMENT_USER_REJECTED,payload:{}})}})}function C(s,r){return w(this,null,function*(){let{Transaction:m}=yield import("@solana/web3.js"),i=m.from(tt.default.decode(r));return console.log("[Crossmint] Deserialized SOL transaction",i),yield s.signAndSendTransaction(i)})}function u(s,r){return w(this,null,function*(){let{parse:m}=yield import("@ethersproject/transactions"),i=m(r);return console.log("[Crossmint] Deserialized ETH transaction",i),yield s.signAndSendTransaction(i)})}return V(()=>{e({type:"params-update",payload:(0,d.embeddedCheckoutPropsToUpdatableParamsPayload)(t)})},[t.signer.address,t.recipient,t.mintConfig,t.locale,t.currency,t.whPassThroughArgs,..."chain"in t.signer?[t.signer.chain]:[]]),(0,et.jsx)(b,c({onInternalEvent:a},t))}var rt=require("react/jsx-runtime");function nt(t){if(!(0,ot.isCryptoEmbeddedCheckoutPropsWithSigner)(t))throw new Error("Invalid parameters: signer is required in versions < 2.0.0");return(0,rt.jsx)(U,c({},t))}var st=require("react/jsx-runtime");function A(t){return(0,st.jsx)(b,c({},t))}var at=require("react/jsx-runtime");function it(t){return(0,at.jsx)(A,c({},t))}var Y=require("react/jsx-runtime");function Ut(t){if((0,R.isFiatEmbeddedCheckoutProps)(t))return(0,Y.jsx)(it,c({},t));if((0,R.isCryptoEmbeddedCheckoutProps)(t))return(0,Y.jsx)(nt,c({},t));throw new Error("Unsupported: Fiat is the only supported payment method.")}var ut=require("react"),pt=require("react"),E=require("@crossmint/client-sdk-base");var B=require("react");function G(){let[t,e]=(0,B.useState)(!0);return(0,B.useEffect)(()=>{e(!1)},[]),{isServerSideRendering:t}}var mt=require("react-jss"),At="#1e1e1e",ct=t=>t==="light",dt=t=>({buttonBgColor:ct(t)?"white":At,paragraphColor:ct(t)?"black":"white"}),Yt={"@global":{"@import":"url('https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap')"},crossmintButton:{display:"flex","flex-direction":"row","align-items":"center",padding:"0.875rem 0.875rem","font-weight":"900",transition:"opacity ease-in-out 0.25s","border-radius":"0.5rem","font-family":'"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif',outline:"none",border:"none","box-shadow":"0px 8px 15px rgba(0, 0, 0, 0.1)","justify-content":"center",background:({buttonBgColor:t})=>t,"&:hover:enabled":{opacity:"0.6",cursor:"pointer"}},crossmintImg:{width:"21px",height:"21px","margin-right":"0.875rem"},crossmintParagraph:{color:({paragraphColor:t})=>t,margin:"0"}},lt=(0,mt.createUseStyles)(Yt);var h=require("react/jsx-runtime");function Gt(t){let q=t,{className:e,disabled:o,onClick:n,style:a,tabIndex:l,theme:C="dark",mintTo:u,emailTo:s,listingId:r,auctionId:m,showOverlay:i=!0,mintConfig:p,whPassThroughArgs:L,environment:ht,paymentMethod:I,preferredSigninMethod:Ct,dismissOverlayOnClick:gt,prepay:ft,locale:W="en-US",currency:Et="usd",successCallbackURL:yt="",failureCallbackURL:bt="",loginEmail:It="",projectId:Pt,getButtonText:M,checkoutProps:$={experimental:!1,display:"same-tab",paymentMethods:["fiat","ETH","SOL"]}}=q,_=k(q,["className","disabled","onClick","style","tabIndex","theme","mintTo","emailTo","listingId","auctionId","showOverlay","mintConfig","whPassThroughArgs","environment","paymentMethod","preferredSigninMethod","dismissOverlayOnClick","prepay","locale","currency","successCallbackURL","failureCallbackURL","loginEmail","projectId","getButtonText","checkoutProps"]),St="clientId"in _?_.clientId:_.collectionId,[P,kt]=(0,pt.useState)(!1),{isServerSideRendering:Tt}=G(),{connect:wt}=(0,E.crossmintModalService)({clientId:St,projectId:Pt,showOverlay:i,dismissOverlayOnClick:gt,setConnecting:kt,libVersion:g,environment:ht,clientName:E.clientNames.reactUi,locale:W,currency:Et,successCallbackURL:yt,failureCallbackURL:bt,loginEmail:It}),{getButtonText:vt,handleClick:xt}=(0,E.crossmintPayButtonService)({onClick:n,connecting:P,paymentMethod:I,locale:W,checkoutProps:$}),Ft=Rt=>xt(Rt,()=>{wt(p,u,s,r,L,I,Ct,ft,$)}),H=lt(dt(C)),Nt=(0,ut.useMemo)(()=>(0,h.jsx)("span",{className:H.crossmintParagraph,role:"button-paragraph",children:M!=null?M(P,I||"fiat"):vt(P)}),[P,M,I]);return(0,h.jsx)(h.Fragment,{children:!Tt&&(0,h.jsxs)("button",{className:`${H.crossmintButton} ${e||""}`,disabled:o,onClick:Ft,style:c({},a),tabIndex:l,children:[(0,h.jsx)("img",{className:H.crossmintImg,src:"https://www.crossmint.io/assets/crossmint/logo.svg",alt:"Crossmint logo"}),Nt]})})}var O=require("@crossmint/client-sdk-base");0&&(module.exports={CrossmintEvents,CrossmintNFTCollectionView,CrossmintNFTDetail,CrossmintPayButton,CrossmintPaymentElement,useCrossmintEvents});
2
2
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/components/CrossmintNFTCollectionView.tsx","../src/consts/version.ts","../src/components/CrossmintNFTDetail.tsx","../src/components/embed/index.tsx","../src/components/embed/crypto/CryptoEmbeddedCheckout.tsx","../src/hooks/useDeepEffect.ts","../src/components/embed/crypto/CryptoEmbeddedCheckoutIFrame.tsx","../src/components/embed/EmbeddedCheckoutIFrame.tsx","../src/components/embed/fiat/FiatEmbeddedCheckoutIFrame.tsx","../src/components/embed/fiat/FiatEmbeddedCheckout.tsx","../src/components/hosted/CrossmintPayButton.tsx","../src/hooks/useEnvironment.ts","../src/components/hosted/styles.ts"],"sourcesContent":["export * from \"./components\";\n\nexport { CrossmintEvents, useCrossmintEvents } from \"@crossmint/client-sdk-base\";\nexport type { CrossmintEvent, CrossmintEventMap } from \"@crossmint/client-sdk-base\";\n","import { assertValidNFTCollectionViewProps, getNFTCollectionViewSrc } from \"@crossmint/client-sdk-base\";\nimport { NFTCollectionViewProps } from \"@crossmint/common-sdk-base\";\n\nimport { LIB_VERSION } from \"../consts/version\";\n\nexport function CrossmintNFTCollectionView(props: NFTCollectionViewProps) {\n assertValidNFTCollectionViewProps(props);\n\n const src = getNFTCollectionViewSrc(props, LIB_VERSION);\n\n return (\n <iframe\n src={src}\n width=\"100%\"\n height=\"100%\"\n style={{\n flexGrow: \"1\",\n border: \"none\",\n margin: \"0\",\n padding: \"0\",\n }}\n role=\"nft-collection-view\"\n />\n );\n}\n","export const LIB_VERSION = \"1.1.10\";\n","import { assertValidValidateNFTDetailProps, getNFTDetailSrc } from \"@crossmint/client-sdk-base\";\nimport { NFTDetailProps } from \"@crossmint/common-sdk-base\";\n\nimport { LIB_VERSION } from \"../consts/version\";\n\nexport function CrossmintNFTDetail(props: NFTDetailProps) {\n assertValidValidateNFTDetailProps(props);\n\n const src = getNFTDetailSrc(props, LIB_VERSION);\n\n return (\n <iframe\n src={src}\n width=\"100%\"\n height=\"100%\"\n style={{\n flexGrow: \"1\",\n border: \"none\",\n margin: \"0\",\n padding: \"0\",\n }}\n role=\"nft-details\"\n />\n );\n}\n","import {\n CrossmintEmbeddedCheckoutProps,\n isCryptoEmbeddedCheckoutProps,\n isFiatEmbeddedCheckoutProps,\n} from \"@crossmint/client-sdk-base\";\n\nimport { CrossmintCryptoEmbeddedCheckout } from \"./crypto/CryptoEmbeddedCheckout\";\nimport { CrossmintFiatEmbeddedCheckout } from \"./fiat/FiatEmbeddedCheckout\";\n\n// TODO: Rename to CrossmintEmbeddedCheckout on v2 major publish, prior announcement since its a breaking change\nexport function CrossmintPaymentElement(props: CrossmintEmbeddedCheckoutProps) {\n if (isFiatEmbeddedCheckoutProps(props)) {\n return <CrossmintFiatEmbeddedCheckout {...props} />;\n }\n if (isCryptoEmbeddedCheckoutProps(props)) {\n return <CrossmintCryptoEmbeddedCheckout {...props} />;\n }\n throw new Error(\"Unsupported: Fiat is the only supported payment method.\");\n}\n","import { CryptoEmbeddedCheckoutProps, isCryptoEmbeddedCheckoutPropsWithSigner } from \"@crossmint/client-sdk-base\";\n\nimport CryptoEmbeddedCheckoutIFrame from \"./CryptoEmbeddedCheckoutIFrame\";\n\nexport function CrossmintCryptoEmbeddedCheckout(props: CryptoEmbeddedCheckoutProps) {\n if (!isCryptoEmbeddedCheckoutPropsWithSigner(props)) {\n throw new Error(\"Invalid parameters: signer is required in versions < 2.0.0\");\n }\n\n return <CryptoEmbeddedCheckoutIFrame {...props} />;\n}\n","import isEqual from \"lodash.isequal\";\nimport { DependencyList, EffectCallback, useEffect, useRef } from \"react\";\n\nexport default function useDeepEffect(callback: EffectCallback, dependencies: DependencyList): void {\n const dependenciesRef = useRef(dependencies);\n\n useEffect(() => {\n const hasChanged = dependencies.some((dep, i) => !isEqual(dep, dependenciesRef.current[i]));\n\n if (hasChanged) {\n dependenciesRef.current = dependencies;\n return callback();\n }\n }, [dependencies]);\n}\n","import useDeepEffect from \"@/hooks/useDeepEffect\";\nimport bs58 from \"bs58\";\n\nimport {\n CryptoEmbeddedCheckoutPropsWithSigner,\n ETHEmbeddedCheckoutSigner,\n IncomingInternalEvent,\n IncomingInternalEvents,\n OutgoingInternalEvents,\n SOLEmbeddedCheckoutSigner,\n crossmintIFrameService,\n embeddedCheckoutPropsToUpdatableParamsPayload,\n} from \"@crossmint/client-sdk-base\";\nimport { EVMBlockchainIncludingTestnet } from \"@crossmint/common-sdk-base\";\n\nimport CrossmintEmbeddedCheckoutIFrame from \"../EmbeddedCheckoutIFrame\";\n\nexport default function CryptoEmbeddedCheckoutIFrame(props: CryptoEmbeddedCheckoutPropsWithSigner) {\n const { emitInternalEvent } = crossmintIFrameService(props);\n\n const { signer, paymentMethod } = props;\n\n function onInternalEvent(event: IncomingInternalEvent) {\n const { type, payload } = event;\n\n if (type === IncomingInternalEvents.CRYPTO_PAYMENT_INCOMING_TRANSACTION) {\n const { serializedTransaction } = payload;\n console.log(\"[Crossmint] Received incoming transaction\", serializedTransaction);\n handleIncomingTransaction(serializedTransaction);\n }\n\n if (type === IncomingInternalEvents.CRYPTO_CHAIN_SWITCH) {\n const { chain } = payload;\n console.log(\"[Crossmint] Received change of chain\", chain);\n\n const handleChainSwitch = (signer as ETHEmbeddedCheckoutSigner).handleChainSwitch;\n if (handleChainSwitch == null) {\n throw new Error(\"switchNetwork function should have been defined\");\n }\n handleChainSwitch(chain as EVMBlockchainIncludingTestnet);\n }\n }\n\n async function handleIncomingTransaction(serializedTransaction: string) {\n try {\n let txId: string;\n switch (paymentMethod) {\n case \"SOL\":\n txId = await handleSOLTransaction(signer, serializedTransaction);\n break;\n case \"ETH\":\n txId = await handleETHTransaction(signer, serializedTransaction);\n break;\n default:\n throw new Error(`Unsupported payment method ${paymentMethod}`);\n }\n\n console.log(\"[Crossmint] Signed and sent transaction\", txId);\n emitInternalEvent({\n type: OutgoingInternalEvents.CRYPTO_PAYMENT_USER_ACCEPTED,\n payload: {\n txId,\n },\n });\n } catch (e) {\n console.error(\"[Crossmint] Failed to sign and send transaction\", e);\n emitInternalEvent({\n type: OutgoingInternalEvents.CRYPTO_PAYMENT_USER_REJECTED,\n payload: {},\n });\n }\n }\n\n async function handleSOLTransaction(signer: SOLEmbeddedCheckoutSigner, serializedTransaction: string) {\n // @ts-ignore - Error becasue we dont use 'module' field in tsconfig, which is expected because we use tsup to compile\n const { Transaction } = await import(\"@solana/web3.js\");\n const transaction = Transaction.from(bs58.decode(serializedTransaction));\n console.log(\"[Crossmint] Deserialized SOL transaction\", transaction);\n\n return await signer.signAndSendTransaction(transaction);\n }\n\n async function handleETHTransaction(signer: ETHEmbeddedCheckoutSigner, serializedTransaction: string) {\n // @ts-ignore - Error becasue we dont use 'module' field in tsconfig, which is expected because we use tsup to compile\n const { parse: parseTransaction } = await import(\"@ethersproject/transactions\");\n const transaction = parseTransaction(serializedTransaction);\n console.log(\"[Crossmint] Deserialized ETH transaction\", transaction);\n\n return await signer.signAndSendTransaction(transaction);\n }\n\n useDeepEffect(() => {\n emitInternalEvent({\n type: \"params-update\",\n payload: embeddedCheckoutPropsToUpdatableParamsPayload(props),\n });\n }, [\n props.signer.address,\n props.recipient,\n props.mintConfig,\n props.locale,\n props.currency,\n props.whPassThroughArgs,\n ...(\"chain\" in props.signer ? [props.signer.chain] : []),\n ]);\n\n return <CrossmintEmbeddedCheckoutIFrame onInternalEvent={onInternalEvent} {...props} />;\n}\n","import { useEffect, useState } from \"react\";\n\nimport { IncomingInternalEvent, IncomingInternalEvents, crossmintIFrameService } from \"@crossmint/client-sdk-base\";\nimport { CrossmintEmbeddedCheckoutProps } from \"@crossmint/client-sdk-base\";\n\ntype CrossmintEmbeddedCheckoutIFrameProps = CrossmintEmbeddedCheckoutProps & {\n onInternalEvent?: (event: IncomingInternalEvent) => void;\n};\n\nexport default function CrossmintEmbeddedCheckoutIFrame({\n onInternalEvent,\n ...props\n}: CrossmintEmbeddedCheckoutIFrameProps) {\n const { getUrl, listenToEvents, listenToInternalEvents } = crossmintIFrameService(props);\n\n const [height, setHeight] = useState(0);\n const [url] = useState(getUrl(props));\n\n // Public events\n useEffect(() => {\n const clearListener = listenToEvents((event) => props.onEvent?.(event.data));\n\n return () => {\n clearListener();\n };\n }, []);\n\n // Internal events\n useEffect(() => {\n const clearListener = listenToInternalEvents((event) => {\n const { type, payload } = event.data;\n\n if (type === IncomingInternalEvents.UI_HEIGHT_CHANGED) {\n setHeight(payload.height);\n }\n\n onInternalEvent?.(event.data);\n });\n\n return () => {\n clearListener();\n };\n }, []);\n\n return (\n <iframe\n src={url}\n id=\"crossmint-embedded-checkout.iframe\"\n role=\"crossmint-embedded-checkout.iframe\"\n allow=\"payment *\"\n style={{\n boxShadow: \"none\",\n border: \"none\",\n padding: \"0px\",\n width: \"100%\",\n minWidth: \"100%\",\n overflow: \"hidden\",\n display: \"block\",\n userSelect: \"none\",\n transform: \"translate(0px)\",\n opacity: \"1\",\n transition: \"ease 0s, opacity 0.4s ease 0.1s\",\n height: `${height}px`,\n }}\n />\n );\n}\n","import { FiatEmbeddedCheckoutProps } from \"@crossmint/client-sdk-base\";\n\nimport CrossmintEmbeddedCheckoutIFrame from \"../EmbeddedCheckoutIFrame\";\n\nexport default function FiatEmbeddedCheckoutIFrame(props: FiatEmbeddedCheckoutProps) {\n return <CrossmintEmbeddedCheckoutIFrame {...props} />;\n}\n","import FiatEmbeddedCheckoutIFrame from \"@/components/embed/fiat/FiatEmbeddedCheckoutIFrame\";\nimport { FiatEmbeddedCheckoutProps } from \"@crossmint/client-sdk-base\";\n\nexport function CrossmintFiatEmbeddedCheckout(props: FiatEmbeddedCheckoutProps) {\n return <FiatEmbeddedCheckoutIFrame {...props} />;\n}\n","import { CSSProperties, MouseEvent, useMemo } from \"react\";\nimport { useState } from \"react\";\n\nimport {\n CheckoutProps,\n CrossmintPayButtonProps,\n clientNames,\n crossmintModalService,\n crossmintPayButtonService,\n} from \"@crossmint/client-sdk-base\";\n\nimport { LIB_VERSION } from \"../../consts/version\";\nimport useEnvironment from \"../../hooks/useEnvironment\";\nimport { formatProps, useStyles } from \"./styles\";\n\nexport type CrossmintPayButtonReactProps = CrossmintPayButtonProps & {\n onClick?: (e: MouseEvent<HTMLButtonElement>) => void;\n style?: CSSProperties;\n};\n\nexport function CrossmintPayButton(buttonProps: CrossmintPayButtonReactProps) {\n const {\n className,\n disabled,\n onClick,\n style,\n tabIndex,\n theme = \"dark\",\n mintTo,\n emailTo,\n listingId,\n auctionId,\n showOverlay = true,\n mintConfig,\n whPassThroughArgs,\n environment,\n paymentMethod,\n preferredSigninMethod,\n dismissOverlayOnClick,\n prepay,\n locale = \"en-US\",\n currency = \"usd\",\n successCallbackURL = \"\",\n failureCallbackURL = \"\",\n loginEmail = \"\",\n projectId,\n getButtonText,\n checkoutProps = {\n experimental: false,\n display: \"same-tab\",\n paymentMethods: [\"fiat\", \"ETH\", \"SOL\"],\n } as CheckoutProps,\n ...props\n } = buttonProps;\n\n const collectionId = \"clientId\" in props ? props.clientId : props.collectionId;\n\n const [connecting, setConnecting] = useState(false);\n const { isServerSideRendering } = useEnvironment();\n\n const { connect } = crossmintModalService({\n clientId: collectionId,\n projectId,\n showOverlay,\n dismissOverlayOnClick,\n setConnecting,\n libVersion: LIB_VERSION,\n environment,\n clientName: clientNames.reactUi,\n locale,\n currency,\n successCallbackURL,\n failureCallbackURL,\n loginEmail,\n });\n\n const { getButtonText: getButtonTextInternal, handleClick } = crossmintPayButtonService({\n onClick,\n connecting,\n paymentMethod,\n locale,\n checkoutProps,\n });\n\n const _handleClick = (event: MouseEvent<HTMLButtonElement>) =>\n handleClick(event, () => {\n connect(\n mintConfig,\n mintTo,\n emailTo,\n listingId,\n whPassThroughArgs,\n paymentMethod,\n preferredSigninMethod,\n prepay,\n checkoutProps\n );\n });\n\n const classes = useStyles(formatProps(theme));\n\n const content = useMemo(() => {\n return (\n <span className={classes.crossmintParagraph} role=\"button-paragraph\">\n {getButtonText != null\n ? getButtonText(connecting, paymentMethod || \"fiat\")\n : getButtonTextInternal(connecting)}\n </span>\n );\n }, [connecting, getButtonText, paymentMethod]);\n\n return (\n <>\n {!isServerSideRendering && (\n <button\n className={`${classes.crossmintButton} ${className || \"\"}`}\n disabled={disabled}\n onClick={_handleClick}\n style={{ ...style }}\n tabIndex={tabIndex}\n >\n <img\n className={classes.crossmintImg}\n src=\"https://www.crossmint.io/assets/crossmint/logo.svg\"\n alt=\"Crossmint logo\"\n />\n {content}\n </button>\n )}\n </>\n );\n}\n","import { useEffect, useState } from \"react\";\r\n\r\nexport default function useEnvironment() {\r\n const [isServerSideRendering, setIsServerSideRendering] = useState(true);\r\n useEffect(() => {\r\n setIsServerSideRendering(false);\r\n }, []);\r\n\r\n return { isServerSideRendering };\r\n}\r\n","import { createUseStyles } from \"react-jss\";\n\nconst DARK_BG = \"#1e1e1e\";\n\ninterface CustomStylingProps {\n buttonBgColor?: string;\n paragraphColor?: string;\n}\n\nconst themeIsLight = (theme: string) => theme === \"light\";\n\nexport const formatProps = (theme: string): CustomStylingProps => ({\n buttonBgColor: themeIsLight(theme) ? \"white\" : DARK_BG,\n paragraphColor: themeIsLight(theme) ? \"black\" : \"white\",\n});\n\nexport const useStyles = createUseStyles({\n \"@global\": {\n \"@import\":\n \"url('https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap')\",\n },\n crossmintButton: {\n display: \"flex\",\n \"flex-direction\": \"row\",\n \"align-items\": \"center\",\n padding: \"0.875rem 0.875rem\",\n \"font-weight\": \"900\",\n transition: \"opacity ease-in-out 0.25s\",\n \"border-radius\": \"0.5rem\",\n \"font-family\": `\"Inter\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Open Sans\", \"Helvetica Neue\", sans-serif`,\n outline: \"none\",\n border: \"none\",\n \"box-shadow\": \"0px 8px 15px rgba(0, 0, 0, 0.1)\",\n \"justify-content\": \"center\",\n background: ({ buttonBgColor }: CustomStylingProps) => buttonBgColor,\n\n \"&:hover:enabled\": {\n opacity: \"0.6\",\n cursor: \"pointer\",\n },\n },\n crossmintImg: {\n width: \"21px\",\n height: \"21px\",\n \"margin-right\": \"0.875rem\",\n },\n crossmintParagraph: {\n color: ({ paragraphColor }: CustomStylingProps) => paragraphColor,\n margin: \"0\",\n },\n});\n"],"mappings":"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","names":["src_exports","__export","CrossmintNFTCollectionView","CrossmintNFTDetail","CrossmintPayButton","CrossmintPaymentElement","__toCommonJS","import_client_sdk_base","LIB_VERSION","import_jsx_runtime","CrossmintNFTCollectionView","props","src","LIB_VERSION","import_client_sdk_base","import_jsx_runtime","CrossmintNFTDetail","props","src","LIB_VERSION","import_client_sdk_base","import_client_sdk_base","import_lodash","import_react","useDeepEffect","callback","dependencies","dependenciesRef","dep","i","isEqual","import_bs58","import_client_sdk_base","import_react","import_client_sdk_base","import_jsx_runtime","CrossmintEmbeddedCheckoutIFrame","_a","_b","onInternalEvent","props","__objRest","getUrl","listenToEvents","listenToInternalEvents","height","setHeight","url","clearListener","event","type","payload","import_jsx_runtime","CryptoEmbeddedCheckoutIFrame","props","emitInternalEvent","signer","paymentMethod","onInternalEvent","event","type","payload","serializedTransaction","handleIncomingTransaction","chain","handleChainSwitch","__async","txId","handleSOLTransaction","handleETHTransaction","e","Transaction","transaction","bs58","parseTransaction","useDeepEffect","CrossmintEmbeddedCheckoutIFrame","__spreadValues","import_jsx_runtime","CrossmintCryptoEmbeddedCheckout","props","CryptoEmbeddedCheckoutIFrame","__spreadValues","import_jsx_runtime","FiatEmbeddedCheckoutIFrame","props","CrossmintEmbeddedCheckoutIFrame","__spreadValues","import_jsx_runtime","CrossmintFiatEmbeddedCheckout","props","FiatEmbeddedCheckoutIFrame","__spreadValues","import_jsx_runtime","CrossmintPaymentElement","props","CrossmintFiatEmbeddedCheckout","__spreadValues","CrossmintCryptoEmbeddedCheckout","import_react","import_client_sdk_base","import_react","useEnvironment","isServerSideRendering","setIsServerSideRendering","import_react_jss","DARK_BG","themeIsLight","theme","formatProps","useStyles","buttonBgColor","paragraphColor","import_jsx_runtime","CrossmintPayButton","buttonProps","_a","className","disabled","onClick","style","tabIndex","theme","mintTo","emailTo","listingId","auctionId","showOverlay","mintConfig","whPassThroughArgs","environment","paymentMethod","preferredSigninMethod","dismissOverlayOnClick","prepay","locale","currency","successCallbackURL","failureCallbackURL","loginEmail","projectId","getButtonText","checkoutProps","props","__objRest","collectionId","connecting","setConnecting","isServerSideRendering","useEnvironment","connect","LIB_VERSION","getButtonTextInternal","handleClick","_handleClick","event","classes","useStyles","formatProps","content","__spreadValues","import_client_sdk_base"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/components/CrossmintNFTCollectionView.tsx","../src/consts/version.ts","../src/components/CrossmintNFTDetail.tsx","../src/components/embed/index.tsx","../src/components/embed/crypto/CryptoEmbeddedCheckout.tsx","../src/hooks/useDeepEffect.ts","../src/components/embed/crypto/CryptoEmbeddedCheckoutIFrame.tsx","../src/components/embed/EmbeddedCheckoutIFrame.tsx","../src/components/embed/fiat/FiatEmbeddedCheckoutIFrame.tsx","../src/components/embed/fiat/FiatEmbeddedCheckout.tsx","../src/components/hosted/CrossmintPayButton.tsx","../src/hooks/useEnvironment.ts","../src/components/hosted/styles.ts"],"sourcesContent":["export * from \"./components\";\n\nexport { CrossmintEvents, useCrossmintEvents } from \"@crossmint/client-sdk-base\";\nexport type { CrossmintEvent, CrossmintEventMap } from \"@crossmint/client-sdk-base\";\n","import { assertValidNFTCollectionViewProps, getNFTCollectionViewSrc } from \"@crossmint/client-sdk-base\";\nimport { NFTCollectionViewProps } from \"@crossmint/common-sdk-base\";\n\nimport { LIB_VERSION } from \"../consts/version\";\n\nexport function CrossmintNFTCollectionView(props: NFTCollectionViewProps) {\n assertValidNFTCollectionViewProps(props);\n\n const src = getNFTCollectionViewSrc(props, LIB_VERSION);\n\n return (\n <iframe\n src={src}\n width=\"100%\"\n height=\"100%\"\n style={{\n flexGrow: \"1\",\n border: \"none\",\n margin: \"0\",\n padding: \"0\",\n }}\n role=\"nft-collection-view\"\n />\n );\n}\n","export const LIB_VERSION = \"1.1.11\";\n","import { assertValidValidateNFTDetailProps, getNFTDetailSrc } from \"@crossmint/client-sdk-base\";\nimport { NFTDetailProps } from \"@crossmint/common-sdk-base\";\n\nimport { LIB_VERSION } from \"../consts/version\";\n\nexport function CrossmintNFTDetail(props: NFTDetailProps) {\n assertValidValidateNFTDetailProps(props);\n\n const src = getNFTDetailSrc(props, LIB_VERSION);\n\n return (\n <iframe\n src={src}\n width=\"100%\"\n height=\"100%\"\n style={{\n flexGrow: \"1\",\n border: \"none\",\n margin: \"0\",\n padding: \"0\",\n }}\n role=\"nft-details\"\n />\n );\n}\n","import {\n CrossmintEmbeddedCheckoutProps,\n isCryptoEmbeddedCheckoutProps,\n isFiatEmbeddedCheckoutProps,\n} from \"@crossmint/client-sdk-base\";\n\nimport { CrossmintCryptoEmbeddedCheckout } from \"./crypto/CryptoEmbeddedCheckout\";\nimport { CrossmintFiatEmbeddedCheckout } from \"./fiat/FiatEmbeddedCheckout\";\n\n// TODO: Rename to CrossmintEmbeddedCheckout on v2 major publish, prior announcement since its a breaking change\nexport function CrossmintPaymentElement(props: CrossmintEmbeddedCheckoutProps) {\n if (isFiatEmbeddedCheckoutProps(props)) {\n return <CrossmintFiatEmbeddedCheckout {...props} />;\n }\n if (isCryptoEmbeddedCheckoutProps(props)) {\n return <CrossmintCryptoEmbeddedCheckout {...props} />;\n }\n throw new Error(\"Unsupported: Fiat is the only supported payment method.\");\n}\n","import { CryptoEmbeddedCheckoutProps, isCryptoEmbeddedCheckoutPropsWithSigner } from \"@crossmint/client-sdk-base\";\n\nimport CryptoEmbeddedCheckoutIFrame from \"./CryptoEmbeddedCheckoutIFrame\";\n\nexport function CrossmintCryptoEmbeddedCheckout(props: CryptoEmbeddedCheckoutProps) {\n if (!isCryptoEmbeddedCheckoutPropsWithSigner(props)) {\n throw new Error(\"Invalid parameters: signer is required in versions < 2.0.0\");\n }\n\n return <CryptoEmbeddedCheckoutIFrame {...props} />;\n}\n","import isEqual from \"lodash.isequal\";\nimport { DependencyList, EffectCallback, useEffect, useRef } from \"react\";\n\nexport default function useDeepEffect(callback: EffectCallback, dependencies: DependencyList): void {\n const dependenciesRef = useRef(dependencies);\n\n useEffect(() => {\n const hasChanged = dependencies.some((dep, i) => !isEqual(dep, dependenciesRef.current[i]));\n\n if (hasChanged) {\n dependenciesRef.current = dependencies;\n return callback();\n }\n }, [dependencies]);\n}\n","import useDeepEffect from \"@/hooks/useDeepEffect\";\nimport bs58 from \"bs58\";\n\nimport {\n CryptoEmbeddedCheckoutPropsWithSigner,\n ETHEmbeddedCheckoutSigner,\n IncomingInternalEvent,\n IncomingInternalEvents,\n OutgoingInternalEvents,\n SOLEmbeddedCheckoutSigner,\n crossmintIFrameService,\n embeddedCheckoutPropsToUpdatableParamsPayload,\n} from \"@crossmint/client-sdk-base\";\nimport { EVMBlockchainIncludingTestnet } from \"@crossmint/common-sdk-base\";\n\nimport CrossmintEmbeddedCheckoutIFrame from \"../EmbeddedCheckoutIFrame\";\n\nexport default function CryptoEmbeddedCheckoutIFrame(props: CryptoEmbeddedCheckoutPropsWithSigner) {\n const { emitInternalEvent } = crossmintIFrameService(props);\n\n const { signer, paymentMethod } = props;\n\n function onInternalEvent(event: IncomingInternalEvent) {\n const { type, payload } = event;\n\n if (type === IncomingInternalEvents.CRYPTO_PAYMENT_INCOMING_TRANSACTION) {\n const { serializedTransaction } = payload;\n console.log(\"[Crossmint] Received incoming transaction\", serializedTransaction);\n handleIncomingTransaction(serializedTransaction);\n }\n\n if (type === IncomingInternalEvents.CRYPTO_CHAIN_SWITCH) {\n const { chain } = payload;\n console.log(\"[Crossmint] Received change of chain\", chain);\n\n const handleChainSwitch = (signer as ETHEmbeddedCheckoutSigner).handleChainSwitch;\n if (handleChainSwitch == null) {\n throw new Error(\"switchNetwork function should have been defined\");\n }\n handleChainSwitch(chain as EVMBlockchainIncludingTestnet);\n }\n }\n\n async function handleIncomingTransaction(serializedTransaction: string) {\n try {\n let txId: string;\n switch (paymentMethod) {\n case \"SOL\":\n txId = await handleSOLTransaction(signer, serializedTransaction);\n break;\n case \"ETH\":\n txId = await handleETHTransaction(signer, serializedTransaction);\n break;\n default:\n throw new Error(`Unsupported payment method ${paymentMethod}`);\n }\n\n console.log(\"[Crossmint] Signed and sent transaction\", txId);\n emitInternalEvent({\n type: OutgoingInternalEvents.CRYPTO_PAYMENT_USER_ACCEPTED,\n payload: {\n txId,\n },\n });\n } catch (e) {\n console.error(\"[Crossmint] Failed to sign and send transaction\", e);\n emitInternalEvent({\n type: OutgoingInternalEvents.CRYPTO_PAYMENT_USER_REJECTED,\n payload: {},\n });\n }\n }\n\n async function handleSOLTransaction(signer: SOLEmbeddedCheckoutSigner, serializedTransaction: string) {\n // @ts-ignore - Error becasue we dont use 'module' field in tsconfig, which is expected because we use tsup to compile\n const { Transaction } = await import(\"@solana/web3.js\");\n const transaction = Transaction.from(bs58.decode(serializedTransaction));\n console.log(\"[Crossmint] Deserialized SOL transaction\", transaction);\n\n return await signer.signAndSendTransaction(transaction);\n }\n\n async function handleETHTransaction(signer: ETHEmbeddedCheckoutSigner, serializedTransaction: string) {\n // @ts-ignore - Error becasue we dont use 'module' field in tsconfig, which is expected because we use tsup to compile\n const { parse: parseTransaction } = await import(\"@ethersproject/transactions\");\n const transaction = parseTransaction(serializedTransaction);\n console.log(\"[Crossmint] Deserialized ETH transaction\", transaction);\n\n return await signer.signAndSendTransaction(transaction);\n }\n\n useDeepEffect(() => {\n emitInternalEvent({\n type: \"params-update\",\n payload: embeddedCheckoutPropsToUpdatableParamsPayload(props),\n });\n }, [\n props.signer.address,\n props.recipient,\n props.mintConfig,\n props.locale,\n props.currency,\n props.whPassThroughArgs,\n ...(\"chain\" in props.signer ? [props.signer.chain] : []),\n ]);\n\n return <CrossmintEmbeddedCheckoutIFrame onInternalEvent={onInternalEvent} {...props} />;\n}\n","import { useEffect, useState } from \"react\";\n\nimport { IncomingInternalEvent, IncomingInternalEvents, crossmintIFrameService } from \"@crossmint/client-sdk-base\";\nimport { CrossmintEmbeddedCheckoutProps } from \"@crossmint/client-sdk-base\";\n\ntype CrossmintEmbeddedCheckoutIFrameProps = CrossmintEmbeddedCheckoutProps & {\n onInternalEvent?: (event: IncomingInternalEvent) => void;\n};\n\nexport default function CrossmintEmbeddedCheckoutIFrame({\n onInternalEvent,\n ...props\n}: CrossmintEmbeddedCheckoutIFrameProps) {\n const { getUrl, listenToEvents, listenToInternalEvents } = crossmintIFrameService(props);\n\n const [height, setHeight] = useState(0);\n const [url] = useState(getUrl(props));\n\n // Public events\n useEffect(() => {\n const clearListener = listenToEvents((event) => props.onEvent?.(event.data));\n\n return () => {\n clearListener();\n };\n }, []);\n\n // Internal events\n useEffect(() => {\n const clearListener = listenToInternalEvents((event) => {\n const { type, payload } = event.data;\n\n if (type === IncomingInternalEvents.UI_HEIGHT_CHANGED) {\n setHeight(payload.height);\n }\n\n onInternalEvent?.(event.data);\n });\n\n return () => {\n clearListener();\n };\n }, []);\n\n return (\n <iframe\n src={url}\n id=\"crossmint-embedded-checkout.iframe\"\n role=\"crossmint-embedded-checkout.iframe\"\n allow=\"payment *\"\n style={{\n boxShadow: \"none\",\n border: \"none\",\n padding: \"0px\",\n width: \"100%\",\n minWidth: \"100%\",\n overflow: \"hidden\",\n display: \"block\",\n userSelect: \"none\",\n transform: \"translate(0px)\",\n opacity: \"1\",\n transition: \"ease 0s, opacity 0.4s ease 0.1s\",\n height: `${height}px`,\n }}\n />\n );\n}\n","import { FiatEmbeddedCheckoutProps } from \"@crossmint/client-sdk-base\";\n\nimport CrossmintEmbeddedCheckoutIFrame from \"../EmbeddedCheckoutIFrame\";\n\nexport default function FiatEmbeddedCheckoutIFrame(props: FiatEmbeddedCheckoutProps) {\n return <CrossmintEmbeddedCheckoutIFrame {...props} />;\n}\n","import FiatEmbeddedCheckoutIFrame from \"@/components/embed/fiat/FiatEmbeddedCheckoutIFrame\";\n\nimport { FiatEmbeddedCheckoutProps } from \"@crossmint/client-sdk-base\";\n\nexport function CrossmintFiatEmbeddedCheckout(props: FiatEmbeddedCheckoutProps) {\n return <FiatEmbeddedCheckoutIFrame {...props} />;\n}\n","import { CSSProperties, MouseEvent, useMemo } from \"react\";\nimport { useState } from \"react\";\n\nimport {\n CheckoutProps,\n CrossmintPayButtonProps,\n clientNames,\n crossmintModalService,\n crossmintPayButtonService,\n} from \"@crossmint/client-sdk-base\";\n\nimport { LIB_VERSION } from \"../../consts/version\";\nimport useEnvironment from \"../../hooks/useEnvironment\";\nimport { formatProps, useStyles } from \"./styles\";\n\nexport type CrossmintPayButtonReactProps = CrossmintPayButtonProps & {\n onClick?: (e: MouseEvent<HTMLButtonElement>) => void;\n style?: CSSProperties;\n};\n\nexport function CrossmintPayButton(buttonProps: CrossmintPayButtonReactProps) {\n const {\n className,\n disabled,\n onClick,\n style,\n tabIndex,\n theme = \"dark\",\n mintTo,\n emailTo,\n listingId,\n auctionId,\n showOverlay = true,\n mintConfig,\n whPassThroughArgs,\n environment,\n paymentMethod,\n preferredSigninMethod,\n dismissOverlayOnClick,\n prepay,\n locale = \"en-US\",\n currency = \"usd\",\n successCallbackURL = \"\",\n failureCallbackURL = \"\",\n loginEmail = \"\",\n projectId,\n getButtonText,\n checkoutProps = {\n experimental: false,\n display: \"same-tab\",\n paymentMethods: [\"fiat\", \"ETH\", \"SOL\"],\n } as CheckoutProps,\n ...props\n } = buttonProps;\n\n const collectionId = \"clientId\" in props ? props.clientId : props.collectionId;\n\n const [connecting, setConnecting] = useState(false);\n const { isServerSideRendering } = useEnvironment();\n\n const { connect } = crossmintModalService({\n clientId: collectionId,\n projectId,\n showOverlay,\n dismissOverlayOnClick,\n setConnecting,\n libVersion: LIB_VERSION,\n environment,\n clientName: clientNames.reactUi,\n locale,\n currency,\n successCallbackURL,\n failureCallbackURL,\n loginEmail,\n });\n\n const { getButtonText: getButtonTextInternal, handleClick } = crossmintPayButtonService({\n onClick,\n connecting,\n paymentMethod,\n locale,\n checkoutProps,\n });\n\n const _handleClick = (event: MouseEvent<HTMLButtonElement>) =>\n handleClick(event, () => {\n connect(\n mintConfig,\n mintTo,\n emailTo,\n listingId,\n whPassThroughArgs,\n paymentMethod,\n preferredSigninMethod,\n prepay,\n checkoutProps\n );\n });\n\n const classes = useStyles(formatProps(theme));\n\n const content = useMemo(() => {\n return (\n <span className={classes.crossmintParagraph} role=\"button-paragraph\">\n {getButtonText != null\n ? getButtonText(connecting, paymentMethod || \"fiat\")\n : getButtonTextInternal(connecting)}\n </span>\n );\n }, [connecting, getButtonText, paymentMethod]);\n\n return (\n <>\n {!isServerSideRendering && (\n <button\n className={`${classes.crossmintButton} ${className || \"\"}`}\n disabled={disabled}\n onClick={_handleClick}\n style={{ ...style }}\n tabIndex={tabIndex}\n >\n <img\n className={classes.crossmintImg}\n src=\"https://www.crossmint.io/assets/crossmint/logo.svg\"\n alt=\"Crossmint logo\"\n />\n {content}\n </button>\n )}\n </>\n );\n}\n","import { useEffect, useState } from \"react\";\n\nexport default function useEnvironment() {\n const [isServerSideRendering, setIsServerSideRendering] = useState(true);\n useEffect(() => {\n setIsServerSideRendering(false);\n }, []);\n\n return { isServerSideRendering };\n}\n","import { Styles, createUseStyles } from \"react-jss\";\n\nconst DARK_BG = \"#1e1e1e\";\n\nconst themeIsLight = (theme: string) => theme === \"light\";\n\nexport const formatProps = (theme: string): CustomStylingProps => ({\n buttonBgColor: themeIsLight(theme) ? \"white\" : DARK_BG,\n paragraphColor: themeIsLight(theme) ? \"black\" : \"white\",\n});\n\nexport type Classes<Name extends string | number | symbol = string> = Record<Name, string>;\ninterface CustomStylingProps {\n buttonBgColor?: string;\n paragraphColor?: string;\n}\n\nconst styles: Styles<\"crossmintButton\" | \"crossmintImg\" | \"crossmintParagraph\" | \"@global\", CustomStylingProps> = {\n \"@global\": {\n \"@import\":\n \"url('https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap')\",\n },\n crossmintButton: {\n display: \"flex\",\n \"flex-direction\": \"row\",\n \"align-items\": \"center\",\n padding: \"0.875rem 0.875rem\",\n \"font-weight\": \"900\",\n transition: \"opacity ease-in-out 0.25s\",\n \"border-radius\": \"0.5rem\",\n \"font-family\": `\"Inter\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Open Sans\", \"Helvetica Neue\", sans-serif`,\n outline: \"none\",\n border: \"none\",\n \"box-shadow\": \"0px 8px 15px rgba(0, 0, 0, 0.1)\",\n \"justify-content\": \"center\",\n background: ({ buttonBgColor }: CustomStylingProps) => buttonBgColor,\n\n \"&:hover:enabled\": {\n opacity: \"0.6\",\n cursor: \"pointer\",\n },\n },\n crossmintImg: {\n width: \"21px\",\n height: \"21px\",\n \"margin-right\": \"0.875rem\",\n },\n crossmintParagraph: {\n color: ({ paragraphColor }: CustomStylingProps) => paragraphColor,\n margin: \"0\",\n },\n};\n\nexport const useStyles: (\n data?:\n | CustomStylingProps & {\n theme?: any;\n }\n) => Classes<\"crossmintButton\" | \"crossmintImg\" | \"crossmintParagraph\" | \"@global\"> = createUseStyles(styles);\n"],"mappings":"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","names":["src_exports","__export","CrossmintNFTCollectionView","CrossmintNFTDetail","CrossmintPayButton","CrossmintPaymentElement","__toCommonJS","import_client_sdk_base","LIB_VERSION","import_jsx_runtime","CrossmintNFTCollectionView","props","src","LIB_VERSION","import_client_sdk_base","import_jsx_runtime","CrossmintNFTDetail","props","src","LIB_VERSION","import_client_sdk_base","import_client_sdk_base","import_lodash","import_react","useDeepEffect","callback","dependencies","dependenciesRef","dep","i","isEqual","import_bs58","import_client_sdk_base","import_react","import_client_sdk_base","import_jsx_runtime","CrossmintEmbeddedCheckoutIFrame","_a","_b","onInternalEvent","props","__objRest","getUrl","listenToEvents","listenToInternalEvents","height","setHeight","url","clearListener","event","type","payload","import_jsx_runtime","CryptoEmbeddedCheckoutIFrame","props","emitInternalEvent","signer","paymentMethod","onInternalEvent","event","type","payload","serializedTransaction","handleIncomingTransaction","chain","handleChainSwitch","__async","txId","handleSOLTransaction","handleETHTransaction","e","Transaction","transaction","bs58","parseTransaction","useDeepEffect","CrossmintEmbeddedCheckoutIFrame","__spreadValues","import_jsx_runtime","CrossmintCryptoEmbeddedCheckout","props","CryptoEmbeddedCheckoutIFrame","__spreadValues","import_jsx_runtime","FiatEmbeddedCheckoutIFrame","props","CrossmintEmbeddedCheckoutIFrame","__spreadValues","import_jsx_runtime","CrossmintFiatEmbeddedCheckout","props","FiatEmbeddedCheckoutIFrame","__spreadValues","import_jsx_runtime","CrossmintPaymentElement","props","CrossmintFiatEmbeddedCheckout","__spreadValues","CrossmintCryptoEmbeddedCheckout","import_react","import_client_sdk_base","import_react","useEnvironment","isServerSideRendering","setIsServerSideRendering","import_react_jss","DARK_BG","themeIsLight","theme","formatProps","styles","buttonBgColor","paragraphColor","useStyles","import_jsx_runtime","CrossmintPayButton","buttonProps","_a","className","disabled","onClick","style","tabIndex","theme","mintTo","emailTo","listingId","auctionId","showOverlay","mintConfig","whPassThroughArgs","environment","paymentMethod","preferredSigninMethod","dismissOverlayOnClick","prepay","locale","currency","successCallbackURL","failureCallbackURL","loginEmail","projectId","getButtonText","checkoutProps","props","__objRest","collectionId","connecting","setConnecting","isServerSideRendering","useEnvironment","connect","LIB_VERSION","getButtonTextInternal","handleClick","_handleClick","event","classes","useStyles","formatProps","content","__spreadValues","import_client_sdk_base"]}
package/dist/index.d.cts CHANGED
@@ -16,4 +16,4 @@ type CrossmintPayButtonReactProps = CrossmintPayButtonProps & {
16
16
  };
17
17
  declare function CrossmintPayButton(buttonProps: CrossmintPayButtonReactProps): react_jsx_runtime.JSX.Element;
18
18
 
19
- export { CrossmintNFTCollectionView, CrossmintNFTDetail, CrossmintPayButton, CrossmintPayButtonReactProps, CrossmintPaymentElement };
19
+ export { CrossmintNFTCollectionView, CrossmintNFTDetail, CrossmintPayButton, type CrossmintPayButtonReactProps, CrossmintPaymentElement };
package/dist/index.d.ts CHANGED
@@ -16,4 +16,4 @@ type CrossmintPayButtonReactProps = CrossmintPayButtonProps & {
16
16
  };
17
17
  declare function CrossmintPayButton(buttonProps: CrossmintPayButtonReactProps): react_jsx_runtime.JSX.Element;
18
18
 
19
- export { CrossmintNFTCollectionView, CrossmintNFTDetail, CrossmintPayButton, CrossmintPayButtonReactProps, CrossmintPaymentElement };
19
+ export { CrossmintNFTCollectionView, CrossmintNFTDetail, CrossmintPayButton, type CrossmintPayButtonReactProps, CrossmintPaymentElement };
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var de=Object.defineProperty;var E=Object.getOwnPropertySymbols;var L=Object.prototype.hasOwnProperty,M=Object.prototype.propertyIsEnumerable;var O=(e,t,o)=>t in e?de(e,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[t]=o,a=(e,t)=>{for(var o in t||(t={}))L.call(t,o)&&O(e,o,t[o]);if(E)for(var o of E(t))M.call(t,o)&&O(e,o,t[o]);return e};var y=(e,t)=>{var o={};for(var r in e)L.call(e,r)&&t.indexOf(r)<0&&(o[r]=e[r]);if(e!=null&&E)for(var r of E(e))t.indexOf(r)<0&&M.call(e,r)&&(o[r]=e[r]);return o};var b=(e,t,o)=>new Promise((r,m)=>{var d=i=>{try{l(o.next(i))}catch(n){m(n)}},p=i=>{try{l(o.throw(i))}catch(n){m(n)}},l=i=>i.done?r(i.value):Promise.resolve(i.value).then(d,p);l((o=o.apply(e,t)).next())});import{assertValidNFTCollectionViewProps as le,getNFTCollectionViewSrc as ue}from"@crossmint/client-sdk-base";var h="1.1.10";import{jsx as pe}from"react/jsx-runtime";function Je(e){le(e);let t=ue(e,h);return pe("iframe",{src:t,width:"100%",height:"100%",style:{flexGrow:"1",border:"none",margin:"0",padding:"0"},role:"nft-collection-view"})}import{assertValidValidateNFTDetailProps as he,getNFTDetailSrc as Ce}from"@crossmint/client-sdk-base";import{jsx as fe}from"react/jsx-runtime";function je(e){he(e);let t=Ce(e,h);return fe("iframe",{src:t,width:"100%",height:"100%",style:{flexGrow:"1",border:"none",margin:"0",padding:"0"},role:"nft-details"})}import{isCryptoEmbeddedCheckoutProps as Re,isFiatEmbeddedCheckoutProps as Be}from"@crossmint/client-sdk-base";import{isCryptoEmbeddedCheckoutPropsWithSigner as ve}from"@crossmint/client-sdk-base";import ge from"lodash.isequal";import{useEffect as Ee,useRef as ye}from"react";function T(e,t){let o=ye(t);Ee(()=>{if(t.some((m,d)=>!ge(m,o.current[d])))return o.current=t,e()},[t])}import Pe from"bs58";import{IncomingInternalEvents as D,OutgoingInternalEvents as V,crossmintIFrameService as Se,embeddedCheckoutPropsToUpdatableParamsPayload as Te}from"@crossmint/client-sdk-base";import{useEffect as _,useState as H}from"react";import{IncomingInternalEvents as be,crossmintIFrameService as Ie}from"@crossmint/client-sdk-base";import{jsx as ke}from"react/jsx-runtime";function C(o){var r=o,{onInternalEvent:e}=r,t=y(r,["onInternalEvent"]);let{getUrl:m,listenToEvents:d,listenToInternalEvents:p}=Ie(t),[l,i]=H(0),[n]=H(m(t));return _(()=>{let c=d(s=>{var u;return(u=t.onEvent)==null?void 0:u.call(t,s.data)});return()=>{c()}},[]),_(()=>{let c=p(s=>{let{type:u,payload:I}=s.data;u===be.UI_HEIGHT_CHANGED&&i(I.height),e==null||e(s.data)});return()=>{c()}},[]),ke("iframe",{src:n,id:"crossmint-embedded-checkout.iframe",role:"crossmint-embedded-checkout.iframe",allow:"payment *",style:{boxShadow:"none",border:"none",padding:"0px",width:"100%",minWidth:"100%",overflow:"hidden",display:"block",userSelect:"none",transform:"translate(0px)",opacity:"1",transition:"ease 0s, opacity 0.4s ease 0.1s",height:`${l}px`}})}import{jsx as we}from"react/jsx-runtime";function w(e){let{emitInternalEvent:t}=Se(e),{signer:o,paymentMethod:r}=e;function m(i){let{type:n,payload:c}=i;if(n===D.CRYPTO_PAYMENT_INCOMING_TRANSACTION){let{serializedTransaction:s}=c;console.log("[Crossmint] Received incoming transaction",s),d(s)}if(n===D.CRYPTO_CHAIN_SWITCH){let{chain:s}=c;console.log("[Crossmint] Received change of chain",s);let u=o.handleChainSwitch;if(u==null)throw new Error("switchNetwork function should have been defined");u(s)}}function d(i){return b(this,null,function*(){try{let n;switch(r){case"SOL":n=yield p(o,i);break;case"ETH":n=yield l(o,i);break;default:throw new Error(`Unsupported payment method ${r}`)}console.log("[Crossmint] Signed and sent transaction",n),t({type:V.CRYPTO_PAYMENT_USER_ACCEPTED,payload:{txId:n}})}catch(n){console.error("[Crossmint] Failed to sign and send transaction",n),t({type:V.CRYPTO_PAYMENT_USER_REJECTED,payload:{}})}})}function p(i,n){return b(this,null,function*(){let{Transaction:c}=yield import("@solana/web3.js"),s=c.from(Pe.decode(n));return console.log("[Crossmint] Deserialized SOL transaction",s),yield i.signAndSendTransaction(s)})}function l(i,n){return b(this,null,function*(){let{parse:c}=yield import("@ethersproject/transactions"),s=c(n);return console.log("[Crossmint] Deserialized ETH transaction",s),yield i.signAndSendTransaction(s)})}return T(()=>{t({type:"params-update",payload:Te(e)})},[e.signer.address,e.recipient,e.mintConfig,e.locale,e.currency,e.whPassThroughArgs,..."chain"in e.signer?[e.signer.chain]:[]]),we(C,a({onInternalEvent:m},e))}import{jsx as Fe}from"react/jsx-runtime";function U(e){if(!ve(e))throw new Error("Invalid parameters: signer is required in versions < 2.0.0");return Fe(w,a({},e))}import{jsx as xe}from"react/jsx-runtime";function v(e){return xe(C,a({},e))}import{jsx as Ne}from"react/jsx-runtime";function A(e){return Ne(v,a({},e))}import{jsx as Y}from"react/jsx-runtime";function Yt(e){if(Be(e))return Y(A,a({},e));if(Re(e))return Y(U,a({},e));throw new Error("Unsupported: Fiat is the only supported payment method.")}import{useMemo as He}from"react";import{useState as De}from"react";import{clientNames as Ve,crossmintModalService as Ue,crossmintPayButtonService as Ae}from"@crossmint/client-sdk-base";import{useEffect as Oe,useState as Le}from"react";function F(){let[e,t]=Le(!0);return Oe(()=>{t(!1)},[]),{isServerSideRendering:e}}import{createUseStyles as Me}from"react-jss";var _e="#1e1e1e",G=e=>e==="light",W=e=>({buttonBgColor:G(e)?"white":_e,paragraphColor:G(e)?"black":"white"}),$=Me({"@global":{"@import":"url('https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap')"},crossmintButton:{display:"flex","flex-direction":"row","align-items":"center",padding:"0.875rem 0.875rem","font-weight":"900",transition:"opacity ease-in-out 0.25s","border-radius":"0.5rem","font-family":'"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif',outline:"none",border:"none","box-shadow":"0px 8px 15px rgba(0, 0, 0, 0.1)","justify-content":"center",background:({buttonBgColor:e})=>e,"&:hover:enabled":{opacity:"0.6",cursor:"pointer"}},crossmintImg:{width:"21px",height:"21px","margin-right":"0.875rem"},crossmintParagraph:{color:({paragraphColor:e})=>e,margin:"0"}});import{Fragment as Ge,jsx as x,jsxs as Ye}from"react/jsx-runtime";function so(e){let B=e,{className:t,disabled:o,onClick:r,style:m,tabIndex:d,theme:p="dark",mintTo:l,emailTo:i,listingId:n,auctionId:c,showOverlay:s=!0,mintConfig:u,whPassThroughArgs:I,environment:q,paymentMethod:f,preferredSigninMethod:z,dismissOverlayOnClick:J,prepay:K,locale:N="en-US",currency:Q="usd",successCallbackURL:X="",failureCallbackURL:Z="",loginEmail:j="",projectId:ee,getButtonText:k,checkoutProps:R={experimental:!1,display:"same-tab",paymentMethods:["fiat","ETH","SOL"]}}=B,P=y(B,["className","disabled","onClick","style","tabIndex","theme","mintTo","emailTo","listingId","auctionId","showOverlay","mintConfig","whPassThroughArgs","environment","paymentMethod","preferredSigninMethod","dismissOverlayOnClick","prepay","locale","currency","successCallbackURL","failureCallbackURL","loginEmail","projectId","getButtonText","checkoutProps"]),te="clientId"in P?P.clientId:P.collectionId,[g,oe]=De(!1),{isServerSideRendering:ne}=F(),{connect:re}=Ue({clientId:te,projectId:ee,showOverlay:s,dismissOverlayOnClick:J,setConnecting:oe,libVersion:h,environment:q,clientName:Ve.reactUi,locale:N,currency:Q,successCallbackURL:X,failureCallbackURL:Z,loginEmail:j}),{getButtonText:ie,handleClick:se}=Ae({onClick:r,connecting:g,paymentMethod:f,locale:N,checkoutProps:R}),ae=me=>se(me,()=>{re(u,l,i,n,I,f,z,K,R)}),S=$(W(p)),ce=He(()=>x("span",{className:S.crossmintParagraph,role:"button-paragraph",children:k!=null?k(g,f||"fiat"):ie(g)}),[g,k,f]);return x(Ge,{children:!ne&&Ye("button",{className:`${S.crossmintButton} ${t||""}`,disabled:o,onClick:ae,style:a({},m),tabIndex:d,children:[x("img",{className:S.crossmintImg,src:"https://www.crossmint.io/assets/crossmint/logo.svg",alt:"Crossmint logo"}),ce]})})}import{CrossmintEvents as ho,useCrossmintEvents as Co}from"@crossmint/client-sdk-base";export{ho as CrossmintEvents,Je as CrossmintNFTCollectionView,je as CrossmintNFTDetail,so as CrossmintPayButton,Yt as CrossmintPaymentElement,Co as useCrossmintEvents};
1
+ var dt=Object.defineProperty;var E=Object.getOwnPropertySymbols;var L=Object.prototype.hasOwnProperty,M=Object.prototype.propertyIsEnumerable;var O=(t,e,o)=>e in t?dt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[e]=o,a=(t,e)=>{for(var o in e||(e={}))L.call(e,o)&&O(t,o,e[o]);if(E)for(var o of E(e))M.call(e,o)&&O(t,o,e[o]);return t};var y=(t,e)=>{var o={};for(var r in t)L.call(t,r)&&e.indexOf(r)<0&&(o[r]=t[r]);if(t!=null&&E)for(var r of E(t))e.indexOf(r)<0&&M.call(t,r)&&(o[r]=t[r]);return o};var b=(t,e,o)=>new Promise((r,m)=>{var d=s=>{try{l(o.next(s))}catch(n){m(n)}},p=s=>{try{l(o.throw(s))}catch(n){m(n)}},l=s=>s.done?r(s.value):Promise.resolve(s.value).then(d,p);l((o=o.apply(t,e)).next())});import{assertValidNFTCollectionViewProps as lt,getNFTCollectionViewSrc as ut}from"@crossmint/client-sdk-base";var h="1.1.11";import{jsx as pt}from"react/jsx-runtime";function Kt(t){lt(t);let e=ut(t,h);return pt("iframe",{src:e,width:"100%",height:"100%",style:{flexGrow:"1",border:"none",margin:"0",padding:"0"},role:"nft-collection-view"})}import{assertValidValidateNFTDetailProps as ht,getNFTDetailSrc as Ct}from"@crossmint/client-sdk-base";import{jsx as gt}from"react/jsx-runtime";function te(t){ht(t);let e=Ct(t,h);return gt("iframe",{src:e,width:"100%",height:"100%",style:{flexGrow:"1",border:"none",margin:"0",padding:"0"},role:"nft-details"})}import{isCryptoEmbeddedCheckoutProps as Rt,isFiatEmbeddedCheckoutProps as Bt}from"@crossmint/client-sdk-base";import{isCryptoEmbeddedCheckoutPropsWithSigner as vt}from"@crossmint/client-sdk-base";import ft from"lodash.isequal";import{useEffect as Et,useRef as yt}from"react";function T(t,e){let o=yt(e);Et(()=>{if(e.some((m,d)=>!ft(m,o.current[d])))return o.current=e,t()},[e])}import St from"bs58";import{IncomingInternalEvents as D,OutgoingInternalEvents as V,crossmintIFrameService as kt,embeddedCheckoutPropsToUpdatableParamsPayload as Tt}from"@crossmint/client-sdk-base";import{useEffect as _,useState as H}from"react";import{IncomingInternalEvents as bt,crossmintIFrameService as It}from"@crossmint/client-sdk-base";import{jsx as Pt}from"react/jsx-runtime";function C(o){var r=o,{onInternalEvent:t}=r,e=y(r,["onInternalEvent"]);let{getUrl:m,listenToEvents:d,listenToInternalEvents:p}=It(e),[l,s]=H(0),[n]=H(m(e));return _(()=>{let c=d(i=>{var u;return(u=e.onEvent)==null?void 0:u.call(e,i.data)});return()=>{c()}},[]),_(()=>{let c=p(i=>{let{type:u,payload:I}=i.data;u===bt.UI_HEIGHT_CHANGED&&s(I.height),t==null||t(i.data)});return()=>{c()}},[]),Pt("iframe",{src:n,id:"crossmint-embedded-checkout.iframe",role:"crossmint-embedded-checkout.iframe",allow:"payment *",style:{boxShadow:"none",border:"none",padding:"0px",width:"100%",minWidth:"100%",overflow:"hidden",display:"block",userSelect:"none",transform:"translate(0px)",opacity:"1",transition:"ease 0s, opacity 0.4s ease 0.1s",height:`${l}px`}})}import{jsx as wt}from"react/jsx-runtime";function w(t){let{emitInternalEvent:e}=kt(t),{signer:o,paymentMethod:r}=t;function m(s){let{type:n,payload:c}=s;if(n===D.CRYPTO_PAYMENT_INCOMING_TRANSACTION){let{serializedTransaction:i}=c;console.log("[Crossmint] Received incoming transaction",i),d(i)}if(n===D.CRYPTO_CHAIN_SWITCH){let{chain:i}=c;console.log("[Crossmint] Received change of chain",i);let u=o.handleChainSwitch;if(u==null)throw new Error("switchNetwork function should have been defined");u(i)}}function d(s){return b(this,null,function*(){try{let n;switch(r){case"SOL":n=yield p(o,s);break;case"ETH":n=yield l(o,s);break;default:throw new Error(`Unsupported payment method ${r}`)}console.log("[Crossmint] Signed and sent transaction",n),e({type:V.CRYPTO_PAYMENT_USER_ACCEPTED,payload:{txId:n}})}catch(n){console.error("[Crossmint] Failed to sign and send transaction",n),e({type:V.CRYPTO_PAYMENT_USER_REJECTED,payload:{}})}})}function p(s,n){return b(this,null,function*(){let{Transaction:c}=yield import("@solana/web3.js"),i=c.from(St.decode(n));return console.log("[Crossmint] Deserialized SOL transaction",i),yield s.signAndSendTransaction(i)})}function l(s,n){return b(this,null,function*(){let{parse:c}=yield import("@ethersproject/transactions"),i=c(n);return console.log("[Crossmint] Deserialized ETH transaction",i),yield s.signAndSendTransaction(i)})}return T(()=>{e({type:"params-update",payload:Tt(t)})},[t.signer.address,t.recipient,t.mintConfig,t.locale,t.currency,t.whPassThroughArgs,..."chain"in t.signer?[t.signer.chain]:[]]),wt(C,a({onInternalEvent:m},t))}import{jsx as xt}from"react/jsx-runtime";function U(t){if(!vt(t))throw new Error("Invalid parameters: signer is required in versions < 2.0.0");return xt(w,a({},t))}import{jsx as Ft}from"react/jsx-runtime";function v(t){return Ft(C,a({},t))}import{jsx as Nt}from"react/jsx-runtime";function A(t){return Nt(v,a({},t))}import{jsx as Y}from"react/jsx-runtime";function Ge(t){if(Bt(t))return Y(A,a({},t));if(Rt(t))return Y(U,a({},t));throw new Error("Unsupported: Fiat is the only supported payment method.")}import{useMemo as Dt}from"react";import{useState as Vt}from"react";import{clientNames as Ut,crossmintModalService as At,crossmintPayButtonService as Yt}from"@crossmint/client-sdk-base";import{useEffect as Ot,useState as Lt}from"react";function x(){let[t,e]=Lt(!0);return Ot(()=>{e(!1)},[]),{isServerSideRendering:t}}import{createUseStyles as Mt}from"react-jss";var _t="#1e1e1e",G=t=>t==="light",W=t=>({buttonBgColor:G(t)?"white":_t,paragraphColor:G(t)?"black":"white"}),Ht={"@global":{"@import":"url('https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap')"},crossmintButton:{display:"flex","flex-direction":"row","align-items":"center",padding:"0.875rem 0.875rem","font-weight":"900",transition:"opacity ease-in-out 0.25s","border-radius":"0.5rem","font-family":'"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif',outline:"none",border:"none","box-shadow":"0px 8px 15px rgba(0, 0, 0, 0.1)","justify-content":"center",background:({buttonBgColor:t})=>t,"&:hover:enabled":{opacity:"0.6",cursor:"pointer"}},crossmintImg:{width:"21px",height:"21px","margin-right":"0.875rem"},crossmintParagraph:{color:({paragraphColor:t})=>t,margin:"0"}},$=Mt(Ht);import{Fragment as Wt,jsx as F,jsxs as Gt}from"react/jsx-runtime";function co(t){let B=t,{className:e,disabled:o,onClick:r,style:m,tabIndex:d,theme:p="dark",mintTo:l,emailTo:s,listingId:n,auctionId:c,showOverlay:i=!0,mintConfig:u,whPassThroughArgs:I,environment:q,paymentMethod:g,preferredSigninMethod:z,dismissOverlayOnClick:J,prepay:K,locale:N="en-US",currency:Q="usd",successCallbackURL:X="",failureCallbackURL:Z="",loginEmail:j="",projectId:tt,getButtonText:P,checkoutProps:R={experimental:!1,display:"same-tab",paymentMethods:["fiat","ETH","SOL"]}}=B,S=y(B,["className","disabled","onClick","style","tabIndex","theme","mintTo","emailTo","listingId","auctionId","showOverlay","mintConfig","whPassThroughArgs","environment","paymentMethod","preferredSigninMethod","dismissOverlayOnClick","prepay","locale","currency","successCallbackURL","failureCallbackURL","loginEmail","projectId","getButtonText","checkoutProps"]),et="clientId"in S?S.clientId:S.collectionId,[f,ot]=Vt(!1),{isServerSideRendering:nt}=x(),{connect:rt}=At({clientId:et,projectId:tt,showOverlay:i,dismissOverlayOnClick:J,setConnecting:ot,libVersion:h,environment:q,clientName:Ut.reactUi,locale:N,currency:Q,successCallbackURL:X,failureCallbackURL:Z,loginEmail:j}),{getButtonText:st,handleClick:it}=Yt({onClick:r,connecting:f,paymentMethod:g,locale:N,checkoutProps:R}),at=mt=>it(mt,()=>{rt(u,l,s,n,I,g,z,K,R)}),k=$(W(p)),ct=Dt(()=>F("span",{className:k.crossmintParagraph,role:"button-paragraph",children:P!=null?P(f,g||"fiat"):st(f)}),[f,P,g]);return F(Wt,{children:!nt&&Gt("button",{className:`${k.crossmintButton} ${e||""}`,disabled:o,onClick:at,style:a({},m),tabIndex:d,children:[F("img",{className:k.crossmintImg,src:"https://www.crossmint.io/assets/crossmint/logo.svg",alt:"Crossmint logo"}),ct]})})}import{CrossmintEvents as go,useCrossmintEvents as fo}from"@crossmint/client-sdk-base";export{go as CrossmintEvents,Kt as CrossmintNFTCollectionView,te as CrossmintNFTDetail,co as CrossmintPayButton,Ge as CrossmintPaymentElement,fo as useCrossmintEvents};
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/CrossmintNFTCollectionView.tsx","../src/consts/version.ts","../src/components/CrossmintNFTDetail.tsx","../src/components/embed/index.tsx","../src/components/embed/crypto/CryptoEmbeddedCheckout.tsx","../src/hooks/useDeepEffect.ts","../src/components/embed/crypto/CryptoEmbeddedCheckoutIFrame.tsx","../src/components/embed/EmbeddedCheckoutIFrame.tsx","../src/components/embed/fiat/FiatEmbeddedCheckoutIFrame.tsx","../src/components/embed/fiat/FiatEmbeddedCheckout.tsx","../src/components/hosted/CrossmintPayButton.tsx","../src/hooks/useEnvironment.ts","../src/components/hosted/styles.ts","../src/index.ts"],"sourcesContent":["import { assertValidNFTCollectionViewProps, getNFTCollectionViewSrc } from \"@crossmint/client-sdk-base\";\nimport { NFTCollectionViewProps } from \"@crossmint/common-sdk-base\";\n\nimport { LIB_VERSION } from \"../consts/version\";\n\nexport function CrossmintNFTCollectionView(props: NFTCollectionViewProps) {\n assertValidNFTCollectionViewProps(props);\n\n const src = getNFTCollectionViewSrc(props, LIB_VERSION);\n\n return (\n <iframe\n src={src}\n width=\"100%\"\n height=\"100%\"\n style={{\n flexGrow: \"1\",\n border: \"none\",\n margin: \"0\",\n padding: \"0\",\n }}\n role=\"nft-collection-view\"\n />\n );\n}\n","export const LIB_VERSION = \"1.1.10\";\n","import { assertValidValidateNFTDetailProps, getNFTDetailSrc } from \"@crossmint/client-sdk-base\";\nimport { NFTDetailProps } from \"@crossmint/common-sdk-base\";\n\nimport { LIB_VERSION } from \"../consts/version\";\n\nexport function CrossmintNFTDetail(props: NFTDetailProps) {\n assertValidValidateNFTDetailProps(props);\n\n const src = getNFTDetailSrc(props, LIB_VERSION);\n\n return (\n <iframe\n src={src}\n width=\"100%\"\n height=\"100%\"\n style={{\n flexGrow: \"1\",\n border: \"none\",\n margin: \"0\",\n padding: \"0\",\n }}\n role=\"nft-details\"\n />\n );\n}\n","import {\n CrossmintEmbeddedCheckoutProps,\n isCryptoEmbeddedCheckoutProps,\n isFiatEmbeddedCheckoutProps,\n} from \"@crossmint/client-sdk-base\";\n\nimport { CrossmintCryptoEmbeddedCheckout } from \"./crypto/CryptoEmbeddedCheckout\";\nimport { CrossmintFiatEmbeddedCheckout } from \"./fiat/FiatEmbeddedCheckout\";\n\n// TODO: Rename to CrossmintEmbeddedCheckout on v2 major publish, prior announcement since its a breaking change\nexport function CrossmintPaymentElement(props: CrossmintEmbeddedCheckoutProps) {\n if (isFiatEmbeddedCheckoutProps(props)) {\n return <CrossmintFiatEmbeddedCheckout {...props} />;\n }\n if (isCryptoEmbeddedCheckoutProps(props)) {\n return <CrossmintCryptoEmbeddedCheckout {...props} />;\n }\n throw new Error(\"Unsupported: Fiat is the only supported payment method.\");\n}\n","import { CryptoEmbeddedCheckoutProps, isCryptoEmbeddedCheckoutPropsWithSigner } from \"@crossmint/client-sdk-base\";\n\nimport CryptoEmbeddedCheckoutIFrame from \"./CryptoEmbeddedCheckoutIFrame\";\n\nexport function CrossmintCryptoEmbeddedCheckout(props: CryptoEmbeddedCheckoutProps) {\n if (!isCryptoEmbeddedCheckoutPropsWithSigner(props)) {\n throw new Error(\"Invalid parameters: signer is required in versions < 2.0.0\");\n }\n\n return <CryptoEmbeddedCheckoutIFrame {...props} />;\n}\n","import isEqual from \"lodash.isequal\";\nimport { DependencyList, EffectCallback, useEffect, useRef } from \"react\";\n\nexport default function useDeepEffect(callback: EffectCallback, dependencies: DependencyList): void {\n const dependenciesRef = useRef(dependencies);\n\n useEffect(() => {\n const hasChanged = dependencies.some((dep, i) => !isEqual(dep, dependenciesRef.current[i]));\n\n if (hasChanged) {\n dependenciesRef.current = dependencies;\n return callback();\n }\n }, [dependencies]);\n}\n","import useDeepEffect from \"@/hooks/useDeepEffect\";\nimport bs58 from \"bs58\";\n\nimport {\n CryptoEmbeddedCheckoutPropsWithSigner,\n ETHEmbeddedCheckoutSigner,\n IncomingInternalEvent,\n IncomingInternalEvents,\n OutgoingInternalEvents,\n SOLEmbeddedCheckoutSigner,\n crossmintIFrameService,\n embeddedCheckoutPropsToUpdatableParamsPayload,\n} from \"@crossmint/client-sdk-base\";\nimport { EVMBlockchainIncludingTestnet } from \"@crossmint/common-sdk-base\";\n\nimport CrossmintEmbeddedCheckoutIFrame from \"../EmbeddedCheckoutIFrame\";\n\nexport default function CryptoEmbeddedCheckoutIFrame(props: CryptoEmbeddedCheckoutPropsWithSigner) {\n const { emitInternalEvent } = crossmintIFrameService(props);\n\n const { signer, paymentMethod } = props;\n\n function onInternalEvent(event: IncomingInternalEvent) {\n const { type, payload } = event;\n\n if (type === IncomingInternalEvents.CRYPTO_PAYMENT_INCOMING_TRANSACTION) {\n const { serializedTransaction } = payload;\n console.log(\"[Crossmint] Received incoming transaction\", serializedTransaction);\n handleIncomingTransaction(serializedTransaction);\n }\n\n if (type === IncomingInternalEvents.CRYPTO_CHAIN_SWITCH) {\n const { chain } = payload;\n console.log(\"[Crossmint] Received change of chain\", chain);\n\n const handleChainSwitch = (signer as ETHEmbeddedCheckoutSigner).handleChainSwitch;\n if (handleChainSwitch == null) {\n throw new Error(\"switchNetwork function should have been defined\");\n }\n handleChainSwitch(chain as EVMBlockchainIncludingTestnet);\n }\n }\n\n async function handleIncomingTransaction(serializedTransaction: string) {\n try {\n let txId: string;\n switch (paymentMethod) {\n case \"SOL\":\n txId = await handleSOLTransaction(signer, serializedTransaction);\n break;\n case \"ETH\":\n txId = await handleETHTransaction(signer, serializedTransaction);\n break;\n default:\n throw new Error(`Unsupported payment method ${paymentMethod}`);\n }\n\n console.log(\"[Crossmint] Signed and sent transaction\", txId);\n emitInternalEvent({\n type: OutgoingInternalEvents.CRYPTO_PAYMENT_USER_ACCEPTED,\n payload: {\n txId,\n },\n });\n } catch (e) {\n console.error(\"[Crossmint] Failed to sign and send transaction\", e);\n emitInternalEvent({\n type: OutgoingInternalEvents.CRYPTO_PAYMENT_USER_REJECTED,\n payload: {},\n });\n }\n }\n\n async function handleSOLTransaction(signer: SOLEmbeddedCheckoutSigner, serializedTransaction: string) {\n // @ts-ignore - Error becasue we dont use 'module' field in tsconfig, which is expected because we use tsup to compile\n const { Transaction } = await import(\"@solana/web3.js\");\n const transaction = Transaction.from(bs58.decode(serializedTransaction));\n console.log(\"[Crossmint] Deserialized SOL transaction\", transaction);\n\n return await signer.signAndSendTransaction(transaction);\n }\n\n async function handleETHTransaction(signer: ETHEmbeddedCheckoutSigner, serializedTransaction: string) {\n // @ts-ignore - Error becasue we dont use 'module' field in tsconfig, which is expected because we use tsup to compile\n const { parse: parseTransaction } = await import(\"@ethersproject/transactions\");\n const transaction = parseTransaction(serializedTransaction);\n console.log(\"[Crossmint] Deserialized ETH transaction\", transaction);\n\n return await signer.signAndSendTransaction(transaction);\n }\n\n useDeepEffect(() => {\n emitInternalEvent({\n type: \"params-update\",\n payload: embeddedCheckoutPropsToUpdatableParamsPayload(props),\n });\n }, [\n props.signer.address,\n props.recipient,\n props.mintConfig,\n props.locale,\n props.currency,\n props.whPassThroughArgs,\n ...(\"chain\" in props.signer ? [props.signer.chain] : []),\n ]);\n\n return <CrossmintEmbeddedCheckoutIFrame onInternalEvent={onInternalEvent} {...props} />;\n}\n","import { useEffect, useState } from \"react\";\n\nimport { IncomingInternalEvent, IncomingInternalEvents, crossmintIFrameService } from \"@crossmint/client-sdk-base\";\nimport { CrossmintEmbeddedCheckoutProps } from \"@crossmint/client-sdk-base\";\n\ntype CrossmintEmbeddedCheckoutIFrameProps = CrossmintEmbeddedCheckoutProps & {\n onInternalEvent?: (event: IncomingInternalEvent) => void;\n};\n\nexport default function CrossmintEmbeddedCheckoutIFrame({\n onInternalEvent,\n ...props\n}: CrossmintEmbeddedCheckoutIFrameProps) {\n const { getUrl, listenToEvents, listenToInternalEvents } = crossmintIFrameService(props);\n\n const [height, setHeight] = useState(0);\n const [url] = useState(getUrl(props));\n\n // Public events\n useEffect(() => {\n const clearListener = listenToEvents((event) => props.onEvent?.(event.data));\n\n return () => {\n clearListener();\n };\n }, []);\n\n // Internal events\n useEffect(() => {\n const clearListener = listenToInternalEvents((event) => {\n const { type, payload } = event.data;\n\n if (type === IncomingInternalEvents.UI_HEIGHT_CHANGED) {\n setHeight(payload.height);\n }\n\n onInternalEvent?.(event.data);\n });\n\n return () => {\n clearListener();\n };\n }, []);\n\n return (\n <iframe\n src={url}\n id=\"crossmint-embedded-checkout.iframe\"\n role=\"crossmint-embedded-checkout.iframe\"\n allow=\"payment *\"\n style={{\n boxShadow: \"none\",\n border: \"none\",\n padding: \"0px\",\n width: \"100%\",\n minWidth: \"100%\",\n overflow: \"hidden\",\n display: \"block\",\n userSelect: \"none\",\n transform: \"translate(0px)\",\n opacity: \"1\",\n transition: \"ease 0s, opacity 0.4s ease 0.1s\",\n height: `${height}px`,\n }}\n />\n );\n}\n","import { FiatEmbeddedCheckoutProps } from \"@crossmint/client-sdk-base\";\n\nimport CrossmintEmbeddedCheckoutIFrame from \"../EmbeddedCheckoutIFrame\";\n\nexport default function FiatEmbeddedCheckoutIFrame(props: FiatEmbeddedCheckoutProps) {\n return <CrossmintEmbeddedCheckoutIFrame {...props} />;\n}\n","import FiatEmbeddedCheckoutIFrame from \"@/components/embed/fiat/FiatEmbeddedCheckoutIFrame\";\nimport { FiatEmbeddedCheckoutProps } from \"@crossmint/client-sdk-base\";\n\nexport function CrossmintFiatEmbeddedCheckout(props: FiatEmbeddedCheckoutProps) {\n return <FiatEmbeddedCheckoutIFrame {...props} />;\n}\n","import { CSSProperties, MouseEvent, useMemo } from \"react\";\nimport { useState } from \"react\";\n\nimport {\n CheckoutProps,\n CrossmintPayButtonProps,\n clientNames,\n crossmintModalService,\n crossmintPayButtonService,\n} from \"@crossmint/client-sdk-base\";\n\nimport { LIB_VERSION } from \"../../consts/version\";\nimport useEnvironment from \"../../hooks/useEnvironment\";\nimport { formatProps, useStyles } from \"./styles\";\n\nexport type CrossmintPayButtonReactProps = CrossmintPayButtonProps & {\n onClick?: (e: MouseEvent<HTMLButtonElement>) => void;\n style?: CSSProperties;\n};\n\nexport function CrossmintPayButton(buttonProps: CrossmintPayButtonReactProps) {\n const {\n className,\n disabled,\n onClick,\n style,\n tabIndex,\n theme = \"dark\",\n mintTo,\n emailTo,\n listingId,\n auctionId,\n showOverlay = true,\n mintConfig,\n whPassThroughArgs,\n environment,\n paymentMethod,\n preferredSigninMethod,\n dismissOverlayOnClick,\n prepay,\n locale = \"en-US\",\n currency = \"usd\",\n successCallbackURL = \"\",\n failureCallbackURL = \"\",\n loginEmail = \"\",\n projectId,\n getButtonText,\n checkoutProps = {\n experimental: false,\n display: \"same-tab\",\n paymentMethods: [\"fiat\", \"ETH\", \"SOL\"],\n } as CheckoutProps,\n ...props\n } = buttonProps;\n\n const collectionId = \"clientId\" in props ? props.clientId : props.collectionId;\n\n const [connecting, setConnecting] = useState(false);\n const { isServerSideRendering } = useEnvironment();\n\n const { connect } = crossmintModalService({\n clientId: collectionId,\n projectId,\n showOverlay,\n dismissOverlayOnClick,\n setConnecting,\n libVersion: LIB_VERSION,\n environment,\n clientName: clientNames.reactUi,\n locale,\n currency,\n successCallbackURL,\n failureCallbackURL,\n loginEmail,\n });\n\n const { getButtonText: getButtonTextInternal, handleClick } = crossmintPayButtonService({\n onClick,\n connecting,\n paymentMethod,\n locale,\n checkoutProps,\n });\n\n const _handleClick = (event: MouseEvent<HTMLButtonElement>) =>\n handleClick(event, () => {\n connect(\n mintConfig,\n mintTo,\n emailTo,\n listingId,\n whPassThroughArgs,\n paymentMethod,\n preferredSigninMethod,\n prepay,\n checkoutProps\n );\n });\n\n const classes = useStyles(formatProps(theme));\n\n const content = useMemo(() => {\n return (\n <span className={classes.crossmintParagraph} role=\"button-paragraph\">\n {getButtonText != null\n ? getButtonText(connecting, paymentMethod || \"fiat\")\n : getButtonTextInternal(connecting)}\n </span>\n );\n }, [connecting, getButtonText, paymentMethod]);\n\n return (\n <>\n {!isServerSideRendering && (\n <button\n className={`${classes.crossmintButton} ${className || \"\"}`}\n disabled={disabled}\n onClick={_handleClick}\n style={{ ...style }}\n tabIndex={tabIndex}\n >\n <img\n className={classes.crossmintImg}\n src=\"https://www.crossmint.io/assets/crossmint/logo.svg\"\n alt=\"Crossmint logo\"\n />\n {content}\n </button>\n )}\n </>\n );\n}\n","import { useEffect, useState } from \"react\";\r\n\r\nexport default function useEnvironment() {\r\n const [isServerSideRendering, setIsServerSideRendering] = useState(true);\r\n useEffect(() => {\r\n setIsServerSideRendering(false);\r\n }, []);\r\n\r\n return { isServerSideRendering };\r\n}\r\n","import { createUseStyles } from \"react-jss\";\n\nconst DARK_BG = \"#1e1e1e\";\n\ninterface CustomStylingProps {\n buttonBgColor?: string;\n paragraphColor?: string;\n}\n\nconst themeIsLight = (theme: string) => theme === \"light\";\n\nexport const formatProps = (theme: string): CustomStylingProps => ({\n buttonBgColor: themeIsLight(theme) ? \"white\" : DARK_BG,\n paragraphColor: themeIsLight(theme) ? \"black\" : \"white\",\n});\n\nexport const useStyles = createUseStyles({\n \"@global\": {\n \"@import\":\n \"url('https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap')\",\n },\n crossmintButton: {\n display: \"flex\",\n \"flex-direction\": \"row\",\n \"align-items\": \"center\",\n padding: \"0.875rem 0.875rem\",\n \"font-weight\": \"900\",\n transition: \"opacity ease-in-out 0.25s\",\n \"border-radius\": \"0.5rem\",\n \"font-family\": `\"Inter\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Open Sans\", \"Helvetica Neue\", sans-serif`,\n outline: \"none\",\n border: \"none\",\n \"box-shadow\": \"0px 8px 15px rgba(0, 0, 0, 0.1)\",\n \"justify-content\": \"center\",\n background: ({ buttonBgColor }: CustomStylingProps) => buttonBgColor,\n\n \"&:hover:enabled\": {\n opacity: \"0.6\",\n cursor: \"pointer\",\n },\n },\n crossmintImg: {\n width: \"21px\",\n height: \"21px\",\n \"margin-right\": \"0.875rem\",\n },\n crossmintParagraph: {\n color: ({ paragraphColor }: CustomStylingProps) => paragraphColor,\n margin: \"0\",\n },\n});\n","export * from \"./components\";\n\nexport { CrossmintEvents, useCrossmintEvents } from \"@crossmint/client-sdk-base\";\nexport type { CrossmintEvent, CrossmintEventMap } from \"@crossmint/client-sdk-base\";\n"],"mappings":"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","names":["assertValidNFTCollectionViewProps","getNFTCollectionViewSrc","LIB_VERSION","jsx","CrossmintNFTCollectionView","props","assertValidNFTCollectionViewProps","src","getNFTCollectionViewSrc","LIB_VERSION","assertValidValidateNFTDetailProps","getNFTDetailSrc","jsx","CrossmintNFTDetail","props","assertValidValidateNFTDetailProps","src","getNFTDetailSrc","LIB_VERSION","isCryptoEmbeddedCheckoutProps","isFiatEmbeddedCheckoutProps","isCryptoEmbeddedCheckoutPropsWithSigner","isEqual","useEffect","useRef","useDeepEffect","callback","dependencies","dependenciesRef","dep","i","bs58","IncomingInternalEvents","OutgoingInternalEvents","crossmintIFrameService","embeddedCheckoutPropsToUpdatableParamsPayload","useEffect","useState","IncomingInternalEvents","crossmintIFrameService","jsx","CrossmintEmbeddedCheckoutIFrame","_a","_b","onInternalEvent","props","__objRest","getUrl","listenToEvents","listenToInternalEvents","crossmintIFrameService","height","setHeight","useState","url","useEffect","clearListener","event","type","payload","IncomingInternalEvents","jsx","CryptoEmbeddedCheckoutIFrame","props","emitInternalEvent","crossmintIFrameService","signer","paymentMethod","onInternalEvent","event","type","payload","IncomingInternalEvents","serializedTransaction","handleIncomingTransaction","chain","handleChainSwitch","__async","txId","handleSOLTransaction","handleETHTransaction","OutgoingInternalEvents","e","Transaction","transaction","bs58","parseTransaction","useDeepEffect","embeddedCheckoutPropsToUpdatableParamsPayload","CrossmintEmbeddedCheckoutIFrame","__spreadValues","jsx","CrossmintCryptoEmbeddedCheckout","props","isCryptoEmbeddedCheckoutPropsWithSigner","CryptoEmbeddedCheckoutIFrame","__spreadValues","jsx","FiatEmbeddedCheckoutIFrame","props","CrossmintEmbeddedCheckoutIFrame","__spreadValues","jsx","CrossmintFiatEmbeddedCheckout","props","FiatEmbeddedCheckoutIFrame","__spreadValues","jsx","CrossmintPaymentElement","props","isFiatEmbeddedCheckoutProps","CrossmintFiatEmbeddedCheckout","__spreadValues","isCryptoEmbeddedCheckoutProps","CrossmintCryptoEmbeddedCheckout","useMemo","useState","clientNames","crossmintModalService","crossmintPayButtonService","useEffect","useState","useEnvironment","isServerSideRendering","setIsServerSideRendering","createUseStyles","DARK_BG","themeIsLight","theme","formatProps","useStyles","buttonBgColor","paragraphColor","Fragment","jsx","jsxs","CrossmintPayButton","buttonProps","_a","className","disabled","onClick","style","tabIndex","theme","mintTo","emailTo","listingId","auctionId","showOverlay","mintConfig","whPassThroughArgs","environment","paymentMethod","preferredSigninMethod","dismissOverlayOnClick","prepay","locale","currency","successCallbackURL","failureCallbackURL","loginEmail","projectId","getButtonText","checkoutProps","props","__objRest","collectionId","connecting","setConnecting","useState","isServerSideRendering","useEnvironment","connect","crossmintModalService","LIB_VERSION","clientNames","getButtonTextInternal","handleClick","crossmintPayButtonService","_handleClick","event","classes","useStyles","formatProps","content","useMemo","__spreadValues","CrossmintEvents","useCrossmintEvents"]}
1
+ {"version":3,"sources":["../src/components/CrossmintNFTCollectionView.tsx","../src/consts/version.ts","../src/components/CrossmintNFTDetail.tsx","../src/components/embed/index.tsx","../src/components/embed/crypto/CryptoEmbeddedCheckout.tsx","../src/hooks/useDeepEffect.ts","../src/components/embed/crypto/CryptoEmbeddedCheckoutIFrame.tsx","../src/components/embed/EmbeddedCheckoutIFrame.tsx","../src/components/embed/fiat/FiatEmbeddedCheckoutIFrame.tsx","../src/components/embed/fiat/FiatEmbeddedCheckout.tsx","../src/components/hosted/CrossmintPayButton.tsx","../src/hooks/useEnvironment.ts","../src/components/hosted/styles.ts","../src/index.ts"],"sourcesContent":["import { assertValidNFTCollectionViewProps, getNFTCollectionViewSrc } from \"@crossmint/client-sdk-base\";\nimport { NFTCollectionViewProps } from \"@crossmint/common-sdk-base\";\n\nimport { LIB_VERSION } from \"../consts/version\";\n\nexport function CrossmintNFTCollectionView(props: NFTCollectionViewProps) {\n assertValidNFTCollectionViewProps(props);\n\n const src = getNFTCollectionViewSrc(props, LIB_VERSION);\n\n return (\n <iframe\n src={src}\n width=\"100%\"\n height=\"100%\"\n style={{\n flexGrow: \"1\",\n border: \"none\",\n margin: \"0\",\n padding: \"0\",\n }}\n role=\"nft-collection-view\"\n />\n );\n}\n","export const LIB_VERSION = \"1.1.11\";\n","import { assertValidValidateNFTDetailProps, getNFTDetailSrc } from \"@crossmint/client-sdk-base\";\nimport { NFTDetailProps } from \"@crossmint/common-sdk-base\";\n\nimport { LIB_VERSION } from \"../consts/version\";\n\nexport function CrossmintNFTDetail(props: NFTDetailProps) {\n assertValidValidateNFTDetailProps(props);\n\n const src = getNFTDetailSrc(props, LIB_VERSION);\n\n return (\n <iframe\n src={src}\n width=\"100%\"\n height=\"100%\"\n style={{\n flexGrow: \"1\",\n border: \"none\",\n margin: \"0\",\n padding: \"0\",\n }}\n role=\"nft-details\"\n />\n );\n}\n","import {\n CrossmintEmbeddedCheckoutProps,\n isCryptoEmbeddedCheckoutProps,\n isFiatEmbeddedCheckoutProps,\n} from \"@crossmint/client-sdk-base\";\n\nimport { CrossmintCryptoEmbeddedCheckout } from \"./crypto/CryptoEmbeddedCheckout\";\nimport { CrossmintFiatEmbeddedCheckout } from \"./fiat/FiatEmbeddedCheckout\";\n\n// TODO: Rename to CrossmintEmbeddedCheckout on v2 major publish, prior announcement since its a breaking change\nexport function CrossmintPaymentElement(props: CrossmintEmbeddedCheckoutProps) {\n if (isFiatEmbeddedCheckoutProps(props)) {\n return <CrossmintFiatEmbeddedCheckout {...props} />;\n }\n if (isCryptoEmbeddedCheckoutProps(props)) {\n return <CrossmintCryptoEmbeddedCheckout {...props} />;\n }\n throw new Error(\"Unsupported: Fiat is the only supported payment method.\");\n}\n","import { CryptoEmbeddedCheckoutProps, isCryptoEmbeddedCheckoutPropsWithSigner } from \"@crossmint/client-sdk-base\";\n\nimport CryptoEmbeddedCheckoutIFrame from \"./CryptoEmbeddedCheckoutIFrame\";\n\nexport function CrossmintCryptoEmbeddedCheckout(props: CryptoEmbeddedCheckoutProps) {\n if (!isCryptoEmbeddedCheckoutPropsWithSigner(props)) {\n throw new Error(\"Invalid parameters: signer is required in versions < 2.0.0\");\n }\n\n return <CryptoEmbeddedCheckoutIFrame {...props} />;\n}\n","import isEqual from \"lodash.isequal\";\nimport { DependencyList, EffectCallback, useEffect, useRef } from \"react\";\n\nexport default function useDeepEffect(callback: EffectCallback, dependencies: DependencyList): void {\n const dependenciesRef = useRef(dependencies);\n\n useEffect(() => {\n const hasChanged = dependencies.some((dep, i) => !isEqual(dep, dependenciesRef.current[i]));\n\n if (hasChanged) {\n dependenciesRef.current = dependencies;\n return callback();\n }\n }, [dependencies]);\n}\n","import useDeepEffect from \"@/hooks/useDeepEffect\";\nimport bs58 from \"bs58\";\n\nimport {\n CryptoEmbeddedCheckoutPropsWithSigner,\n ETHEmbeddedCheckoutSigner,\n IncomingInternalEvent,\n IncomingInternalEvents,\n OutgoingInternalEvents,\n SOLEmbeddedCheckoutSigner,\n crossmintIFrameService,\n embeddedCheckoutPropsToUpdatableParamsPayload,\n} from \"@crossmint/client-sdk-base\";\nimport { EVMBlockchainIncludingTestnet } from \"@crossmint/common-sdk-base\";\n\nimport CrossmintEmbeddedCheckoutIFrame from \"../EmbeddedCheckoutIFrame\";\n\nexport default function CryptoEmbeddedCheckoutIFrame(props: CryptoEmbeddedCheckoutPropsWithSigner) {\n const { emitInternalEvent } = crossmintIFrameService(props);\n\n const { signer, paymentMethod } = props;\n\n function onInternalEvent(event: IncomingInternalEvent) {\n const { type, payload } = event;\n\n if (type === IncomingInternalEvents.CRYPTO_PAYMENT_INCOMING_TRANSACTION) {\n const { serializedTransaction } = payload;\n console.log(\"[Crossmint] Received incoming transaction\", serializedTransaction);\n handleIncomingTransaction(serializedTransaction);\n }\n\n if (type === IncomingInternalEvents.CRYPTO_CHAIN_SWITCH) {\n const { chain } = payload;\n console.log(\"[Crossmint] Received change of chain\", chain);\n\n const handleChainSwitch = (signer as ETHEmbeddedCheckoutSigner).handleChainSwitch;\n if (handleChainSwitch == null) {\n throw new Error(\"switchNetwork function should have been defined\");\n }\n handleChainSwitch(chain as EVMBlockchainIncludingTestnet);\n }\n }\n\n async function handleIncomingTransaction(serializedTransaction: string) {\n try {\n let txId: string;\n switch (paymentMethod) {\n case \"SOL\":\n txId = await handleSOLTransaction(signer, serializedTransaction);\n break;\n case \"ETH\":\n txId = await handleETHTransaction(signer, serializedTransaction);\n break;\n default:\n throw new Error(`Unsupported payment method ${paymentMethod}`);\n }\n\n console.log(\"[Crossmint] Signed and sent transaction\", txId);\n emitInternalEvent({\n type: OutgoingInternalEvents.CRYPTO_PAYMENT_USER_ACCEPTED,\n payload: {\n txId,\n },\n });\n } catch (e) {\n console.error(\"[Crossmint] Failed to sign and send transaction\", e);\n emitInternalEvent({\n type: OutgoingInternalEvents.CRYPTO_PAYMENT_USER_REJECTED,\n payload: {},\n });\n }\n }\n\n async function handleSOLTransaction(signer: SOLEmbeddedCheckoutSigner, serializedTransaction: string) {\n // @ts-ignore - Error becasue we dont use 'module' field in tsconfig, which is expected because we use tsup to compile\n const { Transaction } = await import(\"@solana/web3.js\");\n const transaction = Transaction.from(bs58.decode(serializedTransaction));\n console.log(\"[Crossmint] Deserialized SOL transaction\", transaction);\n\n return await signer.signAndSendTransaction(transaction);\n }\n\n async function handleETHTransaction(signer: ETHEmbeddedCheckoutSigner, serializedTransaction: string) {\n // @ts-ignore - Error becasue we dont use 'module' field in tsconfig, which is expected because we use tsup to compile\n const { parse: parseTransaction } = await import(\"@ethersproject/transactions\");\n const transaction = parseTransaction(serializedTransaction);\n console.log(\"[Crossmint] Deserialized ETH transaction\", transaction);\n\n return await signer.signAndSendTransaction(transaction);\n }\n\n useDeepEffect(() => {\n emitInternalEvent({\n type: \"params-update\",\n payload: embeddedCheckoutPropsToUpdatableParamsPayload(props),\n });\n }, [\n props.signer.address,\n props.recipient,\n props.mintConfig,\n props.locale,\n props.currency,\n props.whPassThroughArgs,\n ...(\"chain\" in props.signer ? [props.signer.chain] : []),\n ]);\n\n return <CrossmintEmbeddedCheckoutIFrame onInternalEvent={onInternalEvent} {...props} />;\n}\n","import { useEffect, useState } from \"react\";\n\nimport { IncomingInternalEvent, IncomingInternalEvents, crossmintIFrameService } from \"@crossmint/client-sdk-base\";\nimport { CrossmintEmbeddedCheckoutProps } from \"@crossmint/client-sdk-base\";\n\ntype CrossmintEmbeddedCheckoutIFrameProps = CrossmintEmbeddedCheckoutProps & {\n onInternalEvent?: (event: IncomingInternalEvent) => void;\n};\n\nexport default function CrossmintEmbeddedCheckoutIFrame({\n onInternalEvent,\n ...props\n}: CrossmintEmbeddedCheckoutIFrameProps) {\n const { getUrl, listenToEvents, listenToInternalEvents } = crossmintIFrameService(props);\n\n const [height, setHeight] = useState(0);\n const [url] = useState(getUrl(props));\n\n // Public events\n useEffect(() => {\n const clearListener = listenToEvents((event) => props.onEvent?.(event.data));\n\n return () => {\n clearListener();\n };\n }, []);\n\n // Internal events\n useEffect(() => {\n const clearListener = listenToInternalEvents((event) => {\n const { type, payload } = event.data;\n\n if (type === IncomingInternalEvents.UI_HEIGHT_CHANGED) {\n setHeight(payload.height);\n }\n\n onInternalEvent?.(event.data);\n });\n\n return () => {\n clearListener();\n };\n }, []);\n\n return (\n <iframe\n src={url}\n id=\"crossmint-embedded-checkout.iframe\"\n role=\"crossmint-embedded-checkout.iframe\"\n allow=\"payment *\"\n style={{\n boxShadow: \"none\",\n border: \"none\",\n padding: \"0px\",\n width: \"100%\",\n minWidth: \"100%\",\n overflow: \"hidden\",\n display: \"block\",\n userSelect: \"none\",\n transform: \"translate(0px)\",\n opacity: \"1\",\n transition: \"ease 0s, opacity 0.4s ease 0.1s\",\n height: `${height}px`,\n }}\n />\n );\n}\n","import { FiatEmbeddedCheckoutProps } from \"@crossmint/client-sdk-base\";\n\nimport CrossmintEmbeddedCheckoutIFrame from \"../EmbeddedCheckoutIFrame\";\n\nexport default function FiatEmbeddedCheckoutIFrame(props: FiatEmbeddedCheckoutProps) {\n return <CrossmintEmbeddedCheckoutIFrame {...props} />;\n}\n","import FiatEmbeddedCheckoutIFrame from \"@/components/embed/fiat/FiatEmbeddedCheckoutIFrame\";\n\nimport { FiatEmbeddedCheckoutProps } from \"@crossmint/client-sdk-base\";\n\nexport function CrossmintFiatEmbeddedCheckout(props: FiatEmbeddedCheckoutProps) {\n return <FiatEmbeddedCheckoutIFrame {...props} />;\n}\n","import { CSSProperties, MouseEvent, useMemo } from \"react\";\nimport { useState } from \"react\";\n\nimport {\n CheckoutProps,\n CrossmintPayButtonProps,\n clientNames,\n crossmintModalService,\n crossmintPayButtonService,\n} from \"@crossmint/client-sdk-base\";\n\nimport { LIB_VERSION } from \"../../consts/version\";\nimport useEnvironment from \"../../hooks/useEnvironment\";\nimport { formatProps, useStyles } from \"./styles\";\n\nexport type CrossmintPayButtonReactProps = CrossmintPayButtonProps & {\n onClick?: (e: MouseEvent<HTMLButtonElement>) => void;\n style?: CSSProperties;\n};\n\nexport function CrossmintPayButton(buttonProps: CrossmintPayButtonReactProps) {\n const {\n className,\n disabled,\n onClick,\n style,\n tabIndex,\n theme = \"dark\",\n mintTo,\n emailTo,\n listingId,\n auctionId,\n showOverlay = true,\n mintConfig,\n whPassThroughArgs,\n environment,\n paymentMethod,\n preferredSigninMethod,\n dismissOverlayOnClick,\n prepay,\n locale = \"en-US\",\n currency = \"usd\",\n successCallbackURL = \"\",\n failureCallbackURL = \"\",\n loginEmail = \"\",\n projectId,\n getButtonText,\n checkoutProps = {\n experimental: false,\n display: \"same-tab\",\n paymentMethods: [\"fiat\", \"ETH\", \"SOL\"],\n } as CheckoutProps,\n ...props\n } = buttonProps;\n\n const collectionId = \"clientId\" in props ? props.clientId : props.collectionId;\n\n const [connecting, setConnecting] = useState(false);\n const { isServerSideRendering } = useEnvironment();\n\n const { connect } = crossmintModalService({\n clientId: collectionId,\n projectId,\n showOverlay,\n dismissOverlayOnClick,\n setConnecting,\n libVersion: LIB_VERSION,\n environment,\n clientName: clientNames.reactUi,\n locale,\n currency,\n successCallbackURL,\n failureCallbackURL,\n loginEmail,\n });\n\n const { getButtonText: getButtonTextInternal, handleClick } = crossmintPayButtonService({\n onClick,\n connecting,\n paymentMethod,\n locale,\n checkoutProps,\n });\n\n const _handleClick = (event: MouseEvent<HTMLButtonElement>) =>\n handleClick(event, () => {\n connect(\n mintConfig,\n mintTo,\n emailTo,\n listingId,\n whPassThroughArgs,\n paymentMethod,\n preferredSigninMethod,\n prepay,\n checkoutProps\n );\n });\n\n const classes = useStyles(formatProps(theme));\n\n const content = useMemo(() => {\n return (\n <span className={classes.crossmintParagraph} role=\"button-paragraph\">\n {getButtonText != null\n ? getButtonText(connecting, paymentMethod || \"fiat\")\n : getButtonTextInternal(connecting)}\n </span>\n );\n }, [connecting, getButtonText, paymentMethod]);\n\n return (\n <>\n {!isServerSideRendering && (\n <button\n className={`${classes.crossmintButton} ${className || \"\"}`}\n disabled={disabled}\n onClick={_handleClick}\n style={{ ...style }}\n tabIndex={tabIndex}\n >\n <img\n className={classes.crossmintImg}\n src=\"https://www.crossmint.io/assets/crossmint/logo.svg\"\n alt=\"Crossmint logo\"\n />\n {content}\n </button>\n )}\n </>\n );\n}\n","import { useEffect, useState } from \"react\";\n\nexport default function useEnvironment() {\n const [isServerSideRendering, setIsServerSideRendering] = useState(true);\n useEffect(() => {\n setIsServerSideRendering(false);\n }, []);\n\n return { isServerSideRendering };\n}\n","import { Styles, createUseStyles } from \"react-jss\";\n\nconst DARK_BG = \"#1e1e1e\";\n\nconst themeIsLight = (theme: string) => theme === \"light\";\n\nexport const formatProps = (theme: string): CustomStylingProps => ({\n buttonBgColor: themeIsLight(theme) ? \"white\" : DARK_BG,\n paragraphColor: themeIsLight(theme) ? \"black\" : \"white\",\n});\n\nexport type Classes<Name extends string | number | symbol = string> = Record<Name, string>;\ninterface CustomStylingProps {\n buttonBgColor?: string;\n paragraphColor?: string;\n}\n\nconst styles: Styles<\"crossmintButton\" | \"crossmintImg\" | \"crossmintParagraph\" | \"@global\", CustomStylingProps> = {\n \"@global\": {\n \"@import\":\n \"url('https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap')\",\n },\n crossmintButton: {\n display: \"flex\",\n \"flex-direction\": \"row\",\n \"align-items\": \"center\",\n padding: \"0.875rem 0.875rem\",\n \"font-weight\": \"900\",\n transition: \"opacity ease-in-out 0.25s\",\n \"border-radius\": \"0.5rem\",\n \"font-family\": `\"Inter\", -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, Cantarell, \"Open Sans\", \"Helvetica Neue\", sans-serif`,\n outline: \"none\",\n border: \"none\",\n \"box-shadow\": \"0px 8px 15px rgba(0, 0, 0, 0.1)\",\n \"justify-content\": \"center\",\n background: ({ buttonBgColor }: CustomStylingProps) => buttonBgColor,\n\n \"&:hover:enabled\": {\n opacity: \"0.6\",\n cursor: \"pointer\",\n },\n },\n crossmintImg: {\n width: \"21px\",\n height: \"21px\",\n \"margin-right\": \"0.875rem\",\n },\n crossmintParagraph: {\n color: ({ paragraphColor }: CustomStylingProps) => paragraphColor,\n margin: \"0\",\n },\n};\n\nexport const useStyles: (\n data?:\n | CustomStylingProps & {\n theme?: any;\n }\n) => Classes<\"crossmintButton\" | \"crossmintImg\" | \"crossmintParagraph\" | \"@global\"> = createUseStyles(styles);\n","export * from \"./components\";\n\nexport { CrossmintEvents, useCrossmintEvents } from \"@crossmint/client-sdk-base\";\nexport type { CrossmintEvent, CrossmintEventMap } from \"@crossmint/client-sdk-base\";\n"],"mappings":"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","names":["assertValidNFTCollectionViewProps","getNFTCollectionViewSrc","LIB_VERSION","jsx","CrossmintNFTCollectionView","props","assertValidNFTCollectionViewProps","src","getNFTCollectionViewSrc","LIB_VERSION","assertValidValidateNFTDetailProps","getNFTDetailSrc","jsx","CrossmintNFTDetail","props","assertValidValidateNFTDetailProps","src","getNFTDetailSrc","LIB_VERSION","isCryptoEmbeddedCheckoutProps","isFiatEmbeddedCheckoutProps","isCryptoEmbeddedCheckoutPropsWithSigner","isEqual","useEffect","useRef","useDeepEffect","callback","dependencies","dependenciesRef","dep","i","bs58","IncomingInternalEvents","OutgoingInternalEvents","crossmintIFrameService","embeddedCheckoutPropsToUpdatableParamsPayload","useEffect","useState","IncomingInternalEvents","crossmintIFrameService","jsx","CrossmintEmbeddedCheckoutIFrame","_a","_b","onInternalEvent","props","__objRest","getUrl","listenToEvents","listenToInternalEvents","crossmintIFrameService","height","setHeight","useState","url","useEffect","clearListener","event","type","payload","IncomingInternalEvents","jsx","CryptoEmbeddedCheckoutIFrame","props","emitInternalEvent","crossmintIFrameService","signer","paymentMethod","onInternalEvent","event","type","payload","IncomingInternalEvents","serializedTransaction","handleIncomingTransaction","chain","handleChainSwitch","__async","txId","handleSOLTransaction","handleETHTransaction","OutgoingInternalEvents","e","Transaction","transaction","bs58","parseTransaction","useDeepEffect","embeddedCheckoutPropsToUpdatableParamsPayload","CrossmintEmbeddedCheckoutIFrame","__spreadValues","jsx","CrossmintCryptoEmbeddedCheckout","props","isCryptoEmbeddedCheckoutPropsWithSigner","CryptoEmbeddedCheckoutIFrame","__spreadValues","jsx","FiatEmbeddedCheckoutIFrame","props","CrossmintEmbeddedCheckoutIFrame","__spreadValues","jsx","CrossmintFiatEmbeddedCheckout","props","FiatEmbeddedCheckoutIFrame","__spreadValues","jsx","CrossmintPaymentElement","props","isFiatEmbeddedCheckoutProps","CrossmintFiatEmbeddedCheckout","__spreadValues","isCryptoEmbeddedCheckoutProps","CrossmintCryptoEmbeddedCheckout","useMemo","useState","clientNames","crossmintModalService","crossmintPayButtonService","useEffect","useState","useEnvironment","isServerSideRendering","setIsServerSideRendering","createUseStyles","DARK_BG","themeIsLight","theme","formatProps","styles","buttonBgColor","paragraphColor","useStyles","Fragment","jsx","jsxs","CrossmintPayButton","buttonProps","_a","className","disabled","onClick","style","tabIndex","theme","mintTo","emailTo","listingId","auctionId","showOverlay","mintConfig","whPassThroughArgs","environment","paymentMethod","preferredSigninMethod","dismissOverlayOnClick","prepay","locale","currency","successCallbackURL","failureCallbackURL","loginEmail","projectId","getButtonText","checkoutProps","props","__objRest","collectionId","connecting","setConnecting","useState","isServerSideRendering","useEnvironment","connect","crossmintModalService","LIB_VERSION","clientNames","getButtonTextInternal","handleClick","crossmintPayButtonService","_handleClick","event","classes","useStyles","formatProps","content","useMemo","__spreadValues","CrossmintEvents","useCrossmintEvents"]}
package/package.json CHANGED
@@ -1,53 +1,49 @@
1
1
  {
2
- "author": "Paella Labs Inc",
3
- "dependencies": {
4
- "@crossmint/client-sdk-base": "1.1.12",
5
- "@crossmint/common-sdk-base": "0.0.11",
6
- "@ethersproject/transactions": "5.7.0",
7
- "@solana/web3.js": "1.78.5",
8
- "bs58": "5.0.0",
9
- "lodash.isequal": "4.5.0",
10
- "react-jss": "10.10.0"
11
- },
12
- "devDependencies": {
13
- "@types/lodash.isequal": "4.5.6",
14
- "@types/react": "18.2.21",
15
- "@types/react-dom": "18.2.7",
16
- "react": "18.2.0",
17
- "react-dom": "18.2.0"
18
- },
19
- "exports": {
20
- "import": "./dist/index.js",
21
- "require": "./dist/index.cjs"
22
- },
23
- "files": [
24
- "dist",
25
- "src",
26
- "LICENSE"
27
- ],
28
- "license": "Apache-2.0",
29
- "main": "./dist/index.cjs",
30
- "module": "./dist/index.js",
31
- "name": "@crossmint/client-sdk-react-ui",
32
- "peerDependencies": {
33
- "react": ">=17.0.2",
34
- "react-dom": ">=17.0.2"
35
- },
36
- "publishConfig": {
37
- "access": "public"
38
- },
39
- "repository": "https://github.com/Crossmint/crossmint-sdk",
40
- "scripts": {
41
- "build": "yarn clean && tsup src/index.ts --external react,react-dom --format esm,cjs --outDir ./dist --minify --dts --sourcemap",
42
- "clean": "shx rm -rf dist/*",
43
- "create-version-file": "node -p \"'export const LIB_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/consts/version.ts",
44
- "dev": "yarn clean && tsup src/index.ts --external react,react-dom --format esm,cjs --outDir ./dist --dts --sourcemap --watch",
45
- "prebuild": "yarn run create-version-file",
46
- "test": "jest",
47
- "version": "yarn run create-version-file && git add ."
48
- },
49
- "sideEffects": false,
50
- "type": "module",
51
- "types": "./dist/index.d.ts",
52
- "version": "1.1.10"
53
- }
2
+ "name": "@crossmint/client-sdk-react-ui",
3
+ "version": "1.1.11",
4
+ "repository": "https://github.com/Crossmint/crossmint-sdk",
5
+ "license": "Apache-2.0",
6
+ "author": "Paella Labs Inc",
7
+ "sideEffects": false,
8
+ "type": "module",
9
+ "exports": {
10
+ "import": "./dist/index.js",
11
+ "require": "./dist/index.cjs"
12
+ },
13
+ "main": "./dist/index.cjs",
14
+ "module": "./dist/index.js",
15
+ "types": "./dist/index.d.ts",
16
+ "files": [
17
+ "dist",
18
+ "src",
19
+ "LICENSE"
20
+ ],
21
+ "dependencies": {
22
+ "@ethersproject/transactions": "5.7.0",
23
+ "@solana/web3.js": "1.78.5",
24
+ "bs58": "5.0.0",
25
+ "lodash.isequal": "4.5.0",
26
+ "react-jss": "10.10.0",
27
+ "@crossmint/client-sdk-base": "1.1.14",
28
+ "@crossmint/common-sdk-base": "0.0.13"
29
+ },
30
+ "devDependencies": {
31
+ "@types/lodash.isequal": "4.5.6",
32
+ "@types/react": "18.2.21",
33
+ "@types/react-dom": "18.2.7",
34
+ "react": "18.2.0",
35
+ "react-dom": "18.2.0"
36
+ },
37
+ "peerDependencies": {
38
+ "react": ">=17.0.2",
39
+ "react-dom": ">=17.0.2"
40
+ },
41
+ "scripts": {
42
+ "prebuild": "pnpm run create-version-file",
43
+ "build": "tsup src/index.ts --clean --external react,react-dom --format esm,cjs --outDir ./dist --minify --dts --sourcemap",
44
+ "create-version-file": "node -p \"'export const LIB_VERSION = ' + JSON.stringify(require('./package.json').version) + ';'\" > src/consts/version.ts",
45
+ "dev": "tsup src/index.ts --clean --external react,react-dom --format esm,cjs --outDir ./dist --dts --sourcemap --watch",
46
+ "test": "jest",
47
+ "version": "pnpm run create-version-file && git add ."
48
+ }
49
+ }
@@ -1,4 +1,5 @@
1
1
  import FiatEmbeddedCheckoutIFrame from "@/components/embed/fiat/FiatEmbeddedCheckoutIFrame";
2
+
2
3
  import { FiatEmbeddedCheckoutProps } from "@crossmint/client-sdk-base";
3
4
 
4
5
  export function CrossmintFiatEmbeddedCheckout(props: FiatEmbeddedCheckoutProps) {
@@ -1,12 +1,7 @@
1
- import { createUseStyles } from "react-jss";
1
+ import { Styles, createUseStyles } from "react-jss";
2
2
 
3
3
  const DARK_BG = "#1e1e1e";
4
4
 
5
- interface CustomStylingProps {
6
- buttonBgColor?: string;
7
- paragraphColor?: string;
8
- }
9
-
10
5
  const themeIsLight = (theme: string) => theme === "light";
11
6
 
12
7
  export const formatProps = (theme: string): CustomStylingProps => ({
@@ -14,7 +9,13 @@ export const formatProps = (theme: string): CustomStylingProps => ({
14
9
  paragraphColor: themeIsLight(theme) ? "black" : "white",
15
10
  });
16
11
 
17
- export const useStyles = createUseStyles({
12
+ export type Classes<Name extends string | number | symbol = string> = Record<Name, string>;
13
+ interface CustomStylingProps {
14
+ buttonBgColor?: string;
15
+ paragraphColor?: string;
16
+ }
17
+
18
+ const styles: Styles<"crossmintButton" | "crossmintImg" | "crossmintParagraph" | "@global", CustomStylingProps> = {
18
19
  "@global": {
19
20
  "@import":
20
21
  "url('https://fonts.googleapis.com/css2?family=Inter:wght@100;200;300;400;500;600;700;800;900&display=swap')",
@@ -48,4 +49,11 @@ export const useStyles = createUseStyles({
48
49
  color: ({ paragraphColor }: CustomStylingProps) => paragraphColor,
49
50
  margin: "0",
50
51
  },
51
- });
52
+ };
53
+
54
+ export const useStyles: (
55
+ data?:
56
+ | CustomStylingProps & {
57
+ theme?: any;
58
+ }
59
+ ) => Classes<"crossmintButton" | "crossmintImg" | "crossmintParagraph" | "@global"> = createUseStyles(styles);
@@ -1 +1 @@
1
- export const LIB_VERSION = "1.1.10";
1
+ export const LIB_VERSION = "1.1.11";
@@ -1,10 +1,10 @@
1
- import { useEffect, useState } from "react";
2
-
3
- export default function useEnvironment() {
4
- const [isServerSideRendering, setIsServerSideRendering] = useState(true);
5
- useEffect(() => {
6
- setIsServerSideRendering(false);
7
- }, []);
8
-
9
- return { isServerSideRendering };
10
- }
1
+ import { useEffect, useState } from "react";
2
+
3
+ export default function useEnvironment() {
4
+ const [isServerSideRendering, setIsServerSideRendering] = useState(true);
5
+ useEffect(() => {
6
+ setIsServerSideRendering(false);
7
+ }, []);
8
+
9
+ return { isServerSideRendering };
10
+ }