@cedros/pay-react 1.1.23 → 1.1.24

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.
Files changed (41) hide show
  1. package/dist/{AISettingsSection-DpMIk431.mjs → AISettingsSection-Dw0ZlxMf.mjs} +2 -2
  2. package/dist/{AISettingsSection-DAztmwnN.js → AISettingsSection-IXS1Wt_1.js} +1 -1
  3. package/dist/{AutosaveIndicator-BRCqAWqP.mjs → AutosaveIndicator-BJsg_kFZ.mjs} +1 -1
  4. package/dist/{AutosaveIndicator-BnQkKxzr.js → AutosaveIndicator-CY_YHM1D.js} +1 -1
  5. package/dist/{CedrosContext-BlArEF7k.mjs → CedrosContext-DQUbL8yP.mjs} +17 -17
  6. package/dist/{CryptoButton-CREryx1l.mjs → CryptoButton-D1BCZBk4.mjs} +51 -51
  7. package/dist/{FAQSection-yw64HLy3.js → FAQSection-BmgmzDN5.js} +1 -1
  8. package/dist/{FAQSection-Ruzs7a-0.mjs → FAQSection-C78MnK4k.mjs} +1 -1
  9. package/dist/{MessagingSection-Dp_SaXsv.js → MessagingSection-CWLZcg11.js} +1 -1
  10. package/dist/{MessagingSection-BLRjfBQT.mjs → MessagingSection-De3t8bSI.mjs} +2 -2
  11. package/dist/{OrdersSection-C2dyWqrR.js → OrdersSection-BKOxsZw0.js} +1 -1
  12. package/dist/{OrdersSection-l-MtP9EN.mjs → OrdersSection-_xKVzjSZ.mjs} +1 -1
  13. package/dist/{PaymentSettingsSection-C5bhLgU7.js → PaymentSettingsSection-BTEn9Dxb.js} +1 -1
  14. package/dist/{PaymentSettingsSection-Bbq93UtC.mjs → PaymentSettingsSection-KjU_dN_d.mjs} +1 -1
  15. package/dist/{SettingsSection-DorqCFXE.mjs → SettingsSection-8QHZB59k.mjs} +1 -1
  16. package/dist/{SettingsSection-D_pKPRrP.js → SettingsSection-cKF0tLnS.js} +1 -1
  17. package/dist/{SingleCategorySettings-BAND8Zkw.mjs → SingleCategorySettings--LK0TZW0.mjs} +3 -3
  18. package/dist/{SingleCategorySettings-Cg-zuJfr.js → SingleCategorySettings-CRXTMTo5.js} +1 -1
  19. package/dist/{StorefrontSection-QZPEZ6Lz.js → StorefrontSection-C9DzCmOf.js} +1 -1
  20. package/dist/{StorefrontSection-FSOxBclu.mjs → StorefrontSection-CeCpr8hn.mjs} +2 -2
  21. package/dist/{SubscriptionsSection-C4TDXCX2.mjs → SubscriptionsSection-C2xk8ApF.mjs} +1 -1
  22. package/dist/{SubscriptionsSection-DYr99VzB.js → SubscriptionsSection-Dn5SY6S_.js} +1 -1
  23. package/dist/{Token22Section-D3nnUyim.js → Token22Section-DUUl59dZ.js} +1 -1
  24. package/dist/{Token22Section-Cmn2lKcd.mjs → Token22Section-HygkDNtL.mjs} +2 -2
  25. package/dist/{WalletManager-peBN6RDH.mjs → WalletManager-CXvQ0Zu9.mjs} +1 -1
  26. package/dist/{bn-CHdpZHQm.mjs → bn-Bv2sKQMU.mjs} +1 -1
  27. package/dist/{bn-RbgIlcHc.js → bn-CHyy7EgJ.js} +1 -1
  28. package/dist/crypto-only.js +1 -1
  29. package/dist/crypto-only.mjs +7 -7
  30. package/dist/{index-CKNB7XsA.mjs → index-BHF82XBB.mjs} +625 -625
  31. package/dist/{index-vEe2Y39x.js → index-OaWkrl0G.js} +8 -8
  32. package/dist/index.js +1 -1
  33. package/dist/index.mjs +3 -3
  34. package/dist/{sections-Cklkxd85.js → sections-8e5Y3ukY.js} +1 -1
  35. package/dist/sections-C1rb9YRh.mjs +9 -0
  36. package/dist/stripe-only.mjs +2 -2
  37. package/dist/{styles-2VMpwuaI.mjs → styles-Ag-7ZvAB.mjs} +46 -46
  38. package/dist/testing/index.mjs +1 -1
  39. package/dist/{walletPool-DgQsh7Se.mjs → walletPool-C_0P4mTw.mjs} +1 -1
  40. package/package.json +6 -1
  41. package/dist/sections-Dt6vxDU4.mjs +0 -8
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./styles-21F1-oqx.js"),v=require("./index-vEe2Y39x.js"),t=require("./CedrosContext-7dwmEeUY.js"),ce=require("./CryptoButton-C1AAOOfj.js"),C=require("react/jsx-runtime"),a=require("react"),$=require("@solana/wallet-adapter-react"),ie=require("@solana/wallet-adapter-base"),Pe=require("@solana/wallet-adapter-react-ui"),le=require("./walletPool-Ddv33tej.js");function ue(){const{subscriptionManager:o,x402Manager:d,walletManager:f}=t.useCedrosContext(),{publicKey:u,signTransaction:T}=$.useWallet(),[P,y]=a.useState({status:"idle",error:null,sessionId:null,subscriptionStatus:null,expiresAt:null}),[k,R]=a.useState(null),x=a.useRef(!1),h=a.useCallback(()=>{if(!u){const c="Wallet not connected";return y(n=>({...n,status:"error",error:c})),{valid:!1,error:c}}if(!T){const c="Wallet does not support signing";return y(n=>({...n,status:"error",error:c})),{valid:!1,error:c}}return{valid:!0}},[u,T]),B=a.useCallback(async c=>{if(!u)return y(n=>({...n,status:"error",error:"Wallet not connected"})),null;y(n=>({...n,status:"checking",error:null}));try{const n=await o.checkSubscriptionStatus({resource:c,userId:u.toString()});return y(s=>({...s,status:n.active?"success":"idle",subscriptionStatus:n.status,expiresAt:n.expiresAt||n.currentPeriodEnd||null})),n}catch(n){const s=t.formatError(n,"Failed to check subscription status");return y(g=>({...g,status:"error",error:s})),null}},[u,o]),W=a.useCallback(async(c,n,s)=>{y(g=>({...g,status:"loading",error:null}));try{const g=await o.requestSubscriptionQuote(c,n,s);return R(g),y(i=>({...i,status:"idle"})),g}catch(g){const i=t.formatError(g,"Failed to get subscription quote");return y(l=>({...l,status:"error",error:i})),null}},[o]),S=a.useCallback(async(c,n,s)=>{if(x.current)return{success:!1,error:"Payment already in progress"};const g=h();if(!g.valid)return{success:!1,error:g.error};x.current=!0,y(i=>({...i,status:"loading",error:null}));try{const i=await o.requestSubscriptionQuote(c,n,s);R(i);const l=i.requirement;if(!d.validateRequirement(l))throw new Error("Invalid subscription quote received from server");const E=!!l.extra?.feePayer;let b;if(E){const{transaction:w,blockhash:M}=await d.buildGaslessTransaction({resourceId:c,userWallet:u.toString(),feePayer:l.extra.feePayer,couponCode:s?.couponCode}),q=f.deserializeTransaction(w),O=await f.partiallySignTransaction({transaction:q,signTransaction:T,blockhash:M});b=await d.submitGaslessTransaction({resource:c,partialTx:O,couponCode:s?.couponCode,resourceType:"regular",requirement:l})}else{const w=await f.buildTransaction({requirement:l,payerPublicKey:u}),M=await f.signTransaction({transaction:w,signTransaction:T}),q=f.buildPaymentPayload({requirement:l,signedTx:M,payerPublicKey:u});b=await d.submitPayment({resource:c,payload:q,couponCode:s?.couponCode,resourceType:"regular"})}if(b.success){const w=await o.checkSubscriptionStatus({resource:c,userId:u.toString()});y({status:"success",error:null,sessionId:b.transactionId||null,subscriptionStatus:w.status,expiresAt:w.expiresAt||w.currentPeriodEnd||null})}else y(w=>({...w,status:"error",error:b.error||"Subscription payment failed"}));return b}catch(i){const l=t.formatError(i,"Subscription payment failed");return y(E=>({...E,status:"error",error:l})),{success:!1,error:l}}finally{x.current=!1}},[h,o,d,f,u,T]),I=a.useCallback(()=>{y({status:"idle",error:null,sessionId:null,subscriptionStatus:null,expiresAt:null}),R(null)},[]);return{...P,quote:k,checkStatus:B,requestQuote:W,processPayment:S,reset:I}}function we({resource:o,interval:d,intervalDays:f,couponCode:u,label:T,disabled:P=!1,onAttempt:y,onSuccess:k,onError:R,className:x="",testPageUrl:h,hideMessages:B=!1,autoCheckStatus:W=!0}){const{connected:S,connecting:I,connect:c,disconnect:n,select:s,wallets:g,wallet:i,publicKey:l}=$.useWallet(),{status:E,error:b,subscriptionStatus:w,expiresAt:M,checkStatus:q,processPayment:O}=ue(),p=t.useCedrosTheme(),{solanaError:L}=t.useCedrosContext(),{t:_,translations:G}=e.useTranslation(),de=T||_("ui.subscribe_with_crypto"),Q=a.useRef(k),F=a.useRef(R),V=a.useRef(O),X=a.useRef(q);Q.current=k,F.current=R,V.current=O,X.current=q;const ge=b&&typeof b!="string"?b?.code??null:null,pe=L&&typeof L!="string"?L?.code??null:null,H=r=>{if(!r||!G)return"";const m=G.errors[r];return m?m.action?`${m.message} ${m.action}`:m.message:""},J=b?typeof b=="string"?b:H(ge):null,Z=L?typeof L=="string"?L:H(pe):null,me=a.useMemo(()=>g.map(r=>`${r.adapter.name}-${r.readyState}`).join(","),[g]),K=a.useMemo(()=>g.filter(({readyState:r})=>r===ie.WalletReadyState.Installed||r===ie.WalletReadyState.Loadable),[me]);a.useEffect(()=>{W&&S&&l&&(t.getLogger().debug("[CryptoSubscribeButton] Auto-checking subscription status"),X.current(o))},[W,S,l,o]),a.useEffect(()=>{E==="success"&&w==="active"&&(e.emitPaymentSuccess("crypto","subscription-active",o),Q.current?.("subscription-active"))},[E,w,o]),a.useEffect(()=>{E==="error"&&b&&(e.emitPaymentError("crypto",b,o),F.current?.(b))},[E,b,o]);const ee=typeof window<"u"&&window.top!==window.self,[te,A]=a.useState(!1),[re,U]=a.useState(!1),[ne,D]=a.useState(!1),N=L;a.useEffect(()=>{let r=!1;return r||(async()=>{if(re&&i&&!S&&!I){t.getLogger().debug("[CryptoSubscribeButton] Wallet detected, attempting auto-connect:",i.adapter.name),U(!1),e.emitWalletConnect(i.adapter.name);try{await c(),r||t.getLogger().debug("[CryptoSubscribeButton] Auto-connect successful")}catch(Y){if(!r){t.getLogger().error("[CryptoSubscribeButton] Auto-connect failed:",Y);const Ee=Y instanceof Error?Y.message:"Failed to connect wallet";e.emitWalletError(Ee,i.adapter.name),D(!1)}}}})(),()=>{r=!0}},[i,re,S,I,c]),a.useEffect(()=>{S&&ne&&l&&i&&(e.emitWalletConnected(i.adapter.name,l.toString()),t.getLogger().debug("[CryptoSubscribeButton] Processing pending subscription payment"),D(!1),A(!1),e.emitPaymentProcessing("crypto",o),V.current(o,d,{couponCode:u,intervalDays:f}))},[S,ne,l,i,o,d,u,f]);const oe=a.useCallback(async()=>{if(t.getLogger().debug("[CryptoSubscribeButton] executeSubscriptionFlow called",{connected:S,wallet:i?.adapter.name,resource:o,interval:d}),e.emitPaymentStart("crypto",o),y&&y("crypto"),N){t.getLogger().error("[CryptoSubscribeButton] Solana dependencies missing:",N),e.emitPaymentError("crypto",N,o),R&&R(N);return}if(ee){const r=h||window.location.href;try{if(new URL(r,window.location.origin).origin!==window.location.origin)throw t.getLogger().error("[CryptoSubscribeButton] Blocked attempt to open external URL:",r),new Error("Cannot open external URLs from embedded context");window.open(r,"_blank","noopener,noreferrer")}catch(m){throw t.getLogger().error("[CryptoSubscribeButton] URL validation failed:",m),m}return}if(S)e.emitPaymentProcessing("crypto",o),await O(o,d,{couponCode:u,intervalDays:f});else{D(!0);try{if(i)t.getLogger().debug("[CryptoSubscribeButton] Wallet already selected, connecting:",i.adapter.name),e.emitWalletConnect(i.adapter.name),await c();else{if(t.getLogger().debug("[CryptoSubscribeButton] No wallet selected, showing selector"),K.length===0){D(!1);const r="No wallets available";throw e.emitWalletError(r),new Error(r)}A(!0)}}catch(r){D(!1);const m=r instanceof Error?r.message:"Failed to connect wallet";t.getLogger().error("[CryptoSubscribeButton] Connection error:",m),e.emitWalletError(m,i?.adapter.name)}}},[S,i,o,d,u,f,ee,h,K,c,O,N,y,R]),ae=a.useMemo(()=>`crypto-subscribe-${o}-${d}`,[o,d]),ye=a.useMemo(()=>e.createDedupedClickHandler(ae,oe,{cooldownMs:200,deduplicationWindowMs:0}),[ae,oe]),se=E==="loading"||E==="checking",j=w==="active"||w==="trialing",fe=P||se||I||!!N||j;let z=de;if(se)z=_("ui.processing");else if(j&&M){const r=new Date(M).toLocaleDateString();z=`${_("ui.subscribed_until")} ${r}`}else j&&(z=_("ui.subscribed"));const be=a.useCallback(async()=>{try{U(!1),S&&await n(),s(null),A(!0)}catch(r){t.getLogger().error("Failed to change wallet:",r)}},[S,n,s]),Ce=a.useCallback(r=>{t.getLogger().debug("[CryptoSubscribeButton] Wallet clicked:",r),A(!1),s(r),U(!0)},[s]),Se=a.useCallback(async()=>{try{if(await n(),D(!1),typeof window<"u"&&window.localStorage)try{window.localStorage.removeItem("walletName")}catch(r){r instanceof Error&&r.name==="QuotaExceededError"?t.getLogger().warn("localStorage quota exceeded when removing wallet preference"):t.getLogger().error("Failed to clear wallet preference from localStorage:",r)}}catch(r){t.getLogger().error("Failed to disconnect wallet:",r)}},[n]);return C.jsxs("div",{className:p.unstyled?x:`${p.className} cedros-theme__crypto-button ${x||""}`,style:p.unstyled?{}:p.style,children:[C.jsx("button",{onClick:ye,disabled:fe,className:p.unstyled?x:"cedros-theme__button cedros-theme__crypto",type:"button",children:z}),te&&!B&&C.jsx("div",{className:"cedros-modal-overlay",style:{position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:p.tokens.modalOverlay,display:"flex",alignItems:"center",justifyContent:"center",zIndex:9999,padding:"1rem"},onClick:()=>A(!1),children:C.jsxs("div",{className:"cedros-modal-content",style:{backgroundColor:p.tokens.modalBackground,borderRadius:"12px",padding:"2rem",maxWidth:"400px",width:"100%",boxShadow:"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)",border:`1px solid ${p.tokens.modalBorder}`},onClick:r=>r.stopPropagation(),children:[C.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"1.5rem"},children:[C.jsx("h3",{style:{margin:0,fontSize:"1.25rem",fontWeight:600,color:p.tokens.surfaceText},children:_("wallet.select_wallet")}),C.jsx("button",{onClick:()=>A(!1),style:e.getModalCloseButtonStyles(p.tokens.surfaceText),"aria-label":"Close modal",type:"button",children:"×"})]}),C.jsx("div",{style:{display:"flex",flexDirection:"column",gap:"0.75rem"},children:K.map(r=>C.jsxs("button",{onClick:()=>Ce(r.adapter.name),style:{width:"100%",padding:"1rem",backgroundColor:p.tokens.surfaceBackground,border:`1px solid ${p.tokens.surfaceBorder}`,borderRadius:"0.5rem",cursor:"pointer",fontSize:"1rem",textAlign:"left",color:p.tokens.surfaceText,display:"flex",alignItems:"center",gap:"1rem",transition:"all 0.2s ease"},onMouseEnter:m=>{m.currentTarget.style.backgroundColor=p.tokens.modalBackground,m.currentTarget.style.borderColor=p.tokens.surfaceText,m.currentTarget.style.transform="translateY(-2px)"},onMouseLeave:m=>{m.currentTarget.style.backgroundColor=p.tokens.surfaceBackground,m.currentTarget.style.borderColor=p.tokens.surfaceBorder,m.currentTarget.style.transform="translateY(0)"},type:"button",children:[C.jsx(Pe.WalletIcon,{wallet:r,style:{width:"24px",height:"24px"}}),C.jsx("span",{style:{fontWeight:500},children:r.adapter.name})]},r.adapter.name))})]})}),S&&!B&&!te&&C.jsxs("div",{style:{display:"flex",justifyContent:"space-between",marginTop:"0.5rem",fontSize:"0.75rem",color:p.tokens.surfaceText,opacity:.7},children:[C.jsx("button",{onClick:be,style:{background:"none",border:"none",padding:0,color:"inherit",textDecoration:"none",cursor:"pointer",fontSize:"inherit"},type:"button",children:_("wallet.change")}),C.jsx("button",{onClick:Se,style:{background:"none",border:"none",padding:0,color:"inherit",textDecoration:"none",cursor:"pointer",fontSize:"inherit"},type:"button",children:_("ui.disconnect")})]}),!B&&Z&&C.jsx("div",{className:p.unstyled?"":"cedros-theme__error",children:Z}),!B&&J&&C.jsx("div",{className:p.unstyled?"":"cedros-theme__error",children:J}),!B&&j&&C.jsx("div",{className:p.unstyled?"":"cedros-theme__success",children:_("ui.subscription_active")})]})}function he(){const{x402Manager:o,walletManager:d}=t.useCedrosContext(),{publicKey:f,signTransaction:u}=$.useWallet(),[T,P]=a.useState({status:"idle",error:null,transactionId:null}),[y,k]=a.useState(null),[R,x]=a.useState(null),h=a.useRef(!1),B=a.useCallback(async c=>{try{P(s=>({...s,status:"loading"}));const n=await o.requestQuote({resource:c});if(!o.validateRequirement(n))throw new Error("Invalid refund requirement received from server");return k(n),P(s=>({...s,status:"idle"})),n}catch(n){const s=t.formatError(n,"Failed to fetch refund requirement");throw P({status:"error",error:s,transactionId:null}),n}},[o]),W=a.useCallback(async(c,n)=>{if(h.current)throw new Error("Refund already in progress");if(!f||!u)throw new Error("Wallet not connected");h.current=!0;try{P({status:"loading",error:null,transactionId:null});const s=await o.requestQuote({resource:c,couponCode:n});if(!o.validateRequirement(s))throw new Error("Invalid refund requirement received");k(s);const g=await d.buildTransaction({requirement:s,payerPublicKey:f}),i=await d.signTransaction({transaction:g,signTransaction:u}),l=d.buildPaymentPayload({requirement:s,signedTx:i,payerPublicKey:f}),E=await o.submitPayment({resource:c,payload:l,couponCode:n,metadata:void 0,resourceType:"refund"});return E.settlement&&x(E.settlement),P({status:"success",error:null,transactionId:E.transactionId||i.signature}),E}catch(s){const g=t.formatError(s,"Refund payment failed");throw P({status:"error",error:g,transactionId:null}),s}finally{h.current=!1}},[f,u,o,d]),S=a.useCallback(async c=>{if(h.current)throw new Error("Refund already in progress");if(!f||!u)throw new Error("Wallet not connected");h.current=!0;try{P({status:"loading",error:null,transactionId:null});const n=await o.requestQuote({resource:c});if(!o.validateRequirement(n))throw new Error("Invalid refund requirement received");k(n);const{transaction:s}=await o.buildGaslessTransaction({resourceId:c,userWallet:f.toString(),feePayer:n.extra.feePayer}),g=d.deserializeTransaction(s),i=await d.partiallySignTransaction({transaction:g,signTransaction:u}),l=await o.submitGaslessTransaction({resource:c,partialTx:i,couponCode:void 0,metadata:void 0,resourceType:"refund",requirement:n});return l.settlement&&x(l.settlement),P({status:"success",error:null,transactionId:l.transactionId||"gasless-refund-tx"}),l}catch(n){const s=t.formatError(n,"Gasless refund payment failed");throw P({status:"error",error:s,transactionId:null}),n}finally{h.current=!1}},[f,u,o,d]),I=a.useCallback(()=>{P({status:"idle",error:null,transactionId:null}),k(null),x(null)},[]);return{state:T,requirement:y,settlement:R,fetchRefundQuote:B,processRefund:W,processGaslessRefund:S,reset:I}}exports.CEDROS_EVENTS=e.CEDROS_EVENTS;exports.CSP_PRESETS=e.CSP_PRESETS;exports.CedrosPay=e.CedrosPay;exports.CreditsButton=e.CreditsButton;exports.CreditsSubscribeButton=e.CreditsSubscribeButton;exports.PaymentMethodBadge=e.PaymentMethodBadge;exports.PaymentModal=e.PaymentModal;exports.ProductPrice=e.ProductPrice;exports.PurchaseButton=e.PurchaseButton;exports.RPC_PROVIDERS=e.RPC_PROVIDERS;exports.SECURITY_RECOMMENDATIONS=e.SECURITY_RECOMMENDATIONS;exports.StripeButton=e.StripeButton;exports.SubscribeButton=e.SubscribeButton;exports.SubscriptionManagementPanel=e.SubscriptionManagementPanel;exports.calculateDiscountPercentage=e.calculateDiscountPercentage;exports.createTranslator=e.createTranslator;exports.detectLocale=e.detectLocale;exports.emitPaymentError=e.emitPaymentError;exports.emitPaymentProcessing=e.emitPaymentProcessing;exports.emitPaymentStart=e.emitPaymentStart;exports.emitPaymentSuccess=e.emitPaymentSuccess;exports.emitWalletConnect=e.emitWalletConnect;exports.emitWalletConnected=e.emitWalletConnected;exports.emitWalletError=e.emitWalletError;exports.formatCSP=e.formatCSP;exports.formatCouponCodes=e.formatCouponCodes;exports.generateCSP=e.generateCSP;exports.generateCSPDirectives=e.generateCSPDirectives;exports.getAvailableLocales=e.getAvailableLocales;exports.getLocalizedError=e.getLocalizedError;exports.getUserErrorMessage=e.getUserErrorMessage;exports.isRetryableError=e.isRetryableError;exports.loadLocale=e.loadLocale;exports.logSecurityReport=e.logSecurityReport;exports.parseCouponCodes=e.parseCouponCodes;exports.stackCheckoutCoupons=e.stackCheckoutCoupons;exports.useCreditsPayment=e.useCreditsPayment;exports.useCreditsSubscription=e.useCreditsSubscription;exports.useLocalizedError=e.useLocalizedError;exports.usePaymentMode=e.usePaymentMode;exports.useStripeCheckout=e.useStripeCheckout;exports.useSubscription=e.useSubscription;exports.useSubscriptionManagement=e.useSubscriptionManagement;exports.useTranslation=e.useTranslation;exports.validateSecurity=e.validateSecurity;exports.CEDROS_PAY_GROUPS=v.CEDROS_PAY_GROUPS;exports.CEDROS_PAY_SECTIONS=v.CEDROS_PAY_SECTIONS;exports.CEDROS_PAY_SECTION_IDS=v.CEDROS_PAY_SECTION_IDS;exports.CedrosPayAdminDashboard=v.CedrosPayAdminDashboard;exports.CreditsBalance=v.CreditsBalance;exports.cedrosPayPlugin=v.cedrosPayPlugin;exports.ecommerce=v.index;exports.useCreditsBalance=v.useCreditsBalance;exports.CIRCUIT_BREAKER_PRESETS=t.CIRCUIT_BREAKER_PRESETS;exports.CedrosProvider=t.CedrosProvider;exports.CircuitBreakerOpenError=t.CircuitBreakerOpenError;exports.CircuitState=t.CircuitState;exports.ERROR_CATEGORIES=t.ERROR_CATEGORIES;exports.KNOWN_STABLECOINS=t.KNOWN_STABLECOINS;exports.LogLevel=t.LogLevel;exports.Logger=t.Logger;exports.RATE_LIMITER_PRESETS=t.RATE_LIMITER_PRESETS;exports.RETRY_PRESETS=t.RETRY_PRESETS;exports.createCircuitBreaker=t.createCircuitBreaker;exports.createLogger=t.createLogger;exports.createRateLimiter=t.createRateLimiter;exports.getLogger=t.getLogger;exports.retryWithBackoff=t.retryWithBackoff;exports.useCedrosContext=t.useCedrosContext;exports.useCedrosTheme=t.useCedrosTheme;exports.validateConfig=t.validateConfig;exports.validateTokenMint=t.validateTokenMint;exports.CryptoButton=ce.CryptoButton;exports.useX402Payment=ce.useX402Payment;exports.WalletPool=le.WalletPool;exports.createWalletPool=le.createWalletPool;exports.CryptoSubscribeButton=we;exports.useCryptoSubscription=ue;exports.useRefundVerification=he;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./styles-21F1-oqx.js"),v=require("./index-OaWkrl0G.js"),t=require("./CedrosContext-7dwmEeUY.js"),ce=require("./CryptoButton-C1AAOOfj.js"),C=require("react/jsx-runtime"),a=require("react"),$=require("@solana/wallet-adapter-react"),ie=require("@solana/wallet-adapter-base"),Pe=require("@solana/wallet-adapter-react-ui"),le=require("./walletPool-Ddv33tej.js");function ue(){const{subscriptionManager:o,x402Manager:d,walletManager:f}=t.useCedrosContext(),{publicKey:u,signTransaction:T}=$.useWallet(),[P,y]=a.useState({status:"idle",error:null,sessionId:null,subscriptionStatus:null,expiresAt:null}),[k,R]=a.useState(null),x=a.useRef(!1),h=a.useCallback(()=>{if(!u){const c="Wallet not connected";return y(n=>({...n,status:"error",error:c})),{valid:!1,error:c}}if(!T){const c="Wallet does not support signing";return y(n=>({...n,status:"error",error:c})),{valid:!1,error:c}}return{valid:!0}},[u,T]),B=a.useCallback(async c=>{if(!u)return y(n=>({...n,status:"error",error:"Wallet not connected"})),null;y(n=>({...n,status:"checking",error:null}));try{const n=await o.checkSubscriptionStatus({resource:c,userId:u.toString()});return y(s=>({...s,status:n.active?"success":"idle",subscriptionStatus:n.status,expiresAt:n.expiresAt||n.currentPeriodEnd||null})),n}catch(n){const s=t.formatError(n,"Failed to check subscription status");return y(g=>({...g,status:"error",error:s})),null}},[u,o]),W=a.useCallback(async(c,n,s)=>{y(g=>({...g,status:"loading",error:null}));try{const g=await o.requestSubscriptionQuote(c,n,s);return R(g),y(i=>({...i,status:"idle"})),g}catch(g){const i=t.formatError(g,"Failed to get subscription quote");return y(l=>({...l,status:"error",error:i})),null}},[o]),S=a.useCallback(async(c,n,s)=>{if(x.current)return{success:!1,error:"Payment already in progress"};const g=h();if(!g.valid)return{success:!1,error:g.error};x.current=!0,y(i=>({...i,status:"loading",error:null}));try{const i=await o.requestSubscriptionQuote(c,n,s);R(i);const l=i.requirement;if(!d.validateRequirement(l))throw new Error("Invalid subscription quote received from server");const E=!!l.extra?.feePayer;let b;if(E){const{transaction:w,blockhash:M}=await d.buildGaslessTransaction({resourceId:c,userWallet:u.toString(),feePayer:l.extra.feePayer,couponCode:s?.couponCode}),q=f.deserializeTransaction(w),O=await f.partiallySignTransaction({transaction:q,signTransaction:T,blockhash:M});b=await d.submitGaslessTransaction({resource:c,partialTx:O,couponCode:s?.couponCode,resourceType:"regular",requirement:l})}else{const w=await f.buildTransaction({requirement:l,payerPublicKey:u}),M=await f.signTransaction({transaction:w,signTransaction:T}),q=f.buildPaymentPayload({requirement:l,signedTx:M,payerPublicKey:u});b=await d.submitPayment({resource:c,payload:q,couponCode:s?.couponCode,resourceType:"regular"})}if(b.success){const w=await o.checkSubscriptionStatus({resource:c,userId:u.toString()});y({status:"success",error:null,sessionId:b.transactionId||null,subscriptionStatus:w.status,expiresAt:w.expiresAt||w.currentPeriodEnd||null})}else y(w=>({...w,status:"error",error:b.error||"Subscription payment failed"}));return b}catch(i){const l=t.formatError(i,"Subscription payment failed");return y(E=>({...E,status:"error",error:l})),{success:!1,error:l}}finally{x.current=!1}},[h,o,d,f,u,T]),I=a.useCallback(()=>{y({status:"idle",error:null,sessionId:null,subscriptionStatus:null,expiresAt:null}),R(null)},[]);return{...P,quote:k,checkStatus:B,requestQuote:W,processPayment:S,reset:I}}function we({resource:o,interval:d,intervalDays:f,couponCode:u,label:T,disabled:P=!1,onAttempt:y,onSuccess:k,onError:R,className:x="",testPageUrl:h,hideMessages:B=!1,autoCheckStatus:W=!0}){const{connected:S,connecting:I,connect:c,disconnect:n,select:s,wallets:g,wallet:i,publicKey:l}=$.useWallet(),{status:E,error:b,subscriptionStatus:w,expiresAt:M,checkStatus:q,processPayment:O}=ue(),p=t.useCedrosTheme(),{solanaError:L}=t.useCedrosContext(),{t:_,translations:G}=e.useTranslation(),de=T||_("ui.subscribe_with_crypto"),Q=a.useRef(k),F=a.useRef(R),V=a.useRef(O),X=a.useRef(q);Q.current=k,F.current=R,V.current=O,X.current=q;const ge=b&&typeof b!="string"?b?.code??null:null,pe=L&&typeof L!="string"?L?.code??null:null,H=r=>{if(!r||!G)return"";const m=G.errors[r];return m?m.action?`${m.message} ${m.action}`:m.message:""},J=b?typeof b=="string"?b:H(ge):null,Z=L?typeof L=="string"?L:H(pe):null,me=a.useMemo(()=>g.map(r=>`${r.adapter.name}-${r.readyState}`).join(","),[g]),K=a.useMemo(()=>g.filter(({readyState:r})=>r===ie.WalletReadyState.Installed||r===ie.WalletReadyState.Loadable),[me]);a.useEffect(()=>{W&&S&&l&&(t.getLogger().debug("[CryptoSubscribeButton] Auto-checking subscription status"),X.current(o))},[W,S,l,o]),a.useEffect(()=>{E==="success"&&w==="active"&&(e.emitPaymentSuccess("crypto","subscription-active",o),Q.current?.("subscription-active"))},[E,w,o]),a.useEffect(()=>{E==="error"&&b&&(e.emitPaymentError("crypto",b,o),F.current?.(b))},[E,b,o]);const ee=typeof window<"u"&&window.top!==window.self,[te,A]=a.useState(!1),[re,U]=a.useState(!1),[ne,D]=a.useState(!1),N=L;a.useEffect(()=>{let r=!1;return r||(async()=>{if(re&&i&&!S&&!I){t.getLogger().debug("[CryptoSubscribeButton] Wallet detected, attempting auto-connect:",i.adapter.name),U(!1),e.emitWalletConnect(i.adapter.name);try{await c(),r||t.getLogger().debug("[CryptoSubscribeButton] Auto-connect successful")}catch(Y){if(!r){t.getLogger().error("[CryptoSubscribeButton] Auto-connect failed:",Y);const Ee=Y instanceof Error?Y.message:"Failed to connect wallet";e.emitWalletError(Ee,i.adapter.name),D(!1)}}}})(),()=>{r=!0}},[i,re,S,I,c]),a.useEffect(()=>{S&&ne&&l&&i&&(e.emitWalletConnected(i.adapter.name,l.toString()),t.getLogger().debug("[CryptoSubscribeButton] Processing pending subscription payment"),D(!1),A(!1),e.emitPaymentProcessing("crypto",o),V.current(o,d,{couponCode:u,intervalDays:f}))},[S,ne,l,i,o,d,u,f]);const oe=a.useCallback(async()=>{if(t.getLogger().debug("[CryptoSubscribeButton] executeSubscriptionFlow called",{connected:S,wallet:i?.adapter.name,resource:o,interval:d}),e.emitPaymentStart("crypto",o),y&&y("crypto"),N){t.getLogger().error("[CryptoSubscribeButton] Solana dependencies missing:",N),e.emitPaymentError("crypto",N,o),R&&R(N);return}if(ee){const r=h||window.location.href;try{if(new URL(r,window.location.origin).origin!==window.location.origin)throw t.getLogger().error("[CryptoSubscribeButton] Blocked attempt to open external URL:",r),new Error("Cannot open external URLs from embedded context");window.open(r,"_blank","noopener,noreferrer")}catch(m){throw t.getLogger().error("[CryptoSubscribeButton] URL validation failed:",m),m}return}if(S)e.emitPaymentProcessing("crypto",o),await O(o,d,{couponCode:u,intervalDays:f});else{D(!0);try{if(i)t.getLogger().debug("[CryptoSubscribeButton] Wallet already selected, connecting:",i.adapter.name),e.emitWalletConnect(i.adapter.name),await c();else{if(t.getLogger().debug("[CryptoSubscribeButton] No wallet selected, showing selector"),K.length===0){D(!1);const r="No wallets available";throw e.emitWalletError(r),new Error(r)}A(!0)}}catch(r){D(!1);const m=r instanceof Error?r.message:"Failed to connect wallet";t.getLogger().error("[CryptoSubscribeButton] Connection error:",m),e.emitWalletError(m,i?.adapter.name)}}},[S,i,o,d,u,f,ee,h,K,c,O,N,y,R]),ae=a.useMemo(()=>`crypto-subscribe-${o}-${d}`,[o,d]),ye=a.useMemo(()=>e.createDedupedClickHandler(ae,oe,{cooldownMs:200,deduplicationWindowMs:0}),[ae,oe]),se=E==="loading"||E==="checking",j=w==="active"||w==="trialing",fe=P||se||I||!!N||j;let z=de;if(se)z=_("ui.processing");else if(j&&M){const r=new Date(M).toLocaleDateString();z=`${_("ui.subscribed_until")} ${r}`}else j&&(z=_("ui.subscribed"));const be=a.useCallback(async()=>{try{U(!1),S&&await n(),s(null),A(!0)}catch(r){t.getLogger().error("Failed to change wallet:",r)}},[S,n,s]),Ce=a.useCallback(r=>{t.getLogger().debug("[CryptoSubscribeButton] Wallet clicked:",r),A(!1),s(r),U(!0)},[s]),Se=a.useCallback(async()=>{try{if(await n(),D(!1),typeof window<"u"&&window.localStorage)try{window.localStorage.removeItem("walletName")}catch(r){r instanceof Error&&r.name==="QuotaExceededError"?t.getLogger().warn("localStorage quota exceeded when removing wallet preference"):t.getLogger().error("Failed to clear wallet preference from localStorage:",r)}}catch(r){t.getLogger().error("Failed to disconnect wallet:",r)}},[n]);return C.jsxs("div",{className:p.unstyled?x:`${p.className} cedros-theme__crypto-button ${x||""}`,style:p.unstyled?{}:p.style,children:[C.jsx("button",{onClick:ye,disabled:fe,className:p.unstyled?x:"cedros-theme__button cedros-theme__crypto",type:"button",children:z}),te&&!B&&C.jsx("div",{className:"cedros-modal-overlay",style:{position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:p.tokens.modalOverlay,display:"flex",alignItems:"center",justifyContent:"center",zIndex:9999,padding:"1rem"},onClick:()=>A(!1),children:C.jsxs("div",{className:"cedros-modal-content",style:{backgroundColor:p.tokens.modalBackground,borderRadius:"12px",padding:"2rem",maxWidth:"400px",width:"100%",boxShadow:"0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)",border:`1px solid ${p.tokens.modalBorder}`},onClick:r=>r.stopPropagation(),children:[C.jsxs("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:"1.5rem"},children:[C.jsx("h3",{style:{margin:0,fontSize:"1.25rem",fontWeight:600,color:p.tokens.surfaceText},children:_("wallet.select_wallet")}),C.jsx("button",{onClick:()=>A(!1),style:e.getModalCloseButtonStyles(p.tokens.surfaceText),"aria-label":"Close modal",type:"button",children:"×"})]}),C.jsx("div",{style:{display:"flex",flexDirection:"column",gap:"0.75rem"},children:K.map(r=>C.jsxs("button",{onClick:()=>Ce(r.adapter.name),style:{width:"100%",padding:"1rem",backgroundColor:p.tokens.surfaceBackground,border:`1px solid ${p.tokens.surfaceBorder}`,borderRadius:"0.5rem",cursor:"pointer",fontSize:"1rem",textAlign:"left",color:p.tokens.surfaceText,display:"flex",alignItems:"center",gap:"1rem",transition:"all 0.2s ease"},onMouseEnter:m=>{m.currentTarget.style.backgroundColor=p.tokens.modalBackground,m.currentTarget.style.borderColor=p.tokens.surfaceText,m.currentTarget.style.transform="translateY(-2px)"},onMouseLeave:m=>{m.currentTarget.style.backgroundColor=p.tokens.surfaceBackground,m.currentTarget.style.borderColor=p.tokens.surfaceBorder,m.currentTarget.style.transform="translateY(0)"},type:"button",children:[C.jsx(Pe.WalletIcon,{wallet:r,style:{width:"24px",height:"24px"}}),C.jsx("span",{style:{fontWeight:500},children:r.adapter.name})]},r.adapter.name))})]})}),S&&!B&&!te&&C.jsxs("div",{style:{display:"flex",justifyContent:"space-between",marginTop:"0.5rem",fontSize:"0.75rem",color:p.tokens.surfaceText,opacity:.7},children:[C.jsx("button",{onClick:be,style:{background:"none",border:"none",padding:0,color:"inherit",textDecoration:"none",cursor:"pointer",fontSize:"inherit"},type:"button",children:_("wallet.change")}),C.jsx("button",{onClick:Se,style:{background:"none",border:"none",padding:0,color:"inherit",textDecoration:"none",cursor:"pointer",fontSize:"inherit"},type:"button",children:_("ui.disconnect")})]}),!B&&Z&&C.jsx("div",{className:p.unstyled?"":"cedros-theme__error",children:Z}),!B&&J&&C.jsx("div",{className:p.unstyled?"":"cedros-theme__error",children:J}),!B&&j&&C.jsx("div",{className:p.unstyled?"":"cedros-theme__success",children:_("ui.subscription_active")})]})}function he(){const{x402Manager:o,walletManager:d}=t.useCedrosContext(),{publicKey:f,signTransaction:u}=$.useWallet(),[T,P]=a.useState({status:"idle",error:null,transactionId:null}),[y,k]=a.useState(null),[R,x]=a.useState(null),h=a.useRef(!1),B=a.useCallback(async c=>{try{P(s=>({...s,status:"loading"}));const n=await o.requestQuote({resource:c});if(!o.validateRequirement(n))throw new Error("Invalid refund requirement received from server");return k(n),P(s=>({...s,status:"idle"})),n}catch(n){const s=t.formatError(n,"Failed to fetch refund requirement");throw P({status:"error",error:s,transactionId:null}),n}},[o]),W=a.useCallback(async(c,n)=>{if(h.current)throw new Error("Refund already in progress");if(!f||!u)throw new Error("Wallet not connected");h.current=!0;try{P({status:"loading",error:null,transactionId:null});const s=await o.requestQuote({resource:c,couponCode:n});if(!o.validateRequirement(s))throw new Error("Invalid refund requirement received");k(s);const g=await d.buildTransaction({requirement:s,payerPublicKey:f}),i=await d.signTransaction({transaction:g,signTransaction:u}),l=d.buildPaymentPayload({requirement:s,signedTx:i,payerPublicKey:f}),E=await o.submitPayment({resource:c,payload:l,couponCode:n,metadata:void 0,resourceType:"refund"});return E.settlement&&x(E.settlement),P({status:"success",error:null,transactionId:E.transactionId||i.signature}),E}catch(s){const g=t.formatError(s,"Refund payment failed");throw P({status:"error",error:g,transactionId:null}),s}finally{h.current=!1}},[f,u,o,d]),S=a.useCallback(async c=>{if(h.current)throw new Error("Refund already in progress");if(!f||!u)throw new Error("Wallet not connected");h.current=!0;try{P({status:"loading",error:null,transactionId:null});const n=await o.requestQuote({resource:c});if(!o.validateRequirement(n))throw new Error("Invalid refund requirement received");k(n);const{transaction:s}=await o.buildGaslessTransaction({resourceId:c,userWallet:f.toString(),feePayer:n.extra.feePayer}),g=d.deserializeTransaction(s),i=await d.partiallySignTransaction({transaction:g,signTransaction:u}),l=await o.submitGaslessTransaction({resource:c,partialTx:i,couponCode:void 0,metadata:void 0,resourceType:"refund",requirement:n});return l.settlement&&x(l.settlement),P({status:"success",error:null,transactionId:l.transactionId||"gasless-refund-tx"}),l}catch(n){const s=t.formatError(n,"Gasless refund payment failed");throw P({status:"error",error:s,transactionId:null}),n}finally{h.current=!1}},[f,u,o,d]),I=a.useCallback(()=>{P({status:"idle",error:null,transactionId:null}),k(null),x(null)},[]);return{state:T,requirement:y,settlement:R,fetchRefundQuote:B,processRefund:W,processGaslessRefund:S,reset:I}}exports.CEDROS_EVENTS=e.CEDROS_EVENTS;exports.CSP_PRESETS=e.CSP_PRESETS;exports.CedrosPay=e.CedrosPay;exports.CreditsButton=e.CreditsButton;exports.CreditsSubscribeButton=e.CreditsSubscribeButton;exports.PaymentMethodBadge=e.PaymentMethodBadge;exports.PaymentModal=e.PaymentModal;exports.ProductPrice=e.ProductPrice;exports.PurchaseButton=e.PurchaseButton;exports.RPC_PROVIDERS=e.RPC_PROVIDERS;exports.SECURITY_RECOMMENDATIONS=e.SECURITY_RECOMMENDATIONS;exports.StripeButton=e.StripeButton;exports.SubscribeButton=e.SubscribeButton;exports.SubscriptionManagementPanel=e.SubscriptionManagementPanel;exports.calculateDiscountPercentage=e.calculateDiscountPercentage;exports.createTranslator=e.createTranslator;exports.detectLocale=e.detectLocale;exports.emitPaymentError=e.emitPaymentError;exports.emitPaymentProcessing=e.emitPaymentProcessing;exports.emitPaymentStart=e.emitPaymentStart;exports.emitPaymentSuccess=e.emitPaymentSuccess;exports.emitWalletConnect=e.emitWalletConnect;exports.emitWalletConnected=e.emitWalletConnected;exports.emitWalletError=e.emitWalletError;exports.formatCSP=e.formatCSP;exports.formatCouponCodes=e.formatCouponCodes;exports.generateCSP=e.generateCSP;exports.generateCSPDirectives=e.generateCSPDirectives;exports.getAvailableLocales=e.getAvailableLocales;exports.getLocalizedError=e.getLocalizedError;exports.getUserErrorMessage=e.getUserErrorMessage;exports.isRetryableError=e.isRetryableError;exports.loadLocale=e.loadLocale;exports.logSecurityReport=e.logSecurityReport;exports.parseCouponCodes=e.parseCouponCodes;exports.stackCheckoutCoupons=e.stackCheckoutCoupons;exports.useCreditsPayment=e.useCreditsPayment;exports.useCreditsSubscription=e.useCreditsSubscription;exports.useLocalizedError=e.useLocalizedError;exports.usePaymentMode=e.usePaymentMode;exports.useStripeCheckout=e.useStripeCheckout;exports.useSubscription=e.useSubscription;exports.useSubscriptionManagement=e.useSubscriptionManagement;exports.useTranslation=e.useTranslation;exports.validateSecurity=e.validateSecurity;exports.CEDROS_PAY_GROUPS=v.CEDROS_PAY_GROUPS;exports.CEDROS_PAY_SECTIONS=v.CEDROS_PAY_SECTIONS;exports.CEDROS_PAY_SECTION_IDS=v.CEDROS_PAY_SECTION_IDS;exports.CedrosPayAdminDashboard=v.CedrosPayAdminDashboard;exports.CreditsBalance=v.CreditsBalance;exports.cedrosPayPlugin=v.cedrosPayPlugin;exports.ecommerce=v.index;exports.useCreditsBalance=v.useCreditsBalance;exports.CIRCUIT_BREAKER_PRESETS=t.CIRCUIT_BREAKER_PRESETS;exports.CedrosProvider=t.CedrosProvider;exports.CircuitBreakerOpenError=t.CircuitBreakerOpenError;exports.CircuitState=t.CircuitState;exports.ERROR_CATEGORIES=t.ERROR_CATEGORIES;exports.KNOWN_STABLECOINS=t.KNOWN_STABLECOINS;exports.LogLevel=t.LogLevel;exports.Logger=t.Logger;exports.RATE_LIMITER_PRESETS=t.RATE_LIMITER_PRESETS;exports.RETRY_PRESETS=t.RETRY_PRESETS;exports.createCircuitBreaker=t.createCircuitBreaker;exports.createLogger=t.createLogger;exports.createRateLimiter=t.createRateLimiter;exports.getLogger=t.getLogger;exports.retryWithBackoff=t.retryWithBackoff;exports.useCedrosContext=t.useCedrosContext;exports.useCedrosTheme=t.useCedrosTheme;exports.validateConfig=t.validateConfig;exports.validateTokenMint=t.validateTokenMint;exports.CryptoButton=ce.CryptoButton;exports.useX402Payment=ce.useX402Payment;exports.WalletPool=le.WalletPool;exports.createWalletPool=le.createWalletPool;exports.CryptoSubscribeButton=we;exports.useCryptoSubscription=ue;exports.useRefundVerification=he;
@@ -1,15 +1,15 @@
1
- import { O as ke, B as ve, D as fe, y as Be, A as me, w as Ie, x as ye, z as V, V as _e, W as We } from "./styles-2VMpwuaI.mjs";
2
- import { v as Ue, t as Ye, C as Ve, a as He, f as Je, d as Xe, b as Ze, c as et, P as tt, R as rt, I as nt, S as at, e as st, g as ot, n as it, M as ct, J as lt, r as ut, m as dt, o as pt, q as ft, L as mt, N as yt, F as gt, E as bt, K as St, H as wt, p as ht, s as Ct, h as xt, k as Pt, Q as Et, i as Rt, u as Tt, j as kt, l as vt, G as Bt } from "./styles-2VMpwuaI.mjs";
3
- import { d as _t, a as Wt, b as qt, C as Mt, e as Lt, c as At, i as Dt, u as Ot } from "./index-CKNB7XsA.mjs";
4
- import { u as H, m as z, a as qe, i as y } from "./CedrosContext-BlArEF7k.mjs";
5
- import { f as zt, C as Kt, e as Qt, d as $t, E as Ft, K as Gt, L as jt, h as Ut, R as Yt, g as Vt, b as Ht, j as Jt, c as Xt, r as Zt, v as er, n as tr } from "./CedrosContext-BlArEF7k.mjs";
6
- import { C as nr, u as ar } from "./CryptoButton-CREryx1l.mjs";
1
+ import { O as ke, q as ve, n as fe, s as Be, o as me, p as Ie, r as ye, t as V, V as _e, W as We } from "./styles-Ag-7ZvAB.mjs";
2
+ import { C as Ue, a as Ye, b as Ve, c as He, d as Je, P as Xe, e as Ze, f as et, g as tt, R as rt, S as nt, h as at, i as st, j as ot, k as it, l as ct, m as lt, u as ut, v as dt, w as pt, x as ft, y as mt, z as yt, A as gt, B as bt, D as St, E as wt, F as ht, G as Ct, H as xt, I as Pt, J as Et, K as Rt, L as Tt, M as kt, N as vt, Q as Bt } from "./styles-Ag-7ZvAB.mjs";
3
+ import { C as _t, a as Wt, b as qt, c as Mt, d as Lt, e as At, i as Dt, u as Ot } from "./index-BHF82XBB.mjs";
4
+ import { u as H, m as z, j as qe, i as y } from "./CedrosContext-DQUbL8yP.mjs";
5
+ import { C as zt, a as Kt, b as Qt, c as $t, E as Ft, K as Gt, L as jt, d as Ut, R as Yt, e as Vt, f as Ht, g as Jt, h as Xt, r as Zt, v as er, n as tr } from "./CedrosContext-DQUbL8yP.mjs";
6
+ import { C as nr, u as ar } from "./CryptoButton-D1BCZBk4.mjs";
7
7
  import { jsxs as K, jsx as x } from "react/jsx-runtime";
8
8
  import { useState as B, useRef as N, useCallback as h, useMemo as G, useEffect as Q } from "react";
9
9
  import { useWallet as J } from "@solana/wallet-adapter-react";
10
10
  import { WalletReadyState as ge } from "@solana/wallet-adapter-base";
11
11
  import { WalletIcon as Me } from "@solana/wallet-adapter-react-ui";
12
- import { WalletPool as or, createWalletPool as ir } from "./walletPool-DgQsh7Se.mjs";
12
+ import { WalletPool as or, createWalletPool as ir } from "./walletPool-C_0P4mTw.mjs";
13
13
  function Le() {
14
14
  const { subscriptionManager: r, x402Manager: c, walletManager: f } = H(), { publicKey: i, signTransaction: R } = J(), [S, p] = B({
15
15
  status: "idle",