@crossmint/client-sdk-react-ui 1.3.22 → 1.3.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
- package/src/consts/version.ts +1 -1
- package/src/index.ts +2 -0
package/dist/index.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var Ce=Object.create;var A=Object.defineProperty,he=Object.defineProperties,ye=Object.getOwnPropertyDescriptor,Ee=Object.getOwnPropertyDescriptors,we=Object.getOwnPropertyNames,D=Object.getOwnPropertySymbols,be=Object.getPrototypeOf,et=Object.prototype.hasOwnProperty,Ct=Object.prototype.propertyIsEnumerable;var gt=(t,e,o)=>e in t?A(t,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[e]=o,f=(t,e)=>{for(var o in e||(e={}))et.call(e,o)&>(t,o,e[o]);if(D)for(var o of D(e))Ct.call(e,o)&>(t,o,e[o]);return t},ht=(t,e)=>he(t,Ee(e));var j=(t,e)=>{var o={};for(var n in t)et.call(t,n)&&e.indexOf(n)<0&&(o[n]=t[n]);if(t!=null&&D)for(var n of D(t))e.indexOf(n)<0&&Ct.call(t,n)&&(o[n]=t[n]);return o};var Se=(t,e)=>{for(var o in e)A(t,o,{get:e[o],enumerable:!0})},yt=(t,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of we(e))!et.call(t,r)&&r!==o&&A(t,r,{get:()=>e[r],enumerable:!(n=ye(e,r))||n.enumerable});return t};var N=(t,e,o)=>(o=t!=null?Ce(be(t)):{},yt(e||!t||!t.__esModule?A(o,"default",{value:t,enumerable:!0}):o,t)),ve=t=>yt(A({},"__esModule",{value:!0}),t);var b=(t,e,o)=>new Promise((n,r)=>{var l=s=>{try{i(o.next(s))}catch(a){r(a)}},u=s=>{try{i(o.throw(s))}catch(a){r(a)}},i=s=>s.done?n(s.value):Promise.resolve(s.value).then(l,u);i((o=o.apply(t,e)).next())});var Ue={};Se(Ue,{AdminAlreadyUsedError:()=>m.AdminAlreadyUsedError,AdminMismatchError:()=>m.AdminMismatchError,AuthContext:()=>X,Chain:()=>m.Chain,ConfigError:()=>m.ConfigError,CrossmintAuthProvider:()=>Fe,CrossmintEvents:()=>q.CrossmintEvents,CrossmintNFTCollectionView:()=>Pe,CrossmintNFTDetail:()=>ke,CrossmintPayButton:()=>We,CrossmintPaymentElement:()=>Ie,CrossmintProvider:()=>Ae,CrossmintWalletProvider:()=>it,EVMSendTransactionError:()=>m.EVMSendTransactionError,EVMSendTransactionExecutionRevertedError:()=>m.EVMSendTransactionExecutionRevertedError,PasskeyIncompatibleAuthenticatorError:()=>m.PasskeyIncompatibleAuthenticatorError,PasskeyMismatchError:()=>m.PasskeyMismatchError,PasskeyPromptError:()=>m.PasskeyPromptError,PasskeyRegistrationError:()=>m.PasskeyRegistrationError,SmartWalletError:()=>m.SmartWalletError,SmartWalletsNotEnabledError:()=>m.SmartWalletsNotEnabledError,UserWalletAlreadyCreatedError:()=>m.UserWalletAlreadyCreatedError,WalletContext:()=>G,useAuth:()=>Ve,useCrossmint:()=>F,useCrossmintEvents:()=>q.useCrossmintEvents,useWallet:()=>at});module.exports=ve(Ue);var Qt=require("@twind/core");var Et=require("@twind/core"),wt=N(require("@twind/preset-tailwind"),1),bt=(0,Et.defineConfig)({presets:[(0,wt.default)()]});var _=require("@crossmint/client-sdk-base");var k="1.3.22";var St=require("react/jsx-runtime");function Pe(t){(0,_.assertValidNFTCollectionViewProps)(t);let e=(0,_.getNFTCollectionViewSrc)(t,k);return(0,St.jsx)("iframe",{src:e,width:"100%",height:"100%",style:{flexGrow:"1",border:"none",margin:"0",padding:"0"},role:"nft-collection-view"})}var H=require("@crossmint/client-sdk-base");var vt=require("react/jsx-runtime");function ke(t){(0,H.assertValidValidateNFTDetailProps)(t);let e=(0,H.getNFTDetailSrc)(t,k);return(0,vt.jsx)("iframe",{src:e,width:"100%",height:"100%",style:{flexGrow:"1",border:"none",margin:"0",padding:"0"},role:"nft-details"})}var J=require("@crossmint/client-sdk-base");var Tt=require("@crossmint/client-sdk-base");var It=N(require("bs58"),1),h=require("@crossmint/client-sdk-base");var Pt=N(require("lodash.isequal"),1),K=require("react");function R(t,e){let o=(0,K.useRef)(e);(0,K.useEffect)(()=>{if(e.some((r,l)=>!(0,Pt.default)(r,o.current[l])))return o.current=e,t()},[e])}var I=require("react"),$=require("@crossmint/client-sdk-base");var kt=require("react/jsx-runtime");function M(o){var n=o,{onInternalEvent:t}=n,e=j(n,["onInternalEvent"]);let{getUrl:r,listenToEvents:l,listenToInternalEvents:u}=(0,$.crossmintIFrameService)(e),[i,s]=(0,I.useState)(0),[a]=(0,I.useState)(r(e));return(0,I.useEffect)(()=>{let c=l(d=>{var p;return(p=e.onEvent)==null?void 0:p.call(e,d.data)});return()=>{c()}},[]),(0,I.useEffect)(()=>{let c=u(d=>{let{type:p,payload:P}=d.data;p===$.IncomingInternalEvents.UI_HEIGHT_CHANGED&&s(P.height),t==null||t(d.data)});return()=>{c()}},[]),(0,kt.jsx)("iframe",{src:a,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:`${i}px`}})}var xt=require("react/jsx-runtime");function ot(t){let{emitInternalEvent:e}=(0,h.crossmintIFrameService)(t),{signer:o,paymentMethod:n}=t;function r(s){let{type:a,payload:c}=s;if(a===h.IncomingInternalEvents.CRYPTO_PAYMENT_INCOMING_TRANSACTION){let{serializedTransaction:d}=c;console.log("[Crossmint] Received incoming transaction",d),l(d)}if(a===h.IncomingInternalEvents.CRYPTO_CHAIN_SWITCH){let{chain:d}=c;console.log("[Crossmint] Received change of chain",d);let p=o.handleChainSwitch;if(p==null)throw new Error("switchNetwork function should have been defined");p(d)}}function l(s){return b(this,null,function*(){try{let a;switch(n){case"SOL":a=yield u(o,s);break;case"ETH":a=yield i(o,s);break;default:throw new Error(`Unsupported payment method ${n}`)}console.log("[Crossmint] Signed and sent transaction",a),e({type:h.OutgoingInternalEvents.CRYPTO_PAYMENT_USER_ACCEPTED,payload:{txId:a}})}catch(a){console.error("[Crossmint] Failed to sign and send transaction",a),e({type:h.OutgoingInternalEvents.CRYPTO_PAYMENT_USER_REJECTED,payload:{}})}})}function u(s,a){return b(this,null,function*(){let{Transaction:c}=yield import("@solana/web3.js"),d=c.from(It.default.decode(a));return console.log("[Crossmint] Deserialized SOL transaction",d),yield s.signAndSendTransaction(d)})}function i(s,a){return b(this,null,function*(){let{parse:c}=yield import("@ethersproject/transactions"),d=c(a);return console.log("[Crossmint] Deserialized ETH transaction",d),yield s.signAndSendTransaction(d)})}return R(()=>{e({type:"params-update",payload:(0,h.embeddedCheckoutPropsToUpdatableParamsPayload)(t)})},[t.signer.address,t.recipient,t.mintConfig,t.locale,t.currency,t.whPassThroughArgs,..."chain"in t.signer?[t.signer.chain]:[]]),(0,xt.jsx)(M,f({onInternalEvent:r},t))}var At=require("react/jsx-runtime");function Wt(t){if(!(0,Tt.isCryptoEmbeddedCheckoutPropsWithSigner)(t))throw new Error("Invalid parameters: signer is required in versions < 2.0.0");return(0,At.jsx)(ot,f({},t))}var Y=require("@crossmint/client-sdk-base");var Nt=require("react/jsx-runtime");function rt(t){let{emitInternalEvent:e}=(0,Y.crossmintIFrameService)(t);return R(()=>{e({type:"params-update",payload:(0,Y.embeddedCheckoutPropsToUpdatableParamsPayload)(t)})},[t.recipient,t.mintConfig,t.locale,t.currency,t.whPassThroughArgs]),(0,Nt.jsx)(M,f({},t))}var Mt=require("react/jsx-runtime");function Rt(t){return(0,Mt.jsx)(rt,f({},t))}var nt=require("react/jsx-runtime");function Ie(t){if((0,J.isFiatEmbeddedCheckoutProps)(t))return(0,nt.jsx)(Rt,f({},t));if((0,J.isCryptoEmbeddedCheckoutProps)(t))return(0,nt.jsx)(Wt,f({},t));throw new Error("Unsupported: Fiat is the only supported payment method.")}var Ut=require("react"),Lt=require("react"),x=require("@crossmint/client-sdk-base");var z=require("react");function st(){let[t,e]=(0,z.useState)(!0);return(0,z.useEffect)(()=>{e(!1)},[]),{isServerSideRendering:t}}var Ot=require("react-jss"),xe="#1e1e1e",Ft=t=>t==="light",Bt=t=>({buttonBgColor:Ft(t)?"white":xe,paragraphColor:Ft(t)?"black":"white"}),Te={"@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"}},Vt=(0,Ot.createUseStyles)(Te);var S=require("react/jsx-runtime");function We(t){let pt=t,{className:e,disabled:o,onClick:n,style:r,tabIndex:l,theme:u="dark",mintTo:i,emailTo:s,listingId:a,auctionId:c,showOverlay:d=!0,mintConfig:p,whPassThroughArgs:P,environment:v,paymentMethod:U,preferredSigninMethod:Zt,dismissOverlayOnClick:te,prepay:ee,locale:ut="en-US",currency:oe="usd",successCallbackURL:re="",failureCallbackURL:ne="",loginEmail:se="",projectId:ie,getButtonText:Q,checkoutProps:ft={experimental:!1,display:"same-tab",paymentMethods:["fiat","ETH","SOL"]}}=pt,Z=j(pt,["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"]),ae="clientId"in Z?Z.clientId:Z.collectionId,[L,le]=(0,Lt.useState)(!1),{isServerSideRendering:de}=st(),{connect:me}=(0,x.crossmintModalService)({clientId:ae,projectId:ie,showOverlay:d,dismissOverlayOnClick:te,setConnecting:le,libVersion:k,environment:v,clientName:x.clientNames.reactUi,locale:ut,currency:oe,successCallbackURL:re,failureCallbackURL:ne,loginEmail:se}),{getButtonText:ce,handleClick:ue}=(0,x.crossmintPayButtonService)({onClick:n,connecting:L,paymentMethod:U,locale:ut,checkoutProps:ft}),fe=ge=>ue(ge,()=>{me(p,i,s,a,P,U,Zt,ee,ft)}),tt=Vt(Bt(u)),pe=(0,Ut.useMemo)(()=>(0,S.jsx)("span",{className:tt.crossmintParagraph,role:"button-paragraph",children:Q!=null?Q(L,U||"fiat"):ce(L)}),[L,Q,U]);return(0,S.jsx)(S.Fragment,{children:!de&&(0,S.jsxs)("button",{className:`${tt.crossmintButton} ${e||""}`,disabled:o,onClick:fe,style:f({},r),tabIndex:l,children:[(0,S.jsx)("img",{className:tt.crossmintImg,src:"https://www.crossmint.io/assets/crossmint/logo.svg",alt:"Crossmint logo"}),pe]})})}var g=require("react"),Dt=require("@crossmint/common-sdk-base"),_t=require("react/jsx-runtime"),jt=(0,g.createContext)(null);function Ae({children:t,apiKey:e,overrideBaseUrl:o}){let[n,r]=(0,g.useState)(0),l=(0,g.useRef)(new Proxy((0,Dt.createCrossmint)({apiKey:e,overrideBaseUrl:o}),{set(s,a,c){return a==="jwt"&&s.jwt!==c&&r(d=>d+1),Reflect.set(s,a,c)}})),u=(0,g.useCallback)(s=>{s!==l.current.jwt&&(l.current.jwt=s)},[]),i=(0,g.useMemo)(()=>({get crossmint(){return l.current},setJwt:u}),[u,n]);return(0,_t.jsx)(jt.Provider,{value:i,children:t})}function F(t){let e=(0,g.useContext)(jt);if(e==null)throw new Error(t!=null?t:"useCrossmint must be used within a CrossmintProvider");return e}var Kt=require("react");var T=require("react"),O=require("@crossmint/client-sdk-smart-wallet");var Ht=require("react/jsx-runtime"),G=(0,T.createContext)({status:"not-loaded",getOrCreateWallet:()=>({startedCreation:!1}),clearWallet:()=>{}});function it({children:t,defaultChain:e}){let{crossmint:o}=F("CrossmintWalletProvider must be used within CrossmintProvider"),n=(0,T.useMemo)(()=>O.SmartWalletSDK.init({clientApiKey:o.apiKey}),[o.apiKey]),[r,l]=(0,T.useState)({status:"not-loaded"}),u=(s={type:"evm-smart-wallet",signer:{type:"PASSKEY"}})=>r.status=="in-progress"?(console.log("Wallet already loading"),{startedCreation:!1,reason:"Wallet is already loading."}):o.jwt==null?{startedCreation:!1,reason:'Jwt not set in "CrossmintProvider".'}:(b(this,null,function*(){try{l({status:"in-progress"});let c=yield n.getOrCreateWallet({jwt:o.jwt},e,s);l({status:"loaded",wallet:c})}catch(c){console.error("There was an error creating a wallet ",c),l(Ne(c))}}),{startedCreation:!0}),i=()=>{l({status:"not-loaded"})};return(0,Ht.jsx)(G.Provider,{value:ht(f({},r),{getOrCreateWallet:u,clearWallet:i}),children:t})}function Ne(t){if(t instanceof O.SmartWalletError)return{status:"loading-error",error:t};let e=t instanceof Error?t.message:String(t),o=t instanceof Error?t.stack:void 0;return{status:"loading-error",error:new O.SmartWalletError(`Unknown Wallet Error: ${e}`,o)}}function at(){let t=(0,Kt.useContext)(G);if(!t)throw new Error("useWallet must be used within CrossmintAuthProvider or CrossmintWalletProvider");return t}var qt=require("react");var E=require("react"),Gt=require("react-dom"),Xt=require("@crossmint/common-sdk-base");var W=require("@headlessui/react"),y=require("react"),V=require("zod"),zt=require("@crossmint/client-sdk-window");var B=require("react/jsx-runtime");function lt({className:t}){return(0,B.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:t,children:[(0,B.jsx)("path",{d:"M18 6 6 18"}),(0,B.jsx)("path",{d:"m6 6 12 12"})]})}var $t=require("clsx"),Yt=require("tailwind-merge");function Jt(...t){return(0,Yt.twMerge)((0,$t.clsx)(t))}var C=require("react/jsx-runtime"),Re={jwtToken:V.z.object({jwtToken:V.z.string()})},Me={closeWindow:V.z.object({closeWindow:V.z.string()})};function mt({setModalOpen:t,setJwtToken:e,apiKey:o,baseUrl:n,appearance:r}){var c,d,p,P;let l=`${n}sdk/auth/frame?apiKey=${o}`;r!=null&&(l+=`&uiConfig=${encodeURIComponent(JSON.stringify(r))}`);let u=(0,y.useRef)(null),[i,s]=(0,y.useState)(null);(0,y.useEffect)(()=>{if(i!=null)return i.on("jwtToken",v=>{e(v.jwtToken),i.off("jwtToken"),i.send("closeWindow",{closeWindow:"closeWindow"}),(i==null?void 0:i.iframe.contentWindow)!=null&&i.iframe.contentWindow.close(),t(!1)}),()=>{i&&(i.off("jwtToken"),i.iframe.contentWindow!=null&&i.iframe.contentWindow.close())}},[i,e,t]);let a=()=>b(this,null,function*(){if(u.current==null){console.error("Something wrong happened, please try again");return}let v=yield zt.IFrameWindow.init(u.current,{incomingEvents:Re,outgoingEvents:Me});s(v)});return(0,C.jsx)(W.Transition.Root,{show:!0,as:y.Fragment,children:(0,C.jsxs)(W.Dialog,{as:"div",style:dt.dialog,onClose:()=>t(!1),children:[(0,C.jsx)(W.Transition.Child,{as:y.Fragment,enter:"ease-out duration-400",enterFrom:"opacity-0",enterTo:"opacity-100",leave:"ease-in duration-400",leaveFrom:"opacity-100",leaveTo:"opacity-0",children:(0,C.jsx)("div",{style:dt.transitionBegin})}),(0,C.jsx)(W.Transition.Child,{as:y.Fragment,enter:"ease-out duration-400",enterFrom:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",enterTo:"opacity-100 translate-y-0 sm:scale-100",leave:"ease-in duration-400",leaveFrom:"opacity-100 translate-y-0 sm:scale-100",leaveTo:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",children:(0,C.jsxs)("div",{style:dt.transitionEnd,onClick:v=>v.stopPropagation(),children:[(0,C.jsx)("div",{style:{position:"relative",width:"100%"},children:(0,C.jsx)("button",{type:"button","aria-label":"Close",style:{width:"1.5rem",position:"absolute",right:"1.5rem",top:"1.5rem",cursor:"pointer",color:(d=(c=r==null?void 0:r.colors)==null?void 0:c.border)!=null?d:"#909ca3",outlineOffset:"4px",borderRadius:"100%"},onClick:()=>t(!1),children:(0,C.jsx)(lt,{})})}),(0,C.jsx)("iframe",{ref:u,src:l,onLoad:a,title:"Authentication Modal",className:Jt("w-full h-[500px] border pt-12 pb-8",(p=r==null?void 0:r.colors)!=null&&p.border?`border-[${r.colors.border}]`:"border-[#D0D5DD]",r!=null&&r.borderRadius?`rounded-[${r.borderRadius}]`:"rounded-2xl",(P=r==null?void 0:r.colors)!=null&&P.background?`bg-[${r.colors.background}]`:"bg-white")})]})})]})})}var dt={dialog:{display:"flex",justifyContent:"center",alignItems:"center",overflowY:"auto",position:"fixed",top:0,right:0,bottom:0,left:0,zIndex:20},transitionBegin:{background:"rgba(139, 151, 151, 0.2)",backdropFilter:"blur(2px)",position:"fixed",top:0,right:0,bottom:0,left:0,transitionProperty:"opacity",transitionTimingFunction:"cubic-bezier(0.4, 0, 0.2, 1)",transitionDuration:"300ms",zIndex:-10},transitionEnd:{display:"flex",flexDirection:"column",alignItems:"center",width:"100%",maxWidth:"448px",borderRadius:"0.75rem",boxShadow:"0 1px 2px 0 rgba(0, 0, 0, 0.05)",zIndex:30}};var w=require("react/jsx-runtime"),ct="crossmint-session",X=(0,E.createContext)({login:()=>{},logout:()=>{},status:"logged-out"});function Fe({embeddedWallets:t,children:e,appearance:o}){let{crossmint:n,setJwt:r}=F("CrossmintAuthProvider must be used within CrossmintProvider"),l=(0,Xt.validateApiKeyAndGetCrossmintBaseUrl)(n.apiKey),[u,i]=(0,E.useState)(!1);(0,E.useEffect)(()=>{let d=Be();d!=null&&r(d)},[]);let s=()=>{if(n.jwt!=null){console.log("User already logged in");return}i(!0)},a=()=>{document.cookie=`${ct}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`,r(void 0)};(0,E.useEffect)(()=>{n.jwt!=null&&i(!1)},[n.jwt]),(0,E.useEffect)(()=>{n.jwt&&(document.cookie=`${ct}=${n.jwt}; path=/;SameSite=Lax;`)},[n.jwt]);let c=()=>n.jwt!=null?"logged-in":u?"in-progress":"logged-out";return(0,w.jsx)(X.Provider,{value:{login:s,logout:a,jwt:n.jwt,status:c()},children:(0,w.jsxs)(it,{defaultChain:t.defaultChain,children:[(0,w.jsx)(Oe,{embeddedWallets:t,accessToken:n.jwt,children:e}),u?(0,Gt.createPortal)((0,w.jsx)(mt,{baseUrl:l,setModalOpen:i,setJwtToken:r,apiKey:n.apiKey,appearance:o}),document.body):null]})})}function Oe({embeddedWallets:t,children:e,accessToken:o}){let{getOrCreateWallet:n,clearWallet:r,status:l}=at();return(0,E.useEffect)(()=>{t.createOnLogin==="all-users"&&l==="not-loaded"&&o!=null&&n({type:t.type,signer:{type:"PASSKEY"}}),l==="loaded"&&o==null&&r()},[o,l]),(0,w.jsx)(w.Fragment,{children:e})}function Be(){let t=document.cookie.split("; ").find(e=>e.startsWith(ct));return t?t.split("=")[1]:void 0}function Ve(){let t=(0,qt.useContext)(X);if(t===void 0)throw new Error("useAuth must be used within an AuthProvider");return t}var q=require("@crossmint/client-sdk-base"),m=require("@crossmint/client-sdk-smart-wallet");(0,Qt.install)(bt);0&&(module.exports={AdminAlreadyUsedError,AdminMismatchError,AuthContext,Chain,ConfigError,CrossmintAuthProvider,CrossmintEvents,CrossmintNFTCollectionView,CrossmintNFTDetail,CrossmintPayButton,CrossmintPaymentElement,CrossmintProvider,CrossmintWalletProvider,EVMSendTransactionError,EVMSendTransactionExecutionRevertedError,PasskeyIncompatibleAuthenticatorError,PasskeyMismatchError,PasskeyPromptError,PasskeyRegistrationError,SmartWalletError,SmartWalletsNotEnabledError,UserWalletAlreadyCreatedError,WalletContext,useAuth,useCrossmint,useCrossmintEvents,useWallet});
|
|
1
|
+
"use strict";var Ce=Object.create;var A=Object.defineProperty,he=Object.defineProperties,ye=Object.getOwnPropertyDescriptor,Ee=Object.getOwnPropertyDescriptors,we=Object.getOwnPropertyNames,D=Object.getOwnPropertySymbols,be=Object.getPrototypeOf,et=Object.prototype.hasOwnProperty,Ct=Object.prototype.propertyIsEnumerable;var gt=(t,e,o)=>e in t?A(t,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[e]=o,f=(t,e)=>{for(var o in e||(e={}))et.call(e,o)&>(t,o,e[o]);if(D)for(var o of D(e))Ct.call(e,o)&>(t,o,e[o]);return t},ht=(t,e)=>he(t,Ee(e));var j=(t,e)=>{var o={};for(var n in t)et.call(t,n)&&e.indexOf(n)<0&&(o[n]=t[n]);if(t!=null&&D)for(var n of D(t))e.indexOf(n)<0&&Ct.call(t,n)&&(o[n]=t[n]);return o};var Se=(t,e)=>{for(var o in e)A(t,o,{get:e[o],enumerable:!0})},yt=(t,e,o,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let r of we(e))!et.call(t,r)&&r!==o&&A(t,r,{get:()=>e[r],enumerable:!(n=ye(e,r))||n.enumerable});return t};var N=(t,e,o)=>(o=t!=null?Ce(be(t)):{},yt(e||!t||!t.__esModule?A(o,"default",{value:t,enumerable:!0}):o,t)),Pe=t=>yt(A({},"__esModule",{value:!0}),t);var b=(t,e,o)=>new Promise((n,r)=>{var l=s=>{try{i(o.next(s))}catch(a){r(a)}},u=s=>{try{i(o.throw(s))}catch(a){r(a)}},i=s=>s.done?n(s.value):Promise.resolve(s.value).then(l,u);i((o=o.apply(t,e)).next())});var Ue={};Se(Ue,{AdminAlreadyUsedError:()=>m.AdminAlreadyUsedError,AdminMismatchError:()=>m.AdminMismatchError,AuthContext:()=>X,Chain:()=>m.Chain,ConfigError:()=>m.ConfigError,CrossmintAuthProvider:()=>Fe,CrossmintEvents:()=>q.CrossmintEvents,CrossmintNFTCollectionView:()=>ve,CrossmintNFTDetail:()=>ke,CrossmintPayButton:()=>We,CrossmintPaymentElement:()=>Ie,CrossmintProvider:()=>Ae,CrossmintWalletProvider:()=>it,EVMSendTransactionError:()=>m.EVMSendTransactionError,EVMSendTransactionExecutionRevertedError:()=>m.EVMSendTransactionExecutionRevertedError,PasskeyIncompatibleAuthenticatorError:()=>m.PasskeyIncompatibleAuthenticatorError,PasskeyMismatchError:()=>m.PasskeyMismatchError,PasskeyPromptError:()=>m.PasskeyPromptError,PasskeyRegistrationError:()=>m.PasskeyRegistrationError,SmartWalletError:()=>m.SmartWalletError,SmartWalletsNotEnabledError:()=>m.SmartWalletsNotEnabledError,UserWalletAlreadyCreatedError:()=>m.UserWalletAlreadyCreatedError,WalletContext:()=>G,useAuth:()=>Ve,useCrossmint:()=>F,useCrossmintEvents:()=>q.useCrossmintEvents,useWallet:()=>at});module.exports=Pe(Ue);var Qt=require("@twind/core");var Et=require("@twind/core"),wt=N(require("@twind/preset-tailwind"),1),bt=(0,Et.defineConfig)({presets:[(0,wt.default)()]});var _=require("@crossmint/client-sdk-base");var k="1.3.23";var St=require("react/jsx-runtime");function ve(t){(0,_.assertValidNFTCollectionViewProps)(t);let e=(0,_.getNFTCollectionViewSrc)(t,k);return(0,St.jsx)("iframe",{src:e,width:"100%",height:"100%",style:{flexGrow:"1",border:"none",margin:"0",padding:"0"},role:"nft-collection-view"})}var H=require("@crossmint/client-sdk-base");var Pt=require("react/jsx-runtime");function ke(t){(0,H.assertValidValidateNFTDetailProps)(t);let e=(0,H.getNFTDetailSrc)(t,k);return(0,Pt.jsx)("iframe",{src:e,width:"100%",height:"100%",style:{flexGrow:"1",border:"none",margin:"0",padding:"0"},role:"nft-details"})}var J=require("@crossmint/client-sdk-base");var Tt=require("@crossmint/client-sdk-base");var It=N(require("bs58"),1),h=require("@crossmint/client-sdk-base");var vt=N(require("lodash.isequal"),1),K=require("react");function R(t,e){let o=(0,K.useRef)(e);(0,K.useEffect)(()=>{if(e.some((r,l)=>!(0,vt.default)(r,o.current[l])))return o.current=e,t()},[e])}var I=require("react"),$=require("@crossmint/client-sdk-base");var kt=require("react/jsx-runtime");function M(o){var n=o,{onInternalEvent:t}=n,e=j(n,["onInternalEvent"]);let{getUrl:r,listenToEvents:l,listenToInternalEvents:u}=(0,$.crossmintIFrameService)(e),[i,s]=(0,I.useState)(0),[a]=(0,I.useState)(r(e));return(0,I.useEffect)(()=>{let c=l(d=>{var p;return(p=e.onEvent)==null?void 0:p.call(e,d.data)});return()=>{c()}},[]),(0,I.useEffect)(()=>{let c=u(d=>{let{type:p,payload:v}=d.data;p===$.IncomingInternalEvents.UI_HEIGHT_CHANGED&&s(v.height),t==null||t(d.data)});return()=>{c()}},[]),(0,kt.jsx)("iframe",{src:a,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:`${i}px`}})}var xt=require("react/jsx-runtime");function ot(t){let{emitInternalEvent:e}=(0,h.crossmintIFrameService)(t),{signer:o,paymentMethod:n}=t;function r(s){let{type:a,payload:c}=s;if(a===h.IncomingInternalEvents.CRYPTO_PAYMENT_INCOMING_TRANSACTION){let{serializedTransaction:d}=c;console.log("[Crossmint] Received incoming transaction",d),l(d)}if(a===h.IncomingInternalEvents.CRYPTO_CHAIN_SWITCH){let{chain:d}=c;console.log("[Crossmint] Received change of chain",d);let p=o.handleChainSwitch;if(p==null)throw new Error("switchNetwork function should have been defined");p(d)}}function l(s){return b(this,null,function*(){try{let a;switch(n){case"SOL":a=yield u(o,s);break;case"ETH":a=yield i(o,s);break;default:throw new Error(`Unsupported payment method ${n}`)}console.log("[Crossmint] Signed and sent transaction",a),e({type:h.OutgoingInternalEvents.CRYPTO_PAYMENT_USER_ACCEPTED,payload:{txId:a}})}catch(a){console.error("[Crossmint] Failed to sign and send transaction",a),e({type:h.OutgoingInternalEvents.CRYPTO_PAYMENT_USER_REJECTED,payload:{}})}})}function u(s,a){return b(this,null,function*(){let{Transaction:c}=yield import("@solana/web3.js"),d=c.from(It.default.decode(a));return console.log("[Crossmint] Deserialized SOL transaction",d),yield s.signAndSendTransaction(d)})}function i(s,a){return b(this,null,function*(){let{parse:c}=yield import("@ethersproject/transactions"),d=c(a);return console.log("[Crossmint] Deserialized ETH transaction",d),yield s.signAndSendTransaction(d)})}return R(()=>{e({type:"params-update",payload:(0,h.embeddedCheckoutPropsToUpdatableParamsPayload)(t)})},[t.signer.address,t.recipient,t.mintConfig,t.locale,t.currency,t.whPassThroughArgs,..."chain"in t.signer?[t.signer.chain]:[]]),(0,xt.jsx)(M,f({onInternalEvent:r},t))}var At=require("react/jsx-runtime");function Wt(t){if(!(0,Tt.isCryptoEmbeddedCheckoutPropsWithSigner)(t))throw new Error("Invalid parameters: signer is required in versions < 2.0.0");return(0,At.jsx)(ot,f({},t))}var Y=require("@crossmint/client-sdk-base");var Nt=require("react/jsx-runtime");function rt(t){let{emitInternalEvent:e}=(0,Y.crossmintIFrameService)(t);return R(()=>{e({type:"params-update",payload:(0,Y.embeddedCheckoutPropsToUpdatableParamsPayload)(t)})},[t.recipient,t.mintConfig,t.locale,t.currency,t.whPassThroughArgs]),(0,Nt.jsx)(M,f({},t))}var Mt=require("react/jsx-runtime");function Rt(t){return(0,Mt.jsx)(rt,f({},t))}var nt=require("react/jsx-runtime");function Ie(t){if((0,J.isFiatEmbeddedCheckoutProps)(t))return(0,nt.jsx)(Rt,f({},t));if((0,J.isCryptoEmbeddedCheckoutProps)(t))return(0,nt.jsx)(Wt,f({},t));throw new Error("Unsupported: Fiat is the only supported payment method.")}var Ut=require("react"),Lt=require("react"),x=require("@crossmint/client-sdk-base");var z=require("react");function st(){let[t,e]=(0,z.useState)(!0);return(0,z.useEffect)(()=>{e(!1)},[]),{isServerSideRendering:t}}var Ot=require("react-jss"),xe="#1e1e1e",Ft=t=>t==="light",Bt=t=>({buttonBgColor:Ft(t)?"white":xe,paragraphColor:Ft(t)?"black":"white"}),Te={"@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"}},Vt=(0,Ot.createUseStyles)(Te);var S=require("react/jsx-runtime");function We(t){let pt=t,{className:e,disabled:o,onClick:n,style:r,tabIndex:l,theme:u="dark",mintTo:i,emailTo:s,listingId:a,auctionId:c,showOverlay:d=!0,mintConfig:p,whPassThroughArgs:v,environment:P,paymentMethod:U,preferredSigninMethod:Zt,dismissOverlayOnClick:te,prepay:ee,locale:ut="en-US",currency:oe="usd",successCallbackURL:re="",failureCallbackURL:ne="",loginEmail:se="",projectId:ie,getButtonText:Q,checkoutProps:ft={experimental:!1,display:"same-tab",paymentMethods:["fiat","ETH","SOL"]}}=pt,Z=j(pt,["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"]),ae="clientId"in Z?Z.clientId:Z.collectionId,[L,le]=(0,Lt.useState)(!1),{isServerSideRendering:de}=st(),{connect:me}=(0,x.crossmintModalService)({clientId:ae,projectId:ie,showOverlay:d,dismissOverlayOnClick:te,setConnecting:le,libVersion:k,environment:P,clientName:x.clientNames.reactUi,locale:ut,currency:oe,successCallbackURL:re,failureCallbackURL:ne,loginEmail:se}),{getButtonText:ce,handleClick:ue}=(0,x.crossmintPayButtonService)({onClick:n,connecting:L,paymentMethod:U,locale:ut,checkoutProps:ft}),fe=ge=>ue(ge,()=>{me(p,i,s,a,v,U,Zt,ee,ft)}),tt=Vt(Bt(u)),pe=(0,Ut.useMemo)(()=>(0,S.jsx)("span",{className:tt.crossmintParagraph,role:"button-paragraph",children:Q!=null?Q(L,U||"fiat"):ce(L)}),[L,Q,U]);return(0,S.jsx)(S.Fragment,{children:!de&&(0,S.jsxs)("button",{className:`${tt.crossmintButton} ${e||""}`,disabled:o,onClick:fe,style:f({},r),tabIndex:l,children:[(0,S.jsx)("img",{className:tt.crossmintImg,src:"https://www.crossmint.io/assets/crossmint/logo.svg",alt:"Crossmint logo"}),pe]})})}var g=require("react"),Dt=require("@crossmint/common-sdk-base"),_t=require("react/jsx-runtime"),jt=(0,g.createContext)(null);function Ae({children:t,apiKey:e,overrideBaseUrl:o}){let[n,r]=(0,g.useState)(0),l=(0,g.useRef)(new Proxy((0,Dt.createCrossmint)({apiKey:e,overrideBaseUrl:o}),{set(s,a,c){return a==="jwt"&&s.jwt!==c&&r(d=>d+1),Reflect.set(s,a,c)}})),u=(0,g.useCallback)(s=>{s!==l.current.jwt&&(l.current.jwt=s)},[]),i=(0,g.useMemo)(()=>({get crossmint(){return l.current},setJwt:u}),[u,n]);return(0,_t.jsx)(jt.Provider,{value:i,children:t})}function F(t){let e=(0,g.useContext)(jt);if(e==null)throw new Error(t!=null?t:"useCrossmint must be used within a CrossmintProvider");return e}var Kt=require("react");var T=require("react"),O=require("@crossmint/client-sdk-smart-wallet");var Ht=require("react/jsx-runtime"),G=(0,T.createContext)({status:"not-loaded",getOrCreateWallet:()=>({startedCreation:!1}),clearWallet:()=>{}});function it({children:t,defaultChain:e}){let{crossmint:o}=F("CrossmintWalletProvider must be used within CrossmintProvider"),n=(0,T.useMemo)(()=>O.SmartWalletSDK.init({clientApiKey:o.apiKey}),[o.apiKey]),[r,l]=(0,T.useState)({status:"not-loaded"}),u=(s={type:"evm-smart-wallet",signer:{type:"PASSKEY"}})=>r.status=="in-progress"?(console.log("Wallet already loading"),{startedCreation:!1,reason:"Wallet is already loading."}):o.jwt==null?{startedCreation:!1,reason:'Jwt not set in "CrossmintProvider".'}:(b(this,null,function*(){try{l({status:"in-progress"});let c=yield n.getOrCreateWallet({jwt:o.jwt},e,s);l({status:"loaded",wallet:c})}catch(c){console.error("There was an error creating a wallet ",c),l(Ne(c))}}),{startedCreation:!0}),i=()=>{l({status:"not-loaded"})};return(0,Ht.jsx)(G.Provider,{value:ht(f({},r),{getOrCreateWallet:u,clearWallet:i}),children:t})}function Ne(t){if(t instanceof O.SmartWalletError)return{status:"loading-error",error:t};let e=t instanceof Error?t.message:String(t),o=t instanceof Error?t.stack:void 0;return{status:"loading-error",error:new O.SmartWalletError(`Unknown Wallet Error: ${e}`,o)}}function at(){let t=(0,Kt.useContext)(G);if(!t)throw new Error("useWallet must be used within CrossmintAuthProvider or CrossmintWalletProvider");return t}var qt=require("react");var E=require("react"),Gt=require("react-dom"),Xt=require("@crossmint/common-sdk-base");var W=require("@headlessui/react"),y=require("react"),V=require("zod"),zt=require("@crossmint/client-sdk-window");var B=require("react/jsx-runtime");function lt({className:t}){return(0,B.jsxs)("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:t,children:[(0,B.jsx)("path",{d:"M18 6 6 18"}),(0,B.jsx)("path",{d:"m6 6 12 12"})]})}var $t=require("clsx"),Yt=require("tailwind-merge");function Jt(...t){return(0,Yt.twMerge)((0,$t.clsx)(t))}var C=require("react/jsx-runtime"),Re={jwtToken:V.z.object({jwtToken:V.z.string()})},Me={closeWindow:V.z.object({closeWindow:V.z.string()})};function mt({setModalOpen:t,setJwtToken:e,apiKey:o,baseUrl:n,appearance:r}){var c,d,p,v;let l=`${n}sdk/auth/frame?apiKey=${o}`;r!=null&&(l+=`&uiConfig=${encodeURIComponent(JSON.stringify(r))}`);let u=(0,y.useRef)(null),[i,s]=(0,y.useState)(null);(0,y.useEffect)(()=>{if(i!=null)return i.on("jwtToken",P=>{e(P.jwtToken),i.off("jwtToken"),i.send("closeWindow",{closeWindow:"closeWindow"}),(i==null?void 0:i.iframe.contentWindow)!=null&&i.iframe.contentWindow.close(),t(!1)}),()=>{i&&(i.off("jwtToken"),i.iframe.contentWindow!=null&&i.iframe.contentWindow.close())}},[i,e,t]);let a=()=>b(this,null,function*(){if(u.current==null){console.error("Something wrong happened, please try again");return}let P=yield zt.IFrameWindow.init(u.current,{incomingEvents:Re,outgoingEvents:Me});s(P)});return(0,C.jsx)(W.Transition.Root,{show:!0,as:y.Fragment,children:(0,C.jsxs)(W.Dialog,{as:"div",style:dt.dialog,onClose:()=>t(!1),children:[(0,C.jsx)(W.Transition.Child,{as:y.Fragment,enter:"ease-out duration-400",enterFrom:"opacity-0",enterTo:"opacity-100",leave:"ease-in duration-400",leaveFrom:"opacity-100",leaveTo:"opacity-0",children:(0,C.jsx)("div",{style:dt.transitionBegin})}),(0,C.jsx)(W.Transition.Child,{as:y.Fragment,enter:"ease-out duration-400",enterFrom:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",enterTo:"opacity-100 translate-y-0 sm:scale-100",leave:"ease-in duration-400",leaveFrom:"opacity-100 translate-y-0 sm:scale-100",leaveTo:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",children:(0,C.jsxs)("div",{style:dt.transitionEnd,onClick:P=>P.stopPropagation(),children:[(0,C.jsx)("div",{style:{position:"relative",width:"100%"},children:(0,C.jsx)("button",{type:"button","aria-label":"Close",style:{width:"1.5rem",position:"absolute",right:"1.5rem",top:"1.5rem",cursor:"pointer",color:(d=(c=r==null?void 0:r.colors)==null?void 0:c.border)!=null?d:"#909ca3",outlineOffset:"4px",borderRadius:"100%"},onClick:()=>t(!1),children:(0,C.jsx)(lt,{})})}),(0,C.jsx)("iframe",{ref:u,src:l,onLoad:a,title:"Authentication Modal",className:Jt("w-full h-[500px] border pt-12 pb-8",(p=r==null?void 0:r.colors)!=null&&p.border?`border-[${r.colors.border}]`:"border-[#D0D5DD]",r!=null&&r.borderRadius?`rounded-[${r.borderRadius}]`:"rounded-2xl",(v=r==null?void 0:r.colors)!=null&&v.background?`bg-[${r.colors.background}]`:"bg-white")})]})})]})})}var dt={dialog:{display:"flex",justifyContent:"center",alignItems:"center",overflowY:"auto",position:"fixed",top:0,right:0,bottom:0,left:0,zIndex:20},transitionBegin:{background:"rgba(139, 151, 151, 0.2)",backdropFilter:"blur(2px)",position:"fixed",top:0,right:0,bottom:0,left:0,transitionProperty:"opacity",transitionTimingFunction:"cubic-bezier(0.4, 0, 0.2, 1)",transitionDuration:"300ms",zIndex:-10},transitionEnd:{display:"flex",flexDirection:"column",alignItems:"center",width:"100%",maxWidth:"448px",borderRadius:"0.75rem",boxShadow:"0 1px 2px 0 rgba(0, 0, 0, 0.05)",zIndex:30}};var w=require("react/jsx-runtime"),ct="crossmint-session",X=(0,E.createContext)({login:()=>{},logout:()=>{},status:"logged-out"});function Fe({embeddedWallets:t,children:e,appearance:o}){let{crossmint:n,setJwt:r}=F("CrossmintAuthProvider must be used within CrossmintProvider"),l=(0,Xt.validateApiKeyAndGetCrossmintBaseUrl)(n.apiKey),[u,i]=(0,E.useState)(!1);(0,E.useEffect)(()=>{let d=Be();d!=null&&r(d)},[]);let s=()=>{if(n.jwt!=null){console.log("User already logged in");return}i(!0)},a=()=>{document.cookie=`${ct}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`,r(void 0)};(0,E.useEffect)(()=>{n.jwt!=null&&i(!1)},[n.jwt]),(0,E.useEffect)(()=>{n.jwt&&(document.cookie=`${ct}=${n.jwt}; path=/;SameSite=Lax;`)},[n.jwt]);let c=()=>n.jwt!=null?"logged-in":u?"in-progress":"logged-out";return(0,w.jsx)(X.Provider,{value:{login:s,logout:a,jwt:n.jwt,status:c()},children:(0,w.jsxs)(it,{defaultChain:t.defaultChain,children:[(0,w.jsx)(Oe,{embeddedWallets:t,accessToken:n.jwt,children:e}),u?(0,Gt.createPortal)((0,w.jsx)(mt,{baseUrl:l,setModalOpen:i,setJwtToken:r,apiKey:n.apiKey,appearance:o}),document.body):null]})})}function Oe({embeddedWallets:t,children:e,accessToken:o}){let{getOrCreateWallet:n,clearWallet:r,status:l}=at();return(0,E.useEffect)(()=>{t.createOnLogin==="all-users"&&l==="not-loaded"&&o!=null&&n({type:t.type,signer:{type:"PASSKEY"}}),l==="loaded"&&o==null&&r()},[o,l]),(0,w.jsx)(w.Fragment,{children:e})}function Be(){let t=document.cookie.split("; ").find(e=>e.startsWith(ct));return t?t.split("=")[1]:void 0}function Ve(){let t=(0,qt.useContext)(X);if(t===void 0)throw new Error("useAuth must be used within an AuthProvider");return t}var q=require("@crossmint/client-sdk-base"),m=require("@crossmint/client-sdk-smart-wallet");(0,Qt.install)(bt);0&&(module.exports={AdminAlreadyUsedError,AdminMismatchError,AuthContext,Chain,ConfigError,CrossmintAuthProvider,CrossmintEvents,CrossmintNFTCollectionView,CrossmintNFTDetail,CrossmintPayButton,CrossmintPaymentElement,CrossmintProvider,CrossmintWalletProvider,EVMSendTransactionError,EVMSendTransactionExecutionRevertedError,PasskeyIncompatibleAuthenticatorError,PasskeyMismatchError,PasskeyPromptError,PasskeyRegistrationError,SmartWalletError,SmartWalletsNotEnabledError,UserWalletAlreadyCreatedError,WalletContext,useAuth,useCrossmint,useCrossmintEvents,useWallet});
|
|
2
2
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/twind.config.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/components/embed/crypto/CryptoEmbeddedCheckoutIFrame.tsx","../src/hooks/useDeepEffect.ts","../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/hooks/useCrossmint.tsx","../src/hooks/useWallet.ts","../src/providers/CrossmintWalletProvider.tsx","../src/hooks/useAuth.ts","../src/providers/CrossmintAuthProvider.tsx","../src/components/auth/AuthModal.tsx","../src/icons/x.tsx","../src/utils/classNames.ts"],"sourcesContent":["import { install } from \"@twind/core\";\n\nimport twindConfig from \"./twind.config\";\n\n// Initialize twind with custom configuration\n// This sets up the CSS-in-JS styling solution for the entire application\ninstall(twindConfig);\n\nexport * from \"./components\";\nexport * from \"./hooks\";\nexport * from \"./providers\";\n\nexport { CrossmintEvents, useCrossmintEvents } from \"@crossmint/client-sdk-base\";\nexport {\n type EVMSmartWallet,\n Chain,\n SmartWalletError,\n UserWalletAlreadyCreatedError,\n AdminAlreadyUsedError,\n AdminMismatchError,\n PasskeyMismatchError,\n PasskeyPromptError,\n PasskeyRegistrationError,\n PasskeyIncompatibleAuthenticatorError,\n ConfigError,\n SmartWalletsNotEnabledError,\n EVMSendTransactionError,\n EVMSendTransactionExecutionRevertedError,\n} from \"@crossmint/client-sdk-smart-wallet\";\nexport type { CrossmintEvent, CrossmintEventMap } from \"@crossmint/client-sdk-base\";\n","import { defineConfig } from \"@twind/core\";\nimport presetTailwind from \"@twind/preset-tailwind\";\n\nexport default defineConfig({\n presets: [presetTailwind(/* options */)],\n /* config */\n});\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.3.22\";\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 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 useDeepEffect from \"../../../hooks/useDeepEffect\";\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 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 { useEffect, useState } from \"react\";\n\nimport {\n CrossmintEmbeddedCheckoutProps,\n IncomingInternalEvent,\n IncomingInternalEvents,\n crossmintIFrameService,\n} 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 {\n FiatEmbeddedCheckoutProps,\n crossmintIFrameService,\n embeddedCheckoutPropsToUpdatableParamsPayload,\n} from \"@crossmint/client-sdk-base\";\n\nimport useDeepEffect from \"../../../hooks/useDeepEffect\";\nimport CrossmintEmbeddedCheckoutIFrame from \"../EmbeddedCheckoutIFrame\";\n\nexport default function FiatEmbeddedCheckoutIFrame(props: FiatEmbeddedCheckoutProps) {\n const { emitInternalEvent } = crossmintIFrameService(props);\n\n useDeepEffect(() => {\n emitInternalEvent({\n type: \"params-update\",\n payload: embeddedCheckoutPropsToUpdatableParamsPayload(props),\n });\n }, [props.recipient, props.mintConfig, props.locale, props.currency, props.whPassThroughArgs]);\n\n return <CrossmintEmbeddedCheckoutIFrame {...props} />;\n}\n","import { FiatEmbeddedCheckoutProps } from \"@crossmint/client-sdk-base\";\n\nimport FiatEmbeddedCheckoutIFrame from \"../../../components/embed/fiat/FiatEmbeddedCheckoutIFrame\";\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","import { ReactNode, createContext, useCallback, useContext, useMemo, useRef, useState } from \"react\";\n\nimport { Crossmint, createCrossmint } from \"@crossmint/common-sdk-base\";\n\nexport interface CrossmintContext {\n crossmint: Crossmint;\n setJwt: (jwt: string | undefined) => void;\n}\n\nconst CrossmintContext = createContext<CrossmintContext | null>(null);\n\nexport function CrossmintProvider({\n children,\n apiKey,\n overrideBaseUrl,\n}: Omit<Crossmint, \"jwt\"> & {\n children: ReactNode;\n}) {\n const [version, setVersion] = useState(0);\n\n const crossmintRef = useRef<Crossmint>(\n new Proxy<Crossmint>(createCrossmint({ apiKey, overrideBaseUrl }), {\n set(target, prop, value) {\n if (prop === \"jwt\" && target.jwt !== value) {\n setVersion((v) => v + 1);\n }\n return Reflect.set(target, prop, value);\n },\n })\n );\n\n const setJwt = useCallback((jwt: string | undefined) => {\n if (jwt !== crossmintRef.current.jwt) {\n crossmintRef.current.jwt = jwt;\n }\n }, []);\n\n const value = useMemo(\n () => ({\n get crossmint() {\n return crossmintRef.current;\n },\n setJwt,\n }),\n [setJwt, version]\n );\n\n return <CrossmintContext.Provider value={value}>{children}</CrossmintContext.Provider>;\n}\n\nexport function useCrossmint(missingContextMessage?: string) {\n const context = useContext(CrossmintContext);\n if (context == null) {\n throw new Error(missingContextMessage ?? \"useCrossmint must be used within a CrossmintProvider\");\n }\n return context;\n}\n","import { useContext } from \"react\";\n\nimport { WalletContext } from \"../providers/CrossmintWalletProvider\";\n\nexport function useWallet() {\n const walletContext = useContext(WalletContext);\n\n if (!walletContext) {\n throw new Error(\"useWallet must be used within CrossmintAuthProvider or CrossmintWalletProvider\");\n }\n\n return walletContext;\n}\n","import { ReactNode, createContext, useMemo, useState } from \"react\";\n\nimport {\n EVMSmartWallet,\n EVMSmartWalletChain,\n SmartWalletError,\n SmartWalletSDK,\n WalletParams,\n} from \"@crossmint/client-sdk-smart-wallet\";\n\nimport { useCrossmint } from \"../hooks\";\n\ntype WalletStatus = \"not-loaded\" | \"in-progress\" | \"loaded\" | \"loading-error\";\ntype ValidWalletState =\n | { status: \"not-loaded\" | \"in-progress\" }\n | { status: \"loaded\"; wallet: EVMSmartWallet }\n | { status: \"loading-error\"; error: SmartWalletError };\n\ntype WalletContext = {\n status: WalletStatus;\n wallet?: EVMSmartWallet;\n error?: SmartWalletError;\n getOrCreateWallet: (config?: WalletConfig) => { startedCreation: boolean; reason?: string };\n clearWallet: () => void;\n};\n\nexport const WalletContext = createContext<WalletContext>({\n status: \"not-loaded\",\n getOrCreateWallet: () => ({ startedCreation: false }),\n clearWallet: () => {},\n});\n\nexport type WalletConfig = WalletParams & { type: \"evm-smart-wallet\" };\n\nexport function CrossmintWalletProvider({\n children,\n defaultChain,\n}: {\n children: ReactNode;\n defaultChain: EVMSmartWalletChain;\n}) {\n const { crossmint } = useCrossmint(\"CrossmintWalletProvider must be used within CrossmintProvider\");\n const smartWalletSDK = useMemo(() => SmartWalletSDK.init({ clientApiKey: crossmint.apiKey }), [crossmint.apiKey]);\n\n const [state, setState] = useState<ValidWalletState>({ status: \"not-loaded\" });\n\n const getOrCreateWallet = (config: WalletConfig = { type: \"evm-smart-wallet\", signer: { type: \"PASSKEY\" } }) => {\n if (state.status == \"in-progress\") {\n console.log(\"Wallet already loading\");\n return { startedCreation: false, reason: \"Wallet is already loading.\" };\n }\n\n if (crossmint.jwt == null) {\n return { startedCreation: false, reason: `Jwt not set in \"CrossmintProvider\".` };\n }\n\n const internalCall = async () => {\n try {\n setState({ status: \"in-progress\" });\n const wallet = await smartWalletSDK.getOrCreateWallet(\n { jwt: crossmint.jwt as string },\n defaultChain,\n config\n );\n setState({ status: \"loaded\", wallet });\n } catch (error: unknown) {\n console.error(\"There was an error creating a wallet \", error);\n setState(deriveErrorState(error));\n }\n };\n\n internalCall();\n return { startedCreation: true };\n };\n\n const clearWallet = () => {\n setState({ status: \"not-loaded\" });\n };\n\n return (\n <WalletContext.Provider value={{ ...state, getOrCreateWallet, clearWallet }}>{children}</WalletContext.Provider>\n );\n}\n\nfunction deriveErrorState(error: unknown): { status: \"loading-error\"; error: SmartWalletError } {\n if (error instanceof SmartWalletError) {\n return { status: \"loading-error\", error };\n }\n\n const message = error instanceof Error ? error.message : String(error);\n const stack = error instanceof Error ? error.stack : undefined;\n return { status: \"loading-error\", error: new SmartWalletError(`Unknown Wallet Error: ${message}`, stack) };\n}\n","import { useContext } from \"react\";\n\nimport { AuthContext } from \"../providers\";\n\nexport function useAuth() {\n const context = useContext(AuthContext);\n if (context === undefined) {\n throw new Error(\"useAuth must be used within an AuthProvider\");\n }\n return context;\n}\n","import { type ReactNode, createContext, useEffect, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport type { EVMSmartWalletChain } from \"@crossmint/client-sdk-smart-wallet\";\nimport { type UIConfig, validateApiKeyAndGetCrossmintBaseUrl } from \"@crossmint/common-sdk-base\";\n\nimport AuthModal from \"../components/auth/AuthModal\";\nimport { useCrossmint, useWallet } from \"../hooks\";\nimport { CrossmintWalletProvider } from \"./CrossmintWalletProvider\";\n\nconst SESSION_PREFIX = \"crossmint-session\";\n\nexport type CrossmintAuthWalletConfig = {\n defaultChain: EVMSmartWalletChain;\n createOnLogin: \"all-users\" | \"off\";\n type: \"evm-smart-wallet\";\n};\n\nexport type CrossmintAuthProviderProps = {\n embeddedWallets: CrossmintAuthWalletConfig;\n appearance?: UIConfig;\n children: ReactNode;\n};\n\ntype AuthStatus = \"logged-in\" | \"logged-out\" | \"in-progress\";\n\ntype AuthContextType = {\n login: () => void;\n logout: () => void;\n jwt?: string;\n status: AuthStatus;\n};\n\nexport const AuthContext = createContext<AuthContextType>({\n login: () => {},\n logout: () => {},\n status: \"logged-out\",\n});\n\nexport function CrossmintAuthProvider({ embeddedWallets, children, appearance }: CrossmintAuthProviderProps) {\n const { crossmint, setJwt } = useCrossmint(\"CrossmintAuthProvider must be used within CrossmintProvider\");\n const crossmintBaseUrl = validateApiKeyAndGetCrossmintBaseUrl(crossmint.apiKey);\n const [modalOpen, setModalOpen] = useState(false);\n\n useEffect(() => {\n const session = sessionFromClient();\n if (session != null) {\n setJwt(session);\n }\n }, []);\n\n const login = () => {\n if (crossmint.jwt != null) {\n console.log(\"User already logged in\");\n return;\n }\n\n setModalOpen(true);\n };\n\n const logout = () => {\n document.cookie = `${SESSION_PREFIX}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`;\n setJwt(undefined);\n };\n\n useEffect(() => {\n if (crossmint.jwt == null) {\n return;\n }\n\n setModalOpen(false);\n }, [crossmint.jwt]);\n\n useEffect(() => {\n if (crossmint.jwt) {\n document.cookie = `${SESSION_PREFIX}=${crossmint.jwt}; path=/;SameSite=Lax;`;\n }\n }, [crossmint.jwt]);\n\n const getAuthStatus = (): AuthStatus => {\n if (crossmint.jwt != null) {\n return \"logged-in\";\n }\n if (modalOpen) {\n return \"in-progress\";\n }\n return \"logged-out\";\n };\n\n return (\n <AuthContext.Provider\n value={{\n login,\n logout,\n jwt: crossmint.jwt,\n status: getAuthStatus(),\n }}\n >\n <CrossmintWalletProvider defaultChain={embeddedWallets.defaultChain}>\n <WalletManager embeddedWallets={embeddedWallets} accessToken={crossmint.jwt}>\n {children}\n </WalletManager>\n {modalOpen\n ? createPortal(\n <AuthModal\n baseUrl={crossmintBaseUrl}\n setModalOpen={setModalOpen}\n setJwtToken={setJwt}\n apiKey={crossmint.apiKey}\n appearance={appearance}\n />,\n\n document.body\n )\n : null}\n </CrossmintWalletProvider>\n </AuthContext.Provider>\n );\n}\n\nfunction WalletManager({\n embeddedWallets,\n children,\n accessToken,\n}: {\n embeddedWallets: CrossmintAuthWalletConfig;\n children: ReactNode;\n accessToken: string | undefined;\n}) {\n const { getOrCreateWallet, clearWallet, status } = useWallet();\n\n useEffect(() => {\n if (embeddedWallets.createOnLogin === \"all-users\" && status === \"not-loaded\" && accessToken != null) {\n getOrCreateWallet({\n type: embeddedWallets.type,\n signer: { type: \"PASSKEY\" },\n });\n }\n\n if (status === \"loaded\" && accessToken == null) {\n clearWallet();\n }\n }, [accessToken, status]);\n\n return <>{children}</>;\n}\n\nfunction sessionFromClient(): string | undefined {\n const crossmintSession = document.cookie.split(\"; \").find((row) => row.startsWith(SESSION_PREFIX));\n return crossmintSession ? crossmintSession.split(\"=\")[1] : undefined;\n}\n","import { Dialog, Transition } from \"@headlessui/react\";\nimport { CSSProperties, Fragment, useEffect, useRef, useState } from \"react\";\nimport { z } from \"zod\";\n\nimport { IFrameWindow } from \"@crossmint/client-sdk-window\";\nimport { UIConfig } from \"@crossmint/common-sdk-base\";\n\nimport X from \"../../icons/x\";\nimport { classNames } from \"../../utils/classNames\";\n\nconst incomingModalIframeEvents = {\n jwtToken: z.object({\n jwtToken: z.string(),\n }),\n};\n\nconst outgoingModalIframeEvents = {\n closeWindow: z.object({\n closeWindow: z.string(),\n }),\n};\n\ntype IncomingModalIframeEventsType = {\n jwtToken: typeof incomingModalIframeEvents.jwtToken;\n};\n\ntype OutgoingModalIframeEventsType = {\n closeWindow: typeof outgoingModalIframeEvents.closeWindow;\n};\n\ntype AuthModalProps = {\n setModalOpen: (open: boolean) => void;\n setJwtToken: (jwtToken: string) => void;\n apiKey: string;\n baseUrl: string;\n appearance?: UIConfig;\n};\n\nexport default function AuthModal({ setModalOpen, setJwtToken, apiKey, baseUrl, appearance }: AuthModalProps) {\n let iframeSrc = `${baseUrl}sdk/auth/frame?apiKey=${apiKey}`;\n if (appearance != null) {\n // The appearance object is serialized into a query parameter\n iframeSrc += `&uiConfig=${encodeURIComponent(JSON.stringify(appearance))}`;\n }\n\n const iframeRef = useRef<HTMLIFrameElement | null>(null);\n const [iframe, setIframe] = useState<IFrameWindow<\n IncomingModalIframeEventsType,\n OutgoingModalIframeEventsType\n > | null>(null);\n\n useEffect(() => {\n if (iframe == null) {\n return;\n }\n\n iframe.on(\"jwtToken\", (data) => {\n setJwtToken(data.jwtToken);\n iframe.off(\"jwtToken\");\n\n iframe.send(\"closeWindow\", {\n closeWindow: \"closeWindow\",\n });\n\n if (iframe?.iframe.contentWindow != null) {\n iframe.iframe.contentWindow.close();\n }\n setModalOpen(false);\n });\n\n return () => {\n if (iframe) {\n iframe.off(\"jwtToken\");\n\n if (iframe.iframe.contentWindow != null) {\n iframe.iframe.contentWindow.close();\n }\n }\n };\n }, [iframe, setJwtToken, setModalOpen]);\n\n const handleIframeLoaded = async () => {\n if (iframeRef.current == null) {\n // The iframe should be load, here we should log on DD if possible\n console.error(\"Something wrong happened, please try again\");\n return;\n }\n\n const initIframe = await IFrameWindow.init(iframeRef.current, {\n incomingEvents: incomingModalIframeEvents,\n outgoingEvents: outgoingModalIframeEvents,\n });\n setIframe(initIframe);\n };\n\n return (\n <Transition.Root show as={Fragment}>\n <Dialog as=\"div\" style={styles.dialog} onClose={() => setModalOpen(false)}>\n <Transition.Child\n as={Fragment}\n enter=\"ease-out duration-400\"\n enterFrom=\"opacity-0\"\n enterTo=\"opacity-100\"\n leave=\"ease-in duration-400\"\n leaveFrom=\"opacity-100\"\n leaveTo=\"opacity-0\"\n >\n <div style={styles.transitionBegin} />\n </Transition.Child>\n <Transition.Child\n as={Fragment}\n enter=\"ease-out duration-400\"\n enterFrom=\"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95\"\n enterTo=\"opacity-100 translate-y-0 sm:scale-100\"\n leave=\"ease-in duration-400\"\n leaveFrom=\"opacity-100 translate-y-0 sm:scale-100\"\n leaveTo=\"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95\"\n >\n <div style={styles.transitionEnd} onClick={(e) => e.stopPropagation()}>\n <div style={{ position: \"relative\", width: \"100%\" }}>\n <button\n type=\"button\"\n aria-label=\"Close\"\n style={{\n width: \"1.5rem\",\n position: \"absolute\",\n right: \"1.5rem\",\n top: \"1.5rem\",\n cursor: \"pointer\",\n color: appearance?.colors?.border ?? \"#909ca3\",\n outlineOffset: \"4px\",\n borderRadius: \"100%\",\n }}\n onClick={() => setModalOpen(false)}\n >\n <X />\n </button>\n </div>\n <iframe\n ref={iframeRef}\n src={iframeSrc}\n onLoad={handleIframeLoaded}\n title=\"Authentication Modal\"\n className={classNames(\n \"w-full h-[500px] border pt-12 pb-8\",\n appearance?.colors?.border\n ? `border-[${appearance.colors.border}]`\n : \"border-[#D0D5DD]\",\n appearance?.borderRadius ? `rounded-[${appearance.borderRadius}]` : \"rounded-2xl\",\n appearance?.colors?.background ? `bg-[${appearance.colors.background}]` : \"bg-white\"\n )}\n />\n </div>\n </Transition.Child>\n </Dialog>\n </Transition.Root>\n );\n}\n\nconst styles: { [key: string]: CSSProperties } = {\n dialog: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n overflowY: \"auto\",\n position: \"fixed\",\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n zIndex: 20,\n },\n transitionBegin: {\n background: \"rgba(139, 151, 151, 0.2)\",\n backdropFilter: \"blur(2px)\",\n position: \"fixed\",\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n transitionProperty: \"opacity\",\n transitionTimingFunction: \"cubic-bezier(0.4, 0, 0.2, 1)\",\n transitionDuration: \"300ms\",\n zIndex: -10,\n },\n transitionEnd: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n width: \"100%\",\n maxWidth: \"448px\",\n borderRadius: \"0.75rem\",\n boxShadow: \"0 1px 2px 0 rgba(0, 0, 0, 0.05)\",\n zIndex: 30,\n },\n};\n","export default function X({ className }: { className?: string }) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n >\n <path d=\"M18 6 6 18\" />\n <path d=\"m6 6 12 12\" />\n </svg>\n );\n}\n","import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\n/**\n * Combines multiple class names into a single string.\n *\n * @param inputs - The class names to combine.\n * @returns The combined class names as a string.\n */\nexport function classNames(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n"],"mappings":"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","names":["src_exports","__export","AuthContext","CrossmintAuthProvider","CrossmintNFTCollectionView","CrossmintNFTDetail","CrossmintPayButton","CrossmintPaymentElement","CrossmintProvider","CrossmintWalletProvider","WalletContext","useAuth","useCrossmint","useWallet","__toCommonJS","import_core","import_core","import_preset_tailwind","twind_config_default","presetTailwind","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_bs58","import_client_sdk_base","import_lodash","import_react","useDeepEffect","callback","dependencies","dependenciesRef","dep","i","isEqual","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_client_sdk_base","import_jsx_runtime","FiatEmbeddedCheckoutIFrame","props","emitInternalEvent","useDeepEffect","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_react","import_common_sdk_base","import_jsx_runtime","CrossmintContext","CrossmintProvider","children","apiKey","overrideBaseUrl","version","setVersion","crossmintRef","target","prop","value","v","setJwt","jwt","useCrossmint","missingContextMessage","context","import_react","import_react","import_client_sdk_smart_wallet","import_jsx_runtime","WalletContext","CrossmintWalletProvider","children","defaultChain","crossmint","useCrossmint","smartWalletSDK","state","setState","getOrCreateWallet","config","__async","wallet","error","deriveErrorState","clearWallet","__spreadProps","__spreadValues","message","stack","useWallet","walletContext","WalletContext","import_react","import_react","import_react_dom","import_common_sdk_base","import_react","import_zod","import_client_sdk_window","import_jsx_runtime","X","className","import_clsx","import_tailwind_merge","classNames","inputs","import_jsx_runtime","incomingModalIframeEvents","outgoingModalIframeEvents","AuthModal","setModalOpen","setJwtToken","apiKey","baseUrl","appearance","_a","_b","_c","_d","iframeSrc","iframeRef","iframe","setIframe","data","handleIframeLoaded","__async","initIframe","styles","e","X","classNames","import_jsx_runtime","SESSION_PREFIX","AuthContext","CrossmintAuthProvider","embeddedWallets","children","appearance","crossmint","setJwt","useCrossmint","crossmintBaseUrl","modalOpen","setModalOpen","session","sessionFromClient","login","logout","getAuthStatus","CrossmintWalletProvider","WalletManager","AuthModal","accessToken","getOrCreateWallet","clearWallet","status","useWallet","crossmintSession","row","useAuth","context","AuthContext","import_client_sdk_base","import_client_sdk_smart_wallet","twind_config_default"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/twind.config.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/components/embed/crypto/CryptoEmbeddedCheckoutIFrame.tsx","../src/hooks/useDeepEffect.ts","../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/hooks/useCrossmint.tsx","../src/hooks/useWallet.ts","../src/providers/CrossmintWalletProvider.tsx","../src/hooks/useAuth.ts","../src/providers/CrossmintAuthProvider.tsx","../src/components/auth/AuthModal.tsx","../src/icons/x.tsx","../src/utils/classNames.ts"],"sourcesContent":["import { install } from \"@twind/core\";\n\nimport twindConfig from \"./twind.config\";\n\n// Initialize twind with custom configuration\n// This sets up the CSS-in-JS styling solution for the entire application\ninstall(twindConfig);\n\nexport * from \"./components\";\nexport * from \"./hooks\";\nexport * from \"./providers\";\n\nexport { CrossmintEvents, useCrossmintEvents } from \"@crossmint/client-sdk-base\";\nexport {\n type EVMSmartWallet,\n type ExternalSigner,\n type PasskeySigner,\n Chain,\n SmartWalletError,\n UserWalletAlreadyCreatedError,\n AdminAlreadyUsedError,\n AdminMismatchError,\n PasskeyMismatchError,\n PasskeyPromptError,\n PasskeyRegistrationError,\n PasskeyIncompatibleAuthenticatorError,\n ConfigError,\n SmartWalletsNotEnabledError,\n EVMSendTransactionError,\n EVMSendTransactionExecutionRevertedError,\n} from \"@crossmint/client-sdk-smart-wallet\";\nexport type { CrossmintEvent, CrossmintEventMap } from \"@crossmint/client-sdk-base\";\n","import { defineConfig } from \"@twind/core\";\nimport presetTailwind from \"@twind/preset-tailwind\";\n\nexport default defineConfig({\n presets: [presetTailwind(/* options */)],\n /* config */\n});\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.3.23\";\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 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 useDeepEffect from \"../../../hooks/useDeepEffect\";\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 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 { useEffect, useState } from \"react\";\n\nimport {\n CrossmintEmbeddedCheckoutProps,\n IncomingInternalEvent,\n IncomingInternalEvents,\n crossmintIFrameService,\n} 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 {\n FiatEmbeddedCheckoutProps,\n crossmintIFrameService,\n embeddedCheckoutPropsToUpdatableParamsPayload,\n} from \"@crossmint/client-sdk-base\";\n\nimport useDeepEffect from \"../../../hooks/useDeepEffect\";\nimport CrossmintEmbeddedCheckoutIFrame from \"../EmbeddedCheckoutIFrame\";\n\nexport default function FiatEmbeddedCheckoutIFrame(props: FiatEmbeddedCheckoutProps) {\n const { emitInternalEvent } = crossmintIFrameService(props);\n\n useDeepEffect(() => {\n emitInternalEvent({\n type: \"params-update\",\n payload: embeddedCheckoutPropsToUpdatableParamsPayload(props),\n });\n }, [props.recipient, props.mintConfig, props.locale, props.currency, props.whPassThroughArgs]);\n\n return <CrossmintEmbeddedCheckoutIFrame {...props} />;\n}\n","import { FiatEmbeddedCheckoutProps } from \"@crossmint/client-sdk-base\";\n\nimport FiatEmbeddedCheckoutIFrame from \"../../../components/embed/fiat/FiatEmbeddedCheckoutIFrame\";\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","import { ReactNode, createContext, useCallback, useContext, useMemo, useRef, useState } from \"react\";\n\nimport { Crossmint, createCrossmint } from \"@crossmint/common-sdk-base\";\n\nexport interface CrossmintContext {\n crossmint: Crossmint;\n setJwt: (jwt: string | undefined) => void;\n}\n\nconst CrossmintContext = createContext<CrossmintContext | null>(null);\n\nexport function CrossmintProvider({\n children,\n apiKey,\n overrideBaseUrl,\n}: Omit<Crossmint, \"jwt\"> & {\n children: ReactNode;\n}) {\n const [version, setVersion] = useState(0);\n\n const crossmintRef = useRef<Crossmint>(\n new Proxy<Crossmint>(createCrossmint({ apiKey, overrideBaseUrl }), {\n set(target, prop, value) {\n if (prop === \"jwt\" && target.jwt !== value) {\n setVersion((v) => v + 1);\n }\n return Reflect.set(target, prop, value);\n },\n })\n );\n\n const setJwt = useCallback((jwt: string | undefined) => {\n if (jwt !== crossmintRef.current.jwt) {\n crossmintRef.current.jwt = jwt;\n }\n }, []);\n\n const value = useMemo(\n () => ({\n get crossmint() {\n return crossmintRef.current;\n },\n setJwt,\n }),\n [setJwt, version]\n );\n\n return <CrossmintContext.Provider value={value}>{children}</CrossmintContext.Provider>;\n}\n\nexport function useCrossmint(missingContextMessage?: string) {\n const context = useContext(CrossmintContext);\n if (context == null) {\n throw new Error(missingContextMessage ?? \"useCrossmint must be used within a CrossmintProvider\");\n }\n return context;\n}\n","import { useContext } from \"react\";\n\nimport { WalletContext } from \"../providers/CrossmintWalletProvider\";\n\nexport function useWallet() {\n const walletContext = useContext(WalletContext);\n\n if (!walletContext) {\n throw new Error(\"useWallet must be used within CrossmintAuthProvider or CrossmintWalletProvider\");\n }\n\n return walletContext;\n}\n","import { ReactNode, createContext, useMemo, useState } from \"react\";\n\nimport {\n EVMSmartWallet,\n EVMSmartWalletChain,\n SmartWalletError,\n SmartWalletSDK,\n WalletParams,\n} from \"@crossmint/client-sdk-smart-wallet\";\n\nimport { useCrossmint } from \"../hooks\";\n\ntype WalletStatus = \"not-loaded\" | \"in-progress\" | \"loaded\" | \"loading-error\";\ntype ValidWalletState =\n | { status: \"not-loaded\" | \"in-progress\" }\n | { status: \"loaded\"; wallet: EVMSmartWallet }\n | { status: \"loading-error\"; error: SmartWalletError };\n\ntype WalletContext = {\n status: WalletStatus;\n wallet?: EVMSmartWallet;\n error?: SmartWalletError;\n getOrCreateWallet: (config?: WalletConfig) => { startedCreation: boolean; reason?: string };\n clearWallet: () => void;\n};\n\nexport const WalletContext = createContext<WalletContext>({\n status: \"not-loaded\",\n getOrCreateWallet: () => ({ startedCreation: false }),\n clearWallet: () => {},\n});\n\nexport type WalletConfig = WalletParams & { type: \"evm-smart-wallet\" };\n\nexport function CrossmintWalletProvider({\n children,\n defaultChain,\n}: {\n children: ReactNode;\n defaultChain: EVMSmartWalletChain;\n}) {\n const { crossmint } = useCrossmint(\"CrossmintWalletProvider must be used within CrossmintProvider\");\n const smartWalletSDK = useMemo(() => SmartWalletSDK.init({ clientApiKey: crossmint.apiKey }), [crossmint.apiKey]);\n\n const [state, setState] = useState<ValidWalletState>({ status: \"not-loaded\" });\n\n const getOrCreateWallet = (config: WalletConfig = { type: \"evm-smart-wallet\", signer: { type: \"PASSKEY\" } }) => {\n if (state.status == \"in-progress\") {\n console.log(\"Wallet already loading\");\n return { startedCreation: false, reason: \"Wallet is already loading.\" };\n }\n\n if (crossmint.jwt == null) {\n return { startedCreation: false, reason: `Jwt not set in \"CrossmintProvider\".` };\n }\n\n const internalCall = async () => {\n try {\n setState({ status: \"in-progress\" });\n const wallet = await smartWalletSDK.getOrCreateWallet(\n { jwt: crossmint.jwt as string },\n defaultChain,\n config\n );\n setState({ status: \"loaded\", wallet });\n } catch (error: unknown) {\n console.error(\"There was an error creating a wallet \", error);\n setState(deriveErrorState(error));\n }\n };\n\n internalCall();\n return { startedCreation: true };\n };\n\n const clearWallet = () => {\n setState({ status: \"not-loaded\" });\n };\n\n return (\n <WalletContext.Provider value={{ ...state, getOrCreateWallet, clearWallet }}>{children}</WalletContext.Provider>\n );\n}\n\nfunction deriveErrorState(error: unknown): { status: \"loading-error\"; error: SmartWalletError } {\n if (error instanceof SmartWalletError) {\n return { status: \"loading-error\", error };\n }\n\n const message = error instanceof Error ? error.message : String(error);\n const stack = error instanceof Error ? error.stack : undefined;\n return { status: \"loading-error\", error: new SmartWalletError(`Unknown Wallet Error: ${message}`, stack) };\n}\n","import { useContext } from \"react\";\n\nimport { AuthContext } from \"../providers\";\n\nexport function useAuth() {\n const context = useContext(AuthContext);\n if (context === undefined) {\n throw new Error(\"useAuth must be used within an AuthProvider\");\n }\n return context;\n}\n","import { type ReactNode, createContext, useEffect, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport type { EVMSmartWalletChain } from \"@crossmint/client-sdk-smart-wallet\";\nimport { type UIConfig, validateApiKeyAndGetCrossmintBaseUrl } from \"@crossmint/common-sdk-base\";\n\nimport AuthModal from \"../components/auth/AuthModal\";\nimport { useCrossmint, useWallet } from \"../hooks\";\nimport { CrossmintWalletProvider } from \"./CrossmintWalletProvider\";\n\nconst SESSION_PREFIX = \"crossmint-session\";\n\nexport type CrossmintAuthWalletConfig = {\n defaultChain: EVMSmartWalletChain;\n createOnLogin: \"all-users\" | \"off\";\n type: \"evm-smart-wallet\";\n};\n\nexport type CrossmintAuthProviderProps = {\n embeddedWallets: CrossmintAuthWalletConfig;\n appearance?: UIConfig;\n children: ReactNode;\n};\n\ntype AuthStatus = \"logged-in\" | \"logged-out\" | \"in-progress\";\n\ntype AuthContextType = {\n login: () => void;\n logout: () => void;\n jwt?: string;\n status: AuthStatus;\n};\n\nexport const AuthContext = createContext<AuthContextType>({\n login: () => {},\n logout: () => {},\n status: \"logged-out\",\n});\n\nexport function CrossmintAuthProvider({ embeddedWallets, children, appearance }: CrossmintAuthProviderProps) {\n const { crossmint, setJwt } = useCrossmint(\"CrossmintAuthProvider must be used within CrossmintProvider\");\n const crossmintBaseUrl = validateApiKeyAndGetCrossmintBaseUrl(crossmint.apiKey);\n const [modalOpen, setModalOpen] = useState(false);\n\n useEffect(() => {\n const session = sessionFromClient();\n if (session != null) {\n setJwt(session);\n }\n }, []);\n\n const login = () => {\n if (crossmint.jwt != null) {\n console.log(\"User already logged in\");\n return;\n }\n\n setModalOpen(true);\n };\n\n const logout = () => {\n document.cookie = `${SESSION_PREFIX}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`;\n setJwt(undefined);\n };\n\n useEffect(() => {\n if (crossmint.jwt == null) {\n return;\n }\n\n setModalOpen(false);\n }, [crossmint.jwt]);\n\n useEffect(() => {\n if (crossmint.jwt) {\n document.cookie = `${SESSION_PREFIX}=${crossmint.jwt}; path=/;SameSite=Lax;`;\n }\n }, [crossmint.jwt]);\n\n const getAuthStatus = (): AuthStatus => {\n if (crossmint.jwt != null) {\n return \"logged-in\";\n }\n if (modalOpen) {\n return \"in-progress\";\n }\n return \"logged-out\";\n };\n\n return (\n <AuthContext.Provider\n value={{\n login,\n logout,\n jwt: crossmint.jwt,\n status: getAuthStatus(),\n }}\n >\n <CrossmintWalletProvider defaultChain={embeddedWallets.defaultChain}>\n <WalletManager embeddedWallets={embeddedWallets} accessToken={crossmint.jwt}>\n {children}\n </WalletManager>\n {modalOpen\n ? createPortal(\n <AuthModal\n baseUrl={crossmintBaseUrl}\n setModalOpen={setModalOpen}\n setJwtToken={setJwt}\n apiKey={crossmint.apiKey}\n appearance={appearance}\n />,\n\n document.body\n )\n : null}\n </CrossmintWalletProvider>\n </AuthContext.Provider>\n );\n}\n\nfunction WalletManager({\n embeddedWallets,\n children,\n accessToken,\n}: {\n embeddedWallets: CrossmintAuthWalletConfig;\n children: ReactNode;\n accessToken: string | undefined;\n}) {\n const { getOrCreateWallet, clearWallet, status } = useWallet();\n\n useEffect(() => {\n if (embeddedWallets.createOnLogin === \"all-users\" && status === \"not-loaded\" && accessToken != null) {\n getOrCreateWallet({\n type: embeddedWallets.type,\n signer: { type: \"PASSKEY\" },\n });\n }\n\n if (status === \"loaded\" && accessToken == null) {\n clearWallet();\n }\n }, [accessToken, status]);\n\n return <>{children}</>;\n}\n\nfunction sessionFromClient(): string | undefined {\n const crossmintSession = document.cookie.split(\"; \").find((row) => row.startsWith(SESSION_PREFIX));\n return crossmintSession ? crossmintSession.split(\"=\")[1] : undefined;\n}\n","import { Dialog, Transition } from \"@headlessui/react\";\nimport { CSSProperties, Fragment, useEffect, useRef, useState } from \"react\";\nimport { z } from \"zod\";\n\nimport { IFrameWindow } from \"@crossmint/client-sdk-window\";\nimport { UIConfig } from \"@crossmint/common-sdk-base\";\n\nimport X from \"../../icons/x\";\nimport { classNames } from \"../../utils/classNames\";\n\nconst incomingModalIframeEvents = {\n jwtToken: z.object({\n jwtToken: z.string(),\n }),\n};\n\nconst outgoingModalIframeEvents = {\n closeWindow: z.object({\n closeWindow: z.string(),\n }),\n};\n\ntype IncomingModalIframeEventsType = {\n jwtToken: typeof incomingModalIframeEvents.jwtToken;\n};\n\ntype OutgoingModalIframeEventsType = {\n closeWindow: typeof outgoingModalIframeEvents.closeWindow;\n};\n\ntype AuthModalProps = {\n setModalOpen: (open: boolean) => void;\n setJwtToken: (jwtToken: string) => void;\n apiKey: string;\n baseUrl: string;\n appearance?: UIConfig;\n};\n\nexport default function AuthModal({ setModalOpen, setJwtToken, apiKey, baseUrl, appearance }: AuthModalProps) {\n let iframeSrc = `${baseUrl}sdk/auth/frame?apiKey=${apiKey}`;\n if (appearance != null) {\n // The appearance object is serialized into a query parameter\n iframeSrc += `&uiConfig=${encodeURIComponent(JSON.stringify(appearance))}`;\n }\n\n const iframeRef = useRef<HTMLIFrameElement | null>(null);\n const [iframe, setIframe] = useState<IFrameWindow<\n IncomingModalIframeEventsType,\n OutgoingModalIframeEventsType\n > | null>(null);\n\n useEffect(() => {\n if (iframe == null) {\n return;\n }\n\n iframe.on(\"jwtToken\", (data) => {\n setJwtToken(data.jwtToken);\n iframe.off(\"jwtToken\");\n\n iframe.send(\"closeWindow\", {\n closeWindow: \"closeWindow\",\n });\n\n if (iframe?.iframe.contentWindow != null) {\n iframe.iframe.contentWindow.close();\n }\n setModalOpen(false);\n });\n\n return () => {\n if (iframe) {\n iframe.off(\"jwtToken\");\n\n if (iframe.iframe.contentWindow != null) {\n iframe.iframe.contentWindow.close();\n }\n }\n };\n }, [iframe, setJwtToken, setModalOpen]);\n\n const handleIframeLoaded = async () => {\n if (iframeRef.current == null) {\n // The iframe should be load, here we should log on DD if possible\n console.error(\"Something wrong happened, please try again\");\n return;\n }\n\n const initIframe = await IFrameWindow.init(iframeRef.current, {\n incomingEvents: incomingModalIframeEvents,\n outgoingEvents: outgoingModalIframeEvents,\n });\n setIframe(initIframe);\n };\n\n return (\n <Transition.Root show as={Fragment}>\n <Dialog as=\"div\" style={styles.dialog} onClose={() => setModalOpen(false)}>\n <Transition.Child\n as={Fragment}\n enter=\"ease-out duration-400\"\n enterFrom=\"opacity-0\"\n enterTo=\"opacity-100\"\n leave=\"ease-in duration-400\"\n leaveFrom=\"opacity-100\"\n leaveTo=\"opacity-0\"\n >\n <div style={styles.transitionBegin} />\n </Transition.Child>\n <Transition.Child\n as={Fragment}\n enter=\"ease-out duration-400\"\n enterFrom=\"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95\"\n enterTo=\"opacity-100 translate-y-0 sm:scale-100\"\n leave=\"ease-in duration-400\"\n leaveFrom=\"opacity-100 translate-y-0 sm:scale-100\"\n leaveTo=\"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95\"\n >\n <div style={styles.transitionEnd} onClick={(e) => e.stopPropagation()}>\n <div style={{ position: \"relative\", width: \"100%\" }}>\n <button\n type=\"button\"\n aria-label=\"Close\"\n style={{\n width: \"1.5rem\",\n position: \"absolute\",\n right: \"1.5rem\",\n top: \"1.5rem\",\n cursor: \"pointer\",\n color: appearance?.colors?.border ?? \"#909ca3\",\n outlineOffset: \"4px\",\n borderRadius: \"100%\",\n }}\n onClick={() => setModalOpen(false)}\n >\n <X />\n </button>\n </div>\n <iframe\n ref={iframeRef}\n src={iframeSrc}\n onLoad={handleIframeLoaded}\n title=\"Authentication Modal\"\n className={classNames(\n \"w-full h-[500px] border pt-12 pb-8\",\n appearance?.colors?.border\n ? `border-[${appearance.colors.border}]`\n : \"border-[#D0D5DD]\",\n appearance?.borderRadius ? `rounded-[${appearance.borderRadius}]` : \"rounded-2xl\",\n appearance?.colors?.background ? `bg-[${appearance.colors.background}]` : \"bg-white\"\n )}\n />\n </div>\n </Transition.Child>\n </Dialog>\n </Transition.Root>\n );\n}\n\nconst styles: { [key: string]: CSSProperties } = {\n dialog: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n overflowY: \"auto\",\n position: \"fixed\",\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n zIndex: 20,\n },\n transitionBegin: {\n background: \"rgba(139, 151, 151, 0.2)\",\n backdropFilter: \"blur(2px)\",\n position: \"fixed\",\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n transitionProperty: \"opacity\",\n transitionTimingFunction: \"cubic-bezier(0.4, 0, 0.2, 1)\",\n transitionDuration: \"300ms\",\n zIndex: -10,\n },\n transitionEnd: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n width: \"100%\",\n maxWidth: \"448px\",\n borderRadius: \"0.75rem\",\n boxShadow: \"0 1px 2px 0 rgba(0, 0, 0, 0.05)\",\n zIndex: 30,\n },\n};\n","export default function X({ className }: { className?: string }) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n >\n <path d=\"M18 6 6 18\" />\n <path d=\"m6 6 12 12\" />\n </svg>\n );\n}\n","import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\n/**\n * Combines multiple class names into a single string.\n *\n * @param inputs - The class names to combine.\n * @returns The combined class names as a string.\n */\nexport function classNames(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n"],"mappings":"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","names":["src_exports","__export","AuthContext","CrossmintAuthProvider","CrossmintNFTCollectionView","CrossmintNFTDetail","CrossmintPayButton","CrossmintPaymentElement","CrossmintProvider","CrossmintWalletProvider","WalletContext","useAuth","useCrossmint","useWallet","__toCommonJS","import_core","import_core","import_preset_tailwind","twind_config_default","presetTailwind","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_bs58","import_client_sdk_base","import_lodash","import_react","useDeepEffect","callback","dependencies","dependenciesRef","dep","i","isEqual","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_client_sdk_base","import_jsx_runtime","FiatEmbeddedCheckoutIFrame","props","emitInternalEvent","useDeepEffect","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_react","import_common_sdk_base","import_jsx_runtime","CrossmintContext","CrossmintProvider","children","apiKey","overrideBaseUrl","version","setVersion","crossmintRef","target","prop","value","v","setJwt","jwt","useCrossmint","missingContextMessage","context","import_react","import_react","import_client_sdk_smart_wallet","import_jsx_runtime","WalletContext","CrossmintWalletProvider","children","defaultChain","crossmint","useCrossmint","smartWalletSDK","state","setState","getOrCreateWallet","config","__async","wallet","error","deriveErrorState","clearWallet","__spreadProps","__spreadValues","message","stack","useWallet","walletContext","WalletContext","import_react","import_react","import_react_dom","import_common_sdk_base","import_react","import_zod","import_client_sdk_window","import_jsx_runtime","X","className","import_clsx","import_tailwind_merge","classNames","inputs","import_jsx_runtime","incomingModalIframeEvents","outgoingModalIframeEvents","AuthModal","setModalOpen","setJwtToken","apiKey","baseUrl","appearance","_a","_b","_c","_d","iframeSrc","iframeRef","iframe","setIframe","data","handleIframeLoaded","__async","initIframe","styles","e","X","classNames","import_jsx_runtime","SESSION_PREFIX","AuthContext","CrossmintAuthProvider","embeddedWallets","children","appearance","crossmint","setJwt","useCrossmint","crossmintBaseUrl","modalOpen","setModalOpen","session","sessionFromClient","login","logout","getAuthStatus","CrossmintWalletProvider","WalletManager","AuthModal","accessToken","getOrCreateWallet","clearWallet","status","useWallet","crossmintSession","row","useAuth","context","AuthContext","import_client_sdk_base","import_client_sdk_smart_wallet","twind_config_default"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -6,7 +6,7 @@ import * as react from 'react';
|
|
|
6
6
|
import { MouseEvent, CSSProperties, ReactNode } from 'react';
|
|
7
7
|
import * as _crossmint_client_sdk_smart_wallet from '@crossmint/client-sdk-smart-wallet';
|
|
8
8
|
import { EVMSmartWallet, SmartWalletError, WalletParams, EVMSmartWalletChain } from '@crossmint/client-sdk-smart-wallet';
|
|
9
|
-
export { AdminAlreadyUsedError, AdminMismatchError, Chain, ConfigError, EVMSendTransactionError, EVMSendTransactionExecutionRevertedError, EVMSmartWallet, PasskeyIncompatibleAuthenticatorError, PasskeyMismatchError, PasskeyPromptError, PasskeyRegistrationError, SmartWalletError, SmartWalletsNotEnabledError, UserWalletAlreadyCreatedError } from '@crossmint/client-sdk-smart-wallet';
|
|
9
|
+
export { AdminAlreadyUsedError, AdminMismatchError, Chain, ConfigError, EVMSendTransactionError, EVMSendTransactionExecutionRevertedError, EVMSmartWallet, ExternalSigner, PasskeyIncompatibleAuthenticatorError, PasskeyMismatchError, PasskeyPromptError, PasskeyRegistrationError, PasskeySigner, SmartWalletError, SmartWalletsNotEnabledError, UserWalletAlreadyCreatedError } from '@crossmint/client-sdk-smart-wallet';
|
|
10
10
|
|
|
11
11
|
declare function CrossmintNFTCollectionView(props: NFTCollectionViewProps): react_jsx_runtime.JSX.Element;
|
|
12
12
|
|
package/dist/index.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import * as react from 'react';
|
|
|
6
6
|
import { MouseEvent, CSSProperties, ReactNode } from 'react';
|
|
7
7
|
import * as _crossmint_client_sdk_smart_wallet from '@crossmint/client-sdk-smart-wallet';
|
|
8
8
|
import { EVMSmartWallet, SmartWalletError, WalletParams, EVMSmartWalletChain } from '@crossmint/client-sdk-smart-wallet';
|
|
9
|
-
export { AdminAlreadyUsedError, AdminMismatchError, Chain, ConfigError, EVMSendTransactionError, EVMSendTransactionExecutionRevertedError, EVMSmartWallet, PasskeyIncompatibleAuthenticatorError, PasskeyMismatchError, PasskeyPromptError, PasskeyRegistrationError, SmartWalletError, SmartWalletsNotEnabledError, UserWalletAlreadyCreatedError } from '@crossmint/client-sdk-smart-wallet';
|
|
9
|
+
export { AdminAlreadyUsedError, AdminMismatchError, Chain, ConfigError, EVMSendTransactionError, EVMSendTransactionExecutionRevertedError, EVMSmartWallet, ExternalSigner, PasskeyIncompatibleAuthenticatorError, PasskeyMismatchError, PasskeyPromptError, PasskeyRegistrationError, PasskeySigner, SmartWalletError, SmartWalletsNotEnabledError, UserWalletAlreadyCreatedError } from '@crossmint/client-sdk-smart-wallet';
|
|
10
10
|
|
|
11
11
|
declare function CrossmintNFTCollectionView(props: NFTCollectionViewProps): react_jsx_runtime.JSX.Element;
|
|
12
12
|
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var Rt=Object.defineProperty,Mt=Object.defineProperties;var Ft=Object.getOwnPropertyDescriptors;var v=Object.getOwnPropertySymbols;var z=Object.prototype.hasOwnProperty,G=Object.prototype.propertyIsEnumerable;var J=(t,e,o)=>e in t?Rt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[e]=o,u=(t,e)=>{for(var o in e||(e={}))z.call(e,o)&&J(t,o,e[o]);if(v)for(var o of v(e))G.call(e,o)&&J(t,o,e[o]);return t},X=(t,e)=>Mt(t,Ft(e));var P=(t,e)=>{var o={};for(var r in t)z.call(t,r)&&e.indexOf(r)<0&&(o[r]=t[r]);if(t!=null&&v)for(var r of v(t))e.indexOf(r)<0&&G.call(t,r)&&(o[r]=t[r]);return o};var p=(t,e,o)=>new Promise((r,n)=>{var l=s=>{try{i(o.next(s))}catch(a){n(a)}},c=s=>{try{i(o.throw(s))}catch(a){n(a)}},i=s=>s.done?r(s.value):Promise.resolve(s.value).then(l,c);i((o=o.apply(t,e)).next())});import{install as Ze}from"@twind/core";import{defineConfig as Ot}from"@twind/core";import Bt from"@twind/preset-tailwind";var q=Ot({presets:[Bt()]});import{assertValidNFTCollectionViewProps as Vt,getNFTCollectionViewSrc as Ut}from"@crossmint/client-sdk-base";var y="1.3.22";import{jsx as Lt}from"react/jsx-runtime";function ao(t){Vt(t);let e=Ut(t,y);return Lt("iframe",{src:e,width:"100%",height:"100%",style:{flexGrow:"1",border:"none",margin:"0",padding:"0"},role:"nft-collection-view"})}import{assertValidValidateNFTDetailProps as Dt,getNFTDetailSrc as jt}from"@crossmint/client-sdk-base";import{jsx as _t}from"react/jsx-runtime";function fo(t){Dt(t);let e=jt(t,y);return _t("iframe",{src:e,width:"100%",height:"100%",style:{flexGrow:"1",border:"none",margin:"0",padding:"0"},role:"nft-details"})}import{isCryptoEmbeddedCheckoutProps as se,isFiatEmbeddedCheckoutProps as ie}from"@crossmint/client-sdk-base";import{isCryptoEmbeddedCheckoutPropsWithSigner as Zt}from"@crossmint/client-sdk-base";import Gt from"bs58";import{IncomingInternalEvents as tt,OutgoingInternalEvents as et,crossmintIFrameService as Xt,embeddedCheckoutPropsToUpdatableParamsPayload as qt}from"@crossmint/client-sdk-base";import Ht from"lodash.isequal";import{useEffect as Kt,useRef as $t}from"react";function E(t,e){let o=$t(e);Kt(()=>{if(e.some((n,l)=>!Ht(n,o.current[l])))return o.current=e,t()},[e])}import{useEffect as Q,useState as Z}from"react";import{IncomingInternalEvents as Yt,crossmintIFrameService as Jt}from"@crossmint/client-sdk-base";import{jsx as zt}from"react/jsx-runtime";function w(o){var r=o,{onInternalEvent:t}=r,e=P(r,["onInternalEvent"]);let{getUrl:n,listenToEvents:l,listenToInternalEvents:c}=Jt(e),[i,s]=Z(0),[a]=Z(n(e));return Q(()=>{let m=l(d=>{var f;return(f=e.onEvent)==null?void 0:f.call(e,d.data)});return()=>{m()}},[]),Q(()=>{let m=c(d=>{let{type:f,payload:h}=d.data;f===Yt.UI_HEIGHT_CHANGED&&s(h.height),t==null||t(d.data)});return()=>{m()}},[]),zt("iframe",{src:a,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:`${i}px`}})}import{jsx as Qt}from"react/jsx-runtime";function R(t){let{emitInternalEvent:e}=Xt(t),{signer:o,paymentMethod:r}=t;function n(s){let{type:a,payload:m}=s;if(a===tt.CRYPTO_PAYMENT_INCOMING_TRANSACTION){let{serializedTransaction:d}=m;console.log("[Crossmint] Received incoming transaction",d),l(d)}if(a===tt.CRYPTO_CHAIN_SWITCH){let{chain:d}=m;console.log("[Crossmint] Received change of chain",d);let f=o.handleChainSwitch;if(f==null)throw new Error("switchNetwork function should have been defined");f(d)}}function l(s){return p(this,null,function*(){try{let a;switch(r){case"SOL":a=yield c(o,s);break;case"ETH":a=yield i(o,s);break;default:throw new Error(`Unsupported payment method ${r}`)}console.log("[Crossmint] Signed and sent transaction",a),e({type:et.CRYPTO_PAYMENT_USER_ACCEPTED,payload:{txId:a}})}catch(a){console.error("[Crossmint] Failed to sign and send transaction",a),e({type:et.CRYPTO_PAYMENT_USER_REJECTED,payload:{}})}})}function c(s,a){return p(this,null,function*(){let{Transaction:m}=yield import("@solana/web3.js"),d=m.from(Gt.decode(a));return console.log("[Crossmint] Deserialized SOL transaction",d),yield s.signAndSendTransaction(d)})}function i(s,a){return p(this,null,function*(){let{parse:m}=yield import("@ethersproject/transactions"),d=m(a);return console.log("[Crossmint] Deserialized ETH transaction",d),yield s.signAndSendTransaction(d)})}return E(()=>{e({type:"params-update",payload:qt(t)})},[t.signer.address,t.recipient,t.mintConfig,t.locale,t.currency,t.whPassThroughArgs,..."chain"in t.signer?[t.signer.chain]:[]]),Qt(w,u({onInternalEvent:n},t))}import{jsx as te}from"react/jsx-runtime";function ot(t){if(!Zt(t))throw new Error("Invalid parameters: signer is required in versions < 2.0.0");return te(R,u({},t))}import{crossmintIFrameService as ee,embeddedCheckoutPropsToUpdatableParamsPayload as oe}from"@crossmint/client-sdk-base";import{jsx as re}from"react/jsx-runtime";function M(t){let{emitInternalEvent:e}=ee(t);return E(()=>{e({type:"params-update",payload:oe(t)})},[t.recipient,t.mintConfig,t.locale,t.currency,t.whPassThroughArgs]),re(w,u({},t))}import{jsx as ne}from"react/jsx-runtime";function rt(t){return ne(M,u({},t))}import{jsx as nt}from"react/jsx-runtime";function ir(t){if(ie(t))return nt(rt,u({},t));if(se(t))return nt(ot,u({},t));throw new Error("Unsupported: Fiat is the only supported payment method.")}import{useMemo as ue}from"react";import{useState as fe}from"react";import{clientNames as pe,crossmintModalService as ge,crossmintPayButtonService as Ce}from"@crossmint/client-sdk-base";import{useEffect as ae,useState as le}from"react";function F(){let[t,e]=le(!0);return ae(()=>{e(!1)},[]),{isServerSideRendering:t}}import{createUseStyles as de}from"react-jss";var me="#1e1e1e",st=t=>t==="light",it=t=>({buttonBgColor:st(t)?"white":me,paragraphColor:st(t)?"black":"white"}),ce={"@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"}},at=de(ce);import{Fragment as ye,jsx as O,jsxs as he}from"react/jsx-runtime";function kr(t){let Y=t,{className:e,disabled:o,onClick:r,style:n,tabIndex:l,theme:c="dark",mintTo:i,emailTo:s,listingId:a,auctionId:m,showOverlay:d=!0,mintConfig:f,whPassThroughArgs:h,environment:C,paymentMethod:b,preferredSigninMethod:gt,dismissOverlayOnClick:Ct,prepay:ht,locale:K="en-US",currency:yt="usd",successCallbackURL:Et="",failureCallbackURL:wt="",loginEmail:bt="",projectId:St,getButtonText:W,checkoutProps:$={experimental:!1,display:"same-tab",paymentMethods:["fiat","ETH","SOL"]}}=Y,A=P(Y,["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"]),vt="clientId"in A?A.clientId:A.collectionId,[S,Pt]=fe(!1),{isServerSideRendering:kt}=F(),{connect:It}=ge({clientId:vt,projectId:St,showOverlay:d,dismissOverlayOnClick:Ct,setConnecting:Pt,libVersion:y,environment:C,clientName:pe.reactUi,locale:K,currency:yt,successCallbackURL:Et,failureCallbackURL:wt,loginEmail:bt}),{getButtonText:xt,handleClick:Tt}=Ce({onClick:r,connecting:S,paymentMethod:b,locale:K,checkoutProps:$}),Wt=Nt=>Tt(Nt,()=>{It(f,i,s,a,h,b,gt,ht,$)}),N=at(it(c)),At=ue(()=>O("span",{className:N.crossmintParagraph,role:"button-paragraph",children:W!=null?W(S,b||"fiat"):xt(S)}),[S,W,b]);return O(ye,{children:!kt&&he("button",{className:`${N.crossmintButton} ${e||""}`,disabled:o,onClick:Wt,style:u({},n),tabIndex:l,children:[O("img",{className:N.crossmintImg,src:"https://www.crossmint.io/assets/crossmint/logo.svg",alt:"Crossmint logo"}),At]})})}import{createContext as Ee,useCallback as we,useContext as be,useMemo as Se,useRef as ve,useState as Pe}from"react";import{createCrossmint as ke}from"@crossmint/common-sdk-base";import{jsx as Ie}from"react/jsx-runtime";var lt=Ee(null);function Mr({children:t,apiKey:e,overrideBaseUrl:o}){let[r,n]=Pe(0),l=ve(new Proxy(ke({apiKey:e,overrideBaseUrl:o}),{set(s,a,m){return a==="jwt"&&s.jwt!==m&&n(d=>d+1),Reflect.set(s,a,m)}})),c=we(s=>{s!==l.current.jwt&&(l.current.jwt=s)},[]),i=Se(()=>({get crossmint(){return l.current},setJwt:c}),[c,r]);return Ie(lt.Provider,{value:i,children:t})}function k(t){let e=be(lt);if(e==null)throw new Error(t!=null?t:"useCrossmint must be used within a CrossmintProvider");return e}import{useContext as Me}from"react";import{createContext as xe,useMemo as Te,useState as We}from"react";import{SmartWalletError as dt,SmartWalletSDK as Ae}from"@crossmint/client-sdk-smart-wallet";import{jsx as Re}from"react/jsx-runtime";var B=xe({status:"not-loaded",getOrCreateWallet:()=>({startedCreation:!1}),clearWallet:()=>{}});function mt({children:t,defaultChain:e}){let{crossmint:o}=k("CrossmintWalletProvider must be used within CrossmintProvider"),r=Te(()=>Ae.init({clientApiKey:o.apiKey}),[o.apiKey]),[n,l]=We({status:"not-loaded"}),c=(s={type:"evm-smart-wallet",signer:{type:"PASSKEY"}})=>n.status=="in-progress"?(console.log("Wallet already loading"),{startedCreation:!1,reason:"Wallet is already loading."}):o.jwt==null?{startedCreation:!1,reason:'Jwt not set in "CrossmintProvider".'}:(p(this,null,function*(){try{l({status:"in-progress"});let m=yield r.getOrCreateWallet({jwt:o.jwt},e,s);l({status:"loaded",wallet:m})}catch(m){console.error("There was an error creating a wallet ",m),l(Ne(m))}}),{startedCreation:!0}),i=()=>{l({status:"not-loaded"})};return Re(B.Provider,{value:X(u({},n),{getOrCreateWallet:c,clearWallet:i}),children:t})}function Ne(t){if(t instanceof dt)return{status:"loading-error",error:t};let e=t instanceof Error?t.message:String(t),o=t instanceof Error?t.stack:void 0;return{status:"loading-error",error:new dt(`Unknown Wallet Error: ${e}`,o)}}function ct(){let t=Me(B);if(!t)throw new Error("useWallet must be used within CrossmintAuthProvider or CrossmintWalletProvider");return t}import{useContext as Qe}from"react";import{createContext as Ke,useEffect as x,useState as $e}from"react";import{createPortal as Ye}from"react-dom";import{validateApiKeyAndGetCrossmintBaseUrl as Je}from"@crossmint/common-sdk-base";import{Dialog as Ve,Transition as U}from"@headlessui/react";import{Fragment as L,useEffect as Ue,useRef as Le,useState as De}from"react";import{z as I}from"zod";import{IFrameWindow as je}from"@crossmint/client-sdk-window";import{jsx as ut,jsxs as Fe}from"react/jsx-runtime";function V({className:t}){return Fe("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:t,children:[ut("path",{d:"M18 6 6 18"}),ut("path",{d:"m6 6 12 12"})]})}import{clsx as Oe}from"clsx";import{twMerge as Be}from"tailwind-merge";function ft(...t){return Be(Oe(t))}import{jsx as g,jsxs as pt}from"react/jsx-runtime";var _e={jwtToken:I.object({jwtToken:I.string()})},He={closeWindow:I.object({closeWindow:I.string()})};function j({setModalOpen:t,setJwtToken:e,apiKey:o,baseUrl:r,appearance:n}){var m,d,f,h;let l=`${r}sdk/auth/frame?apiKey=${o}`;n!=null&&(l+=`&uiConfig=${encodeURIComponent(JSON.stringify(n))}`);let c=Le(null),[i,s]=De(null);Ue(()=>{if(i!=null)return i.on("jwtToken",C=>{e(C.jwtToken),i.off("jwtToken"),i.send("closeWindow",{closeWindow:"closeWindow"}),(i==null?void 0:i.iframe.contentWindow)!=null&&i.iframe.contentWindow.close(),t(!1)}),()=>{i&&(i.off("jwtToken"),i.iframe.contentWindow!=null&&i.iframe.contentWindow.close())}},[i,e,t]);let a=()=>p(this,null,function*(){if(c.current==null){console.error("Something wrong happened, please try again");return}let C=yield je.init(c.current,{incomingEvents:_e,outgoingEvents:He});s(C)});return g(U.Root,{show:!0,as:L,children:pt(Ve,{as:"div",style:D.dialog,onClose:()=>t(!1),children:[g(U.Child,{as:L,enter:"ease-out duration-400",enterFrom:"opacity-0",enterTo:"opacity-100",leave:"ease-in duration-400",leaveFrom:"opacity-100",leaveTo:"opacity-0",children:g("div",{style:D.transitionBegin})}),g(U.Child,{as:L,enter:"ease-out duration-400",enterFrom:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",enterTo:"opacity-100 translate-y-0 sm:scale-100",leave:"ease-in duration-400",leaveFrom:"opacity-100 translate-y-0 sm:scale-100",leaveTo:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",children:pt("div",{style:D.transitionEnd,onClick:C=>C.stopPropagation(),children:[g("div",{style:{position:"relative",width:"100%"},children:g("button",{type:"button","aria-label":"Close",style:{width:"1.5rem",position:"absolute",right:"1.5rem",top:"1.5rem",cursor:"pointer",color:(d=(m=n==null?void 0:n.colors)==null?void 0:m.border)!=null?d:"#909ca3",outlineOffset:"4px",borderRadius:"100%"},onClick:()=>t(!1),children:g(V,{})})}),g("iframe",{ref:c,src:l,onLoad:a,title:"Authentication Modal",className:ft("w-full h-[500px] border pt-12 pb-8",(f=n==null?void 0:n.colors)!=null&&f.border?`border-[${n.colors.border}]`:"border-[#D0D5DD]",n!=null&&n.borderRadius?`rounded-[${n.borderRadius}]`:"rounded-2xl",(h=n==null?void 0:n.colors)!=null&&h.background?`bg-[${n.colors.background}]`:"bg-white")})]})})]})})}var D={dialog:{display:"flex",justifyContent:"center",alignItems:"center",overflowY:"auto",position:"fixed",top:0,right:0,bottom:0,left:0,zIndex:20},transitionBegin:{background:"rgba(139, 151, 151, 0.2)",backdropFilter:"blur(2px)",position:"fixed",top:0,right:0,bottom:0,left:0,transitionProperty:"opacity",transitionTimingFunction:"cubic-bezier(0.4, 0, 0.2, 1)",transitionDuration:"300ms",zIndex:-10},transitionEnd:{display:"flex",flexDirection:"column",alignItems:"center",width:"100%",maxWidth:"448px",borderRadius:"0.75rem",boxShadow:"0 1px 2px 0 rgba(0, 0, 0, 0.05)",zIndex:30}};import{Fragment as qe,jsx as T,jsxs as Xe}from"react/jsx-runtime";var _="crossmint-session",H=Ke({login:()=>{},logout:()=>{},status:"logged-out"});function hn({embeddedWallets:t,children:e,appearance:o}){let{crossmint:r,setJwt:n}=k("CrossmintAuthProvider must be used within CrossmintProvider"),l=Je(r.apiKey),[c,i]=$e(!1);x(()=>{let d=Ge();d!=null&&n(d)},[]);let s=()=>{if(r.jwt!=null){console.log("User already logged in");return}i(!0)},a=()=>{document.cookie=`${_}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`,n(void 0)};x(()=>{r.jwt!=null&&i(!1)},[r.jwt]),x(()=>{r.jwt&&(document.cookie=`${_}=${r.jwt}; path=/;SameSite=Lax;`)},[r.jwt]);let m=()=>r.jwt!=null?"logged-in":c?"in-progress":"logged-out";return T(H.Provider,{value:{login:s,logout:a,jwt:r.jwt,status:m()},children:Xe(mt,{defaultChain:t.defaultChain,children:[T(ze,{embeddedWallets:t,accessToken:r.jwt,children:e}),c?Ye(T(j,{baseUrl:l,setModalOpen:i,setJwtToken:n,apiKey:r.apiKey,appearance:o}),document.body):null]})})}function ze({embeddedWallets:t,children:e,accessToken:o}){let{getOrCreateWallet:r,clearWallet:n,status:l}=ct();return x(()=>{t.createOnLogin==="all-users"&&l==="not-loaded"&&o!=null&&r({type:t.type,signer:{type:"PASSKEY"}}),l==="loaded"&&o==null&&n()},[o,l]),T(qe,{children:e})}function Ge(){let t=document.cookie.split("; ").find(e=>e.startsWith(_));return t?t.split("=")[1]:void 0}function Sn(){let t=Qe(H);if(t===void 0)throw new Error("useAuth must be used within an AuthProvider");return t}import{CrossmintEvents as Nn,useCrossmintEvents as Rn}from"@crossmint/client-sdk-base";import{Chain as Fn,SmartWalletError as On,UserWalletAlreadyCreatedError as Bn,AdminAlreadyUsedError as Vn,AdminMismatchError as Un,PasskeyMismatchError as Ln,PasskeyPromptError as Dn,PasskeyRegistrationError as jn,PasskeyIncompatibleAuthenticatorError as _n,ConfigError as Hn,SmartWalletsNotEnabledError as Kn,EVMSendTransactionError as $n,EVMSendTransactionExecutionRevertedError as Yn}from"@crossmint/client-sdk-smart-wallet";Ze(q);export{Vn as AdminAlreadyUsedError,Un as AdminMismatchError,H as AuthContext,Fn as Chain,Hn as ConfigError,hn as CrossmintAuthProvider,Nn as CrossmintEvents,ao as CrossmintNFTCollectionView,fo as CrossmintNFTDetail,kr as CrossmintPayButton,ir as CrossmintPaymentElement,Mr as CrossmintProvider,mt as CrossmintWalletProvider,$n as EVMSendTransactionError,Yn as EVMSendTransactionExecutionRevertedError,_n as PasskeyIncompatibleAuthenticatorError,Ln as PasskeyMismatchError,Dn as PasskeyPromptError,jn as PasskeyRegistrationError,On as SmartWalletError,Kn as SmartWalletsNotEnabledError,Bn as UserWalletAlreadyCreatedError,B as WalletContext,Sn as useAuth,k as useCrossmint,Rn as useCrossmintEvents,ct as useWallet};
|
|
1
|
+
var Rt=Object.defineProperty,Mt=Object.defineProperties;var Ft=Object.getOwnPropertyDescriptors;var P=Object.getOwnPropertySymbols;var z=Object.prototype.hasOwnProperty,G=Object.prototype.propertyIsEnumerable;var J=(t,e,o)=>e in t?Rt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[e]=o,u=(t,e)=>{for(var o in e||(e={}))z.call(e,o)&&J(t,o,e[o]);if(P)for(var o of P(e))G.call(e,o)&&J(t,o,e[o]);return t},X=(t,e)=>Mt(t,Ft(e));var v=(t,e)=>{var o={};for(var r in t)z.call(t,r)&&e.indexOf(r)<0&&(o[r]=t[r]);if(t!=null&&P)for(var r of P(t))e.indexOf(r)<0&&G.call(t,r)&&(o[r]=t[r]);return o};var p=(t,e,o)=>new Promise((r,n)=>{var l=s=>{try{i(o.next(s))}catch(a){n(a)}},c=s=>{try{i(o.throw(s))}catch(a){n(a)}},i=s=>s.done?r(s.value):Promise.resolve(s.value).then(l,c);i((o=o.apply(t,e)).next())});import{install as Ze}from"@twind/core";import{defineConfig as Ot}from"@twind/core";import Bt from"@twind/preset-tailwind";var q=Ot({presets:[Bt()]});import{assertValidNFTCollectionViewProps as Vt,getNFTCollectionViewSrc as Ut}from"@crossmint/client-sdk-base";var y="1.3.23";import{jsx as Lt}from"react/jsx-runtime";function ao(t){Vt(t);let e=Ut(t,y);return Lt("iframe",{src:e,width:"100%",height:"100%",style:{flexGrow:"1",border:"none",margin:"0",padding:"0"},role:"nft-collection-view"})}import{assertValidValidateNFTDetailProps as Dt,getNFTDetailSrc as jt}from"@crossmint/client-sdk-base";import{jsx as _t}from"react/jsx-runtime";function fo(t){Dt(t);let e=jt(t,y);return _t("iframe",{src:e,width:"100%",height:"100%",style:{flexGrow:"1",border:"none",margin:"0",padding:"0"},role:"nft-details"})}import{isCryptoEmbeddedCheckoutProps as se,isFiatEmbeddedCheckoutProps as ie}from"@crossmint/client-sdk-base";import{isCryptoEmbeddedCheckoutPropsWithSigner as Zt}from"@crossmint/client-sdk-base";import Gt from"bs58";import{IncomingInternalEvents as tt,OutgoingInternalEvents as et,crossmintIFrameService as Xt,embeddedCheckoutPropsToUpdatableParamsPayload as qt}from"@crossmint/client-sdk-base";import Ht from"lodash.isequal";import{useEffect as Kt,useRef as $t}from"react";function E(t,e){let o=$t(e);Kt(()=>{if(e.some((n,l)=>!Ht(n,o.current[l])))return o.current=e,t()},[e])}import{useEffect as Q,useState as Z}from"react";import{IncomingInternalEvents as Yt,crossmintIFrameService as Jt}from"@crossmint/client-sdk-base";import{jsx as zt}from"react/jsx-runtime";function w(o){var r=o,{onInternalEvent:t}=r,e=v(r,["onInternalEvent"]);let{getUrl:n,listenToEvents:l,listenToInternalEvents:c}=Jt(e),[i,s]=Z(0),[a]=Z(n(e));return Q(()=>{let m=l(d=>{var f;return(f=e.onEvent)==null?void 0:f.call(e,d.data)});return()=>{m()}},[]),Q(()=>{let m=c(d=>{let{type:f,payload:h}=d.data;f===Yt.UI_HEIGHT_CHANGED&&s(h.height),t==null||t(d.data)});return()=>{m()}},[]),zt("iframe",{src:a,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:`${i}px`}})}import{jsx as Qt}from"react/jsx-runtime";function R(t){let{emitInternalEvent:e}=Xt(t),{signer:o,paymentMethod:r}=t;function n(s){let{type:a,payload:m}=s;if(a===tt.CRYPTO_PAYMENT_INCOMING_TRANSACTION){let{serializedTransaction:d}=m;console.log("[Crossmint] Received incoming transaction",d),l(d)}if(a===tt.CRYPTO_CHAIN_SWITCH){let{chain:d}=m;console.log("[Crossmint] Received change of chain",d);let f=o.handleChainSwitch;if(f==null)throw new Error("switchNetwork function should have been defined");f(d)}}function l(s){return p(this,null,function*(){try{let a;switch(r){case"SOL":a=yield c(o,s);break;case"ETH":a=yield i(o,s);break;default:throw new Error(`Unsupported payment method ${r}`)}console.log("[Crossmint] Signed and sent transaction",a),e({type:et.CRYPTO_PAYMENT_USER_ACCEPTED,payload:{txId:a}})}catch(a){console.error("[Crossmint] Failed to sign and send transaction",a),e({type:et.CRYPTO_PAYMENT_USER_REJECTED,payload:{}})}})}function c(s,a){return p(this,null,function*(){let{Transaction:m}=yield import("@solana/web3.js"),d=m.from(Gt.decode(a));return console.log("[Crossmint] Deserialized SOL transaction",d),yield s.signAndSendTransaction(d)})}function i(s,a){return p(this,null,function*(){let{parse:m}=yield import("@ethersproject/transactions"),d=m(a);return console.log("[Crossmint] Deserialized ETH transaction",d),yield s.signAndSendTransaction(d)})}return E(()=>{e({type:"params-update",payload:qt(t)})},[t.signer.address,t.recipient,t.mintConfig,t.locale,t.currency,t.whPassThroughArgs,..."chain"in t.signer?[t.signer.chain]:[]]),Qt(w,u({onInternalEvent:n},t))}import{jsx as te}from"react/jsx-runtime";function ot(t){if(!Zt(t))throw new Error("Invalid parameters: signer is required in versions < 2.0.0");return te(R,u({},t))}import{crossmintIFrameService as ee,embeddedCheckoutPropsToUpdatableParamsPayload as oe}from"@crossmint/client-sdk-base";import{jsx as re}from"react/jsx-runtime";function M(t){let{emitInternalEvent:e}=ee(t);return E(()=>{e({type:"params-update",payload:oe(t)})},[t.recipient,t.mintConfig,t.locale,t.currency,t.whPassThroughArgs]),re(w,u({},t))}import{jsx as ne}from"react/jsx-runtime";function rt(t){return ne(M,u({},t))}import{jsx as nt}from"react/jsx-runtime";function ir(t){if(ie(t))return nt(rt,u({},t));if(se(t))return nt(ot,u({},t));throw new Error("Unsupported: Fiat is the only supported payment method.")}import{useMemo as ue}from"react";import{useState as fe}from"react";import{clientNames as pe,crossmintModalService as ge,crossmintPayButtonService as Ce}from"@crossmint/client-sdk-base";import{useEffect as ae,useState as le}from"react";function F(){let[t,e]=le(!0);return ae(()=>{e(!1)},[]),{isServerSideRendering:t}}import{createUseStyles as de}from"react-jss";var me="#1e1e1e",st=t=>t==="light",it=t=>({buttonBgColor:st(t)?"white":me,paragraphColor:st(t)?"black":"white"}),ce={"@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"}},at=de(ce);import{Fragment as ye,jsx as O,jsxs as he}from"react/jsx-runtime";function kr(t){let Y=t,{className:e,disabled:o,onClick:r,style:n,tabIndex:l,theme:c="dark",mintTo:i,emailTo:s,listingId:a,auctionId:m,showOverlay:d=!0,mintConfig:f,whPassThroughArgs:h,environment:C,paymentMethod:b,preferredSigninMethod:gt,dismissOverlayOnClick:Ct,prepay:ht,locale:K="en-US",currency:yt="usd",successCallbackURL:Et="",failureCallbackURL:wt="",loginEmail:bt="",projectId:St,getButtonText:W,checkoutProps:$={experimental:!1,display:"same-tab",paymentMethods:["fiat","ETH","SOL"]}}=Y,A=v(Y,["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"]),Pt="clientId"in A?A.clientId:A.collectionId,[S,vt]=fe(!1),{isServerSideRendering:kt}=F(),{connect:It}=ge({clientId:Pt,projectId:St,showOverlay:d,dismissOverlayOnClick:Ct,setConnecting:vt,libVersion:y,environment:C,clientName:pe.reactUi,locale:K,currency:yt,successCallbackURL:Et,failureCallbackURL:wt,loginEmail:bt}),{getButtonText:xt,handleClick:Tt}=Ce({onClick:r,connecting:S,paymentMethod:b,locale:K,checkoutProps:$}),Wt=Nt=>Tt(Nt,()=>{It(f,i,s,a,h,b,gt,ht,$)}),N=at(it(c)),At=ue(()=>O("span",{className:N.crossmintParagraph,role:"button-paragraph",children:W!=null?W(S,b||"fiat"):xt(S)}),[S,W,b]);return O(ye,{children:!kt&&he("button",{className:`${N.crossmintButton} ${e||""}`,disabled:o,onClick:Wt,style:u({},n),tabIndex:l,children:[O("img",{className:N.crossmintImg,src:"https://www.crossmint.io/assets/crossmint/logo.svg",alt:"Crossmint logo"}),At]})})}import{createContext as Ee,useCallback as we,useContext as be,useMemo as Se,useRef as Pe,useState as ve}from"react";import{createCrossmint as ke}from"@crossmint/common-sdk-base";import{jsx as Ie}from"react/jsx-runtime";var lt=Ee(null);function Mr({children:t,apiKey:e,overrideBaseUrl:o}){let[r,n]=ve(0),l=Pe(new Proxy(ke({apiKey:e,overrideBaseUrl:o}),{set(s,a,m){return a==="jwt"&&s.jwt!==m&&n(d=>d+1),Reflect.set(s,a,m)}})),c=we(s=>{s!==l.current.jwt&&(l.current.jwt=s)},[]),i=Se(()=>({get crossmint(){return l.current},setJwt:c}),[c,r]);return Ie(lt.Provider,{value:i,children:t})}function k(t){let e=be(lt);if(e==null)throw new Error(t!=null?t:"useCrossmint must be used within a CrossmintProvider");return e}import{useContext as Me}from"react";import{createContext as xe,useMemo as Te,useState as We}from"react";import{SmartWalletError as dt,SmartWalletSDK as Ae}from"@crossmint/client-sdk-smart-wallet";import{jsx as Re}from"react/jsx-runtime";var B=xe({status:"not-loaded",getOrCreateWallet:()=>({startedCreation:!1}),clearWallet:()=>{}});function mt({children:t,defaultChain:e}){let{crossmint:o}=k("CrossmintWalletProvider must be used within CrossmintProvider"),r=Te(()=>Ae.init({clientApiKey:o.apiKey}),[o.apiKey]),[n,l]=We({status:"not-loaded"}),c=(s={type:"evm-smart-wallet",signer:{type:"PASSKEY"}})=>n.status=="in-progress"?(console.log("Wallet already loading"),{startedCreation:!1,reason:"Wallet is already loading."}):o.jwt==null?{startedCreation:!1,reason:'Jwt not set in "CrossmintProvider".'}:(p(this,null,function*(){try{l({status:"in-progress"});let m=yield r.getOrCreateWallet({jwt:o.jwt},e,s);l({status:"loaded",wallet:m})}catch(m){console.error("There was an error creating a wallet ",m),l(Ne(m))}}),{startedCreation:!0}),i=()=>{l({status:"not-loaded"})};return Re(B.Provider,{value:X(u({},n),{getOrCreateWallet:c,clearWallet:i}),children:t})}function Ne(t){if(t instanceof dt)return{status:"loading-error",error:t};let e=t instanceof Error?t.message:String(t),o=t instanceof Error?t.stack:void 0;return{status:"loading-error",error:new dt(`Unknown Wallet Error: ${e}`,o)}}function ct(){let t=Me(B);if(!t)throw new Error("useWallet must be used within CrossmintAuthProvider or CrossmintWalletProvider");return t}import{useContext as Qe}from"react";import{createContext as Ke,useEffect as x,useState as $e}from"react";import{createPortal as Ye}from"react-dom";import{validateApiKeyAndGetCrossmintBaseUrl as Je}from"@crossmint/common-sdk-base";import{Dialog as Ve,Transition as U}from"@headlessui/react";import{Fragment as L,useEffect as Ue,useRef as Le,useState as De}from"react";import{z as I}from"zod";import{IFrameWindow as je}from"@crossmint/client-sdk-window";import{jsx as ut,jsxs as Fe}from"react/jsx-runtime";function V({className:t}){return Fe("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",className:t,children:[ut("path",{d:"M18 6 6 18"}),ut("path",{d:"m6 6 12 12"})]})}import{clsx as Oe}from"clsx";import{twMerge as Be}from"tailwind-merge";function ft(...t){return Be(Oe(t))}import{jsx as g,jsxs as pt}from"react/jsx-runtime";var _e={jwtToken:I.object({jwtToken:I.string()})},He={closeWindow:I.object({closeWindow:I.string()})};function j({setModalOpen:t,setJwtToken:e,apiKey:o,baseUrl:r,appearance:n}){var m,d,f,h;let l=`${r}sdk/auth/frame?apiKey=${o}`;n!=null&&(l+=`&uiConfig=${encodeURIComponent(JSON.stringify(n))}`);let c=Le(null),[i,s]=De(null);Ue(()=>{if(i!=null)return i.on("jwtToken",C=>{e(C.jwtToken),i.off("jwtToken"),i.send("closeWindow",{closeWindow:"closeWindow"}),(i==null?void 0:i.iframe.contentWindow)!=null&&i.iframe.contentWindow.close(),t(!1)}),()=>{i&&(i.off("jwtToken"),i.iframe.contentWindow!=null&&i.iframe.contentWindow.close())}},[i,e,t]);let a=()=>p(this,null,function*(){if(c.current==null){console.error("Something wrong happened, please try again");return}let C=yield je.init(c.current,{incomingEvents:_e,outgoingEvents:He});s(C)});return g(U.Root,{show:!0,as:L,children:pt(Ve,{as:"div",style:D.dialog,onClose:()=>t(!1),children:[g(U.Child,{as:L,enter:"ease-out duration-400",enterFrom:"opacity-0",enterTo:"opacity-100",leave:"ease-in duration-400",leaveFrom:"opacity-100",leaveTo:"opacity-0",children:g("div",{style:D.transitionBegin})}),g(U.Child,{as:L,enter:"ease-out duration-400",enterFrom:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",enterTo:"opacity-100 translate-y-0 sm:scale-100",leave:"ease-in duration-400",leaveFrom:"opacity-100 translate-y-0 sm:scale-100",leaveTo:"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95",children:pt("div",{style:D.transitionEnd,onClick:C=>C.stopPropagation(),children:[g("div",{style:{position:"relative",width:"100%"},children:g("button",{type:"button","aria-label":"Close",style:{width:"1.5rem",position:"absolute",right:"1.5rem",top:"1.5rem",cursor:"pointer",color:(d=(m=n==null?void 0:n.colors)==null?void 0:m.border)!=null?d:"#909ca3",outlineOffset:"4px",borderRadius:"100%"},onClick:()=>t(!1),children:g(V,{})})}),g("iframe",{ref:c,src:l,onLoad:a,title:"Authentication Modal",className:ft("w-full h-[500px] border pt-12 pb-8",(f=n==null?void 0:n.colors)!=null&&f.border?`border-[${n.colors.border}]`:"border-[#D0D5DD]",n!=null&&n.borderRadius?`rounded-[${n.borderRadius}]`:"rounded-2xl",(h=n==null?void 0:n.colors)!=null&&h.background?`bg-[${n.colors.background}]`:"bg-white")})]})})]})})}var D={dialog:{display:"flex",justifyContent:"center",alignItems:"center",overflowY:"auto",position:"fixed",top:0,right:0,bottom:0,left:0,zIndex:20},transitionBegin:{background:"rgba(139, 151, 151, 0.2)",backdropFilter:"blur(2px)",position:"fixed",top:0,right:0,bottom:0,left:0,transitionProperty:"opacity",transitionTimingFunction:"cubic-bezier(0.4, 0, 0.2, 1)",transitionDuration:"300ms",zIndex:-10},transitionEnd:{display:"flex",flexDirection:"column",alignItems:"center",width:"100%",maxWidth:"448px",borderRadius:"0.75rem",boxShadow:"0 1px 2px 0 rgba(0, 0, 0, 0.05)",zIndex:30}};import{Fragment as qe,jsx as T,jsxs as Xe}from"react/jsx-runtime";var _="crossmint-session",H=Ke({login:()=>{},logout:()=>{},status:"logged-out"});function hn({embeddedWallets:t,children:e,appearance:o}){let{crossmint:r,setJwt:n}=k("CrossmintAuthProvider must be used within CrossmintProvider"),l=Je(r.apiKey),[c,i]=$e(!1);x(()=>{let d=Ge();d!=null&&n(d)},[]);let s=()=>{if(r.jwt!=null){console.log("User already logged in");return}i(!0)},a=()=>{document.cookie=`${_}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`,n(void 0)};x(()=>{r.jwt!=null&&i(!1)},[r.jwt]),x(()=>{r.jwt&&(document.cookie=`${_}=${r.jwt}; path=/;SameSite=Lax;`)},[r.jwt]);let m=()=>r.jwt!=null?"logged-in":c?"in-progress":"logged-out";return T(H.Provider,{value:{login:s,logout:a,jwt:r.jwt,status:m()},children:Xe(mt,{defaultChain:t.defaultChain,children:[T(ze,{embeddedWallets:t,accessToken:r.jwt,children:e}),c?Ye(T(j,{baseUrl:l,setModalOpen:i,setJwtToken:n,apiKey:r.apiKey,appearance:o}),document.body):null]})})}function ze({embeddedWallets:t,children:e,accessToken:o}){let{getOrCreateWallet:r,clearWallet:n,status:l}=ct();return x(()=>{t.createOnLogin==="all-users"&&l==="not-loaded"&&o!=null&&r({type:t.type,signer:{type:"PASSKEY"}}),l==="loaded"&&o==null&&n()},[o,l]),T(qe,{children:e})}function Ge(){let t=document.cookie.split("; ").find(e=>e.startsWith(_));return t?t.split("=")[1]:void 0}function Sn(){let t=Qe(H);if(t===void 0)throw new Error("useAuth must be used within an AuthProvider");return t}import{CrossmintEvents as Nn,useCrossmintEvents as Rn}from"@crossmint/client-sdk-base";import{Chain as Fn,SmartWalletError as On,UserWalletAlreadyCreatedError as Bn,AdminAlreadyUsedError as Vn,AdminMismatchError as Un,PasskeyMismatchError as Ln,PasskeyPromptError as Dn,PasskeyRegistrationError as jn,PasskeyIncompatibleAuthenticatorError as _n,ConfigError as Hn,SmartWalletsNotEnabledError as Kn,EVMSendTransactionError as $n,EVMSendTransactionExecutionRevertedError as Yn}from"@crossmint/client-sdk-smart-wallet";Ze(q);export{Vn as AdminAlreadyUsedError,Un as AdminMismatchError,H as AuthContext,Fn as Chain,Hn as ConfigError,hn as CrossmintAuthProvider,Nn as CrossmintEvents,ao as CrossmintNFTCollectionView,fo as CrossmintNFTDetail,kr as CrossmintPayButton,ir as CrossmintPaymentElement,Mr as CrossmintProvider,mt as CrossmintWalletProvider,$n as EVMSendTransactionError,Yn as EVMSendTransactionExecutionRevertedError,_n as PasskeyIncompatibleAuthenticatorError,Ln as PasskeyMismatchError,Dn as PasskeyPromptError,jn as PasskeyRegistrationError,On as SmartWalletError,Kn as SmartWalletsNotEnabledError,Bn as UserWalletAlreadyCreatedError,B as WalletContext,Sn as useAuth,k as useCrossmint,Rn as useCrossmintEvents,ct as useWallet};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/twind.config.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/components/embed/crypto/CryptoEmbeddedCheckoutIFrame.tsx","../src/hooks/useDeepEffect.ts","../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/hooks/useCrossmint.tsx","../src/hooks/useWallet.ts","../src/providers/CrossmintWalletProvider.tsx","../src/hooks/useAuth.ts","../src/providers/CrossmintAuthProvider.tsx","../src/components/auth/AuthModal.tsx","../src/icons/x.tsx","../src/utils/classNames.ts"],"sourcesContent":["import { install } from \"@twind/core\";\n\nimport twindConfig from \"./twind.config\";\n\n// Initialize twind with custom configuration\n// This sets up the CSS-in-JS styling solution for the entire application\ninstall(twindConfig);\n\nexport * from \"./components\";\nexport * from \"./hooks\";\nexport * from \"./providers\";\n\nexport { CrossmintEvents, useCrossmintEvents } from \"@crossmint/client-sdk-base\";\nexport {\n type EVMSmartWallet,\n Chain,\n SmartWalletError,\n UserWalletAlreadyCreatedError,\n AdminAlreadyUsedError,\n AdminMismatchError,\n PasskeyMismatchError,\n PasskeyPromptError,\n PasskeyRegistrationError,\n PasskeyIncompatibleAuthenticatorError,\n ConfigError,\n SmartWalletsNotEnabledError,\n EVMSendTransactionError,\n EVMSendTransactionExecutionRevertedError,\n} from \"@crossmint/client-sdk-smart-wallet\";\nexport type { CrossmintEvent, CrossmintEventMap } from \"@crossmint/client-sdk-base\";\n","import { defineConfig } from \"@twind/core\";\nimport presetTailwind from \"@twind/preset-tailwind\";\n\nexport default defineConfig({\n presets: [presetTailwind(/* options */)],\n /* config */\n});\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.3.22\";\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 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 useDeepEffect from \"../../../hooks/useDeepEffect\";\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 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 { useEffect, useState } from \"react\";\n\nimport {\n CrossmintEmbeddedCheckoutProps,\n IncomingInternalEvent,\n IncomingInternalEvents,\n crossmintIFrameService,\n} 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 {\n FiatEmbeddedCheckoutProps,\n crossmintIFrameService,\n embeddedCheckoutPropsToUpdatableParamsPayload,\n} from \"@crossmint/client-sdk-base\";\n\nimport useDeepEffect from \"../../../hooks/useDeepEffect\";\nimport CrossmintEmbeddedCheckoutIFrame from \"../EmbeddedCheckoutIFrame\";\n\nexport default function FiatEmbeddedCheckoutIFrame(props: FiatEmbeddedCheckoutProps) {\n const { emitInternalEvent } = crossmintIFrameService(props);\n\n useDeepEffect(() => {\n emitInternalEvent({\n type: \"params-update\",\n payload: embeddedCheckoutPropsToUpdatableParamsPayload(props),\n });\n }, [props.recipient, props.mintConfig, props.locale, props.currency, props.whPassThroughArgs]);\n\n return <CrossmintEmbeddedCheckoutIFrame {...props} />;\n}\n","import { FiatEmbeddedCheckoutProps } from \"@crossmint/client-sdk-base\";\n\nimport FiatEmbeddedCheckoutIFrame from \"../../../components/embed/fiat/FiatEmbeddedCheckoutIFrame\";\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","import { ReactNode, createContext, useCallback, useContext, useMemo, useRef, useState } from \"react\";\n\nimport { Crossmint, createCrossmint } from \"@crossmint/common-sdk-base\";\n\nexport interface CrossmintContext {\n crossmint: Crossmint;\n setJwt: (jwt: string | undefined) => void;\n}\n\nconst CrossmintContext = createContext<CrossmintContext | null>(null);\n\nexport function CrossmintProvider({\n children,\n apiKey,\n overrideBaseUrl,\n}: Omit<Crossmint, \"jwt\"> & {\n children: ReactNode;\n}) {\n const [version, setVersion] = useState(0);\n\n const crossmintRef = useRef<Crossmint>(\n new Proxy<Crossmint>(createCrossmint({ apiKey, overrideBaseUrl }), {\n set(target, prop, value) {\n if (prop === \"jwt\" && target.jwt !== value) {\n setVersion((v) => v + 1);\n }\n return Reflect.set(target, prop, value);\n },\n })\n );\n\n const setJwt = useCallback((jwt: string | undefined) => {\n if (jwt !== crossmintRef.current.jwt) {\n crossmintRef.current.jwt = jwt;\n }\n }, []);\n\n const value = useMemo(\n () => ({\n get crossmint() {\n return crossmintRef.current;\n },\n setJwt,\n }),\n [setJwt, version]\n );\n\n return <CrossmintContext.Provider value={value}>{children}</CrossmintContext.Provider>;\n}\n\nexport function useCrossmint(missingContextMessage?: string) {\n const context = useContext(CrossmintContext);\n if (context == null) {\n throw new Error(missingContextMessage ?? \"useCrossmint must be used within a CrossmintProvider\");\n }\n return context;\n}\n","import { useContext } from \"react\";\n\nimport { WalletContext } from \"../providers/CrossmintWalletProvider\";\n\nexport function useWallet() {\n const walletContext = useContext(WalletContext);\n\n if (!walletContext) {\n throw new Error(\"useWallet must be used within CrossmintAuthProvider or CrossmintWalletProvider\");\n }\n\n return walletContext;\n}\n","import { ReactNode, createContext, useMemo, useState } from \"react\";\n\nimport {\n EVMSmartWallet,\n EVMSmartWalletChain,\n SmartWalletError,\n SmartWalletSDK,\n WalletParams,\n} from \"@crossmint/client-sdk-smart-wallet\";\n\nimport { useCrossmint } from \"../hooks\";\n\ntype WalletStatus = \"not-loaded\" | \"in-progress\" | \"loaded\" | \"loading-error\";\ntype ValidWalletState =\n | { status: \"not-loaded\" | \"in-progress\" }\n | { status: \"loaded\"; wallet: EVMSmartWallet }\n | { status: \"loading-error\"; error: SmartWalletError };\n\ntype WalletContext = {\n status: WalletStatus;\n wallet?: EVMSmartWallet;\n error?: SmartWalletError;\n getOrCreateWallet: (config?: WalletConfig) => { startedCreation: boolean; reason?: string };\n clearWallet: () => void;\n};\n\nexport const WalletContext = createContext<WalletContext>({\n status: \"not-loaded\",\n getOrCreateWallet: () => ({ startedCreation: false }),\n clearWallet: () => {},\n});\n\nexport type WalletConfig = WalletParams & { type: \"evm-smart-wallet\" };\n\nexport function CrossmintWalletProvider({\n children,\n defaultChain,\n}: {\n children: ReactNode;\n defaultChain: EVMSmartWalletChain;\n}) {\n const { crossmint } = useCrossmint(\"CrossmintWalletProvider must be used within CrossmintProvider\");\n const smartWalletSDK = useMemo(() => SmartWalletSDK.init({ clientApiKey: crossmint.apiKey }), [crossmint.apiKey]);\n\n const [state, setState] = useState<ValidWalletState>({ status: \"not-loaded\" });\n\n const getOrCreateWallet = (config: WalletConfig = { type: \"evm-smart-wallet\", signer: { type: \"PASSKEY\" } }) => {\n if (state.status == \"in-progress\") {\n console.log(\"Wallet already loading\");\n return { startedCreation: false, reason: \"Wallet is already loading.\" };\n }\n\n if (crossmint.jwt == null) {\n return { startedCreation: false, reason: `Jwt not set in \"CrossmintProvider\".` };\n }\n\n const internalCall = async () => {\n try {\n setState({ status: \"in-progress\" });\n const wallet = await smartWalletSDK.getOrCreateWallet(\n { jwt: crossmint.jwt as string },\n defaultChain,\n config\n );\n setState({ status: \"loaded\", wallet });\n } catch (error: unknown) {\n console.error(\"There was an error creating a wallet \", error);\n setState(deriveErrorState(error));\n }\n };\n\n internalCall();\n return { startedCreation: true };\n };\n\n const clearWallet = () => {\n setState({ status: \"not-loaded\" });\n };\n\n return (\n <WalletContext.Provider value={{ ...state, getOrCreateWallet, clearWallet }}>{children}</WalletContext.Provider>\n );\n}\n\nfunction deriveErrorState(error: unknown): { status: \"loading-error\"; error: SmartWalletError } {\n if (error instanceof SmartWalletError) {\n return { status: \"loading-error\", error };\n }\n\n const message = error instanceof Error ? error.message : String(error);\n const stack = error instanceof Error ? error.stack : undefined;\n return { status: \"loading-error\", error: new SmartWalletError(`Unknown Wallet Error: ${message}`, stack) };\n}\n","import { useContext } from \"react\";\n\nimport { AuthContext } from \"../providers\";\n\nexport function useAuth() {\n const context = useContext(AuthContext);\n if (context === undefined) {\n throw new Error(\"useAuth must be used within an AuthProvider\");\n }\n return context;\n}\n","import { type ReactNode, createContext, useEffect, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport type { EVMSmartWalletChain } from \"@crossmint/client-sdk-smart-wallet\";\nimport { type UIConfig, validateApiKeyAndGetCrossmintBaseUrl } from \"@crossmint/common-sdk-base\";\n\nimport AuthModal from \"../components/auth/AuthModal\";\nimport { useCrossmint, useWallet } from \"../hooks\";\nimport { CrossmintWalletProvider } from \"./CrossmintWalletProvider\";\n\nconst SESSION_PREFIX = \"crossmint-session\";\n\nexport type CrossmintAuthWalletConfig = {\n defaultChain: EVMSmartWalletChain;\n createOnLogin: \"all-users\" | \"off\";\n type: \"evm-smart-wallet\";\n};\n\nexport type CrossmintAuthProviderProps = {\n embeddedWallets: CrossmintAuthWalletConfig;\n appearance?: UIConfig;\n children: ReactNode;\n};\n\ntype AuthStatus = \"logged-in\" | \"logged-out\" | \"in-progress\";\n\ntype AuthContextType = {\n login: () => void;\n logout: () => void;\n jwt?: string;\n status: AuthStatus;\n};\n\nexport const AuthContext = createContext<AuthContextType>({\n login: () => {},\n logout: () => {},\n status: \"logged-out\",\n});\n\nexport function CrossmintAuthProvider({ embeddedWallets, children, appearance }: CrossmintAuthProviderProps) {\n const { crossmint, setJwt } = useCrossmint(\"CrossmintAuthProvider must be used within CrossmintProvider\");\n const crossmintBaseUrl = validateApiKeyAndGetCrossmintBaseUrl(crossmint.apiKey);\n const [modalOpen, setModalOpen] = useState(false);\n\n useEffect(() => {\n const session = sessionFromClient();\n if (session != null) {\n setJwt(session);\n }\n }, []);\n\n const login = () => {\n if (crossmint.jwt != null) {\n console.log(\"User already logged in\");\n return;\n }\n\n setModalOpen(true);\n };\n\n const logout = () => {\n document.cookie = `${SESSION_PREFIX}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`;\n setJwt(undefined);\n };\n\n useEffect(() => {\n if (crossmint.jwt == null) {\n return;\n }\n\n setModalOpen(false);\n }, [crossmint.jwt]);\n\n useEffect(() => {\n if (crossmint.jwt) {\n document.cookie = `${SESSION_PREFIX}=${crossmint.jwt}; path=/;SameSite=Lax;`;\n }\n }, [crossmint.jwt]);\n\n const getAuthStatus = (): AuthStatus => {\n if (crossmint.jwt != null) {\n return \"logged-in\";\n }\n if (modalOpen) {\n return \"in-progress\";\n }\n return \"logged-out\";\n };\n\n return (\n <AuthContext.Provider\n value={{\n login,\n logout,\n jwt: crossmint.jwt,\n status: getAuthStatus(),\n }}\n >\n <CrossmintWalletProvider defaultChain={embeddedWallets.defaultChain}>\n <WalletManager embeddedWallets={embeddedWallets} accessToken={crossmint.jwt}>\n {children}\n </WalletManager>\n {modalOpen\n ? createPortal(\n <AuthModal\n baseUrl={crossmintBaseUrl}\n setModalOpen={setModalOpen}\n setJwtToken={setJwt}\n apiKey={crossmint.apiKey}\n appearance={appearance}\n />,\n\n document.body\n )\n : null}\n </CrossmintWalletProvider>\n </AuthContext.Provider>\n );\n}\n\nfunction WalletManager({\n embeddedWallets,\n children,\n accessToken,\n}: {\n embeddedWallets: CrossmintAuthWalletConfig;\n children: ReactNode;\n accessToken: string | undefined;\n}) {\n const { getOrCreateWallet, clearWallet, status } = useWallet();\n\n useEffect(() => {\n if (embeddedWallets.createOnLogin === \"all-users\" && status === \"not-loaded\" && accessToken != null) {\n getOrCreateWallet({\n type: embeddedWallets.type,\n signer: { type: \"PASSKEY\" },\n });\n }\n\n if (status === \"loaded\" && accessToken == null) {\n clearWallet();\n }\n }, [accessToken, status]);\n\n return <>{children}</>;\n}\n\nfunction sessionFromClient(): string | undefined {\n const crossmintSession = document.cookie.split(\"; \").find((row) => row.startsWith(SESSION_PREFIX));\n return crossmintSession ? crossmintSession.split(\"=\")[1] : undefined;\n}\n","import { Dialog, Transition } from \"@headlessui/react\";\nimport { CSSProperties, Fragment, useEffect, useRef, useState } from \"react\";\nimport { z } from \"zod\";\n\nimport { IFrameWindow } from \"@crossmint/client-sdk-window\";\nimport { UIConfig } from \"@crossmint/common-sdk-base\";\n\nimport X from \"../../icons/x\";\nimport { classNames } from \"../../utils/classNames\";\n\nconst incomingModalIframeEvents = {\n jwtToken: z.object({\n jwtToken: z.string(),\n }),\n};\n\nconst outgoingModalIframeEvents = {\n closeWindow: z.object({\n closeWindow: z.string(),\n }),\n};\n\ntype IncomingModalIframeEventsType = {\n jwtToken: typeof incomingModalIframeEvents.jwtToken;\n};\n\ntype OutgoingModalIframeEventsType = {\n closeWindow: typeof outgoingModalIframeEvents.closeWindow;\n};\n\ntype AuthModalProps = {\n setModalOpen: (open: boolean) => void;\n setJwtToken: (jwtToken: string) => void;\n apiKey: string;\n baseUrl: string;\n appearance?: UIConfig;\n};\n\nexport default function AuthModal({ setModalOpen, setJwtToken, apiKey, baseUrl, appearance }: AuthModalProps) {\n let iframeSrc = `${baseUrl}sdk/auth/frame?apiKey=${apiKey}`;\n if (appearance != null) {\n // The appearance object is serialized into a query parameter\n iframeSrc += `&uiConfig=${encodeURIComponent(JSON.stringify(appearance))}`;\n }\n\n const iframeRef = useRef<HTMLIFrameElement | null>(null);\n const [iframe, setIframe] = useState<IFrameWindow<\n IncomingModalIframeEventsType,\n OutgoingModalIframeEventsType\n > | null>(null);\n\n useEffect(() => {\n if (iframe == null) {\n return;\n }\n\n iframe.on(\"jwtToken\", (data) => {\n setJwtToken(data.jwtToken);\n iframe.off(\"jwtToken\");\n\n iframe.send(\"closeWindow\", {\n closeWindow: \"closeWindow\",\n });\n\n if (iframe?.iframe.contentWindow != null) {\n iframe.iframe.contentWindow.close();\n }\n setModalOpen(false);\n });\n\n return () => {\n if (iframe) {\n iframe.off(\"jwtToken\");\n\n if (iframe.iframe.contentWindow != null) {\n iframe.iframe.contentWindow.close();\n }\n }\n };\n }, [iframe, setJwtToken, setModalOpen]);\n\n const handleIframeLoaded = async () => {\n if (iframeRef.current == null) {\n // The iframe should be load, here we should log on DD if possible\n console.error(\"Something wrong happened, please try again\");\n return;\n }\n\n const initIframe = await IFrameWindow.init(iframeRef.current, {\n incomingEvents: incomingModalIframeEvents,\n outgoingEvents: outgoingModalIframeEvents,\n });\n setIframe(initIframe);\n };\n\n return (\n <Transition.Root show as={Fragment}>\n <Dialog as=\"div\" style={styles.dialog} onClose={() => setModalOpen(false)}>\n <Transition.Child\n as={Fragment}\n enter=\"ease-out duration-400\"\n enterFrom=\"opacity-0\"\n enterTo=\"opacity-100\"\n leave=\"ease-in duration-400\"\n leaveFrom=\"opacity-100\"\n leaveTo=\"opacity-0\"\n >\n <div style={styles.transitionBegin} />\n </Transition.Child>\n <Transition.Child\n as={Fragment}\n enter=\"ease-out duration-400\"\n enterFrom=\"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95\"\n enterTo=\"opacity-100 translate-y-0 sm:scale-100\"\n leave=\"ease-in duration-400\"\n leaveFrom=\"opacity-100 translate-y-0 sm:scale-100\"\n leaveTo=\"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95\"\n >\n <div style={styles.transitionEnd} onClick={(e) => e.stopPropagation()}>\n <div style={{ position: \"relative\", width: \"100%\" }}>\n <button\n type=\"button\"\n aria-label=\"Close\"\n style={{\n width: \"1.5rem\",\n position: \"absolute\",\n right: \"1.5rem\",\n top: \"1.5rem\",\n cursor: \"pointer\",\n color: appearance?.colors?.border ?? \"#909ca3\",\n outlineOffset: \"4px\",\n borderRadius: \"100%\",\n }}\n onClick={() => setModalOpen(false)}\n >\n <X />\n </button>\n </div>\n <iframe\n ref={iframeRef}\n src={iframeSrc}\n onLoad={handleIframeLoaded}\n title=\"Authentication Modal\"\n className={classNames(\n \"w-full h-[500px] border pt-12 pb-8\",\n appearance?.colors?.border\n ? `border-[${appearance.colors.border}]`\n : \"border-[#D0D5DD]\",\n appearance?.borderRadius ? `rounded-[${appearance.borderRadius}]` : \"rounded-2xl\",\n appearance?.colors?.background ? `bg-[${appearance.colors.background}]` : \"bg-white\"\n )}\n />\n </div>\n </Transition.Child>\n </Dialog>\n </Transition.Root>\n );\n}\n\nconst styles: { [key: string]: CSSProperties } = {\n dialog: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n overflowY: \"auto\",\n position: \"fixed\",\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n zIndex: 20,\n },\n transitionBegin: {\n background: \"rgba(139, 151, 151, 0.2)\",\n backdropFilter: \"blur(2px)\",\n position: \"fixed\",\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n transitionProperty: \"opacity\",\n transitionTimingFunction: \"cubic-bezier(0.4, 0, 0.2, 1)\",\n transitionDuration: \"300ms\",\n zIndex: -10,\n },\n transitionEnd: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n width: \"100%\",\n maxWidth: \"448px\",\n borderRadius: \"0.75rem\",\n boxShadow: \"0 1px 2px 0 rgba(0, 0, 0, 0.05)\",\n zIndex: 30,\n },\n};\n","export default function X({ className }: { className?: string }) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n >\n <path d=\"M18 6 6 18\" />\n <path d=\"m6 6 12 12\" />\n </svg>\n );\n}\n","import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\n/**\n * Combines multiple class names into a single string.\n *\n * @param inputs - The class names to combine.\n * @returns The combined class names as a string.\n */\nexport function classNames(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n"],"mappings":"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","names":["install","defineConfig","presetTailwind","twind_config_default","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","bs58","IncomingInternalEvents","OutgoingInternalEvents","crossmintIFrameService","embeddedCheckoutPropsToUpdatableParamsPayload","isEqual","useEffect","useRef","useDeepEffect","callback","dependencies","dependenciesRef","dep","i","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","crossmintIFrameService","embeddedCheckoutPropsToUpdatableParamsPayload","jsx","FiatEmbeddedCheckoutIFrame","props","emitInternalEvent","crossmintIFrameService","useDeepEffect","embeddedCheckoutPropsToUpdatableParamsPayload","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","createContext","useCallback","useContext","useMemo","useRef","useState","createCrossmint","jsx","CrossmintContext","CrossmintProvider","children","apiKey","overrideBaseUrl","version","setVersion","crossmintRef","target","prop","value","v","setJwt","jwt","useCrossmint","missingContextMessage","context","useContext","createContext","useMemo","useState","SmartWalletError","SmartWalletSDK","jsx","WalletContext","createContext","CrossmintWalletProvider","children","defaultChain","crossmint","useCrossmint","smartWalletSDK","useMemo","SmartWalletSDK","state","setState","useState","getOrCreateWallet","config","__async","wallet","error","deriveErrorState","clearWallet","__spreadProps","__spreadValues","SmartWalletError","message","stack","useWallet","walletContext","useContext","WalletContext","useContext","createContext","useEffect","useState","createPortal","validateApiKeyAndGetCrossmintBaseUrl","Dialog","Transition","Fragment","useEffect","useRef","useState","z","IFrameWindow","jsx","jsxs","X","className","clsx","twMerge","classNames","inputs","jsx","jsxs","incomingModalIframeEvents","z","outgoingModalIframeEvents","AuthModal","setModalOpen","setJwtToken","apiKey","baseUrl","appearance","_a","_b","_c","_d","iframeSrc","iframeRef","useRef","iframe","setIframe","useState","useEffect","data","handleIframeLoaded","__async","initIframe","IFrameWindow","Transition","Fragment","Dialog","styles","e","X","classNames","Fragment","jsx","jsxs","SESSION_PREFIX","AuthContext","createContext","CrossmintAuthProvider","embeddedWallets","children","appearance","crossmint","setJwt","useCrossmint","crossmintBaseUrl","validateApiKeyAndGetCrossmintBaseUrl","modalOpen","setModalOpen","useState","useEffect","session","sessionFromClient","login","logout","getAuthStatus","CrossmintWalletProvider","WalletManager","createPortal","AuthModal","accessToken","getOrCreateWallet","clearWallet","status","useWallet","crossmintSession","row","useAuth","context","useContext","AuthContext","CrossmintEvents","useCrossmintEvents","Chain","SmartWalletError","UserWalletAlreadyCreatedError","AdminAlreadyUsedError","AdminMismatchError","PasskeyMismatchError","PasskeyPromptError","PasskeyRegistrationError","PasskeyIncompatibleAuthenticatorError","ConfigError","SmartWalletsNotEnabledError","EVMSendTransactionError","EVMSendTransactionExecutionRevertedError","install","twind_config_default"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/twind.config.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/components/embed/crypto/CryptoEmbeddedCheckoutIFrame.tsx","../src/hooks/useDeepEffect.ts","../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/hooks/useCrossmint.tsx","../src/hooks/useWallet.ts","../src/providers/CrossmintWalletProvider.tsx","../src/hooks/useAuth.ts","../src/providers/CrossmintAuthProvider.tsx","../src/components/auth/AuthModal.tsx","../src/icons/x.tsx","../src/utils/classNames.ts"],"sourcesContent":["import { install } from \"@twind/core\";\n\nimport twindConfig from \"./twind.config\";\n\n// Initialize twind with custom configuration\n// This sets up the CSS-in-JS styling solution for the entire application\ninstall(twindConfig);\n\nexport * from \"./components\";\nexport * from \"./hooks\";\nexport * from \"./providers\";\n\nexport { CrossmintEvents, useCrossmintEvents } from \"@crossmint/client-sdk-base\";\nexport {\n type EVMSmartWallet,\n type ExternalSigner,\n type PasskeySigner,\n Chain,\n SmartWalletError,\n UserWalletAlreadyCreatedError,\n AdminAlreadyUsedError,\n AdminMismatchError,\n PasskeyMismatchError,\n PasskeyPromptError,\n PasskeyRegistrationError,\n PasskeyIncompatibleAuthenticatorError,\n ConfigError,\n SmartWalletsNotEnabledError,\n EVMSendTransactionError,\n EVMSendTransactionExecutionRevertedError,\n} from \"@crossmint/client-sdk-smart-wallet\";\nexport type { CrossmintEvent, CrossmintEventMap } from \"@crossmint/client-sdk-base\";\n","import { defineConfig } from \"@twind/core\";\nimport presetTailwind from \"@twind/preset-tailwind\";\n\nexport default defineConfig({\n presets: [presetTailwind(/* options */)],\n /* config */\n});\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.3.23\";\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 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 useDeepEffect from \"../../../hooks/useDeepEffect\";\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 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 { useEffect, useState } from \"react\";\n\nimport {\n CrossmintEmbeddedCheckoutProps,\n IncomingInternalEvent,\n IncomingInternalEvents,\n crossmintIFrameService,\n} 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 {\n FiatEmbeddedCheckoutProps,\n crossmintIFrameService,\n embeddedCheckoutPropsToUpdatableParamsPayload,\n} from \"@crossmint/client-sdk-base\";\n\nimport useDeepEffect from \"../../../hooks/useDeepEffect\";\nimport CrossmintEmbeddedCheckoutIFrame from \"../EmbeddedCheckoutIFrame\";\n\nexport default function FiatEmbeddedCheckoutIFrame(props: FiatEmbeddedCheckoutProps) {\n const { emitInternalEvent } = crossmintIFrameService(props);\n\n useDeepEffect(() => {\n emitInternalEvent({\n type: \"params-update\",\n payload: embeddedCheckoutPropsToUpdatableParamsPayload(props),\n });\n }, [props.recipient, props.mintConfig, props.locale, props.currency, props.whPassThroughArgs]);\n\n return <CrossmintEmbeddedCheckoutIFrame {...props} />;\n}\n","import { FiatEmbeddedCheckoutProps } from \"@crossmint/client-sdk-base\";\n\nimport FiatEmbeddedCheckoutIFrame from \"../../../components/embed/fiat/FiatEmbeddedCheckoutIFrame\";\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","import { ReactNode, createContext, useCallback, useContext, useMemo, useRef, useState } from \"react\";\n\nimport { Crossmint, createCrossmint } from \"@crossmint/common-sdk-base\";\n\nexport interface CrossmintContext {\n crossmint: Crossmint;\n setJwt: (jwt: string | undefined) => void;\n}\n\nconst CrossmintContext = createContext<CrossmintContext | null>(null);\n\nexport function CrossmintProvider({\n children,\n apiKey,\n overrideBaseUrl,\n}: Omit<Crossmint, \"jwt\"> & {\n children: ReactNode;\n}) {\n const [version, setVersion] = useState(0);\n\n const crossmintRef = useRef<Crossmint>(\n new Proxy<Crossmint>(createCrossmint({ apiKey, overrideBaseUrl }), {\n set(target, prop, value) {\n if (prop === \"jwt\" && target.jwt !== value) {\n setVersion((v) => v + 1);\n }\n return Reflect.set(target, prop, value);\n },\n })\n );\n\n const setJwt = useCallback((jwt: string | undefined) => {\n if (jwt !== crossmintRef.current.jwt) {\n crossmintRef.current.jwt = jwt;\n }\n }, []);\n\n const value = useMemo(\n () => ({\n get crossmint() {\n return crossmintRef.current;\n },\n setJwt,\n }),\n [setJwt, version]\n );\n\n return <CrossmintContext.Provider value={value}>{children}</CrossmintContext.Provider>;\n}\n\nexport function useCrossmint(missingContextMessage?: string) {\n const context = useContext(CrossmintContext);\n if (context == null) {\n throw new Error(missingContextMessage ?? \"useCrossmint must be used within a CrossmintProvider\");\n }\n return context;\n}\n","import { useContext } from \"react\";\n\nimport { WalletContext } from \"../providers/CrossmintWalletProvider\";\n\nexport function useWallet() {\n const walletContext = useContext(WalletContext);\n\n if (!walletContext) {\n throw new Error(\"useWallet must be used within CrossmintAuthProvider or CrossmintWalletProvider\");\n }\n\n return walletContext;\n}\n","import { ReactNode, createContext, useMemo, useState } from \"react\";\n\nimport {\n EVMSmartWallet,\n EVMSmartWalletChain,\n SmartWalletError,\n SmartWalletSDK,\n WalletParams,\n} from \"@crossmint/client-sdk-smart-wallet\";\n\nimport { useCrossmint } from \"../hooks\";\n\ntype WalletStatus = \"not-loaded\" | \"in-progress\" | \"loaded\" | \"loading-error\";\ntype ValidWalletState =\n | { status: \"not-loaded\" | \"in-progress\" }\n | { status: \"loaded\"; wallet: EVMSmartWallet }\n | { status: \"loading-error\"; error: SmartWalletError };\n\ntype WalletContext = {\n status: WalletStatus;\n wallet?: EVMSmartWallet;\n error?: SmartWalletError;\n getOrCreateWallet: (config?: WalletConfig) => { startedCreation: boolean; reason?: string };\n clearWallet: () => void;\n};\n\nexport const WalletContext = createContext<WalletContext>({\n status: \"not-loaded\",\n getOrCreateWallet: () => ({ startedCreation: false }),\n clearWallet: () => {},\n});\n\nexport type WalletConfig = WalletParams & { type: \"evm-smart-wallet\" };\n\nexport function CrossmintWalletProvider({\n children,\n defaultChain,\n}: {\n children: ReactNode;\n defaultChain: EVMSmartWalletChain;\n}) {\n const { crossmint } = useCrossmint(\"CrossmintWalletProvider must be used within CrossmintProvider\");\n const smartWalletSDK = useMemo(() => SmartWalletSDK.init({ clientApiKey: crossmint.apiKey }), [crossmint.apiKey]);\n\n const [state, setState] = useState<ValidWalletState>({ status: \"not-loaded\" });\n\n const getOrCreateWallet = (config: WalletConfig = { type: \"evm-smart-wallet\", signer: { type: \"PASSKEY\" } }) => {\n if (state.status == \"in-progress\") {\n console.log(\"Wallet already loading\");\n return { startedCreation: false, reason: \"Wallet is already loading.\" };\n }\n\n if (crossmint.jwt == null) {\n return { startedCreation: false, reason: `Jwt not set in \"CrossmintProvider\".` };\n }\n\n const internalCall = async () => {\n try {\n setState({ status: \"in-progress\" });\n const wallet = await smartWalletSDK.getOrCreateWallet(\n { jwt: crossmint.jwt as string },\n defaultChain,\n config\n );\n setState({ status: \"loaded\", wallet });\n } catch (error: unknown) {\n console.error(\"There was an error creating a wallet \", error);\n setState(deriveErrorState(error));\n }\n };\n\n internalCall();\n return { startedCreation: true };\n };\n\n const clearWallet = () => {\n setState({ status: \"not-loaded\" });\n };\n\n return (\n <WalletContext.Provider value={{ ...state, getOrCreateWallet, clearWallet }}>{children}</WalletContext.Provider>\n );\n}\n\nfunction deriveErrorState(error: unknown): { status: \"loading-error\"; error: SmartWalletError } {\n if (error instanceof SmartWalletError) {\n return { status: \"loading-error\", error };\n }\n\n const message = error instanceof Error ? error.message : String(error);\n const stack = error instanceof Error ? error.stack : undefined;\n return { status: \"loading-error\", error: new SmartWalletError(`Unknown Wallet Error: ${message}`, stack) };\n}\n","import { useContext } from \"react\";\n\nimport { AuthContext } from \"../providers\";\n\nexport function useAuth() {\n const context = useContext(AuthContext);\n if (context === undefined) {\n throw new Error(\"useAuth must be used within an AuthProvider\");\n }\n return context;\n}\n","import { type ReactNode, createContext, useEffect, useState } from \"react\";\nimport { createPortal } from \"react-dom\";\n\nimport type { EVMSmartWalletChain } from \"@crossmint/client-sdk-smart-wallet\";\nimport { type UIConfig, validateApiKeyAndGetCrossmintBaseUrl } from \"@crossmint/common-sdk-base\";\n\nimport AuthModal from \"../components/auth/AuthModal\";\nimport { useCrossmint, useWallet } from \"../hooks\";\nimport { CrossmintWalletProvider } from \"./CrossmintWalletProvider\";\n\nconst SESSION_PREFIX = \"crossmint-session\";\n\nexport type CrossmintAuthWalletConfig = {\n defaultChain: EVMSmartWalletChain;\n createOnLogin: \"all-users\" | \"off\";\n type: \"evm-smart-wallet\";\n};\n\nexport type CrossmintAuthProviderProps = {\n embeddedWallets: CrossmintAuthWalletConfig;\n appearance?: UIConfig;\n children: ReactNode;\n};\n\ntype AuthStatus = \"logged-in\" | \"logged-out\" | \"in-progress\";\n\ntype AuthContextType = {\n login: () => void;\n logout: () => void;\n jwt?: string;\n status: AuthStatus;\n};\n\nexport const AuthContext = createContext<AuthContextType>({\n login: () => {},\n logout: () => {},\n status: \"logged-out\",\n});\n\nexport function CrossmintAuthProvider({ embeddedWallets, children, appearance }: CrossmintAuthProviderProps) {\n const { crossmint, setJwt } = useCrossmint(\"CrossmintAuthProvider must be used within CrossmintProvider\");\n const crossmintBaseUrl = validateApiKeyAndGetCrossmintBaseUrl(crossmint.apiKey);\n const [modalOpen, setModalOpen] = useState(false);\n\n useEffect(() => {\n const session = sessionFromClient();\n if (session != null) {\n setJwt(session);\n }\n }, []);\n\n const login = () => {\n if (crossmint.jwt != null) {\n console.log(\"User already logged in\");\n return;\n }\n\n setModalOpen(true);\n };\n\n const logout = () => {\n document.cookie = `${SESSION_PREFIX}=; expires=Thu, 01 Jan 1970 00:00:00 UTC; path=/;`;\n setJwt(undefined);\n };\n\n useEffect(() => {\n if (crossmint.jwt == null) {\n return;\n }\n\n setModalOpen(false);\n }, [crossmint.jwt]);\n\n useEffect(() => {\n if (crossmint.jwt) {\n document.cookie = `${SESSION_PREFIX}=${crossmint.jwt}; path=/;SameSite=Lax;`;\n }\n }, [crossmint.jwt]);\n\n const getAuthStatus = (): AuthStatus => {\n if (crossmint.jwt != null) {\n return \"logged-in\";\n }\n if (modalOpen) {\n return \"in-progress\";\n }\n return \"logged-out\";\n };\n\n return (\n <AuthContext.Provider\n value={{\n login,\n logout,\n jwt: crossmint.jwt,\n status: getAuthStatus(),\n }}\n >\n <CrossmintWalletProvider defaultChain={embeddedWallets.defaultChain}>\n <WalletManager embeddedWallets={embeddedWallets} accessToken={crossmint.jwt}>\n {children}\n </WalletManager>\n {modalOpen\n ? createPortal(\n <AuthModal\n baseUrl={crossmintBaseUrl}\n setModalOpen={setModalOpen}\n setJwtToken={setJwt}\n apiKey={crossmint.apiKey}\n appearance={appearance}\n />,\n\n document.body\n )\n : null}\n </CrossmintWalletProvider>\n </AuthContext.Provider>\n );\n}\n\nfunction WalletManager({\n embeddedWallets,\n children,\n accessToken,\n}: {\n embeddedWallets: CrossmintAuthWalletConfig;\n children: ReactNode;\n accessToken: string | undefined;\n}) {\n const { getOrCreateWallet, clearWallet, status } = useWallet();\n\n useEffect(() => {\n if (embeddedWallets.createOnLogin === \"all-users\" && status === \"not-loaded\" && accessToken != null) {\n getOrCreateWallet({\n type: embeddedWallets.type,\n signer: { type: \"PASSKEY\" },\n });\n }\n\n if (status === \"loaded\" && accessToken == null) {\n clearWallet();\n }\n }, [accessToken, status]);\n\n return <>{children}</>;\n}\n\nfunction sessionFromClient(): string | undefined {\n const crossmintSession = document.cookie.split(\"; \").find((row) => row.startsWith(SESSION_PREFIX));\n return crossmintSession ? crossmintSession.split(\"=\")[1] : undefined;\n}\n","import { Dialog, Transition } from \"@headlessui/react\";\nimport { CSSProperties, Fragment, useEffect, useRef, useState } from \"react\";\nimport { z } from \"zod\";\n\nimport { IFrameWindow } from \"@crossmint/client-sdk-window\";\nimport { UIConfig } from \"@crossmint/common-sdk-base\";\n\nimport X from \"../../icons/x\";\nimport { classNames } from \"../../utils/classNames\";\n\nconst incomingModalIframeEvents = {\n jwtToken: z.object({\n jwtToken: z.string(),\n }),\n};\n\nconst outgoingModalIframeEvents = {\n closeWindow: z.object({\n closeWindow: z.string(),\n }),\n};\n\ntype IncomingModalIframeEventsType = {\n jwtToken: typeof incomingModalIframeEvents.jwtToken;\n};\n\ntype OutgoingModalIframeEventsType = {\n closeWindow: typeof outgoingModalIframeEvents.closeWindow;\n};\n\ntype AuthModalProps = {\n setModalOpen: (open: boolean) => void;\n setJwtToken: (jwtToken: string) => void;\n apiKey: string;\n baseUrl: string;\n appearance?: UIConfig;\n};\n\nexport default function AuthModal({ setModalOpen, setJwtToken, apiKey, baseUrl, appearance }: AuthModalProps) {\n let iframeSrc = `${baseUrl}sdk/auth/frame?apiKey=${apiKey}`;\n if (appearance != null) {\n // The appearance object is serialized into a query parameter\n iframeSrc += `&uiConfig=${encodeURIComponent(JSON.stringify(appearance))}`;\n }\n\n const iframeRef = useRef<HTMLIFrameElement | null>(null);\n const [iframe, setIframe] = useState<IFrameWindow<\n IncomingModalIframeEventsType,\n OutgoingModalIframeEventsType\n > | null>(null);\n\n useEffect(() => {\n if (iframe == null) {\n return;\n }\n\n iframe.on(\"jwtToken\", (data) => {\n setJwtToken(data.jwtToken);\n iframe.off(\"jwtToken\");\n\n iframe.send(\"closeWindow\", {\n closeWindow: \"closeWindow\",\n });\n\n if (iframe?.iframe.contentWindow != null) {\n iframe.iframe.contentWindow.close();\n }\n setModalOpen(false);\n });\n\n return () => {\n if (iframe) {\n iframe.off(\"jwtToken\");\n\n if (iframe.iframe.contentWindow != null) {\n iframe.iframe.contentWindow.close();\n }\n }\n };\n }, [iframe, setJwtToken, setModalOpen]);\n\n const handleIframeLoaded = async () => {\n if (iframeRef.current == null) {\n // The iframe should be load, here we should log on DD if possible\n console.error(\"Something wrong happened, please try again\");\n return;\n }\n\n const initIframe = await IFrameWindow.init(iframeRef.current, {\n incomingEvents: incomingModalIframeEvents,\n outgoingEvents: outgoingModalIframeEvents,\n });\n setIframe(initIframe);\n };\n\n return (\n <Transition.Root show as={Fragment}>\n <Dialog as=\"div\" style={styles.dialog} onClose={() => setModalOpen(false)}>\n <Transition.Child\n as={Fragment}\n enter=\"ease-out duration-400\"\n enterFrom=\"opacity-0\"\n enterTo=\"opacity-100\"\n leave=\"ease-in duration-400\"\n leaveFrom=\"opacity-100\"\n leaveTo=\"opacity-0\"\n >\n <div style={styles.transitionBegin} />\n </Transition.Child>\n <Transition.Child\n as={Fragment}\n enter=\"ease-out duration-400\"\n enterFrom=\"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95\"\n enterTo=\"opacity-100 translate-y-0 sm:scale-100\"\n leave=\"ease-in duration-400\"\n leaveFrom=\"opacity-100 translate-y-0 sm:scale-100\"\n leaveTo=\"opacity-0 translate-y-4 sm:translate-y-0 sm:scale-95\"\n >\n <div style={styles.transitionEnd} onClick={(e) => e.stopPropagation()}>\n <div style={{ position: \"relative\", width: \"100%\" }}>\n <button\n type=\"button\"\n aria-label=\"Close\"\n style={{\n width: \"1.5rem\",\n position: \"absolute\",\n right: \"1.5rem\",\n top: \"1.5rem\",\n cursor: \"pointer\",\n color: appearance?.colors?.border ?? \"#909ca3\",\n outlineOffset: \"4px\",\n borderRadius: \"100%\",\n }}\n onClick={() => setModalOpen(false)}\n >\n <X />\n </button>\n </div>\n <iframe\n ref={iframeRef}\n src={iframeSrc}\n onLoad={handleIframeLoaded}\n title=\"Authentication Modal\"\n className={classNames(\n \"w-full h-[500px] border pt-12 pb-8\",\n appearance?.colors?.border\n ? `border-[${appearance.colors.border}]`\n : \"border-[#D0D5DD]\",\n appearance?.borderRadius ? `rounded-[${appearance.borderRadius}]` : \"rounded-2xl\",\n appearance?.colors?.background ? `bg-[${appearance.colors.background}]` : \"bg-white\"\n )}\n />\n </div>\n </Transition.Child>\n </Dialog>\n </Transition.Root>\n );\n}\n\nconst styles: { [key: string]: CSSProperties } = {\n dialog: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n overflowY: \"auto\",\n position: \"fixed\",\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n zIndex: 20,\n },\n transitionBegin: {\n background: \"rgba(139, 151, 151, 0.2)\",\n backdropFilter: \"blur(2px)\",\n position: \"fixed\",\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n transitionProperty: \"opacity\",\n transitionTimingFunction: \"cubic-bezier(0.4, 0, 0.2, 1)\",\n transitionDuration: \"300ms\",\n zIndex: -10,\n },\n transitionEnd: {\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n width: \"100%\",\n maxWidth: \"448px\",\n borderRadius: \"0.75rem\",\n boxShadow: \"0 1px 2px 0 rgba(0, 0, 0, 0.05)\",\n zIndex: 30,\n },\n};\n","export default function X({ className }: { className?: string }) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n >\n <path d=\"M18 6 6 18\" />\n <path d=\"m6 6 12 12\" />\n </svg>\n );\n}\n","import { type ClassValue, clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\n\n/**\n * Combines multiple class names into a single string.\n *\n * @param inputs - The class names to combine.\n * @returns The combined class names as a string.\n */\nexport function classNames(...inputs: ClassValue[]) {\n return twMerge(clsx(inputs));\n}\n"],"mappings":"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","names":["install","defineConfig","presetTailwind","twind_config_default","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","bs58","IncomingInternalEvents","OutgoingInternalEvents","crossmintIFrameService","embeddedCheckoutPropsToUpdatableParamsPayload","isEqual","useEffect","useRef","useDeepEffect","callback","dependencies","dependenciesRef","dep","i","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","crossmintIFrameService","embeddedCheckoutPropsToUpdatableParamsPayload","jsx","FiatEmbeddedCheckoutIFrame","props","emitInternalEvent","crossmintIFrameService","useDeepEffect","embeddedCheckoutPropsToUpdatableParamsPayload","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","createContext","useCallback","useContext","useMemo","useRef","useState","createCrossmint","jsx","CrossmintContext","CrossmintProvider","children","apiKey","overrideBaseUrl","version","setVersion","crossmintRef","target","prop","value","v","setJwt","jwt","useCrossmint","missingContextMessage","context","useContext","createContext","useMemo","useState","SmartWalletError","SmartWalletSDK","jsx","WalletContext","createContext","CrossmintWalletProvider","children","defaultChain","crossmint","useCrossmint","smartWalletSDK","useMemo","SmartWalletSDK","state","setState","useState","getOrCreateWallet","config","__async","wallet","error","deriveErrorState","clearWallet","__spreadProps","__spreadValues","SmartWalletError","message","stack","useWallet","walletContext","useContext","WalletContext","useContext","createContext","useEffect","useState","createPortal","validateApiKeyAndGetCrossmintBaseUrl","Dialog","Transition","Fragment","useEffect","useRef","useState","z","IFrameWindow","jsx","jsxs","X","className","clsx","twMerge","classNames","inputs","jsx","jsxs","incomingModalIframeEvents","z","outgoingModalIframeEvents","AuthModal","setModalOpen","setJwtToken","apiKey","baseUrl","appearance","_a","_b","_c","_d","iframeSrc","iframeRef","useRef","iframe","setIframe","useState","useEffect","data","handleIframeLoaded","__async","initIframe","IFrameWindow","Transition","Fragment","Dialog","styles","e","X","classNames","Fragment","jsx","jsxs","SESSION_PREFIX","AuthContext","createContext","CrossmintAuthProvider","embeddedWallets","children","appearance","crossmint","setJwt","useCrossmint","crossmintBaseUrl","validateApiKeyAndGetCrossmintBaseUrl","modalOpen","setModalOpen","useState","useEffect","session","sessionFromClient","login","logout","getAuthStatus","CrossmintWalletProvider","WalletManager","createPortal","AuthModal","accessToken","getOrCreateWallet","clearWallet","status","useWallet","crossmintSession","row","useAuth","context","useContext","AuthContext","CrossmintEvents","useCrossmintEvents","Chain","SmartWalletError","UserWalletAlreadyCreatedError","AdminAlreadyUsedError","AdminMismatchError","PasskeyMismatchError","PasskeyPromptError","PasskeyRegistrationError","PasskeyIncompatibleAuthenticatorError","ConfigError","SmartWalletsNotEnabledError","EVMSendTransactionError","EVMSendTransactionExecutionRevertedError","install","twind_config_default"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@crossmint/client-sdk-react-ui",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.23",
|
|
4
4
|
"repository": "https://github.com/Crossmint/crossmint-sdk",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Paella Labs Inc",
|
|
@@ -34,8 +34,8 @@
|
|
|
34
34
|
"@crossmint/client-sdk-auth-core": "1.1.7",
|
|
35
35
|
"@crossmint/client-sdk-base": "1.2.7",
|
|
36
36
|
"@crossmint/client-sdk-smart-wallet": "0.1.16",
|
|
37
|
-
"@crossmint/
|
|
38
|
-
"@crossmint/
|
|
37
|
+
"@crossmint/common-sdk-base": "0.1.4",
|
|
38
|
+
"@crossmint/client-sdk-window": "0.0.10"
|
|
39
39
|
},
|
|
40
40
|
"devDependencies": {
|
|
41
41
|
"@types/lodash.isequal": "4.5.6",
|
package/src/consts/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const LIB_VERSION = "1.3.
|
|
1
|
+
export const LIB_VERSION = "1.3.23";
|
package/src/index.ts
CHANGED
|
@@ -13,6 +13,8 @@ export * from "./providers";
|
|
|
13
13
|
export { CrossmintEvents, useCrossmintEvents } from "@crossmint/client-sdk-base";
|
|
14
14
|
export {
|
|
15
15
|
type EVMSmartWallet,
|
|
16
|
+
type ExternalSigner,
|
|
17
|
+
type PasskeySigner,
|
|
16
18
|
Chain,
|
|
17
19
|
SmartWalletError,
|
|
18
20
|
UserWalletAlreadyCreatedError,
|