@flopay/shared 1.10.6 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -235,7 +235,9 @@ try {
235
235
  | `ProcessPaymentParams` | `sessionId`, `nonce` (required session-bound checkout token), `tokenizedData?`, `accountData`, `chv?` |
236
236
  | `PaymentMethodRemovalError` | Merchant-server saved-method removal union: an indistinguishable `404 payment_method_not_found`, three stable `409` conflict codes, and a retry-safe `502 payment_method_deletion_failed` |
237
237
  | `CreateCardSetupSessionRequest` | Body a merchant server sends to the authenticated `POST /v1/checkouts/sessions/setup` route: `userId` (an existing FloPay customer), `successUrl?`, `cancelUrl?`, and independent, nullable transaction context: `country?` (ISO 3166-1 alpha-2), `currency?` (three letters; a supplied value becomes the setup session's currency), and `futureUse?` (`CardSetupFutureUse`). The context needs billing API v1.9.48+, and older billing APIs silently ignore it. Type-only: no FloPay package sends this request, and the billing API owns normalization, validation, defaults, and gateway routing. |
238
- | `CardSetupFutureUse` | `'on_session'` / `'off_session'`. Omitting `futureUse` means `'off_session'`; send `'on_session'` only for a card charged only while the customer is present. |
238
+ | `CardSetupFutureUse` | `'on_session'` / `'off_session'`. Future use is platform policy: the billing API sets every Stripe attempt up `'off_session'`. `CreateCardSetupSessionRequest.futureUse` is **deprecated**: it is still accepted so existing requests keep working, but the billing API ignores it, so leave it out of new code. |
239
+ | `FutureUseUnsupportedMethod` | `{ paymentMethodType, reason }`: a method the billing API cannot set up for future use. A session read lists these on the checkout session, and that method declares no future use. |
240
+ | `resolveSetupFutureUsage(session, methods, surface)` | The one place every Stripe Elements group gets its `setupFutureUsage`: the read's `futureUse` exactly, or none for a method listed in `futureUseUnsupported`. A read without `futureUse` (an older billing API) keeps each surface's previous value. It never chooses a usage of its own. |
239
241
  | `CreateCustomerParams` | `email`, `name?`, `metadata?` |
240
242
  | `UpdateCustomerParams` | `email?`, `name?`, `metadata?` |
241
243
  | `WebhookEvent` | `id`, `type`, `data`, `created` |
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var cr=Object.create;var T=Object.defineProperty;var lr=Object.getOwnPropertyDescriptor;var pr=Object.getOwnPropertyNames;var mr=Object.getPrototypeOf,yr=Object.prototype.hasOwnProperty;var gr=(e,t)=>{for(var r in t)T(e,r,{get:t[r],enumerable:!0})},be=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of pr(t))!yr.call(e,n)&&n!==r&&T(e,n,{get:()=>t[n],enumerable:!(o=lr(t,n))||o.enumerable});return e};var Er=(e,t,r)=>(r=e!=null?cr(mr(e)):{},be(t||!e||!e.__esModule?T(r,"default",{value:e,enumerable:!0}):r,e)),fr=e=>be(T({},"__esModule",{value:!0}),e);var Lo={};gr(Lo,{ASYNC_AUTO_CHECKOUT_CAPABILITY:()=>ze,BILLING_API_URL:()=>Xe,BILLING_API_URL_PRODUCTION:()=>G,BILLING_API_URL_STAGING:()=>E,BOLD_DARK_APPEARANCE:()=>q,BOLD_LIGHT_APPEARANCE:()=>H,BUTTONS_LAYOUT_BOLD_DARK:()=>F,BUTTONS_LAYOUT_BOLD_LIGHT:()=>_,BUTTONS_LAYOUT_DARK:()=>J,BUTTONS_LAYOUT_DEFAULT:()=>Z,BUTTONS_LAYOUT_GLASS_DARK:()=>I,BUTTONS_LAYOUT_GLASS_LIGHT:()=>P,BUTTONS_LAYOUT_MINIMAL:()=>$,BUTTONS_LAYOUT_MODERN_DARK:()=>A,BUTTONS_LAYOUT_MODERN_LIGHT:()=>x,BUTTONS_LAYOUT_ROUNDED:()=>X,CA_PROVINCES:()=>se,CHECKOUT_PROCESSING_TIMEOUT_MESSAGE:()=>Ze,COUNTRY_OPTIONS:()=>ne,CURRENCY_MAP:()=>R,DEFAULT_API_BASE_URL:()=>$e,DEFAULT_API_VERSION:()=>Qe,DEFAULT_APPEARANCE:()=>Y,DEFAULT_CURRENCY:()=>M,FLAT_APPEARANCE:()=>et,FLO_INSTRUMENT_CATALOG:()=>Rt,FLO_INSTRUMENT_SCHEMA_VERSION:()=>It,FLO_SDK_CAPABILITIES_HEADER:()=>Ke,FLO_SDK_VERSION_HEADER:()=>Ye,FloPayError:()=>u,GLASS_DARK_APPEARANCE:()=>j,GLASS_LIGHT_APPEARANCE:()=>W,IDEMPOTENCY_IN_PROGRESS_CODE:()=>Ft,IDEMPOTENCY_KEY_HEADER:()=>_t,MAX_IDEMPOTENCY_KEY_LENGTH:()=>k,MODERN_DARK_APPEARANCE:()=>z,MODERN_LIGHT_APPEARANCE:()=>K,NIGHT_APPEARANCE:()=>tt,PAYPAL_VAULTED_PAYMENT_METHOD_TYPE:()=>qe,SAVED_PAYMENT_METHOD_FAMILIES:()=>Dt,SAVED_PAYMENT_METHOD_LIST_TYPES:()=>Ut,SAVED_PAYMENT_METHOD_TYPES:()=>Bt,SDK_VERSION:()=>Ge,STORED_PAYMENT_METHOD_UNSUPPORTED_CODE:()=>We,STORED_PAYMENT_METHOD_UNSUPPORTED_MESSAGE:()=>je,STRIPE_EXPRESS_METHODS:()=>ee,STRIPE_METHOD_AMOUNT_LIMITS:()=>oe,STRIPE_METHOD_COUNTRIES:()=>re,STRIPE_METHOD_CURRENCIES:()=>te,STRIPE_METHOD_MATRIX:()=>y,SUPPORTED_CARD_BRANDS:()=>yt,TELEMETRY_ERROR_CODES:()=>le,TELEMETRY_FAILURE_CATEGORIES:()=>pe,TELEMETRY_LOG_NAMES:()=>me,TELEMETRY_MAX_BATCH_BYTES:()=>Kt,TELEMETRY_MAX_BATCH_EVENTS:()=>zt,TELEMETRY_SCHEMA_VERSION:()=>Yt,TELEMETRY_SDK_PACKAGES:()=>ce,THEMES:()=>Q,THREE_DS_CHALLENGE_WINDOW_MS:()=>He,US_STATES:()=>ie,UUID_V4:()=>B,apiError:()=>Fe,assertCaptureMethodEligible:()=>Me,authenticationError:()=>Pe,buildCheckoutDisplayData:()=>ht,buildItemPayload:()=>Oe,buildProductPayload:()=>Ne,buildSubscriptionPayload:()=>Le,buildTelemetryErrorEvent:()=>ge,buildTelemetryLogEvent:()=>Ee,buildTelemetryPerformanceEvent:()=>Ce,buildTelemetryTerminalEvent:()=>fe,classifyPaymentRejection:()=>jt,classifyTelemetryFailure:()=>Zt,configureFlopay:()=>ve,dropThirdPartyOnlyError:()=>Gt,filterStripeMethodsByAmount:()=>pt,filterStripeMethodsByCountry:()=>lt,filterStripeMethodsByCurrency:()=>ct,foldIntoProducts:()=>w,generateIdempotencyKey:()=>ue,getConfiguredBillingApiUrl:()=>h,getCountryByCode:()=>ft,getCurrencyByCountry:()=>Qt,getFloPayEnvironment:()=>De,getPostalCodeExample:()=>vt,getPostalCodeLabel:()=>gt,getStateFromPostalCode:()=>Mt,getStateLabel:()=>bt,getStateOptions:()=>St,getStripeMethodDisplayName:()=>st,hasVendoredStripeMethodLogo:()=>it,isAVSEnabled:()=>Tt,isAVSFieldVisible:()=>Ct,isAuthorizationOnlySession:()=>he,isCardHolderNamePlaceholder:()=>or,isCardSetupCheckoutSession:()=>S,isDetachedSessionEligible:()=>ke,isMoneySettledOutcome:()=>xe,isPostalCodeSupported:()=>Ot,isSetupCheckoutSession:()=>wt,isSetupIntentClientSecret:()=>rr,isUuidV4:()=>Xt,isValidEmail:()=>At,isValidPostalCode:()=>Lt,isValidPublishableKey:()=>er,isValidSecretKey:()=>tr,needsStripeMethodExplicitConfirm:()=>ut,networkError:()=>Re,normalizeCheckoutFailureOutcome:()=>Ae,normalizeGatewayEnvironment:()=>$t,partitionStripeMethods:()=>mt,randomUuidV4:()=>Jt,rateLimitError:()=>Ie,resolveAVSConfig:()=>ae,resolveBillingApiUrl:()=>Je,resolveButtonsLayoutTheme:()=>rt,resolveIdempotencyKey:()=>Pt,resolveSessionCurrency:()=>b,resolveStripeMethodBrandVariant:()=>dt,resolveTheme:()=>ot,serializeTelemetryBatch:()=>Wt,stripeExpressMethodToOptionKey:()=>nt,telemetryStatusClass:()=>D,validationError:()=>_e});module.exports=fr(Lo);function S(e){return e.checkoutMode==="setup"&&e.amount===0&&(e.products?.length??0)===0}function he(e){return e?.captureMethod==="manual"}function xe(e,t){return e==="requires_capture"?t!=="manual":e==="succeeded"||e==="complete"||e==="completed"||e==="captured"||e==="paid"}function Ae(e){if(typeof e!="string"||e.length===0)return;let t=e.trim().toLowerCase().replace(/[\s-]+/g,"_");if(t==="capture_failed"||t.includes("capture")&&(t.includes("fail")||t.includes("error")))return"capture_failed";if(t==="authorization_expired"||t.includes("expired")||t.includes("expiry"))return"authorization_expired";if(t==="authentication_required"||t.includes("3ds")||t.includes("three_d")||t.includes("authentication")||t.includes("action_required"))return"authentication_required";if(t==="authorization_declined"||t.includes("declin")||t.includes("authorization_fail"))return"authorization_declined"}var u=class extends Error{constructor(t,r,o){super(t),this.name="FloPayError",this.type=r,this.code=o?.code,this.declineCode=o?.declineCode,this.param=o?.param,this.statusCode=o?.statusCode,o?.details!==void 0&&(this.details=o.details),o?.sessionId!==void 0&&(this.sessionId=o.sessionId),o?.cause!==void 0&&(this.cause=o.cause),Object.setPrototypeOf(this,new.target.prototype)}};function _e(e,t){return new u(e,"validation_error",{param:t})}function Fe(e,t,r){return new u(e,"api_error",{code:t,statusCode:r})}function Pe(e){return new u(e,"authentication_error")}function Ie(e){return new u(e,"rate_limit_error")}function Re(e){return new u(e,"network_error")}function Me(e){if(!(e.captureMethod!=="manual"||!(e.products??w(e.items,e.subscriptions)).some(r=>r.type==="subscription")))throw new u("Manual capture is not supported for subscription products.","validation_error",{code:"CaptureMethodUnsupportedForSubscription",param:"captureMethod"})}function ke(e){return e.deferDataAttachment!==!1&&(e.checkoutMode??"full")==="full"&&!e.tokenizedData}function a(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function b(e,t,r,o){let n=a(e);if(n)return n;for(let i of t??[]){let d=a(i.currency);if(d)return d}for(let i of r??[]){let d=a(i.currency);if(d)return d}for(let i of o??[]){let d=a(i.currency);if(d)return d}return null}function w(e,t){let r=[];for(let o of t??[])r.push({type:"subscription",code:a(o.code)??a(o.providerPlanId),providerPlanId:o.providerPlanId,name:a(o.subscriptionName)??a(o.providerPlanName)??null,subscriptionName:o.subscriptionName??null,providerPlanName:o.providerPlanName??null,quantity:o.quantity,totalAmount:o.totalAmount,overrideAmount:o.overrideAmount,currency:o.currency,metadata:o.metadata});for(let o of e??[])r.push({type:"item",code:a(o.code)??a(o.providerItemId),providerItemId:o.providerItemId,name:a(o.itemName)??a(o.providerItemName)??null,itemName:o.itemName??null,providerItemName:o.providerItemName??null,quantity:o.quantity,totalAmount:o.totalAmount,overrideAmount:o.overrideAmount,currency:o.currency,metadata:o.metadata});return r}function Ne(e,t){let r=a(e.code)??a(e.providerItemId)??a(e.providerPlanId);if(!r)throw new Error("CheckoutProduct requires `code` (or the deprecated `providerItemId` / `providerPlanId`).");let o=a(e.name)??a(e.itemName)??a(e.providerItemName)??a(e.subscriptionName)??a(e.providerPlanName)??null,n={type:e.type,code:r,name:o,quantity:e.quantity??1,totalAmount:e.totalAmount,overrideAmount:e.overrideAmount??null,currency:a(e.currency)??t};return e.metadata&&(n.metadata=e.metadata),n}function Oe(e,t){let r=a(e.code)??a(e.providerItemId);if(!r)throw new Error("CheckoutItem requires either `code` or the deprecated `providerItemId`.");let o=a(e.itemName)??a(e.providerItemName)??null,n={code:r,providerItemId:a(e.providerItemId)??r,itemName:o,providerItemName:a(e.providerItemName)??o,quantity:e.quantity??1,totalAmount:e.totalAmount,overrideAmount:e.overrideAmount??null,currency:a(e.currency)??t};return e.metadata&&(n.metadata=e.metadata),n}function Le(e,t){let r=a(e.code)??a(e.providerPlanId);if(!r)throw new Error("CheckoutSubscription requires either `code` or the deprecated `providerPlanId`.");let o=a(e.subscriptionName)??a(e.providerPlanName)??null,n={code:r,providerPlanId:a(e.providerPlanId)??r,subscriptionName:o,providerPlanName:a(e.providerPlanName)??o,quantity:e.quantity??1,totalAmount:e.totalAmount,overrideAmount:e.overrideAmount??null,currency:a(e.currency)??t};return e.metadata&&(n.metadata=e.metadata),n}var Cr={local:"https://flo.ngrok.pro",staging:"https://api.stage.flopay.com",production:"https://api.flopay.com"},V="staging";function ve(e){V=e.environment}function h(){return Cr[V]}function De(){return V}var Be=["alipay","bancontact","blik","eps","giropay","ideal","klarna","p24","sepa_debit","wechat_pay"];var Ge="1.10.6",Ye="x-flo-sdk-version",Ke="x-flo-sdk-capabilities",ze="async-auto-checkout-v1",He=3e5,qe="paypal_vaulted",We="stored_payment_method_unsupported",je="This saved payment method can\u2019t be used for this payment. Choose another payment method.",Ze="We\u2019re still confirming your payment. Please don\u2019t pay again.",E="https://api.stage.flopay.com",G="https://api.flopay.com",$e=E,Xe=E;function Je(e){return e||(typeof process<"u"&&process.env?.NEXT_PUBLIC_FLOPAY_ENV?process.env.NEXT_PUBLIC_FLOPAY_ENV==="production"?G:E:h())}var Qe="2024-01-01",Y={theme:"default",variables:{colorPrimary:"#4A49FF",colorBackground:"#FFFFFF",colorText:"#262833",colorDanger:"#DF1B41",borderRadius:"8px",fontFamily:"Poppins, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"4px"}},et={theme:"flat",variables:{...Y.variables,borderRadius:"4px"}},tt={theme:"night",variables:{colorPrimary:"#7B7BFF",colorBackground:"#1A1A2E",colorText:"#E0E0E0",colorDanger:"#FF6B6B",borderRadius:"8px",fontFamily:"Poppins, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"4px"}},K={theme:"default",variables:{colorPrimary:"#1785E0",colorBackground:"#FFFFFF",colorText:"#0F172A",colorDanger:"#EF4444",borderRadius:"12px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"15px",spacingUnit:"5px"},rules:{".Input":{padding:"14px 16px",border:"1.5px solid #E5E7EB",boxShadow:"0 1px 2px rgba(15,23,42,0.04)"},".Input:focus":{borderColor:"#1785E0",boxShadow:"0 0 0 4px rgba(23,133,224,0.12)"},".Label":{fontWeight:"500",color:"#475569",marginBottom:"6px"},".Tab":{padding:"12px 16px",borderRadius:"12px",border:"1.5px solid #E5E7EB"},".Tab:hover":{borderColor:"#CBD5E1"},".Tab--selected":{borderColor:"#1785E0",boxShadow:"0 0 0 1px #1785E0"}}},z={theme:"night",variables:{colorPrimary:"#60A5FA",colorBackground:"#0B1220",colorText:"#F1F5F9",colorDanger:"#F87171",borderRadius:"12px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"15px",spacingUnit:"5px"},rules:{".Input":{backgroundColor:"#111827",padding:"14px 16px",border:"1.5px solid #1F2937",color:"#F1F5F9",boxShadow:"none"},".Input:focus":{borderColor:"#60A5FA",boxShadow:"0 0 0 4px rgba(96,165,250,0.18)"},".Label":{fontWeight:"500",color:"#94A3B8",marginBottom:"6px"},".Tab":{padding:"12px 16px",borderRadius:"12px",border:"1.5px solid #1F2937",backgroundColor:"#111827",color:"#F1F5F9"},".Tab:hover":{borderColor:"#374151"},".Tab--selected":{borderColor:"#60A5FA",boxShadow:"0 0 0 1px #60A5FA"}}},H={theme:"default",variables:{colorPrimary:"#1785E0",colorBackground:"#FFFFFF",colorText:"#0C2B4D",colorDanger:"#DC2626",borderRadius:"12px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"5px"},rules:{".Input":{padding:"14px 16px",border:"2px solid #E5E7EB"},".Input:focus":{borderColor:"#1785E0",boxShadow:"0 0 0 3px rgba(23,133,224,0.2)"},".Label":{fontWeight:"600",color:"#0C2B4D"},".Tab":{padding:"14px 18px",border:"2px solid #E5E7EB",fontWeight:"600"},".Tab--selected":{borderColor:"#1785E0",boxShadow:"0 0 0 1px #1785E0"}}},q={theme:"night",variables:{colorPrimary:"#60A5FA",colorBackground:"#0C2B4D",colorText:"#FFFFFF",colorDanger:"#F87171",borderRadius:"12px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"5px"},rules:{".Input":{backgroundColor:"#1E3A8A",padding:"14px 16px",border:"2px solid #1E40AF",color:"#FFFFFF"},".Input:focus":{borderColor:"#60A5FA",boxShadow:"0 0 0 3px rgba(96,165,250,0.25)"},".Label":{fontWeight:"600",color:"#DBEAFE"},".Tab":{padding:"14px 18px",border:"2px solid #1E40AF",backgroundColor:"#1E3A8A",color:"#FFFFFF",fontWeight:"600"},".Tab--selected":{borderColor:"#60A5FA",boxShadow:"0 0 0 1px #60A5FA"}}},W={theme:"default",variables:{colorPrimary:"#1785E0",colorBackground:"#FFFFFF",colorText:"#1E293B",colorDanger:"#EF4444",borderRadius:"16px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"15px",spacingUnit:"5px"},rules:{".Input":{backgroundColor:"rgba(255,255,255,0.6)",backdropFilter:"blur(10px)",padding:"14px 16px",border:"1px solid rgba(255,255,255,0.6)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.5), 0 1px 3px rgba(23,133,224,0.08)"},".Input:focus":{borderColor:"rgba(23,133,224,0.5)",boxShadow:"0 0 0 3px rgba(23,133,224,0.15)"},".Label":{fontWeight:"500",color:"#475569"},".Tab":{padding:"12px 16px",backgroundColor:"rgba(255,255,255,0.5)",border:"1px solid rgba(255,255,255,0.6)",borderRadius:"14px"},".Tab--selected":{borderColor:"rgba(23,133,224,0.6)",boxShadow:"0 0 0 1px rgba(23,133,224,0.6)"}}},j={theme:"night",variables:{colorPrimary:"#60A5FA",colorBackground:"#0F172A",colorText:"#F1F5F9",colorDanger:"#F87171",borderRadius:"16px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"15px",spacingUnit:"5px"},rules:{".Input":{backgroundColor:"rgba(15,23,42,0.6)",backdropFilter:"blur(10px)",padding:"14px 16px",border:"1px solid rgba(255,255,255,0.08)",color:"#F1F5F9"},".Input:focus":{borderColor:"rgba(96,165,250,0.5)",boxShadow:"0 0 0 3px rgba(96,165,250,0.2)"},".Label":{fontWeight:"500",color:"#94A3B8"},".Tab":{padding:"12px 16px",backgroundColor:"rgba(15,23,42,0.6)",border:"1px solid rgba(255,255,255,0.08)",borderRadius:"14px",color:"#F1F5F9"},".Tab--selected":{borderColor:"rgba(96,165,250,0.6)",boxShadow:"0 0 0 1px rgba(96,165,250,0.6)"}}},Z={},$={cardButton:{border:"none",backgroundColor:"#f9fafb",boxShadow:"none"},cardFormContainer:{backgroundColor:"#f9fafb",border:"none"},cardInputBorder:"#e5e7eb",backButtonIcon:{backgroundColor:"#e5e7eb"},submitButton:{borderRadius:"6px"}},X={cardButton:{borderRadius:"9999px",border:"1px solid #e5e7eb",boxShadow:"0 1px 3px rgba(0,0,0,0.06)"},cardFormContainer:{borderRadius:"16px",border:"1px solid #e5e7eb",boxShadow:"0 2px 8px rgba(0,0,0,0.06)"},cardInputBorder:"#d1d5db",submitButton:{borderRadius:"9999px"},backButtonIcon:{backgroundColor:"#f3f4f6"}},J={cardButton:{backgroundColor:"#1f2937",color:"#f9fafb",border:"1px solid #374151",boxShadow:"none"},cardFormContainer:{backgroundColor:"#111827",border:"1px solid #374151"},cardInputBorder:"#4b5563",cardInputColor:"#f9fafb",cardInputPlaceholderColor:"#6b7280",cardInputBackground:"#1f2937",nameInput:{backgroundColor:"#1f2937",color:"#f9fafb"},backButton:{color:"#9ca3af"},backButtonIcon:{backgroundColor:"#374151"},submitButton:{backgroundColor:"#6366f1"},title:{color:"#f9fafb"},countrySelect:{backgroundColor:"#1f2937",color:"#f9fafb"},zipInput:{backgroundColor:"#1f2937",color:"#f9fafb"}},x={cardFormContainer:{backgroundColor:"#FAFAFA",borderRadius:"20px",border:"1px solid #E5E7EB",boxShadow:"0 8px 24px rgba(15,23,42,0.04)",padding:"24px"},cardButton:{backgroundColor:"#FFFFFF",borderRadius:"14px",border:"1.5px solid #E5E7EB",boxShadow:"0 1px 2px rgba(15,23,42,0.04)",padding:"14px 18px"},cardInputBorder:"#E5E7EB",nameInput:{backgroundColor:"#FFFFFF",border:"1.5px solid #E5E7EB",borderRadius:"14px",padding:"14px 16px"},submitButton:{backgroundColor:"#1785E0",borderRadius:"14px",padding:"16px 24px",boxShadow:"0 4px 14px rgba(23,133,224,0.25)",fontWeight:"600"},title:{color:"#0F172A",fontWeight:"600"},titleFontSize:"20px",backButton:{color:"#64748B"},backButtonIcon:{backgroundColor:"#F1F5F9"}},A={cardFormContainer:{backgroundColor:"#111827",borderRadius:"20px",border:"1px solid #1F2937",boxShadow:"0 8px 24px rgba(0,0,0,0.2)",padding:"24px"},cardButton:{backgroundColor:"#0B1220",borderRadius:"14px",border:"1.5px solid #1F2937",color:"#F1F5F9",padding:"14px 18px"},cardInputBorder:"#1F2937",cardInputBackground:"#111827",cardInputColor:"#F1F5F9",cardInputPlaceholderColor:"#64748B",nameInput:{backgroundColor:"#111827",border:"1.5px solid #1F2937",borderRadius:"14px",padding:"14px 16px",color:"#F1F5F9"},submitButton:{backgroundColor:"#60A5FA",borderRadius:"14px",padding:"16px 24px",boxShadow:"0 4px 14px rgba(96,165,250,0.3)",fontWeight:"600",color:"#0B1220"},title:{color:"#F1F5F9",fontWeight:"600"},titleFontSize:"20px",backButton:{color:"#94A3B8"},backButtonIcon:{backgroundColor:"#1F2937"},countrySelect:{backgroundColor:"#111827",color:"#F1F5F9"},zipInput:{backgroundColor:"#111827",color:"#F1F5F9"}},_={cardFormContainer:{backgroundColor:"#EFF6FF",borderRadius:"20px",border:"2px solid #1785E0",padding:"24px"},cardButton:{backgroundColor:"#FFFFFF",borderRadius:"12px",border:"2px solid #1785E0",color:"#1785E0",fontWeight:"700",padding:"14px 18px"},cardInputBorder:"#E5E7EB",nameInput:{backgroundColor:"#FFFFFF",border:"2px solid #E5E7EB",borderRadius:"12px",padding:"14px 16px",fontWeight:"500"},submitButton:{background:"linear-gradient(135deg, #1785E0 0%, #0EA5E9 100%)",borderRadius:"9999px",padding:"16px 24px",boxShadow:"0 10px 25px rgba(23,133,224,0.35)",fontWeight:"700",color:"#FFFFFF",border:"none"},submitButtonFontSize:"17px",title:{color:"#0C2B4D",fontWeight:"800",letterSpacing:"-0.02em"},titleFontSize:"22px",backButton:{color:"#1785E0",fontWeight:"600"},backButtonIcon:{backgroundColor:"#DBEAFE"}},F={cardFormContainer:{backgroundColor:"#1E3A8A",borderRadius:"20px",border:"2px solid #60A5FA",padding:"24px"},cardButton:{backgroundColor:"#0C2B4D",borderRadius:"12px",border:"2px solid #60A5FA",color:"#60A5FA",fontWeight:"700",padding:"14px 18px"},cardInputBorder:"#1E40AF",cardInputBackground:"#1E3A8A",cardInputColor:"#FFFFFF",cardInputPlaceholderColor:"#60A5FA",nameInput:{backgroundColor:"#1E3A8A",border:"2px solid #1E40AF",borderRadius:"12px",padding:"14px 16px",fontWeight:"500",color:"#FFFFFF"},submitButton:{background:"linear-gradient(135deg, #60A5FA 0%, #38BDF8 100%)",borderRadius:"9999px",padding:"16px 24px",boxShadow:"0 10px 25px rgba(96,165,250,0.35)",fontWeight:"700",color:"#FFFFFF",border:"none"},submitButtonFontSize:"17px",title:{color:"#FFFFFF",fontWeight:"800",letterSpacing:"-0.02em"},titleFontSize:"22px",backButton:{color:"#DBEAFE",fontWeight:"600"},backButtonIcon:{backgroundColor:"#1E40AF"},countrySelect:{backgroundColor:"#1E3A8A",color:"#FFFFFF"},zipInput:{backgroundColor:"#1E3A8A",color:"#FFFFFF"}},P={cardFormContainer:{background:"linear-gradient(135deg, #DBEAFE 0%, #BFDBFE 100%)",borderRadius:"24px",border:"1px solid rgba(255,255,255,0.6)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.6), 0 12px 40px rgba(23,133,224,0.15)",padding:"28px"},cardButton:{backgroundColor:"rgba(255,255,255,0.7)",backdropFilter:"blur(20px)",borderRadius:"16px",border:"1px solid rgba(255,255,255,0.6)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.5), 0 4px 16px rgba(23,133,224,0.1)",padding:"14px 18px"},cardInputBorder:"rgba(255,255,255,0.6)",nameInput:{backgroundColor:"rgba(255,255,255,0.6)",backdropFilter:"blur(10px)",border:"1px solid rgba(255,255,255,0.6)",borderRadius:"14px",padding:"14px 16px"},submitButton:{backgroundColor:"rgba(23,133,224,0.95)",backdropFilter:"blur(10px)",borderRadius:"16px",padding:"16px 24px",boxShadow:"0 10px 30px rgba(23,133,224,0.3), inset 0 1px 0 rgba(255,255,255,0.2)",fontWeight:"600",color:"#FFFFFF"},title:{color:"#1E293B",fontWeight:"600",letterSpacing:"-0.01em"},titleFontSize:"20px",backButton:{color:"#1785E0",fontWeight:"500"},backButtonIcon:{backgroundColor:"rgba(255,255,255,0.7)"}},I={cardFormContainer:{background:"linear-gradient(135deg, #0C2B4D 0%, #0F172A 100%)",borderRadius:"24px",border:"1px solid rgba(255,255,255,0.08)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.06), 0 20px 50px rgba(0,0,0,0.4)",padding:"28px"},cardButton:{backgroundColor:"rgba(15,23,42,0.6)",backdropFilter:"blur(20px)",borderRadius:"16px",border:"1px solid rgba(255,255,255,0.08)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.05), 0 4px 16px rgba(0,0,0,0.3)",padding:"14px 18px",color:"#F1F5F9"},cardInputBorder:"rgba(255,255,255,0.08)",cardInputBackground:"rgba(15,23,42,0.6)",cardInputColor:"#F1F5F9",cardInputPlaceholderColor:"#64748B",nameInput:{backgroundColor:"rgba(15,23,42,0.6)",backdropFilter:"blur(10px)",border:"1px solid rgba(255,255,255,0.08)",borderRadius:"14px",padding:"14px 16px",color:"#F1F5F9"},submitButton:{backgroundColor:"rgba(96,165,250,0.9)",backdropFilter:"blur(10px)",borderRadius:"16px",padding:"16px 24px",boxShadow:"0 10px 30px rgba(96,165,250,0.35), inset 0 1px 0 rgba(255,255,255,0.15)",fontWeight:"600",color:"#0F172A"},title:{color:"#F1F5F9",fontWeight:"600",letterSpacing:"-0.01em"},titleFontSize:"20px",backButton:{color:"#60A5FA",fontWeight:"500"},backButtonIcon:{backgroundColor:"rgba(255,255,255,0.08)"},countrySelect:{backgroundColor:"rgba(15,23,42,0.6)",color:"#F1F5F9"},zipInput:{backgroundColor:"rgba(15,23,42,0.6)",color:"#F1F5F9"}};function rt(e){switch(e){case"minimal":return $;case"rounded":return X;case"dark":return J;case"modern-light":return x;case"modern-dark":return A;case"bold-light":return _;case"bold-dark":return F;case"glass-light":return P;case"glass-dark":return I;default:return Z}}var Q={"modern-light":{appearance:K,buttonsLayout:x},"modern-dark":{appearance:z,buttonsLayout:A},"bold-light":{appearance:H,buttonsLayout:_},"bold-dark":{appearance:q,buttonsLayout:F},"glass-light":{appearance:W,buttonsLayout:P},"glass-dark":{appearance:j,buttonsLayout:I}};function ot(e){if(!(!e||e==="classic"))return Q[e]}function nt(e){switch(e){case"apple_pay":return"applePay";case"google_pay":return"googlePay";case"amazon_pay":return"amazonPay";default:return e}}function Tr(e,t,r){return`<svg viewBox="0 0 22 22"><circle cx="11" cy="11" r="11" fill="${t}"/><text x="11" y="15.5" text-anchor="middle" font-size="13" font-weight="700" font-family="sans-serif" fill="${r}">${e}</text></svg>`}function Ue(e,t){return`<svg viewBox="0 0 22 22"><circle cx="11" cy="11" r="11" fill="${e}"/><g fill="${t}"><path d="M11 4 L17.5 8 L4.5 8 Z"/><rect x="5" y="8.4" width="12" height="1.2" rx="0.3"/><rect x="5.9" y="10" width="1.5" height="5"/><rect x="8.55" y="10" width="1.5" height="5"/><rect x="11.95" y="10" width="1.5" height="5"/><rect x="14.6" y="10" width="1.5" height="5"/><rect x="4.6" y="15.4" width="12.8" height="1.5" rx="0.3"/></g></svg>`}function we(e,t,r,o=t){return{backgroundColor:t,borderColor:t,textColor:r,logoSvg:Tr(e,r,o)}}function c(e,t,r,o=t,n=r,i=o){return{light:we(e,t,r),dark:we(e,o,n,i)}}var at=["AT","BE","BG","CY","CZ","DE","DK","EE","ES","FI","FR","GR","HR","HU","IE","IT","LT","LU","LV","MT","NL","PL","PT","RO","SE","SI","SK","IS","LI","NO","CH","GB","MC","SM","AD","VA"],Sr=[...at,"JP","MX","US"],y={apple_pay:{displayName:"Apple Pay",currencies:["*"],express:!0,needsExplicitConfirm:!1},google_pay:{displayName:"Google Pay",currencies:["*"],express:!0,needsExplicitConfirm:!1},paypal:{displayName:"PayPal",currencies:["eur","gbp","usd","cad","aud","nzd","chf","jpy","pln","sek","nok","dkk","czk","huf"],express:!0,needsExplicitConfirm:!1},link:{displayName:"Link",currencies:["usd","eur"],express:!0,needsExplicitConfirm:!1},amazon_pay:{displayName:"Amazon Pay",currencies:["usd","eur","gbp"],express:!0,needsExplicitConfirm:!1},klarna:{displayName:"Klarna",currencies:["usd","eur","gbp","aud","nzd","cad","chf","sek","nok","dkk","pln","czk","ron"],amounts:{usd:{min:100},eur:{min:100},gbp:{min:100}},theme:c("K","#FFB3C7","#0A0B09")},affirm:{displayName:"Affirm",currencies:["usd"],countries:["US","CA"],amounts:{usd:{min:3500,max:3e6}},needsExplicitConfirm:!1,theme:c("a","#060F33","#FFFFFF","#0FA0EA","#060F33","#FFFFFF")},cashapp:{displayName:"Cash App Pay",currencies:["usd"],countries:["US"],amounts:{usd:{min:50,max:99999999}},needsExplicitConfirm:!1,theme:c("$","#00D54B","#0A1F0E")},samsung_pay:{displayName:"Samsung Pay",currencies:["krw"],countries:["KR"],needsExplicitConfirm:!1},afterpay_clearpay:{displayName:"Afterpay",currencies:["usd","aud","cad","gbp","nzd"],countries:["US","CA","GB","AU","NZ"],amounts:{usd:{min:100,max:2e5},cad:{min:100,max:2e5},gbp:{min:100,max:12e4},aud:{min:100,max:2e5},nzd:{min:100,max:2e5}},theme:c("A","#B2FCE4","#0A0B09")},alipay:{displayName:"Alipay",currencies:["usd","cny"],theme:c("A","#1677FF","#FFFFFF")},au_becs_debit:{displayName:"BECS Direct Debit",currencies:["aud"],countries:["AU"]},bacs_debit:{displayName:"Bacs Debit",currencies:["gbp"],countries:["GB"]},bancontact:{displayName:"Bancontact",currencies:["eur"],countries:["BE"],theme:c("B","#FFDD55","#1E3791","#1E3791","#FFDD55")},bizum:{displayName:"Bizum",currencies:["eur"],countries:["ES"],theme:c("B","#00BFB3","#FFFFFF")},blik:{displayName:"BLIK",currencies:["pln"],countries:["PL"],theme:c("B","#000000","#FFFFFF","#FFFFFF","#000000")},boleto:{displayName:"Boleto",currencies:["brl"],countries:["BR"]},customer_balance:{displayName:"Bank Transfer",currencies:["eur","usd"],countries:Sr,theme:{light:{backgroundColor:"#1F2937",textColor:"#FFFFFF",borderColor:"#1F2937",logoSvg:Ue("#1F2937","#FFFFFF")},dark:{backgroundColor:"#374151",textColor:"#FFFFFF",borderColor:"#374151",logoSvg:Ue("#374151","#FFFFFF")}}},eps:{displayName:"EPS",currencies:["eur"],countries:["AT"],theme:c("E","#C8102E","#FFFFFF")},giropay:{displayName:"Giropay",currencies:["eur"],countries:["DE"],theme:c("G","#0F4197","#FFFFFF")},ideal:{displayName:"iDEAL",currencies:["eur"],countries:["NL"],theme:c("i","#CC0066","#FFFFFF")},konbini:{displayName:"Konbini",currencies:["jpy"],countries:["JP"]},kr_card:{displayName:"Korean Card",currencies:["krw"],countries:["KR"],theme:c("K","#0B3D91","#FFFFFF")},multibanco:{displayName:"Multibanco",currencies:["eur"],countries:["PT"]},oxxo:{displayName:"OXXO",currencies:["mxn"],countries:["MX"]},p24:{displayName:"Przelewy24",currencies:["eur","pln"],countries:["PL"],theme:c("P","#D90F1B","#FFFFFF")},paynow:{displayName:"PayNow",currencies:["sgd"],countries:["SG"]},pix:{displayName:"Pix",currencies:["brl"],countries:["BR"]},promptpay:{displayName:"PromptPay",currencies:["thb"],countries:["TH"]},sepa_debit:{displayName:"SEPA Debit",currencies:["eur"],countries:at,theme:c("\u20AC","#10298E","#FFFFFF","#3056D3")},sofort:{displayName:"Sofort",currencies:["eur"],countries:["AT","BE","DE","ES","IT","NL"],theme:c("S","#EF809F","#FFFFFF")},upi:{displayName:"UPI",currencies:["inr"],countries:["IN"],theme:c("U","#FF7909","#FFFFFF")},us_bank_account:{displayName:"US Bank Account",currencies:["usd"],countries:["US"]},wechat_pay:{displayName:"WeChat Pay",currencies:["usd","cny"],theme:c("W","#07C160","#FFFFFF")},zip:{displayName:"Zip",currencies:["aud"],countries:["AU","NZ"]}};function it(e){return Be.includes(e)}var ee=Object.entries(y).filter(([,e])=>e.express).map(([e])=>e),br=new Set(ee),te=Object.fromEntries(Object.entries(y).map(([e,t])=>[e,t.currencies])),re=Object.fromEntries(Object.entries(y).filter(([,e])=>e.countries).map(([e,t])=>[e,t.countries]));function st(e){return e?y[e]?.displayName??e.split("_").filter(Boolean).map(t=>t[0].toUpperCase()+t.slice(1)).join(" "):"this method"}function ut(e){return y[e]?.needsExplicitConfirm!==!1}function dt(e,t){let r=y[e]?.theme;return r?(typeof t=="string"&&t.endsWith("-dark")?r.dark:r.light)??r.light??null:null}function ct(e,t){if(!e||e.length===0)return[];if(!t)return[...e];let r=t.trim().toLowerCase();return r?e.filter(o=>{let n=te[o];return n?n.includes("*")||n.includes(r):!0}):[...e]}function lt(e,t){if(!e||e.length===0)return[];if(!t)return[...e];let r=t.trim().toUpperCase();return r?e.filter(o=>{let n=re[o];return n?n.includes("*")||n.includes(r):!0}):[...e]}var oe=Object.fromEntries(Object.entries(y).filter(([,e])=>e.amounts).map(([e,t])=>[e,t.amounts]));function pt(e,t,r){if(!e||e.length===0)return[];if(!t||typeof r!="number"||!Number.isFinite(r))return[...e];let o=t.trim().toLowerCase();return o?e.filter(n=>{let i=oe[n];if(!i)return!0;let d=i[o];return d?!(typeof d.min=="number"&&r<d.min||typeof d.max=="number"&&r>d.max):!0}):[...e]}function mt(e,t){if(!e||e.length===0)return{expressMethods:[],paymentElementMethods:[]};let r=[],o=[],n=new Set,i=new Set;for(let d of e){if(typeof d!="string")continue;let p=d.trim();if(!(!p||p==="card")&&!(t?.excludePaypal&&p==="paypal"))if(br.has(p)){if(n.has(p))continue;n.add(p),r.push(p)}else{if(i.has(p))continue;i.add(p),o.push(p)}}return{expressMethods:r,paymentElementMethods:o}}var yt=["visa","mastercard","mastercard_debit","amex","discover"],R={AT:{currency:"EUR",symbol:"\u20AC",country:"Austria",countryCode:"AT",tax:1},BE:{currency:"EUR",symbol:"\u20AC",country:"Belgium",countryCode:"BE",tax:1},CY:{currency:"EUR",symbol:"\u20AC",country:"Cyprus",countryCode:"CY",tax:1},DE:{currency:"EUR",symbol:"\u20AC",country:"Germany",countryCode:"DE",tax:1},EE:{currency:"EUR",symbol:"\u20AC",country:"Estonia",countryCode:"EE",tax:1},ES:{currency:"EUR",symbol:"\u20AC",country:"Spain",countryCode:"ES",tax:1},FI:{currency:"EUR",symbol:"\u20AC",country:"Finland",countryCode:"FI",tax:1},FR:{currency:"EUR",symbol:"\u20AC",country:"France",countryCode:"FR",tax:1},GR:{currency:"EUR",symbol:"\u20AC",country:"Greece",countryCode:"GR",tax:1},HR:{currency:"EUR",symbol:"\u20AC",country:"Croatia",countryCode:"HR",tax:1},IE:{currency:"EUR",symbol:"\u20AC",country:"Ireland",countryCode:"IE",tax:1},IT:{currency:"EUR",symbol:"\u20AC",country:"Italy",countryCode:"IT",tax:1},LT:{currency:"EUR",symbol:"\u20AC",country:"Lithuania",countryCode:"LT",tax:1},LU:{currency:"EUR",symbol:"\u20AC",country:"Luxembourg",countryCode:"LU",tax:1},LV:{currency:"EUR",symbol:"\u20AC",country:"Latvia",countryCode:"LV",tax:1},MT:{currency:"EUR",symbol:"\u20AC",country:"Malta",countryCode:"MT",tax:1},NL:{currency:"EUR",symbol:"\u20AC",country:"Netherlands",countryCode:"NL",tax:1},PT:{currency:"EUR",symbol:"\u20AC",country:"Portugal",countryCode:"PT",tax:1},SI:{currency:"EUR",symbol:"\u20AC",country:"Slovenia",countryCode:"SI",tax:1},SK:{currency:"EUR",symbol:"\u20AC",country:"Slovakia",countryCode:"SK",tax:1},BG:{currency:"EUR",symbol:"\u20AC",country:"Bulgaria",countryCode:"BG",tax:1},RO:{currency:"EUR",symbol:"\u20AC",country:"Romania",countryCode:"RO",tax:1},CZ:{currency:"EUR",symbol:"\u20AC",country:"Czech Republic",countryCode:"CZ",tax:1},SE:{currency:"EUR",symbol:"\u20AC",country:"Sweden",countryCode:"SE",tax:1},DK:{currency:"EUR",symbol:"\u20AC",country:"Denmark",countryCode:"DK",tax:1},PL:{currency:"EUR",symbol:"\u20AC",country:"Poland",countryCode:"PL",tax:1},HU:{currency:"EUR",symbol:"\u20AC",country:"Hungary",countryCode:"HU",tax:1},GB:{currency:"GBP",symbol:"\xA3",country:"United Kingdom",countryCode:"GB",tax:1},US:{currency:"USD",symbol:"$",country:"United States",countryCode:"US",tax:0},CA:{currency:"CAD",symbol:"CA$",country:"Canada",countryCode:"CA",tax:0},NZ:{currency:"NZD",symbol:"NZ$",country:"New Zealand",countryCode:"NZ",tax:0},AU:{currency:"AUD",symbol:"AU$",country:"Australia",countryCode:"AU",tax:0}},M={currency:"USD",symbol:"$",country:"United States",countryCode:"US",tax:0};function gt(e){switch(e.toUpperCase()){case"US":return"ZIP Code";case"GB":return"Postcode";case"CA":return"Postal Code";case"AU":case"NZ":return"Postcode";case"IE":return"Eircode";default:return"Postal Code"}}var hr=new Intl.DisplayNames(["en"],{type:"region"});function xr(e){return[...e.toUpperCase()].map(t=>String.fromCodePoint(127397+t.charCodeAt(0))).join("")}var Et=["US","GB","CA","AU","NZ","IE","DE","FR"],Ar=["AD","AE","AF","AG","AL","AM","AO","AR","AT","AU","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BN","BO","BR","BS","BT","BW","BY","BZ","CA","CD","CF","CG","CH","CI","CL","CM","CN","CO","CR","CU","CV","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","ER","ES","ET","FI","FJ","FM","FR","GA","GB","GD","GE","GH","GM","GN","GQ","GR","GT","GW","GY","HN","HR","HT","HU","ID","IE","IL","IN","IQ","IR","IS","IT","JM","JO","JP","KE","KG","KH","KI","KM","KN","KR","KW","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MG","MH","MK","ML","MM","MN","MR","MT","MU","MV","MW","MX","MY","MZ","NA","NE","NG","NI","NL","NO","NP","NR","NZ","OM","PA","PE","PG","PH","PK","PL","PT","PW","PY","QA","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SI","SK","SL","SM","SN","SO","SR","SS","ST","SV","SY","SZ","TD","TG","TH","TJ","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","US","UY","UZ","VA","VC","VE","VN","VU","WS","XK","YE","ZA","ZM","ZW"];function Ve(e){return{code:e,name:hr.of(e)??e,flag:xr(e)}}var _r=new Set(Et),Fr=Ar.filter(e=>!_r.has(e)),ne=[...Et.map(Ve),...Fr.map(Ve)];function ft(e){return ne.find(t=>t.code===e)}var Pr={country:!0,postal_code:!0};function ae(e){return e===!0?Pr:e||null}function Ct(e,t){if(!e)return!1;if(e===!0)return!0;let r=t.trim().toUpperCase();return e.some(o=>o.trim().toUpperCase()===r)}function Tt(e){let t=ae(e);return t?Object.values(t).some(r=>r===!0||Array.isArray(r)&&r.length>0):!1}var ie=[{code:"AL",name:"Alabama"},{code:"AK",name:"Alaska"},{code:"AZ",name:"Arizona"},{code:"AR",name:"Arkansas"},{code:"CA",name:"California"},{code:"CO",name:"Colorado"},{code:"CT",name:"Connecticut"},{code:"DE",name:"Delaware"},{code:"DC",name:"District of Columbia"},{code:"FL",name:"Florida"},{code:"GA",name:"Georgia"},{code:"HI",name:"Hawaii"},{code:"ID",name:"Idaho"},{code:"IL",name:"Illinois"},{code:"IN",name:"Indiana"},{code:"IA",name:"Iowa"},{code:"KS",name:"Kansas"},{code:"KY",name:"Kentucky"},{code:"LA",name:"Louisiana"},{code:"ME",name:"Maine"},{code:"MD",name:"Maryland"},{code:"MA",name:"Massachusetts"},{code:"MI",name:"Michigan"},{code:"MN",name:"Minnesota"},{code:"MS",name:"Mississippi"},{code:"MO",name:"Missouri"},{code:"MT",name:"Montana"},{code:"NE",name:"Nebraska"},{code:"NV",name:"Nevada"},{code:"NH",name:"New Hampshire"},{code:"NJ",name:"New Jersey"},{code:"NM",name:"New Mexico"},{code:"NY",name:"New York"},{code:"NC",name:"North Carolina"},{code:"ND",name:"North Dakota"},{code:"OH",name:"Ohio"},{code:"OK",name:"Oklahoma"},{code:"OR",name:"Oregon"},{code:"PA",name:"Pennsylvania"},{code:"RI",name:"Rhode Island"},{code:"SC",name:"South Carolina"},{code:"SD",name:"South Dakota"},{code:"TN",name:"Tennessee"},{code:"TX",name:"Texas"},{code:"UT",name:"Utah"},{code:"VT",name:"Vermont"},{code:"VA",name:"Virginia"},{code:"WA",name:"Washington"},{code:"WV",name:"West Virginia"},{code:"WI",name:"Wisconsin"},{code:"WY",name:"Wyoming"}],se=[{code:"AB",name:"Alberta"},{code:"BC",name:"British Columbia"},{code:"MB",name:"Manitoba"},{code:"NB",name:"New Brunswick"},{code:"NL",name:"Newfoundland and Labrador"},{code:"NS",name:"Nova Scotia"},{code:"NT",name:"Northwest Territories"},{code:"NU",name:"Nunavut"},{code:"ON",name:"Ontario"},{code:"PE",name:"Prince Edward Island"},{code:"QC",name:"Quebec"},{code:"SK",name:"Saskatchewan"},{code:"YT",name:"Yukon"}];function St(e){switch(e.toUpperCase()){case"US":return ie;case"CA":return se;default:return null}}function bt(e){switch(e.toUpperCase()){case"US":return"State";case"CA":return"Province";case"GB":return"County";case"AU":return"State / Territory";default:return"State / Province / Region"}}function ht(e,t={}){let r=[],o=e.products??[],n=o.filter(s=>s.type==="subscription"),i=o.filter(s=>s.type!=="subscription"),p=(b(e.currency,void 0,void 0,o)??"USD").toUpperCase();for(let s of n){let m=s.totalAmount??0,C=s.overrideAmount??m,U=s.name||s.code||"Subscription";U==="4-WEEK PLAN"&&C<=1&&(U="7-DAY TRIAL: FULL ACCESS"),r.push({name:U,quantity:s.quantity,price:C,originalPrice:m})}if(!(t.hideBundledItems===!0&&n.length>0&&i.length>0))for(let s of i){let m=s.totalAmount??0,C=s.overrideAmount??m;r.push({name:s.name||s.code||"Item",quantity:s.quantity,price:C,originalPrice:m})}r.length===0&&r.push({name:"Purchase",quantity:1,price:e.amount/100,originalPrice:e.amount/100});let nr=r.reduce((s,m)=>s+m.originalPrice*m.quantity,0),ar=r.reduce((s,m)=>s+m.price*m.quantity,0),ir=typeof e.totalAmount=="number"&&Number.isFinite(e.totalAmount),sr=typeof e.subtotalAmount=="number"&&Number.isFinite(e.subtotalAmount),ur=typeof e.discountAmount=="number"&&Number.isFinite(e.discountAmount),Te=ir?e.totalAmount:ar,f=sr?e.subtotalAmount:nr,Se=Math.max(0,f-Te),dr=f>0?Math.round(Se/f*100):0;return{items:r,currency:p,total:Te,originalTotal:f,totalSave:Se,discountPercent:dr,...ur?{couponDiscount:e.discountAmount}:{}}}var Ir=/^[a-z\d!#$%&'*+\-/=?^_`{|}~\u00A1-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+$/i,Rr=/^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*$/i,Mr=/^([a-z\u00A1-\u00A8\u00AA-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i,kr=/^[a-z\u00a1-\uffff0-9-]+$/i;function xt(e){return encodeURI(e).split(/%..|./).length-1}function Nr(e){let t=e.split("."),r=t[t.length-1]??"";return t.length>=2&&Mr.test(r)&&!/\s/.test(r)&&t.every(o=>o.length<=63&&kr.test(o)&&!/[\uff01-\uff5e]/.test(o)&&!/^-|-$/.test(o)&&!/_/.test(o))}function At(e){if(typeof e!="string"||e.length===0||e.length>254)return!1;let t=e.split("@"),r=t.pop()??"",o=t.join("@");return xt(o)>64||xt(r)>254||!Nr(r)?!1:o.startsWith('"')&&o.endsWith('"')?Rr.test(o.slice(1,-1)):o.split(".").every(n=>Ir.test(n))}var _t="Idempotency-Key",k=255,Ft="IdempotencyKeyInProgress";function Or(){let e=globalThis.crypto;if(e&&(typeof e.randomUUID=="function"||typeof e.getRandomValues=="function"))return e}function ue(){let e=Or();if(!e)return;if(typeof e.randomUUID=="function")return e.randomUUID();if(typeof e.getRandomValues!="function")return;let t=new Uint8Array(16);return e.getRandomValues(t),Array.from(t,r=>r.toString(16).padStart(2,"0")).join("")}function Pt(e){if(e===void 0)return ue();if(typeof e!="string"||e.trim()==="")throw new u("idempotencyKey must be a non-empty string identifying exactly one checkout creation.","validation_error",{code:"InvalidIdempotencyKey",param:"idempotencyKey"});if(e.length>k)throw new u(`idempotencyKey must be at most ${k} characters.`,"validation_error",{code:"InvalidIdempotencyKey",param:"idempotencyKey"});return e}var It=1,Rt=[{name:"checkout_mount"},{name:"sdk_loaded"},{name:"form_rendered"},{name:"card_expanded"},{name:"tokenize"},{name:"process_attempt"},{name:"3ds_challenge"},{name:"checkout_error",phase:"session_create"},{name:"checkout_error",phase:"sdk_load"},{name:"checkout_error",phase:"process"},{name:"checkout_error",phase:"wallets"}];var Lr=[[5,5,"NY"],[10,27,"MA"],[28,29,"RI"],[30,38,"NH"],[39,49,"ME"],[50,59,"VT"],[60,69,"CT"],[70,89,"NJ"],[100,149,"NY"],[150,196,"PA"],[197,199,"DE"],[200,205,"DC"],[206,219,"MD"],[220,246,"VA"],[247,268,"WV"],[270,289,"NC"],[290,299,"SC"],[300,319,"GA"],[320,349,"FL"],[350,369,"AL"],[370,385,"TN"],[386,397,"MS"],[398,399,"GA"],[400,427,"KY"],[430,459,"OH"],[460,479,"IN"],[480,499,"MI"],[500,528,"IA"],[530,549,"WI"],[550,567,"MN"],[570,577,"SD"],[580,588,"ND"],[590,599,"MT"],[600,629,"IL"],[630,658,"MO"],[660,679,"KS"],[680,693,"NE"],[700,714,"LA"],[716,729,"AR"],[730,749,"OK"],[750,799,"TX"],[800,816,"CO"],[820,831,"WY"],[832,838,"ID"],[840,847,"UT"],[850,865,"AZ"],[870,884,"NM"],[889,898,"NV"],[900,961,"CA"],[967,968,"HI"],[970,979,"OR"],[980,994,"WA"],[995,999,"AK"]],vr={A:"NL",B:"NS",C:"PE",E:"NB",G:"QC",H:"QC",J:"QC",K:"ON",L:"ON",M:"ON",N:"ON",P:"ON",R:"MB",S:"SK",T:"AB",V:"BC",X:"NT",Y:"YT"};function Dr(e){let t=e.replace(/\D/g,"");if(t.length<5)return null;let r=Number.parseInt(t.slice(0,3),10);if(!Number.isFinite(r))return null;for(let[o,n,i]of Lr)if(r>=o&&r<=n)return i;return null}function Br(e){let t=e.replace(/\s+/g,"").toUpperCase();if(!/^[A-Z]\d[A-Z]\d[A-Z]\d$/.test(t))return null;let r=t[0]??"";return vr[r]??null}function Mt(e,t){if(!e||!t)return null;let r=e.trim().toUpperCase(),o=t.trim();if(!o)return null;switch(r){case"US":return Dr(o);case"CA":return Br(o);default:return null}}var Ur=Er(require("validator/lib/isPostalCode.js"),1),N=Ur,kt=typeof N.default=="function"?N.default:N.default?.default;if(typeof kt!="function")throw new Error("validator/lib/isPostalCode.js interop failed: unexpected module shape. This likely means the bundler's CJS/ESM interop changed.");var Nt=new Set(N.locales.map(e=>e.toUpperCase())),wr={AUSTRALIA:"AU",BRAZIL:"BR",CANADA:"CA",CH:"CH",DENMARK:"DK",DE:"DE",DEUTSCHLAND:"DE",FRANCE:"FR",GB:"GB",GERMANY:"DE",GREATBRITAIN:"GB",GREAT_BRITAIN:"GB",INDIA:"IN",IRELAND:"IE",ITALY:"IT",JAPAN:"JP",MEXICO:"MX",NETHERLANDS:"NL",NEWZEALAND:"NZ",NORWAY:"NO",POLAND:"PL",PORTUGAL:"PT",SINGAPORE:"SG",SOUTHAFRICA:"ZA",SPAIN:"ES",SWEDEN:"SE",SWITZERLAND:"CH",UK:"GB",UNITEDKINGDOM:"GB",UNITEDSTATES:"US",US:"US",USA:"US","UNITED STATES":"US","UNITED KINGDOM":"GB","GREAT BRITAIN":"GB",ENGLAND:"GB"};function de(e){let t=(e??"").trim().toUpperCase();return t?t.length===2?t:wr[t]??null:null}var Vr={AU:"2000",BR:"01000-000",CA:"A1A 1A1",CH:"8001",DE:"10115",DK:"1050",ES:"28001",FR:"75008",GB:"SW1A 1AA",IE:"D02 X285",IN:"110001",IT:"00118",JP:"100-0001",MX:"06500",NL:"1012 JS",NO:"0150",NZ:"6011",PL:"00-001",PT:"1100-148",SE:"111 22",SG:"018989",US:"12345 or 12345-6789",ZA:"8001"};function Ot(e){let t=de(e);return t!==null&&Nt.has(t)}function Lt(e,t){let r=(t??"").trim();if(!r)return!0;let o=de(e);if(o===null||!Nt.has(o))return!0;try{return kt(r,o)}catch{return!0}}function vt(e){let t=de(e);return t?Vr[t]:void 0}var Dt=["card","wallet","paypal","apm"],Bt=["card","wallet","paypal","apm"],Ut=["card","paypal","apple_pay","google_pay","sepa_debit","us_bank_account"];function wt(e){return S(e)}var Gr=/(?:^|\/)dahlia\/stripe\.js(?:$|[?#])/i,Yr=/^dahlia\/stripe$/i,Kr=/^(?:chrome|moz|safari-web)-extension:\/\//i,zr=/^@flopay(?:\/|$)/i;function Vt(e){return Gr.test(e)||Kr.test(e)}function Hr(e){let t=[e.filename,e.abs_path].filter(r=>r!==void 0&&r!=="<anonymous>");return e.module!==void 0&&zr.test(e.module)||t.some(r=>!Vt(r))?"first-party":e.module!==void 0&&Yr.test(e.module)||t.some(Vt)?"third-party-hosted":t.length===0?"injected":"first-party"}function Gt(e){let t=e.exception?.values;if(!t||t.length===0)return e;let r=[];for(let n of t){let i=n.stacktrace?.frames;if(!i||i.length===0)return e;r.push(...i)}let o=r.map(Hr);return!o.includes("first-party")&&o.includes("third-party-hosted")?null:e}var Yt=1,ce=["@flopay/shared","@flopay/js","@flopay/react"],Kt=32768,zt=20,qr=["stripe","paypal"],Wr=["card","wallet","paypal","apm","saved","unknown"],jr=["apple_pay","google_pay"],Zr=["watchdog_expired","resolved","rejected","returned_error","resolved_late","rejected_late","returned_error_late"],$r=["none","facebook","instagram","tiktok","generic_webview","other_in_app"],Xr=["unknown","available","blocked"],Jr=["popup","app_switch","redirect"],Qr=["approved","cancelled","provider_declined","popup_blocked","provider_error","overlay_timeout"],eo=["callback","sdk_initialize","checkout_mount","session_create","session_shell","session_claim","session_read","session_first_byte","session_complete","checkout_data_ready","checkout_render","provider_load","provider_ready","provider_confirmation","overlay_open","overlay_return","redirect","redirect_resume","vault_request","vault_mount","vault_ready","vault_submit","tokenization","three_ds_handoff","three_ds_return","processing","recovery","completion","unmount","total_journey"],le=["CALLBACK_FAILED","CHECKOUT_SESSION_CREATE_FAILED","CONFIGURATION_INVALID","INTERNAL_SDK_ERROR","NETWORK_REQUEST_FAILED","PAYMENT_PROCESSING_FAILED","POPUP_BLOCKED","PROVIDER_LOAD_FAILED","PROVIDER_RUNTIME_FAILED","RECOVERY_FAILED","REDIRECT_RESUME_FAILED","REQUEST_TIMEOUT","SDK_INITIALIZATION_FAILED","THREE_DS_FAILED","TOKENIZATION_FAILED","VAULT_LOAD_FAILED","VAULT_SUBMIT_FAILED"],pe=["server_error","transport_error","invalid_response","provider_runtime"],to=["authorization_declined","authentication_required","authorization_expired","capture_failed","unknown"],me=["sdk.initialize.started","sdk.initialize.ready","sdk.cache.hit","sdk.cache.miss","checkout.mount","session.create.started","session.shell.ready","session.claim.started","session.claim.completed","session.read.started","session.request.first_byte","session.request.completed","checkout.data.ready","checkout.rendered","checkout.recovery.started","checkout.recovery.completed","checkout.unmount","provider.load.started","provider.eligibility.checked","provider.availability.checked","provider.ready","provider.handoff.requested","provider.popup.opened","provider.overlay.opened","provider.overlay.returned","provider.redirect.started","provider.redirect.resumed","vault.capture.requested","vault.widget.mounted","vault.widget.ready","vault.submission.started","vault.action.required","vault.three_ds.handoff","vault.three_ds.returned","vault.terminal","payment.method.selected","payment.intent.started","payment.intent.completed","payment.provider_confirmation.started","payment.provider_confirmation.returned","payment.tokenization.started","payment.tokenization.completed","payment.processing.started","payment.processing.completed","payment.three_ds.handoff","payment.three_ds.returned","operation.retry","operation.deduplicated","operation.fallback","operation.cache.hit","operation.cache.miss","operation.recovery.started","operation.recovery.completed","operation.state_transition"],ro=["session_create","session_claim","session_read","intent_create","process_payment","vault_capture","account_snapshot","provider_sdk","other"],oo=["2xx","3xx","4xx","5xx","network_error","timeout","unknown"],no=["full","auto","confirm","setup","unknown"],ao=["embedded","buttons","automatic","unknown"],io=["machine","buyer","total"],so=["action_required","card_setup_declined","card_setup_succeeded","customer_abandoned","payment_cancelled","payment_declined","payment_authorized","payment_succeeded","validation_rejected"],ye=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,uo=/^\d{1,4}\.\d{1,4}\.\d{1,4}(?:-[0-9A-Za-z.-]{1,32})?$/,co=new Set(le),lo=new Set(pe),po=new Set(to),O=new Set(eo),mo=new Set(qr),yo=new Set(Wr),go=new Set(jr),Eo=new Set(Zr),fo=new Set($r),Co=new Set(Xr),To=new Set(Jr),So=new Set(Qr),bo=new Set(me),ho=new Set(no),xo=new Set(ao),Ao=new Set(ro),_o=new Set(oo),Fo=new Set(io),Po=new Set(so),Io=new Set(ce),Ht=12e4;function l(e,t,r){return typeof e=="string"&&t.has(e)?e:r}function Ro(){try{let r=globalThis.crypto.randomUUID();if(ye.test(r))return r}catch{}let e=new Uint8Array(16);try{globalThis.crypto.getRandomValues(e)}catch{for(let r=0;r<e.length;r+=1)e[r]=Math.floor(Math.random()*256)}e[6]=(e[6]??0)&15|64,e[8]=(e[8]??0)&63|128;let t=[...e].map(r=>r.toString(16).padStart(2,"0")).join("");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}function g(e){return typeof e=="string"&&ye.test(e)?e:Ro()}function Mo(e){return typeof e=="string"&&ye.test(e)?e:void 0}function ko(e){return typeof e=="number"&&Number.isInteger(e)&&e>=0&&e<=100?e:void 0}function L(e){return Number.isSafeInteger(e)&&e>=0?Math.min(e,1e6):0}function qt(e){return!Number.isFinite(e)||e<0?0:Math.min(Math.round(e),Ht)}function No(e){return Number.isFinite(e)&&e>Ht}function v(e,t){let r=ko(t.attempt);return t.provider&&mo.has(t.provider)&&(e.provider=t.provider),r!==void 0&&(e.attempt=r),t.statusClass&&(e.statusClass=l(t.statusClass,_o,"unknown")),t.requestCategory&&(e.requestCategory=l(t.requestCategory,Ao,"other")),t.paymentMethodCategory&&(e.paymentMethodCategory=l(t.paymentMethodCategory,yo,"unknown")),t.walletType&&go.has(t.walletType)&&(e.walletType=t.walletType),t.operationOutcome&&Eo.has(t.operationOutcome)&&(e.operationOutcome=t.operationOutcome),t.checkoutMode&&(e.checkoutMode=l(t.checkoutMode,ho,"unknown")),t.layout&&(e.layout=l(t.layout,xo,"unknown")),typeof t.inAppBrowser=="boolean"&&(e.inAppBrowser=t.inAppBrowser),t.appFamily&&fo.has(t.appFamily)&&(e.appFamily=t.appFamily),t.popupCapability&&Co.has(t.popupCapability)&&(e.popupCapability=t.popupCapability),t.presentationMode&&To.has(t.presentationMode)&&(e.presentationMode=t.presentationMode),t.terminalReason&&So.has(t.terminalReason)&&(e.terminalReason=t.terminalReason),e}function ge(e){let t=v({eventId:g(e.eventId),class:"technical_error",code:l(e.errorCode,co,"INTERNAL_SDK_ERROR"),stage:l(e.stage,O,"sdk_initialize"),sequence:L(e.sequence)},e);if(e.failureCategory&&lo.has(e.failureCategory)&&(t.failureCategory=e.failureCategory),e.reason!==void 0&&(t.reason=l(e.reason,po,"unknown")),e.stage!=="provider_confirmation"){let r=Mo(e.checkoutSessionId);r&&(t.checkoutSessionId=r)}return e.durationMs!==void 0&&(t.durationMs=qt(e.durationMs)),t}function Ee(e){return v({eventId:g(e.eventId),class:"lifecycle",name:l(e.name,bo,"operation.retry"),stage:l(e.stage,O,"sdk_initialize"),sequence:L(e.sequence)},e)}function fe(e){let t={...e,stage:e.stage??"completion"};return v({eventId:g(e.eventId),class:"expected_outcome",outcome:l(e.outcome,Po,"customer_abandoned"),stage:l(e.stage,O,"completion"),sequence:L(e.sequence)},t)}function Ce(e){let t=v({eventId:g(e.eventId),class:"performance",stage:l(e.stage,O,"sdk_initialize"),sequence:L(e.sequence),durationMs:qt(e.durationMs),durationMode:l(e.durationMode,Fo,"machine")},e);return(e.durationTruncated===!0||No(e.durationMs))&&(t.durationTruncated=!0),t}function Wt(e,t){let r=e.slice(0,20).flatMap(n=>n.class==="technical_error"?[ge({...n,errorCode:n.code})]:n.class==="lifecycle"?[Ee(n)]:n.class==="expected_outcome"?[fe(n)]:n.class==="performance"?[Ce(n)]:[]),o={schemaVersion:1,batchId:g(t.batchId),correlationId:g(t.correlationId),sdk:{package:l(t.sdkPackage,Io,"@flopay/shared"),version:uo.test(t.sdkVersion)?t.sdkVersion:"0.0.0"},events:r};return JSON.stringify(o)}var Oo=new Set(["InvalidCheckoutSessionResponse","InvalidPaymentProcessResponse","InvalidSessionIntentResponse"]);function jt(e,t){if(e===422)return"validation_rejected";if(e===400&&!(t===null||typeof t!="object"||Array.isArray(t)))return Array.isArray(t.fields)?"validation_rejected":"payment_declined"}function Zt(e,t,r="network_error"){if(e instanceof SyntaxError)return{errorCode:t,statusClass:"unknown",failureCategory:"invalid_response"};if(e instanceof u&&e.code!==void 0&&Oo.has(e.code))return{errorCode:t,statusClass:D(e.statusCode,"unknown"),failureCategory:"invalid_response"};if(e instanceof Error&&(e.name==="AbortError"||e instanceof u&&e.code==="checkout_processing_timeout"))return{errorCode:"REQUEST_TIMEOUT",statusClass:"timeout",failureCategory:"transport_error"};if(e instanceof TypeError||e instanceof u&&e.type==="network_error")return{errorCode:"NETWORK_REQUEST_FAILED",statusClass:"network_error",failureCategory:"transport_error"};let o=D(e instanceof u?e.statusCode:void 0,r);return{errorCode:t,statusClass:o,...o==="5xx"?{failureCategory:"server_error"}:{}}}function D(e,t="network_error"){if(e===void 0)return t;let r=`${Math.floor(e/100)}xx`;return r==="2xx"||r==="3xx"||r==="4xx"||r==="5xx"?r:"unknown"}function $t(e){if(e!=null)switch(e){case"sandbox":case"stage":return"sandbox";case"live":case"production":return"live";default:console.warn(`[FloPay] Unrecognized gateway environment "${e}". Expected one of: sandbox, live, stage, production. Falling back to undefined.`);return}}var B=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function Xt(e){return typeof e=="string"&&B.test(e)}function Jt(){try{let r=globalThis.crypto.randomUUID();if(B.test(r))return r}catch{}let e=new Uint8Array(16);try{globalThis.crypto.getRandomValues(e)}catch{for(let r=0;r<e.length;r+=1)e[r]=Math.floor(Math.random()*256)}e[6]=(e[6]??0)&15|64,e[8]=(e[8]??0)&63|128;let t=[...e].map(r=>r.toString(16).padStart(2,"0")).join("");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}function Qt(e){return R[e.toUpperCase()]??M}function er(e){return/^pk_(test|live)_[A-Za-z0-9]+$/.test(e)}function tr(e){return/^sk_(test|live)_[A-Za-z0-9]+$/.test(e)}function rr(e){return typeof e=="string"&&e.startsWith("seti_")}function or(...e){return/^\s*card\s+holder\s+name\s*$/i.test(e.join(" "))}0&&(module.exports={ASYNC_AUTO_CHECKOUT_CAPABILITY,BILLING_API_URL,BILLING_API_URL_PRODUCTION,BILLING_API_URL_STAGING,BOLD_DARK_APPEARANCE,BOLD_LIGHT_APPEARANCE,BUTTONS_LAYOUT_BOLD_DARK,BUTTONS_LAYOUT_BOLD_LIGHT,BUTTONS_LAYOUT_DARK,BUTTONS_LAYOUT_DEFAULT,BUTTONS_LAYOUT_GLASS_DARK,BUTTONS_LAYOUT_GLASS_LIGHT,BUTTONS_LAYOUT_MINIMAL,BUTTONS_LAYOUT_MODERN_DARK,BUTTONS_LAYOUT_MODERN_LIGHT,BUTTONS_LAYOUT_ROUNDED,CA_PROVINCES,CHECKOUT_PROCESSING_TIMEOUT_MESSAGE,COUNTRY_OPTIONS,CURRENCY_MAP,DEFAULT_API_BASE_URL,DEFAULT_API_VERSION,DEFAULT_APPEARANCE,DEFAULT_CURRENCY,FLAT_APPEARANCE,FLO_INSTRUMENT_CATALOG,FLO_INSTRUMENT_SCHEMA_VERSION,FLO_SDK_CAPABILITIES_HEADER,FLO_SDK_VERSION_HEADER,FloPayError,GLASS_DARK_APPEARANCE,GLASS_LIGHT_APPEARANCE,IDEMPOTENCY_IN_PROGRESS_CODE,IDEMPOTENCY_KEY_HEADER,MAX_IDEMPOTENCY_KEY_LENGTH,MODERN_DARK_APPEARANCE,MODERN_LIGHT_APPEARANCE,NIGHT_APPEARANCE,PAYPAL_VAULTED_PAYMENT_METHOD_TYPE,SAVED_PAYMENT_METHOD_FAMILIES,SAVED_PAYMENT_METHOD_LIST_TYPES,SAVED_PAYMENT_METHOD_TYPES,SDK_VERSION,STORED_PAYMENT_METHOD_UNSUPPORTED_CODE,STORED_PAYMENT_METHOD_UNSUPPORTED_MESSAGE,STRIPE_EXPRESS_METHODS,STRIPE_METHOD_AMOUNT_LIMITS,STRIPE_METHOD_COUNTRIES,STRIPE_METHOD_CURRENCIES,STRIPE_METHOD_MATRIX,SUPPORTED_CARD_BRANDS,TELEMETRY_ERROR_CODES,TELEMETRY_FAILURE_CATEGORIES,TELEMETRY_LOG_NAMES,TELEMETRY_MAX_BATCH_BYTES,TELEMETRY_MAX_BATCH_EVENTS,TELEMETRY_SCHEMA_VERSION,TELEMETRY_SDK_PACKAGES,THEMES,THREE_DS_CHALLENGE_WINDOW_MS,US_STATES,UUID_V4,apiError,assertCaptureMethodEligible,authenticationError,buildCheckoutDisplayData,buildItemPayload,buildProductPayload,buildSubscriptionPayload,buildTelemetryErrorEvent,buildTelemetryLogEvent,buildTelemetryPerformanceEvent,buildTelemetryTerminalEvent,classifyPaymentRejection,classifyTelemetryFailure,configureFlopay,dropThirdPartyOnlyError,filterStripeMethodsByAmount,filterStripeMethodsByCountry,filterStripeMethodsByCurrency,foldIntoProducts,generateIdempotencyKey,getConfiguredBillingApiUrl,getCountryByCode,getCurrencyByCountry,getFloPayEnvironment,getPostalCodeExample,getPostalCodeLabel,getStateFromPostalCode,getStateLabel,getStateOptions,getStripeMethodDisplayName,hasVendoredStripeMethodLogo,isAVSEnabled,isAVSFieldVisible,isAuthorizationOnlySession,isCardHolderNamePlaceholder,isCardSetupCheckoutSession,isDetachedSessionEligible,isMoneySettledOutcome,isPostalCodeSupported,isSetupCheckoutSession,isSetupIntentClientSecret,isUuidV4,isValidEmail,isValidPostalCode,isValidPublishableKey,isValidSecretKey,needsStripeMethodExplicitConfirm,networkError,normalizeCheckoutFailureOutcome,normalizeGatewayEnvironment,partitionStripeMethods,randomUuidV4,rateLimitError,resolveAVSConfig,resolveBillingApiUrl,resolveButtonsLayoutTheme,resolveIdempotencyKey,resolveSessionCurrency,resolveStripeMethodBrandVariant,resolveTheme,serializeTelemetryBatch,stripeExpressMethodToOptionKey,telemetryStatusClass,validationError});
1
+ "use strict";var pr=Object.create;var T=Object.defineProperty;var mr=Object.getOwnPropertyDescriptor;var yr=Object.getOwnPropertyNames;var gr=Object.getPrototypeOf,Er=Object.prototype.hasOwnProperty;var fr=(e,t)=>{for(var r in t)T(e,r,{get:t[r],enumerable:!0})},be=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of yr(t))!Er.call(e,o)&&o!==r&&T(e,o,{get:()=>t[o],enumerable:!(n=mr(t,o))||n.enumerable});return e};var Cr=(e,t,r)=>(r=e!=null?pr(gr(e)):{},be(t||!e||!e.__esModule?T(r,"default",{value:e,enumerable:!0}):r,e)),Tr=e=>be(T({},"__esModule",{value:!0}),e);var Un={};fr(Un,{ASYNC_AUTO_CHECKOUT_CAPABILITY:()=>He,BILLING_API_URL:()=>Je,BILLING_API_URL_PRODUCTION:()=>G,BILLING_API_URL_STAGING:()=>E,BOLD_DARK_APPEARANCE:()=>q,BOLD_LIGHT_APPEARANCE:()=>H,BUTTONS_LAYOUT_BOLD_DARK:()=>F,BUTTONS_LAYOUT_BOLD_LIGHT:()=>_,BUTTONS_LAYOUT_DARK:()=>J,BUTTONS_LAYOUT_DEFAULT:()=>Z,BUTTONS_LAYOUT_GLASS_DARK:()=>I,BUTTONS_LAYOUT_GLASS_LIGHT:()=>P,BUTTONS_LAYOUT_MINIMAL:()=>$,BUTTONS_LAYOUT_MODERN_DARK:()=>A,BUTTONS_LAYOUT_MODERN_LIGHT:()=>x,BUTTONS_LAYOUT_ROUNDED:()=>X,CA_PROVINCES:()=>se,CHECKOUT_PROCESSING_TIMEOUT_MESSAGE:()=>$e,COUNTRY_OPTIONS:()=>oe,CURRENCY_MAP:()=>R,DEFAULT_API_BASE_URL:()=>Xe,DEFAULT_API_VERSION:()=>et,DEFAULT_APPEARANCE:()=>Y,DEFAULT_CURRENCY:()=>M,FLAT_APPEARANCE:()=>tt,FLO_INSTRUMENT_CATALOG:()=>kt,FLO_INSTRUMENT_SCHEMA_VERSION:()=>Mt,FLO_SDK_CAPABILITIES_HEADER:()=>ze,FLO_SDK_VERSION_HEADER:()=>Ke,FloPayError:()=>d,GLASS_DARK_APPEARANCE:()=>j,GLASS_LIGHT_APPEARANCE:()=>W,IDEMPOTENCY_IN_PROGRESS_CODE:()=>It,IDEMPOTENCY_KEY_HEADER:()=>Pt,MAX_IDEMPOTENCY_KEY_LENGTH:()=>k,MODERN_DARK_APPEARANCE:()=>z,MODERN_LIGHT_APPEARANCE:()=>K,NIGHT_APPEARANCE:()=>rt,PAYPAL_VAULTED_PAYMENT_METHOD_TYPE:()=>We,SAVED_PAYMENT_METHOD_FAMILIES:()=>Ut,SAVED_PAYMENT_METHOD_LIST_TYPES:()=>Vt,SAVED_PAYMENT_METHOD_TYPES:()=>wt,SDK_VERSION:()=>Ye,STORED_PAYMENT_METHOD_UNSUPPORTED_CODE:()=>je,STORED_PAYMENT_METHOD_UNSUPPORTED_MESSAGE:()=>Ze,STRIPE_EXPRESS_METHODS:()=>ee,STRIPE_METHOD_AMOUNT_LIMITS:()=>ne,STRIPE_METHOD_COUNTRIES:()=>re,STRIPE_METHOD_CURRENCIES:()=>te,STRIPE_METHOD_MATRIX:()=>y,SUPPORTED_CARD_BRANDS:()=>gt,TELEMETRY_ERROR_CODES:()=>le,TELEMETRY_FAILURE_CATEGORIES:()=>pe,TELEMETRY_LOG_NAMES:()=>me,TELEMETRY_MAX_BATCH_BYTES:()=>Ht,TELEMETRY_MAX_BATCH_EVENTS:()=>qt,TELEMETRY_SCHEMA_VERSION:()=>zt,TELEMETRY_SDK_PACKAGES:()=>ce,THEMES:()=>Q,THREE_DS_CHALLENGE_WINDOW_MS:()=>qe,US_STATES:()=>ie,UUID_V4:()=>B,apiError:()=>Pe,assertCaptureMethodEligible:()=>ke,authenticationError:()=>Ie,buildCheckoutDisplayData:()=>xt,buildItemPayload:()=>Le,buildProductPayload:()=>Oe,buildSubscriptionPayload:()=>ve,buildTelemetryErrorEvent:()=>ge,buildTelemetryLogEvent:()=>Ee,buildTelemetryPerformanceEvent:()=>Ce,buildTelemetryTerminalEvent:()=>fe,classifyPaymentRejection:()=>$t,classifyTelemetryFailure:()=>Xt,configureFlopay:()=>De,dropThirdPartyOnlyError:()=>Kt,filterStripeMethodsByAmount:()=>mt,filterStripeMethodsByCountry:()=>pt,filterStripeMethodsByCurrency:()=>lt,foldIntoProducts:()=>w,generateIdempotencyKey:()=>ue,getConfiguredBillingApiUrl:()=>b,getCountryByCode:()=>Ct,getCurrencyByCountry:()=>tr,getFloPayEnvironment:()=>Be,getPostalCodeExample:()=>Bt,getPostalCodeLabel:()=>Et,getStateFromPostalCode:()=>Nt,getStateLabel:()=>bt,getStateOptions:()=>ht,getStripeMethodDisplayName:()=>ut,hasVendoredStripeMethodLogo:()=>st,isAVSEnabled:()=>St,isAVSFieldVisible:()=>Tt,isAuthorizationOnlySession:()=>xe,isCardHolderNamePlaceholder:()=>ar,isCardSetupCheckoutSession:()=>S,isDetachedSessionEligible:()=>Ne,isMoneySettledOutcome:()=>Ae,isPostalCodeSupported:()=>vt,isSetupCheckoutSession:()=>Gt,isSetupIntentClientSecret:()=>or,isUuidV4:()=>Qt,isValidEmail:()=>_t,isValidPostalCode:()=>Dt,isValidPublishableKey:()=>rr,isValidSecretKey:()=>nr,needsStripeMethodExplicitConfirm:()=>dt,networkError:()=>Me,normalizeCheckoutFailureOutcome:()=>_e,normalizeGatewayEnvironment:()=>Jt,partitionStripeMethods:()=>yt,randomUuidV4:()=>er,rateLimitError:()=>Re,resolveAVSConfig:()=>ae,resolveBillingApiUrl:()=>Qe,resolveButtonsLayoutTheme:()=>nt,resolveIdempotencyKey:()=>Rt,resolveSessionCurrency:()=>h,resolveSetupFutureUsage:()=>Ft,resolveStripeMethodBrandVariant:()=>ct,resolveTheme:()=>ot,serializeTelemetryBatch:()=>Zt,stripeExpressMethodToOptionKey:()=>at,telemetryStatusClass:()=>D,validationError:()=>Fe});module.exports=Tr(Un);function S(e){return e.checkoutMode==="setup"&&e.amount===0&&(e.products?.length??0)===0}function xe(e){return e?.captureMethod==="manual"}function Ae(e,t){return e==="requires_capture"?t!=="manual":e==="succeeded"||e==="complete"||e==="completed"||e==="captured"||e==="paid"}function _e(e){if(typeof e!="string"||e.length===0)return;let t=e.trim().toLowerCase().replace(/[\s-]+/g,"_");if(t==="capture_failed"||t.includes("capture")&&(t.includes("fail")||t.includes("error")))return"capture_failed";if(t==="authorization_expired"||t.includes("expired")||t.includes("expiry"))return"authorization_expired";if(t==="authentication_required"||t.includes("3ds")||t.includes("three_d")||t.includes("authentication")||t.includes("action_required"))return"authentication_required";if(t==="authorization_declined"||t.includes("declin")||t.includes("authorization_fail"))return"authorization_declined"}var d=class extends Error{constructor(t,r,n){super(t),this.name="FloPayError",this.type=r,this.code=n?.code,this.declineCode=n?.declineCode,this.param=n?.param,this.statusCode=n?.statusCode,n?.details!==void 0&&(this.details=n.details),n?.sessionId!==void 0&&(this.sessionId=n.sessionId),n?.cause!==void 0&&(this.cause=n.cause),Object.setPrototypeOf(this,new.target.prototype)}};function Fe(e,t){return new d(e,"validation_error",{param:t})}function Pe(e,t,r){return new d(e,"api_error",{code:t,statusCode:r})}function Ie(e){return new d(e,"authentication_error")}function Re(e){return new d(e,"rate_limit_error")}function Me(e){return new d(e,"network_error")}function ke(e){if(!(e.captureMethod!=="manual"||!(e.products??w(e.items,e.subscriptions)).some(r=>r.type==="subscription")))throw new d("Manual capture is not supported for subscription products.","validation_error",{code:"CaptureMethodUnsupportedForSubscription",param:"captureMethod"})}function Ne(e){return e.deferDataAttachment!==!1&&(e.checkoutMode??"full")==="full"&&!e.tokenizedData}function a(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function h(e,t,r,n){let o=a(e);if(o)return o;for(let i of t??[]){let s=a(i.currency);if(s)return s}for(let i of r??[]){let s=a(i.currency);if(s)return s}for(let i of n??[]){let s=a(i.currency);if(s)return s}return null}function w(e,t){let r=[];for(let n of t??[])r.push({type:"subscription",code:a(n.code)??a(n.providerPlanId),providerPlanId:n.providerPlanId,name:a(n.subscriptionName)??a(n.providerPlanName)??null,subscriptionName:n.subscriptionName??null,providerPlanName:n.providerPlanName??null,quantity:n.quantity,totalAmount:n.totalAmount,overrideAmount:n.overrideAmount,currency:n.currency,metadata:n.metadata});for(let n of e??[])r.push({type:"item",code:a(n.code)??a(n.providerItemId),providerItemId:n.providerItemId,name:a(n.itemName)??a(n.providerItemName)??null,itemName:n.itemName??null,providerItemName:n.providerItemName??null,quantity:n.quantity,totalAmount:n.totalAmount,overrideAmount:n.overrideAmount,currency:n.currency,metadata:n.metadata});return r}function Oe(e,t){let r=a(e.code)??a(e.providerItemId)??a(e.providerPlanId);if(!r)throw new Error("CheckoutProduct requires `code` (or the deprecated `providerItemId` / `providerPlanId`).");let n=a(e.name)??a(e.itemName)??a(e.providerItemName)??a(e.subscriptionName)??a(e.providerPlanName)??null,o={type:e.type,code:r,name:n,quantity:e.quantity??1,totalAmount:e.totalAmount,overrideAmount:e.overrideAmount??null,currency:a(e.currency)??t};return e.metadata&&(o.metadata=e.metadata),o}function Le(e,t){let r=a(e.code)??a(e.providerItemId);if(!r)throw new Error("CheckoutItem requires either `code` or the deprecated `providerItemId`.");let n=a(e.itemName)??a(e.providerItemName)??null,o={code:r,providerItemId:a(e.providerItemId)??r,itemName:n,providerItemName:a(e.providerItemName)??n,quantity:e.quantity??1,totalAmount:e.totalAmount,overrideAmount:e.overrideAmount??null,currency:a(e.currency)??t};return e.metadata&&(o.metadata=e.metadata),o}function ve(e,t){let r=a(e.code)??a(e.providerPlanId);if(!r)throw new Error("CheckoutSubscription requires either `code` or the deprecated `providerPlanId`.");let n=a(e.subscriptionName)??a(e.providerPlanName)??null,o={code:r,providerPlanId:a(e.providerPlanId)??r,subscriptionName:n,providerPlanName:a(e.providerPlanName)??n,quantity:e.quantity??1,totalAmount:e.totalAmount,overrideAmount:e.overrideAmount??null,currency:a(e.currency)??t};return e.metadata&&(o.metadata=e.metadata),o}var Sr={local:"https://flo.ngrok.pro",staging:"https://api.stage.flopay.com",production:"https://api.flopay.com"},V="staging";function De(e){V=e.environment}function b(){return Sr[V]}function Be(){return V}var Ue=["alipay","bancontact","blik","eps","giropay","ideal","klarna","p24","sepa_debit","wechat_pay"];var Ye="1.11.0",Ke="x-flo-sdk-version",ze="x-flo-sdk-capabilities",He="async-auto-checkout-v1",qe=3e5,We="paypal_vaulted",je="stored_payment_method_unsupported",Ze="This saved payment method can\u2019t be used for this payment. Choose another payment method.",$e="We\u2019re still confirming your payment. Please don\u2019t pay again.",E="https://api.stage.flopay.com",G="https://api.flopay.com",Xe=E,Je=E;function Qe(e){return e||(typeof process<"u"&&process.env?.NEXT_PUBLIC_FLOPAY_ENV?process.env.NEXT_PUBLIC_FLOPAY_ENV==="production"?G:E:b())}var et="2024-01-01",Y={theme:"default",variables:{colorPrimary:"#4A49FF",colorBackground:"#FFFFFF",colorText:"#262833",colorDanger:"#DF1B41",borderRadius:"8px",fontFamily:"Poppins, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"4px"}},tt={theme:"flat",variables:{...Y.variables,borderRadius:"4px"}},rt={theme:"night",variables:{colorPrimary:"#7B7BFF",colorBackground:"#1A1A2E",colorText:"#E0E0E0",colorDanger:"#FF6B6B",borderRadius:"8px",fontFamily:"Poppins, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"4px"}},K={theme:"default",variables:{colorPrimary:"#1785E0",colorBackground:"#FFFFFF",colorText:"#0F172A",colorDanger:"#EF4444",borderRadius:"12px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"15px",spacingUnit:"5px"},rules:{".Input":{padding:"14px 16px",border:"1.5px solid #E5E7EB",boxShadow:"0 1px 2px rgba(15,23,42,0.04)"},".Input:focus":{borderColor:"#1785E0",boxShadow:"0 0 0 4px rgba(23,133,224,0.12)"},".Label":{fontWeight:"500",color:"#475569",marginBottom:"6px"},".Tab":{padding:"12px 16px",borderRadius:"12px",border:"1.5px solid #E5E7EB"},".Tab:hover":{borderColor:"#CBD5E1"},".Tab--selected":{borderColor:"#1785E0",boxShadow:"0 0 0 1px #1785E0"}}},z={theme:"night",variables:{colorPrimary:"#60A5FA",colorBackground:"#0B1220",colorText:"#F1F5F9",colorDanger:"#F87171",borderRadius:"12px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"15px",spacingUnit:"5px"},rules:{".Input":{backgroundColor:"#111827",padding:"14px 16px",border:"1.5px solid #1F2937",color:"#F1F5F9",boxShadow:"none"},".Input:focus":{borderColor:"#60A5FA",boxShadow:"0 0 0 4px rgba(96,165,250,0.18)"},".Label":{fontWeight:"500",color:"#94A3B8",marginBottom:"6px"},".Tab":{padding:"12px 16px",borderRadius:"12px",border:"1.5px solid #1F2937",backgroundColor:"#111827",color:"#F1F5F9"},".Tab:hover":{borderColor:"#374151"},".Tab--selected":{borderColor:"#60A5FA",boxShadow:"0 0 0 1px #60A5FA"}}},H={theme:"default",variables:{colorPrimary:"#1785E0",colorBackground:"#FFFFFF",colorText:"#0C2B4D",colorDanger:"#DC2626",borderRadius:"12px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"5px"},rules:{".Input":{padding:"14px 16px",border:"2px solid #E5E7EB"},".Input:focus":{borderColor:"#1785E0",boxShadow:"0 0 0 3px rgba(23,133,224,0.2)"},".Label":{fontWeight:"600",color:"#0C2B4D"},".Tab":{padding:"14px 18px",border:"2px solid #E5E7EB",fontWeight:"600"},".Tab--selected":{borderColor:"#1785E0",boxShadow:"0 0 0 1px #1785E0"}}},q={theme:"night",variables:{colorPrimary:"#60A5FA",colorBackground:"#0C2B4D",colorText:"#FFFFFF",colorDanger:"#F87171",borderRadius:"12px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"5px"},rules:{".Input":{backgroundColor:"#1E3A8A",padding:"14px 16px",border:"2px solid #1E40AF",color:"#FFFFFF"},".Input:focus":{borderColor:"#60A5FA",boxShadow:"0 0 0 3px rgba(96,165,250,0.25)"},".Label":{fontWeight:"600",color:"#DBEAFE"},".Tab":{padding:"14px 18px",border:"2px solid #1E40AF",backgroundColor:"#1E3A8A",color:"#FFFFFF",fontWeight:"600"},".Tab--selected":{borderColor:"#60A5FA",boxShadow:"0 0 0 1px #60A5FA"}}},W={theme:"default",variables:{colorPrimary:"#1785E0",colorBackground:"#FFFFFF",colorText:"#1E293B",colorDanger:"#EF4444",borderRadius:"16px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"15px",spacingUnit:"5px"},rules:{".Input":{backgroundColor:"rgba(255,255,255,0.6)",backdropFilter:"blur(10px)",padding:"14px 16px",border:"1px solid rgba(255,255,255,0.6)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.5), 0 1px 3px rgba(23,133,224,0.08)"},".Input:focus":{borderColor:"rgba(23,133,224,0.5)",boxShadow:"0 0 0 3px rgba(23,133,224,0.15)"},".Label":{fontWeight:"500",color:"#475569"},".Tab":{padding:"12px 16px",backgroundColor:"rgba(255,255,255,0.5)",border:"1px solid rgba(255,255,255,0.6)",borderRadius:"14px"},".Tab--selected":{borderColor:"rgba(23,133,224,0.6)",boxShadow:"0 0 0 1px rgba(23,133,224,0.6)"}}},j={theme:"night",variables:{colorPrimary:"#60A5FA",colorBackground:"#0F172A",colorText:"#F1F5F9",colorDanger:"#F87171",borderRadius:"16px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"15px",spacingUnit:"5px"},rules:{".Input":{backgroundColor:"rgba(15,23,42,0.6)",backdropFilter:"blur(10px)",padding:"14px 16px",border:"1px solid rgba(255,255,255,0.08)",color:"#F1F5F9"},".Input:focus":{borderColor:"rgba(96,165,250,0.5)",boxShadow:"0 0 0 3px rgba(96,165,250,0.2)"},".Label":{fontWeight:"500",color:"#94A3B8"},".Tab":{padding:"12px 16px",backgroundColor:"rgba(15,23,42,0.6)",border:"1px solid rgba(255,255,255,0.08)",borderRadius:"14px",color:"#F1F5F9"},".Tab--selected":{borderColor:"rgba(96,165,250,0.6)",boxShadow:"0 0 0 1px rgba(96,165,250,0.6)"}}},Z={},$={cardButton:{border:"none",backgroundColor:"#f9fafb",boxShadow:"none"},cardFormContainer:{backgroundColor:"#f9fafb",border:"none"},cardInputBorder:"#e5e7eb",backButtonIcon:{backgroundColor:"#e5e7eb"},submitButton:{borderRadius:"6px"}},X={cardButton:{borderRadius:"9999px",border:"1px solid #e5e7eb",boxShadow:"0 1px 3px rgba(0,0,0,0.06)"},cardFormContainer:{borderRadius:"16px",border:"1px solid #e5e7eb",boxShadow:"0 2px 8px rgba(0,0,0,0.06)"},cardInputBorder:"#d1d5db",submitButton:{borderRadius:"9999px"},backButtonIcon:{backgroundColor:"#f3f4f6"}},J={cardButton:{backgroundColor:"#1f2937",color:"#f9fafb",border:"1px solid #374151",boxShadow:"none"},cardFormContainer:{backgroundColor:"#111827",border:"1px solid #374151"},cardInputBorder:"#4b5563",cardInputColor:"#f9fafb",cardInputPlaceholderColor:"#6b7280",cardInputBackground:"#1f2937",nameInput:{backgroundColor:"#1f2937",color:"#f9fafb"},backButton:{color:"#9ca3af"},backButtonIcon:{backgroundColor:"#374151"},submitButton:{backgroundColor:"#6366f1"},title:{color:"#f9fafb"},countrySelect:{backgroundColor:"#1f2937",color:"#f9fafb"},zipInput:{backgroundColor:"#1f2937",color:"#f9fafb"}},x={cardFormContainer:{backgroundColor:"#FAFAFA",borderRadius:"20px",border:"1px solid #E5E7EB",boxShadow:"0 8px 24px rgba(15,23,42,0.04)",padding:"24px"},cardButton:{backgroundColor:"#FFFFFF",borderRadius:"14px",border:"1.5px solid #E5E7EB",boxShadow:"0 1px 2px rgba(15,23,42,0.04)",padding:"14px 18px"},cardInputBorder:"#E5E7EB",nameInput:{backgroundColor:"#FFFFFF",border:"1.5px solid #E5E7EB",borderRadius:"14px",padding:"14px 16px"},submitButton:{backgroundColor:"#1785E0",borderRadius:"14px",padding:"16px 24px",boxShadow:"0 4px 14px rgba(23,133,224,0.25)",fontWeight:"600"},title:{color:"#0F172A",fontWeight:"600"},titleFontSize:"20px",backButton:{color:"#64748B"},backButtonIcon:{backgroundColor:"#F1F5F9"}},A={cardFormContainer:{backgroundColor:"#111827",borderRadius:"20px",border:"1px solid #1F2937",boxShadow:"0 8px 24px rgba(0,0,0,0.2)",padding:"24px"},cardButton:{backgroundColor:"#0B1220",borderRadius:"14px",border:"1.5px solid #1F2937",color:"#F1F5F9",padding:"14px 18px"},cardInputBorder:"#1F2937",cardInputBackground:"#111827",cardInputColor:"#F1F5F9",cardInputPlaceholderColor:"#64748B",nameInput:{backgroundColor:"#111827",border:"1.5px solid #1F2937",borderRadius:"14px",padding:"14px 16px",color:"#F1F5F9"},submitButton:{backgroundColor:"#60A5FA",borderRadius:"14px",padding:"16px 24px",boxShadow:"0 4px 14px rgba(96,165,250,0.3)",fontWeight:"600",color:"#0B1220"},title:{color:"#F1F5F9",fontWeight:"600"},titleFontSize:"20px",backButton:{color:"#94A3B8"},backButtonIcon:{backgroundColor:"#1F2937"},countrySelect:{backgroundColor:"#111827",color:"#F1F5F9"},zipInput:{backgroundColor:"#111827",color:"#F1F5F9"}},_={cardFormContainer:{backgroundColor:"#EFF6FF",borderRadius:"20px",border:"2px solid #1785E0",padding:"24px"},cardButton:{backgroundColor:"#FFFFFF",borderRadius:"12px",border:"2px solid #1785E0",color:"#1785E0",fontWeight:"700",padding:"14px 18px"},cardInputBorder:"#E5E7EB",nameInput:{backgroundColor:"#FFFFFF",border:"2px solid #E5E7EB",borderRadius:"12px",padding:"14px 16px",fontWeight:"500"},submitButton:{background:"linear-gradient(135deg, #1785E0 0%, #0EA5E9 100%)",borderRadius:"9999px",padding:"16px 24px",boxShadow:"0 10px 25px rgba(23,133,224,0.35)",fontWeight:"700",color:"#FFFFFF",border:"none"},submitButtonFontSize:"17px",title:{color:"#0C2B4D",fontWeight:"800",letterSpacing:"-0.02em"},titleFontSize:"22px",backButton:{color:"#1785E0",fontWeight:"600"},backButtonIcon:{backgroundColor:"#DBEAFE"}},F={cardFormContainer:{backgroundColor:"#1E3A8A",borderRadius:"20px",border:"2px solid #60A5FA",padding:"24px"},cardButton:{backgroundColor:"#0C2B4D",borderRadius:"12px",border:"2px solid #60A5FA",color:"#60A5FA",fontWeight:"700",padding:"14px 18px"},cardInputBorder:"#1E40AF",cardInputBackground:"#1E3A8A",cardInputColor:"#FFFFFF",cardInputPlaceholderColor:"#60A5FA",nameInput:{backgroundColor:"#1E3A8A",border:"2px solid #1E40AF",borderRadius:"12px",padding:"14px 16px",fontWeight:"500",color:"#FFFFFF"},submitButton:{background:"linear-gradient(135deg, #60A5FA 0%, #38BDF8 100%)",borderRadius:"9999px",padding:"16px 24px",boxShadow:"0 10px 25px rgba(96,165,250,0.35)",fontWeight:"700",color:"#FFFFFF",border:"none"},submitButtonFontSize:"17px",title:{color:"#FFFFFF",fontWeight:"800",letterSpacing:"-0.02em"},titleFontSize:"22px",backButton:{color:"#DBEAFE",fontWeight:"600"},backButtonIcon:{backgroundColor:"#1E40AF"},countrySelect:{backgroundColor:"#1E3A8A",color:"#FFFFFF"},zipInput:{backgroundColor:"#1E3A8A",color:"#FFFFFF"}},P={cardFormContainer:{background:"linear-gradient(135deg, #DBEAFE 0%, #BFDBFE 100%)",borderRadius:"24px",border:"1px solid rgba(255,255,255,0.6)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.6), 0 12px 40px rgba(23,133,224,0.15)",padding:"28px"},cardButton:{backgroundColor:"rgba(255,255,255,0.7)",backdropFilter:"blur(20px)",borderRadius:"16px",border:"1px solid rgba(255,255,255,0.6)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.5), 0 4px 16px rgba(23,133,224,0.1)",padding:"14px 18px"},cardInputBorder:"rgba(255,255,255,0.6)",nameInput:{backgroundColor:"rgba(255,255,255,0.6)",backdropFilter:"blur(10px)",border:"1px solid rgba(255,255,255,0.6)",borderRadius:"14px",padding:"14px 16px"},submitButton:{backgroundColor:"rgba(23,133,224,0.95)",backdropFilter:"blur(10px)",borderRadius:"16px",padding:"16px 24px",boxShadow:"0 10px 30px rgba(23,133,224,0.3), inset 0 1px 0 rgba(255,255,255,0.2)",fontWeight:"600",color:"#FFFFFF"},title:{color:"#1E293B",fontWeight:"600",letterSpacing:"-0.01em"},titleFontSize:"20px",backButton:{color:"#1785E0",fontWeight:"500"},backButtonIcon:{backgroundColor:"rgba(255,255,255,0.7)"}},I={cardFormContainer:{background:"linear-gradient(135deg, #0C2B4D 0%, #0F172A 100%)",borderRadius:"24px",border:"1px solid rgba(255,255,255,0.08)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.06), 0 20px 50px rgba(0,0,0,0.4)",padding:"28px"},cardButton:{backgroundColor:"rgba(15,23,42,0.6)",backdropFilter:"blur(20px)",borderRadius:"16px",border:"1px solid rgba(255,255,255,0.08)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.05), 0 4px 16px rgba(0,0,0,0.3)",padding:"14px 18px",color:"#F1F5F9"},cardInputBorder:"rgba(255,255,255,0.08)",cardInputBackground:"rgba(15,23,42,0.6)",cardInputColor:"#F1F5F9",cardInputPlaceholderColor:"#64748B",nameInput:{backgroundColor:"rgba(15,23,42,0.6)",backdropFilter:"blur(10px)",border:"1px solid rgba(255,255,255,0.08)",borderRadius:"14px",padding:"14px 16px",color:"#F1F5F9"},submitButton:{backgroundColor:"rgba(96,165,250,0.9)",backdropFilter:"blur(10px)",borderRadius:"16px",padding:"16px 24px",boxShadow:"0 10px 30px rgba(96,165,250,0.35), inset 0 1px 0 rgba(255,255,255,0.15)",fontWeight:"600",color:"#0F172A"},title:{color:"#F1F5F9",fontWeight:"600",letterSpacing:"-0.01em"},titleFontSize:"20px",backButton:{color:"#60A5FA",fontWeight:"500"},backButtonIcon:{backgroundColor:"rgba(255,255,255,0.08)"},countrySelect:{backgroundColor:"rgba(15,23,42,0.6)",color:"#F1F5F9"},zipInput:{backgroundColor:"rgba(15,23,42,0.6)",color:"#F1F5F9"}};function nt(e){switch(e){case"minimal":return $;case"rounded":return X;case"dark":return J;case"modern-light":return x;case"modern-dark":return A;case"bold-light":return _;case"bold-dark":return F;case"glass-light":return P;case"glass-dark":return I;default:return Z}}var Q={"modern-light":{appearance:K,buttonsLayout:x},"modern-dark":{appearance:z,buttonsLayout:A},"bold-light":{appearance:H,buttonsLayout:_},"bold-dark":{appearance:q,buttonsLayout:F},"glass-light":{appearance:W,buttonsLayout:P},"glass-dark":{appearance:j,buttonsLayout:I}};function ot(e){if(!(!e||e==="classic"))return Q[e]}function at(e){switch(e){case"apple_pay":return"applePay";case"google_pay":return"googlePay";case"amazon_pay":return"amazonPay";default:return e}}function hr(e,t,r){return`<svg viewBox="0 0 22 22"><circle cx="11" cy="11" r="11" fill="${t}"/><text x="11" y="15.5" text-anchor="middle" font-size="13" font-weight="700" font-family="sans-serif" fill="${r}">${e}</text></svg>`}function we(e,t){return`<svg viewBox="0 0 22 22"><circle cx="11" cy="11" r="11" fill="${e}"/><g fill="${t}"><path d="M11 4 L17.5 8 L4.5 8 Z"/><rect x="5" y="8.4" width="12" height="1.2" rx="0.3"/><rect x="5.9" y="10" width="1.5" height="5"/><rect x="8.55" y="10" width="1.5" height="5"/><rect x="11.95" y="10" width="1.5" height="5"/><rect x="14.6" y="10" width="1.5" height="5"/><rect x="4.6" y="15.4" width="12.8" height="1.5" rx="0.3"/></g></svg>`}function Ve(e,t,r,n=t){return{backgroundColor:t,borderColor:t,textColor:r,logoSvg:hr(e,r,n)}}function c(e,t,r,n=t,o=r,i=n){return{light:Ve(e,t,r),dark:Ve(e,n,o,i)}}var it=["AT","BE","BG","CY","CZ","DE","DK","EE","ES","FI","FR","GR","HR","HU","IE","IT","LT","LU","LV","MT","NL","PL","PT","RO","SE","SI","SK","IS","LI","NO","CH","GB","MC","SM","AD","VA"],br=[...it,"JP","MX","US"],y={apple_pay:{displayName:"Apple Pay",currencies:["*"],express:!0,needsExplicitConfirm:!1},google_pay:{displayName:"Google Pay",currencies:["*"],express:!0,needsExplicitConfirm:!1},paypal:{displayName:"PayPal",currencies:["eur","gbp","usd","cad","aud","nzd","chf","jpy","pln","sek","nok","dkk","czk","huf"],express:!0,needsExplicitConfirm:!1},link:{displayName:"Link",currencies:["usd","eur"],express:!0,needsExplicitConfirm:!1},amazon_pay:{displayName:"Amazon Pay",currencies:["usd","eur","gbp"],express:!0,needsExplicitConfirm:!1},klarna:{displayName:"Klarna",currencies:["usd","eur","gbp","aud","nzd","cad","chf","sek","nok","dkk","pln","czk","ron"],amounts:{usd:{min:100},eur:{min:100},gbp:{min:100}},theme:c("K","#FFB3C7","#0A0B09")},affirm:{displayName:"Affirm",currencies:["usd"],countries:["US","CA"],amounts:{usd:{min:3500,max:3e6}},needsExplicitConfirm:!1,theme:c("a","#060F33","#FFFFFF","#0FA0EA","#060F33","#FFFFFF")},cashapp:{displayName:"Cash App Pay",currencies:["usd"],countries:["US"],amounts:{usd:{min:50,max:99999999}},needsExplicitConfirm:!1,theme:c("$","#00D54B","#0A1F0E")},samsung_pay:{displayName:"Samsung Pay",currencies:["krw"],countries:["KR"],needsExplicitConfirm:!1},afterpay_clearpay:{displayName:"Afterpay",currencies:["usd","aud","cad","gbp","nzd"],countries:["US","CA","GB","AU","NZ"],amounts:{usd:{min:100,max:2e5},cad:{min:100,max:2e5},gbp:{min:100,max:12e4},aud:{min:100,max:2e5},nzd:{min:100,max:2e5}},theme:c("A","#B2FCE4","#0A0B09")},alipay:{displayName:"Alipay",currencies:["usd","cny"],theme:c("A","#1677FF","#FFFFFF")},au_becs_debit:{displayName:"BECS Direct Debit",currencies:["aud"],countries:["AU"]},bacs_debit:{displayName:"Bacs Debit",currencies:["gbp"],countries:["GB"]},bancontact:{displayName:"Bancontact",currencies:["eur"],countries:["BE"],theme:c("B","#FFDD55","#1E3791","#1E3791","#FFDD55")},bizum:{displayName:"Bizum",currencies:["eur"],countries:["ES"],theme:c("B","#00BFB3","#FFFFFF")},blik:{displayName:"BLIK",currencies:["pln"],countries:["PL"],theme:c("B","#000000","#FFFFFF","#FFFFFF","#000000")},boleto:{displayName:"Boleto",currencies:["brl"],countries:["BR"]},customer_balance:{displayName:"Bank Transfer",currencies:["eur","usd"],countries:br,theme:{light:{backgroundColor:"#1F2937",textColor:"#FFFFFF",borderColor:"#1F2937",logoSvg:we("#1F2937","#FFFFFF")},dark:{backgroundColor:"#374151",textColor:"#FFFFFF",borderColor:"#374151",logoSvg:we("#374151","#FFFFFF")}}},eps:{displayName:"EPS",currencies:["eur"],countries:["AT"],theme:c("E","#C8102E","#FFFFFF")},giropay:{displayName:"Giropay",currencies:["eur"],countries:["DE"],theme:c("G","#0F4197","#FFFFFF")},ideal:{displayName:"iDEAL",currencies:["eur"],countries:["NL"],theme:c("i","#CC0066","#FFFFFF")},konbini:{displayName:"Konbini",currencies:["jpy"],countries:["JP"]},kr_card:{displayName:"Korean Card",currencies:["krw"],countries:["KR"],theme:c("K","#0B3D91","#FFFFFF")},multibanco:{displayName:"Multibanco",currencies:["eur"],countries:["PT"]},oxxo:{displayName:"OXXO",currencies:["mxn"],countries:["MX"]},p24:{displayName:"Przelewy24",currencies:["eur","pln"],countries:["PL"],theme:c("P","#D90F1B","#FFFFFF")},paynow:{displayName:"PayNow",currencies:["sgd"],countries:["SG"]},pix:{displayName:"Pix",currencies:["brl"],countries:["BR"]},promptpay:{displayName:"PromptPay",currencies:["thb"],countries:["TH"]},sepa_debit:{displayName:"SEPA Debit",currencies:["eur"],countries:it,theme:c("\u20AC","#10298E","#FFFFFF","#3056D3")},sofort:{displayName:"Sofort",currencies:["eur"],countries:["AT","BE","DE","ES","IT","NL"],theme:c("S","#EF809F","#FFFFFF")},upi:{displayName:"UPI",currencies:["inr"],countries:["IN"],theme:c("U","#FF7909","#FFFFFF")},us_bank_account:{displayName:"US Bank Account",currencies:["usd"],countries:["US"]},wechat_pay:{displayName:"WeChat Pay",currencies:["usd","cny"],theme:c("W","#07C160","#FFFFFF")},zip:{displayName:"Zip",currencies:["aud"],countries:["AU","NZ"]}};function st(e){return Ue.includes(e)}var ee=Object.entries(y).filter(([,e])=>e.express).map(([e])=>e),xr=new Set(ee),te=Object.fromEntries(Object.entries(y).map(([e,t])=>[e,t.currencies])),re=Object.fromEntries(Object.entries(y).filter(([,e])=>e.countries).map(([e,t])=>[e,t.countries]));function ut(e){return e?y[e]?.displayName??e.split("_").filter(Boolean).map(t=>t[0].toUpperCase()+t.slice(1)).join(" "):"this method"}function dt(e){return y[e]?.needsExplicitConfirm!==!1}function ct(e,t){let r=y[e]?.theme;return r?(typeof t=="string"&&t.endsWith("-dark")?r.dark:r.light)??r.light??null:null}function lt(e,t){if(!e||e.length===0)return[];if(!t)return[...e];let r=t.trim().toLowerCase();return r?e.filter(n=>{let o=te[n];return o?o.includes("*")||o.includes(r):!0}):[...e]}function pt(e,t){if(!e||e.length===0)return[];if(!t)return[...e];let r=t.trim().toUpperCase();return r?e.filter(n=>{let o=re[n];return o?o.includes("*")||o.includes(r):!0}):[...e]}var ne=Object.fromEntries(Object.entries(y).filter(([,e])=>e.amounts).map(([e,t])=>[e,t.amounts]));function mt(e,t,r){if(!e||e.length===0)return[];if(!t||typeof r!="number"||!Number.isFinite(r))return[...e];let n=t.trim().toLowerCase();return n?e.filter(o=>{let i=ne[o];if(!i)return!0;let s=i[n];return s?!(typeof s.min=="number"&&r<s.min||typeof s.max=="number"&&r>s.max):!0}):[...e]}function yt(e,t){if(!e||e.length===0)return{expressMethods:[],paymentElementMethods:[]};let r=[],n=[],o=new Set,i=new Set;for(let s of e){if(typeof s!="string")continue;let p=s.trim();if(!(!p||p==="card")&&!(t?.excludePaypal&&p==="paypal"))if(xr.has(p)){if(o.has(p))continue;o.add(p),r.push(p)}else{if(i.has(p))continue;i.add(p),n.push(p)}}return{expressMethods:r,paymentElementMethods:n}}var gt=["visa","mastercard","mastercard_debit","amex","discover"],R={AT:{currency:"EUR",symbol:"\u20AC",country:"Austria",countryCode:"AT",tax:1},BE:{currency:"EUR",symbol:"\u20AC",country:"Belgium",countryCode:"BE",tax:1},CY:{currency:"EUR",symbol:"\u20AC",country:"Cyprus",countryCode:"CY",tax:1},DE:{currency:"EUR",symbol:"\u20AC",country:"Germany",countryCode:"DE",tax:1},EE:{currency:"EUR",symbol:"\u20AC",country:"Estonia",countryCode:"EE",tax:1},ES:{currency:"EUR",symbol:"\u20AC",country:"Spain",countryCode:"ES",tax:1},FI:{currency:"EUR",symbol:"\u20AC",country:"Finland",countryCode:"FI",tax:1},FR:{currency:"EUR",symbol:"\u20AC",country:"France",countryCode:"FR",tax:1},GR:{currency:"EUR",symbol:"\u20AC",country:"Greece",countryCode:"GR",tax:1},HR:{currency:"EUR",symbol:"\u20AC",country:"Croatia",countryCode:"HR",tax:1},IE:{currency:"EUR",symbol:"\u20AC",country:"Ireland",countryCode:"IE",tax:1},IT:{currency:"EUR",symbol:"\u20AC",country:"Italy",countryCode:"IT",tax:1},LT:{currency:"EUR",symbol:"\u20AC",country:"Lithuania",countryCode:"LT",tax:1},LU:{currency:"EUR",symbol:"\u20AC",country:"Luxembourg",countryCode:"LU",tax:1},LV:{currency:"EUR",symbol:"\u20AC",country:"Latvia",countryCode:"LV",tax:1},MT:{currency:"EUR",symbol:"\u20AC",country:"Malta",countryCode:"MT",tax:1},NL:{currency:"EUR",symbol:"\u20AC",country:"Netherlands",countryCode:"NL",tax:1},PT:{currency:"EUR",symbol:"\u20AC",country:"Portugal",countryCode:"PT",tax:1},SI:{currency:"EUR",symbol:"\u20AC",country:"Slovenia",countryCode:"SI",tax:1},SK:{currency:"EUR",symbol:"\u20AC",country:"Slovakia",countryCode:"SK",tax:1},BG:{currency:"EUR",symbol:"\u20AC",country:"Bulgaria",countryCode:"BG",tax:1},RO:{currency:"EUR",symbol:"\u20AC",country:"Romania",countryCode:"RO",tax:1},CZ:{currency:"EUR",symbol:"\u20AC",country:"Czech Republic",countryCode:"CZ",tax:1},SE:{currency:"EUR",symbol:"\u20AC",country:"Sweden",countryCode:"SE",tax:1},DK:{currency:"EUR",symbol:"\u20AC",country:"Denmark",countryCode:"DK",tax:1},PL:{currency:"EUR",symbol:"\u20AC",country:"Poland",countryCode:"PL",tax:1},HU:{currency:"EUR",symbol:"\u20AC",country:"Hungary",countryCode:"HU",tax:1},GB:{currency:"GBP",symbol:"\xA3",country:"United Kingdom",countryCode:"GB",tax:1},US:{currency:"USD",symbol:"$",country:"United States",countryCode:"US",tax:0},CA:{currency:"CAD",symbol:"CA$",country:"Canada",countryCode:"CA",tax:0},NZ:{currency:"NZD",symbol:"NZ$",country:"New Zealand",countryCode:"NZ",tax:0},AU:{currency:"AUD",symbol:"AU$",country:"Australia",countryCode:"AU",tax:0}},M={currency:"USD",symbol:"$",country:"United States",countryCode:"US",tax:0};function Et(e){switch(e.toUpperCase()){case"US":return"ZIP Code";case"GB":return"Postcode";case"CA":return"Postal Code";case"AU":case"NZ":return"Postcode";case"IE":return"Eircode";default:return"Postal Code"}}var Ar=new Intl.DisplayNames(["en"],{type:"region"});function _r(e){return[...e.toUpperCase()].map(t=>String.fromCodePoint(127397+t.charCodeAt(0))).join("")}var ft=["US","GB","CA","AU","NZ","IE","DE","FR"],Fr=["AD","AE","AF","AG","AL","AM","AO","AR","AT","AU","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BN","BO","BR","BS","BT","BW","BY","BZ","CA","CD","CF","CG","CH","CI","CL","CM","CN","CO","CR","CU","CV","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","ER","ES","ET","FI","FJ","FM","FR","GA","GB","GD","GE","GH","GM","GN","GQ","GR","GT","GW","GY","HN","HR","HT","HU","ID","IE","IL","IN","IQ","IR","IS","IT","JM","JO","JP","KE","KG","KH","KI","KM","KN","KR","KW","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MG","MH","MK","ML","MM","MN","MR","MT","MU","MV","MW","MX","MY","MZ","NA","NE","NG","NI","NL","NO","NP","NR","NZ","OM","PA","PE","PG","PH","PK","PL","PT","PW","PY","QA","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SI","SK","SL","SM","SN","SO","SR","SS","ST","SV","SY","SZ","TD","TG","TH","TJ","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","US","UY","UZ","VA","VC","VE","VN","VU","WS","XK","YE","ZA","ZM","ZW"];function Ge(e){return{code:e,name:Ar.of(e)??e,flag:_r(e)}}var Pr=new Set(ft),Ir=Fr.filter(e=>!Pr.has(e)),oe=[...ft.map(Ge),...Ir.map(Ge)];function Ct(e){return oe.find(t=>t.code===e)}var Rr={country:!0,postal_code:!0};function ae(e){return e===!0?Rr:e||null}function Tt(e,t){if(!e)return!1;if(e===!0)return!0;let r=t.trim().toUpperCase();return e.some(n=>n.trim().toUpperCase()===r)}function St(e){let t=ae(e);return t?Object.values(t).some(r=>r===!0||Array.isArray(r)&&r.length>0):!1}var ie=[{code:"AL",name:"Alabama"},{code:"AK",name:"Alaska"},{code:"AZ",name:"Arizona"},{code:"AR",name:"Arkansas"},{code:"CA",name:"California"},{code:"CO",name:"Colorado"},{code:"CT",name:"Connecticut"},{code:"DE",name:"Delaware"},{code:"DC",name:"District of Columbia"},{code:"FL",name:"Florida"},{code:"GA",name:"Georgia"},{code:"HI",name:"Hawaii"},{code:"ID",name:"Idaho"},{code:"IL",name:"Illinois"},{code:"IN",name:"Indiana"},{code:"IA",name:"Iowa"},{code:"KS",name:"Kansas"},{code:"KY",name:"Kentucky"},{code:"LA",name:"Louisiana"},{code:"ME",name:"Maine"},{code:"MD",name:"Maryland"},{code:"MA",name:"Massachusetts"},{code:"MI",name:"Michigan"},{code:"MN",name:"Minnesota"},{code:"MS",name:"Mississippi"},{code:"MO",name:"Missouri"},{code:"MT",name:"Montana"},{code:"NE",name:"Nebraska"},{code:"NV",name:"Nevada"},{code:"NH",name:"New Hampshire"},{code:"NJ",name:"New Jersey"},{code:"NM",name:"New Mexico"},{code:"NY",name:"New York"},{code:"NC",name:"North Carolina"},{code:"ND",name:"North Dakota"},{code:"OH",name:"Ohio"},{code:"OK",name:"Oklahoma"},{code:"OR",name:"Oregon"},{code:"PA",name:"Pennsylvania"},{code:"RI",name:"Rhode Island"},{code:"SC",name:"South Carolina"},{code:"SD",name:"South Dakota"},{code:"TN",name:"Tennessee"},{code:"TX",name:"Texas"},{code:"UT",name:"Utah"},{code:"VT",name:"Vermont"},{code:"VA",name:"Virginia"},{code:"WA",name:"Washington"},{code:"WV",name:"West Virginia"},{code:"WI",name:"Wisconsin"},{code:"WY",name:"Wyoming"}],se=[{code:"AB",name:"Alberta"},{code:"BC",name:"British Columbia"},{code:"MB",name:"Manitoba"},{code:"NB",name:"New Brunswick"},{code:"NL",name:"Newfoundland and Labrador"},{code:"NS",name:"Nova Scotia"},{code:"NT",name:"Northwest Territories"},{code:"NU",name:"Nunavut"},{code:"ON",name:"Ontario"},{code:"PE",name:"Prince Edward Island"},{code:"QC",name:"Quebec"},{code:"SK",name:"Saskatchewan"},{code:"YT",name:"Yukon"}];function ht(e){switch(e.toUpperCase()){case"US":return ie;case"CA":return se;default:return null}}function bt(e){switch(e.toUpperCase()){case"US":return"State";case"CA":return"Province";case"GB":return"County";case"AU":return"State / Territory";default:return"State / Province / Region"}}function xt(e,t={}){let r=[],n=e.products??[],o=n.filter(u=>u.type==="subscription"),i=n.filter(u=>u.type!=="subscription"),p=(h(e.currency,void 0,void 0,n)??"USD").toUpperCase();for(let u of o){let m=u.totalAmount??0,C=u.overrideAmount??m,U=u.name||u.code||"Subscription";U==="4-WEEK PLAN"&&C<=1&&(U="7-DAY TRIAL: FULL ACCESS"),r.push({name:U,quantity:u.quantity,price:C,originalPrice:m})}if(!(t.hideBundledItems===!0&&o.length>0&&i.length>0))for(let u of i){let m=u.totalAmount??0,C=u.overrideAmount??m;r.push({name:u.name||u.code||"Item",quantity:u.quantity,price:C,originalPrice:m})}r.length===0&&r.push({name:"Purchase",quantity:1,price:e.amount/100,originalPrice:e.amount/100});let ir=r.reduce((u,m)=>u+m.originalPrice*m.quantity,0),sr=r.reduce((u,m)=>u+m.price*m.quantity,0),ur=typeof e.totalAmount=="number"&&Number.isFinite(e.totalAmount),dr=typeof e.subtotalAmount=="number"&&Number.isFinite(e.subtotalAmount),cr=typeof e.discountAmount=="number"&&Number.isFinite(e.discountAmount),Se=ur?e.totalAmount:sr,f=dr?e.subtotalAmount:ir,he=Math.max(0,f-Se),lr=f>0?Math.round(he/f*100):0;return{items:r,currency:p,total:Se,originalTotal:f,totalSave:he,discountPercent:lr,...cr?{couponDiscount:e.discountAmount}:{}}}var Mr=/^[a-z\d!#$%&'*+\-/=?^_`{|}~\u00A1-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+$/i,kr=/^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*$/i,Nr=/^([a-z\u00A1-\u00A8\u00AA-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i,Or=/^[a-z\u00a1-\uffff0-9-]+$/i;function At(e){return encodeURI(e).split(/%..|./).length-1}function Lr(e){let t=e.split("."),r=t[t.length-1]??"";return t.length>=2&&Nr.test(r)&&!/\s/.test(r)&&t.every(n=>n.length<=63&&Or.test(n)&&!/[\uff01-\uff5e]/.test(n)&&!/^-|-$/.test(n)&&!/_/.test(n))}function _t(e){if(typeof e!="string"||e.length===0||e.length>254)return!1;let t=e.split("@"),r=t.pop()??"",n=t.join("@");return At(n)>64||At(r)>254||!Lr(r)?!1:n.startsWith('"')&&n.endsWith('"')?kr.test(n.slice(1,-1)):n.split(".").every(o=>Mr.test(o))}var vr=new Set(["revolut_pay","sepa_debit","us_bank_account"]);function Dr(e){return e==="on_session"||e==="off_session"}function Ft(e,t,r){let n=typeof t=="string"?[t]:t,o=e?.futureUse;if(Dr(o)){let i=e?.futureUseUnsupported??[];return n.some(p=>i.some(Te=>Te.paymentMethodType===p))?void 0:o}switch(r){case"wallet":case"paypal":return"off_session";case"inline_apm":return n.length>0&&n.every(i=>vr.has(i))?"off_session":void 0;default:return}}var Pt="Idempotency-Key",k=255,It="IdempotencyKeyInProgress";function Br(){let e=globalThis.crypto;if(e&&(typeof e.randomUUID=="function"||typeof e.getRandomValues=="function"))return e}function ue(){let e=Br();if(!e)return;if(typeof e.randomUUID=="function")return e.randomUUID();if(typeof e.getRandomValues!="function")return;let t=new Uint8Array(16);return e.getRandomValues(t),Array.from(t,r=>r.toString(16).padStart(2,"0")).join("")}function Rt(e){if(e===void 0)return ue();if(typeof e!="string"||e.trim()==="")throw new d("idempotencyKey must be a non-empty string identifying exactly one checkout creation.","validation_error",{code:"InvalidIdempotencyKey",param:"idempotencyKey"});if(e.length>k)throw new d(`idempotencyKey must be at most ${k} characters.`,"validation_error",{code:"InvalidIdempotencyKey",param:"idempotencyKey"});return e}var Mt=1,kt=[{name:"checkout_mount"},{name:"sdk_loaded"},{name:"form_rendered"},{name:"card_expanded"},{name:"tokenize"},{name:"process_attempt"},{name:"3ds_challenge"},{name:"checkout_error",phase:"session_create"},{name:"checkout_error",phase:"sdk_load"},{name:"checkout_error",phase:"process"},{name:"checkout_error",phase:"wallets"}];var Ur=[[5,5,"NY"],[10,27,"MA"],[28,29,"RI"],[30,38,"NH"],[39,49,"ME"],[50,59,"VT"],[60,69,"CT"],[70,89,"NJ"],[100,149,"NY"],[150,196,"PA"],[197,199,"DE"],[200,205,"DC"],[206,219,"MD"],[220,246,"VA"],[247,268,"WV"],[270,289,"NC"],[290,299,"SC"],[300,319,"GA"],[320,349,"FL"],[350,369,"AL"],[370,385,"TN"],[386,397,"MS"],[398,399,"GA"],[400,427,"KY"],[430,459,"OH"],[460,479,"IN"],[480,499,"MI"],[500,528,"IA"],[530,549,"WI"],[550,567,"MN"],[570,577,"SD"],[580,588,"ND"],[590,599,"MT"],[600,629,"IL"],[630,658,"MO"],[660,679,"KS"],[680,693,"NE"],[700,714,"LA"],[716,729,"AR"],[730,749,"OK"],[750,799,"TX"],[800,816,"CO"],[820,831,"WY"],[832,838,"ID"],[840,847,"UT"],[850,865,"AZ"],[870,884,"NM"],[889,898,"NV"],[900,961,"CA"],[967,968,"HI"],[970,979,"OR"],[980,994,"WA"],[995,999,"AK"]],wr={A:"NL",B:"NS",C:"PE",E:"NB",G:"QC",H:"QC",J:"QC",K:"ON",L:"ON",M:"ON",N:"ON",P:"ON",R:"MB",S:"SK",T:"AB",V:"BC",X:"NT",Y:"YT"};function Vr(e){let t=e.replace(/\D/g,"");if(t.length<5)return null;let r=Number.parseInt(t.slice(0,3),10);if(!Number.isFinite(r))return null;for(let[n,o,i]of Ur)if(r>=n&&r<=o)return i;return null}function Gr(e){let t=e.replace(/\s+/g,"").toUpperCase();if(!/^[A-Z]\d[A-Z]\d[A-Z]\d$/.test(t))return null;let r=t[0]??"";return wr[r]??null}function Nt(e,t){if(!e||!t)return null;let r=e.trim().toUpperCase(),n=t.trim();if(!n)return null;switch(r){case"US":return Vr(n);case"CA":return Gr(n);default:return null}}var Yr=Cr(require("validator/lib/isPostalCode.js"),1),N=Yr,Ot=typeof N.default=="function"?N.default:N.default?.default;if(typeof Ot!="function")throw new Error("validator/lib/isPostalCode.js interop failed: unexpected module shape. This likely means the bundler's CJS/ESM interop changed.");var Lt=new Set(N.locales.map(e=>e.toUpperCase())),Kr={AUSTRALIA:"AU",BRAZIL:"BR",CANADA:"CA",CH:"CH",DENMARK:"DK",DE:"DE",DEUTSCHLAND:"DE",FRANCE:"FR",GB:"GB",GERMANY:"DE",GREATBRITAIN:"GB",GREAT_BRITAIN:"GB",INDIA:"IN",IRELAND:"IE",ITALY:"IT",JAPAN:"JP",MEXICO:"MX",NETHERLANDS:"NL",NEWZEALAND:"NZ",NORWAY:"NO",POLAND:"PL",PORTUGAL:"PT",SINGAPORE:"SG",SOUTHAFRICA:"ZA",SPAIN:"ES",SWEDEN:"SE",SWITZERLAND:"CH",UK:"GB",UNITEDKINGDOM:"GB",UNITEDSTATES:"US",US:"US",USA:"US","UNITED STATES":"US","UNITED KINGDOM":"GB","GREAT BRITAIN":"GB",ENGLAND:"GB"};function de(e){let t=(e??"").trim().toUpperCase();return t?t.length===2?t:Kr[t]??null:null}var zr={AU:"2000",BR:"01000-000",CA:"A1A 1A1",CH:"8001",DE:"10115",DK:"1050",ES:"28001",FR:"75008",GB:"SW1A 1AA",IE:"D02 X285",IN:"110001",IT:"00118",JP:"100-0001",MX:"06500",NL:"1012 JS",NO:"0150",NZ:"6011",PL:"00-001",PT:"1100-148",SE:"111 22",SG:"018989",US:"12345 or 12345-6789",ZA:"8001"};function vt(e){let t=de(e);return t!==null&&Lt.has(t)}function Dt(e,t){let r=(t??"").trim();if(!r)return!0;let n=de(e);if(n===null||!Lt.has(n))return!0;try{return Ot(r,n)}catch{return!0}}function Bt(e){let t=de(e);return t?zr[t]:void 0}var Ut=["card","wallet","paypal","apm"],wt=["card","wallet","paypal","apm"],Vt=["card","paypal","apple_pay","google_pay","sepa_debit","us_bank_account"];function Gt(e){return S(e)}var Hr=/(?:^|\/)dahlia\/stripe\.js(?:$|[?#])/i,qr=/^dahlia\/stripe$/i,Wr=/^(?:chrome|moz|safari-web)-extension:\/\//i,jr=/^@flopay(?:\/|$)/i;function Yt(e){return Hr.test(e)||Wr.test(e)}function Zr(e){let t=[e.filename,e.abs_path].filter(r=>r!==void 0&&r!=="<anonymous>");return e.module!==void 0&&jr.test(e.module)||t.some(r=>!Yt(r))?"first-party":e.module!==void 0&&qr.test(e.module)||t.some(Yt)?"third-party-hosted":t.length===0?"injected":"first-party"}function Kt(e){let t=e.exception?.values;if(!t||t.length===0)return e;let r=[];for(let o of t){let i=o.stacktrace?.frames;if(!i||i.length===0)return e;r.push(...i)}let n=r.map(Zr);return!n.includes("first-party")&&n.includes("third-party-hosted")?null:e}var zt=1,ce=["@flopay/shared","@flopay/js","@flopay/react"],Ht=32768,qt=20,$r=["stripe","paypal"],Xr=["card","wallet","paypal","apm","saved","unknown"],Jr=["apple_pay","google_pay"],Qr=["watchdog_expired","resolved","rejected","returned_error","resolved_late","rejected_late","returned_error_late"],en=["none","facebook","instagram","tiktok","generic_webview","other_in_app"],tn=["unknown","available","blocked"],rn=["popup","app_switch","redirect"],nn=["approved","cancelled","provider_declined","popup_blocked","provider_error","overlay_timeout"],on=["callback","sdk_initialize","checkout_mount","session_create","session_shell","session_claim","session_read","session_first_byte","session_complete","checkout_data_ready","checkout_render","provider_load","provider_ready","provider_confirmation","overlay_open","overlay_return","redirect","redirect_resume","vault_request","vault_mount","vault_ready","vault_submit","tokenization","three_ds_handoff","three_ds_return","processing","recovery","completion","unmount","total_journey"],le=["CALLBACK_FAILED","CHECKOUT_SESSION_CREATE_FAILED","CONFIGURATION_INVALID","INTERNAL_SDK_ERROR","NETWORK_REQUEST_FAILED","PAYMENT_PROCESSING_FAILED","POPUP_BLOCKED","PROVIDER_LOAD_FAILED","PROVIDER_RUNTIME_FAILED","RECOVERY_FAILED","REDIRECT_RESUME_FAILED","REQUEST_TIMEOUT","SDK_INITIALIZATION_FAILED","THREE_DS_FAILED","TOKENIZATION_FAILED","VAULT_LOAD_FAILED","VAULT_SUBMIT_FAILED"],pe=["server_error","transport_error","invalid_response","provider_runtime"],an=["authorization_declined","authentication_required","authorization_expired","capture_failed","unknown"],me=["sdk.initialize.started","sdk.initialize.ready","sdk.cache.hit","sdk.cache.miss","checkout.mount","session.create.started","session.shell.ready","session.claim.started","session.claim.completed","session.read.started","session.request.first_byte","session.request.completed","checkout.data.ready","checkout.rendered","checkout.recovery.started","checkout.recovery.completed","checkout.unmount","provider.load.started","provider.eligibility.checked","provider.availability.checked","provider.ready","provider.handoff.requested","provider.popup.opened","provider.overlay.opened","provider.overlay.returned","provider.redirect.started","provider.redirect.resumed","vault.capture.requested","vault.widget.mounted","vault.widget.ready","vault.submission.started","vault.action.required","vault.three_ds.handoff","vault.three_ds.returned","vault.terminal","payment.method.selected","payment.intent.started","payment.intent.completed","payment.provider_confirmation.started","payment.provider_confirmation.returned","payment.tokenization.started","payment.tokenization.completed","payment.processing.started","payment.processing.completed","payment.three_ds.handoff","payment.three_ds.returned","operation.retry","operation.deduplicated","operation.fallback","operation.cache.hit","operation.cache.miss","operation.recovery.started","operation.recovery.completed","operation.state_transition"],sn=["session_create","session_claim","session_read","intent_create","process_payment","vault_capture","account_snapshot","provider_sdk","other"],un=["2xx","3xx","4xx","5xx","network_error","timeout","unknown"],dn=["full","auto","confirm","setup","unknown"],cn=["embedded","buttons","automatic","unknown"],ln=["machine","buyer","total"],pn=["action_required","card_setup_declined","card_setup_succeeded","customer_abandoned","payment_cancelled","payment_declined","payment_authorized","payment_succeeded","validation_rejected"],ye=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,mn=/^\d{1,4}\.\d{1,4}\.\d{1,4}(?:-[0-9A-Za-z.-]{1,32})?$/,yn=new Set(le),gn=new Set(pe),En=new Set(an),O=new Set(on),fn=new Set($r),Cn=new Set(Xr),Tn=new Set(Jr),Sn=new Set(Qr),hn=new Set(en),bn=new Set(tn),xn=new Set(rn),An=new Set(nn),_n=new Set(me),Fn=new Set(dn),Pn=new Set(cn),In=new Set(sn),Rn=new Set(un),Mn=new Set(ln),kn=new Set(pn),Nn=new Set(ce),Wt=12e4;function l(e,t,r){return typeof e=="string"&&t.has(e)?e:r}function On(){try{let r=globalThis.crypto.randomUUID();if(ye.test(r))return r}catch{}let e=new Uint8Array(16);try{globalThis.crypto.getRandomValues(e)}catch{for(let r=0;r<e.length;r+=1)e[r]=Math.floor(Math.random()*256)}e[6]=(e[6]??0)&15|64,e[8]=(e[8]??0)&63|128;let t=[...e].map(r=>r.toString(16).padStart(2,"0")).join("");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}function g(e){return typeof e=="string"&&ye.test(e)?e:On()}function Ln(e){return typeof e=="string"&&ye.test(e)?e:void 0}function vn(e){return typeof e=="number"&&Number.isInteger(e)&&e>=0&&e<=100?e:void 0}function L(e){return Number.isSafeInteger(e)&&e>=0?Math.min(e,1e6):0}function jt(e){return!Number.isFinite(e)||e<0?0:Math.min(Math.round(e),Wt)}function Dn(e){return Number.isFinite(e)&&e>Wt}function v(e,t){let r=vn(t.attempt);return t.provider&&fn.has(t.provider)&&(e.provider=t.provider),r!==void 0&&(e.attempt=r),t.statusClass&&(e.statusClass=l(t.statusClass,Rn,"unknown")),t.requestCategory&&(e.requestCategory=l(t.requestCategory,In,"other")),t.paymentMethodCategory&&(e.paymentMethodCategory=l(t.paymentMethodCategory,Cn,"unknown")),t.walletType&&Tn.has(t.walletType)&&(e.walletType=t.walletType),t.operationOutcome&&Sn.has(t.operationOutcome)&&(e.operationOutcome=t.operationOutcome),t.checkoutMode&&(e.checkoutMode=l(t.checkoutMode,Fn,"unknown")),t.layout&&(e.layout=l(t.layout,Pn,"unknown")),typeof t.inAppBrowser=="boolean"&&(e.inAppBrowser=t.inAppBrowser),t.appFamily&&hn.has(t.appFamily)&&(e.appFamily=t.appFamily),t.popupCapability&&bn.has(t.popupCapability)&&(e.popupCapability=t.popupCapability),t.presentationMode&&xn.has(t.presentationMode)&&(e.presentationMode=t.presentationMode),t.terminalReason&&An.has(t.terminalReason)&&(e.terminalReason=t.terminalReason),e}function ge(e){let t=v({eventId:g(e.eventId),class:"technical_error",code:l(e.errorCode,yn,"INTERNAL_SDK_ERROR"),stage:l(e.stage,O,"sdk_initialize"),sequence:L(e.sequence)},e);if(e.failureCategory&&gn.has(e.failureCategory)&&(t.failureCategory=e.failureCategory),e.reason!==void 0&&(t.reason=l(e.reason,En,"unknown")),e.stage!=="provider_confirmation"){let r=Ln(e.checkoutSessionId);r&&(t.checkoutSessionId=r)}return e.durationMs!==void 0&&(t.durationMs=jt(e.durationMs)),t}function Ee(e){return v({eventId:g(e.eventId),class:"lifecycle",name:l(e.name,_n,"operation.retry"),stage:l(e.stage,O,"sdk_initialize"),sequence:L(e.sequence)},e)}function fe(e){let t={...e,stage:e.stage??"completion"};return v({eventId:g(e.eventId),class:"expected_outcome",outcome:l(e.outcome,kn,"customer_abandoned"),stage:l(e.stage,O,"completion"),sequence:L(e.sequence)},t)}function Ce(e){let t=v({eventId:g(e.eventId),class:"performance",stage:l(e.stage,O,"sdk_initialize"),sequence:L(e.sequence),durationMs:jt(e.durationMs),durationMode:l(e.durationMode,Mn,"machine")},e);return(e.durationTruncated===!0||Dn(e.durationMs))&&(t.durationTruncated=!0),t}function Zt(e,t){let r=e.slice(0,20).flatMap(o=>o.class==="technical_error"?[ge({...o,errorCode:o.code})]:o.class==="lifecycle"?[Ee(o)]:o.class==="expected_outcome"?[fe(o)]:o.class==="performance"?[Ce(o)]:[]),n={schemaVersion:1,batchId:g(t.batchId),correlationId:g(t.correlationId),sdk:{package:l(t.sdkPackage,Nn,"@flopay/shared"),version:mn.test(t.sdkVersion)?t.sdkVersion:"0.0.0"},events:r};return JSON.stringify(n)}var Bn=new Set(["InvalidCheckoutSessionResponse","InvalidPaymentProcessResponse","InvalidSessionIntentResponse"]);function $t(e,t){if(e===422)return"validation_rejected";if(e===400&&!(t===null||typeof t!="object"||Array.isArray(t)))return Array.isArray(t.fields)?"validation_rejected":"payment_declined"}function Xt(e,t,r="network_error"){if(e instanceof SyntaxError)return{errorCode:t,statusClass:"unknown",failureCategory:"invalid_response"};if(e instanceof d&&e.code!==void 0&&Bn.has(e.code))return{errorCode:t,statusClass:D(e.statusCode,"unknown"),failureCategory:"invalid_response"};if(e instanceof Error&&(e.name==="AbortError"||e instanceof d&&e.code==="checkout_processing_timeout"))return{errorCode:"REQUEST_TIMEOUT",statusClass:"timeout",failureCategory:"transport_error"};if(e instanceof TypeError||e instanceof d&&e.type==="network_error")return{errorCode:"NETWORK_REQUEST_FAILED",statusClass:"network_error",failureCategory:"transport_error"};let n=D(e instanceof d?e.statusCode:void 0,r);return{errorCode:t,statusClass:n,...n==="5xx"?{failureCategory:"server_error"}:{}}}function D(e,t="network_error"){if(e===void 0)return t;let r=`${Math.floor(e/100)}xx`;return r==="2xx"||r==="3xx"||r==="4xx"||r==="5xx"?r:"unknown"}function Jt(e){if(e!=null)switch(e){case"sandbox":case"stage":return"sandbox";case"live":case"production":return"live";default:console.warn(`[FloPay] Unrecognized gateway environment "${e}". Expected one of: sandbox, live, stage, production. Falling back to undefined.`);return}}var B=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function Qt(e){return typeof e=="string"&&B.test(e)}function er(){try{let r=globalThis.crypto.randomUUID();if(B.test(r))return r}catch{}let e=new Uint8Array(16);try{globalThis.crypto.getRandomValues(e)}catch{for(let r=0;r<e.length;r+=1)e[r]=Math.floor(Math.random()*256)}e[6]=(e[6]??0)&15|64,e[8]=(e[8]??0)&63|128;let t=[...e].map(r=>r.toString(16).padStart(2,"0")).join("");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}function tr(e){return R[e.toUpperCase()]??M}function rr(e){return/^pk_(test|live)_[A-Za-z0-9]+$/.test(e)}function nr(e){return/^sk_(test|live)_[A-Za-z0-9]+$/.test(e)}function or(e){return typeof e=="string"&&e.startsWith("seti_")}function ar(...e){return/^\s*card\s+holder\s+name\s*$/i.test(e.join(" "))}0&&(module.exports={ASYNC_AUTO_CHECKOUT_CAPABILITY,BILLING_API_URL,BILLING_API_URL_PRODUCTION,BILLING_API_URL_STAGING,BOLD_DARK_APPEARANCE,BOLD_LIGHT_APPEARANCE,BUTTONS_LAYOUT_BOLD_DARK,BUTTONS_LAYOUT_BOLD_LIGHT,BUTTONS_LAYOUT_DARK,BUTTONS_LAYOUT_DEFAULT,BUTTONS_LAYOUT_GLASS_DARK,BUTTONS_LAYOUT_GLASS_LIGHT,BUTTONS_LAYOUT_MINIMAL,BUTTONS_LAYOUT_MODERN_DARK,BUTTONS_LAYOUT_MODERN_LIGHT,BUTTONS_LAYOUT_ROUNDED,CA_PROVINCES,CHECKOUT_PROCESSING_TIMEOUT_MESSAGE,COUNTRY_OPTIONS,CURRENCY_MAP,DEFAULT_API_BASE_URL,DEFAULT_API_VERSION,DEFAULT_APPEARANCE,DEFAULT_CURRENCY,FLAT_APPEARANCE,FLO_INSTRUMENT_CATALOG,FLO_INSTRUMENT_SCHEMA_VERSION,FLO_SDK_CAPABILITIES_HEADER,FLO_SDK_VERSION_HEADER,FloPayError,GLASS_DARK_APPEARANCE,GLASS_LIGHT_APPEARANCE,IDEMPOTENCY_IN_PROGRESS_CODE,IDEMPOTENCY_KEY_HEADER,MAX_IDEMPOTENCY_KEY_LENGTH,MODERN_DARK_APPEARANCE,MODERN_LIGHT_APPEARANCE,NIGHT_APPEARANCE,PAYPAL_VAULTED_PAYMENT_METHOD_TYPE,SAVED_PAYMENT_METHOD_FAMILIES,SAVED_PAYMENT_METHOD_LIST_TYPES,SAVED_PAYMENT_METHOD_TYPES,SDK_VERSION,STORED_PAYMENT_METHOD_UNSUPPORTED_CODE,STORED_PAYMENT_METHOD_UNSUPPORTED_MESSAGE,STRIPE_EXPRESS_METHODS,STRIPE_METHOD_AMOUNT_LIMITS,STRIPE_METHOD_COUNTRIES,STRIPE_METHOD_CURRENCIES,STRIPE_METHOD_MATRIX,SUPPORTED_CARD_BRANDS,TELEMETRY_ERROR_CODES,TELEMETRY_FAILURE_CATEGORIES,TELEMETRY_LOG_NAMES,TELEMETRY_MAX_BATCH_BYTES,TELEMETRY_MAX_BATCH_EVENTS,TELEMETRY_SCHEMA_VERSION,TELEMETRY_SDK_PACKAGES,THEMES,THREE_DS_CHALLENGE_WINDOW_MS,US_STATES,UUID_V4,apiError,assertCaptureMethodEligible,authenticationError,buildCheckoutDisplayData,buildItemPayload,buildProductPayload,buildSubscriptionPayload,buildTelemetryErrorEvent,buildTelemetryLogEvent,buildTelemetryPerformanceEvent,buildTelemetryTerminalEvent,classifyPaymentRejection,classifyTelemetryFailure,configureFlopay,dropThirdPartyOnlyError,filterStripeMethodsByAmount,filterStripeMethodsByCountry,filterStripeMethodsByCurrency,foldIntoProducts,generateIdempotencyKey,getConfiguredBillingApiUrl,getCountryByCode,getCurrencyByCountry,getFloPayEnvironment,getPostalCodeExample,getPostalCodeLabel,getStateFromPostalCode,getStateLabel,getStateOptions,getStripeMethodDisplayName,hasVendoredStripeMethodLogo,isAVSEnabled,isAVSFieldVisible,isAuthorizationOnlySession,isCardHolderNamePlaceholder,isCardSetupCheckoutSession,isDetachedSessionEligible,isMoneySettledOutcome,isPostalCodeSupported,isSetupCheckoutSession,isSetupIntentClientSecret,isUuidV4,isValidEmail,isValidPostalCode,isValidPublishableKey,isValidSecretKey,needsStripeMethodExplicitConfirm,networkError,normalizeCheckoutFailureOutcome,normalizeGatewayEnvironment,partitionStripeMethods,randomUuidV4,rateLimitError,resolveAVSConfig,resolveBillingApiUrl,resolveButtonsLayoutTheme,resolveIdempotencyKey,resolveSessionCurrency,resolveSetupFutureUsage,resolveStripeMethodBrandVariant,resolveTheme,serializeTelemetryBatch,stripeExpressMethodToOptionKey,telemetryStatusClass,validationError});
package/dist/index.d.cts CHANGED
@@ -532,8 +532,21 @@ interface PaymentMethodRemovalRetryableError {
532
532
  }
533
533
  /** Stable error union for merchant-server saved-method removal calls. */
534
534
  type PaymentMethodRemovalError = PaymentMethodRemovalNotFoundError | PaymentMethodRemovalConflictError | PaymentMethodRemovalRetryableError;
535
- /** How a card verified by card setup will be charged later. */
535
+ /**
536
+ * Stripe's future-use values. Future use is platform policy: the billing API
537
+ * sets every Stripe attempt up `'off_session'` and reports it on the session
538
+ * read as `CheckoutSession.futureUse`.
539
+ */
536
540
  type CardSetupFutureUse = 'on_session' | 'off_session';
541
+ /**
542
+ * A method the billing API cannot set up for future use (read field
543
+ * `futureUseUnsupported`). `reason` is the billing API's own code, passed
544
+ * through unchanged.
545
+ */
546
+ interface FutureUseUnsupportedMethod {
547
+ paymentMethodType: string;
548
+ reason: string;
549
+ }
537
550
  /**
538
551
  * Body of the merchant-authenticated `POST /v1/checkouts/sessions/setup`
539
552
  * request. Type-only: no FloPay package sends it or holds the merchant
@@ -566,9 +579,9 @@ interface CreateCardSetupSessionRequest {
566
579
  */
567
580
  currency?: string | null;
568
581
  /**
569
- * Omitted or `null` means `'off_session'`. Send `'on_session'` only for a
570
- * card that will be charged only while the customer is present; a card used
571
- * both ways is set up with `'off_session'`.
582
+ * @deprecated Future use is platform policy: the billing API always sets up
583
+ * `'off_session'` and ignores this value. Still accepted, so existing
584
+ * requests keep working; leave it out of new code.
572
585
  */
573
586
  futureUse?: CardSetupFutureUse | null;
574
587
  }
@@ -738,6 +751,20 @@ interface CheckoutSession {
738
751
  * exactly as received. Absent on older backends, which a card-only client may ignore.
739
752
  */
740
753
  advertisedPaymentMethods?: AdvertisedPaymentMethod[];
754
+ /**
755
+ * The usage the billing API sets every Stripe attempt of this session up for
756
+ * (platform policy, sdk#430 / backend#1989), exactly as the purchase or setup
757
+ * read returns it. Absent on older backends. Stripe Elements declare it
758
+ * through `resolveSetupFutureUsage`; the SDK never chooses or coerces it.
759
+ */
760
+ futureUse?: CardSetupFutureUse | null;
761
+ /**
762
+ * Methods the billing API cannot set up for future use, each with a reason,
763
+ * exactly as the read returns them (malformed entries dropped). A listed
764
+ * method declares no `setupFutureUsage` and stays payable one-off. Absent on
765
+ * older backends.
766
+ */
767
+ futureUseUnsupported?: FutureUseUnsupportedMethod[];
741
768
  /** Whether the backend has resolved and attached a buyer to this session. */
742
769
  buyerIdentified?: boolean;
743
770
  /**
@@ -2132,7 +2159,7 @@ declare function getConfiguredBillingApiUrl(): string;
2132
2159
  declare function getFloPayEnvironment(): FloPayEnvironment;
2133
2160
 
2134
2161
  /** Current SDK version. */
2135
- declare const SDK_VERSION = "1.10.6";
2162
+ declare const SDK_VERSION = "1.11.0";
2136
2163
  /**
2137
2164
  * HTTP header the SDK sends on checkout-session create/read requests so the
2138
2165
  * backend can observe compatibility. Version 1.4.9 is the first release that
@@ -2650,6 +2677,30 @@ declare function buildCheckoutDisplayData(session: CheckoutSession, options?: Bu
2650
2677
  /** Return true only for a non-blank email accepted by the backend validator. */
2651
2678
  declare function isValidEmail(email: string | null | undefined): email is string;
2652
2679
 
2680
+ /**
2681
+ * The Stripe Elements group asking for a usage. It only selects which of
2682
+ * today's values a legacy read (one without `futureUse`) keeps.
2683
+ */
2684
+ type FutureUseSurface = 'wallet' | 'paypal' | 'inline_apm' | 'setup';
2685
+ /** The session fields the platform future-use policy is read from. */
2686
+ type FutureUseSessionFields = Pick<CheckoutSession, 'futureUse' | 'futureUseUnsupported'>;
2687
+ /**
2688
+ * The one place every Stripe Elements group gets its `setupFutureUsage`.
2689
+ *
2690
+ * Future use is platform policy, decided by the billing API. When the session
2691
+ * read carries `futureUse`, the group declares exactly that value, unless one
2692
+ * of the methods it collects is listed in `futureUseUnsupported`, in which
2693
+ * case it declares none (the method stays payable one-off). The SDK never
2694
+ * coerces or defaults the read's value.
2695
+ *
2696
+ * A legacy read (no known `futureUse`) keeps each group's historic value:
2697
+ * wallets and PayPal `off_session`, inline APMs their historic list, and the
2698
+ * setup surface nothing.
2699
+ *
2700
+ * @returns the usage to declare, or `undefined` to declare none.
2701
+ */
2702
+ declare function resolveSetupFutureUsage(session: FutureUseSessionFields | null | undefined, methods: string | readonly string[], surface: FutureUseSurface): CardSetupFutureUse | undefined;
2703
+
2653
2704
  /**
2654
2705
  * HTTP header the SDK sends to make checkout-session creation idempotent
2655
2706
  * (TeamFloPay/backend#972, paired SDK issue TeamFloPay/sdk#133).
@@ -2883,4 +2934,4 @@ declare function isSetupIntentClientSecret(clientSecret: string | null | undefin
2883
2934
  /** Treat the checkout's normalized fallback cardholder sentinel as absent. */
2884
2935
  declare function isCardHolderNamePlaceholder(...nameParts: Array<string | null | undefined>): boolean;
2885
2936
 
2886
- export { ASYNC_AUTO_CHECKOUT_CAPABILITY, type AVSFieldConfig, type AdvertisedPaymentMethod, BILLING_API_URL, BILLING_API_URL_PRODUCTION, BILLING_API_URL_STAGING, BOLD_DARK_APPEARANCE, BOLD_LIGHT_APPEARANCE, BUTTONS_LAYOUT_BOLD_DARK, BUTTONS_LAYOUT_BOLD_LIGHT, BUTTONS_LAYOUT_DARK, BUTTONS_LAYOUT_DEFAULT, BUTTONS_LAYOUT_GLASS_DARK, BUTTONS_LAYOUT_GLASS_LIGHT, BUTTONS_LAYOUT_MINIMAL, BUTTONS_LAYOUT_MODERN_DARK, BUTTONS_LAYOUT_MODERN_LIGHT, BUTTONS_LAYOUT_ROUNDED, type BeforeButtonClickEvent, type BillingDetails, type BillingProvider, type BuildCheckoutDisplayDataOptions, type BuildTelemetryErrorEventInput, type BuildTelemetryLogEventInput, type BuildTelemetryPerformanceEventInput, type BuildTelemetryTerminalEventInput, type ButtonsLayoutStyles, type ButtonsLayoutTheme, CA_PROVINCES, CHECKOUT_PROCESSING_TIMEOUT_MESSAGE, COUNTRY_OPTIONS, CURRENCY_MAP, type CaptureMethod, type CardCaptureAdapter, type CardCaptureEventType, type CardCaptureMountOptions, type CardCaptureOutcomeEvent, type CardCaptureProviderId, type CardSetupFutureUse, type CheckoutAccount, type CheckoutButtonMethod, type CheckoutDisplayData, type CheckoutFailureOutcome, type CheckoutGateway, type CheckoutGateways, type CheckoutItem, type CheckoutMetadata, type CheckoutMode, type CheckoutModeKind, type CheckoutProcessError, type CheckoutProcessingPending, type CheckoutProduct, type CheckoutProductType, type CheckoutSession, type CheckoutSessionMode, type CheckoutSessionProduct, type CheckoutSessionResult, type CheckoutSubscription, type ClassifiedTelemetryFailure, type CountryOption, type CreateCardSetupSessionRequest, type CreateCustomerParams, type CreateSessionIntentRequest, type CreateSessionParams, type CurrencyInfo, type Customer, DEFAULT_API_BASE_URL, DEFAULT_API_VERSION, DEFAULT_APPEARANCE, DEFAULT_CURRENCY, type DeclineEvent, type DetachedCheckoutSession, type DisplayLineItem, type ExternalMethodFailureDetails, FLAT_APPEARANCE, FLO_INSTRUMENT_CATALOG, FLO_INSTRUMENT_SCHEMA_VERSION, FLO_SDK_CAPABILITIES_HEADER, FLO_SDK_VERSION_HEADER, type FloInstrumentErrorPhase, type FloInstrumentEvent, type FloInstrumentLifecycleName, type FloPayAppearance, type FloPayConfig, type FloPayEnvironment, FloPayError, type FloPayErrorType, type FloPayThemeVariables, GLASS_DARK_APPEARANCE, GLASS_LIGHT_APPEARANCE, type GatewayEnvironment, IDEMPOTENCY_IN_PROGRESS_CODE, IDEMPOTENCY_KEY_HEADER, type InlineSessionDraft, type InlineSessionParams, type InlineSessionPatch, type LineItem, type ListSavedPaymentMethodsQuery, MAX_IDEMPOTENCY_KEY_LENGTH, MODERN_DARK_APPEARANCE, MODERN_LIGHT_APPEARANCE, NIGHT_APPEARANCE, type NonCardPaymentMethodCategory, type NormalizedCheckoutSession, type NormalizedGatewayEnvironment, PAYPAL_VAULTED_PAYMENT_METHOD_TYPE, type PayPalApprovalPresentation, type PayPalPaymentResult, type PayPalProviderObjectType, type PayPalSessionIntent, type PayPalSessionIntentRequest, type PaymentMethodRemovalConflictCode, type PaymentMethodRemovalConflictError, type PaymentMethodRemovalError, type PaymentMethodRemovalFailureReason, type PaymentMethodRemovalNotFoundError, type PaymentMethodRemovalRetryableError, type PaymentProviderAdapter, type PaymentResult, type PriceData, type ProcessPaymentParams, type RecurringInterval, SAVED_PAYMENT_METHOD_FAMILIES, SAVED_PAYMENT_METHOD_LIST_TYPES, SAVED_PAYMENT_METHOD_TYPES, SDK_VERSION, STORED_PAYMENT_METHOD_UNSUPPORTED_CODE, STORED_PAYMENT_METHOD_UNSUPPORTED_MESSAGE, STRIPE_EXPRESS_METHODS, STRIPE_METHOD_AMOUNT_LIMITS, STRIPE_METHOD_COUNTRIES, STRIPE_METHOD_CURRENCIES, STRIPE_METHOD_MATRIX, SUPPORTED_CARD_BRANDS, type SavedCardDisplay, type SavedCardPaymentMethodDisplay, type SavedOtherPaymentMethodDisplay, type SavedPaymentMethodDisplay, type SavedPaymentMethodFamily, type SavedPaymentMethodListType, type SavedPaymentMethodStatus, type SavedPaymentMethodType, type SentryEventLike, type SentryStackFrameLike, type SerializeTelemetryBatchOptions, type SessionIntent, type SessionIntentDeclineRequest, type StateOption, type StoredPaymentMethodOutcomeCode, type StripeMethodEntry, type StripeMethodThemeVariant, type StripeSessionIntent, type StripeSessionIntentRequest, TELEMETRY_ERROR_CODES, TELEMETRY_FAILURE_CATEGORIES, TELEMETRY_LOG_NAMES, TELEMETRY_MAX_BATCH_BYTES, TELEMETRY_MAX_BATCH_EVENTS, TELEMETRY_SCHEMA_VERSION, TELEMETRY_SDK_PACKAGES, THEMES, THREE_DS_CHALLENGE_WINDOW_MS, type TagsData, type TelemetryAppFamily, type TelemetryBatchEnvelope, type TelemetryCheckoutMode, type TelemetryDurationMode, type TelemetryErrorCode, type TelemetryErrorEvent, type TelemetryErrorReason, type TelemetryEvent, type TelemetryEventClass, type TelemetryExpectedOutcome, type TelemetryExpectedOutcomeEvent, type TelemetryFailureCategory, type TelemetryLayout, type TelemetryLogEvent, type TelemetryLogName, type TelemetryPaymentMethodCategory, type TelemetryPerformanceEvent, type TelemetryPopupCapability, type TelemetryPresentationMode, type TelemetryProvider, type TelemetryProviderInput, type TelemetryRequestCategory, type TelemetrySdkPackage, type TelemetryStage, type TelemetryStatusClass, type TelemetryTerminalReason, type ThemeBundle, type ThemeBundleId, type ThemeId, type TokenizedBody, US_STATES, UUID_V4, type UpdateCustomerParams, type VaultCaptureBlock, type VaultCaptureResultMessage, type VaultCardFieldKey, type VaultCardThemeColors, type VaultGradientStop, type VaultLinearGradientBackground, type VaultShadowLayer, type VaultSolidBackground, type VaultSubmitBackground, type VaultSubmitButtonTheme, type VaultSubmitSpacing, type VaultSubmitTypography, type VaultThemeColor, type WalletPresentation, type WebhookEvent, apiError, assertCaptureMethodEligible, authenticationError, buildCheckoutDisplayData, buildItemPayload, buildProductPayload, buildSubscriptionPayload, buildTelemetryErrorEvent, buildTelemetryLogEvent, buildTelemetryPerformanceEvent, buildTelemetryTerminalEvent, classifyPaymentRejection, classifyTelemetryFailure, configureFlopay, dropThirdPartyOnlyError, filterStripeMethodsByAmount, filterStripeMethodsByCountry, filterStripeMethodsByCurrency, foldIntoProducts, generateIdempotencyKey, getConfiguredBillingApiUrl, getCountryByCode, getCurrencyByCountry, getFloPayEnvironment, getPostalCodeExample, getPostalCodeLabel, getStateFromPostalCode, getStateLabel, getStateOptions, getStripeMethodDisplayName, hasVendoredStripeMethodLogo, isAVSEnabled, isAVSFieldVisible, isAuthorizationOnlySession, isCardHolderNamePlaceholder, isCardSetupCheckoutSession, isDetachedSessionEligible, isMoneySettledOutcome, isPostalCodeSupported, isSetupCheckoutSession, isSetupIntentClientSecret, isUuidV4, isValidEmail, isValidPostalCode, isValidPublishableKey, isValidSecretKey, needsStripeMethodExplicitConfirm, networkError, normalizeCheckoutFailureOutcome, normalizeGatewayEnvironment, partitionStripeMethods, randomUuidV4, rateLimitError, resolveAVSConfig, resolveBillingApiUrl, resolveButtonsLayoutTheme, resolveIdempotencyKey, resolveSessionCurrency, resolveStripeMethodBrandVariant, resolveTheme, serializeTelemetryBatch, stripeExpressMethodToOptionKey, telemetryStatusClass, validationError };
2937
+ export { ASYNC_AUTO_CHECKOUT_CAPABILITY, type AVSFieldConfig, type AdvertisedPaymentMethod, BILLING_API_URL, BILLING_API_URL_PRODUCTION, BILLING_API_URL_STAGING, BOLD_DARK_APPEARANCE, BOLD_LIGHT_APPEARANCE, BUTTONS_LAYOUT_BOLD_DARK, BUTTONS_LAYOUT_BOLD_LIGHT, BUTTONS_LAYOUT_DARK, BUTTONS_LAYOUT_DEFAULT, BUTTONS_LAYOUT_GLASS_DARK, BUTTONS_LAYOUT_GLASS_LIGHT, BUTTONS_LAYOUT_MINIMAL, BUTTONS_LAYOUT_MODERN_DARK, BUTTONS_LAYOUT_MODERN_LIGHT, BUTTONS_LAYOUT_ROUNDED, type BeforeButtonClickEvent, type BillingDetails, type BillingProvider, type BuildCheckoutDisplayDataOptions, type BuildTelemetryErrorEventInput, type BuildTelemetryLogEventInput, type BuildTelemetryPerformanceEventInput, type BuildTelemetryTerminalEventInput, type ButtonsLayoutStyles, type ButtonsLayoutTheme, CA_PROVINCES, CHECKOUT_PROCESSING_TIMEOUT_MESSAGE, COUNTRY_OPTIONS, CURRENCY_MAP, type CaptureMethod, type CardCaptureAdapter, type CardCaptureEventType, type CardCaptureMountOptions, type CardCaptureOutcomeEvent, type CardCaptureProviderId, type CardSetupFutureUse, type CheckoutAccount, type CheckoutButtonMethod, type CheckoutDisplayData, type CheckoutFailureOutcome, type CheckoutGateway, type CheckoutGateways, type CheckoutItem, type CheckoutMetadata, type CheckoutMode, type CheckoutModeKind, type CheckoutProcessError, type CheckoutProcessingPending, type CheckoutProduct, type CheckoutProductType, type CheckoutSession, type CheckoutSessionMode, type CheckoutSessionProduct, type CheckoutSessionResult, type CheckoutSubscription, type ClassifiedTelemetryFailure, type CountryOption, type CreateCardSetupSessionRequest, type CreateCustomerParams, type CreateSessionIntentRequest, type CreateSessionParams, type CurrencyInfo, type Customer, DEFAULT_API_BASE_URL, DEFAULT_API_VERSION, DEFAULT_APPEARANCE, DEFAULT_CURRENCY, type DeclineEvent, type DetachedCheckoutSession, type DisplayLineItem, type ExternalMethodFailureDetails, FLAT_APPEARANCE, FLO_INSTRUMENT_CATALOG, FLO_INSTRUMENT_SCHEMA_VERSION, FLO_SDK_CAPABILITIES_HEADER, FLO_SDK_VERSION_HEADER, type FloInstrumentErrorPhase, type FloInstrumentEvent, type FloInstrumentLifecycleName, type FloPayAppearance, type FloPayConfig, type FloPayEnvironment, FloPayError, type FloPayErrorType, type FloPayThemeVariables, type FutureUseSessionFields, type FutureUseSurface, type FutureUseUnsupportedMethod, GLASS_DARK_APPEARANCE, GLASS_LIGHT_APPEARANCE, type GatewayEnvironment, IDEMPOTENCY_IN_PROGRESS_CODE, IDEMPOTENCY_KEY_HEADER, type InlineSessionDraft, type InlineSessionParams, type InlineSessionPatch, type LineItem, type ListSavedPaymentMethodsQuery, MAX_IDEMPOTENCY_KEY_LENGTH, MODERN_DARK_APPEARANCE, MODERN_LIGHT_APPEARANCE, NIGHT_APPEARANCE, type NonCardPaymentMethodCategory, type NormalizedCheckoutSession, type NormalizedGatewayEnvironment, PAYPAL_VAULTED_PAYMENT_METHOD_TYPE, type PayPalApprovalPresentation, type PayPalPaymentResult, type PayPalProviderObjectType, type PayPalSessionIntent, type PayPalSessionIntentRequest, type PaymentMethodRemovalConflictCode, type PaymentMethodRemovalConflictError, type PaymentMethodRemovalError, type PaymentMethodRemovalFailureReason, type PaymentMethodRemovalNotFoundError, type PaymentMethodRemovalRetryableError, type PaymentProviderAdapter, type PaymentResult, type PriceData, type ProcessPaymentParams, type RecurringInterval, SAVED_PAYMENT_METHOD_FAMILIES, SAVED_PAYMENT_METHOD_LIST_TYPES, SAVED_PAYMENT_METHOD_TYPES, SDK_VERSION, STORED_PAYMENT_METHOD_UNSUPPORTED_CODE, STORED_PAYMENT_METHOD_UNSUPPORTED_MESSAGE, STRIPE_EXPRESS_METHODS, STRIPE_METHOD_AMOUNT_LIMITS, STRIPE_METHOD_COUNTRIES, STRIPE_METHOD_CURRENCIES, STRIPE_METHOD_MATRIX, SUPPORTED_CARD_BRANDS, type SavedCardDisplay, type SavedCardPaymentMethodDisplay, type SavedOtherPaymentMethodDisplay, type SavedPaymentMethodDisplay, type SavedPaymentMethodFamily, type SavedPaymentMethodListType, type SavedPaymentMethodStatus, type SavedPaymentMethodType, type SentryEventLike, type SentryStackFrameLike, type SerializeTelemetryBatchOptions, type SessionIntent, type SessionIntentDeclineRequest, type StateOption, type StoredPaymentMethodOutcomeCode, type StripeMethodEntry, type StripeMethodThemeVariant, type StripeSessionIntent, type StripeSessionIntentRequest, TELEMETRY_ERROR_CODES, TELEMETRY_FAILURE_CATEGORIES, TELEMETRY_LOG_NAMES, TELEMETRY_MAX_BATCH_BYTES, TELEMETRY_MAX_BATCH_EVENTS, TELEMETRY_SCHEMA_VERSION, TELEMETRY_SDK_PACKAGES, THEMES, THREE_DS_CHALLENGE_WINDOW_MS, type TagsData, type TelemetryAppFamily, type TelemetryBatchEnvelope, type TelemetryCheckoutMode, type TelemetryDurationMode, type TelemetryErrorCode, type TelemetryErrorEvent, type TelemetryErrorReason, type TelemetryEvent, type TelemetryEventClass, type TelemetryExpectedOutcome, type TelemetryExpectedOutcomeEvent, type TelemetryFailureCategory, type TelemetryLayout, type TelemetryLogEvent, type TelemetryLogName, type TelemetryPaymentMethodCategory, type TelemetryPerformanceEvent, type TelemetryPopupCapability, type TelemetryPresentationMode, type TelemetryProvider, type TelemetryProviderInput, type TelemetryRequestCategory, type TelemetrySdkPackage, type TelemetryStage, type TelemetryStatusClass, type TelemetryTerminalReason, type ThemeBundle, type ThemeBundleId, type ThemeId, type TokenizedBody, US_STATES, UUID_V4, type UpdateCustomerParams, type VaultCaptureBlock, type VaultCaptureResultMessage, type VaultCardFieldKey, type VaultCardThemeColors, type VaultGradientStop, type VaultLinearGradientBackground, type VaultShadowLayer, type VaultSolidBackground, type VaultSubmitBackground, type VaultSubmitButtonTheme, type VaultSubmitSpacing, type VaultSubmitTypography, type VaultThemeColor, type WalletPresentation, type WebhookEvent, apiError, assertCaptureMethodEligible, authenticationError, buildCheckoutDisplayData, buildItemPayload, buildProductPayload, buildSubscriptionPayload, buildTelemetryErrorEvent, buildTelemetryLogEvent, buildTelemetryPerformanceEvent, buildTelemetryTerminalEvent, classifyPaymentRejection, classifyTelemetryFailure, configureFlopay, dropThirdPartyOnlyError, filterStripeMethodsByAmount, filterStripeMethodsByCountry, filterStripeMethodsByCurrency, foldIntoProducts, generateIdempotencyKey, getConfiguredBillingApiUrl, getCountryByCode, getCurrencyByCountry, getFloPayEnvironment, getPostalCodeExample, getPostalCodeLabel, getStateFromPostalCode, getStateLabel, getStateOptions, getStripeMethodDisplayName, hasVendoredStripeMethodLogo, isAVSEnabled, isAVSFieldVisible, isAuthorizationOnlySession, isCardHolderNamePlaceholder, isCardSetupCheckoutSession, isDetachedSessionEligible, isMoneySettledOutcome, isPostalCodeSupported, isSetupCheckoutSession, isSetupIntentClientSecret, isUuidV4, isValidEmail, isValidPostalCode, isValidPublishableKey, isValidSecretKey, needsStripeMethodExplicitConfirm, networkError, normalizeCheckoutFailureOutcome, normalizeGatewayEnvironment, partitionStripeMethods, randomUuidV4, rateLimitError, resolveAVSConfig, resolveBillingApiUrl, resolveButtonsLayoutTheme, resolveIdempotencyKey, resolveSessionCurrency, resolveSetupFutureUsage, resolveStripeMethodBrandVariant, resolveTheme, serializeTelemetryBatch, stripeExpressMethodToOptionKey, telemetryStatusClass, validationError };
package/dist/index.d.ts CHANGED
@@ -532,8 +532,21 @@ interface PaymentMethodRemovalRetryableError {
532
532
  }
533
533
  /** Stable error union for merchant-server saved-method removal calls. */
534
534
  type PaymentMethodRemovalError = PaymentMethodRemovalNotFoundError | PaymentMethodRemovalConflictError | PaymentMethodRemovalRetryableError;
535
- /** How a card verified by card setup will be charged later. */
535
+ /**
536
+ * Stripe's future-use values. Future use is platform policy: the billing API
537
+ * sets every Stripe attempt up `'off_session'` and reports it on the session
538
+ * read as `CheckoutSession.futureUse`.
539
+ */
536
540
  type CardSetupFutureUse = 'on_session' | 'off_session';
541
+ /**
542
+ * A method the billing API cannot set up for future use (read field
543
+ * `futureUseUnsupported`). `reason` is the billing API's own code, passed
544
+ * through unchanged.
545
+ */
546
+ interface FutureUseUnsupportedMethod {
547
+ paymentMethodType: string;
548
+ reason: string;
549
+ }
537
550
  /**
538
551
  * Body of the merchant-authenticated `POST /v1/checkouts/sessions/setup`
539
552
  * request. Type-only: no FloPay package sends it or holds the merchant
@@ -566,9 +579,9 @@ interface CreateCardSetupSessionRequest {
566
579
  */
567
580
  currency?: string | null;
568
581
  /**
569
- * Omitted or `null` means `'off_session'`. Send `'on_session'` only for a
570
- * card that will be charged only while the customer is present; a card used
571
- * both ways is set up with `'off_session'`.
582
+ * @deprecated Future use is platform policy: the billing API always sets up
583
+ * `'off_session'` and ignores this value. Still accepted, so existing
584
+ * requests keep working; leave it out of new code.
572
585
  */
573
586
  futureUse?: CardSetupFutureUse | null;
574
587
  }
@@ -738,6 +751,20 @@ interface CheckoutSession {
738
751
  * exactly as received. Absent on older backends, which a card-only client may ignore.
739
752
  */
740
753
  advertisedPaymentMethods?: AdvertisedPaymentMethod[];
754
+ /**
755
+ * The usage the billing API sets every Stripe attempt of this session up for
756
+ * (platform policy, sdk#430 / backend#1989), exactly as the purchase or setup
757
+ * read returns it. Absent on older backends. Stripe Elements declare it
758
+ * through `resolveSetupFutureUsage`; the SDK never chooses or coerces it.
759
+ */
760
+ futureUse?: CardSetupFutureUse | null;
761
+ /**
762
+ * Methods the billing API cannot set up for future use, each with a reason,
763
+ * exactly as the read returns them (malformed entries dropped). A listed
764
+ * method declares no `setupFutureUsage` and stays payable one-off. Absent on
765
+ * older backends.
766
+ */
767
+ futureUseUnsupported?: FutureUseUnsupportedMethod[];
741
768
  /** Whether the backend has resolved and attached a buyer to this session. */
742
769
  buyerIdentified?: boolean;
743
770
  /**
@@ -2132,7 +2159,7 @@ declare function getConfiguredBillingApiUrl(): string;
2132
2159
  declare function getFloPayEnvironment(): FloPayEnvironment;
2133
2160
 
2134
2161
  /** Current SDK version. */
2135
- declare const SDK_VERSION = "1.10.6";
2162
+ declare const SDK_VERSION = "1.11.0";
2136
2163
  /**
2137
2164
  * HTTP header the SDK sends on checkout-session create/read requests so the
2138
2165
  * backend can observe compatibility. Version 1.4.9 is the first release that
@@ -2650,6 +2677,30 @@ declare function buildCheckoutDisplayData(session: CheckoutSession, options?: Bu
2650
2677
  /** Return true only for a non-blank email accepted by the backend validator. */
2651
2678
  declare function isValidEmail(email: string | null | undefined): email is string;
2652
2679
 
2680
+ /**
2681
+ * The Stripe Elements group asking for a usage. It only selects which of
2682
+ * today's values a legacy read (one without `futureUse`) keeps.
2683
+ */
2684
+ type FutureUseSurface = 'wallet' | 'paypal' | 'inline_apm' | 'setup';
2685
+ /** The session fields the platform future-use policy is read from. */
2686
+ type FutureUseSessionFields = Pick<CheckoutSession, 'futureUse' | 'futureUseUnsupported'>;
2687
+ /**
2688
+ * The one place every Stripe Elements group gets its `setupFutureUsage`.
2689
+ *
2690
+ * Future use is platform policy, decided by the billing API. When the session
2691
+ * read carries `futureUse`, the group declares exactly that value, unless one
2692
+ * of the methods it collects is listed in `futureUseUnsupported`, in which
2693
+ * case it declares none (the method stays payable one-off). The SDK never
2694
+ * coerces or defaults the read's value.
2695
+ *
2696
+ * A legacy read (no known `futureUse`) keeps each group's historic value:
2697
+ * wallets and PayPal `off_session`, inline APMs their historic list, and the
2698
+ * setup surface nothing.
2699
+ *
2700
+ * @returns the usage to declare, or `undefined` to declare none.
2701
+ */
2702
+ declare function resolveSetupFutureUsage(session: FutureUseSessionFields | null | undefined, methods: string | readonly string[], surface: FutureUseSurface): CardSetupFutureUse | undefined;
2703
+
2653
2704
  /**
2654
2705
  * HTTP header the SDK sends to make checkout-session creation idempotent
2655
2706
  * (TeamFloPay/backend#972, paired SDK issue TeamFloPay/sdk#133).
@@ -2883,4 +2934,4 @@ declare function isSetupIntentClientSecret(clientSecret: string | null | undefin
2883
2934
  /** Treat the checkout's normalized fallback cardholder sentinel as absent. */
2884
2935
  declare function isCardHolderNamePlaceholder(...nameParts: Array<string | null | undefined>): boolean;
2885
2936
 
2886
- export { ASYNC_AUTO_CHECKOUT_CAPABILITY, type AVSFieldConfig, type AdvertisedPaymentMethod, BILLING_API_URL, BILLING_API_URL_PRODUCTION, BILLING_API_URL_STAGING, BOLD_DARK_APPEARANCE, BOLD_LIGHT_APPEARANCE, BUTTONS_LAYOUT_BOLD_DARK, BUTTONS_LAYOUT_BOLD_LIGHT, BUTTONS_LAYOUT_DARK, BUTTONS_LAYOUT_DEFAULT, BUTTONS_LAYOUT_GLASS_DARK, BUTTONS_LAYOUT_GLASS_LIGHT, BUTTONS_LAYOUT_MINIMAL, BUTTONS_LAYOUT_MODERN_DARK, BUTTONS_LAYOUT_MODERN_LIGHT, BUTTONS_LAYOUT_ROUNDED, type BeforeButtonClickEvent, type BillingDetails, type BillingProvider, type BuildCheckoutDisplayDataOptions, type BuildTelemetryErrorEventInput, type BuildTelemetryLogEventInput, type BuildTelemetryPerformanceEventInput, type BuildTelemetryTerminalEventInput, type ButtonsLayoutStyles, type ButtonsLayoutTheme, CA_PROVINCES, CHECKOUT_PROCESSING_TIMEOUT_MESSAGE, COUNTRY_OPTIONS, CURRENCY_MAP, type CaptureMethod, type CardCaptureAdapter, type CardCaptureEventType, type CardCaptureMountOptions, type CardCaptureOutcomeEvent, type CardCaptureProviderId, type CardSetupFutureUse, type CheckoutAccount, type CheckoutButtonMethod, type CheckoutDisplayData, type CheckoutFailureOutcome, type CheckoutGateway, type CheckoutGateways, type CheckoutItem, type CheckoutMetadata, type CheckoutMode, type CheckoutModeKind, type CheckoutProcessError, type CheckoutProcessingPending, type CheckoutProduct, type CheckoutProductType, type CheckoutSession, type CheckoutSessionMode, type CheckoutSessionProduct, type CheckoutSessionResult, type CheckoutSubscription, type ClassifiedTelemetryFailure, type CountryOption, type CreateCardSetupSessionRequest, type CreateCustomerParams, type CreateSessionIntentRequest, type CreateSessionParams, type CurrencyInfo, type Customer, DEFAULT_API_BASE_URL, DEFAULT_API_VERSION, DEFAULT_APPEARANCE, DEFAULT_CURRENCY, type DeclineEvent, type DetachedCheckoutSession, type DisplayLineItem, type ExternalMethodFailureDetails, FLAT_APPEARANCE, FLO_INSTRUMENT_CATALOG, FLO_INSTRUMENT_SCHEMA_VERSION, FLO_SDK_CAPABILITIES_HEADER, FLO_SDK_VERSION_HEADER, type FloInstrumentErrorPhase, type FloInstrumentEvent, type FloInstrumentLifecycleName, type FloPayAppearance, type FloPayConfig, type FloPayEnvironment, FloPayError, type FloPayErrorType, type FloPayThemeVariables, GLASS_DARK_APPEARANCE, GLASS_LIGHT_APPEARANCE, type GatewayEnvironment, IDEMPOTENCY_IN_PROGRESS_CODE, IDEMPOTENCY_KEY_HEADER, type InlineSessionDraft, type InlineSessionParams, type InlineSessionPatch, type LineItem, type ListSavedPaymentMethodsQuery, MAX_IDEMPOTENCY_KEY_LENGTH, MODERN_DARK_APPEARANCE, MODERN_LIGHT_APPEARANCE, NIGHT_APPEARANCE, type NonCardPaymentMethodCategory, type NormalizedCheckoutSession, type NormalizedGatewayEnvironment, PAYPAL_VAULTED_PAYMENT_METHOD_TYPE, type PayPalApprovalPresentation, type PayPalPaymentResult, type PayPalProviderObjectType, type PayPalSessionIntent, type PayPalSessionIntentRequest, type PaymentMethodRemovalConflictCode, type PaymentMethodRemovalConflictError, type PaymentMethodRemovalError, type PaymentMethodRemovalFailureReason, type PaymentMethodRemovalNotFoundError, type PaymentMethodRemovalRetryableError, type PaymentProviderAdapter, type PaymentResult, type PriceData, type ProcessPaymentParams, type RecurringInterval, SAVED_PAYMENT_METHOD_FAMILIES, SAVED_PAYMENT_METHOD_LIST_TYPES, SAVED_PAYMENT_METHOD_TYPES, SDK_VERSION, STORED_PAYMENT_METHOD_UNSUPPORTED_CODE, STORED_PAYMENT_METHOD_UNSUPPORTED_MESSAGE, STRIPE_EXPRESS_METHODS, STRIPE_METHOD_AMOUNT_LIMITS, STRIPE_METHOD_COUNTRIES, STRIPE_METHOD_CURRENCIES, STRIPE_METHOD_MATRIX, SUPPORTED_CARD_BRANDS, type SavedCardDisplay, type SavedCardPaymentMethodDisplay, type SavedOtherPaymentMethodDisplay, type SavedPaymentMethodDisplay, type SavedPaymentMethodFamily, type SavedPaymentMethodListType, type SavedPaymentMethodStatus, type SavedPaymentMethodType, type SentryEventLike, type SentryStackFrameLike, type SerializeTelemetryBatchOptions, type SessionIntent, type SessionIntentDeclineRequest, type StateOption, type StoredPaymentMethodOutcomeCode, type StripeMethodEntry, type StripeMethodThemeVariant, type StripeSessionIntent, type StripeSessionIntentRequest, TELEMETRY_ERROR_CODES, TELEMETRY_FAILURE_CATEGORIES, TELEMETRY_LOG_NAMES, TELEMETRY_MAX_BATCH_BYTES, TELEMETRY_MAX_BATCH_EVENTS, TELEMETRY_SCHEMA_VERSION, TELEMETRY_SDK_PACKAGES, THEMES, THREE_DS_CHALLENGE_WINDOW_MS, type TagsData, type TelemetryAppFamily, type TelemetryBatchEnvelope, type TelemetryCheckoutMode, type TelemetryDurationMode, type TelemetryErrorCode, type TelemetryErrorEvent, type TelemetryErrorReason, type TelemetryEvent, type TelemetryEventClass, type TelemetryExpectedOutcome, type TelemetryExpectedOutcomeEvent, type TelemetryFailureCategory, type TelemetryLayout, type TelemetryLogEvent, type TelemetryLogName, type TelemetryPaymentMethodCategory, type TelemetryPerformanceEvent, type TelemetryPopupCapability, type TelemetryPresentationMode, type TelemetryProvider, type TelemetryProviderInput, type TelemetryRequestCategory, type TelemetrySdkPackage, type TelemetryStage, type TelemetryStatusClass, type TelemetryTerminalReason, type ThemeBundle, type ThemeBundleId, type ThemeId, type TokenizedBody, US_STATES, UUID_V4, type UpdateCustomerParams, type VaultCaptureBlock, type VaultCaptureResultMessage, type VaultCardFieldKey, type VaultCardThemeColors, type VaultGradientStop, type VaultLinearGradientBackground, type VaultShadowLayer, type VaultSolidBackground, type VaultSubmitBackground, type VaultSubmitButtonTheme, type VaultSubmitSpacing, type VaultSubmitTypography, type VaultThemeColor, type WalletPresentation, type WebhookEvent, apiError, assertCaptureMethodEligible, authenticationError, buildCheckoutDisplayData, buildItemPayload, buildProductPayload, buildSubscriptionPayload, buildTelemetryErrorEvent, buildTelemetryLogEvent, buildTelemetryPerformanceEvent, buildTelemetryTerminalEvent, classifyPaymentRejection, classifyTelemetryFailure, configureFlopay, dropThirdPartyOnlyError, filterStripeMethodsByAmount, filterStripeMethodsByCountry, filterStripeMethodsByCurrency, foldIntoProducts, generateIdempotencyKey, getConfiguredBillingApiUrl, getCountryByCode, getCurrencyByCountry, getFloPayEnvironment, getPostalCodeExample, getPostalCodeLabel, getStateFromPostalCode, getStateLabel, getStateOptions, getStripeMethodDisplayName, hasVendoredStripeMethodLogo, isAVSEnabled, isAVSFieldVisible, isAuthorizationOnlySession, isCardHolderNamePlaceholder, isCardSetupCheckoutSession, isDetachedSessionEligible, isMoneySettledOutcome, isPostalCodeSupported, isSetupCheckoutSession, isSetupIntentClientSecret, isUuidV4, isValidEmail, isValidPostalCode, isValidPublishableKey, isValidSecretKey, needsStripeMethodExplicitConfirm, networkError, normalizeCheckoutFailureOutcome, normalizeGatewayEnvironment, partitionStripeMethods, randomUuidV4, rateLimitError, resolveAVSConfig, resolveBillingApiUrl, resolveButtonsLayoutTheme, resolveIdempotencyKey, resolveSessionCurrency, resolveStripeMethodBrandVariant, resolveTheme, serializeTelemetryBatch, stripeExpressMethodToOptionKey, telemetryStatusClass, validationError };
2937
+ export { ASYNC_AUTO_CHECKOUT_CAPABILITY, type AVSFieldConfig, type AdvertisedPaymentMethod, BILLING_API_URL, BILLING_API_URL_PRODUCTION, BILLING_API_URL_STAGING, BOLD_DARK_APPEARANCE, BOLD_LIGHT_APPEARANCE, BUTTONS_LAYOUT_BOLD_DARK, BUTTONS_LAYOUT_BOLD_LIGHT, BUTTONS_LAYOUT_DARK, BUTTONS_LAYOUT_DEFAULT, BUTTONS_LAYOUT_GLASS_DARK, BUTTONS_LAYOUT_GLASS_LIGHT, BUTTONS_LAYOUT_MINIMAL, BUTTONS_LAYOUT_MODERN_DARK, BUTTONS_LAYOUT_MODERN_LIGHT, BUTTONS_LAYOUT_ROUNDED, type BeforeButtonClickEvent, type BillingDetails, type BillingProvider, type BuildCheckoutDisplayDataOptions, type BuildTelemetryErrorEventInput, type BuildTelemetryLogEventInput, type BuildTelemetryPerformanceEventInput, type BuildTelemetryTerminalEventInput, type ButtonsLayoutStyles, type ButtonsLayoutTheme, CA_PROVINCES, CHECKOUT_PROCESSING_TIMEOUT_MESSAGE, COUNTRY_OPTIONS, CURRENCY_MAP, type CaptureMethod, type CardCaptureAdapter, type CardCaptureEventType, type CardCaptureMountOptions, type CardCaptureOutcomeEvent, type CardCaptureProviderId, type CardSetupFutureUse, type CheckoutAccount, type CheckoutButtonMethod, type CheckoutDisplayData, type CheckoutFailureOutcome, type CheckoutGateway, type CheckoutGateways, type CheckoutItem, type CheckoutMetadata, type CheckoutMode, type CheckoutModeKind, type CheckoutProcessError, type CheckoutProcessingPending, type CheckoutProduct, type CheckoutProductType, type CheckoutSession, type CheckoutSessionMode, type CheckoutSessionProduct, type CheckoutSessionResult, type CheckoutSubscription, type ClassifiedTelemetryFailure, type CountryOption, type CreateCardSetupSessionRequest, type CreateCustomerParams, type CreateSessionIntentRequest, type CreateSessionParams, type CurrencyInfo, type Customer, DEFAULT_API_BASE_URL, DEFAULT_API_VERSION, DEFAULT_APPEARANCE, DEFAULT_CURRENCY, type DeclineEvent, type DetachedCheckoutSession, type DisplayLineItem, type ExternalMethodFailureDetails, FLAT_APPEARANCE, FLO_INSTRUMENT_CATALOG, FLO_INSTRUMENT_SCHEMA_VERSION, FLO_SDK_CAPABILITIES_HEADER, FLO_SDK_VERSION_HEADER, type FloInstrumentErrorPhase, type FloInstrumentEvent, type FloInstrumentLifecycleName, type FloPayAppearance, type FloPayConfig, type FloPayEnvironment, FloPayError, type FloPayErrorType, type FloPayThemeVariables, type FutureUseSessionFields, type FutureUseSurface, type FutureUseUnsupportedMethod, GLASS_DARK_APPEARANCE, GLASS_LIGHT_APPEARANCE, type GatewayEnvironment, IDEMPOTENCY_IN_PROGRESS_CODE, IDEMPOTENCY_KEY_HEADER, type InlineSessionDraft, type InlineSessionParams, type InlineSessionPatch, type LineItem, type ListSavedPaymentMethodsQuery, MAX_IDEMPOTENCY_KEY_LENGTH, MODERN_DARK_APPEARANCE, MODERN_LIGHT_APPEARANCE, NIGHT_APPEARANCE, type NonCardPaymentMethodCategory, type NormalizedCheckoutSession, type NormalizedGatewayEnvironment, PAYPAL_VAULTED_PAYMENT_METHOD_TYPE, type PayPalApprovalPresentation, type PayPalPaymentResult, type PayPalProviderObjectType, type PayPalSessionIntent, type PayPalSessionIntentRequest, type PaymentMethodRemovalConflictCode, type PaymentMethodRemovalConflictError, type PaymentMethodRemovalError, type PaymentMethodRemovalFailureReason, type PaymentMethodRemovalNotFoundError, type PaymentMethodRemovalRetryableError, type PaymentProviderAdapter, type PaymentResult, type PriceData, type ProcessPaymentParams, type RecurringInterval, SAVED_PAYMENT_METHOD_FAMILIES, SAVED_PAYMENT_METHOD_LIST_TYPES, SAVED_PAYMENT_METHOD_TYPES, SDK_VERSION, STORED_PAYMENT_METHOD_UNSUPPORTED_CODE, STORED_PAYMENT_METHOD_UNSUPPORTED_MESSAGE, STRIPE_EXPRESS_METHODS, STRIPE_METHOD_AMOUNT_LIMITS, STRIPE_METHOD_COUNTRIES, STRIPE_METHOD_CURRENCIES, STRIPE_METHOD_MATRIX, SUPPORTED_CARD_BRANDS, type SavedCardDisplay, type SavedCardPaymentMethodDisplay, type SavedOtherPaymentMethodDisplay, type SavedPaymentMethodDisplay, type SavedPaymentMethodFamily, type SavedPaymentMethodListType, type SavedPaymentMethodStatus, type SavedPaymentMethodType, type SentryEventLike, type SentryStackFrameLike, type SerializeTelemetryBatchOptions, type SessionIntent, type SessionIntentDeclineRequest, type StateOption, type StoredPaymentMethodOutcomeCode, type StripeMethodEntry, type StripeMethodThemeVariant, type StripeSessionIntent, type StripeSessionIntentRequest, TELEMETRY_ERROR_CODES, TELEMETRY_FAILURE_CATEGORIES, TELEMETRY_LOG_NAMES, TELEMETRY_MAX_BATCH_BYTES, TELEMETRY_MAX_BATCH_EVENTS, TELEMETRY_SCHEMA_VERSION, TELEMETRY_SDK_PACKAGES, THEMES, THREE_DS_CHALLENGE_WINDOW_MS, type TagsData, type TelemetryAppFamily, type TelemetryBatchEnvelope, type TelemetryCheckoutMode, type TelemetryDurationMode, type TelemetryErrorCode, type TelemetryErrorEvent, type TelemetryErrorReason, type TelemetryEvent, type TelemetryEventClass, type TelemetryExpectedOutcome, type TelemetryExpectedOutcomeEvent, type TelemetryFailureCategory, type TelemetryLayout, type TelemetryLogEvent, type TelemetryLogName, type TelemetryPaymentMethodCategory, type TelemetryPerformanceEvent, type TelemetryPopupCapability, type TelemetryPresentationMode, type TelemetryProvider, type TelemetryProviderInput, type TelemetryRequestCategory, type TelemetrySdkPackage, type TelemetryStage, type TelemetryStatusClass, type TelemetryTerminalReason, type ThemeBundle, type ThemeBundleId, type ThemeId, type TokenizedBody, US_STATES, UUID_V4, type UpdateCustomerParams, type VaultCaptureBlock, type VaultCaptureResultMessage, type VaultCardFieldKey, type VaultCardThemeColors, type VaultGradientStop, type VaultLinearGradientBackground, type VaultShadowLayer, type VaultSolidBackground, type VaultSubmitBackground, type VaultSubmitButtonTheme, type VaultSubmitSpacing, type VaultSubmitTypography, type VaultThemeColor, type WalletPresentation, type WebhookEvent, apiError, assertCaptureMethodEligible, authenticationError, buildCheckoutDisplayData, buildItemPayload, buildProductPayload, buildSubscriptionPayload, buildTelemetryErrorEvent, buildTelemetryLogEvent, buildTelemetryPerformanceEvent, buildTelemetryTerminalEvent, classifyPaymentRejection, classifyTelemetryFailure, configureFlopay, dropThirdPartyOnlyError, filterStripeMethodsByAmount, filterStripeMethodsByCountry, filterStripeMethodsByCurrency, foldIntoProducts, generateIdempotencyKey, getConfiguredBillingApiUrl, getCountryByCode, getCurrencyByCountry, getFloPayEnvironment, getPostalCodeExample, getPostalCodeLabel, getStateFromPostalCode, getStateLabel, getStateOptions, getStripeMethodDisplayName, hasVendoredStripeMethodLogo, isAVSEnabled, isAVSFieldVisible, isAuthorizationOnlySession, isCardHolderNamePlaceholder, isCardSetupCheckoutSession, isDetachedSessionEligible, isMoneySettledOutcome, isPostalCodeSupported, isSetupCheckoutSession, isSetupIntentClientSecret, isUuidV4, isValidEmail, isValidPostalCode, isValidPublishableKey, isValidSecretKey, needsStripeMethodExplicitConfirm, networkError, normalizeCheckoutFailureOutcome, normalizeGatewayEnvironment, partitionStripeMethods, randomUuidV4, rateLimitError, resolveAVSConfig, resolveBillingApiUrl, resolveButtonsLayoutTheme, resolveIdempotencyKey, resolveSessionCurrency, resolveSetupFutureUsage, resolveStripeMethodBrandVariant, resolveTheme, serializeTelemetryBatch, stripeExpressMethodToOptionKey, telemetryStatusClass, validationError };
package/dist/index.mjs CHANGED
@@ -1 +1 @@
1
- function A(e){return e.checkoutMode==="setup"&&e.amount===0&&(e.products?.length??0)===0}function Ue(e){return e?.captureMethod==="manual"}function we(e,t){return e==="requires_capture"?t!=="manual":e==="succeeded"||e==="complete"||e==="completed"||e==="captured"||e==="paid"}function Ve(e){if(typeof e!="string"||e.length===0)return;let t=e.trim().toLowerCase().replace(/[\s-]+/g,"_");if(t==="capture_failed"||t.includes("capture")&&(t.includes("fail")||t.includes("error")))return"capture_failed";if(t==="authorization_expired"||t.includes("expired")||t.includes("expiry"))return"authorization_expired";if(t==="authentication_required"||t.includes("3ds")||t.includes("three_d")||t.includes("authentication")||t.includes("action_required"))return"authentication_required";if(t==="authorization_declined"||t.includes("declin")||t.includes("authorization_fail"))return"authorization_declined"}var d=class extends Error{constructor(t,r,o){super(t),this.name="FloPayError",this.type=r,this.code=o?.code,this.declineCode=o?.declineCode,this.param=o?.param,this.statusCode=o?.statusCode,o?.details!==void 0&&(this.details=o.details),o?.sessionId!==void 0&&(this.sessionId=o.sessionId),o?.cause!==void 0&&(this.cause=o.cause),Object.setPrototypeOf(this,new.target.prototype)}};function Ge(e,t){return new d(e,"validation_error",{param:t})}function Ye(e,t,r){return new d(e,"api_error",{code:t,statusCode:r})}function Ke(e){return new d(e,"authentication_error")}function ze(e){return new d(e,"rate_limit_error")}function He(e){return new d(e,"network_error")}function qe(e){if(!(e.captureMethod!=="manual"||!(e.products??K(e.items,e.subscriptions)).some(r=>r.type==="subscription")))throw new d("Manual capture is not supported for subscription products.","validation_error",{code:"CaptureMethodUnsupportedForSubscription",param:"captureMethod"})}function We(e){return e.deferDataAttachment!==!1&&(e.checkoutMode??"full")==="full"&&!e.tokenizedData}function a(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function _(e,t,r,o){let n=a(e);if(n)return n;for(let i of t??[]){let u=a(i.currency);if(u)return u}for(let i of r??[]){let u=a(i.currency);if(u)return u}for(let i of o??[]){let u=a(i.currency);if(u)return u}return null}function K(e,t){let r=[];for(let o of t??[])r.push({type:"subscription",code:a(o.code)??a(o.providerPlanId),providerPlanId:o.providerPlanId,name:a(o.subscriptionName)??a(o.providerPlanName)??null,subscriptionName:o.subscriptionName??null,providerPlanName:o.providerPlanName??null,quantity:o.quantity,totalAmount:o.totalAmount,overrideAmount:o.overrideAmount,currency:o.currency,metadata:o.metadata});for(let o of e??[])r.push({type:"item",code:a(o.code)??a(o.providerItemId),providerItemId:o.providerItemId,name:a(o.itemName)??a(o.providerItemName)??null,itemName:o.itemName??null,providerItemName:o.providerItemName??null,quantity:o.quantity,totalAmount:o.totalAmount,overrideAmount:o.overrideAmount,currency:o.currency,metadata:o.metadata});return r}function je(e,t){let r=a(e.code)??a(e.providerItemId)??a(e.providerPlanId);if(!r)throw new Error("CheckoutProduct requires `code` (or the deprecated `providerItemId` / `providerPlanId`).");let o=a(e.name)??a(e.itemName)??a(e.providerItemName)??a(e.subscriptionName)??a(e.providerPlanName)??null,n={type:e.type,code:r,name:o,quantity:e.quantity??1,totalAmount:e.totalAmount,overrideAmount:e.overrideAmount??null,currency:a(e.currency)??t};return e.metadata&&(n.metadata=e.metadata),n}function Ze(e,t){let r=a(e.code)??a(e.providerItemId);if(!r)throw new Error("CheckoutItem requires either `code` or the deprecated `providerItemId`.");let o=a(e.itemName)??a(e.providerItemName)??null,n={code:r,providerItemId:a(e.providerItemId)??r,itemName:o,providerItemName:a(e.providerItemName)??o,quantity:e.quantity??1,totalAmount:e.totalAmount,overrideAmount:e.overrideAmount??null,currency:a(e.currency)??t};return e.metadata&&(n.metadata=e.metadata),n}function $e(e,t){let r=a(e.code)??a(e.providerPlanId);if(!r)throw new Error("CheckoutSubscription requires either `code` or the deprecated `providerPlanId`.");let o=a(e.subscriptionName)??a(e.providerPlanName)??null,n={code:r,providerPlanId:a(e.providerPlanId)??r,subscriptionName:o,providerPlanName:a(e.providerPlanName)??o,quantity:e.quantity??1,totalAmount:e.totalAmount,overrideAmount:e.overrideAmount??null,currency:a(e.currency)??t};return e.metadata&&(n.metadata=e.metadata),n}var Xe={local:"https://flo.ngrok.pro",staging:"https://api.stage.flopay.com",production:"https://api.flopay.com"},F="staging";function Je(e){F=e.environment}function P(){return Xe[F]}function Qe(){return F}var z=["alipay","bancontact","blik","eps","giropay","ideal","klarna","p24","sepa_debit","wechat_pay"];var et="1.10.6",tt="x-flo-sdk-version",rt="x-flo-sdk-capabilities",ot="async-auto-checkout-v1",nt=3e5,at="paypal_vaulted",it="stored_payment_method_unsupported",st="This saved payment method can\u2019t be used for this payment. Choose another payment method.",ut="We\u2019re still confirming your payment. Please don\u2019t pay again.",C="https://api.stage.flopay.com",j="https://api.flopay.com",dt=C,ct=C;function lt(e){return e||(typeof process<"u"&&process.env?.NEXT_PUBLIC_FLOPAY_ENV?process.env.NEXT_PUBLIC_FLOPAY_ENV==="production"?j:C:P())}var pt="2024-01-01",Z={theme:"default",variables:{colorPrimary:"#4A49FF",colorBackground:"#FFFFFF",colorText:"#262833",colorDanger:"#DF1B41",borderRadius:"8px",fontFamily:"Poppins, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"4px"}},mt={theme:"flat",variables:{...Z.variables,borderRadius:"4px"}},yt={theme:"night",variables:{colorPrimary:"#7B7BFF",colorBackground:"#1A1A2E",colorText:"#E0E0E0",colorDanger:"#FF6B6B",borderRadius:"8px",fontFamily:"Poppins, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"4px"}},$={theme:"default",variables:{colorPrimary:"#1785E0",colorBackground:"#FFFFFF",colorText:"#0F172A",colorDanger:"#EF4444",borderRadius:"12px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"15px",spacingUnit:"5px"},rules:{".Input":{padding:"14px 16px",border:"1.5px solid #E5E7EB",boxShadow:"0 1px 2px rgba(15,23,42,0.04)"},".Input:focus":{borderColor:"#1785E0",boxShadow:"0 0 0 4px rgba(23,133,224,0.12)"},".Label":{fontWeight:"500",color:"#475569",marginBottom:"6px"},".Tab":{padding:"12px 16px",borderRadius:"12px",border:"1.5px solid #E5E7EB"},".Tab:hover":{borderColor:"#CBD5E1"},".Tab--selected":{borderColor:"#1785E0",boxShadow:"0 0 0 1px #1785E0"}}},X={theme:"night",variables:{colorPrimary:"#60A5FA",colorBackground:"#0B1220",colorText:"#F1F5F9",colorDanger:"#F87171",borderRadius:"12px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"15px",spacingUnit:"5px"},rules:{".Input":{backgroundColor:"#111827",padding:"14px 16px",border:"1.5px solid #1F2937",color:"#F1F5F9",boxShadow:"none"},".Input:focus":{borderColor:"#60A5FA",boxShadow:"0 0 0 4px rgba(96,165,250,0.18)"},".Label":{fontWeight:"500",color:"#94A3B8",marginBottom:"6px"},".Tab":{padding:"12px 16px",borderRadius:"12px",border:"1.5px solid #1F2937",backgroundColor:"#111827",color:"#F1F5F9"},".Tab:hover":{borderColor:"#374151"},".Tab--selected":{borderColor:"#60A5FA",boxShadow:"0 0 0 1px #60A5FA"}}},J={theme:"default",variables:{colorPrimary:"#1785E0",colorBackground:"#FFFFFF",colorText:"#0C2B4D",colorDanger:"#DC2626",borderRadius:"12px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"5px"},rules:{".Input":{padding:"14px 16px",border:"2px solid #E5E7EB"},".Input:focus":{borderColor:"#1785E0",boxShadow:"0 0 0 3px rgba(23,133,224,0.2)"},".Label":{fontWeight:"600",color:"#0C2B4D"},".Tab":{padding:"14px 18px",border:"2px solid #E5E7EB",fontWeight:"600"},".Tab--selected":{borderColor:"#1785E0",boxShadow:"0 0 0 1px #1785E0"}}},Q={theme:"night",variables:{colorPrimary:"#60A5FA",colorBackground:"#0C2B4D",colorText:"#FFFFFF",colorDanger:"#F87171",borderRadius:"12px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"5px"},rules:{".Input":{backgroundColor:"#1E3A8A",padding:"14px 16px",border:"2px solid #1E40AF",color:"#FFFFFF"},".Input:focus":{borderColor:"#60A5FA",boxShadow:"0 0 0 3px rgba(96,165,250,0.25)"},".Label":{fontWeight:"600",color:"#DBEAFE"},".Tab":{padding:"14px 18px",border:"2px solid #1E40AF",backgroundColor:"#1E3A8A",color:"#FFFFFF",fontWeight:"600"},".Tab--selected":{borderColor:"#60A5FA",boxShadow:"0 0 0 1px #60A5FA"}}},ee={theme:"default",variables:{colorPrimary:"#1785E0",colorBackground:"#FFFFFF",colorText:"#1E293B",colorDanger:"#EF4444",borderRadius:"16px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"15px",spacingUnit:"5px"},rules:{".Input":{backgroundColor:"rgba(255,255,255,0.6)",backdropFilter:"blur(10px)",padding:"14px 16px",border:"1px solid rgba(255,255,255,0.6)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.5), 0 1px 3px rgba(23,133,224,0.08)"},".Input:focus":{borderColor:"rgba(23,133,224,0.5)",boxShadow:"0 0 0 3px rgba(23,133,224,0.15)"},".Label":{fontWeight:"500",color:"#475569"},".Tab":{padding:"12px 16px",backgroundColor:"rgba(255,255,255,0.5)",border:"1px solid rgba(255,255,255,0.6)",borderRadius:"14px"},".Tab--selected":{borderColor:"rgba(23,133,224,0.6)",boxShadow:"0 0 0 1px rgba(23,133,224,0.6)"}}},te={theme:"night",variables:{colorPrimary:"#60A5FA",colorBackground:"#0F172A",colorText:"#F1F5F9",colorDanger:"#F87171",borderRadius:"16px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"15px",spacingUnit:"5px"},rules:{".Input":{backgroundColor:"rgba(15,23,42,0.6)",backdropFilter:"blur(10px)",padding:"14px 16px",border:"1px solid rgba(255,255,255,0.08)",color:"#F1F5F9"},".Input:focus":{borderColor:"rgba(96,165,250,0.5)",boxShadow:"0 0 0 3px rgba(96,165,250,0.2)"},".Label":{fontWeight:"500",color:"#94A3B8"},".Tab":{padding:"12px 16px",backgroundColor:"rgba(15,23,42,0.6)",border:"1px solid rgba(255,255,255,0.08)",borderRadius:"14px",color:"#F1F5F9"},".Tab--selected":{borderColor:"rgba(96,165,250,0.6)",boxShadow:"0 0 0 1px rgba(96,165,250,0.6)"}}},re={},oe={cardButton:{border:"none",backgroundColor:"#f9fafb",boxShadow:"none"},cardFormContainer:{backgroundColor:"#f9fafb",border:"none"},cardInputBorder:"#e5e7eb",backButtonIcon:{backgroundColor:"#e5e7eb"},submitButton:{borderRadius:"6px"}},ne={cardButton:{borderRadius:"9999px",border:"1px solid #e5e7eb",boxShadow:"0 1px 3px rgba(0,0,0,0.06)"},cardFormContainer:{borderRadius:"16px",border:"1px solid #e5e7eb",boxShadow:"0 2px 8px rgba(0,0,0,0.06)"},cardInputBorder:"#d1d5db",submitButton:{borderRadius:"9999px"},backButtonIcon:{backgroundColor:"#f3f4f6"}},ae={cardButton:{backgroundColor:"#1f2937",color:"#f9fafb",border:"1px solid #374151",boxShadow:"none"},cardFormContainer:{backgroundColor:"#111827",border:"1px solid #374151"},cardInputBorder:"#4b5563",cardInputColor:"#f9fafb",cardInputPlaceholderColor:"#6b7280",cardInputBackground:"#1f2937",nameInput:{backgroundColor:"#1f2937",color:"#f9fafb"},backButton:{color:"#9ca3af"},backButtonIcon:{backgroundColor:"#374151"},submitButton:{backgroundColor:"#6366f1"},title:{color:"#f9fafb"},countrySelect:{backgroundColor:"#1f2937",color:"#f9fafb"},zipInput:{backgroundColor:"#1f2937",color:"#f9fafb"}},I={cardFormContainer:{backgroundColor:"#FAFAFA",borderRadius:"20px",border:"1px solid #E5E7EB",boxShadow:"0 8px 24px rgba(15,23,42,0.04)",padding:"24px"},cardButton:{backgroundColor:"#FFFFFF",borderRadius:"14px",border:"1.5px solid #E5E7EB",boxShadow:"0 1px 2px rgba(15,23,42,0.04)",padding:"14px 18px"},cardInputBorder:"#E5E7EB",nameInput:{backgroundColor:"#FFFFFF",border:"1.5px solid #E5E7EB",borderRadius:"14px",padding:"14px 16px"},submitButton:{backgroundColor:"#1785E0",borderRadius:"14px",padding:"16px 24px",boxShadow:"0 4px 14px rgba(23,133,224,0.25)",fontWeight:"600"},title:{color:"#0F172A",fontWeight:"600"},titleFontSize:"20px",backButton:{color:"#64748B"},backButtonIcon:{backgroundColor:"#F1F5F9"}},R={cardFormContainer:{backgroundColor:"#111827",borderRadius:"20px",border:"1px solid #1F2937",boxShadow:"0 8px 24px rgba(0,0,0,0.2)",padding:"24px"},cardButton:{backgroundColor:"#0B1220",borderRadius:"14px",border:"1.5px solid #1F2937",color:"#F1F5F9",padding:"14px 18px"},cardInputBorder:"#1F2937",cardInputBackground:"#111827",cardInputColor:"#F1F5F9",cardInputPlaceholderColor:"#64748B",nameInput:{backgroundColor:"#111827",border:"1.5px solid #1F2937",borderRadius:"14px",padding:"14px 16px",color:"#F1F5F9"},submitButton:{backgroundColor:"#60A5FA",borderRadius:"14px",padding:"16px 24px",boxShadow:"0 4px 14px rgba(96,165,250,0.3)",fontWeight:"600",color:"#0B1220"},title:{color:"#F1F5F9",fontWeight:"600"},titleFontSize:"20px",backButton:{color:"#94A3B8"},backButtonIcon:{backgroundColor:"#1F2937"},countrySelect:{backgroundColor:"#111827",color:"#F1F5F9"},zipInput:{backgroundColor:"#111827",color:"#F1F5F9"}},M={cardFormContainer:{backgroundColor:"#EFF6FF",borderRadius:"20px",border:"2px solid #1785E0",padding:"24px"},cardButton:{backgroundColor:"#FFFFFF",borderRadius:"12px",border:"2px solid #1785E0",color:"#1785E0",fontWeight:"700",padding:"14px 18px"},cardInputBorder:"#E5E7EB",nameInput:{backgroundColor:"#FFFFFF",border:"2px solid #E5E7EB",borderRadius:"12px",padding:"14px 16px",fontWeight:"500"},submitButton:{background:"linear-gradient(135deg, #1785E0 0%, #0EA5E9 100%)",borderRadius:"9999px",padding:"16px 24px",boxShadow:"0 10px 25px rgba(23,133,224,0.35)",fontWeight:"700",color:"#FFFFFF",border:"none"},submitButtonFontSize:"17px",title:{color:"#0C2B4D",fontWeight:"800",letterSpacing:"-0.02em"},titleFontSize:"22px",backButton:{color:"#1785E0",fontWeight:"600"},backButtonIcon:{backgroundColor:"#DBEAFE"}},k={cardFormContainer:{backgroundColor:"#1E3A8A",borderRadius:"20px",border:"2px solid #60A5FA",padding:"24px"},cardButton:{backgroundColor:"#0C2B4D",borderRadius:"12px",border:"2px solid #60A5FA",color:"#60A5FA",fontWeight:"700",padding:"14px 18px"},cardInputBorder:"#1E40AF",cardInputBackground:"#1E3A8A",cardInputColor:"#FFFFFF",cardInputPlaceholderColor:"#60A5FA",nameInput:{backgroundColor:"#1E3A8A",border:"2px solid #1E40AF",borderRadius:"12px",padding:"14px 16px",fontWeight:"500",color:"#FFFFFF"},submitButton:{background:"linear-gradient(135deg, #60A5FA 0%, #38BDF8 100%)",borderRadius:"9999px",padding:"16px 24px",boxShadow:"0 10px 25px rgba(96,165,250,0.35)",fontWeight:"700",color:"#FFFFFF",border:"none"},submitButtonFontSize:"17px",title:{color:"#FFFFFF",fontWeight:"800",letterSpacing:"-0.02em"},titleFontSize:"22px",backButton:{color:"#DBEAFE",fontWeight:"600"},backButtonIcon:{backgroundColor:"#1E40AF"},countrySelect:{backgroundColor:"#1E3A8A",color:"#FFFFFF"},zipInput:{backgroundColor:"#1E3A8A",color:"#FFFFFF"}},N={cardFormContainer:{background:"linear-gradient(135deg, #DBEAFE 0%, #BFDBFE 100%)",borderRadius:"24px",border:"1px solid rgba(255,255,255,0.6)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.6), 0 12px 40px rgba(23,133,224,0.15)",padding:"28px"},cardButton:{backgroundColor:"rgba(255,255,255,0.7)",backdropFilter:"blur(20px)",borderRadius:"16px",border:"1px solid rgba(255,255,255,0.6)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.5), 0 4px 16px rgba(23,133,224,0.1)",padding:"14px 18px"},cardInputBorder:"rgba(255,255,255,0.6)",nameInput:{backgroundColor:"rgba(255,255,255,0.6)",backdropFilter:"blur(10px)",border:"1px solid rgba(255,255,255,0.6)",borderRadius:"14px",padding:"14px 16px"},submitButton:{backgroundColor:"rgba(23,133,224,0.95)",backdropFilter:"blur(10px)",borderRadius:"16px",padding:"16px 24px",boxShadow:"0 10px 30px rgba(23,133,224,0.3), inset 0 1px 0 rgba(255,255,255,0.2)",fontWeight:"600",color:"#FFFFFF"},title:{color:"#1E293B",fontWeight:"600",letterSpacing:"-0.01em"},titleFontSize:"20px",backButton:{color:"#1785E0",fontWeight:"500"},backButtonIcon:{backgroundColor:"rgba(255,255,255,0.7)"}},O={cardFormContainer:{background:"linear-gradient(135deg, #0C2B4D 0%, #0F172A 100%)",borderRadius:"24px",border:"1px solid rgba(255,255,255,0.08)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.06), 0 20px 50px rgba(0,0,0,0.4)",padding:"28px"},cardButton:{backgroundColor:"rgba(15,23,42,0.6)",backdropFilter:"blur(20px)",borderRadius:"16px",border:"1px solid rgba(255,255,255,0.08)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.05), 0 4px 16px rgba(0,0,0,0.3)",padding:"14px 18px",color:"#F1F5F9"},cardInputBorder:"rgba(255,255,255,0.08)",cardInputBackground:"rgba(15,23,42,0.6)",cardInputColor:"#F1F5F9",cardInputPlaceholderColor:"#64748B",nameInput:{backgroundColor:"rgba(15,23,42,0.6)",backdropFilter:"blur(10px)",border:"1px solid rgba(255,255,255,0.08)",borderRadius:"14px",padding:"14px 16px",color:"#F1F5F9"},submitButton:{backgroundColor:"rgba(96,165,250,0.9)",backdropFilter:"blur(10px)",borderRadius:"16px",padding:"16px 24px",boxShadow:"0 10px 30px rgba(96,165,250,0.35), inset 0 1px 0 rgba(255,255,255,0.15)",fontWeight:"600",color:"#0F172A"},title:{color:"#F1F5F9",fontWeight:"600",letterSpacing:"-0.01em"},titleFontSize:"20px",backButton:{color:"#60A5FA",fontWeight:"500"},backButtonIcon:{backgroundColor:"rgba(255,255,255,0.08)"},countrySelect:{backgroundColor:"rgba(15,23,42,0.6)",color:"#F1F5F9"},zipInput:{backgroundColor:"rgba(15,23,42,0.6)",color:"#F1F5F9"}};function gt(e){switch(e){case"minimal":return oe;case"rounded":return ne;case"dark":return ae;case"modern-light":return I;case"modern-dark":return R;case"bold-light":return M;case"bold-dark":return k;case"glass-light":return N;case"glass-dark":return O;default:return re}}var ie={"modern-light":{appearance:$,buttonsLayout:I},"modern-dark":{appearance:X,buttonsLayout:R},"bold-light":{appearance:J,buttonsLayout:M},"bold-dark":{appearance:Q,buttonsLayout:k},"glass-light":{appearance:ee,buttonsLayout:N},"glass-dark":{appearance:te,buttonsLayout:O}};function Et(e){if(!(!e||e==="classic"))return ie[e]}function ft(e){switch(e){case"apple_pay":return"applePay";case"google_pay":return"googlePay";case"amazon_pay":return"amazonPay";default:return e}}function Ct(e,t,r){return`<svg viewBox="0 0 22 22"><circle cx="11" cy="11" r="11" fill="${t}"/><text x="11" y="15.5" text-anchor="middle" font-size="13" font-weight="700" font-family="sans-serif" fill="${r}">${e}</text></svg>`}function H(e,t){return`<svg viewBox="0 0 22 22"><circle cx="11" cy="11" r="11" fill="${e}"/><g fill="${t}"><path d="M11 4 L17.5 8 L4.5 8 Z"/><rect x="5" y="8.4" width="12" height="1.2" rx="0.3"/><rect x="5.9" y="10" width="1.5" height="5"/><rect x="8.55" y="10" width="1.5" height="5"/><rect x="11.95" y="10" width="1.5" height="5"/><rect x="14.6" y="10" width="1.5" height="5"/><rect x="4.6" y="15.4" width="12.8" height="1.5" rx="0.3"/></g></svg>`}function q(e,t,r,o=t){return{backgroundColor:t,borderColor:t,textColor:r,logoSvg:Ct(e,r,o)}}function c(e,t,r,o=t,n=r,i=o){return{light:q(e,t,r),dark:q(e,o,n,i)}}var se=["AT","BE","BG","CY","CZ","DE","DK","EE","ES","FI","FR","GR","HR","HU","IE","IT","LT","LU","LV","MT","NL","PL","PT","RO","SE","SI","SK","IS","LI","NO","CH","GB","MC","SM","AD","VA"],Tt=[...se,"JP","MX","US"],y={apple_pay:{displayName:"Apple Pay",currencies:["*"],express:!0,needsExplicitConfirm:!1},google_pay:{displayName:"Google Pay",currencies:["*"],express:!0,needsExplicitConfirm:!1},paypal:{displayName:"PayPal",currencies:["eur","gbp","usd","cad","aud","nzd","chf","jpy","pln","sek","nok","dkk","czk","huf"],express:!0,needsExplicitConfirm:!1},link:{displayName:"Link",currencies:["usd","eur"],express:!0,needsExplicitConfirm:!1},amazon_pay:{displayName:"Amazon Pay",currencies:["usd","eur","gbp"],express:!0,needsExplicitConfirm:!1},klarna:{displayName:"Klarna",currencies:["usd","eur","gbp","aud","nzd","cad","chf","sek","nok","dkk","pln","czk","ron"],amounts:{usd:{min:100},eur:{min:100},gbp:{min:100}},theme:c("K","#FFB3C7","#0A0B09")},affirm:{displayName:"Affirm",currencies:["usd"],countries:["US","CA"],amounts:{usd:{min:3500,max:3e6}},needsExplicitConfirm:!1,theme:c("a","#060F33","#FFFFFF","#0FA0EA","#060F33","#FFFFFF")},cashapp:{displayName:"Cash App Pay",currencies:["usd"],countries:["US"],amounts:{usd:{min:50,max:99999999}},needsExplicitConfirm:!1,theme:c("$","#00D54B","#0A1F0E")},samsung_pay:{displayName:"Samsung Pay",currencies:["krw"],countries:["KR"],needsExplicitConfirm:!1},afterpay_clearpay:{displayName:"Afterpay",currencies:["usd","aud","cad","gbp","nzd"],countries:["US","CA","GB","AU","NZ"],amounts:{usd:{min:100,max:2e5},cad:{min:100,max:2e5},gbp:{min:100,max:12e4},aud:{min:100,max:2e5},nzd:{min:100,max:2e5}},theme:c("A","#B2FCE4","#0A0B09")},alipay:{displayName:"Alipay",currencies:["usd","cny"],theme:c("A","#1677FF","#FFFFFF")},au_becs_debit:{displayName:"BECS Direct Debit",currencies:["aud"],countries:["AU"]},bacs_debit:{displayName:"Bacs Debit",currencies:["gbp"],countries:["GB"]},bancontact:{displayName:"Bancontact",currencies:["eur"],countries:["BE"],theme:c("B","#FFDD55","#1E3791","#1E3791","#FFDD55")},bizum:{displayName:"Bizum",currencies:["eur"],countries:["ES"],theme:c("B","#00BFB3","#FFFFFF")},blik:{displayName:"BLIK",currencies:["pln"],countries:["PL"],theme:c("B","#000000","#FFFFFF","#FFFFFF","#000000")},boleto:{displayName:"Boleto",currencies:["brl"],countries:["BR"]},customer_balance:{displayName:"Bank Transfer",currencies:["eur","usd"],countries:Tt,theme:{light:{backgroundColor:"#1F2937",textColor:"#FFFFFF",borderColor:"#1F2937",logoSvg:H("#1F2937","#FFFFFF")},dark:{backgroundColor:"#374151",textColor:"#FFFFFF",borderColor:"#374151",logoSvg:H("#374151","#FFFFFF")}}},eps:{displayName:"EPS",currencies:["eur"],countries:["AT"],theme:c("E","#C8102E","#FFFFFF")},giropay:{displayName:"Giropay",currencies:["eur"],countries:["DE"],theme:c("G","#0F4197","#FFFFFF")},ideal:{displayName:"iDEAL",currencies:["eur"],countries:["NL"],theme:c("i","#CC0066","#FFFFFF")},konbini:{displayName:"Konbini",currencies:["jpy"],countries:["JP"]},kr_card:{displayName:"Korean Card",currencies:["krw"],countries:["KR"],theme:c("K","#0B3D91","#FFFFFF")},multibanco:{displayName:"Multibanco",currencies:["eur"],countries:["PT"]},oxxo:{displayName:"OXXO",currencies:["mxn"],countries:["MX"]},p24:{displayName:"Przelewy24",currencies:["eur","pln"],countries:["PL"],theme:c("P","#D90F1B","#FFFFFF")},paynow:{displayName:"PayNow",currencies:["sgd"],countries:["SG"]},pix:{displayName:"Pix",currencies:["brl"],countries:["BR"]},promptpay:{displayName:"PromptPay",currencies:["thb"],countries:["TH"]},sepa_debit:{displayName:"SEPA Debit",currencies:["eur"],countries:se,theme:c("\u20AC","#10298E","#FFFFFF","#3056D3")},sofort:{displayName:"Sofort",currencies:["eur"],countries:["AT","BE","DE","ES","IT","NL"],theme:c("S","#EF809F","#FFFFFF")},upi:{displayName:"UPI",currencies:["inr"],countries:["IN"],theme:c("U","#FF7909","#FFFFFF")},us_bank_account:{displayName:"US Bank Account",currencies:["usd"],countries:["US"]},wechat_pay:{displayName:"WeChat Pay",currencies:["usd","cny"],theme:c("W","#07C160","#FFFFFF")},zip:{displayName:"Zip",currencies:["aud"],countries:["AU","NZ"]}};function St(e){return z.includes(e)}var ue=Object.entries(y).filter(([,e])=>e.express).map(([e])=>e),bt=new Set(ue),de=Object.fromEntries(Object.entries(y).map(([e,t])=>[e,t.currencies])),ce=Object.fromEntries(Object.entries(y).filter(([,e])=>e.countries).map(([e,t])=>[e,t.countries]));function ht(e){return e?y[e]?.displayName??e.split("_").filter(Boolean).map(t=>t[0].toUpperCase()+t.slice(1)).join(" "):"this method"}function xt(e){return y[e]?.needsExplicitConfirm!==!1}function At(e,t){let r=y[e]?.theme;return r?(typeof t=="string"&&t.endsWith("-dark")?r.dark:r.light)??r.light??null:null}function _t(e,t){if(!e||e.length===0)return[];if(!t)return[...e];let r=t.trim().toLowerCase();return r?e.filter(o=>{let n=de[o];return n?n.includes("*")||n.includes(r):!0}):[...e]}function Ft(e,t){if(!e||e.length===0)return[];if(!t)return[...e];let r=t.trim().toUpperCase();return r?e.filter(o=>{let n=ce[o];return n?n.includes("*")||n.includes(r):!0}):[...e]}var le=Object.fromEntries(Object.entries(y).filter(([,e])=>e.amounts).map(([e,t])=>[e,t.amounts]));function Pt(e,t,r){if(!e||e.length===0)return[];if(!t||typeof r!="number"||!Number.isFinite(r))return[...e];let o=t.trim().toLowerCase();return o?e.filter(n=>{let i=le[n];if(!i)return!0;let u=i[o];return u?!(typeof u.min=="number"&&r<u.min||typeof u.max=="number"&&r>u.max):!0}):[...e]}function It(e,t){if(!e||e.length===0)return{expressMethods:[],paymentElementMethods:[]};let r=[],o=[],n=new Set,i=new Set;for(let u of e){if(typeof u!="string")continue;let p=u.trim();if(!(!p||p==="card")&&!(t?.excludePaypal&&p==="paypal"))if(bt.has(p)){if(n.has(p))continue;n.add(p),r.push(p)}else{if(i.has(p))continue;i.add(p),o.push(p)}}return{expressMethods:r,paymentElementMethods:o}}var Rt=["visa","mastercard","mastercard_debit","amex","discover"],L={AT:{currency:"EUR",symbol:"\u20AC",country:"Austria",countryCode:"AT",tax:1},BE:{currency:"EUR",symbol:"\u20AC",country:"Belgium",countryCode:"BE",tax:1},CY:{currency:"EUR",symbol:"\u20AC",country:"Cyprus",countryCode:"CY",tax:1},DE:{currency:"EUR",symbol:"\u20AC",country:"Germany",countryCode:"DE",tax:1},EE:{currency:"EUR",symbol:"\u20AC",country:"Estonia",countryCode:"EE",tax:1},ES:{currency:"EUR",symbol:"\u20AC",country:"Spain",countryCode:"ES",tax:1},FI:{currency:"EUR",symbol:"\u20AC",country:"Finland",countryCode:"FI",tax:1},FR:{currency:"EUR",symbol:"\u20AC",country:"France",countryCode:"FR",tax:1},GR:{currency:"EUR",symbol:"\u20AC",country:"Greece",countryCode:"GR",tax:1},HR:{currency:"EUR",symbol:"\u20AC",country:"Croatia",countryCode:"HR",tax:1},IE:{currency:"EUR",symbol:"\u20AC",country:"Ireland",countryCode:"IE",tax:1},IT:{currency:"EUR",symbol:"\u20AC",country:"Italy",countryCode:"IT",tax:1},LT:{currency:"EUR",symbol:"\u20AC",country:"Lithuania",countryCode:"LT",tax:1},LU:{currency:"EUR",symbol:"\u20AC",country:"Luxembourg",countryCode:"LU",tax:1},LV:{currency:"EUR",symbol:"\u20AC",country:"Latvia",countryCode:"LV",tax:1},MT:{currency:"EUR",symbol:"\u20AC",country:"Malta",countryCode:"MT",tax:1},NL:{currency:"EUR",symbol:"\u20AC",country:"Netherlands",countryCode:"NL",tax:1},PT:{currency:"EUR",symbol:"\u20AC",country:"Portugal",countryCode:"PT",tax:1},SI:{currency:"EUR",symbol:"\u20AC",country:"Slovenia",countryCode:"SI",tax:1},SK:{currency:"EUR",symbol:"\u20AC",country:"Slovakia",countryCode:"SK",tax:1},BG:{currency:"EUR",symbol:"\u20AC",country:"Bulgaria",countryCode:"BG",tax:1},RO:{currency:"EUR",symbol:"\u20AC",country:"Romania",countryCode:"RO",tax:1},CZ:{currency:"EUR",symbol:"\u20AC",country:"Czech Republic",countryCode:"CZ",tax:1},SE:{currency:"EUR",symbol:"\u20AC",country:"Sweden",countryCode:"SE",tax:1},DK:{currency:"EUR",symbol:"\u20AC",country:"Denmark",countryCode:"DK",tax:1},PL:{currency:"EUR",symbol:"\u20AC",country:"Poland",countryCode:"PL",tax:1},HU:{currency:"EUR",symbol:"\u20AC",country:"Hungary",countryCode:"HU",tax:1},GB:{currency:"GBP",symbol:"\xA3",country:"United Kingdom",countryCode:"GB",tax:1},US:{currency:"USD",symbol:"$",country:"United States",countryCode:"US",tax:0},CA:{currency:"CAD",symbol:"CA$",country:"Canada",countryCode:"CA",tax:0},NZ:{currency:"NZD",symbol:"NZ$",country:"New Zealand",countryCode:"NZ",tax:0},AU:{currency:"AUD",symbol:"AU$",country:"Australia",countryCode:"AU",tax:0}},v={currency:"USD",symbol:"$",country:"United States",countryCode:"US",tax:0};function Mt(e){switch(e.toUpperCase()){case"US":return"ZIP Code";case"GB":return"Postcode";case"CA":return"Postal Code";case"AU":case"NZ":return"Postcode";case"IE":return"Eircode";default:return"Postal Code"}}var kt=new Intl.DisplayNames(["en"],{type:"region"});function Nt(e){return[...e.toUpperCase()].map(t=>String.fromCodePoint(127397+t.charCodeAt(0))).join("")}var pe=["US","GB","CA","AU","NZ","IE","DE","FR"],Ot=["AD","AE","AF","AG","AL","AM","AO","AR","AT","AU","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BN","BO","BR","BS","BT","BW","BY","BZ","CA","CD","CF","CG","CH","CI","CL","CM","CN","CO","CR","CU","CV","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","ER","ES","ET","FI","FJ","FM","FR","GA","GB","GD","GE","GH","GM","GN","GQ","GR","GT","GW","GY","HN","HR","HT","HU","ID","IE","IL","IN","IQ","IR","IS","IT","JM","JO","JP","KE","KG","KH","KI","KM","KN","KR","KW","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MG","MH","MK","ML","MM","MN","MR","MT","MU","MV","MW","MX","MY","MZ","NA","NE","NG","NI","NL","NO","NP","NR","NZ","OM","PA","PE","PG","PH","PK","PL","PT","PW","PY","QA","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SI","SK","SL","SM","SN","SO","SR","SS","ST","SV","SY","SZ","TD","TG","TH","TJ","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","US","UY","UZ","VA","VC","VE","VN","VU","WS","XK","YE","ZA","ZM","ZW"];function W(e){return{code:e,name:kt.of(e)??e,flag:Nt(e)}}var Lt=new Set(pe),vt=Ot.filter(e=>!Lt.has(e)),me=[...pe.map(W),...vt.map(W)];function Dt(e){return me.find(t=>t.code===e)}var Bt={country:!0,postal_code:!0};function ye(e){return e===!0?Bt:e||null}function Ut(e,t){if(!e)return!1;if(e===!0)return!0;let r=t.trim().toUpperCase();return e.some(o=>o.trim().toUpperCase()===r)}function wt(e){let t=ye(e);return t?Object.values(t).some(r=>r===!0||Array.isArray(r)&&r.length>0):!1}var ge=[{code:"AL",name:"Alabama"},{code:"AK",name:"Alaska"},{code:"AZ",name:"Arizona"},{code:"AR",name:"Arkansas"},{code:"CA",name:"California"},{code:"CO",name:"Colorado"},{code:"CT",name:"Connecticut"},{code:"DE",name:"Delaware"},{code:"DC",name:"District of Columbia"},{code:"FL",name:"Florida"},{code:"GA",name:"Georgia"},{code:"HI",name:"Hawaii"},{code:"ID",name:"Idaho"},{code:"IL",name:"Illinois"},{code:"IN",name:"Indiana"},{code:"IA",name:"Iowa"},{code:"KS",name:"Kansas"},{code:"KY",name:"Kentucky"},{code:"LA",name:"Louisiana"},{code:"ME",name:"Maine"},{code:"MD",name:"Maryland"},{code:"MA",name:"Massachusetts"},{code:"MI",name:"Michigan"},{code:"MN",name:"Minnesota"},{code:"MS",name:"Mississippi"},{code:"MO",name:"Missouri"},{code:"MT",name:"Montana"},{code:"NE",name:"Nebraska"},{code:"NV",name:"Nevada"},{code:"NH",name:"New Hampshire"},{code:"NJ",name:"New Jersey"},{code:"NM",name:"New Mexico"},{code:"NY",name:"New York"},{code:"NC",name:"North Carolina"},{code:"ND",name:"North Dakota"},{code:"OH",name:"Ohio"},{code:"OK",name:"Oklahoma"},{code:"OR",name:"Oregon"},{code:"PA",name:"Pennsylvania"},{code:"RI",name:"Rhode Island"},{code:"SC",name:"South Carolina"},{code:"SD",name:"South Dakota"},{code:"TN",name:"Tennessee"},{code:"TX",name:"Texas"},{code:"UT",name:"Utah"},{code:"VT",name:"Vermont"},{code:"VA",name:"Virginia"},{code:"WA",name:"Washington"},{code:"WV",name:"West Virginia"},{code:"WI",name:"Wisconsin"},{code:"WY",name:"Wyoming"}],Ee=[{code:"AB",name:"Alberta"},{code:"BC",name:"British Columbia"},{code:"MB",name:"Manitoba"},{code:"NB",name:"New Brunswick"},{code:"NL",name:"Newfoundland and Labrador"},{code:"NS",name:"Nova Scotia"},{code:"NT",name:"Northwest Territories"},{code:"NU",name:"Nunavut"},{code:"ON",name:"Ontario"},{code:"PE",name:"Prince Edward Island"},{code:"QC",name:"Quebec"},{code:"SK",name:"Saskatchewan"},{code:"YT",name:"Yukon"}];function Vt(e){switch(e.toUpperCase()){case"US":return ge;case"CA":return Ee;default:return null}}function Gt(e){switch(e.toUpperCase()){case"US":return"State";case"CA":return"Province";case"GB":return"County";case"AU":return"State / Territory";default:return"State / Province / Region"}}function Yt(e,t={}){let r=[],o=e.products??[],n=o.filter(s=>s.type==="subscription"),i=o.filter(s=>s.type!=="subscription"),p=(_(e.currency,void 0,void 0,o)??"USD").toUpperCase();for(let s of n){let m=s.totalAmount??0,f=s.overrideAmount??m,x=s.name||s.code||"Subscription";x==="4-WEEK PLAN"&&f<=1&&(x="7-DAY TRIAL: FULL ACCESS"),r.push({name:x,quantity:s.quantity,price:f,originalPrice:m})}if(!(t.hideBundledItems===!0&&n.length>0&&i.length>0))for(let s of i){let m=s.totalAmount??0,f=s.overrideAmount??m;r.push({name:s.name||s.code||"Item",quantity:s.quantity,price:f,originalPrice:m})}r.length===0&&r.push({name:"Purchase",quantity:1,price:e.amount/100,originalPrice:e.amount/100});let Ne=r.reduce((s,m)=>s+m.originalPrice*m.quantity,0),Oe=r.reduce((s,m)=>s+m.price*m.quantity,0),Le=typeof e.totalAmount=="number"&&Number.isFinite(e.totalAmount),ve=typeof e.subtotalAmount=="number"&&Number.isFinite(e.subtotalAmount),De=typeof e.discountAmount=="number"&&Number.isFinite(e.discountAmount),G=Le?e.totalAmount:Oe,E=ve?e.subtotalAmount:Ne,Y=Math.max(0,E-G),Be=E>0?Math.round(Y/E*100):0;return{items:r,currency:p,total:G,originalTotal:E,totalSave:Y,discountPercent:Be,...De?{couponDiscount:e.discountAmount}:{}}}var Kt=/^[a-z\d!#$%&'*+\-/=?^_`{|}~\u00A1-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+$/i,zt=/^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*$/i,Ht=/^([a-z\u00A1-\u00A8\u00AA-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i,qt=/^[a-z\u00a1-\uffff0-9-]+$/i;function fe(e){return encodeURI(e).split(/%..|./).length-1}function Wt(e){let t=e.split("."),r=t[t.length-1]??"";return t.length>=2&&Ht.test(r)&&!/\s/.test(r)&&t.every(o=>o.length<=63&&qt.test(o)&&!/[\uff01-\uff5e]/.test(o)&&!/^-|-$/.test(o)&&!/_/.test(o))}function jt(e){if(typeof e!="string"||e.length===0||e.length>254)return!1;let t=e.split("@"),r=t.pop()??"",o=t.join("@");return fe(o)>64||fe(r)>254||!Wt(r)?!1:o.startsWith('"')&&o.endsWith('"')?zt.test(o.slice(1,-1)):o.split(".").every(n=>Kt.test(n))}var Zt="Idempotency-Key",D=255,$t="IdempotencyKeyInProgress";function Xt(){let e=globalThis.crypto;if(e&&(typeof e.randomUUID=="function"||typeof e.getRandomValues=="function"))return e}function Ce(){let e=Xt();if(!e)return;if(typeof e.randomUUID=="function")return e.randomUUID();if(typeof e.getRandomValues!="function")return;let t=new Uint8Array(16);return e.getRandomValues(t),Array.from(t,r=>r.toString(16).padStart(2,"0")).join("")}function Jt(e){if(e===void 0)return Ce();if(typeof e!="string"||e.trim()==="")throw new d("idempotencyKey must be a non-empty string identifying exactly one checkout creation.","validation_error",{code:"InvalidIdempotencyKey",param:"idempotencyKey"});if(e.length>D)throw new d(`idempotencyKey must be at most ${D} characters.`,"validation_error",{code:"InvalidIdempotencyKey",param:"idempotencyKey"});return e}var Qt=1,er=[{name:"checkout_mount"},{name:"sdk_loaded"},{name:"form_rendered"},{name:"card_expanded"},{name:"tokenize"},{name:"process_attempt"},{name:"3ds_challenge"},{name:"checkout_error",phase:"session_create"},{name:"checkout_error",phase:"sdk_load"},{name:"checkout_error",phase:"process"},{name:"checkout_error",phase:"wallets"}];var tr=[[5,5,"NY"],[10,27,"MA"],[28,29,"RI"],[30,38,"NH"],[39,49,"ME"],[50,59,"VT"],[60,69,"CT"],[70,89,"NJ"],[100,149,"NY"],[150,196,"PA"],[197,199,"DE"],[200,205,"DC"],[206,219,"MD"],[220,246,"VA"],[247,268,"WV"],[270,289,"NC"],[290,299,"SC"],[300,319,"GA"],[320,349,"FL"],[350,369,"AL"],[370,385,"TN"],[386,397,"MS"],[398,399,"GA"],[400,427,"KY"],[430,459,"OH"],[460,479,"IN"],[480,499,"MI"],[500,528,"IA"],[530,549,"WI"],[550,567,"MN"],[570,577,"SD"],[580,588,"ND"],[590,599,"MT"],[600,629,"IL"],[630,658,"MO"],[660,679,"KS"],[680,693,"NE"],[700,714,"LA"],[716,729,"AR"],[730,749,"OK"],[750,799,"TX"],[800,816,"CO"],[820,831,"WY"],[832,838,"ID"],[840,847,"UT"],[850,865,"AZ"],[870,884,"NM"],[889,898,"NV"],[900,961,"CA"],[967,968,"HI"],[970,979,"OR"],[980,994,"WA"],[995,999,"AK"]],rr={A:"NL",B:"NS",C:"PE",E:"NB",G:"QC",H:"QC",J:"QC",K:"ON",L:"ON",M:"ON",N:"ON",P:"ON",R:"MB",S:"SK",T:"AB",V:"BC",X:"NT",Y:"YT"};function or(e){let t=e.replace(/\D/g,"");if(t.length<5)return null;let r=Number.parseInt(t.slice(0,3),10);if(!Number.isFinite(r))return null;for(let[o,n,i]of tr)if(r>=o&&r<=n)return i;return null}function nr(e){let t=e.replace(/\s+/g,"").toUpperCase();if(!/^[A-Z]\d[A-Z]\d[A-Z]\d$/.test(t))return null;let r=t[0]??"";return rr[r]??null}function ar(e,t){if(!e||!t)return null;let r=e.trim().toUpperCase(),o=t.trim();if(!o)return null;switch(r){case"US":return or(o);case"CA":return nr(o);default:return null}}import*as ir from"validator/lib/isPostalCode.js";var T=ir,Te=typeof T.default=="function"?T.default:T.default?.default;if(typeof Te!="function")throw new Error("validator/lib/isPostalCode.js interop failed: unexpected module shape. This likely means the bundler's CJS/ESM interop changed.");var Se=new Set(T.locales.map(e=>e.toUpperCase())),sr={AUSTRALIA:"AU",BRAZIL:"BR",CANADA:"CA",CH:"CH",DENMARK:"DK",DE:"DE",DEUTSCHLAND:"DE",FRANCE:"FR",GB:"GB",GERMANY:"DE",GREATBRITAIN:"GB",GREAT_BRITAIN:"GB",INDIA:"IN",IRELAND:"IE",ITALY:"IT",JAPAN:"JP",MEXICO:"MX",NETHERLANDS:"NL",NEWZEALAND:"NZ",NORWAY:"NO",POLAND:"PL",PORTUGAL:"PT",SINGAPORE:"SG",SOUTHAFRICA:"ZA",SPAIN:"ES",SWEDEN:"SE",SWITZERLAND:"CH",UK:"GB",UNITEDKINGDOM:"GB",UNITEDSTATES:"US",US:"US",USA:"US","UNITED STATES":"US","UNITED KINGDOM":"GB","GREAT BRITAIN":"GB",ENGLAND:"GB"};function B(e){let t=(e??"").trim().toUpperCase();return t?t.length===2?t:sr[t]??null:null}var ur={AU:"2000",BR:"01000-000",CA:"A1A 1A1",CH:"8001",DE:"10115",DK:"1050",ES:"28001",FR:"75008",GB:"SW1A 1AA",IE:"D02 X285",IN:"110001",IT:"00118",JP:"100-0001",MX:"06500",NL:"1012 JS",NO:"0150",NZ:"6011",PL:"00-001",PT:"1100-148",SE:"111 22",SG:"018989",US:"12345 or 12345-6789",ZA:"8001"};function dr(e){let t=B(e);return t!==null&&Se.has(t)}function cr(e,t){let r=(t??"").trim();if(!r)return!0;let o=B(e);if(o===null||!Se.has(o))return!0;try{return Te(r,o)}catch{return!0}}function lr(e){let t=B(e);return t?ur[t]:void 0}var pr=["card","wallet","paypal","apm"],mr=["card","wallet","paypal","apm"],yr=["card","paypal","apple_pay","google_pay","sepa_debit","us_bank_account"];function gr(e){return A(e)}var Er=/(?:^|\/)dahlia\/stripe\.js(?:$|[?#])/i,fr=/^dahlia\/stripe$/i,Cr=/^(?:chrome|moz|safari-web)-extension:\/\//i,Tr=/^@flopay(?:\/|$)/i;function be(e){return Er.test(e)||Cr.test(e)}function Sr(e){let t=[e.filename,e.abs_path].filter(r=>r!==void 0&&r!=="<anonymous>");return e.module!==void 0&&Tr.test(e.module)||t.some(r=>!be(r))?"first-party":e.module!==void 0&&fr.test(e.module)||t.some(be)?"third-party-hosted":t.length===0?"injected":"first-party"}function br(e){let t=e.exception?.values;if(!t||t.length===0)return e;let r=[];for(let n of t){let i=n.stacktrace?.frames;if(!i||i.length===0)return e;r.push(...i)}let o=r.map(Sr);return!o.includes("first-party")&&o.includes("third-party-hosted")?null:e}var hr=1,he=["@flopay/shared","@flopay/js","@flopay/react"],xr=32768,Ar=20,_r=["stripe","paypal"],Fr=["card","wallet","paypal","apm","saved","unknown"],Pr=["apple_pay","google_pay"],Ir=["watchdog_expired","resolved","rejected","returned_error","resolved_late","rejected_late","returned_error_late"],Rr=["none","facebook","instagram","tiktok","generic_webview","other_in_app"],Mr=["unknown","available","blocked"],kr=["popup","app_switch","redirect"],Nr=["approved","cancelled","provider_declined","popup_blocked","provider_error","overlay_timeout"],Or=["callback","sdk_initialize","checkout_mount","session_create","session_shell","session_claim","session_read","session_first_byte","session_complete","checkout_data_ready","checkout_render","provider_load","provider_ready","provider_confirmation","overlay_open","overlay_return","redirect","redirect_resume","vault_request","vault_mount","vault_ready","vault_submit","tokenization","three_ds_handoff","three_ds_return","processing","recovery","completion","unmount","total_journey"],xe=["CALLBACK_FAILED","CHECKOUT_SESSION_CREATE_FAILED","CONFIGURATION_INVALID","INTERNAL_SDK_ERROR","NETWORK_REQUEST_FAILED","PAYMENT_PROCESSING_FAILED","POPUP_BLOCKED","PROVIDER_LOAD_FAILED","PROVIDER_RUNTIME_FAILED","RECOVERY_FAILED","REDIRECT_RESUME_FAILED","REQUEST_TIMEOUT","SDK_INITIALIZATION_FAILED","THREE_DS_FAILED","TOKENIZATION_FAILED","VAULT_LOAD_FAILED","VAULT_SUBMIT_FAILED"],Ae=["server_error","transport_error","invalid_response","provider_runtime"],Lr=["authorization_declined","authentication_required","authorization_expired","capture_failed","unknown"],_e=["sdk.initialize.started","sdk.initialize.ready","sdk.cache.hit","sdk.cache.miss","checkout.mount","session.create.started","session.shell.ready","session.claim.started","session.claim.completed","session.read.started","session.request.first_byte","session.request.completed","checkout.data.ready","checkout.rendered","checkout.recovery.started","checkout.recovery.completed","checkout.unmount","provider.load.started","provider.eligibility.checked","provider.availability.checked","provider.ready","provider.handoff.requested","provider.popup.opened","provider.overlay.opened","provider.overlay.returned","provider.redirect.started","provider.redirect.resumed","vault.capture.requested","vault.widget.mounted","vault.widget.ready","vault.submission.started","vault.action.required","vault.three_ds.handoff","vault.three_ds.returned","vault.terminal","payment.method.selected","payment.intent.started","payment.intent.completed","payment.provider_confirmation.started","payment.provider_confirmation.returned","payment.tokenization.started","payment.tokenization.completed","payment.processing.started","payment.processing.completed","payment.three_ds.handoff","payment.three_ds.returned","operation.retry","operation.deduplicated","operation.fallback","operation.cache.hit","operation.cache.miss","operation.recovery.started","operation.recovery.completed","operation.state_transition"],vr=["session_create","session_claim","session_read","intent_create","process_payment","vault_capture","account_snapshot","provider_sdk","other"],Dr=["2xx","3xx","4xx","5xx","network_error","timeout","unknown"],Br=["full","auto","confirm","setup","unknown"],Ur=["embedded","buttons","automatic","unknown"],wr=["machine","buyer","total"],Vr=["action_required","card_setup_declined","card_setup_succeeded","customer_abandoned","payment_cancelled","payment_declined","payment_authorized","payment_succeeded","validation_rejected"],U=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,Gr=/^\d{1,4}\.\d{1,4}\.\d{1,4}(?:-[0-9A-Za-z.-]{1,32})?$/,Yr=new Set(xe),Kr=new Set(Ae),zr=new Set(Lr),S=new Set(Or),Hr=new Set(_r),qr=new Set(Fr),Wr=new Set(Pr),jr=new Set(Ir),Zr=new Set(Rr),$r=new Set(Mr),Xr=new Set(kr),Jr=new Set(Nr),Qr=new Set(_e),eo=new Set(Br),to=new Set(Ur),ro=new Set(vr),oo=new Set(Dr),no=new Set(wr),ao=new Set(Vr),io=new Set(he),Fe=12e4;function l(e,t,r){return typeof e=="string"&&t.has(e)?e:r}function so(){try{let r=globalThis.crypto.randomUUID();if(U.test(r))return r}catch{}let e=new Uint8Array(16);try{globalThis.crypto.getRandomValues(e)}catch{for(let r=0;r<e.length;r+=1)e[r]=Math.floor(Math.random()*256)}e[6]=(e[6]??0)&15|64,e[8]=(e[8]??0)&63|128;let t=[...e].map(r=>r.toString(16).padStart(2,"0")).join("");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}function g(e){return typeof e=="string"&&U.test(e)?e:so()}function uo(e){return typeof e=="string"&&U.test(e)?e:void 0}function co(e){return typeof e=="number"&&Number.isInteger(e)&&e>=0&&e<=100?e:void 0}function b(e){return Number.isSafeInteger(e)&&e>=0?Math.min(e,1e6):0}function Pe(e){return!Number.isFinite(e)||e<0?0:Math.min(Math.round(e),Fe)}function lo(e){return Number.isFinite(e)&&e>Fe}function h(e,t){let r=co(t.attempt);return t.provider&&Hr.has(t.provider)&&(e.provider=t.provider),r!==void 0&&(e.attempt=r),t.statusClass&&(e.statusClass=l(t.statusClass,oo,"unknown")),t.requestCategory&&(e.requestCategory=l(t.requestCategory,ro,"other")),t.paymentMethodCategory&&(e.paymentMethodCategory=l(t.paymentMethodCategory,qr,"unknown")),t.walletType&&Wr.has(t.walletType)&&(e.walletType=t.walletType),t.operationOutcome&&jr.has(t.operationOutcome)&&(e.operationOutcome=t.operationOutcome),t.checkoutMode&&(e.checkoutMode=l(t.checkoutMode,eo,"unknown")),t.layout&&(e.layout=l(t.layout,to,"unknown")),typeof t.inAppBrowser=="boolean"&&(e.inAppBrowser=t.inAppBrowser),t.appFamily&&Zr.has(t.appFamily)&&(e.appFamily=t.appFamily),t.popupCapability&&$r.has(t.popupCapability)&&(e.popupCapability=t.popupCapability),t.presentationMode&&Xr.has(t.presentationMode)&&(e.presentationMode=t.presentationMode),t.terminalReason&&Jr.has(t.terminalReason)&&(e.terminalReason=t.terminalReason),e}function Ie(e){let t=h({eventId:g(e.eventId),class:"technical_error",code:l(e.errorCode,Yr,"INTERNAL_SDK_ERROR"),stage:l(e.stage,S,"sdk_initialize"),sequence:b(e.sequence)},e);if(e.failureCategory&&Kr.has(e.failureCategory)&&(t.failureCategory=e.failureCategory),e.reason!==void 0&&(t.reason=l(e.reason,zr,"unknown")),e.stage!=="provider_confirmation"){let r=uo(e.checkoutSessionId);r&&(t.checkoutSessionId=r)}return e.durationMs!==void 0&&(t.durationMs=Pe(e.durationMs)),t}function Re(e){return h({eventId:g(e.eventId),class:"lifecycle",name:l(e.name,Qr,"operation.retry"),stage:l(e.stage,S,"sdk_initialize"),sequence:b(e.sequence)},e)}function Me(e){let t={...e,stage:e.stage??"completion"};return h({eventId:g(e.eventId),class:"expected_outcome",outcome:l(e.outcome,ao,"customer_abandoned"),stage:l(e.stage,S,"completion"),sequence:b(e.sequence)},t)}function ke(e){let t=h({eventId:g(e.eventId),class:"performance",stage:l(e.stage,S,"sdk_initialize"),sequence:b(e.sequence),durationMs:Pe(e.durationMs),durationMode:l(e.durationMode,no,"machine")},e);return(e.durationTruncated===!0||lo(e.durationMs))&&(t.durationTruncated=!0),t}function po(e,t){let r=e.slice(0,20).flatMap(n=>n.class==="technical_error"?[Ie({...n,errorCode:n.code})]:n.class==="lifecycle"?[Re(n)]:n.class==="expected_outcome"?[Me(n)]:n.class==="performance"?[ke(n)]:[]),o={schemaVersion:1,batchId:g(t.batchId),correlationId:g(t.correlationId),sdk:{package:l(t.sdkPackage,io,"@flopay/shared"),version:Gr.test(t.sdkVersion)?t.sdkVersion:"0.0.0"},events:r};return JSON.stringify(o)}var mo=new Set(["InvalidCheckoutSessionResponse","InvalidPaymentProcessResponse","InvalidSessionIntentResponse"]);function yo(e,t){if(e===422)return"validation_rejected";if(e===400&&!(t===null||typeof t!="object"||Array.isArray(t)))return Array.isArray(t.fields)?"validation_rejected":"payment_declined"}function go(e,t,r="network_error"){if(e instanceof SyntaxError)return{errorCode:t,statusClass:"unknown",failureCategory:"invalid_response"};if(e instanceof d&&e.code!==void 0&&mo.has(e.code))return{errorCode:t,statusClass:w(e.statusCode,"unknown"),failureCategory:"invalid_response"};if(e instanceof Error&&(e.name==="AbortError"||e instanceof d&&e.code==="checkout_processing_timeout"))return{errorCode:"REQUEST_TIMEOUT",statusClass:"timeout",failureCategory:"transport_error"};if(e instanceof TypeError||e instanceof d&&e.type==="network_error")return{errorCode:"NETWORK_REQUEST_FAILED",statusClass:"network_error",failureCategory:"transport_error"};let o=w(e instanceof d?e.statusCode:void 0,r);return{errorCode:t,statusClass:o,...o==="5xx"?{failureCategory:"server_error"}:{}}}function w(e,t="network_error"){if(e===void 0)return t;let r=`${Math.floor(e/100)}xx`;return r==="2xx"||r==="3xx"||r==="4xx"||r==="5xx"?r:"unknown"}function Eo(e){if(e!=null)switch(e){case"sandbox":case"stage":return"sandbox";case"live":case"production":return"live";default:console.warn(`[FloPay] Unrecognized gateway environment "${e}". Expected one of: sandbox, live, stage, production. Falling back to undefined.`);return}}var V=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function fo(e){return typeof e=="string"&&V.test(e)}function Co(){try{let r=globalThis.crypto.randomUUID();if(V.test(r))return r}catch{}let e=new Uint8Array(16);try{globalThis.crypto.getRandomValues(e)}catch{for(let r=0;r<e.length;r+=1)e[r]=Math.floor(Math.random()*256)}e[6]=(e[6]??0)&15|64,e[8]=(e[8]??0)&63|128;let t=[...e].map(r=>r.toString(16).padStart(2,"0")).join("");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}function To(e){return L[e.toUpperCase()]??v}function So(e){return/^pk_(test|live)_[A-Za-z0-9]+$/.test(e)}function bo(e){return/^sk_(test|live)_[A-Za-z0-9]+$/.test(e)}function ho(e){return typeof e=="string"&&e.startsWith("seti_")}function xo(...e){return/^\s*card\s+holder\s+name\s*$/i.test(e.join(" "))}export{ot as ASYNC_AUTO_CHECKOUT_CAPABILITY,ct as BILLING_API_URL,j as BILLING_API_URL_PRODUCTION,C as BILLING_API_URL_STAGING,Q as BOLD_DARK_APPEARANCE,J as BOLD_LIGHT_APPEARANCE,k as BUTTONS_LAYOUT_BOLD_DARK,M as BUTTONS_LAYOUT_BOLD_LIGHT,ae as BUTTONS_LAYOUT_DARK,re as BUTTONS_LAYOUT_DEFAULT,O as BUTTONS_LAYOUT_GLASS_DARK,N as BUTTONS_LAYOUT_GLASS_LIGHT,oe as BUTTONS_LAYOUT_MINIMAL,R as BUTTONS_LAYOUT_MODERN_DARK,I as BUTTONS_LAYOUT_MODERN_LIGHT,ne as BUTTONS_LAYOUT_ROUNDED,Ee as CA_PROVINCES,ut as CHECKOUT_PROCESSING_TIMEOUT_MESSAGE,me as COUNTRY_OPTIONS,L as CURRENCY_MAP,dt as DEFAULT_API_BASE_URL,pt as DEFAULT_API_VERSION,Z as DEFAULT_APPEARANCE,v as DEFAULT_CURRENCY,mt as FLAT_APPEARANCE,er as FLO_INSTRUMENT_CATALOG,Qt as FLO_INSTRUMENT_SCHEMA_VERSION,rt as FLO_SDK_CAPABILITIES_HEADER,tt as FLO_SDK_VERSION_HEADER,d as FloPayError,te as GLASS_DARK_APPEARANCE,ee as GLASS_LIGHT_APPEARANCE,$t as IDEMPOTENCY_IN_PROGRESS_CODE,Zt as IDEMPOTENCY_KEY_HEADER,D as MAX_IDEMPOTENCY_KEY_LENGTH,X as MODERN_DARK_APPEARANCE,$ as MODERN_LIGHT_APPEARANCE,yt as NIGHT_APPEARANCE,at as PAYPAL_VAULTED_PAYMENT_METHOD_TYPE,pr as SAVED_PAYMENT_METHOD_FAMILIES,yr as SAVED_PAYMENT_METHOD_LIST_TYPES,mr as SAVED_PAYMENT_METHOD_TYPES,et as SDK_VERSION,it as STORED_PAYMENT_METHOD_UNSUPPORTED_CODE,st as STORED_PAYMENT_METHOD_UNSUPPORTED_MESSAGE,ue as STRIPE_EXPRESS_METHODS,le as STRIPE_METHOD_AMOUNT_LIMITS,ce as STRIPE_METHOD_COUNTRIES,de as STRIPE_METHOD_CURRENCIES,y as STRIPE_METHOD_MATRIX,Rt as SUPPORTED_CARD_BRANDS,xe as TELEMETRY_ERROR_CODES,Ae as TELEMETRY_FAILURE_CATEGORIES,_e as TELEMETRY_LOG_NAMES,xr as TELEMETRY_MAX_BATCH_BYTES,Ar as TELEMETRY_MAX_BATCH_EVENTS,hr as TELEMETRY_SCHEMA_VERSION,he as TELEMETRY_SDK_PACKAGES,ie as THEMES,nt as THREE_DS_CHALLENGE_WINDOW_MS,ge as US_STATES,V as UUID_V4,Ye as apiError,qe as assertCaptureMethodEligible,Ke as authenticationError,Yt as buildCheckoutDisplayData,Ze as buildItemPayload,je as buildProductPayload,$e as buildSubscriptionPayload,Ie as buildTelemetryErrorEvent,Re as buildTelemetryLogEvent,ke as buildTelemetryPerformanceEvent,Me as buildTelemetryTerminalEvent,yo as classifyPaymentRejection,go as classifyTelemetryFailure,Je as configureFlopay,br as dropThirdPartyOnlyError,Pt as filterStripeMethodsByAmount,Ft as filterStripeMethodsByCountry,_t as filterStripeMethodsByCurrency,K as foldIntoProducts,Ce as generateIdempotencyKey,P as getConfiguredBillingApiUrl,Dt as getCountryByCode,To as getCurrencyByCountry,Qe as getFloPayEnvironment,lr as getPostalCodeExample,Mt as getPostalCodeLabel,ar as getStateFromPostalCode,Gt as getStateLabel,Vt as getStateOptions,ht as getStripeMethodDisplayName,St as hasVendoredStripeMethodLogo,wt as isAVSEnabled,Ut as isAVSFieldVisible,Ue as isAuthorizationOnlySession,xo as isCardHolderNamePlaceholder,A as isCardSetupCheckoutSession,We as isDetachedSessionEligible,we as isMoneySettledOutcome,dr as isPostalCodeSupported,gr as isSetupCheckoutSession,ho as isSetupIntentClientSecret,fo as isUuidV4,jt as isValidEmail,cr as isValidPostalCode,So as isValidPublishableKey,bo as isValidSecretKey,xt as needsStripeMethodExplicitConfirm,He as networkError,Ve as normalizeCheckoutFailureOutcome,Eo as normalizeGatewayEnvironment,It as partitionStripeMethods,Co as randomUuidV4,ze as rateLimitError,ye as resolveAVSConfig,lt as resolveBillingApiUrl,gt as resolveButtonsLayoutTheme,Jt as resolveIdempotencyKey,_ as resolveSessionCurrency,At as resolveStripeMethodBrandVariant,Et as resolveTheme,po as serializeTelemetryBatch,ft as stripeExpressMethodToOptionKey,w as telemetryStatusClass,Ge as validationError};
1
+ function A(e){return e.checkoutMode==="setup"&&e.amount===0&&(e.products?.length??0)===0}function we(e){return e?.captureMethod==="manual"}function Ve(e,t){return e==="requires_capture"?t!=="manual":e==="succeeded"||e==="complete"||e==="completed"||e==="captured"||e==="paid"}function Ge(e){if(typeof e!="string"||e.length===0)return;let t=e.trim().toLowerCase().replace(/[\s-]+/g,"_");if(t==="capture_failed"||t.includes("capture")&&(t.includes("fail")||t.includes("error")))return"capture_failed";if(t==="authorization_expired"||t.includes("expired")||t.includes("expiry"))return"authorization_expired";if(t==="authentication_required"||t.includes("3ds")||t.includes("three_d")||t.includes("authentication")||t.includes("action_required"))return"authentication_required";if(t==="authorization_declined"||t.includes("declin")||t.includes("authorization_fail"))return"authorization_declined"}var d=class extends Error{constructor(t,r,n){super(t),this.name="FloPayError",this.type=r,this.code=n?.code,this.declineCode=n?.declineCode,this.param=n?.param,this.statusCode=n?.statusCode,n?.details!==void 0&&(this.details=n.details),n?.sessionId!==void 0&&(this.sessionId=n.sessionId),n?.cause!==void 0&&(this.cause=n.cause),Object.setPrototypeOf(this,new.target.prototype)}};function Ye(e,t){return new d(e,"validation_error",{param:t})}function Ke(e,t,r){return new d(e,"api_error",{code:t,statusCode:r})}function ze(e){return new d(e,"authentication_error")}function He(e){return new d(e,"rate_limit_error")}function qe(e){return new d(e,"network_error")}function We(e){if(!(e.captureMethod!=="manual"||!(e.products??z(e.items,e.subscriptions)).some(r=>r.type==="subscription")))throw new d("Manual capture is not supported for subscription products.","validation_error",{code:"CaptureMethodUnsupportedForSubscription",param:"captureMethod"})}function je(e){return e.deferDataAttachment!==!1&&(e.checkoutMode??"full")==="full"&&!e.tokenizedData}function a(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function _(e,t,r,n){let o=a(e);if(o)return o;for(let i of t??[]){let s=a(i.currency);if(s)return s}for(let i of r??[]){let s=a(i.currency);if(s)return s}for(let i of n??[]){let s=a(i.currency);if(s)return s}return null}function z(e,t){let r=[];for(let n of t??[])r.push({type:"subscription",code:a(n.code)??a(n.providerPlanId),providerPlanId:n.providerPlanId,name:a(n.subscriptionName)??a(n.providerPlanName)??null,subscriptionName:n.subscriptionName??null,providerPlanName:n.providerPlanName??null,quantity:n.quantity,totalAmount:n.totalAmount,overrideAmount:n.overrideAmount,currency:n.currency,metadata:n.metadata});for(let n of e??[])r.push({type:"item",code:a(n.code)??a(n.providerItemId),providerItemId:n.providerItemId,name:a(n.itemName)??a(n.providerItemName)??null,itemName:n.itemName??null,providerItemName:n.providerItemName??null,quantity:n.quantity,totalAmount:n.totalAmount,overrideAmount:n.overrideAmount,currency:n.currency,metadata:n.metadata});return r}function Ze(e,t){let r=a(e.code)??a(e.providerItemId)??a(e.providerPlanId);if(!r)throw new Error("CheckoutProduct requires `code` (or the deprecated `providerItemId` / `providerPlanId`).");let n=a(e.name)??a(e.itemName)??a(e.providerItemName)??a(e.subscriptionName)??a(e.providerPlanName)??null,o={type:e.type,code:r,name:n,quantity:e.quantity??1,totalAmount:e.totalAmount,overrideAmount:e.overrideAmount??null,currency:a(e.currency)??t};return e.metadata&&(o.metadata=e.metadata),o}function $e(e,t){let r=a(e.code)??a(e.providerItemId);if(!r)throw new Error("CheckoutItem requires either `code` or the deprecated `providerItemId`.");let n=a(e.itemName)??a(e.providerItemName)??null,o={code:r,providerItemId:a(e.providerItemId)??r,itemName:n,providerItemName:a(e.providerItemName)??n,quantity:e.quantity??1,totalAmount:e.totalAmount,overrideAmount:e.overrideAmount??null,currency:a(e.currency)??t};return e.metadata&&(o.metadata=e.metadata),o}function Xe(e,t){let r=a(e.code)??a(e.providerPlanId);if(!r)throw new Error("CheckoutSubscription requires either `code` or the deprecated `providerPlanId`.");let n=a(e.subscriptionName)??a(e.providerPlanName)??null,o={code:r,providerPlanId:a(e.providerPlanId)??r,subscriptionName:n,providerPlanName:a(e.providerPlanName)??n,quantity:e.quantity??1,totalAmount:e.totalAmount,overrideAmount:e.overrideAmount??null,currency:a(e.currency)??t};return e.metadata&&(o.metadata=e.metadata),o}var Je={local:"https://flo.ngrok.pro",staging:"https://api.stage.flopay.com",production:"https://api.flopay.com"},F="staging";function Qe(e){F=e.environment}function P(){return Je[F]}function et(){return F}var H=["alipay","bancontact","blik","eps","giropay","ideal","klarna","p24","sepa_debit","wechat_pay"];var tt="1.11.0",rt="x-flo-sdk-version",nt="x-flo-sdk-capabilities",ot="async-auto-checkout-v1",at=3e5,it="paypal_vaulted",st="stored_payment_method_unsupported",ut="This saved payment method can\u2019t be used for this payment. Choose another payment method.",dt="We\u2019re still confirming your payment. Please don\u2019t pay again.",C="https://api.stage.flopay.com",Z="https://api.flopay.com",ct=C,lt=C;function pt(e){return e||(typeof process<"u"&&process.env?.NEXT_PUBLIC_FLOPAY_ENV?process.env.NEXT_PUBLIC_FLOPAY_ENV==="production"?Z:C:P())}var mt="2024-01-01",$={theme:"default",variables:{colorPrimary:"#4A49FF",colorBackground:"#FFFFFF",colorText:"#262833",colorDanger:"#DF1B41",borderRadius:"8px",fontFamily:"Poppins, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"4px"}},yt={theme:"flat",variables:{...$.variables,borderRadius:"4px"}},gt={theme:"night",variables:{colorPrimary:"#7B7BFF",colorBackground:"#1A1A2E",colorText:"#E0E0E0",colorDanger:"#FF6B6B",borderRadius:"8px",fontFamily:"Poppins, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"4px"}},X={theme:"default",variables:{colorPrimary:"#1785E0",colorBackground:"#FFFFFF",colorText:"#0F172A",colorDanger:"#EF4444",borderRadius:"12px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"15px",spacingUnit:"5px"},rules:{".Input":{padding:"14px 16px",border:"1.5px solid #E5E7EB",boxShadow:"0 1px 2px rgba(15,23,42,0.04)"},".Input:focus":{borderColor:"#1785E0",boxShadow:"0 0 0 4px rgba(23,133,224,0.12)"},".Label":{fontWeight:"500",color:"#475569",marginBottom:"6px"},".Tab":{padding:"12px 16px",borderRadius:"12px",border:"1.5px solid #E5E7EB"},".Tab:hover":{borderColor:"#CBD5E1"},".Tab--selected":{borderColor:"#1785E0",boxShadow:"0 0 0 1px #1785E0"}}},J={theme:"night",variables:{colorPrimary:"#60A5FA",colorBackground:"#0B1220",colorText:"#F1F5F9",colorDanger:"#F87171",borderRadius:"12px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"15px",spacingUnit:"5px"},rules:{".Input":{backgroundColor:"#111827",padding:"14px 16px",border:"1.5px solid #1F2937",color:"#F1F5F9",boxShadow:"none"},".Input:focus":{borderColor:"#60A5FA",boxShadow:"0 0 0 4px rgba(96,165,250,0.18)"},".Label":{fontWeight:"500",color:"#94A3B8",marginBottom:"6px"},".Tab":{padding:"12px 16px",borderRadius:"12px",border:"1.5px solid #1F2937",backgroundColor:"#111827",color:"#F1F5F9"},".Tab:hover":{borderColor:"#374151"},".Tab--selected":{borderColor:"#60A5FA",boxShadow:"0 0 0 1px #60A5FA"}}},Q={theme:"default",variables:{colorPrimary:"#1785E0",colorBackground:"#FFFFFF",colorText:"#0C2B4D",colorDanger:"#DC2626",borderRadius:"12px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"5px"},rules:{".Input":{padding:"14px 16px",border:"2px solid #E5E7EB"},".Input:focus":{borderColor:"#1785E0",boxShadow:"0 0 0 3px rgba(23,133,224,0.2)"},".Label":{fontWeight:"600",color:"#0C2B4D"},".Tab":{padding:"14px 18px",border:"2px solid #E5E7EB",fontWeight:"600"},".Tab--selected":{borderColor:"#1785E0",boxShadow:"0 0 0 1px #1785E0"}}},ee={theme:"night",variables:{colorPrimary:"#60A5FA",colorBackground:"#0C2B4D",colorText:"#FFFFFF",colorDanger:"#F87171",borderRadius:"12px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"5px"},rules:{".Input":{backgroundColor:"#1E3A8A",padding:"14px 16px",border:"2px solid #1E40AF",color:"#FFFFFF"},".Input:focus":{borderColor:"#60A5FA",boxShadow:"0 0 0 3px rgba(96,165,250,0.25)"},".Label":{fontWeight:"600",color:"#DBEAFE"},".Tab":{padding:"14px 18px",border:"2px solid #1E40AF",backgroundColor:"#1E3A8A",color:"#FFFFFF",fontWeight:"600"},".Tab--selected":{borderColor:"#60A5FA",boxShadow:"0 0 0 1px #60A5FA"}}},te={theme:"default",variables:{colorPrimary:"#1785E0",colorBackground:"#FFFFFF",colorText:"#1E293B",colorDanger:"#EF4444",borderRadius:"16px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"15px",spacingUnit:"5px"},rules:{".Input":{backgroundColor:"rgba(255,255,255,0.6)",backdropFilter:"blur(10px)",padding:"14px 16px",border:"1px solid rgba(255,255,255,0.6)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.5), 0 1px 3px rgba(23,133,224,0.08)"},".Input:focus":{borderColor:"rgba(23,133,224,0.5)",boxShadow:"0 0 0 3px rgba(23,133,224,0.15)"},".Label":{fontWeight:"500",color:"#475569"},".Tab":{padding:"12px 16px",backgroundColor:"rgba(255,255,255,0.5)",border:"1px solid rgba(255,255,255,0.6)",borderRadius:"14px"},".Tab--selected":{borderColor:"rgba(23,133,224,0.6)",boxShadow:"0 0 0 1px rgba(23,133,224,0.6)"}}},re={theme:"night",variables:{colorPrimary:"#60A5FA",colorBackground:"#0F172A",colorText:"#F1F5F9",colorDanger:"#F87171",borderRadius:"16px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"15px",spacingUnit:"5px"},rules:{".Input":{backgroundColor:"rgba(15,23,42,0.6)",backdropFilter:"blur(10px)",padding:"14px 16px",border:"1px solid rgba(255,255,255,0.08)",color:"#F1F5F9"},".Input:focus":{borderColor:"rgba(96,165,250,0.5)",boxShadow:"0 0 0 3px rgba(96,165,250,0.2)"},".Label":{fontWeight:"500",color:"#94A3B8"},".Tab":{padding:"12px 16px",backgroundColor:"rgba(15,23,42,0.6)",border:"1px solid rgba(255,255,255,0.08)",borderRadius:"14px",color:"#F1F5F9"},".Tab--selected":{borderColor:"rgba(96,165,250,0.6)",boxShadow:"0 0 0 1px rgba(96,165,250,0.6)"}}},ne={},oe={cardButton:{border:"none",backgroundColor:"#f9fafb",boxShadow:"none"},cardFormContainer:{backgroundColor:"#f9fafb",border:"none"},cardInputBorder:"#e5e7eb",backButtonIcon:{backgroundColor:"#e5e7eb"},submitButton:{borderRadius:"6px"}},ae={cardButton:{borderRadius:"9999px",border:"1px solid #e5e7eb",boxShadow:"0 1px 3px rgba(0,0,0,0.06)"},cardFormContainer:{borderRadius:"16px",border:"1px solid #e5e7eb",boxShadow:"0 2px 8px rgba(0,0,0,0.06)"},cardInputBorder:"#d1d5db",submitButton:{borderRadius:"9999px"},backButtonIcon:{backgroundColor:"#f3f4f6"}},ie={cardButton:{backgroundColor:"#1f2937",color:"#f9fafb",border:"1px solid #374151",boxShadow:"none"},cardFormContainer:{backgroundColor:"#111827",border:"1px solid #374151"},cardInputBorder:"#4b5563",cardInputColor:"#f9fafb",cardInputPlaceholderColor:"#6b7280",cardInputBackground:"#1f2937",nameInput:{backgroundColor:"#1f2937",color:"#f9fafb"},backButton:{color:"#9ca3af"},backButtonIcon:{backgroundColor:"#374151"},submitButton:{backgroundColor:"#6366f1"},title:{color:"#f9fafb"},countrySelect:{backgroundColor:"#1f2937",color:"#f9fafb"},zipInput:{backgroundColor:"#1f2937",color:"#f9fafb"}},I={cardFormContainer:{backgroundColor:"#FAFAFA",borderRadius:"20px",border:"1px solid #E5E7EB",boxShadow:"0 8px 24px rgba(15,23,42,0.04)",padding:"24px"},cardButton:{backgroundColor:"#FFFFFF",borderRadius:"14px",border:"1.5px solid #E5E7EB",boxShadow:"0 1px 2px rgba(15,23,42,0.04)",padding:"14px 18px"},cardInputBorder:"#E5E7EB",nameInput:{backgroundColor:"#FFFFFF",border:"1.5px solid #E5E7EB",borderRadius:"14px",padding:"14px 16px"},submitButton:{backgroundColor:"#1785E0",borderRadius:"14px",padding:"16px 24px",boxShadow:"0 4px 14px rgba(23,133,224,0.25)",fontWeight:"600"},title:{color:"#0F172A",fontWeight:"600"},titleFontSize:"20px",backButton:{color:"#64748B"},backButtonIcon:{backgroundColor:"#F1F5F9"}},R={cardFormContainer:{backgroundColor:"#111827",borderRadius:"20px",border:"1px solid #1F2937",boxShadow:"0 8px 24px rgba(0,0,0,0.2)",padding:"24px"},cardButton:{backgroundColor:"#0B1220",borderRadius:"14px",border:"1.5px solid #1F2937",color:"#F1F5F9",padding:"14px 18px"},cardInputBorder:"#1F2937",cardInputBackground:"#111827",cardInputColor:"#F1F5F9",cardInputPlaceholderColor:"#64748B",nameInput:{backgroundColor:"#111827",border:"1.5px solid #1F2937",borderRadius:"14px",padding:"14px 16px",color:"#F1F5F9"},submitButton:{backgroundColor:"#60A5FA",borderRadius:"14px",padding:"16px 24px",boxShadow:"0 4px 14px rgba(96,165,250,0.3)",fontWeight:"600",color:"#0B1220"},title:{color:"#F1F5F9",fontWeight:"600"},titleFontSize:"20px",backButton:{color:"#94A3B8"},backButtonIcon:{backgroundColor:"#1F2937"},countrySelect:{backgroundColor:"#111827",color:"#F1F5F9"},zipInput:{backgroundColor:"#111827",color:"#F1F5F9"}},M={cardFormContainer:{backgroundColor:"#EFF6FF",borderRadius:"20px",border:"2px solid #1785E0",padding:"24px"},cardButton:{backgroundColor:"#FFFFFF",borderRadius:"12px",border:"2px solid #1785E0",color:"#1785E0",fontWeight:"700",padding:"14px 18px"},cardInputBorder:"#E5E7EB",nameInput:{backgroundColor:"#FFFFFF",border:"2px solid #E5E7EB",borderRadius:"12px",padding:"14px 16px",fontWeight:"500"},submitButton:{background:"linear-gradient(135deg, #1785E0 0%, #0EA5E9 100%)",borderRadius:"9999px",padding:"16px 24px",boxShadow:"0 10px 25px rgba(23,133,224,0.35)",fontWeight:"700",color:"#FFFFFF",border:"none"},submitButtonFontSize:"17px",title:{color:"#0C2B4D",fontWeight:"800",letterSpacing:"-0.02em"},titleFontSize:"22px",backButton:{color:"#1785E0",fontWeight:"600"},backButtonIcon:{backgroundColor:"#DBEAFE"}},k={cardFormContainer:{backgroundColor:"#1E3A8A",borderRadius:"20px",border:"2px solid #60A5FA",padding:"24px"},cardButton:{backgroundColor:"#0C2B4D",borderRadius:"12px",border:"2px solid #60A5FA",color:"#60A5FA",fontWeight:"700",padding:"14px 18px"},cardInputBorder:"#1E40AF",cardInputBackground:"#1E3A8A",cardInputColor:"#FFFFFF",cardInputPlaceholderColor:"#60A5FA",nameInput:{backgroundColor:"#1E3A8A",border:"2px solid #1E40AF",borderRadius:"12px",padding:"14px 16px",fontWeight:"500",color:"#FFFFFF"},submitButton:{background:"linear-gradient(135deg, #60A5FA 0%, #38BDF8 100%)",borderRadius:"9999px",padding:"16px 24px",boxShadow:"0 10px 25px rgba(96,165,250,0.35)",fontWeight:"700",color:"#FFFFFF",border:"none"},submitButtonFontSize:"17px",title:{color:"#FFFFFF",fontWeight:"800",letterSpacing:"-0.02em"},titleFontSize:"22px",backButton:{color:"#DBEAFE",fontWeight:"600"},backButtonIcon:{backgroundColor:"#1E40AF"},countrySelect:{backgroundColor:"#1E3A8A",color:"#FFFFFF"},zipInput:{backgroundColor:"#1E3A8A",color:"#FFFFFF"}},N={cardFormContainer:{background:"linear-gradient(135deg, #DBEAFE 0%, #BFDBFE 100%)",borderRadius:"24px",border:"1px solid rgba(255,255,255,0.6)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.6), 0 12px 40px rgba(23,133,224,0.15)",padding:"28px"},cardButton:{backgroundColor:"rgba(255,255,255,0.7)",backdropFilter:"blur(20px)",borderRadius:"16px",border:"1px solid rgba(255,255,255,0.6)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.5), 0 4px 16px rgba(23,133,224,0.1)",padding:"14px 18px"},cardInputBorder:"rgba(255,255,255,0.6)",nameInput:{backgroundColor:"rgba(255,255,255,0.6)",backdropFilter:"blur(10px)",border:"1px solid rgba(255,255,255,0.6)",borderRadius:"14px",padding:"14px 16px"},submitButton:{backgroundColor:"rgba(23,133,224,0.95)",backdropFilter:"blur(10px)",borderRadius:"16px",padding:"16px 24px",boxShadow:"0 10px 30px rgba(23,133,224,0.3), inset 0 1px 0 rgba(255,255,255,0.2)",fontWeight:"600",color:"#FFFFFF"},title:{color:"#1E293B",fontWeight:"600",letterSpacing:"-0.01em"},titleFontSize:"20px",backButton:{color:"#1785E0",fontWeight:"500"},backButtonIcon:{backgroundColor:"rgba(255,255,255,0.7)"}},O={cardFormContainer:{background:"linear-gradient(135deg, #0C2B4D 0%, #0F172A 100%)",borderRadius:"24px",border:"1px solid rgba(255,255,255,0.08)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.06), 0 20px 50px rgba(0,0,0,0.4)",padding:"28px"},cardButton:{backgroundColor:"rgba(15,23,42,0.6)",backdropFilter:"blur(20px)",borderRadius:"16px",border:"1px solid rgba(255,255,255,0.08)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.05), 0 4px 16px rgba(0,0,0,0.3)",padding:"14px 18px",color:"#F1F5F9"},cardInputBorder:"rgba(255,255,255,0.08)",cardInputBackground:"rgba(15,23,42,0.6)",cardInputColor:"#F1F5F9",cardInputPlaceholderColor:"#64748B",nameInput:{backgroundColor:"rgba(15,23,42,0.6)",backdropFilter:"blur(10px)",border:"1px solid rgba(255,255,255,0.08)",borderRadius:"14px",padding:"14px 16px",color:"#F1F5F9"},submitButton:{backgroundColor:"rgba(96,165,250,0.9)",backdropFilter:"blur(10px)",borderRadius:"16px",padding:"16px 24px",boxShadow:"0 10px 30px rgba(96,165,250,0.35), inset 0 1px 0 rgba(255,255,255,0.15)",fontWeight:"600",color:"#0F172A"},title:{color:"#F1F5F9",fontWeight:"600",letterSpacing:"-0.01em"},titleFontSize:"20px",backButton:{color:"#60A5FA",fontWeight:"500"},backButtonIcon:{backgroundColor:"rgba(255,255,255,0.08)"},countrySelect:{backgroundColor:"rgba(15,23,42,0.6)",color:"#F1F5F9"},zipInput:{backgroundColor:"rgba(15,23,42,0.6)",color:"#F1F5F9"}};function Et(e){switch(e){case"minimal":return oe;case"rounded":return ae;case"dark":return ie;case"modern-light":return I;case"modern-dark":return R;case"bold-light":return M;case"bold-dark":return k;case"glass-light":return N;case"glass-dark":return O;default:return ne}}var se={"modern-light":{appearance:X,buttonsLayout:I},"modern-dark":{appearance:J,buttonsLayout:R},"bold-light":{appearance:Q,buttonsLayout:M},"bold-dark":{appearance:ee,buttonsLayout:k},"glass-light":{appearance:te,buttonsLayout:N},"glass-dark":{appearance:re,buttonsLayout:O}};function ft(e){if(!(!e||e==="classic"))return se[e]}function Ct(e){switch(e){case"apple_pay":return"applePay";case"google_pay":return"googlePay";case"amazon_pay":return"amazonPay";default:return e}}function Tt(e,t,r){return`<svg viewBox="0 0 22 22"><circle cx="11" cy="11" r="11" fill="${t}"/><text x="11" y="15.5" text-anchor="middle" font-size="13" font-weight="700" font-family="sans-serif" fill="${r}">${e}</text></svg>`}function q(e,t){return`<svg viewBox="0 0 22 22"><circle cx="11" cy="11" r="11" fill="${e}"/><g fill="${t}"><path d="M11 4 L17.5 8 L4.5 8 Z"/><rect x="5" y="8.4" width="12" height="1.2" rx="0.3"/><rect x="5.9" y="10" width="1.5" height="5"/><rect x="8.55" y="10" width="1.5" height="5"/><rect x="11.95" y="10" width="1.5" height="5"/><rect x="14.6" y="10" width="1.5" height="5"/><rect x="4.6" y="15.4" width="12.8" height="1.5" rx="0.3"/></g></svg>`}function W(e,t,r,n=t){return{backgroundColor:t,borderColor:t,textColor:r,logoSvg:Tt(e,r,n)}}function c(e,t,r,n=t,o=r,i=n){return{light:W(e,t,r),dark:W(e,n,o,i)}}var ue=["AT","BE","BG","CY","CZ","DE","DK","EE","ES","FI","FR","GR","HR","HU","IE","IT","LT","LU","LV","MT","NL","PL","PT","RO","SE","SI","SK","IS","LI","NO","CH","GB","MC","SM","AD","VA"],St=[...ue,"JP","MX","US"],y={apple_pay:{displayName:"Apple Pay",currencies:["*"],express:!0,needsExplicitConfirm:!1},google_pay:{displayName:"Google Pay",currencies:["*"],express:!0,needsExplicitConfirm:!1},paypal:{displayName:"PayPal",currencies:["eur","gbp","usd","cad","aud","nzd","chf","jpy","pln","sek","nok","dkk","czk","huf"],express:!0,needsExplicitConfirm:!1},link:{displayName:"Link",currencies:["usd","eur"],express:!0,needsExplicitConfirm:!1},amazon_pay:{displayName:"Amazon Pay",currencies:["usd","eur","gbp"],express:!0,needsExplicitConfirm:!1},klarna:{displayName:"Klarna",currencies:["usd","eur","gbp","aud","nzd","cad","chf","sek","nok","dkk","pln","czk","ron"],amounts:{usd:{min:100},eur:{min:100},gbp:{min:100}},theme:c("K","#FFB3C7","#0A0B09")},affirm:{displayName:"Affirm",currencies:["usd"],countries:["US","CA"],amounts:{usd:{min:3500,max:3e6}},needsExplicitConfirm:!1,theme:c("a","#060F33","#FFFFFF","#0FA0EA","#060F33","#FFFFFF")},cashapp:{displayName:"Cash App Pay",currencies:["usd"],countries:["US"],amounts:{usd:{min:50,max:99999999}},needsExplicitConfirm:!1,theme:c("$","#00D54B","#0A1F0E")},samsung_pay:{displayName:"Samsung Pay",currencies:["krw"],countries:["KR"],needsExplicitConfirm:!1},afterpay_clearpay:{displayName:"Afterpay",currencies:["usd","aud","cad","gbp","nzd"],countries:["US","CA","GB","AU","NZ"],amounts:{usd:{min:100,max:2e5},cad:{min:100,max:2e5},gbp:{min:100,max:12e4},aud:{min:100,max:2e5},nzd:{min:100,max:2e5}},theme:c("A","#B2FCE4","#0A0B09")},alipay:{displayName:"Alipay",currencies:["usd","cny"],theme:c("A","#1677FF","#FFFFFF")},au_becs_debit:{displayName:"BECS Direct Debit",currencies:["aud"],countries:["AU"]},bacs_debit:{displayName:"Bacs Debit",currencies:["gbp"],countries:["GB"]},bancontact:{displayName:"Bancontact",currencies:["eur"],countries:["BE"],theme:c("B","#FFDD55","#1E3791","#1E3791","#FFDD55")},bizum:{displayName:"Bizum",currencies:["eur"],countries:["ES"],theme:c("B","#00BFB3","#FFFFFF")},blik:{displayName:"BLIK",currencies:["pln"],countries:["PL"],theme:c("B","#000000","#FFFFFF","#FFFFFF","#000000")},boleto:{displayName:"Boleto",currencies:["brl"],countries:["BR"]},customer_balance:{displayName:"Bank Transfer",currencies:["eur","usd"],countries:St,theme:{light:{backgroundColor:"#1F2937",textColor:"#FFFFFF",borderColor:"#1F2937",logoSvg:q("#1F2937","#FFFFFF")},dark:{backgroundColor:"#374151",textColor:"#FFFFFF",borderColor:"#374151",logoSvg:q("#374151","#FFFFFF")}}},eps:{displayName:"EPS",currencies:["eur"],countries:["AT"],theme:c("E","#C8102E","#FFFFFF")},giropay:{displayName:"Giropay",currencies:["eur"],countries:["DE"],theme:c("G","#0F4197","#FFFFFF")},ideal:{displayName:"iDEAL",currencies:["eur"],countries:["NL"],theme:c("i","#CC0066","#FFFFFF")},konbini:{displayName:"Konbini",currencies:["jpy"],countries:["JP"]},kr_card:{displayName:"Korean Card",currencies:["krw"],countries:["KR"],theme:c("K","#0B3D91","#FFFFFF")},multibanco:{displayName:"Multibanco",currencies:["eur"],countries:["PT"]},oxxo:{displayName:"OXXO",currencies:["mxn"],countries:["MX"]},p24:{displayName:"Przelewy24",currencies:["eur","pln"],countries:["PL"],theme:c("P","#D90F1B","#FFFFFF")},paynow:{displayName:"PayNow",currencies:["sgd"],countries:["SG"]},pix:{displayName:"Pix",currencies:["brl"],countries:["BR"]},promptpay:{displayName:"PromptPay",currencies:["thb"],countries:["TH"]},sepa_debit:{displayName:"SEPA Debit",currencies:["eur"],countries:ue,theme:c("\u20AC","#10298E","#FFFFFF","#3056D3")},sofort:{displayName:"Sofort",currencies:["eur"],countries:["AT","BE","DE","ES","IT","NL"],theme:c("S","#EF809F","#FFFFFF")},upi:{displayName:"UPI",currencies:["inr"],countries:["IN"],theme:c("U","#FF7909","#FFFFFF")},us_bank_account:{displayName:"US Bank Account",currencies:["usd"],countries:["US"]},wechat_pay:{displayName:"WeChat Pay",currencies:["usd","cny"],theme:c("W","#07C160","#FFFFFF")},zip:{displayName:"Zip",currencies:["aud"],countries:["AU","NZ"]}};function ht(e){return H.includes(e)}var de=Object.entries(y).filter(([,e])=>e.express).map(([e])=>e),bt=new Set(de),ce=Object.fromEntries(Object.entries(y).map(([e,t])=>[e,t.currencies])),le=Object.fromEntries(Object.entries(y).filter(([,e])=>e.countries).map(([e,t])=>[e,t.countries]));function xt(e){return e?y[e]?.displayName??e.split("_").filter(Boolean).map(t=>t[0].toUpperCase()+t.slice(1)).join(" "):"this method"}function At(e){return y[e]?.needsExplicitConfirm!==!1}function _t(e,t){let r=y[e]?.theme;return r?(typeof t=="string"&&t.endsWith("-dark")?r.dark:r.light)??r.light??null:null}function Ft(e,t){if(!e||e.length===0)return[];if(!t)return[...e];let r=t.trim().toLowerCase();return r?e.filter(n=>{let o=ce[n];return o?o.includes("*")||o.includes(r):!0}):[...e]}function Pt(e,t){if(!e||e.length===0)return[];if(!t)return[...e];let r=t.trim().toUpperCase();return r?e.filter(n=>{let o=le[n];return o?o.includes("*")||o.includes(r):!0}):[...e]}var pe=Object.fromEntries(Object.entries(y).filter(([,e])=>e.amounts).map(([e,t])=>[e,t.amounts]));function It(e,t,r){if(!e||e.length===0)return[];if(!t||typeof r!="number"||!Number.isFinite(r))return[...e];let n=t.trim().toLowerCase();return n?e.filter(o=>{let i=pe[o];if(!i)return!0;let s=i[n];return s?!(typeof s.min=="number"&&r<s.min||typeof s.max=="number"&&r>s.max):!0}):[...e]}function Rt(e,t){if(!e||e.length===0)return{expressMethods:[],paymentElementMethods:[]};let r=[],n=[],o=new Set,i=new Set;for(let s of e){if(typeof s!="string")continue;let p=s.trim();if(!(!p||p==="card")&&!(t?.excludePaypal&&p==="paypal"))if(bt.has(p)){if(o.has(p))continue;o.add(p),r.push(p)}else{if(i.has(p))continue;i.add(p),n.push(p)}}return{expressMethods:r,paymentElementMethods:n}}var Mt=["visa","mastercard","mastercard_debit","amex","discover"],L={AT:{currency:"EUR",symbol:"\u20AC",country:"Austria",countryCode:"AT",tax:1},BE:{currency:"EUR",symbol:"\u20AC",country:"Belgium",countryCode:"BE",tax:1},CY:{currency:"EUR",symbol:"\u20AC",country:"Cyprus",countryCode:"CY",tax:1},DE:{currency:"EUR",symbol:"\u20AC",country:"Germany",countryCode:"DE",tax:1},EE:{currency:"EUR",symbol:"\u20AC",country:"Estonia",countryCode:"EE",tax:1},ES:{currency:"EUR",symbol:"\u20AC",country:"Spain",countryCode:"ES",tax:1},FI:{currency:"EUR",symbol:"\u20AC",country:"Finland",countryCode:"FI",tax:1},FR:{currency:"EUR",symbol:"\u20AC",country:"France",countryCode:"FR",tax:1},GR:{currency:"EUR",symbol:"\u20AC",country:"Greece",countryCode:"GR",tax:1},HR:{currency:"EUR",symbol:"\u20AC",country:"Croatia",countryCode:"HR",tax:1},IE:{currency:"EUR",symbol:"\u20AC",country:"Ireland",countryCode:"IE",tax:1},IT:{currency:"EUR",symbol:"\u20AC",country:"Italy",countryCode:"IT",tax:1},LT:{currency:"EUR",symbol:"\u20AC",country:"Lithuania",countryCode:"LT",tax:1},LU:{currency:"EUR",symbol:"\u20AC",country:"Luxembourg",countryCode:"LU",tax:1},LV:{currency:"EUR",symbol:"\u20AC",country:"Latvia",countryCode:"LV",tax:1},MT:{currency:"EUR",symbol:"\u20AC",country:"Malta",countryCode:"MT",tax:1},NL:{currency:"EUR",symbol:"\u20AC",country:"Netherlands",countryCode:"NL",tax:1},PT:{currency:"EUR",symbol:"\u20AC",country:"Portugal",countryCode:"PT",tax:1},SI:{currency:"EUR",symbol:"\u20AC",country:"Slovenia",countryCode:"SI",tax:1},SK:{currency:"EUR",symbol:"\u20AC",country:"Slovakia",countryCode:"SK",tax:1},BG:{currency:"EUR",symbol:"\u20AC",country:"Bulgaria",countryCode:"BG",tax:1},RO:{currency:"EUR",symbol:"\u20AC",country:"Romania",countryCode:"RO",tax:1},CZ:{currency:"EUR",symbol:"\u20AC",country:"Czech Republic",countryCode:"CZ",tax:1},SE:{currency:"EUR",symbol:"\u20AC",country:"Sweden",countryCode:"SE",tax:1},DK:{currency:"EUR",symbol:"\u20AC",country:"Denmark",countryCode:"DK",tax:1},PL:{currency:"EUR",symbol:"\u20AC",country:"Poland",countryCode:"PL",tax:1},HU:{currency:"EUR",symbol:"\u20AC",country:"Hungary",countryCode:"HU",tax:1},GB:{currency:"GBP",symbol:"\xA3",country:"United Kingdom",countryCode:"GB",tax:1},US:{currency:"USD",symbol:"$",country:"United States",countryCode:"US",tax:0},CA:{currency:"CAD",symbol:"CA$",country:"Canada",countryCode:"CA",tax:0},NZ:{currency:"NZD",symbol:"NZ$",country:"New Zealand",countryCode:"NZ",tax:0},AU:{currency:"AUD",symbol:"AU$",country:"Australia",countryCode:"AU",tax:0}},v={currency:"USD",symbol:"$",country:"United States",countryCode:"US",tax:0};function kt(e){switch(e.toUpperCase()){case"US":return"ZIP Code";case"GB":return"Postcode";case"CA":return"Postal Code";case"AU":case"NZ":return"Postcode";case"IE":return"Eircode";default:return"Postal Code"}}var Nt=new Intl.DisplayNames(["en"],{type:"region"});function Ot(e){return[...e.toUpperCase()].map(t=>String.fromCodePoint(127397+t.charCodeAt(0))).join("")}var me=["US","GB","CA","AU","NZ","IE","DE","FR"],Lt=["AD","AE","AF","AG","AL","AM","AO","AR","AT","AU","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BN","BO","BR","BS","BT","BW","BY","BZ","CA","CD","CF","CG","CH","CI","CL","CM","CN","CO","CR","CU","CV","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","ER","ES","ET","FI","FJ","FM","FR","GA","GB","GD","GE","GH","GM","GN","GQ","GR","GT","GW","GY","HN","HR","HT","HU","ID","IE","IL","IN","IQ","IR","IS","IT","JM","JO","JP","KE","KG","KH","KI","KM","KN","KR","KW","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MG","MH","MK","ML","MM","MN","MR","MT","MU","MV","MW","MX","MY","MZ","NA","NE","NG","NI","NL","NO","NP","NR","NZ","OM","PA","PE","PG","PH","PK","PL","PT","PW","PY","QA","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SI","SK","SL","SM","SN","SO","SR","SS","ST","SV","SY","SZ","TD","TG","TH","TJ","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","US","UY","UZ","VA","VC","VE","VN","VU","WS","XK","YE","ZA","ZM","ZW"];function j(e){return{code:e,name:Nt.of(e)??e,flag:Ot(e)}}var vt=new Set(me),Dt=Lt.filter(e=>!vt.has(e)),ye=[...me.map(j),...Dt.map(j)];function Bt(e){return ye.find(t=>t.code===e)}var Ut={country:!0,postal_code:!0};function ge(e){return e===!0?Ut:e||null}function wt(e,t){if(!e)return!1;if(e===!0)return!0;let r=t.trim().toUpperCase();return e.some(n=>n.trim().toUpperCase()===r)}function Vt(e){let t=ge(e);return t?Object.values(t).some(r=>r===!0||Array.isArray(r)&&r.length>0):!1}var Ee=[{code:"AL",name:"Alabama"},{code:"AK",name:"Alaska"},{code:"AZ",name:"Arizona"},{code:"AR",name:"Arkansas"},{code:"CA",name:"California"},{code:"CO",name:"Colorado"},{code:"CT",name:"Connecticut"},{code:"DE",name:"Delaware"},{code:"DC",name:"District of Columbia"},{code:"FL",name:"Florida"},{code:"GA",name:"Georgia"},{code:"HI",name:"Hawaii"},{code:"ID",name:"Idaho"},{code:"IL",name:"Illinois"},{code:"IN",name:"Indiana"},{code:"IA",name:"Iowa"},{code:"KS",name:"Kansas"},{code:"KY",name:"Kentucky"},{code:"LA",name:"Louisiana"},{code:"ME",name:"Maine"},{code:"MD",name:"Maryland"},{code:"MA",name:"Massachusetts"},{code:"MI",name:"Michigan"},{code:"MN",name:"Minnesota"},{code:"MS",name:"Mississippi"},{code:"MO",name:"Missouri"},{code:"MT",name:"Montana"},{code:"NE",name:"Nebraska"},{code:"NV",name:"Nevada"},{code:"NH",name:"New Hampshire"},{code:"NJ",name:"New Jersey"},{code:"NM",name:"New Mexico"},{code:"NY",name:"New York"},{code:"NC",name:"North Carolina"},{code:"ND",name:"North Dakota"},{code:"OH",name:"Ohio"},{code:"OK",name:"Oklahoma"},{code:"OR",name:"Oregon"},{code:"PA",name:"Pennsylvania"},{code:"RI",name:"Rhode Island"},{code:"SC",name:"South Carolina"},{code:"SD",name:"South Dakota"},{code:"TN",name:"Tennessee"},{code:"TX",name:"Texas"},{code:"UT",name:"Utah"},{code:"VT",name:"Vermont"},{code:"VA",name:"Virginia"},{code:"WA",name:"Washington"},{code:"WV",name:"West Virginia"},{code:"WI",name:"Wisconsin"},{code:"WY",name:"Wyoming"}],fe=[{code:"AB",name:"Alberta"},{code:"BC",name:"British Columbia"},{code:"MB",name:"Manitoba"},{code:"NB",name:"New Brunswick"},{code:"NL",name:"Newfoundland and Labrador"},{code:"NS",name:"Nova Scotia"},{code:"NT",name:"Northwest Territories"},{code:"NU",name:"Nunavut"},{code:"ON",name:"Ontario"},{code:"PE",name:"Prince Edward Island"},{code:"QC",name:"Quebec"},{code:"SK",name:"Saskatchewan"},{code:"YT",name:"Yukon"}];function Gt(e){switch(e.toUpperCase()){case"US":return Ee;case"CA":return fe;default:return null}}function Yt(e){switch(e.toUpperCase()){case"US":return"State";case"CA":return"Province";case"GB":return"County";case"AU":return"State / Territory";default:return"State / Province / Region"}}function Kt(e,t={}){let r=[],n=e.products??[],o=n.filter(u=>u.type==="subscription"),i=n.filter(u=>u.type!=="subscription"),p=(_(e.currency,void 0,void 0,n)??"USD").toUpperCase();for(let u of o){let m=u.totalAmount??0,f=u.overrideAmount??m,x=u.name||u.code||"Subscription";x==="4-WEEK PLAN"&&f<=1&&(x="7-DAY TRIAL: FULL ACCESS"),r.push({name:x,quantity:u.quantity,price:f,originalPrice:m})}if(!(t.hideBundledItems===!0&&o.length>0&&i.length>0))for(let u of i){let m=u.totalAmount??0,f=u.overrideAmount??m;r.push({name:u.name||u.code||"Item",quantity:u.quantity,price:f,originalPrice:m})}r.length===0&&r.push({name:"Purchase",quantity:1,price:e.amount/100,originalPrice:e.amount/100});let Oe=r.reduce((u,m)=>u+m.originalPrice*m.quantity,0),Le=r.reduce((u,m)=>u+m.price*m.quantity,0),ve=typeof e.totalAmount=="number"&&Number.isFinite(e.totalAmount),De=typeof e.subtotalAmount=="number"&&Number.isFinite(e.subtotalAmount),Be=typeof e.discountAmount=="number"&&Number.isFinite(e.discountAmount),Y=ve?e.totalAmount:Le,E=De?e.subtotalAmount:Oe,K=Math.max(0,E-Y),Ue=E>0?Math.round(K/E*100):0;return{items:r,currency:p,total:Y,originalTotal:E,totalSave:K,discountPercent:Ue,...Be?{couponDiscount:e.discountAmount}:{}}}var zt=/^[a-z\d!#$%&'*+\-/=?^_`{|}~\u00A1-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+$/i,Ht=/^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*$/i,qt=/^([a-z\u00A1-\u00A8\u00AA-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i,Wt=/^[a-z\u00a1-\uffff0-9-]+$/i;function Ce(e){return encodeURI(e).split(/%..|./).length-1}function jt(e){let t=e.split("."),r=t[t.length-1]??"";return t.length>=2&&qt.test(r)&&!/\s/.test(r)&&t.every(n=>n.length<=63&&Wt.test(n)&&!/[\uff01-\uff5e]/.test(n)&&!/^-|-$/.test(n)&&!/_/.test(n))}function Zt(e){if(typeof e!="string"||e.length===0||e.length>254)return!1;let t=e.split("@"),r=t.pop()??"",n=t.join("@");return Ce(n)>64||Ce(r)>254||!jt(r)?!1:n.startsWith('"')&&n.endsWith('"')?Ht.test(n.slice(1,-1)):n.split(".").every(o=>zt.test(o))}var $t=new Set(["revolut_pay","sepa_debit","us_bank_account"]);function Xt(e){return e==="on_session"||e==="off_session"}function Jt(e,t,r){let n=typeof t=="string"?[t]:t,o=e?.futureUse;if(Xt(o)){let i=e?.futureUseUnsupported??[];return n.some(p=>i.some(G=>G.paymentMethodType===p))?void 0:o}switch(r){case"wallet":case"paypal":return"off_session";case"inline_apm":return n.length>0&&n.every(i=>$t.has(i))?"off_session":void 0;default:return}}var Qt="Idempotency-Key",D=255,er="IdempotencyKeyInProgress";function tr(){let e=globalThis.crypto;if(e&&(typeof e.randomUUID=="function"||typeof e.getRandomValues=="function"))return e}function Te(){let e=tr();if(!e)return;if(typeof e.randomUUID=="function")return e.randomUUID();if(typeof e.getRandomValues!="function")return;let t=new Uint8Array(16);return e.getRandomValues(t),Array.from(t,r=>r.toString(16).padStart(2,"0")).join("")}function rr(e){if(e===void 0)return Te();if(typeof e!="string"||e.trim()==="")throw new d("idempotencyKey must be a non-empty string identifying exactly one checkout creation.","validation_error",{code:"InvalidIdempotencyKey",param:"idempotencyKey"});if(e.length>D)throw new d(`idempotencyKey must be at most ${D} characters.`,"validation_error",{code:"InvalidIdempotencyKey",param:"idempotencyKey"});return e}var nr=1,or=[{name:"checkout_mount"},{name:"sdk_loaded"},{name:"form_rendered"},{name:"card_expanded"},{name:"tokenize"},{name:"process_attempt"},{name:"3ds_challenge"},{name:"checkout_error",phase:"session_create"},{name:"checkout_error",phase:"sdk_load"},{name:"checkout_error",phase:"process"},{name:"checkout_error",phase:"wallets"}];var ar=[[5,5,"NY"],[10,27,"MA"],[28,29,"RI"],[30,38,"NH"],[39,49,"ME"],[50,59,"VT"],[60,69,"CT"],[70,89,"NJ"],[100,149,"NY"],[150,196,"PA"],[197,199,"DE"],[200,205,"DC"],[206,219,"MD"],[220,246,"VA"],[247,268,"WV"],[270,289,"NC"],[290,299,"SC"],[300,319,"GA"],[320,349,"FL"],[350,369,"AL"],[370,385,"TN"],[386,397,"MS"],[398,399,"GA"],[400,427,"KY"],[430,459,"OH"],[460,479,"IN"],[480,499,"MI"],[500,528,"IA"],[530,549,"WI"],[550,567,"MN"],[570,577,"SD"],[580,588,"ND"],[590,599,"MT"],[600,629,"IL"],[630,658,"MO"],[660,679,"KS"],[680,693,"NE"],[700,714,"LA"],[716,729,"AR"],[730,749,"OK"],[750,799,"TX"],[800,816,"CO"],[820,831,"WY"],[832,838,"ID"],[840,847,"UT"],[850,865,"AZ"],[870,884,"NM"],[889,898,"NV"],[900,961,"CA"],[967,968,"HI"],[970,979,"OR"],[980,994,"WA"],[995,999,"AK"]],ir={A:"NL",B:"NS",C:"PE",E:"NB",G:"QC",H:"QC",J:"QC",K:"ON",L:"ON",M:"ON",N:"ON",P:"ON",R:"MB",S:"SK",T:"AB",V:"BC",X:"NT",Y:"YT"};function sr(e){let t=e.replace(/\D/g,"");if(t.length<5)return null;let r=Number.parseInt(t.slice(0,3),10);if(!Number.isFinite(r))return null;for(let[n,o,i]of ar)if(r>=n&&r<=o)return i;return null}function ur(e){let t=e.replace(/\s+/g,"").toUpperCase();if(!/^[A-Z]\d[A-Z]\d[A-Z]\d$/.test(t))return null;let r=t[0]??"";return ir[r]??null}function dr(e,t){if(!e||!t)return null;let r=e.trim().toUpperCase(),n=t.trim();if(!n)return null;switch(r){case"US":return sr(n);case"CA":return ur(n);default:return null}}import*as cr from"validator/lib/isPostalCode.js";var T=cr,Se=typeof T.default=="function"?T.default:T.default?.default;if(typeof Se!="function")throw new Error("validator/lib/isPostalCode.js interop failed: unexpected module shape. This likely means the bundler's CJS/ESM interop changed.");var he=new Set(T.locales.map(e=>e.toUpperCase())),lr={AUSTRALIA:"AU",BRAZIL:"BR",CANADA:"CA",CH:"CH",DENMARK:"DK",DE:"DE",DEUTSCHLAND:"DE",FRANCE:"FR",GB:"GB",GERMANY:"DE",GREATBRITAIN:"GB",GREAT_BRITAIN:"GB",INDIA:"IN",IRELAND:"IE",ITALY:"IT",JAPAN:"JP",MEXICO:"MX",NETHERLANDS:"NL",NEWZEALAND:"NZ",NORWAY:"NO",POLAND:"PL",PORTUGAL:"PT",SINGAPORE:"SG",SOUTHAFRICA:"ZA",SPAIN:"ES",SWEDEN:"SE",SWITZERLAND:"CH",UK:"GB",UNITEDKINGDOM:"GB",UNITEDSTATES:"US",US:"US",USA:"US","UNITED STATES":"US","UNITED KINGDOM":"GB","GREAT BRITAIN":"GB",ENGLAND:"GB"};function B(e){let t=(e??"").trim().toUpperCase();return t?t.length===2?t:lr[t]??null:null}var pr={AU:"2000",BR:"01000-000",CA:"A1A 1A1",CH:"8001",DE:"10115",DK:"1050",ES:"28001",FR:"75008",GB:"SW1A 1AA",IE:"D02 X285",IN:"110001",IT:"00118",JP:"100-0001",MX:"06500",NL:"1012 JS",NO:"0150",NZ:"6011",PL:"00-001",PT:"1100-148",SE:"111 22",SG:"018989",US:"12345 or 12345-6789",ZA:"8001"};function mr(e){let t=B(e);return t!==null&&he.has(t)}function yr(e,t){let r=(t??"").trim();if(!r)return!0;let n=B(e);if(n===null||!he.has(n))return!0;try{return Se(r,n)}catch{return!0}}function gr(e){let t=B(e);return t?pr[t]:void 0}var Er=["card","wallet","paypal","apm"],fr=["card","wallet","paypal","apm"],Cr=["card","paypal","apple_pay","google_pay","sepa_debit","us_bank_account"];function Tr(e){return A(e)}var Sr=/(?:^|\/)dahlia\/stripe\.js(?:$|[?#])/i,hr=/^dahlia\/stripe$/i,br=/^(?:chrome|moz|safari-web)-extension:\/\//i,xr=/^@flopay(?:\/|$)/i;function be(e){return Sr.test(e)||br.test(e)}function Ar(e){let t=[e.filename,e.abs_path].filter(r=>r!==void 0&&r!=="<anonymous>");return e.module!==void 0&&xr.test(e.module)||t.some(r=>!be(r))?"first-party":e.module!==void 0&&hr.test(e.module)||t.some(be)?"third-party-hosted":t.length===0?"injected":"first-party"}function _r(e){let t=e.exception?.values;if(!t||t.length===0)return e;let r=[];for(let o of t){let i=o.stacktrace?.frames;if(!i||i.length===0)return e;r.push(...i)}let n=r.map(Ar);return!n.includes("first-party")&&n.includes("third-party-hosted")?null:e}var Fr=1,xe=["@flopay/shared","@flopay/js","@flopay/react"],Pr=32768,Ir=20,Rr=["stripe","paypal"],Mr=["card","wallet","paypal","apm","saved","unknown"],kr=["apple_pay","google_pay"],Nr=["watchdog_expired","resolved","rejected","returned_error","resolved_late","rejected_late","returned_error_late"],Or=["none","facebook","instagram","tiktok","generic_webview","other_in_app"],Lr=["unknown","available","blocked"],vr=["popup","app_switch","redirect"],Dr=["approved","cancelled","provider_declined","popup_blocked","provider_error","overlay_timeout"],Br=["callback","sdk_initialize","checkout_mount","session_create","session_shell","session_claim","session_read","session_first_byte","session_complete","checkout_data_ready","checkout_render","provider_load","provider_ready","provider_confirmation","overlay_open","overlay_return","redirect","redirect_resume","vault_request","vault_mount","vault_ready","vault_submit","tokenization","three_ds_handoff","three_ds_return","processing","recovery","completion","unmount","total_journey"],Ae=["CALLBACK_FAILED","CHECKOUT_SESSION_CREATE_FAILED","CONFIGURATION_INVALID","INTERNAL_SDK_ERROR","NETWORK_REQUEST_FAILED","PAYMENT_PROCESSING_FAILED","POPUP_BLOCKED","PROVIDER_LOAD_FAILED","PROVIDER_RUNTIME_FAILED","RECOVERY_FAILED","REDIRECT_RESUME_FAILED","REQUEST_TIMEOUT","SDK_INITIALIZATION_FAILED","THREE_DS_FAILED","TOKENIZATION_FAILED","VAULT_LOAD_FAILED","VAULT_SUBMIT_FAILED"],_e=["server_error","transport_error","invalid_response","provider_runtime"],Ur=["authorization_declined","authentication_required","authorization_expired","capture_failed","unknown"],Fe=["sdk.initialize.started","sdk.initialize.ready","sdk.cache.hit","sdk.cache.miss","checkout.mount","session.create.started","session.shell.ready","session.claim.started","session.claim.completed","session.read.started","session.request.first_byte","session.request.completed","checkout.data.ready","checkout.rendered","checkout.recovery.started","checkout.recovery.completed","checkout.unmount","provider.load.started","provider.eligibility.checked","provider.availability.checked","provider.ready","provider.handoff.requested","provider.popup.opened","provider.overlay.opened","provider.overlay.returned","provider.redirect.started","provider.redirect.resumed","vault.capture.requested","vault.widget.mounted","vault.widget.ready","vault.submission.started","vault.action.required","vault.three_ds.handoff","vault.three_ds.returned","vault.terminal","payment.method.selected","payment.intent.started","payment.intent.completed","payment.provider_confirmation.started","payment.provider_confirmation.returned","payment.tokenization.started","payment.tokenization.completed","payment.processing.started","payment.processing.completed","payment.three_ds.handoff","payment.three_ds.returned","operation.retry","operation.deduplicated","operation.fallback","operation.cache.hit","operation.cache.miss","operation.recovery.started","operation.recovery.completed","operation.state_transition"],wr=["session_create","session_claim","session_read","intent_create","process_payment","vault_capture","account_snapshot","provider_sdk","other"],Vr=["2xx","3xx","4xx","5xx","network_error","timeout","unknown"],Gr=["full","auto","confirm","setup","unknown"],Yr=["embedded","buttons","automatic","unknown"],Kr=["machine","buyer","total"],zr=["action_required","card_setup_declined","card_setup_succeeded","customer_abandoned","payment_cancelled","payment_declined","payment_authorized","payment_succeeded","validation_rejected"],U=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,Hr=/^\d{1,4}\.\d{1,4}\.\d{1,4}(?:-[0-9A-Za-z.-]{1,32})?$/,qr=new Set(Ae),Wr=new Set(_e),jr=new Set(Ur),S=new Set(Br),Zr=new Set(Rr),$r=new Set(Mr),Xr=new Set(kr),Jr=new Set(Nr),Qr=new Set(Or),en=new Set(Lr),tn=new Set(vr),rn=new Set(Dr),nn=new Set(Fe),on=new Set(Gr),an=new Set(Yr),sn=new Set(wr),un=new Set(Vr),dn=new Set(Kr),cn=new Set(zr),ln=new Set(xe),Pe=12e4;function l(e,t,r){return typeof e=="string"&&t.has(e)?e:r}function pn(){try{let r=globalThis.crypto.randomUUID();if(U.test(r))return r}catch{}let e=new Uint8Array(16);try{globalThis.crypto.getRandomValues(e)}catch{for(let r=0;r<e.length;r+=1)e[r]=Math.floor(Math.random()*256)}e[6]=(e[6]??0)&15|64,e[8]=(e[8]??0)&63|128;let t=[...e].map(r=>r.toString(16).padStart(2,"0")).join("");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}function g(e){return typeof e=="string"&&U.test(e)?e:pn()}function mn(e){return typeof e=="string"&&U.test(e)?e:void 0}function yn(e){return typeof e=="number"&&Number.isInteger(e)&&e>=0&&e<=100?e:void 0}function h(e){return Number.isSafeInteger(e)&&e>=0?Math.min(e,1e6):0}function Ie(e){return!Number.isFinite(e)||e<0?0:Math.min(Math.round(e),Pe)}function gn(e){return Number.isFinite(e)&&e>Pe}function b(e,t){let r=yn(t.attempt);return t.provider&&Zr.has(t.provider)&&(e.provider=t.provider),r!==void 0&&(e.attempt=r),t.statusClass&&(e.statusClass=l(t.statusClass,un,"unknown")),t.requestCategory&&(e.requestCategory=l(t.requestCategory,sn,"other")),t.paymentMethodCategory&&(e.paymentMethodCategory=l(t.paymentMethodCategory,$r,"unknown")),t.walletType&&Xr.has(t.walletType)&&(e.walletType=t.walletType),t.operationOutcome&&Jr.has(t.operationOutcome)&&(e.operationOutcome=t.operationOutcome),t.checkoutMode&&(e.checkoutMode=l(t.checkoutMode,on,"unknown")),t.layout&&(e.layout=l(t.layout,an,"unknown")),typeof t.inAppBrowser=="boolean"&&(e.inAppBrowser=t.inAppBrowser),t.appFamily&&Qr.has(t.appFamily)&&(e.appFamily=t.appFamily),t.popupCapability&&en.has(t.popupCapability)&&(e.popupCapability=t.popupCapability),t.presentationMode&&tn.has(t.presentationMode)&&(e.presentationMode=t.presentationMode),t.terminalReason&&rn.has(t.terminalReason)&&(e.terminalReason=t.terminalReason),e}function Re(e){let t=b({eventId:g(e.eventId),class:"technical_error",code:l(e.errorCode,qr,"INTERNAL_SDK_ERROR"),stage:l(e.stage,S,"sdk_initialize"),sequence:h(e.sequence)},e);if(e.failureCategory&&Wr.has(e.failureCategory)&&(t.failureCategory=e.failureCategory),e.reason!==void 0&&(t.reason=l(e.reason,jr,"unknown")),e.stage!=="provider_confirmation"){let r=mn(e.checkoutSessionId);r&&(t.checkoutSessionId=r)}return e.durationMs!==void 0&&(t.durationMs=Ie(e.durationMs)),t}function Me(e){return b({eventId:g(e.eventId),class:"lifecycle",name:l(e.name,nn,"operation.retry"),stage:l(e.stage,S,"sdk_initialize"),sequence:h(e.sequence)},e)}function ke(e){let t={...e,stage:e.stage??"completion"};return b({eventId:g(e.eventId),class:"expected_outcome",outcome:l(e.outcome,cn,"customer_abandoned"),stage:l(e.stage,S,"completion"),sequence:h(e.sequence)},t)}function Ne(e){let t=b({eventId:g(e.eventId),class:"performance",stage:l(e.stage,S,"sdk_initialize"),sequence:h(e.sequence),durationMs:Ie(e.durationMs),durationMode:l(e.durationMode,dn,"machine")},e);return(e.durationTruncated===!0||gn(e.durationMs))&&(t.durationTruncated=!0),t}function En(e,t){let r=e.slice(0,20).flatMap(o=>o.class==="technical_error"?[Re({...o,errorCode:o.code})]:o.class==="lifecycle"?[Me(o)]:o.class==="expected_outcome"?[ke(o)]:o.class==="performance"?[Ne(o)]:[]),n={schemaVersion:1,batchId:g(t.batchId),correlationId:g(t.correlationId),sdk:{package:l(t.sdkPackage,ln,"@flopay/shared"),version:Hr.test(t.sdkVersion)?t.sdkVersion:"0.0.0"},events:r};return JSON.stringify(n)}var fn=new Set(["InvalidCheckoutSessionResponse","InvalidPaymentProcessResponse","InvalidSessionIntentResponse"]);function Cn(e,t){if(e===422)return"validation_rejected";if(e===400&&!(t===null||typeof t!="object"||Array.isArray(t)))return Array.isArray(t.fields)?"validation_rejected":"payment_declined"}function Tn(e,t,r="network_error"){if(e instanceof SyntaxError)return{errorCode:t,statusClass:"unknown",failureCategory:"invalid_response"};if(e instanceof d&&e.code!==void 0&&fn.has(e.code))return{errorCode:t,statusClass:w(e.statusCode,"unknown"),failureCategory:"invalid_response"};if(e instanceof Error&&(e.name==="AbortError"||e instanceof d&&e.code==="checkout_processing_timeout"))return{errorCode:"REQUEST_TIMEOUT",statusClass:"timeout",failureCategory:"transport_error"};if(e instanceof TypeError||e instanceof d&&e.type==="network_error")return{errorCode:"NETWORK_REQUEST_FAILED",statusClass:"network_error",failureCategory:"transport_error"};let n=w(e instanceof d?e.statusCode:void 0,r);return{errorCode:t,statusClass:n,...n==="5xx"?{failureCategory:"server_error"}:{}}}function w(e,t="network_error"){if(e===void 0)return t;let r=`${Math.floor(e/100)}xx`;return r==="2xx"||r==="3xx"||r==="4xx"||r==="5xx"?r:"unknown"}function Sn(e){if(e!=null)switch(e){case"sandbox":case"stage":return"sandbox";case"live":case"production":return"live";default:console.warn(`[FloPay] Unrecognized gateway environment "${e}". Expected one of: sandbox, live, stage, production. Falling back to undefined.`);return}}var V=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function hn(e){return typeof e=="string"&&V.test(e)}function bn(){try{let r=globalThis.crypto.randomUUID();if(V.test(r))return r}catch{}let e=new Uint8Array(16);try{globalThis.crypto.getRandomValues(e)}catch{for(let r=0;r<e.length;r+=1)e[r]=Math.floor(Math.random()*256)}e[6]=(e[6]??0)&15|64,e[8]=(e[8]??0)&63|128;let t=[...e].map(r=>r.toString(16).padStart(2,"0")).join("");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}function xn(e){return L[e.toUpperCase()]??v}function An(e){return/^pk_(test|live)_[A-Za-z0-9]+$/.test(e)}function _n(e){return/^sk_(test|live)_[A-Za-z0-9]+$/.test(e)}function Fn(e){return typeof e=="string"&&e.startsWith("seti_")}function Pn(...e){return/^\s*card\s+holder\s+name\s*$/i.test(e.join(" "))}export{ot as ASYNC_AUTO_CHECKOUT_CAPABILITY,lt as BILLING_API_URL,Z as BILLING_API_URL_PRODUCTION,C as BILLING_API_URL_STAGING,ee as BOLD_DARK_APPEARANCE,Q as BOLD_LIGHT_APPEARANCE,k as BUTTONS_LAYOUT_BOLD_DARK,M as BUTTONS_LAYOUT_BOLD_LIGHT,ie as BUTTONS_LAYOUT_DARK,ne as BUTTONS_LAYOUT_DEFAULT,O as BUTTONS_LAYOUT_GLASS_DARK,N as BUTTONS_LAYOUT_GLASS_LIGHT,oe as BUTTONS_LAYOUT_MINIMAL,R as BUTTONS_LAYOUT_MODERN_DARK,I as BUTTONS_LAYOUT_MODERN_LIGHT,ae as BUTTONS_LAYOUT_ROUNDED,fe as CA_PROVINCES,dt as CHECKOUT_PROCESSING_TIMEOUT_MESSAGE,ye as COUNTRY_OPTIONS,L as CURRENCY_MAP,ct as DEFAULT_API_BASE_URL,mt as DEFAULT_API_VERSION,$ as DEFAULT_APPEARANCE,v as DEFAULT_CURRENCY,yt as FLAT_APPEARANCE,or as FLO_INSTRUMENT_CATALOG,nr as FLO_INSTRUMENT_SCHEMA_VERSION,nt as FLO_SDK_CAPABILITIES_HEADER,rt as FLO_SDK_VERSION_HEADER,d as FloPayError,re as GLASS_DARK_APPEARANCE,te as GLASS_LIGHT_APPEARANCE,er as IDEMPOTENCY_IN_PROGRESS_CODE,Qt as IDEMPOTENCY_KEY_HEADER,D as MAX_IDEMPOTENCY_KEY_LENGTH,J as MODERN_DARK_APPEARANCE,X as MODERN_LIGHT_APPEARANCE,gt as NIGHT_APPEARANCE,it as PAYPAL_VAULTED_PAYMENT_METHOD_TYPE,Er as SAVED_PAYMENT_METHOD_FAMILIES,Cr as SAVED_PAYMENT_METHOD_LIST_TYPES,fr as SAVED_PAYMENT_METHOD_TYPES,tt as SDK_VERSION,st as STORED_PAYMENT_METHOD_UNSUPPORTED_CODE,ut as STORED_PAYMENT_METHOD_UNSUPPORTED_MESSAGE,de as STRIPE_EXPRESS_METHODS,pe as STRIPE_METHOD_AMOUNT_LIMITS,le as STRIPE_METHOD_COUNTRIES,ce as STRIPE_METHOD_CURRENCIES,y as STRIPE_METHOD_MATRIX,Mt as SUPPORTED_CARD_BRANDS,Ae as TELEMETRY_ERROR_CODES,_e as TELEMETRY_FAILURE_CATEGORIES,Fe as TELEMETRY_LOG_NAMES,Pr as TELEMETRY_MAX_BATCH_BYTES,Ir as TELEMETRY_MAX_BATCH_EVENTS,Fr as TELEMETRY_SCHEMA_VERSION,xe as TELEMETRY_SDK_PACKAGES,se as THEMES,at as THREE_DS_CHALLENGE_WINDOW_MS,Ee as US_STATES,V as UUID_V4,Ke as apiError,We as assertCaptureMethodEligible,ze as authenticationError,Kt as buildCheckoutDisplayData,$e as buildItemPayload,Ze as buildProductPayload,Xe as buildSubscriptionPayload,Re as buildTelemetryErrorEvent,Me as buildTelemetryLogEvent,Ne as buildTelemetryPerformanceEvent,ke as buildTelemetryTerminalEvent,Cn as classifyPaymentRejection,Tn as classifyTelemetryFailure,Qe as configureFlopay,_r as dropThirdPartyOnlyError,It as filterStripeMethodsByAmount,Pt as filterStripeMethodsByCountry,Ft as filterStripeMethodsByCurrency,z as foldIntoProducts,Te as generateIdempotencyKey,P as getConfiguredBillingApiUrl,Bt as getCountryByCode,xn as getCurrencyByCountry,et as getFloPayEnvironment,gr as getPostalCodeExample,kt as getPostalCodeLabel,dr as getStateFromPostalCode,Yt as getStateLabel,Gt as getStateOptions,xt as getStripeMethodDisplayName,ht as hasVendoredStripeMethodLogo,Vt as isAVSEnabled,wt as isAVSFieldVisible,we as isAuthorizationOnlySession,Pn as isCardHolderNamePlaceholder,A as isCardSetupCheckoutSession,je as isDetachedSessionEligible,Ve as isMoneySettledOutcome,mr as isPostalCodeSupported,Tr as isSetupCheckoutSession,Fn as isSetupIntentClientSecret,hn as isUuidV4,Zt as isValidEmail,yr as isValidPostalCode,An as isValidPublishableKey,_n as isValidSecretKey,At as needsStripeMethodExplicitConfirm,qe as networkError,Ge as normalizeCheckoutFailureOutcome,Sn as normalizeGatewayEnvironment,Rt as partitionStripeMethods,bn as randomUuidV4,He as rateLimitError,ge as resolveAVSConfig,pt as resolveBillingApiUrl,Et as resolveButtonsLayoutTheme,rr as resolveIdempotencyKey,_ as resolveSessionCurrency,Jt as resolveSetupFutureUsage,_t as resolveStripeMethodBrandVariant,ft as resolveTheme,En as serializeTelemetryBatch,Ct as stripeExpressMethodToOptionKey,w as telemetryStatusClass,Ye as validationError};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flopay/shared",
3
- "version": "1.10.6",
3
+ "version": "1.11.0",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "publishConfig": {