@flopay/shared 1.4.24 → 1.6.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 +6 -5
- package/dist/index.cjs +1 -1
- package/dist/index.d.cts +94 -16
- package/dist/index.d.ts +94 -16
- package/dist/index.mjs +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -93,15 +93,16 @@ throw validationError('Email is required', 'email');
|
|
|
93
93
|
| `CheckoutSessionProduct` | Unified product from session response: `uuid`, `checkoutSessionId`, `type` (`'item'`/`'subscription'`), `code?`, `name?`, `description?`, `quantity`, `totalAmount?`, `overrideAmount?`, `currency?`, `metadata?` |
|
|
94
94
|
| `CheckoutProductType` | `'item'` / `'subscription'` |
|
|
95
95
|
| `CheckoutProduct` | Unified product input for session creation: `type`, `code?`, `name?`, `quantity?`, `totalAmount?`, `overrideAmount?`, `currency?`, `metadata?` |
|
|
96
|
-
| `CheckoutGateway` | Per-gateway config
|
|
96
|
+
| `CheckoutGateway` | Per-gateway config from the billing API. `publishableKey?` identifies the keyed gateway, including the direct-PayPal client ID at `gateways.paypal.publishableKey`. `paypalPublishableKey?` is distinct and Stripe-only: it is the dedicated Stripe sub-account key used to render PayPal through Stripe Elements. Also includes `environment?` (`'sandbox'`/`'live'`), `stripeClientSecret?` (Stripe-only), `providerObjectType?` (direct PayPal: `'order'`/`'subscription'`/`'setup_token'`), and `enabledPaymentMethods?` (Stripe-only). |
|
|
97
97
|
| `CheckoutGateways` | Map keyed by gateway code (e.g. `stripe`, `paypal`). A session can advertise multiple concurrent gateways. |
|
|
98
98
|
| `GatewayEnvironment` | `'sandbox'` / `'live'` — drives the PayPal JS SDK script and any other environment-scoped behavior |
|
|
99
99
|
| `PaymentResult` | Payment outcome: `status` (`'authorized'`/`'succeeded'`/`'processing'`/`'requires_action'`/`'failed'`); authorized results carry `paymentId?`, `sessionId?`, and `authorizationExpiresAt?` |
|
|
100
100
|
| `CheckoutFailureOutcome` | Stable authorization lifecycle failure: `'authorization_declined'` / `'authentication_required'` / `'authorization_expired'` / `'capture_failed'` |
|
|
101
101
|
| `ConfirmPaymentParams` | Non-card confirmation: `clientSecret`, `paymentMethodCategory` (`'wallet'`/`'apm'`), `paymentMethodType`, `returnUrl?`, `billingDetails?`; `card` is rejected at runtime. |
|
|
102
102
|
| `PayPalPaymentResult` | Stripe-hosted PayPal outcome: `status`, `paymentIntentId?`, `paymentMethodId?`, `error?` |
|
|
103
|
-
| `CreateSessionIntentRequest` | Discriminated Stripe wallet/APM or direct-PayPal intent request. `intentKind
|
|
104
|
-
| `SessionIntent` | Matching discriminated response. Stripe carries `clientSecret`; PayPal carries a server-derived `providerObjectType` (`'order'`/`'subscription'`). Provider, payment-method category/type/id, intent kind, and provider object ID are kept as separate fields. |
|
|
103
|
+
| `CreateSessionIntentRequest` | Discriminated Stripe wallet/APM or direct-PayPal intent request. PayPal sends `intentKind: 'payment'` for Orders/subscriptions and `'setup'` for a standalone setup token. Direct card is not representable. |
|
|
104
|
+
| `SessionIntent` | Matching discriminated response. Stripe carries `clientSecret`; PayPal carries a server-derived `providerObjectType` (`'order'`/`'subscription'`/`'setup_token'`). Provider, payment-method category/type/id, intent kind, and provider object ID are kept as separate fields. |
|
|
105
|
+
| `PayPalProviderObjectType` | `'order'` / `'subscription'` / `'setup_token'` — the direct-PayPal continuation selected by the backend and verified by the SDK. |
|
|
105
106
|
| `SessionIntentDeclineRequest` | Non-card provider decline classification. Runtime reporting accepts safe classification codes only and rejects messages or identifier-shaped values. |
|
|
106
107
|
| `ElementType` | `'payment'` / `'address'` |
|
|
107
108
|
| `ElementOptions` | Options for creating non-card elements: `appearance?`, `paymentMethodTypes?`, `clientSecret?`, `amount?`, `currency?`, `paymentMethodCreation?`, `layout?`, `defaultValues?`, `readOnly?`, `mode?`. A `payment` element requires a non-empty wallet/APM allowlist. |
|
|
@@ -113,8 +114,7 @@ throw validationError('Email is required', 'email');
|
|
|
113
114
|
| `PriceData` | `currency`, `unitAmount`, `productData`, `recurring?` |
|
|
114
115
|
| `RecurringInterval` | `interval` (`'month'`/`'year'`), `intervalCount?` |
|
|
115
116
|
| `BillingProvider` | `'recurly'` / `'chargebee'` / `'stripe'` |
|
|
116
|
-
| `TokenizedBody` | `id?`, `type?`, `threeDSecureActionResultTokenId?`, `originalPaymentMethodId?`, `gateway?` (`'stripe'` / `'paypal'` / custom), `paymentMethodType?` (Stripe wire identifier — `'card'`, `'apple_pay'`, `'cashapp'`, `'klarna'`, … for `gateway='stripe'`; `'paypal'` for `gateway='paypal'`), `isPaypal?` *(deprecated — replaced by `gateway` + `paymentMethodType`;
|
|
117
|
-
| `CheckoutGateway` | Per-gateway config from the billing API: `publishableKey?`, `environment?`, `stripeClientSecret?`, `paypalPublishableKey?`, `enabledPaymentMethods?` (Stripe-only — drives dynamic non-card surfaces; `card` advertises the hosted-vault path and lazy `/vault/capture` recovery in SDK 1.4.9+) |
|
|
117
|
+
| `TokenizedBody` | `id?`, `type?`, `threeDSecureActionResultTokenId?`, `originalPaymentMethodId?`, `gateway?` (`'stripe'` / `'paypal'` / custom), `paymentMethodType?` (Stripe wire identifier — `'card'`, `'apple_pay'`, `'cashapp'`, `'klarna'`, … for `gateway='stripe'`; `'paypal'` for `gateway='paypal'`), `isPaypal?` *(deprecated — replaced by `gateway` + `paymentMethodType`; while populated for PayPal compatibility, the SDK emits the boolean `true`, never the string `"true"`)* |
|
|
118
118
|
| `NormalizedCheckoutSession` | Provider-agnostic session: `provider`, `mode`, `data`, `raw?` |
|
|
119
119
|
| `CheckoutModeKind` | `'tokenize'` / `'redirect'` |
|
|
120
120
|
| `CreateSessionParams` | Full session creation params: `billingApiUrl`, `checkoutBaseUrl`, `clientId`, `currency` (required — SDK throws `FloPayError({ type: 'validation_error', code: 'CurrencyRequired' })` before issuing the request when none can be resolved), `captureMethod?` (`'automatic'`/`'manual'`; omitted preserves immediate capture), `products?` (unified shape; takes precedence), `items?`, `subscriptions?` (legacy — folded into `products[]` before send), `account`, `successUrl`, `cancelUrl`, `checkoutMode?`, `couponCodes?`, `tagsData?`, `redirectParams?`, `setCookie?`, `timeoutMs?`, `utmMetadata?` |
|
|
@@ -224,6 +224,7 @@ messages, or bundle Sentry configuration.
|
|
|
224
224
|
| `resolveTheme(id)` | Resolve a `ThemeId` (`'classic'` ∪ `ThemeBundleId`) to its `ThemeBundle`; `'classic'` and missing ids return `undefined` |
|
|
225
225
|
| `resolveButtonsLayoutTheme(name)` | Map a `ButtonsLayoutTheme` name to its `ButtonsLayoutStyles` preset |
|
|
226
226
|
| `ELEMENT_TYPES` | `['payment', 'address']` |
|
|
227
|
+
| `PAYPAL_VAULTED_PAYMENT_METHOD_TYPE` | `paypal_vaulted` — in-band payment-method channel that opts a session intent/process request into Flo-owned PayPal Order and setup-token continuations; legacy `paypal` keeps provider-managed semantics. |
|
|
227
228
|
| `SUPPORTED_CARD_BRANDS` | `['visa', 'mastercard', 'mastercard_debit', 'amex', 'discover']` |
|
|
228
229
|
| `STRIPE_EXPRESS_METHODS` | `['apple_pay', 'google_pay', 'paypal', 'link', 'amazon_pay', 'klarna']` — Stripe method type identifiers supported by `ExpressCheckoutElement` (everything else returned in `gateways.stripe.enabledPaymentMethods` falls into the `PaymentElement` accordion in the React SDK) |
|
|
229
230
|
| `partitionStripeMethods(enabledMethods, { excludePaypal? })` | Split the backend's enabled list into `{ expressMethods, paymentElementMethods }`. Drops `card`; also drops `paypal` when `excludePaypal: true`. |
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var Wt=Object.create;var f=Object.defineProperty;var jt=Object.getOwnPropertyDescriptor;var Zt=Object.getOwnPropertyNames;var Xt=Object.getPrototypeOf,$t=Object.prototype.hasOwnProperty;var Jt=(e,t)=>{for(var r in t)f(e,r,{get:t[r],enumerable:!0})},fe=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Zt(t))!$t.call(e,n)&&n!==r&&f(e,n,{get:()=>t[n],enumerable:!(o=jt(t,n))||o.enumerable});return e};var Qt=(e,t,r)=>(r=e!=null?Wt(Xt(e)):{},fe(t||!e||!e.__esModule?f(r,"default",{value:e,enumerable:!0}):r,e)),er=e=>fe(f({},"__esModule",{value:!0}),e);var Xr={};Jt(Xr,{BILLING_API_URL:()=>He,BILLING_API_URL_PRODUCTION:()=>W,BILLING_API_URL_STAGING:()=>C,BOLD_DARK_APPEARANCE:()=>J,BOLD_LIGHT_APPEARANCE:()=>$,BUTTONS_LAYOUT_BOLD_DARK:()=>R,BUTTONS_LAYOUT_BOLD_LIGHT:()=>_,BUTTONS_LAYOUT_DARK:()=>ne,BUTTONS_LAYOUT_DEFAULT:()=>te,BUTTONS_LAYOUT_GLASS_DARK:()=>k,BUTTONS_LAYOUT_GLASS_LIGHT:()=>P,BUTTONS_LAYOUT_MINIMAL:()=>re,BUTTONS_LAYOUT_MODERN_DARK:()=>I,BUTTONS_LAYOUT_MODERN_LIGHT:()=>A,BUTTONS_LAYOUT_ROUNDED:()=>oe,CA_PROVINCES:()=>me,COUNTRY_OPTIONS:()=>ce,CURRENCY_MAP:()=>B,DEFAULT_API_BASE_URL:()=>ze,DEFAULT_API_VERSION:()=>We,DEFAULT_APPEARANCE:()=>j,DEFAULT_CURRENCY:()=>v,ELEMENT_TYPES:()=>dt,FLAT_APPEARANCE:()=>je,FLO_SDK_VERSION_HEADER:()=>Ye,FloPayError:()=>u,GLASS_DARK_APPEARANCE:()=>ee,GLASS_LIGHT_APPEARANCE:()=>Q,IDEMPOTENCY_IN_PROGRESS_CODE:()=>Ot,IDEMPOTENCY_KEY_HEADER:()=>Lt,MAX_IDEMPOTENCY_KEY_LENGTH:()=>D,MODERN_DARK_APPEARANCE:()=>X,MODERN_LIGHT_APPEARANCE:()=>Z,NIGHT_APPEARANCE:()=>Ze,SDK_VERSION:()=>Ve,STRIPE_EXPRESS_METHODS:()=>ie,STRIPE_METHOD_AMOUNT_LIMITS:()=>ue,STRIPE_METHOD_COUNTRIES:()=>de,STRIPE_METHOD_CURRENCIES:()=>se,STRIPE_METHOD_MATRIX:()=>g,SUPPORTED_CARD_BRANDS:()=>ut,TELEMETRY_ERROR_CODES:()=>w,TELEMETRY_FAILURE_CATEGORIES:()=>G,TELEMETRY_LOG_NAMES:()=>K,TELEMETRY_MAX_BATCH_BYTES:()=>ke,TELEMETRY_MAX_BATCH_EVENTS:()=>Be,TELEMETRY_SCHEMA_VERSION:()=>Pe,TELEMETRY_SDK_PACKAGES:()=>U,THEMES:()=>ae,US_STATES:()=>pe,UUID_V4:()=>L,apiError:()=>Se,assertCaptureMethodEligible:()=>St,authenticationError:()=>Te,buildCheckoutDisplayData:()=>Rt,buildItemPayload:()=>It,buildProductPayload:()=>At,buildSubscriptionPayload:()=>_t,buildTelemetryErrorEvent:()=>V,buildTelemetryLogEvent:()=>Y,buildTelemetryPerformanceEvent:()=>H,buildTelemetryTerminalEvent:()=>z,classifyPaymentRejection:()=>De,classifyTelemetryFailure:()=>Le,configureFlopay:()=>Oe,dropThirdPartyOnlyError:()=>Re,filterStripeMethodsByAmount:()=>it,filterStripeMethodsByCountry:()=>at,filterStripeMethodsByCurrency:()=>nt,foldIntoProducts:()=>ye,generateIdempotencyKey:()=>Ce,getConfiguredBillingApiUrl:()=>T,getCountryByCode:()=>pt,getCurrencyByCountry:()=>vt,getFloPayEnvironment:()=>Ue,getPostalCodeExample:()=>ht,getPostalCodeLabel:()=>ct,getStateFromPostalCode:()=>Et,getStateLabel:()=>Ct,getStateOptions:()=>yt,getStripeMethodDisplayName:()=>tt,hasVendoredStripeMethodLogo:()=>et,isAVSEnabled:()=>gt,isAVSFieldVisible:()=>mt,isAuthorizationOnlySession:()=>Pt,isCardSetupCheckoutSession:()=>xe,isDetachedSessionEligible:()=>Tt,isMoneySettledOutcome:()=>kt,isPostalCodeSupported:()=>bt,isSetupIntentClientSecret:()=>Dt,isUuidV4:()=>wt,isValidPostalCode:()=>xt,isValidPublishableKey:()=>Mt,isValidSecretKey:()=>Nt,needsStripeMethodExplicitConfirm:()=>rt,networkError:()=>Ie,normalizeCheckoutFailureOutcome:()=>Bt,normalizeGatewayEnvironment:()=>be,partitionStripeMethods:()=>st,randomUuidV4:()=>Gt,rateLimitError:()=>Ae,resolveAVSConfig:()=>le,resolveBillingApiUrl:()=>qe,resolveButtonsLayoutTheme:()=>Xe,resolveIdempotencyKey:()=>Ut,resolveSessionCurrency:()=>N,resolveStripeMethodBrandVariant:()=>ot,resolveTheme:()=>$e,serializeTelemetryBatch:()=>Ne,stripeExpressMethodToOptionKey:()=>Je,telemetryStatusClass:()=>S,validationError:()=>he});module.exports=er(Xr);function be(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}}function xe(e){return e.checkoutMode==="setup"&&e.amount===0&&(e.products?.length??0)===0}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,Object.setPrototypeOf(this,new.target.prototype)}};function he(e,t){return new u(e,"validation_error",{param:t})}function Se(e,t,r){return new u(e,"api_error",{code:t,statusCode:r})}function Te(e){return new u(e,"authentication_error")}function Ae(e){return new u(e,"rate_limit_error")}function Ie(e){return new u(e,"network_error")}var tr=/(?:^|\/)dahlia\/stripe\.js(?:$|[?#])/i,rr=/^dahlia\/stripe$/i,or=/^(?:chrome|moz|safari-web)-extension:\/\//i,nr=/^@flopay(?:\/|$)/i;function _e(e){return tr.test(e)||or.test(e)}function ar(e){let t=[e.filename,e.abs_path].filter(r=>r!==void 0&&r!=="<anonymous>");return e.module!==void 0&&nr.test(e.module)||t.some(r=>!_e(r))?"first-party":e.module!==void 0&&rr.test(e.module)||t.some(_e)?"third-party-hosted":t.length===0?"injected":"first-party"}function Re(e){let t=e.exception?.values;if(!t?.length)return e;let r=[];for(let n of t){let s=n.stacktrace?.frames;if(!s?.length)return e;r.push(...s)}let o=r.map(ar);return!o.includes("first-party")&&o.includes("third-party-hosted")?null:e}var Pe=1,U=["@flopay/shared","@flopay/js","@flopay/react"],ke=32768,Be=20,ir=["stripe","paypal"],sr=["card","wallet","paypal","apm","saved","unknown"],dr=["callback","sdk_initialize","checkout_mount","session_create","session_shell","session_claim","session_read","session_first_byte","session_complete","checkout_data_ready","checkout_render","checkout_interactive","provider_load","provider_ready","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"],w=["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"],G=["server_error","transport_error","invalid_response","provider_runtime"],K=["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.interactive","checkout.recovery.started","checkout.recovery.completed","checkout.unmount","provider.load.started","provider.eligibility.checked","provider.availability.checked","provider.ready","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.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"],ur=["session_create","session_claim","session_read","intent_create","process_payment","vault_capture","account_snapshot","provider_sdk","other"],cr=["2xx","3xx","4xx","5xx","network_error","timeout","unknown"],lr=["full","auto","confirm","setup","unknown"],pr=["embedded","buttons","automatic","unknown"],mr=["machine","buyer","total"],gr=["action_required","card_setup_declined","card_setup_succeeded","customer_abandoned","payment_cancelled","payment_declined","payment_authorized","payment_succeeded","validation_rejected"],ve=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,yr=/^\d{1,4}\.\d{1,4}\.\d{1,4}(?:-[0-9A-Za-z.-]{1,32})?$/,Cr=new Set(w),Er=new Set(G),b=new Set(dr),Fr=new Set(ir),fr=new Set(sr),br=new Set(K),xr=new Set(lr),hr=new Set(pr),Sr=new Set(ur),Tr=new Set(cr),Ar=new Set(mr),Ir=new Set(gr),_r=new Set(U),Me=12e4;function l(e,t,r){return typeof e=="string"&&t.has(e)?e:r}function Rr(){try{let r=globalThis.crypto.randomUUID();if(ve.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]&15|64,e[8]=e[8]&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 y(e){return typeof e=="string"&&ve.test(e)?e:Rr()}function Pr(e){return typeof e=="number"&&Number.isInteger(e)&&e>=0&&e<=100?e:void 0}function x(e){return Number.isSafeInteger(e)&&e>=0?Math.min(e,1e6):0}function kr(e){return!Number.isFinite(e)||e<0?0:Math.min(Math.round(e),Me)}function Br(e){return Number.isFinite(e)&&e>Me}function h(e,t){let r=Pr(t.attempt);return t.provider&&Fr.has(t.provider)&&(e.provider=t.provider),r!==void 0&&(e.attempt=r),t.statusClass&&(e.statusClass=l(t.statusClass,Tr,"unknown")),t.requestCategory&&(e.requestCategory=l(t.requestCategory,Sr,"other")),t.paymentMethodCategory&&(e.paymentMethodCategory=l(t.paymentMethodCategory,fr,"unknown")),t.checkoutMode&&(e.checkoutMode=l(t.checkoutMode,xr,"unknown")),t.layout&&(e.layout=l(t.layout,hr,"unknown")),e}function V(e){let t=h({eventId:y(e.eventId),class:"technical_error",code:l(e.errorCode,Cr,"INTERNAL_SDK_ERROR"),stage:l(e.stage,b,"sdk_initialize"),sequence:x(e.sequence)},e);return e.failureCategory&&Er.has(e.failureCategory)&&(t.failureCategory=e.failureCategory),t}function Y(e){return h({eventId:y(e.eventId),class:"lifecycle",name:l(e.name,br,"operation.retry"),stage:l(e.stage,b,"sdk_initialize"),sequence:x(e.sequence)},e)}function z(e){let t={...e,stage:e.stage??"completion"};return h({eventId:y(e.eventId),class:"expected_outcome",outcome:l(e.outcome,Ir,"customer_abandoned"),stage:l(e.stage,b,"completion"),sequence:x(e.sequence)},t)}function H(e){let t=h({eventId:y(e.eventId),class:"performance",stage:l(e.stage,b,"sdk_initialize"),sequence:x(e.sequence),durationMs:kr(e.durationMs),durationMode:l(e.durationMode,Ar,"machine")},e);return(e.durationTruncated===!0||Br(e.durationMs))&&(t.durationTruncated=!0),t}function Ne(e,t){let r=e.slice(0,20).flatMap(n=>n.class==="technical_error"?[V({...n,errorCode:n.code})]:n.class==="lifecycle"?[Y(n)]:n.class==="expected_outcome"?[z(n)]:n.class==="performance"?[H(n)]:[]),o={schemaVersion:1,batchId:y(t.batchId),correlationId:y(t.correlationId),sdk:{package:l(t.sdkPackage,_r,"@flopay/shared"),version:yr.test(t.sdkVersion)?t.sdkVersion:"0.0.0"},events:r};return JSON.stringify(o)}var vr=new Set(["InvalidCheckoutSessionResponse","InvalidPaymentProcessResponse","InvalidSessionIntentResponse"]);function De(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 Le(e,t,r="network_error"){if(e instanceof u&&e.code!==void 0&&vr.has(e.code))return{errorCode:t,statusClass:S(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=S(e instanceof u?e.statusCode:void 0,r);return{errorCode:t,statusClass:o,...o==="5xx"?{failureCategory:"server_error"}:{}}}function S(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"}var Mr={local:"https://flo.ngrok.pro",staging:"https://api.stage.flopay.com",production:"https://api.flopay.com"},q="staging";function Oe(e){q=e.environment}function T(){return Mr[q]}function Ue(){return q}var we=["alipay","bancontact","blik","eps","giropay","ideal","klarna","p24","sepa_debit","wechat_pay"];var Ve="1.4.21",Ye="x-flo-sdk-version",C="https://api.stage.flopay.com",W="https://api.flopay.com",ze=C,He=C;function qe(e){return e||(typeof process<"u"&&process.env?.NEXT_PUBLIC_FLOPAY_ENV?process.env.NEXT_PUBLIC_FLOPAY_ENV==="production"?W:C:T())}var We="2024-01-01",j={theme:"default",variables:{colorPrimary:"#4A49FF",colorBackground:"#FFFFFF",colorText:"#262833",colorDanger:"#DF1B41",borderRadius:"8px",fontFamily:"Poppins, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"4px"}},je={theme:"flat",variables:{...j.variables,borderRadius:"4px"}},Ze={theme:"night",variables:{colorPrimary:"#7B7BFF",colorBackground:"#1A1A2E",colorText:"#E0E0E0",colorDanger:"#FF6B6B",borderRadius:"8px",fontFamily:"Poppins, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"4px"}},Z={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"}}},$={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"}}},J={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"}}},Q={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)"}}},ee={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)"}}},te={},re={cardButton:{border:"none",backgroundColor:"#f9fafb",boxShadow:"none"},cardFormContainer:{backgroundColor:"#f9fafb",border:"none"},cardInputBorder:"#e5e7eb",backButtonIcon:{backgroundColor:"#e5e7eb"},submitButton:{borderRadius:"6px"}},oe={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"}},ne={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"}},A={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"}},I={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"}},R={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)"}},k={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 Xe(e){switch(e){case"minimal":return re;case"rounded":return oe;case"dark":return ne;case"modern-light":return A;case"modern-dark":return I;case"bold-light":return _;case"bold-dark":return R;case"glass-light":return P;case"glass-dark":return k;default:return te}}var ae={"modern-light":{appearance:Z,buttonsLayout:A},"modern-dark":{appearance:X,buttonsLayout:I},"bold-light":{appearance:$,buttonsLayout:_},"bold-dark":{appearance:J,buttonsLayout:R},"glass-light":{appearance:Q,buttonsLayout:P},"glass-dark":{appearance:ee,buttonsLayout:k}};function $e(e){if(!(!e||e==="classic"))return ae[e]}function Je(e){switch(e){case"apple_pay":return"applePay";case"google_pay":return"googlePay";case"amazon_pay":return"amazonPay";default:return e}}function i(e,t,r){return`<svg viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><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="-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif" fill="${r}">${e}</text></svg>`}function Ge(e,t){return`<svg viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><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>`}var Qe=["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"],Nr=[...Qe,"JP","MX","US"],g={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:{light:{backgroundColor:"#FFB3C7",textColor:"#0A0B09",borderColor:"#FFB3C7",logoSvg:i("K","#0A0B09","#FFB3C7")},dark:{backgroundColor:"#FFB3C7",textColor:"#0A0B09",borderColor:"#FFB3C7",logoSvg:i("K","#0A0B09","#FFB3C7")}}},affirm:{displayName:"Affirm",currencies:["usd"],countries:["US","CA"],amounts:{usd:{min:3500,max:3e6}},needsExplicitConfirm:!1,theme:{light:{backgroundColor:"#060F33",textColor:"#FFFFFF",borderColor:"#060F33",logoSvg:i("a","#FFFFFF","#060F33")},dark:{backgroundColor:"#0FA0EA",textColor:"#060F33",borderColor:"#0FA0EA",logoSvg:i("a","#060F33","#FFFFFF")}}},cashapp:{displayName:"Cash App Pay",currencies:["usd"],countries:["US"],amounts:{usd:{min:50,max:99999999}},needsExplicitConfirm:!1,theme:{light:{backgroundColor:"#00D54B",textColor:"#0A1F0E",borderColor:"#00D54B",logoSvg:i("$","#0A1F0E","#00D54B")},dark:{backgroundColor:"#00D54B",textColor:"#0A1F0E",borderColor:"#00D54B",logoSvg:i("$","#0A1F0E","#00D54B")}}},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:{light:{backgroundColor:"#B2FCE4",textColor:"#0A0B09",borderColor:"#B2FCE4",logoSvg:i("A","#0A0B09","#B2FCE4")},dark:{backgroundColor:"#B2FCE4",textColor:"#0A0B09",borderColor:"#B2FCE4",logoSvg:i("A","#0A0B09","#B2FCE4")}}},alipay:{displayName:"Alipay",currencies:["usd","cny"],theme:{light:{backgroundColor:"#1677FF",textColor:"#FFFFFF",borderColor:"#1677FF",logoSvg:i("A","#FFFFFF","#1677FF")},dark:{backgroundColor:"#1677FF",textColor:"#FFFFFF",borderColor:"#1677FF",logoSvg:i("A","#FFFFFF","#1677FF")}}},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:{light:{backgroundColor:"#FFDD55",textColor:"#1E3791",borderColor:"#FFDD55",logoSvg:i("B","#1E3791","#FFDD55")},dark:{backgroundColor:"#1E3791",textColor:"#FFDD55",borderColor:"#1E3791",logoSvg:i("B","#FFDD55","#1E3791")}}},bizum:{displayName:"Bizum",currencies:["eur"],countries:["ES"],theme:{light:{backgroundColor:"#00BFB3",textColor:"#FFFFFF",borderColor:"#00BFB3",logoSvg:i("B","#FFFFFF","#00BFB3")},dark:{backgroundColor:"#00BFB3",textColor:"#FFFFFF",borderColor:"#00BFB3",logoSvg:i("B","#FFFFFF","#00BFB3")}}},blik:{displayName:"BLIK",currencies:["pln"],countries:["PL"],theme:{light:{backgroundColor:"#000000",textColor:"#FFFFFF",borderColor:"#000000",logoSvg:i("B","#FFFFFF","#000000")},dark:{backgroundColor:"#FFFFFF",textColor:"#000000",borderColor:"#FFFFFF",logoSvg:i("B","#000000","#FFFFFF")}}},boleto:{displayName:"Boleto",currencies:["brl"],countries:["BR"]},customer_balance:{displayName:"Bank Transfer",currencies:["eur","usd"],countries:Nr,theme:{light:{backgroundColor:"#1F2937",textColor:"#FFFFFF",borderColor:"#1F2937",logoSvg:Ge("#1F2937","#FFFFFF")},dark:{backgroundColor:"#374151",textColor:"#FFFFFF",borderColor:"#374151",logoSvg:Ge("#374151","#FFFFFF")}}},eps:{displayName:"EPS",currencies:["eur"],countries:["AT"],theme:{light:{backgroundColor:"#C8102E",textColor:"#FFFFFF",borderColor:"#C8102E",logoSvg:i("E","#FFFFFF","#C8102E")},dark:{backgroundColor:"#C8102E",textColor:"#FFFFFF",borderColor:"#C8102E",logoSvg:i("E","#FFFFFF","#C8102E")}}},giropay:{displayName:"Giropay",currencies:["eur"],countries:["DE"],theme:{light:{backgroundColor:"#0F4197",textColor:"#FFFFFF",borderColor:"#0F4197",logoSvg:i("G","#FFFFFF","#0F4197")},dark:{backgroundColor:"#0F4197",textColor:"#FFFFFF",borderColor:"#0F4197",logoSvg:i("G","#FFFFFF","#0F4197")}}},ideal:{displayName:"iDEAL",currencies:["eur"],countries:["NL"],theme:{light:{backgroundColor:"#CC0066",textColor:"#FFFFFF",borderColor:"#CC0066",logoSvg:i("i","#FFFFFF","#CC0066")},dark:{backgroundColor:"#CC0066",textColor:"#FFFFFF",borderColor:"#CC0066",logoSvg:i("i","#FFFFFF","#CC0066")}}},konbini:{displayName:"Konbini",currencies:["jpy"],countries:["JP"]},kr_card:{displayName:"Korean Card",currencies:["krw"],countries:["KR"],theme:{light:{backgroundColor:"#0B3D91",textColor:"#FFFFFF",borderColor:"#0B3D91",logoSvg:i("K","#FFFFFF","#0B3D91")},dark:{backgroundColor:"#0B3D91",textColor:"#FFFFFF",borderColor:"#0B3D91",logoSvg:i("K","#FFFFFF","#0B3D91")}}},multibanco:{displayName:"Multibanco",currencies:["eur"],countries:["PT"]},oxxo:{displayName:"OXXO",currencies:["mxn"],countries:["MX"]},p24:{displayName:"Przelewy24",currencies:["eur","pln"],countries:["PL"],theme:{light:{backgroundColor:"#D90F1B",textColor:"#FFFFFF",borderColor:"#D90F1B",logoSvg:i("P","#FFFFFF","#D90F1B")},dark:{backgroundColor:"#D90F1B",textColor:"#FFFFFF",borderColor:"#D90F1B",logoSvg:i("P","#FFFFFF","#D90F1B")}}},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:Qe,theme:{light:{backgroundColor:"#10298E",textColor:"#FFFFFF",borderColor:"#10298E",logoSvg:i("\u20AC","#FFFFFF","#10298E")},dark:{backgroundColor:"#3056D3",textColor:"#FFFFFF",borderColor:"#3056D3",logoSvg:i("\u20AC","#FFFFFF","#3056D3")}}},sofort:{displayName:"Sofort",currencies:["eur"],countries:["AT","BE","DE","ES","IT","NL"],theme:{light:{backgroundColor:"#EF809F",textColor:"#FFFFFF",borderColor:"#EF809F",logoSvg:i("S","#FFFFFF","#EF809F")},dark:{backgroundColor:"#EF809F",textColor:"#FFFFFF",borderColor:"#EF809F",logoSvg:i("S","#FFFFFF","#EF809F")}}},upi:{displayName:"UPI",currencies:["inr"],countries:["IN"],theme:{light:{backgroundColor:"#FF7909",textColor:"#FFFFFF",borderColor:"#FF7909",logoSvg:i("U","#FFFFFF","#FF7909")},dark:{backgroundColor:"#FF7909",textColor:"#FFFFFF",borderColor:"#FF7909",logoSvg:i("U","#FFFFFF","#FF7909")}}},us_bank_account:{displayName:"US Bank Account",currencies:["usd"],countries:["US"]},wechat_pay:{displayName:"WeChat Pay",currencies:["usd","cny"],theme:{light:{backgroundColor:"#07C160",textColor:"#FFFFFF",borderColor:"#07C160",logoSvg:i("W","#FFFFFF","#07C160")},dark:{backgroundColor:"#07C160",textColor:"#FFFFFF",borderColor:"#07C160",logoSvg:i("W","#FFFFFF","#07C160")}}},zip:{displayName:"Zip",currencies:["aud"],countries:["AU","NZ"]}};function et(e){return e?we.includes(e):!1}var ie=Object.entries(g).filter(([,e])=>e.express).map(([e])=>e),Dr=new Set(ie),se=Object.fromEntries(Object.entries(g).map(([e,t])=>[e,t.currencies])),de=Object.fromEntries(Object.entries(g).filter(([,e])=>e.countries).map(([e,t])=>[e,t.countries]));function tt(e){if(!e)return"this method";let t=g[e];return t?t.displayName:e.split("_").filter(Boolean).map(r=>r.charAt(0).toUpperCase()+r.slice(1)).join(" ")}function rt(e){if(!e)return!0;let t=g[e];return t?t.needsExplicitConfirm!==!1:!0}function ot(e,t){if(!e)return null;let r=g[e];return r?.theme?(typeof t=="string"&&t.endsWith("-dark")?r.theme.dark:r.theme.light)??r.theme.light??null:null}function nt(e,t){if(!e?.length)return[];if(!t)return[...e];let r=t.trim().toLowerCase();return r?e.filter(o=>{let n=se[o];return n?n.includes("*")||n.includes(r):!0}):[...e]}function at(e,t){if(!e?.length)return[];if(!t)return[...e];let r=t.trim().toUpperCase();return r?e.filter(o=>{let n=de[o];return n?n.includes("*")||n.includes(r):!0}):[...e]}var ue=Object.fromEntries(Object.entries(g).filter(([,e])=>e.amounts).map(([e,t])=>[e,t.amounts]));function it(e,t,r){if(!e?.length)return[];if(!t||typeof r!="number"||!Number.isFinite(r))return[...e];let o=t.trim().toLowerCase();return o?e.filter(n=>{let s=ue[n];if(!s)return!0;let c=s[o];return c?!(typeof c.min=="number"&&r<c.min||typeof c.max=="number"&&r>c.max):!0}):[...e]}function st(e,t){if(!e?.length)return{expressMethods:[],paymentElementMethods:[]};let r=[],o=[],n=new Set,s=new Set;for(let c of e){if(typeof c!="string")continue;let p=c.trim();if(!(!p||p==="card")&&!(t?.excludePaypal&&p==="paypal"))if(Dr.has(p)){if(n.has(p))continue;n.add(p),r.push(p)}else{if(s.has(p))continue;s.add(p),o.push(p)}}return{expressMethods:r,paymentElementMethods:o}}var dt=["payment","address"],ut=["visa","mastercard","mastercard_debit","amex","discover"],B={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 ct(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 Lr=new Intl.DisplayNames(["en"],{type:"region"});function Or(e){return[...e.toUpperCase()].map(t=>String.fromCodePoint(127397+t.charCodeAt(0))).join("")}var lt=["US","GB","CA","AU","NZ","IE","DE","FR"],Ur=["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 Ke(e){return{code:e,name:Lr.of(e)??e,flag:Or(e)}}var wr=new Set(lt),Gr=Ur.filter(e=>!wr.has(e)),ce=[...lt.map(Ke),...Gr.map(Ke)];function pt(e){return ce.find(t=>t.code===e)}var Kr={country:!0,postal_code:!0};function le(e){return e?e===!0?Kr:e:null}function mt(e,t){if(e===void 0||e===!1)return!1;if(e===!0)return!0;let r=t.trim().toUpperCase();return e.some(o=>o.trim().toUpperCase()===r)}function gt(e){let t=le(e);return t?Object.values(t).some(r=>r===!0||Array.isArray(r)&&r.length>0):!1}var pe=[{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"}],me=[{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 yt(e){switch(e.toUpperCase()){case"US":return pe;case"CA":return me;default:return null}}function Ct(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"}}var Vr=[[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"]],Yr={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 zr(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,s]of Vr)if(r>=o&&r<=n)return s;return null}function Hr(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 Yr[r]??null}function Et(e,t){if(!e||!t)return null;let r=e.trim().toUpperCase(),o=t.trim();if(!o)return null;switch(r){case"US":return zr(o);case"CA":return Hr(o);default:return null}}var qr=Qt(require("validator/lib/isPostalCode.js"),1),M=qr,Ft=typeof M.default=="function"?M.default:M.default?.default;if(typeof Ft!="function")throw new Error("validator/lib/isPostalCode.js interop failed: unexpected module shape. This likely means the bundler's CJS/ESM interop changed.");var ft=new Set(M.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 ge(e){let t=(e??"").trim().toUpperCase();return t?t.length===2?t:Wr[t]??null:null}var jr={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 bt(e){let t=ge(e);return t!==null&&ft.has(t)}function xt(e,t){let r=(t??"").trim();if(!r)return!0;let o=ge(e);if(o===null||!ft.has(o))return!0;try{return Ft(r,o)}catch{return!0}}function ht(e){let t=ge(e);return t?jr[t]:void 0}function St(e){if(!(e.captureMethod!=="manual"||!(e.products??ye(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 Tt(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 N(e,t,r,o){let n=a(e);if(n)return n;for(let s of t??[]){let c=a(s.currency);if(c)return c}for(let s of r??[]){let c=a(s.currency);if(c)return c}for(let s of o??[]){let c=a(s.currency);if(c)return c}return null}function ye(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 At(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 It(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 _t(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}function Rt(e,t={}){let r=[],o=e.products??[],n=o.filter(d=>d.type==="subscription"),s=o.filter(d=>d.type!=="subscription"),p=(N(e.currency,void 0,void 0,o)??"USD").toUpperCase();for(let d of n){let m=d.totalAmount??0,F=d.overrideAmount??m,O=d.name||d.code||"Subscription";O==="4-WEEK PLAN"&&F<=1&&(O="7-DAY TRIAL: FULL ACCESS"),r.push({name:O,quantity:d.quantity,price:F,originalPrice:m})}if(!(t.hideBundledItems===!0&&n.length>0&&s.length>0))for(let d of s){let m=d.totalAmount??0,F=d.overrideAmount??m;r.push({name:d.name||d.code||"Item",quantity:d.quantity,price:F,originalPrice:m})}r.length===0&&r.push({name:"Purchase",quantity:1,price:e.amount/100,originalPrice:e.amount/100});let Kt=r.reduce((d,m)=>d+m.originalPrice*m.quantity,0),Vt=r.reduce((d,m)=>d+m.price*m.quantity,0),Yt=typeof e.totalAmount=="number"&&Number.isFinite(e.totalAmount),zt=typeof e.subtotalAmount=="number"&&Number.isFinite(e.subtotalAmount),Ht=typeof e.discountAmount=="number"&&Number.isFinite(e.discountAmount),Ee=Yt?e.totalAmount:Vt,E=zt?e.subtotalAmount:Kt,Fe=Math.max(0,E-Ee),qt=E>0?Math.round(Fe/E*100):0;return{items:r,currency:p,total:Ee,originalTotal:E,totalSave:Fe,discountPercent:qt,...Ht?{couponDiscount:e.discountAmount}:{}}}function Pt(e){return e?.captureMethod==="manual"}function kt(e,t){return e==="requires_capture"?t!=="manual":e==="succeeded"||e==="complete"||e==="completed"||e==="captured"||e==="paid"}function Bt(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"}function vt(e){return B[e.toUpperCase()]??v}function Mt(e){return/^pk_(test|live)_[A-Za-z0-9]+$/.test(e)}function Nt(e){return/^sk_(test|live)_[A-Za-z0-9]+$/.test(e)}function Dt(e){return typeof e=="string"&&e.startsWith("seti_")}var Lt="Idempotency-Key",D=255,Ot="IdempotencyKeyInProgress";function Zr(){let e=globalThis.crypto;if(e&&(typeof e.randomUUID=="function"||typeof e.getRandomValues=="function"))return e}function Ce(){let e=Zr();if(!e)return;if(typeof e.randomUUID=="function")return e.randomUUID();let t=new Uint8Array(16);return e.getRandomValues(t),Array.from(t,r=>r.toString(16).padStart(2,"0")).join("")}function Ut(e){if(e===void 0)return Ce();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>D)throw new u(`idempotencyKey must be at most ${D} characters.`,"validation_error",{code:"InvalidIdempotencyKey",param:"idempotencyKey"});return e}var L=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function wt(e){return typeof e=="string"&&L.test(e)}function Gt(){try{let r=globalThis.crypto.randomUUID();if(L.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]&15|64,e[8]=e[8]&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)}`}0&&(module.exports={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,COUNTRY_OPTIONS,CURRENCY_MAP,DEFAULT_API_BASE_URL,DEFAULT_API_VERSION,DEFAULT_APPEARANCE,DEFAULT_CURRENCY,ELEMENT_TYPES,FLAT_APPEARANCE,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,SDK_VERSION,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,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,isCardSetupCheckoutSession,isDetachedSessionEligible,isMoneySettledOutcome,isPostalCodeSupported,isSetupIntentClientSecret,isUuidV4,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 jt=Object.create;var f=Object.defineProperty;var Zt=Object.getOwnPropertyDescriptor;var Xt=Object.getOwnPropertyNames;var $t=Object.getPrototypeOf,Jt=Object.prototype.hasOwnProperty;var Qt=(e,t)=>{for(var r in t)f(e,r,{get:t[r],enumerable:!0})},fe=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Xt(t))!Jt.call(e,n)&&n!==r&&f(e,n,{get:()=>t[n],enumerable:!(o=Zt(t,n))||o.enumerable});return e};var er=(e,t,r)=>(r=e!=null?jt($t(e)):{},fe(t||!e||!e.__esModule?f(r,"default",{value:e,enumerable:!0}):r,e)),tr=e=>fe(f({},"__esModule",{value:!0}),e);var $r={};Qt($r,{BILLING_API_URL:()=>qe,BILLING_API_URL_PRODUCTION:()=>W,BILLING_API_URL_STAGING:()=>C,BOLD_DARK_APPEARANCE:()=>J,BOLD_LIGHT_APPEARANCE:()=>$,BUTTONS_LAYOUT_BOLD_DARK:()=>_,BUTTONS_LAYOUT_BOLD_LIGHT:()=>P,BUTTONS_LAYOUT_DARK:()=>ne,BUTTONS_LAYOUT_DEFAULT:()=>te,BUTTONS_LAYOUT_GLASS_DARK:()=>k,BUTTONS_LAYOUT_GLASS_LIGHT:()=>R,BUTTONS_LAYOUT_MINIMAL:()=>re,BUTTONS_LAYOUT_MODERN_DARK:()=>I,BUTTONS_LAYOUT_MODERN_LIGHT:()=>A,BUTTONS_LAYOUT_ROUNDED:()=>oe,CA_PROVINCES:()=>me,COUNTRY_OPTIONS:()=>ce,CURRENCY_MAP:()=>v,DEFAULT_API_BASE_URL:()=>He,DEFAULT_API_VERSION:()=>je,DEFAULT_APPEARANCE:()=>j,DEFAULT_CURRENCY:()=>B,ELEMENT_TYPES:()=>ut,FLAT_APPEARANCE:()=>Ze,FLO_SDK_VERSION_HEADER:()=>Ye,FloPayError:()=>u,GLASS_DARK_APPEARANCE:()=>ee,GLASS_LIGHT_APPEARANCE:()=>Q,IDEMPOTENCY_IN_PROGRESS_CODE:()=>Ut,IDEMPOTENCY_KEY_HEADER:()=>Ot,MAX_IDEMPOTENCY_KEY_LENGTH:()=>D,MODERN_DARK_APPEARANCE:()=>X,MODERN_LIGHT_APPEARANCE:()=>Z,NIGHT_APPEARANCE:()=>Xe,PAYPAL_VAULTED_PAYMENT_METHOD_TYPE:()=>ze,SDK_VERSION:()=>Ke,STRIPE_EXPRESS_METHODS:()=>ie,STRIPE_METHOD_AMOUNT_LIMITS:()=>ue,STRIPE_METHOD_COUNTRIES:()=>de,STRIPE_METHOD_CURRENCIES:()=>se,STRIPE_METHOD_MATRIX:()=>y,SUPPORTED_CARD_BRANDS:()=>ct,TELEMETRY_ERROR_CODES:()=>w,TELEMETRY_FAILURE_CATEGORIES:()=>G,TELEMETRY_LOG_NAMES:()=>V,TELEMETRY_MAX_BATCH_BYTES:()=>ke,TELEMETRY_MAX_BATCH_EVENTS:()=>ve,TELEMETRY_SCHEMA_VERSION:()=>Re,TELEMETRY_SDK_PACKAGES:()=>U,THEMES:()=>ae,US_STATES:()=>pe,UUID_V4:()=>L,apiError:()=>Se,assertCaptureMethodEligible:()=>Tt,authenticationError:()=>Te,buildCheckoutDisplayData:()=>Rt,buildItemPayload:()=>Pt,buildProductPayload:()=>It,buildSubscriptionPayload:()=>_t,buildTelemetryErrorEvent:()=>K,buildTelemetryLogEvent:()=>Y,buildTelemetryPerformanceEvent:()=>H,buildTelemetryTerminalEvent:()=>z,classifyPaymentRejection:()=>De,classifyTelemetryFailure:()=>Le,configureFlopay:()=>Oe,dropThirdPartyOnlyError:()=>_e,filterStripeMethodsByAmount:()=>st,filterStripeMethodsByCountry:()=>it,filterStripeMethodsByCurrency:()=>at,foldIntoProducts:()=>ge,generateIdempotencyKey:()=>Ce,getConfiguredBillingApiUrl:()=>T,getCountryByCode:()=>mt,getCurrencyByCountry:()=>Mt,getFloPayEnvironment:()=>Ue,getPostalCodeExample:()=>St,getPostalCodeLabel:()=>lt,getStateFromPostalCode:()=>Ft,getStateLabel:()=>Et,getStateOptions:()=>Ct,getStripeMethodDisplayName:()=>rt,hasVendoredStripeMethodLogo:()=>tt,isAVSEnabled:()=>gt,isAVSFieldVisible:()=>yt,isAuthorizationOnlySession:()=>kt,isCardSetupCheckoutSession:()=>xe,isDetachedSessionEligible:()=>At,isMoneySettledOutcome:()=>vt,isPostalCodeSupported:()=>xt,isSetupIntentClientSecret:()=>Lt,isUuidV4:()=>Gt,isValidPostalCode:()=>ht,isValidPublishableKey:()=>Nt,isValidSecretKey:()=>Dt,needsStripeMethodExplicitConfirm:()=>ot,networkError:()=>Ie,normalizeCheckoutFailureOutcome:()=>Bt,normalizeGatewayEnvironment:()=>be,partitionStripeMethods:()=>dt,randomUuidV4:()=>Vt,rateLimitError:()=>Ae,resolveAVSConfig:()=>le,resolveBillingApiUrl:()=>We,resolveButtonsLayoutTheme:()=>$e,resolveIdempotencyKey:()=>wt,resolveSessionCurrency:()=>N,resolveStripeMethodBrandVariant:()=>nt,resolveTheme:()=>Je,serializeTelemetryBatch:()=>Ne,stripeExpressMethodToOptionKey:()=>Qe,telemetryStatusClass:()=>S,validationError:()=>he});module.exports=tr($r);function be(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}}function xe(e){return e.checkoutMode==="setup"&&e.amount===0&&(e.products?.length??0)===0}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,Object.setPrototypeOf(this,new.target.prototype)}};function he(e,t){return new u(e,"validation_error",{param:t})}function Se(e,t,r){return new u(e,"api_error",{code:t,statusCode:r})}function Te(e){return new u(e,"authentication_error")}function Ae(e){return new u(e,"rate_limit_error")}function Ie(e){return new u(e,"network_error")}var rr=/(?:^|\/)dahlia\/stripe\.js(?:$|[?#])/i,or=/^dahlia\/stripe$/i,nr=/^(?:chrome|moz|safari-web)-extension:\/\//i,ar=/^@flopay(?:\/|$)/i;function Pe(e){return rr.test(e)||nr.test(e)}function ir(e){let t=[e.filename,e.abs_path].filter(r=>r!==void 0&&r!=="<anonymous>");return e.module!==void 0&&ar.test(e.module)||t.some(r=>!Pe(r))?"first-party":e.module!==void 0&&or.test(e.module)||t.some(Pe)?"third-party-hosted":t.length===0?"injected":"first-party"}function _e(e){let t=e.exception?.values;if(!t?.length)return e;let r=[];for(let n of t){let s=n.stacktrace?.frames;if(!s?.length)return e;r.push(...s)}let o=r.map(ir);return!o.includes("first-party")&&o.includes("third-party-hosted")?null:e}var Re=1,U=["@flopay/shared","@flopay/js","@flopay/react"],ke=32768,ve=20,sr=["stripe","paypal"],dr=["card","wallet","paypal","apm","saved","unknown"],ur=["callback","sdk_initialize","checkout_mount","session_create","session_shell","session_claim","session_read","session_first_byte","session_complete","checkout_data_ready","checkout_render","checkout_interactive","provider_load","provider_ready","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"],w=["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"],G=["server_error","transport_error","invalid_response","provider_runtime"],V=["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.interactive","checkout.recovery.started","checkout.recovery.completed","checkout.unmount","provider.load.started","provider.eligibility.checked","provider.availability.checked","provider.ready","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.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"],cr=["session_create","session_claim","session_read","intent_create","process_payment","vault_capture","account_snapshot","provider_sdk","other"],lr=["2xx","3xx","4xx","5xx","network_error","timeout","unknown"],pr=["full","auto","confirm","setup","unknown"],mr=["embedded","buttons","automatic","unknown"],yr=["machine","buyer","total"],gr=["action_required","card_setup_declined","card_setup_succeeded","customer_abandoned","payment_cancelled","payment_declined","payment_authorized","payment_succeeded","validation_rejected"],Be=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,Cr=/^\d{1,4}\.\d{1,4}\.\d{1,4}(?:-[0-9A-Za-z.-]{1,32})?$/,Er=new Set(w),Fr=new Set(G),b=new Set(ur),fr=new Set(sr),br=new Set(dr),xr=new Set(V),hr=new Set(pr),Sr=new Set(mr),Tr=new Set(cr),Ar=new Set(lr),Ir=new Set(yr),Pr=new Set(gr),_r=new Set(U),Me=12e4;function l(e,t,r){return typeof e=="string"&&t.has(e)?e:r}function Rr(){try{let r=globalThis.crypto.randomUUID();if(Be.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]&15|64,e[8]=e[8]&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"&&Be.test(e)?e:Rr()}function kr(e){return typeof e=="number"&&Number.isInteger(e)&&e>=0&&e<=100?e:void 0}function x(e){return Number.isSafeInteger(e)&&e>=0?Math.min(e,1e6):0}function vr(e){return!Number.isFinite(e)||e<0?0:Math.min(Math.round(e),Me)}function Br(e){return Number.isFinite(e)&&e>Me}function h(e,t){let r=kr(t.attempt);return t.provider&&fr.has(t.provider)&&(e.provider=t.provider),r!==void 0&&(e.attempt=r),t.statusClass&&(e.statusClass=l(t.statusClass,Ar,"unknown")),t.requestCategory&&(e.requestCategory=l(t.requestCategory,Tr,"other")),t.paymentMethodCategory&&(e.paymentMethodCategory=l(t.paymentMethodCategory,br,"unknown")),t.checkoutMode&&(e.checkoutMode=l(t.checkoutMode,hr,"unknown")),t.layout&&(e.layout=l(t.layout,Sr,"unknown")),e}function K(e){let t=h({eventId:g(e.eventId),class:"technical_error",code:l(e.errorCode,Er,"INTERNAL_SDK_ERROR"),stage:l(e.stage,b,"sdk_initialize"),sequence:x(e.sequence)},e);return e.failureCategory&&Fr.has(e.failureCategory)&&(t.failureCategory=e.failureCategory),t}function Y(e){return h({eventId:g(e.eventId),class:"lifecycle",name:l(e.name,xr,"operation.retry"),stage:l(e.stage,b,"sdk_initialize"),sequence:x(e.sequence)},e)}function z(e){let t={...e,stage:e.stage??"completion"};return h({eventId:g(e.eventId),class:"expected_outcome",outcome:l(e.outcome,Pr,"customer_abandoned"),stage:l(e.stage,b,"completion"),sequence:x(e.sequence)},t)}function H(e){let t=h({eventId:g(e.eventId),class:"performance",stage:l(e.stage,b,"sdk_initialize"),sequence:x(e.sequence),durationMs:vr(e.durationMs),durationMode:l(e.durationMode,Ir,"machine")},e);return(e.durationTruncated===!0||Br(e.durationMs))&&(t.durationTruncated=!0),t}function Ne(e,t){let r=e.slice(0,20).flatMap(n=>n.class==="technical_error"?[K({...n,errorCode:n.code})]:n.class==="lifecycle"?[Y(n)]:n.class==="expected_outcome"?[z(n)]:n.class==="performance"?[H(n)]:[]),o={schemaVersion:1,batchId:g(t.batchId),correlationId:g(t.correlationId),sdk:{package:l(t.sdkPackage,_r,"@flopay/shared"),version:Cr.test(t.sdkVersion)?t.sdkVersion:"0.0.0"},events:r};return JSON.stringify(o)}var Mr=new Set(["InvalidCheckoutSessionResponse","InvalidPaymentProcessResponse","InvalidSessionIntentResponse"]);function De(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 Le(e,t,r="network_error"){if(e instanceof u&&e.code!==void 0&&Mr.has(e.code))return{errorCode:t,statusClass:S(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=S(e instanceof u?e.statusCode:void 0,r);return{errorCode:t,statusClass:o,...o==="5xx"?{failureCategory:"server_error"}:{}}}function S(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"}var Nr={local:"https://flo.ngrok.pro",staging:"https://api.stage.flopay.com",production:"https://api.flopay.com"},q="staging";function Oe(e){q=e.environment}function T(){return Nr[q]}function Ue(){return q}var we=["alipay","bancontact","blik","eps","giropay","ideal","klarna","p24","sepa_debit","wechat_pay"];var Ke="1.6.0",Ye="x-flo-sdk-version",ze="paypal_vaulted",C="https://api.stage.flopay.com",W="https://api.flopay.com",He=C,qe=C;function We(e){return e||(typeof process<"u"&&process.env?.NEXT_PUBLIC_FLOPAY_ENV?process.env.NEXT_PUBLIC_FLOPAY_ENV==="production"?W:C:T())}var je="2024-01-01",j={theme:"default",variables:{colorPrimary:"#4A49FF",colorBackground:"#FFFFFF",colorText:"#262833",colorDanger:"#DF1B41",borderRadius:"8px",fontFamily:"Poppins, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"4px"}},Ze={theme:"flat",variables:{...j.variables,borderRadius:"4px"}},Xe={theme:"night",variables:{colorPrimary:"#7B7BFF",colorBackground:"#1A1A2E",colorText:"#E0E0E0",colorDanger:"#FF6B6B",borderRadius:"8px",fontFamily:"Poppins, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"4px"}},Z={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"}}},$={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"}}},J={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"}}},Q={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)"}}},ee={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)"}}},te={},re={cardButton:{border:"none",backgroundColor:"#f9fafb",boxShadow:"none"},cardFormContainer:{backgroundColor:"#f9fafb",border:"none"},cardInputBorder:"#e5e7eb",backButtonIcon:{backgroundColor:"#e5e7eb"},submitButton:{borderRadius:"6px"}},oe={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"}},ne={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"}},A={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"}},I={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"}},P={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"}},_={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"}},R={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)"}},k={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 $e(e){switch(e){case"minimal":return re;case"rounded":return oe;case"dark":return ne;case"modern-light":return A;case"modern-dark":return I;case"bold-light":return P;case"bold-dark":return _;case"glass-light":return R;case"glass-dark":return k;default:return te}}var ae={"modern-light":{appearance:Z,buttonsLayout:A},"modern-dark":{appearance:X,buttonsLayout:I},"bold-light":{appearance:$,buttonsLayout:P},"bold-dark":{appearance:J,buttonsLayout:_},"glass-light":{appearance:Q,buttonsLayout:R},"glass-dark":{appearance:ee,buttonsLayout:k}};function Je(e){if(!(!e||e==="classic"))return ae[e]}function Qe(e){switch(e){case"apple_pay":return"applePay";case"google_pay":return"googlePay";case"amazon_pay":return"amazonPay";default:return e}}function i(e,t,r){return`<svg viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><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="-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif" fill="${r}">${e}</text></svg>`}function Ge(e,t){return`<svg viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><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>`}var et=["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"],Dr=[...et,"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:{light:{backgroundColor:"#FFB3C7",textColor:"#0A0B09",borderColor:"#FFB3C7",logoSvg:i("K","#0A0B09","#FFB3C7")},dark:{backgroundColor:"#FFB3C7",textColor:"#0A0B09",borderColor:"#FFB3C7",logoSvg:i("K","#0A0B09","#FFB3C7")}}},affirm:{displayName:"Affirm",currencies:["usd"],countries:["US","CA"],amounts:{usd:{min:3500,max:3e6}},needsExplicitConfirm:!1,theme:{light:{backgroundColor:"#060F33",textColor:"#FFFFFF",borderColor:"#060F33",logoSvg:i("a","#FFFFFF","#060F33")},dark:{backgroundColor:"#0FA0EA",textColor:"#060F33",borderColor:"#0FA0EA",logoSvg:i("a","#060F33","#FFFFFF")}}},cashapp:{displayName:"Cash App Pay",currencies:["usd"],countries:["US"],amounts:{usd:{min:50,max:99999999}},needsExplicitConfirm:!1,theme:{light:{backgroundColor:"#00D54B",textColor:"#0A1F0E",borderColor:"#00D54B",logoSvg:i("$","#0A1F0E","#00D54B")},dark:{backgroundColor:"#00D54B",textColor:"#0A1F0E",borderColor:"#00D54B",logoSvg:i("$","#0A1F0E","#00D54B")}}},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:{light:{backgroundColor:"#B2FCE4",textColor:"#0A0B09",borderColor:"#B2FCE4",logoSvg:i("A","#0A0B09","#B2FCE4")},dark:{backgroundColor:"#B2FCE4",textColor:"#0A0B09",borderColor:"#B2FCE4",logoSvg:i("A","#0A0B09","#B2FCE4")}}},alipay:{displayName:"Alipay",currencies:["usd","cny"],theme:{light:{backgroundColor:"#1677FF",textColor:"#FFFFFF",borderColor:"#1677FF",logoSvg:i("A","#FFFFFF","#1677FF")},dark:{backgroundColor:"#1677FF",textColor:"#FFFFFF",borderColor:"#1677FF",logoSvg:i("A","#FFFFFF","#1677FF")}}},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:{light:{backgroundColor:"#FFDD55",textColor:"#1E3791",borderColor:"#FFDD55",logoSvg:i("B","#1E3791","#FFDD55")},dark:{backgroundColor:"#1E3791",textColor:"#FFDD55",borderColor:"#1E3791",logoSvg:i("B","#FFDD55","#1E3791")}}},bizum:{displayName:"Bizum",currencies:["eur"],countries:["ES"],theme:{light:{backgroundColor:"#00BFB3",textColor:"#FFFFFF",borderColor:"#00BFB3",logoSvg:i("B","#FFFFFF","#00BFB3")},dark:{backgroundColor:"#00BFB3",textColor:"#FFFFFF",borderColor:"#00BFB3",logoSvg:i("B","#FFFFFF","#00BFB3")}}},blik:{displayName:"BLIK",currencies:["pln"],countries:["PL"],theme:{light:{backgroundColor:"#000000",textColor:"#FFFFFF",borderColor:"#000000",logoSvg:i("B","#FFFFFF","#000000")},dark:{backgroundColor:"#FFFFFF",textColor:"#000000",borderColor:"#FFFFFF",logoSvg:i("B","#000000","#FFFFFF")}}},boleto:{displayName:"Boleto",currencies:["brl"],countries:["BR"]},customer_balance:{displayName:"Bank Transfer",currencies:["eur","usd"],countries:Dr,theme:{light:{backgroundColor:"#1F2937",textColor:"#FFFFFF",borderColor:"#1F2937",logoSvg:Ge("#1F2937","#FFFFFF")},dark:{backgroundColor:"#374151",textColor:"#FFFFFF",borderColor:"#374151",logoSvg:Ge("#374151","#FFFFFF")}}},eps:{displayName:"EPS",currencies:["eur"],countries:["AT"],theme:{light:{backgroundColor:"#C8102E",textColor:"#FFFFFF",borderColor:"#C8102E",logoSvg:i("E","#FFFFFF","#C8102E")},dark:{backgroundColor:"#C8102E",textColor:"#FFFFFF",borderColor:"#C8102E",logoSvg:i("E","#FFFFFF","#C8102E")}}},giropay:{displayName:"Giropay",currencies:["eur"],countries:["DE"],theme:{light:{backgroundColor:"#0F4197",textColor:"#FFFFFF",borderColor:"#0F4197",logoSvg:i("G","#FFFFFF","#0F4197")},dark:{backgroundColor:"#0F4197",textColor:"#FFFFFF",borderColor:"#0F4197",logoSvg:i("G","#FFFFFF","#0F4197")}}},ideal:{displayName:"iDEAL",currencies:["eur"],countries:["NL"],theme:{light:{backgroundColor:"#CC0066",textColor:"#FFFFFF",borderColor:"#CC0066",logoSvg:i("i","#FFFFFF","#CC0066")},dark:{backgroundColor:"#CC0066",textColor:"#FFFFFF",borderColor:"#CC0066",logoSvg:i("i","#FFFFFF","#CC0066")}}},konbini:{displayName:"Konbini",currencies:["jpy"],countries:["JP"]},kr_card:{displayName:"Korean Card",currencies:["krw"],countries:["KR"],theme:{light:{backgroundColor:"#0B3D91",textColor:"#FFFFFF",borderColor:"#0B3D91",logoSvg:i("K","#FFFFFF","#0B3D91")},dark:{backgroundColor:"#0B3D91",textColor:"#FFFFFF",borderColor:"#0B3D91",logoSvg:i("K","#FFFFFF","#0B3D91")}}},multibanco:{displayName:"Multibanco",currencies:["eur"],countries:["PT"]},oxxo:{displayName:"OXXO",currencies:["mxn"],countries:["MX"]},p24:{displayName:"Przelewy24",currencies:["eur","pln"],countries:["PL"],theme:{light:{backgroundColor:"#D90F1B",textColor:"#FFFFFF",borderColor:"#D90F1B",logoSvg:i("P","#FFFFFF","#D90F1B")},dark:{backgroundColor:"#D90F1B",textColor:"#FFFFFF",borderColor:"#D90F1B",logoSvg:i("P","#FFFFFF","#D90F1B")}}},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:et,theme:{light:{backgroundColor:"#10298E",textColor:"#FFFFFF",borderColor:"#10298E",logoSvg:i("\u20AC","#FFFFFF","#10298E")},dark:{backgroundColor:"#3056D3",textColor:"#FFFFFF",borderColor:"#3056D3",logoSvg:i("\u20AC","#FFFFFF","#3056D3")}}},sofort:{displayName:"Sofort",currencies:["eur"],countries:["AT","BE","DE","ES","IT","NL"],theme:{light:{backgroundColor:"#EF809F",textColor:"#FFFFFF",borderColor:"#EF809F",logoSvg:i("S","#FFFFFF","#EF809F")},dark:{backgroundColor:"#EF809F",textColor:"#FFFFFF",borderColor:"#EF809F",logoSvg:i("S","#FFFFFF","#EF809F")}}},upi:{displayName:"UPI",currencies:["inr"],countries:["IN"],theme:{light:{backgroundColor:"#FF7909",textColor:"#FFFFFF",borderColor:"#FF7909",logoSvg:i("U","#FFFFFF","#FF7909")},dark:{backgroundColor:"#FF7909",textColor:"#FFFFFF",borderColor:"#FF7909",logoSvg:i("U","#FFFFFF","#FF7909")}}},us_bank_account:{displayName:"US Bank Account",currencies:["usd"],countries:["US"]},wechat_pay:{displayName:"WeChat Pay",currencies:["usd","cny"],theme:{light:{backgroundColor:"#07C160",textColor:"#FFFFFF",borderColor:"#07C160",logoSvg:i("W","#FFFFFF","#07C160")},dark:{backgroundColor:"#07C160",textColor:"#FFFFFF",borderColor:"#07C160",logoSvg:i("W","#FFFFFF","#07C160")}}},zip:{displayName:"Zip",currencies:["aud"],countries:["AU","NZ"]}};function tt(e){return e?we.includes(e):!1}var ie=Object.entries(y).filter(([,e])=>e.express).map(([e])=>e),Lr=new Set(ie),se=Object.fromEntries(Object.entries(y).map(([e,t])=>[e,t.currencies])),de=Object.fromEntries(Object.entries(y).filter(([,e])=>e.countries).map(([e,t])=>[e,t.countries]));function rt(e){if(!e)return"this method";let t=y[e];return t?t.displayName:e.split("_").filter(Boolean).map(r=>r.charAt(0).toUpperCase()+r.slice(1)).join(" ")}function ot(e){if(!e)return!0;let t=y[e];return t?t.needsExplicitConfirm!==!1:!0}function nt(e,t){if(!e)return null;let r=y[e];return r?.theme?(typeof t=="string"&&t.endsWith("-dark")?r.theme.dark:r.theme.light)??r.theme.light??null:null}function at(e,t){if(!e?.length)return[];if(!t)return[...e];let r=t.trim().toLowerCase();return r?e.filter(o=>{let n=se[o];return n?n.includes("*")||n.includes(r):!0}):[...e]}function it(e,t){if(!e?.length)return[];if(!t)return[...e];let r=t.trim().toUpperCase();return r?e.filter(o=>{let n=de[o];return n?n.includes("*")||n.includes(r):!0}):[...e]}var ue=Object.fromEntries(Object.entries(y).filter(([,e])=>e.amounts).map(([e,t])=>[e,t.amounts]));function st(e,t,r){if(!e?.length)return[];if(!t||typeof r!="number"||!Number.isFinite(r))return[...e];let o=t.trim().toLowerCase();return o?e.filter(n=>{let s=ue[n];if(!s)return!0;let c=s[o];return c?!(typeof c.min=="number"&&r<c.min||typeof c.max=="number"&&r>c.max):!0}):[...e]}function dt(e,t){if(!e?.length)return{expressMethods:[],paymentElementMethods:[]};let r=[],o=[],n=new Set,s=new Set;for(let c of e){if(typeof c!="string")continue;let p=c.trim();if(!(!p||p==="card")&&!(t?.excludePaypal&&p==="paypal"))if(Lr.has(p)){if(n.has(p))continue;n.add(p),r.push(p)}else{if(s.has(p))continue;s.add(p),o.push(p)}}return{expressMethods:r,paymentElementMethods:o}}var ut=["payment","address"],ct=["visa","mastercard","mastercard_debit","amex","discover"],v={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}},B={currency:"USD",symbol:"$",country:"United States",countryCode:"US",tax:0};function lt(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 Or=new Intl.DisplayNames(["en"],{type:"region"});function Ur(e){return[...e.toUpperCase()].map(t=>String.fromCodePoint(127397+t.charCodeAt(0))).join("")}var pt=["US","GB","CA","AU","NZ","IE","DE","FR"],wr=["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:Or.of(e)??e,flag:Ur(e)}}var Gr=new Set(pt),Vr=wr.filter(e=>!Gr.has(e)),ce=[...pt.map(Ve),...Vr.map(Ve)];function mt(e){return ce.find(t=>t.code===e)}var Kr={country:!0,postal_code:!0};function le(e){return e?e===!0?Kr:e:null}function yt(e,t){if(e===void 0||e===!1)return!1;if(e===!0)return!0;let r=t.trim().toUpperCase();return e.some(o=>o.trim().toUpperCase()===r)}function gt(e){let t=le(e);return t?Object.values(t).some(r=>r===!0||Array.isArray(r)&&r.length>0):!1}var pe=[{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"}],me=[{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 Ct(e){switch(e.toUpperCase()){case"US":return pe;case"CA":return me;default:return null}}function Et(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"}}var Yr=[[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"]],zr={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 Hr(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,s]of Yr)if(r>=o&&r<=n)return s;return null}function qr(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 zr[r]??null}function Ft(e,t){if(!e||!t)return null;let r=e.trim().toUpperCase(),o=t.trim();if(!o)return null;switch(r){case"US":return Hr(o);case"CA":return qr(o);default:return null}}var Wr=er(require("validator/lib/isPostalCode.js"),1),M=Wr,ft=typeof M.default=="function"?M.default:M.default?.default;if(typeof ft!="function")throw new Error("validator/lib/isPostalCode.js interop failed: unexpected module shape. This likely means the bundler's CJS/ESM interop changed.");var bt=new Set(M.locales.map(e=>e.toUpperCase())),jr={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 ye(e){let t=(e??"").trim().toUpperCase();return t?t.length===2?t:jr[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 xt(e){let t=ye(e);return t!==null&&bt.has(t)}function ht(e,t){let r=(t??"").trim();if(!r)return!0;let o=ye(e);if(o===null||!bt.has(o))return!0;try{return ft(r,o)}catch{return!0}}function St(e){let t=ye(e);return t?Zr[t]:void 0}function Tt(e){if(!(e.captureMethod!=="manual"||!(e.products??ge(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 At(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 N(e,t,r,o){let n=a(e);if(n)return n;for(let s of t??[]){let c=a(s.currency);if(c)return c}for(let s of r??[]){let c=a(s.currency);if(c)return c}for(let s of o??[]){let c=a(s.currency);if(c)return c}return null}function ge(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 It(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 Pt(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 _t(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}function Rt(e,t={}){let r=[],o=e.products??[],n=o.filter(d=>d.type==="subscription"),s=o.filter(d=>d.type!=="subscription"),p=(N(e.currency,void 0,void 0,o)??"USD").toUpperCase();for(let d of n){let m=d.totalAmount??0,F=d.overrideAmount??m,O=d.name||d.code||"Subscription";O==="4-WEEK PLAN"&&F<=1&&(O="7-DAY TRIAL: FULL ACCESS"),r.push({name:O,quantity:d.quantity,price:F,originalPrice:m})}if(!(t.hideBundledItems===!0&&n.length>0&&s.length>0))for(let d of s){let m=d.totalAmount??0,F=d.overrideAmount??m;r.push({name:d.name||d.code||"Item",quantity:d.quantity,price:F,originalPrice:m})}r.length===0&&r.push({name:"Purchase",quantity:1,price:e.amount/100,originalPrice:e.amount/100});let Kt=r.reduce((d,m)=>d+m.originalPrice*m.quantity,0),Yt=r.reduce((d,m)=>d+m.price*m.quantity,0),zt=typeof e.totalAmount=="number"&&Number.isFinite(e.totalAmount),Ht=typeof e.subtotalAmount=="number"&&Number.isFinite(e.subtotalAmount),qt=typeof e.discountAmount=="number"&&Number.isFinite(e.discountAmount),Ee=zt?e.totalAmount:Yt,E=Ht?e.subtotalAmount:Kt,Fe=Math.max(0,E-Ee),Wt=E>0?Math.round(Fe/E*100):0;return{items:r,currency:p,total:Ee,originalTotal:E,totalSave:Fe,discountPercent:Wt,...qt?{couponDiscount:e.discountAmount}:{}}}function kt(e){return e?.captureMethod==="manual"}function vt(e,t){return e==="requires_capture"?t!=="manual":e==="succeeded"||e==="complete"||e==="completed"||e==="captured"||e==="paid"}function Bt(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"}function Mt(e){return v[e.toUpperCase()]??B}function Nt(e){return/^pk_(test|live)_[A-Za-z0-9]+$/.test(e)}function Dt(e){return/^sk_(test|live)_[A-Za-z0-9]+$/.test(e)}function Lt(e){return typeof e=="string"&&e.startsWith("seti_")}var Ot="Idempotency-Key",D=255,Ut="IdempotencyKeyInProgress";function Xr(){let e=globalThis.crypto;if(e&&(typeof e.randomUUID=="function"||typeof e.getRandomValues=="function"))return e}function Ce(){let e=Xr();if(!e)return;if(typeof e.randomUUID=="function")return e.randomUUID();let t=new Uint8Array(16);return e.getRandomValues(t),Array.from(t,r=>r.toString(16).padStart(2,"0")).join("")}function wt(e){if(e===void 0)return Ce();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>D)throw new u(`idempotencyKey must be at most ${D} characters.`,"validation_error",{code:"InvalidIdempotencyKey",param:"idempotencyKey"});return e}var L=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function Gt(e){return typeof e=="string"&&L.test(e)}function Vt(){try{let r=globalThis.crypto.randomUUID();if(L.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]&15|64,e[8]=e[8]&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)}`}0&&(module.exports={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,COUNTRY_OPTIONS,CURRENCY_MAP,DEFAULT_API_BASE_URL,DEFAULT_API_VERSION,DEFAULT_APPEARANCE,DEFAULT_CURRENCY,ELEMENT_TYPES,FLAT_APPEARANCE,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,SDK_VERSION,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,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,isCardSetupCheckoutSession,isDetachedSessionEligible,isMoneySettledOutcome,isPostalCodeSupported,isSetupIntentClientSecret,isUuidV4,isValidPostalCode,isValidPublishableKey,isValidSecretKey,needsStripeMethodExplicitConfirm,networkError,normalizeCheckoutFailureOutcome,normalizeGatewayEnvironment,partitionStripeMethods,randomUuidV4,rateLimitError,resolveAVSConfig,resolveBillingApiUrl,resolveButtonsLayoutTheme,resolveIdempotencyKey,resolveSessionCurrency,resolveStripeMethodBrandVariant,resolveTheme,serializeTelemetryBatch,stripeExpressMethodToOptionKey,telemetryStatusClass,validationError});
|
package/dist/index.d.cts
CHANGED
|
@@ -344,6 +344,20 @@ interface CheckoutGateway {
|
|
|
344
344
|
* backends (the SDK then falls back to its built-in table).
|
|
345
345
|
*/
|
|
346
346
|
enabledPaymentMethodCountries?: Record<string, string[]>;
|
|
347
|
+
/**
|
|
348
|
+
* PayPal object the backend selected for this checkout continuation — which
|
|
349
|
+
* PayPal JS flow the session needs. New backends advertise `'order'` or
|
|
350
|
+
* `'setup_token'` (legacy provider-managed subscriptions are expressed by
|
|
351
|
+
* omission, though `'subscription'` remains accepted for robustness). Absent
|
|
352
|
+
* → released fallback: `isSubscription ? 'subscription' : 'order'`. The
|
|
353
|
+
* backend suppresses this advertisement for `x-flo-sdk-version` readers
|
|
354
|
+
* older than 1.6.0 (header-less direct integrations always see it);
|
|
355
|
+
* advertisement only — routing follows the payment-method type the client
|
|
356
|
+
* requests. On `gateways.paypal`, {@link enabledPaymentMethods} may also
|
|
357
|
+
* carry an informational `'paypal_vaulted'` entry when the Flo-owned
|
|
358
|
+
* channel is available.
|
|
359
|
+
*/
|
|
360
|
+
providerObjectType?: PayPalProviderObjectType;
|
|
347
361
|
}
|
|
348
362
|
/**
|
|
349
363
|
* Map of gateways attached to a session, keyed by gateway code. A session can
|
|
@@ -507,30 +521,72 @@ interface StripeSessionIntentRequest extends SessionIntentAuthorizationAttempt {
|
|
|
507
521
|
paymentMethodId: string | null;
|
|
508
522
|
intentKind: 'payment' | 'setup';
|
|
509
523
|
}
|
|
510
|
-
/**
|
|
511
|
-
|
|
512
|
-
* derives order vs subscription from the session's products and returns that as
|
|
513
|
-
* the response `providerObjectType`. PayPal setup intents are unsupported —
|
|
514
|
-
* PayPal vaults during a successful Order capture, not via standalone setups.
|
|
515
|
-
*/
|
|
516
|
-
interface PayPalSessionIntentRequest extends SessionIntentAuthorizationAttempt {
|
|
524
|
+
/** Fields shared by every direct PayPal intent request channel. */
|
|
525
|
+
interface PayPalSessionIntentRequestBase extends SessionIntentAuthorizationAttempt {
|
|
517
526
|
provider: 'paypal';
|
|
518
527
|
paymentMethodCategory: 'wallet';
|
|
519
|
-
paymentMethodType: 'paypal';
|
|
520
528
|
paymentMethodId: null;
|
|
529
|
+
}
|
|
530
|
+
/**
|
|
531
|
+
* Legacy provider-managed channel. `paymentMethodType: 'paypal'` keeps the
|
|
532
|
+
* released contract byte-identical: always `intentKind: 'payment'`, and the
|
|
533
|
+
* backend derives Order vs provider-managed Subscription from the session.
|
|
534
|
+
*/
|
|
535
|
+
interface PayPalLegacySessionIntentRequest extends PayPalSessionIntentRequestBase {
|
|
536
|
+
paymentMethodType: 'paypal';
|
|
537
|
+
intentKind: 'payment';
|
|
538
|
+
}
|
|
539
|
+
/**
|
|
540
|
+
* Flo-owned channel, payment continuation. `paymentMethodType:
|
|
541
|
+
* 'paypal_vaulted'` with `intentKind: 'payment'` requests a Flo-owned PayPal
|
|
542
|
+
* Order (advertised as `providerObjectType: 'order'`).
|
|
543
|
+
*/
|
|
544
|
+
interface PayPalVaultedPaymentSessionIntentRequest extends PayPalSessionIntentRequestBase {
|
|
545
|
+
paymentMethodType: 'paypal_vaulted';
|
|
521
546
|
intentKind: 'payment';
|
|
522
547
|
}
|
|
548
|
+
/**
|
|
549
|
+
* Flo-owned channel, setup continuation. `paymentMethodType: 'paypal_vaulted'`
|
|
550
|
+
* with `intentKind: 'setup'` requests a PayPal vault setup token for an
|
|
551
|
+
* item-free deferred Flo-owned start (advertised as `providerObjectType:
|
|
552
|
+
* 'setup_token'`).
|
|
553
|
+
*/
|
|
554
|
+
interface PayPalVaultedSetupSessionIntentRequest extends PayPalSessionIntentRequestBase {
|
|
555
|
+
paymentMethodType: 'paypal_vaulted';
|
|
556
|
+
intentKind: 'setup';
|
|
557
|
+
}
|
|
558
|
+
/**
|
|
559
|
+
* Direct PayPal intent request. The payment-method type is the in-band channel
|
|
560
|
+
* selector: `'paypal'` keeps provider-managed semantics, `'paypal_vaulted'`
|
|
561
|
+
* opts the request into the Flo-owned channel. The union makes the invalid
|
|
562
|
+
* combination (`'paypal'` with `intentKind: 'setup'`) unrepresentable.
|
|
563
|
+
*/
|
|
564
|
+
type PayPalSessionIntentRequest = PayPalLegacySessionIntentRequest | PayPalVaultedPaymentSessionIntentRequest | PayPalVaultedSetupSessionIntentRequest;
|
|
523
565
|
type CreateSessionIntentRequest = StripeSessionIntentRequest | PayPalSessionIntentRequest;
|
|
524
566
|
interface StripeSessionIntent extends StripeSessionIntentRequest {
|
|
525
567
|
clientSecret: string;
|
|
526
568
|
providerObjectId: string;
|
|
527
569
|
}
|
|
528
|
-
interface
|
|
570
|
+
interface PayPalSessionIntentResponse {
|
|
529
571
|
clientSecret: null;
|
|
530
572
|
providerObjectId: string;
|
|
531
|
-
/** Server-derived from the session's products (a subscription product → 'subscription'). */
|
|
532
|
-
providerObjectType: 'order' | 'subscription';
|
|
533
573
|
}
|
|
574
|
+
/**
|
|
575
|
+
* Direct PayPal intent response. The response echoes the request fields and
|
|
576
|
+
* correlates the selected provider object with the requested channel so
|
|
577
|
+
* impossible wire responses are not representable to SDK consumers:
|
|
578
|
+
*
|
|
579
|
+
* - `'paypal'` + `'payment'` ↔ `providerObjectType: 'order' | 'subscription'`
|
|
580
|
+
* - `'paypal_vaulted'` + `'payment'` ↔ `providerObjectType: 'order'`
|
|
581
|
+
* - `'paypal_vaulted'` + `'setup'` ↔ `providerObjectType: 'setup_token'`
|
|
582
|
+
*/
|
|
583
|
+
type PayPalSessionIntent = (PayPalLegacySessionIntentRequest & PayPalSessionIntentResponse & {
|
|
584
|
+
providerObjectType: 'order' | 'subscription';
|
|
585
|
+
}) | (PayPalVaultedPaymentSessionIntentRequest & PayPalSessionIntentResponse & {
|
|
586
|
+
providerObjectType: 'order';
|
|
587
|
+
}) | (PayPalVaultedSetupSessionIntentRequest & PayPalSessionIntentResponse & {
|
|
588
|
+
providerObjectType: 'setup_token';
|
|
589
|
+
});
|
|
534
590
|
type SessionIntent = StripeSessionIntent | PayPalSessionIntent;
|
|
535
591
|
type SessionIntentDeclineRequest = {
|
|
536
592
|
provider: 'stripe';
|
|
@@ -950,6 +1006,8 @@ interface CardCaptureAdapter {
|
|
|
950
1006
|
type VaultCardFieldKey = 'name' | 'number' | 'expiry';
|
|
951
1007
|
/** Supported upstream gateway codes. */
|
|
952
1008
|
type BillingProvider = 'stripe' | 'paypal';
|
|
1009
|
+
/** PayPal continuation object selected by the billing backend. */
|
|
1010
|
+
type PayPalProviderObjectType = 'order' | 'subscription' | 'setup_token';
|
|
953
1011
|
/** Token payload produced by client-side tokenization. */
|
|
954
1012
|
interface TokenizedBody {
|
|
955
1013
|
id?: string;
|
|
@@ -958,8 +1016,9 @@ interface TokenizedBody {
|
|
|
958
1016
|
originalPaymentMethodId?: string;
|
|
959
1017
|
/**
|
|
960
1018
|
* @deprecated Use {@link TokenizedBody.gateway} + {@link TokenizedBody.paymentMethodType}.
|
|
961
|
-
* Still populated by the SDK for PayPal
|
|
962
|
-
*
|
|
1019
|
+
* Still populated by the SDK for PayPal compatibility as the boolean `true`,
|
|
1020
|
+
* never the string `"true"`. New integrations must route by `gateway` and
|
|
1021
|
+
* `paymentMethodType` instead.
|
|
963
1022
|
*/
|
|
964
1023
|
isPaypal?: boolean;
|
|
965
1024
|
/**
|
|
@@ -1056,6 +1115,7 @@ interface NormalizedCheckoutSession {
|
|
|
1056
1115
|
paypal?: {
|
|
1057
1116
|
publishableKey?: string;
|
|
1058
1117
|
environment?: GatewayEnvironment;
|
|
1118
|
+
providerObjectType?: PayPalProviderObjectType;
|
|
1059
1119
|
};
|
|
1060
1120
|
};
|
|
1061
1121
|
raw?: unknown;
|
|
@@ -1705,16 +1765,34 @@ declare function getConfiguredBillingApiUrl(): string;
|
|
|
1705
1765
|
declare function getFloPayEnvironment(): FloPayEnvironment;
|
|
1706
1766
|
|
|
1707
1767
|
/** Current SDK version. */
|
|
1708
|
-
declare const SDK_VERSION = "1.
|
|
1768
|
+
declare const SDK_VERSION = "1.6.0";
|
|
1709
1769
|
/**
|
|
1710
1770
|
* HTTP header the SDK sends on checkout-session create/read requests so the
|
|
1711
1771
|
* backend can observe compatibility. Version 1.4.9 is the first release that
|
|
1712
1772
|
* can discover hosted card capture from an explicit Stripe `card` capability
|
|
1713
|
-
* and recover the widget lazily when `session.vault` is omitted.
|
|
1773
|
+
* and recover the widget lazily when `session.vault` is omitted. The backend
|
|
1774
|
+
* also uses this value to suppress the Flo-owned PayPal advertisement fields
|
|
1775
|
+
* (`gateways.paypal.providerObjectType` and the `paypal_vaulted` entry in
|
|
1776
|
+
* `enabledPaymentMethods`) for readers older than 1.6.0 — advertisement only,
|
|
1777
|
+
* never request routing.
|
|
1714
1778
|
*
|
|
1715
1779
|
* @see SDK_VERSION — the value sent in this header.
|
|
1716
1780
|
*/
|
|
1717
1781
|
declare const FLO_SDK_VERSION_HEADER = "x-flo-sdk-version";
|
|
1782
|
+
/**
|
|
1783
|
+
* In-band payment-method CHANNEL for Flo-owned PayPal continuations.
|
|
1784
|
+
*
|
|
1785
|
+
* The payment-method type sent to `POST /v1/checkouts/sessions/{id}/intents`
|
|
1786
|
+
* is the channel selector: requesting `paypal_vaulted` opts a single request
|
|
1787
|
+
* into the Flo-owned channel (an Order for `intentKind: 'payment'`, a vault
|
|
1788
|
+
* setup token for `intentKind: 'setup'`), while the legacy `paypal` type keeps
|
|
1789
|
+
* the released provider-managed semantics byte-identical — even when the
|
|
1790
|
+
* backend feature flag is on. Sessions advertise availability via
|
|
1791
|
+
* `gateways.paypal.providerObjectType` and an informational `paypal_vaulted`
|
|
1792
|
+
* entry in `gateways.paypal.enabledPaymentMethods`; there is no capability
|
|
1793
|
+
* header and no version-gated routing.
|
|
1794
|
+
*/
|
|
1795
|
+
declare const PAYPAL_VAULTED_PAYMENT_METHOD_TYPE = "paypal_vaulted";
|
|
1718
1796
|
/** Billing API URL for staging environment. */
|
|
1719
1797
|
declare const BILLING_API_URL_STAGING = "https://api.stage.flopay.com";
|
|
1720
1798
|
/** Billing API URL for production environment. */
|
|
@@ -2420,4 +2498,4 @@ declare function isUuidV4(value: unknown): value is string;
|
|
|
2420
2498
|
*/
|
|
2421
2499
|
declare function randomUuidV4(): string;
|
|
2422
2500
|
|
|
2423
|
-
export { type AVSFieldConfig, 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, COUNTRY_OPTIONS, CURRENCY_MAP, type CaptureMethod, type CardCaptureAdapter, type CardCaptureEventType, type CardCaptureMountOptions, type CardCaptureOutcomeEvent, type CardCaptureProviderId, type CheckoutAccount, type CheckoutButtonMethod, type CheckoutDisplayData, type CheckoutFailureOutcome, type CheckoutGateway, type CheckoutGateways, type CheckoutItem, 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 ConfirmPaymentParams, type CountryOption, 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, ELEMENT_TYPES, type ElementChangeEvent, type ElementOptions, type ElementType, FLAT_APPEARANCE, FLO_SDK_VERSION_HEADER, 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, MAX_IDEMPOTENCY_KEY_LENGTH, MODERN_DARK_APPEARANCE, MODERN_LIGHT_APPEARANCE, type MountedElement, NIGHT_APPEARANCE, type NonCardPaymentMethodCategory, type NormalizedCheckoutSession, type NormalizedGatewayEnvironment, type PayPalPaymentResult, 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, SDK_VERSION, STRIPE_EXPRESS_METHODS, STRIPE_METHOD_AMOUNT_LIMITS, STRIPE_METHOD_COUNTRIES, STRIPE_METHOD_CURRENCIES, STRIPE_METHOD_MATRIX, SUPPORTED_CARD_BRANDS, type SavedCardDisplay, type SavedPaymentMethodStatus, type SentryEventLike, type SentryStackFrameLike, type SerializeTelemetryBatchOptions, type SessionIntent, type SessionIntentDeclineRequest, type StateOption, 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, type TagsData, type TelemetryBatchEnvelope, type TelemetryCheckoutMode, type TelemetryDurationMode, type TelemetryErrorCode, type TelemetryErrorEvent, type TelemetryEvent, type TelemetryEventClass, type TelemetryExpectedOutcome, type TelemetryExpectedOutcomeEvent, type TelemetryFailureCategory, type TelemetryLayout, type TelemetryLogEvent, type TelemetryLogName, type TelemetryPaymentMethodCategory, type TelemetryPerformanceEvent, type TelemetryProvider, type TelemetryProviderInput, type TelemetryRequestCategory, type TelemetrySdkPackage, type TelemetryStage, type TelemetryStatusClass, type ThemeBundle, type ThemeBundleId, type ThemeId, type TokenizedBody, US_STATES, UUID_V4, type UpdateCustomerParams, type VaultCaptureBlock, type VaultCaptureResultMessage, type VaultCardFieldKey, type VaultCardThemeColors, 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, isCardSetupCheckoutSession, isDetachedSessionEligible, isMoneySettledOutcome, isPostalCodeSupported, isSetupIntentClientSecret, isUuidV4, isValidPostalCode, isValidPublishableKey, isValidSecretKey, needsStripeMethodExplicitConfirm, networkError, normalizeCheckoutFailureOutcome, normalizeGatewayEnvironment, partitionStripeMethods, randomUuidV4, rateLimitError, resolveAVSConfig, resolveBillingApiUrl, resolveButtonsLayoutTheme, resolveIdempotencyKey, resolveSessionCurrency, resolveStripeMethodBrandVariant, resolveTheme, serializeTelemetryBatch, stripeExpressMethodToOptionKey, telemetryStatusClass, validationError };
|
|
2501
|
+
export { type AVSFieldConfig, 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, COUNTRY_OPTIONS, CURRENCY_MAP, type CaptureMethod, type CardCaptureAdapter, type CardCaptureEventType, type CardCaptureMountOptions, type CardCaptureOutcomeEvent, type CardCaptureProviderId, type CheckoutAccount, type CheckoutButtonMethod, type CheckoutDisplayData, type CheckoutFailureOutcome, type CheckoutGateway, type CheckoutGateways, type CheckoutItem, 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 ConfirmPaymentParams, type CountryOption, 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, ELEMENT_TYPES, type ElementChangeEvent, type ElementOptions, type ElementType, FLAT_APPEARANCE, FLO_SDK_VERSION_HEADER, 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, MAX_IDEMPOTENCY_KEY_LENGTH, MODERN_DARK_APPEARANCE, MODERN_LIGHT_APPEARANCE, type MountedElement, NIGHT_APPEARANCE, type NonCardPaymentMethodCategory, type NormalizedCheckoutSession, type NormalizedGatewayEnvironment, PAYPAL_VAULTED_PAYMENT_METHOD_TYPE, 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, SDK_VERSION, STRIPE_EXPRESS_METHODS, STRIPE_METHOD_AMOUNT_LIMITS, STRIPE_METHOD_COUNTRIES, STRIPE_METHOD_CURRENCIES, STRIPE_METHOD_MATRIX, SUPPORTED_CARD_BRANDS, type SavedCardDisplay, type SavedPaymentMethodStatus, type SentryEventLike, type SentryStackFrameLike, type SerializeTelemetryBatchOptions, type SessionIntent, type SessionIntentDeclineRequest, type StateOption, 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, type TagsData, type TelemetryBatchEnvelope, type TelemetryCheckoutMode, type TelemetryDurationMode, type TelemetryErrorCode, type TelemetryErrorEvent, type TelemetryEvent, type TelemetryEventClass, type TelemetryExpectedOutcome, type TelemetryExpectedOutcomeEvent, type TelemetryFailureCategory, type TelemetryLayout, type TelemetryLogEvent, type TelemetryLogName, type TelemetryPaymentMethodCategory, type TelemetryPerformanceEvent, type TelemetryProvider, type TelemetryProviderInput, type TelemetryRequestCategory, type TelemetrySdkPackage, type TelemetryStage, type TelemetryStatusClass, type ThemeBundle, type ThemeBundleId, type ThemeId, type TokenizedBody, US_STATES, UUID_V4, type UpdateCustomerParams, type VaultCaptureBlock, type VaultCaptureResultMessage, type VaultCardFieldKey, type VaultCardThemeColors, 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, isCardSetupCheckoutSession, isDetachedSessionEligible, isMoneySettledOutcome, isPostalCodeSupported, isSetupIntentClientSecret, isUuidV4, isValidPostalCode, isValidPublishableKey, isValidSecretKey, needsStripeMethodExplicitConfirm, networkError, normalizeCheckoutFailureOutcome, normalizeGatewayEnvironment, partitionStripeMethods, randomUuidV4, rateLimitError, resolveAVSConfig, resolveBillingApiUrl, resolveButtonsLayoutTheme, resolveIdempotencyKey, resolveSessionCurrency, resolveStripeMethodBrandVariant, resolveTheme, serializeTelemetryBatch, stripeExpressMethodToOptionKey, telemetryStatusClass, validationError };
|
package/dist/index.d.ts
CHANGED
|
@@ -344,6 +344,20 @@ interface CheckoutGateway {
|
|
|
344
344
|
* backends (the SDK then falls back to its built-in table).
|
|
345
345
|
*/
|
|
346
346
|
enabledPaymentMethodCountries?: Record<string, string[]>;
|
|
347
|
+
/**
|
|
348
|
+
* PayPal object the backend selected for this checkout continuation — which
|
|
349
|
+
* PayPal JS flow the session needs. New backends advertise `'order'` or
|
|
350
|
+
* `'setup_token'` (legacy provider-managed subscriptions are expressed by
|
|
351
|
+
* omission, though `'subscription'` remains accepted for robustness). Absent
|
|
352
|
+
* → released fallback: `isSubscription ? 'subscription' : 'order'`. The
|
|
353
|
+
* backend suppresses this advertisement for `x-flo-sdk-version` readers
|
|
354
|
+
* older than 1.6.0 (header-less direct integrations always see it);
|
|
355
|
+
* advertisement only — routing follows the payment-method type the client
|
|
356
|
+
* requests. On `gateways.paypal`, {@link enabledPaymentMethods} may also
|
|
357
|
+
* carry an informational `'paypal_vaulted'` entry when the Flo-owned
|
|
358
|
+
* channel is available.
|
|
359
|
+
*/
|
|
360
|
+
providerObjectType?: PayPalProviderObjectType;
|
|
347
361
|
}
|
|
348
362
|
/**
|
|
349
363
|
* Map of gateways attached to a session, keyed by gateway code. A session can
|
|
@@ -507,30 +521,72 @@ interface StripeSessionIntentRequest extends SessionIntentAuthorizationAttempt {
|
|
|
507
521
|
paymentMethodId: string | null;
|
|
508
522
|
intentKind: 'payment' | 'setup';
|
|
509
523
|
}
|
|
510
|
-
/**
|
|
511
|
-
|
|
512
|
-
* derives order vs subscription from the session's products and returns that as
|
|
513
|
-
* the response `providerObjectType`. PayPal setup intents are unsupported —
|
|
514
|
-
* PayPal vaults during a successful Order capture, not via standalone setups.
|
|
515
|
-
*/
|
|
516
|
-
interface PayPalSessionIntentRequest extends SessionIntentAuthorizationAttempt {
|
|
524
|
+
/** Fields shared by every direct PayPal intent request channel. */
|
|
525
|
+
interface PayPalSessionIntentRequestBase extends SessionIntentAuthorizationAttempt {
|
|
517
526
|
provider: 'paypal';
|
|
518
527
|
paymentMethodCategory: 'wallet';
|
|
519
|
-
paymentMethodType: 'paypal';
|
|
520
528
|
paymentMethodId: null;
|
|
529
|
+
}
|
|
530
|
+
/**
|
|
531
|
+
* Legacy provider-managed channel. `paymentMethodType: 'paypal'` keeps the
|
|
532
|
+
* released contract byte-identical: always `intentKind: 'payment'`, and the
|
|
533
|
+
* backend derives Order vs provider-managed Subscription from the session.
|
|
534
|
+
*/
|
|
535
|
+
interface PayPalLegacySessionIntentRequest extends PayPalSessionIntentRequestBase {
|
|
536
|
+
paymentMethodType: 'paypal';
|
|
537
|
+
intentKind: 'payment';
|
|
538
|
+
}
|
|
539
|
+
/**
|
|
540
|
+
* Flo-owned channel, payment continuation. `paymentMethodType:
|
|
541
|
+
* 'paypal_vaulted'` with `intentKind: 'payment'` requests a Flo-owned PayPal
|
|
542
|
+
* Order (advertised as `providerObjectType: 'order'`).
|
|
543
|
+
*/
|
|
544
|
+
interface PayPalVaultedPaymentSessionIntentRequest extends PayPalSessionIntentRequestBase {
|
|
545
|
+
paymentMethodType: 'paypal_vaulted';
|
|
521
546
|
intentKind: 'payment';
|
|
522
547
|
}
|
|
548
|
+
/**
|
|
549
|
+
* Flo-owned channel, setup continuation. `paymentMethodType: 'paypal_vaulted'`
|
|
550
|
+
* with `intentKind: 'setup'` requests a PayPal vault setup token for an
|
|
551
|
+
* item-free deferred Flo-owned start (advertised as `providerObjectType:
|
|
552
|
+
* 'setup_token'`).
|
|
553
|
+
*/
|
|
554
|
+
interface PayPalVaultedSetupSessionIntentRequest extends PayPalSessionIntentRequestBase {
|
|
555
|
+
paymentMethodType: 'paypal_vaulted';
|
|
556
|
+
intentKind: 'setup';
|
|
557
|
+
}
|
|
558
|
+
/**
|
|
559
|
+
* Direct PayPal intent request. The payment-method type is the in-band channel
|
|
560
|
+
* selector: `'paypal'` keeps provider-managed semantics, `'paypal_vaulted'`
|
|
561
|
+
* opts the request into the Flo-owned channel. The union makes the invalid
|
|
562
|
+
* combination (`'paypal'` with `intentKind: 'setup'`) unrepresentable.
|
|
563
|
+
*/
|
|
564
|
+
type PayPalSessionIntentRequest = PayPalLegacySessionIntentRequest | PayPalVaultedPaymentSessionIntentRequest | PayPalVaultedSetupSessionIntentRequest;
|
|
523
565
|
type CreateSessionIntentRequest = StripeSessionIntentRequest | PayPalSessionIntentRequest;
|
|
524
566
|
interface StripeSessionIntent extends StripeSessionIntentRequest {
|
|
525
567
|
clientSecret: string;
|
|
526
568
|
providerObjectId: string;
|
|
527
569
|
}
|
|
528
|
-
interface
|
|
570
|
+
interface PayPalSessionIntentResponse {
|
|
529
571
|
clientSecret: null;
|
|
530
572
|
providerObjectId: string;
|
|
531
|
-
/** Server-derived from the session's products (a subscription product → 'subscription'). */
|
|
532
|
-
providerObjectType: 'order' | 'subscription';
|
|
533
573
|
}
|
|
574
|
+
/**
|
|
575
|
+
* Direct PayPal intent response. The response echoes the request fields and
|
|
576
|
+
* correlates the selected provider object with the requested channel so
|
|
577
|
+
* impossible wire responses are not representable to SDK consumers:
|
|
578
|
+
*
|
|
579
|
+
* - `'paypal'` + `'payment'` ↔ `providerObjectType: 'order' | 'subscription'`
|
|
580
|
+
* - `'paypal_vaulted'` + `'payment'` ↔ `providerObjectType: 'order'`
|
|
581
|
+
* - `'paypal_vaulted'` + `'setup'` ↔ `providerObjectType: 'setup_token'`
|
|
582
|
+
*/
|
|
583
|
+
type PayPalSessionIntent = (PayPalLegacySessionIntentRequest & PayPalSessionIntentResponse & {
|
|
584
|
+
providerObjectType: 'order' | 'subscription';
|
|
585
|
+
}) | (PayPalVaultedPaymentSessionIntentRequest & PayPalSessionIntentResponse & {
|
|
586
|
+
providerObjectType: 'order';
|
|
587
|
+
}) | (PayPalVaultedSetupSessionIntentRequest & PayPalSessionIntentResponse & {
|
|
588
|
+
providerObjectType: 'setup_token';
|
|
589
|
+
});
|
|
534
590
|
type SessionIntent = StripeSessionIntent | PayPalSessionIntent;
|
|
535
591
|
type SessionIntentDeclineRequest = {
|
|
536
592
|
provider: 'stripe';
|
|
@@ -950,6 +1006,8 @@ interface CardCaptureAdapter {
|
|
|
950
1006
|
type VaultCardFieldKey = 'name' | 'number' | 'expiry';
|
|
951
1007
|
/** Supported upstream gateway codes. */
|
|
952
1008
|
type BillingProvider = 'stripe' | 'paypal';
|
|
1009
|
+
/** PayPal continuation object selected by the billing backend. */
|
|
1010
|
+
type PayPalProviderObjectType = 'order' | 'subscription' | 'setup_token';
|
|
953
1011
|
/** Token payload produced by client-side tokenization. */
|
|
954
1012
|
interface TokenizedBody {
|
|
955
1013
|
id?: string;
|
|
@@ -958,8 +1016,9 @@ interface TokenizedBody {
|
|
|
958
1016
|
originalPaymentMethodId?: string;
|
|
959
1017
|
/**
|
|
960
1018
|
* @deprecated Use {@link TokenizedBody.gateway} + {@link TokenizedBody.paymentMethodType}.
|
|
961
|
-
* Still populated by the SDK for PayPal
|
|
962
|
-
*
|
|
1019
|
+
* Still populated by the SDK for PayPal compatibility as the boolean `true`,
|
|
1020
|
+
* never the string `"true"`. New integrations must route by `gateway` and
|
|
1021
|
+
* `paymentMethodType` instead.
|
|
963
1022
|
*/
|
|
964
1023
|
isPaypal?: boolean;
|
|
965
1024
|
/**
|
|
@@ -1056,6 +1115,7 @@ interface NormalizedCheckoutSession {
|
|
|
1056
1115
|
paypal?: {
|
|
1057
1116
|
publishableKey?: string;
|
|
1058
1117
|
environment?: GatewayEnvironment;
|
|
1118
|
+
providerObjectType?: PayPalProviderObjectType;
|
|
1059
1119
|
};
|
|
1060
1120
|
};
|
|
1061
1121
|
raw?: unknown;
|
|
@@ -1705,16 +1765,34 @@ declare function getConfiguredBillingApiUrl(): string;
|
|
|
1705
1765
|
declare function getFloPayEnvironment(): FloPayEnvironment;
|
|
1706
1766
|
|
|
1707
1767
|
/** Current SDK version. */
|
|
1708
|
-
declare const SDK_VERSION = "1.
|
|
1768
|
+
declare const SDK_VERSION = "1.6.0";
|
|
1709
1769
|
/**
|
|
1710
1770
|
* HTTP header the SDK sends on checkout-session create/read requests so the
|
|
1711
1771
|
* backend can observe compatibility. Version 1.4.9 is the first release that
|
|
1712
1772
|
* can discover hosted card capture from an explicit Stripe `card` capability
|
|
1713
|
-
* and recover the widget lazily when `session.vault` is omitted.
|
|
1773
|
+
* and recover the widget lazily when `session.vault` is omitted. The backend
|
|
1774
|
+
* also uses this value to suppress the Flo-owned PayPal advertisement fields
|
|
1775
|
+
* (`gateways.paypal.providerObjectType` and the `paypal_vaulted` entry in
|
|
1776
|
+
* `enabledPaymentMethods`) for readers older than 1.6.0 — advertisement only,
|
|
1777
|
+
* never request routing.
|
|
1714
1778
|
*
|
|
1715
1779
|
* @see SDK_VERSION — the value sent in this header.
|
|
1716
1780
|
*/
|
|
1717
1781
|
declare const FLO_SDK_VERSION_HEADER = "x-flo-sdk-version";
|
|
1782
|
+
/**
|
|
1783
|
+
* In-band payment-method CHANNEL for Flo-owned PayPal continuations.
|
|
1784
|
+
*
|
|
1785
|
+
* The payment-method type sent to `POST /v1/checkouts/sessions/{id}/intents`
|
|
1786
|
+
* is the channel selector: requesting `paypal_vaulted` opts a single request
|
|
1787
|
+
* into the Flo-owned channel (an Order for `intentKind: 'payment'`, a vault
|
|
1788
|
+
* setup token for `intentKind: 'setup'`), while the legacy `paypal` type keeps
|
|
1789
|
+
* the released provider-managed semantics byte-identical — even when the
|
|
1790
|
+
* backend feature flag is on. Sessions advertise availability via
|
|
1791
|
+
* `gateways.paypal.providerObjectType` and an informational `paypal_vaulted`
|
|
1792
|
+
* entry in `gateways.paypal.enabledPaymentMethods`; there is no capability
|
|
1793
|
+
* header and no version-gated routing.
|
|
1794
|
+
*/
|
|
1795
|
+
declare const PAYPAL_VAULTED_PAYMENT_METHOD_TYPE = "paypal_vaulted";
|
|
1718
1796
|
/** Billing API URL for staging environment. */
|
|
1719
1797
|
declare const BILLING_API_URL_STAGING = "https://api.stage.flopay.com";
|
|
1720
1798
|
/** Billing API URL for production environment. */
|
|
@@ -2420,4 +2498,4 @@ declare function isUuidV4(value: unknown): value is string;
|
|
|
2420
2498
|
*/
|
|
2421
2499
|
declare function randomUuidV4(): string;
|
|
2422
2500
|
|
|
2423
|
-
export { type AVSFieldConfig, 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, COUNTRY_OPTIONS, CURRENCY_MAP, type CaptureMethod, type CardCaptureAdapter, type CardCaptureEventType, type CardCaptureMountOptions, type CardCaptureOutcomeEvent, type CardCaptureProviderId, type CheckoutAccount, type CheckoutButtonMethod, type CheckoutDisplayData, type CheckoutFailureOutcome, type CheckoutGateway, type CheckoutGateways, type CheckoutItem, 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 ConfirmPaymentParams, type CountryOption, 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, ELEMENT_TYPES, type ElementChangeEvent, type ElementOptions, type ElementType, FLAT_APPEARANCE, FLO_SDK_VERSION_HEADER, 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, MAX_IDEMPOTENCY_KEY_LENGTH, MODERN_DARK_APPEARANCE, MODERN_LIGHT_APPEARANCE, type MountedElement, NIGHT_APPEARANCE, type NonCardPaymentMethodCategory, type NormalizedCheckoutSession, type NormalizedGatewayEnvironment, type PayPalPaymentResult, 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, SDK_VERSION, STRIPE_EXPRESS_METHODS, STRIPE_METHOD_AMOUNT_LIMITS, STRIPE_METHOD_COUNTRIES, STRIPE_METHOD_CURRENCIES, STRIPE_METHOD_MATRIX, SUPPORTED_CARD_BRANDS, type SavedCardDisplay, type SavedPaymentMethodStatus, type SentryEventLike, type SentryStackFrameLike, type SerializeTelemetryBatchOptions, type SessionIntent, type SessionIntentDeclineRequest, type StateOption, 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, type TagsData, type TelemetryBatchEnvelope, type TelemetryCheckoutMode, type TelemetryDurationMode, type TelemetryErrorCode, type TelemetryErrorEvent, type TelemetryEvent, type TelemetryEventClass, type TelemetryExpectedOutcome, type TelemetryExpectedOutcomeEvent, type TelemetryFailureCategory, type TelemetryLayout, type TelemetryLogEvent, type TelemetryLogName, type TelemetryPaymentMethodCategory, type TelemetryPerformanceEvent, type TelemetryProvider, type TelemetryProviderInput, type TelemetryRequestCategory, type TelemetrySdkPackage, type TelemetryStage, type TelemetryStatusClass, type ThemeBundle, type ThemeBundleId, type ThemeId, type TokenizedBody, US_STATES, UUID_V4, type UpdateCustomerParams, type VaultCaptureBlock, type VaultCaptureResultMessage, type VaultCardFieldKey, type VaultCardThemeColors, 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, isCardSetupCheckoutSession, isDetachedSessionEligible, isMoneySettledOutcome, isPostalCodeSupported, isSetupIntentClientSecret, isUuidV4, isValidPostalCode, isValidPublishableKey, isValidSecretKey, needsStripeMethodExplicitConfirm, networkError, normalizeCheckoutFailureOutcome, normalizeGatewayEnvironment, partitionStripeMethods, randomUuidV4, rateLimitError, resolveAVSConfig, resolveBillingApiUrl, resolveButtonsLayoutTheme, resolveIdempotencyKey, resolveSessionCurrency, resolveStripeMethodBrandVariant, resolveTheme, serializeTelemetryBatch, stripeExpressMethodToOptionKey, telemetryStatusClass, validationError };
|
|
2501
|
+
export { type AVSFieldConfig, 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, COUNTRY_OPTIONS, CURRENCY_MAP, type CaptureMethod, type CardCaptureAdapter, type CardCaptureEventType, type CardCaptureMountOptions, type CardCaptureOutcomeEvent, type CardCaptureProviderId, type CheckoutAccount, type CheckoutButtonMethod, type CheckoutDisplayData, type CheckoutFailureOutcome, type CheckoutGateway, type CheckoutGateways, type CheckoutItem, 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 ConfirmPaymentParams, type CountryOption, 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, ELEMENT_TYPES, type ElementChangeEvent, type ElementOptions, type ElementType, FLAT_APPEARANCE, FLO_SDK_VERSION_HEADER, 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, MAX_IDEMPOTENCY_KEY_LENGTH, MODERN_DARK_APPEARANCE, MODERN_LIGHT_APPEARANCE, type MountedElement, NIGHT_APPEARANCE, type NonCardPaymentMethodCategory, type NormalizedCheckoutSession, type NormalizedGatewayEnvironment, PAYPAL_VAULTED_PAYMENT_METHOD_TYPE, 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, SDK_VERSION, STRIPE_EXPRESS_METHODS, STRIPE_METHOD_AMOUNT_LIMITS, STRIPE_METHOD_COUNTRIES, STRIPE_METHOD_CURRENCIES, STRIPE_METHOD_MATRIX, SUPPORTED_CARD_BRANDS, type SavedCardDisplay, type SavedPaymentMethodStatus, type SentryEventLike, type SentryStackFrameLike, type SerializeTelemetryBatchOptions, type SessionIntent, type SessionIntentDeclineRequest, type StateOption, 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, type TagsData, type TelemetryBatchEnvelope, type TelemetryCheckoutMode, type TelemetryDurationMode, type TelemetryErrorCode, type TelemetryErrorEvent, type TelemetryEvent, type TelemetryEventClass, type TelemetryExpectedOutcome, type TelemetryExpectedOutcomeEvent, type TelemetryFailureCategory, type TelemetryLayout, type TelemetryLogEvent, type TelemetryLogName, type TelemetryPaymentMethodCategory, type TelemetryPerformanceEvent, type TelemetryProvider, type TelemetryProviderInput, type TelemetryRequestCategory, type TelemetrySdkPackage, type TelemetryStage, type TelemetryStatusClass, type ThemeBundle, type ThemeBundleId, type ThemeId, type TokenizedBody, US_STATES, UUID_V4, type UpdateCustomerParams, type VaultCaptureBlock, type VaultCaptureResultMessage, type VaultCardFieldKey, type VaultCardThemeColors, 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, isCardSetupCheckoutSession, isDetachedSessionEligible, isMoneySettledOutcome, isPostalCodeSupported, isSetupIntentClientSecret, isUuidV4, isValidPostalCode, isValidPublishableKey, isValidSecretKey, needsStripeMethodExplicitConfirm, networkError, normalizeCheckoutFailureOutcome, normalizeGatewayEnvironment, partitionStripeMethods, randomUuidV4, rateLimitError, resolveAVSConfig, resolveBillingApiUrl, resolveButtonsLayoutTheme, resolveIdempotencyKey, resolveSessionCurrency, resolveStripeMethodBrandVariant, resolveTheme, serializeTelemetryBatch, stripeExpressMethodToOptionKey, telemetryStatusClass, validationError };
|
package/dist/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function Ne(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}}function De(e){return e.checkoutMode==="setup"&&e.amount===0&&(e.products?.length??0)===0}var c=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,Object.setPrototypeOf(this,new.target.prototype)}};function Le(e,t){return new c(e,"validation_error",{param:t})}function Oe(e,t,r){return new c(e,"api_error",{code:t,statusCode:r})}function Ue(e){return new c(e,"authentication_error")}function we(e){return new c(e,"rate_limit_error")}function Ge(e){return new c(e,"network_error")}var Ke=/(?:^|\/)dahlia\/stripe\.js(?:$|[?#])/i,Ve=/^dahlia\/stripe$/i,Ye=/^(?:chrome|moz|safari-web)-extension:\/\//i,ze=/^@flopay(?:\/|$)/i;function K(e){return Ke.test(e)||Ye.test(e)}function He(e){let t=[e.filename,e.abs_path].filter(r=>r!==void 0&&r!=="<anonymous>");return e.module!==void 0&&ze.test(e.module)||t.some(r=>!K(r))?"first-party":e.module!==void 0&&Ve.test(e.module)||t.some(K)?"third-party-hosted":t.length===0?"injected":"first-party"}function qe(e){let t=e.exception?.values;if(!t?.length)return e;let r=[];for(let n of t){let s=n.stacktrace?.frames;if(!s?.length)return e;r.push(...s)}let o=r.map(He);return!o.includes("first-party")&&o.includes("third-party-hosted")?null:e}var We=1,V=["@flopay/shared","@flopay/js","@flopay/react"],je=32768,Ze=20,Xe=["stripe","paypal"],$e=["card","wallet","paypal","apm","saved","unknown"],Je=["callback","sdk_initialize","checkout_mount","session_create","session_shell","session_claim","session_read","session_first_byte","session_complete","checkout_data_ready","checkout_render","checkout_interactive","provider_load","provider_ready","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"],Y=["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"],z=["server_error","transport_error","invalid_response","provider_runtime"],H=["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.interactive","checkout.recovery.started","checkout.recovery.completed","checkout.unmount","provider.load.started","provider.eligibility.checked","provider.availability.checked","provider.ready","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.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"],Qe=["session_create","session_claim","session_read","intent_create","process_payment","vault_capture","account_snapshot","provider_sdk","other"],et=["2xx","3xx","4xx","5xx","network_error","timeout","unknown"],tt=["full","auto","confirm","setup","unknown"],rt=["embedded","buttons","automatic","unknown"],ot=["machine","buyer","total"],nt=["action_required","card_setup_declined","card_setup_succeeded","customer_abandoned","payment_cancelled","payment_declined","payment_authorized","payment_succeeded","validation_rejected"],q=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,at=/^\d{1,4}\.\d{1,4}\.\d{1,4}(?:-[0-9A-Za-z.-]{1,32})?$/,it=new Set(Y),st=new Set(z),F=new Set(Je),dt=new Set(Xe),ut=new Set($e),ct=new Set(H),lt=new Set(tt),pt=new Set(rt),mt=new Set(Qe),gt=new Set(et),yt=new Set(ot),Ct=new Set(nt),Et=new Set(V),W=12e4;function l(e,t,r){return typeof e=="string"&&t.has(e)?e:r}function Ft(){try{let r=globalThis.crypto.randomUUID();if(q.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]&15|64,e[8]=e[8]&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 y(e){return typeof e=="string"&&q.test(e)?e:Ft()}function ft(e){return typeof e=="number"&&Number.isInteger(e)&&e>=0&&e<=100?e:void 0}function f(e){return Number.isSafeInteger(e)&&e>=0?Math.min(e,1e6):0}function bt(e){return!Number.isFinite(e)||e<0?0:Math.min(Math.round(e),W)}function xt(e){return Number.isFinite(e)&&e>W}function b(e,t){let r=ft(t.attempt);return t.provider&&dt.has(t.provider)&&(e.provider=t.provider),r!==void 0&&(e.attempt=r),t.statusClass&&(e.statusClass=l(t.statusClass,gt,"unknown")),t.requestCategory&&(e.requestCategory=l(t.requestCategory,mt,"other")),t.paymentMethodCategory&&(e.paymentMethodCategory=l(t.paymentMethodCategory,ut,"unknown")),t.checkoutMode&&(e.checkoutMode=l(t.checkoutMode,lt,"unknown")),t.layout&&(e.layout=l(t.layout,pt,"unknown")),e}function j(e){let t=b({eventId:y(e.eventId),class:"technical_error",code:l(e.errorCode,it,"INTERNAL_SDK_ERROR"),stage:l(e.stage,F,"sdk_initialize"),sequence:f(e.sequence)},e);return e.failureCategory&&st.has(e.failureCategory)&&(t.failureCategory=e.failureCategory),t}function Z(e){return b({eventId:y(e.eventId),class:"lifecycle",name:l(e.name,ct,"operation.retry"),stage:l(e.stage,F,"sdk_initialize"),sequence:f(e.sequence)},e)}function X(e){let t={...e,stage:e.stage??"completion"};return b({eventId:y(e.eventId),class:"expected_outcome",outcome:l(e.outcome,Ct,"customer_abandoned"),stage:l(e.stage,F,"completion"),sequence:f(e.sequence)},t)}function $(e){let t=b({eventId:y(e.eventId),class:"performance",stage:l(e.stage,F,"sdk_initialize"),sequence:f(e.sequence),durationMs:bt(e.durationMs),durationMode:l(e.durationMode,yt,"machine")},e);return(e.durationTruncated===!0||xt(e.durationMs))&&(t.durationTruncated=!0),t}function ht(e,t){let r=e.slice(0,20).flatMap(n=>n.class==="technical_error"?[j({...n,errorCode:n.code})]:n.class==="lifecycle"?[Z(n)]:n.class==="expected_outcome"?[X(n)]:n.class==="performance"?[$(n)]:[]),o={schemaVersion:1,batchId:y(t.batchId),correlationId:y(t.correlationId),sdk:{package:l(t.sdkPackage,Et,"@flopay/shared"),version:at.test(t.sdkVersion)?t.sdkVersion:"0.0.0"},events:r};return JSON.stringify(o)}var St=new Set(["InvalidCheckoutSessionResponse","InvalidPaymentProcessResponse","InvalidSessionIntentResponse"]);function Tt(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 At(e,t,r="network_error"){if(e instanceof c&&e.code!==void 0&&St.has(e.code))return{errorCode:t,statusClass:T(e.statusCode,"unknown"),failureCategory:"invalid_response"};if(e instanceof Error&&(e.name==="AbortError"||e instanceof c&&e.code==="checkout_processing_timeout"))return{errorCode:"REQUEST_TIMEOUT",statusClass:"timeout",failureCategory:"transport_error"};if(e instanceof TypeError||e instanceof c&&e.type==="network_error")return{errorCode:"NETWORK_REQUEST_FAILED",statusClass:"network_error",failureCategory:"transport_error"};let o=T(e instanceof c?e.statusCode:void 0,r);return{errorCode:t,statusClass:o,...o==="5xx"?{failureCategory:"server_error"}:{}}}function T(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"}var It={local:"https://flo.ngrok.pro",staging:"https://api.stage.flopay.com",production:"https://api.flopay.com"},A="staging";function _t(e){A=e.environment}function I(){return It[A]}function Rt(){return A}var J=["alipay","bancontact","blik","eps","giropay","ideal","klarna","p24","sepa_debit","wechat_pay"];var Pt="1.4.21",kt="x-flo-sdk-version",x="https://api.stage.flopay.com",te="https://api.flopay.com",Bt=x,vt=x;function Mt(e){return e||(typeof process<"u"&&process.env?.NEXT_PUBLIC_FLOPAY_ENV?process.env.NEXT_PUBLIC_FLOPAY_ENV==="production"?te:x:I())}var Nt="2024-01-01",re={theme:"default",variables:{colorPrimary:"#4A49FF",colorBackground:"#FFFFFF",colorText:"#262833",colorDanger:"#DF1B41",borderRadius:"8px",fontFamily:"Poppins, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"4px"}},Dt={theme:"flat",variables:{...re.variables,borderRadius:"4px"}},Lt={theme:"night",variables:{colorPrimary:"#7B7BFF",colorBackground:"#1A1A2E",colorText:"#E0E0E0",colorDanger:"#FF6B6B",borderRadius:"8px",fontFamily:"Poppins, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"4px"}},oe={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"}}},ne={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"}}},ae={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"}}},ie={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"}}},se={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)"}}},de={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)"}}},ue={},ce={cardButton:{border:"none",backgroundColor:"#f9fafb",boxShadow:"none"},cardFormContainer:{backgroundColor:"#f9fafb",border:"none"},cardInputBorder:"#e5e7eb",backButtonIcon:{backgroundColor:"#e5e7eb"},submitButton:{borderRadius:"6px"}},le={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"}},pe={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"}},_={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"}},P={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"}},B={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)"}},v={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 Ot(e){switch(e){case"minimal":return ce;case"rounded":return le;case"dark":return pe;case"modern-light":return _;case"modern-dark":return R;case"bold-light":return P;case"bold-dark":return k;case"glass-light":return B;case"glass-dark":return v;default:return ue}}var me={"modern-light":{appearance:oe,buttonsLayout:_},"modern-dark":{appearance:ne,buttonsLayout:R},"bold-light":{appearance:ae,buttonsLayout:P},"bold-dark":{appearance:ie,buttonsLayout:k},"glass-light":{appearance:se,buttonsLayout:B},"glass-dark":{appearance:de,buttonsLayout:v}};function Ut(e){if(!(!e||e==="classic"))return me[e]}function wt(e){switch(e){case"apple_pay":return"applePay";case"google_pay":return"googlePay";case"amazon_pay":return"amazonPay";default:return e}}function i(e,t,r){return`<svg viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><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="-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif" fill="${r}">${e}</text></svg>`}function Q(e,t){return`<svg viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><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>`}var ge=["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"],Gt=[...ge,"JP","MX","US"],g={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:{light:{backgroundColor:"#FFB3C7",textColor:"#0A0B09",borderColor:"#FFB3C7",logoSvg:i("K","#0A0B09","#FFB3C7")},dark:{backgroundColor:"#FFB3C7",textColor:"#0A0B09",borderColor:"#FFB3C7",logoSvg:i("K","#0A0B09","#FFB3C7")}}},affirm:{displayName:"Affirm",currencies:["usd"],countries:["US","CA"],amounts:{usd:{min:3500,max:3e6}},needsExplicitConfirm:!1,theme:{light:{backgroundColor:"#060F33",textColor:"#FFFFFF",borderColor:"#060F33",logoSvg:i("a","#FFFFFF","#060F33")},dark:{backgroundColor:"#0FA0EA",textColor:"#060F33",borderColor:"#0FA0EA",logoSvg:i("a","#060F33","#FFFFFF")}}},cashapp:{displayName:"Cash App Pay",currencies:["usd"],countries:["US"],amounts:{usd:{min:50,max:99999999}},needsExplicitConfirm:!1,theme:{light:{backgroundColor:"#00D54B",textColor:"#0A1F0E",borderColor:"#00D54B",logoSvg:i("$","#0A1F0E","#00D54B")},dark:{backgroundColor:"#00D54B",textColor:"#0A1F0E",borderColor:"#00D54B",logoSvg:i("$","#0A1F0E","#00D54B")}}},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:{light:{backgroundColor:"#B2FCE4",textColor:"#0A0B09",borderColor:"#B2FCE4",logoSvg:i("A","#0A0B09","#B2FCE4")},dark:{backgroundColor:"#B2FCE4",textColor:"#0A0B09",borderColor:"#B2FCE4",logoSvg:i("A","#0A0B09","#B2FCE4")}}},alipay:{displayName:"Alipay",currencies:["usd","cny"],theme:{light:{backgroundColor:"#1677FF",textColor:"#FFFFFF",borderColor:"#1677FF",logoSvg:i("A","#FFFFFF","#1677FF")},dark:{backgroundColor:"#1677FF",textColor:"#FFFFFF",borderColor:"#1677FF",logoSvg:i("A","#FFFFFF","#1677FF")}}},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:{light:{backgroundColor:"#FFDD55",textColor:"#1E3791",borderColor:"#FFDD55",logoSvg:i("B","#1E3791","#FFDD55")},dark:{backgroundColor:"#1E3791",textColor:"#FFDD55",borderColor:"#1E3791",logoSvg:i("B","#FFDD55","#1E3791")}}},bizum:{displayName:"Bizum",currencies:["eur"],countries:["ES"],theme:{light:{backgroundColor:"#00BFB3",textColor:"#FFFFFF",borderColor:"#00BFB3",logoSvg:i("B","#FFFFFF","#00BFB3")},dark:{backgroundColor:"#00BFB3",textColor:"#FFFFFF",borderColor:"#00BFB3",logoSvg:i("B","#FFFFFF","#00BFB3")}}},blik:{displayName:"BLIK",currencies:["pln"],countries:["PL"],theme:{light:{backgroundColor:"#000000",textColor:"#FFFFFF",borderColor:"#000000",logoSvg:i("B","#FFFFFF","#000000")},dark:{backgroundColor:"#FFFFFF",textColor:"#000000",borderColor:"#FFFFFF",logoSvg:i("B","#000000","#FFFFFF")}}},boleto:{displayName:"Boleto",currencies:["brl"],countries:["BR"]},customer_balance:{displayName:"Bank Transfer",currencies:["eur","usd"],countries:Gt,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:{light:{backgroundColor:"#C8102E",textColor:"#FFFFFF",borderColor:"#C8102E",logoSvg:i("E","#FFFFFF","#C8102E")},dark:{backgroundColor:"#C8102E",textColor:"#FFFFFF",borderColor:"#C8102E",logoSvg:i("E","#FFFFFF","#C8102E")}}},giropay:{displayName:"Giropay",currencies:["eur"],countries:["DE"],theme:{light:{backgroundColor:"#0F4197",textColor:"#FFFFFF",borderColor:"#0F4197",logoSvg:i("G","#FFFFFF","#0F4197")},dark:{backgroundColor:"#0F4197",textColor:"#FFFFFF",borderColor:"#0F4197",logoSvg:i("G","#FFFFFF","#0F4197")}}},ideal:{displayName:"iDEAL",currencies:["eur"],countries:["NL"],theme:{light:{backgroundColor:"#CC0066",textColor:"#FFFFFF",borderColor:"#CC0066",logoSvg:i("i","#FFFFFF","#CC0066")},dark:{backgroundColor:"#CC0066",textColor:"#FFFFFF",borderColor:"#CC0066",logoSvg:i("i","#FFFFFF","#CC0066")}}},konbini:{displayName:"Konbini",currencies:["jpy"],countries:["JP"]},kr_card:{displayName:"Korean Card",currencies:["krw"],countries:["KR"],theme:{light:{backgroundColor:"#0B3D91",textColor:"#FFFFFF",borderColor:"#0B3D91",logoSvg:i("K","#FFFFFF","#0B3D91")},dark:{backgroundColor:"#0B3D91",textColor:"#FFFFFF",borderColor:"#0B3D91",logoSvg:i("K","#FFFFFF","#0B3D91")}}},multibanco:{displayName:"Multibanco",currencies:["eur"],countries:["PT"]},oxxo:{displayName:"OXXO",currencies:["mxn"],countries:["MX"]},p24:{displayName:"Przelewy24",currencies:["eur","pln"],countries:["PL"],theme:{light:{backgroundColor:"#D90F1B",textColor:"#FFFFFF",borderColor:"#D90F1B",logoSvg:i("P","#FFFFFF","#D90F1B")},dark:{backgroundColor:"#D90F1B",textColor:"#FFFFFF",borderColor:"#D90F1B",logoSvg:i("P","#FFFFFF","#D90F1B")}}},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:ge,theme:{light:{backgroundColor:"#10298E",textColor:"#FFFFFF",borderColor:"#10298E",logoSvg:i("\u20AC","#FFFFFF","#10298E")},dark:{backgroundColor:"#3056D3",textColor:"#FFFFFF",borderColor:"#3056D3",logoSvg:i("\u20AC","#FFFFFF","#3056D3")}}},sofort:{displayName:"Sofort",currencies:["eur"],countries:["AT","BE","DE","ES","IT","NL"],theme:{light:{backgroundColor:"#EF809F",textColor:"#FFFFFF",borderColor:"#EF809F",logoSvg:i("S","#FFFFFF","#EF809F")},dark:{backgroundColor:"#EF809F",textColor:"#FFFFFF",borderColor:"#EF809F",logoSvg:i("S","#FFFFFF","#EF809F")}}},upi:{displayName:"UPI",currencies:["inr"],countries:["IN"],theme:{light:{backgroundColor:"#FF7909",textColor:"#FFFFFF",borderColor:"#FF7909",logoSvg:i("U","#FFFFFF","#FF7909")},dark:{backgroundColor:"#FF7909",textColor:"#FFFFFF",borderColor:"#FF7909",logoSvg:i("U","#FFFFFF","#FF7909")}}},us_bank_account:{displayName:"US Bank Account",currencies:["usd"],countries:["US"]},wechat_pay:{displayName:"WeChat Pay",currencies:["usd","cny"],theme:{light:{backgroundColor:"#07C160",textColor:"#FFFFFF",borderColor:"#07C160",logoSvg:i("W","#FFFFFF","#07C160")},dark:{backgroundColor:"#07C160",textColor:"#FFFFFF",borderColor:"#07C160",logoSvg:i("W","#FFFFFF","#07C160")}}},zip:{displayName:"Zip",currencies:["aud"],countries:["AU","NZ"]}};function Kt(e){return e?J.includes(e):!1}var ye=Object.entries(g).filter(([,e])=>e.express).map(([e])=>e),Vt=new Set(ye),Ce=Object.fromEntries(Object.entries(g).map(([e,t])=>[e,t.currencies])),Ee=Object.fromEntries(Object.entries(g).filter(([,e])=>e.countries).map(([e,t])=>[e,t.countries]));function Yt(e){if(!e)return"this method";let t=g[e];return t?t.displayName:e.split("_").filter(Boolean).map(r=>r.charAt(0).toUpperCase()+r.slice(1)).join(" ")}function zt(e){if(!e)return!0;let t=g[e];return t?t.needsExplicitConfirm!==!1:!0}function Ht(e,t){if(!e)return null;let r=g[e];return r?.theme?(typeof t=="string"&&t.endsWith("-dark")?r.theme.dark:r.theme.light)??r.theme.light??null:null}function qt(e,t){if(!e?.length)return[];if(!t)return[...e];let r=t.trim().toLowerCase();return r?e.filter(o=>{let n=Ce[o];return n?n.includes("*")||n.includes(r):!0}):[...e]}function Wt(e,t){if(!e?.length)return[];if(!t)return[...e];let r=t.trim().toUpperCase();return r?e.filter(o=>{let n=Ee[o];return n?n.includes("*")||n.includes(r):!0}):[...e]}var Fe=Object.fromEntries(Object.entries(g).filter(([,e])=>e.amounts).map(([e,t])=>[e,t.amounts]));function jt(e,t,r){if(!e?.length)return[];if(!t||typeof r!="number"||!Number.isFinite(r))return[...e];let o=t.trim().toLowerCase();return o?e.filter(n=>{let s=Fe[n];if(!s)return!0;let u=s[o];return u?!(typeof u.min=="number"&&r<u.min||typeof u.max=="number"&&r>u.max):!0}):[...e]}function Zt(e,t){if(!e?.length)return{expressMethods:[],paymentElementMethods:[]};let r=[],o=[],n=new Set,s=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(Vt.has(p)){if(n.has(p))continue;n.add(p),r.push(p)}else{if(s.has(p))continue;s.add(p),o.push(p)}}return{expressMethods:r,paymentElementMethods:o}}var Xt=["payment","address"],$t=["visa","mastercard","mastercard_debit","amex","discover"],M={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}},N={currency:"USD",symbol:"$",country:"United States",countryCode:"US",tax:0};function Jt(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 Qt=new Intl.DisplayNames(["en"],{type:"region"});function er(e){return[...e.toUpperCase()].map(t=>String.fromCodePoint(127397+t.charCodeAt(0))).join("")}var fe=["US","GB","CA","AU","NZ","IE","DE","FR"],tr=["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 ee(e){return{code:e,name:Qt.of(e)??e,flag:er(e)}}var rr=new Set(fe),or=tr.filter(e=>!rr.has(e)),be=[...fe.map(ee),...or.map(ee)];function nr(e){return be.find(t=>t.code===e)}var ar={country:!0,postal_code:!0};function xe(e){return e?e===!0?ar:e:null}function ir(e,t){if(e===void 0||e===!1)return!1;if(e===!0)return!0;let r=t.trim().toUpperCase();return e.some(o=>o.trim().toUpperCase()===r)}function sr(e){let t=xe(e);return t?Object.values(t).some(r=>r===!0||Array.isArray(r)&&r.length>0):!1}var he=[{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 dr(e){switch(e.toUpperCase()){case"US":return he;case"CA":return Se;default:return null}}function ur(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"}}var cr=[[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"]],lr={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 pr(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,s]of cr)if(r>=o&&r<=n)return s;return null}function mr(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 lr[r]??null}function gr(e,t){if(!e||!t)return null;let r=e.trim().toUpperCase(),o=t.trim();if(!o)return null;switch(r){case"US":return pr(o);case"CA":return mr(o);default:return null}}import*as yr from"validator/lib/isPostalCode.js";var h=yr,Te=typeof h.default=="function"?h.default:h.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 Ae=new Set(h.locales.map(e=>e.toUpperCase())),Cr={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 D(e){let t=(e??"").trim().toUpperCase();return t?t.length===2?t:Cr[t]??null:null}var Er={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 Fr(e){let t=D(e);return t!==null&&Ae.has(t)}function fr(e,t){let r=(t??"").trim();if(!r)return!0;let o=D(e);if(o===null||!Ae.has(o))return!0;try{return Te(r,o)}catch{return!0}}function br(e){let t=D(e);return t?Er[t]:void 0}function xr(e){if(!(e.captureMethod!=="manual"||!(e.products??Ie(e.items,e.subscriptions)).some(r=>r.type==="subscription")))throw new c("Manual capture is not supported for subscription products.","validation_error",{code:"CaptureMethodUnsupportedForSubscription",param:"captureMethod"})}function hr(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 L(e,t,r,o){let n=a(e);if(n)return n;for(let s of t??[]){let u=a(s.currency);if(u)return u}for(let s of r??[]){let u=a(s.currency);if(u)return u}for(let s of o??[]){let u=a(s.currency);if(u)return u}return null}function Ie(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 Sr(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 Tr(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 Ar(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}function Ir(e,t={}){let r=[],o=e.products??[],n=o.filter(d=>d.type==="subscription"),s=o.filter(d=>d.type!=="subscription"),p=(L(e.currency,void 0,void 0,o)??"USD").toUpperCase();for(let d of n){let m=d.totalAmount??0,E=d.overrideAmount??m,S=d.name||d.code||"Subscription";S==="4-WEEK PLAN"&&E<=1&&(S="7-DAY TRIAL: FULL ACCESS"),r.push({name:S,quantity:d.quantity,price:E,originalPrice:m})}if(!(t.hideBundledItems===!0&&n.length>0&&s.length>0))for(let d of s){let m=d.totalAmount??0,E=d.overrideAmount??m;r.push({name:d.name||d.code||"Item",quantity:d.quantity,price:E,originalPrice:m})}r.length===0&&r.push({name:"Purchase",quantity:1,price:e.amount/100,originalPrice:e.amount/100});let Re=r.reduce((d,m)=>d+m.originalPrice*m.quantity,0),Pe=r.reduce((d,m)=>d+m.price*m.quantity,0),ke=typeof e.totalAmount=="number"&&Number.isFinite(e.totalAmount),Be=typeof e.subtotalAmount=="number"&&Number.isFinite(e.subtotalAmount),ve=typeof e.discountAmount=="number"&&Number.isFinite(e.discountAmount),w=ke?e.totalAmount:Pe,C=Be?e.subtotalAmount:Re,G=Math.max(0,C-w),Me=C>0?Math.round(G/C*100):0;return{items:r,currency:p,total:w,originalTotal:C,totalSave:G,discountPercent:Me,...ve?{couponDiscount:e.discountAmount}:{}}}function _r(e){return e?.captureMethod==="manual"}function Rr(e,t){return e==="requires_capture"?t!=="manual":e==="succeeded"||e==="complete"||e==="completed"||e==="captured"||e==="paid"}function Pr(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"}function kr(e){return M[e.toUpperCase()]??N}function Br(e){return/^pk_(test|live)_[A-Za-z0-9]+$/.test(e)}function vr(e){return/^sk_(test|live)_[A-Za-z0-9]+$/.test(e)}function Mr(e){return typeof e=="string"&&e.startsWith("seti_")}var Nr="Idempotency-Key",O=255,Dr="IdempotencyKeyInProgress";function Lr(){let e=globalThis.crypto;if(e&&(typeof e.randomUUID=="function"||typeof e.getRandomValues=="function"))return e}function _e(){let e=Lr();if(!e)return;if(typeof e.randomUUID=="function")return e.randomUUID();let t=new Uint8Array(16);return e.getRandomValues(t),Array.from(t,r=>r.toString(16).padStart(2,"0")).join("")}function Or(e){if(e===void 0)return _e();if(typeof e!="string"||e.trim()==="")throw new c("idempotencyKey must be a non-empty string identifying exactly one checkout creation.","validation_error",{code:"InvalidIdempotencyKey",param:"idempotencyKey"});if(e.length>O)throw new c(`idempotencyKey must be at most ${O} characters.`,"validation_error",{code:"InvalidIdempotencyKey",param:"idempotencyKey"});return e}var U=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function Ur(e){return typeof e=="string"&&U.test(e)}function wr(){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]&15|64,e[8]=e[8]&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)}`}export{vt as BILLING_API_URL,te as BILLING_API_URL_PRODUCTION,x as BILLING_API_URL_STAGING,ie as BOLD_DARK_APPEARANCE,ae as BOLD_LIGHT_APPEARANCE,k as BUTTONS_LAYOUT_BOLD_DARK,P as BUTTONS_LAYOUT_BOLD_LIGHT,pe as BUTTONS_LAYOUT_DARK,ue as BUTTONS_LAYOUT_DEFAULT,v as BUTTONS_LAYOUT_GLASS_DARK,B as BUTTONS_LAYOUT_GLASS_LIGHT,ce as BUTTONS_LAYOUT_MINIMAL,R as BUTTONS_LAYOUT_MODERN_DARK,_ as BUTTONS_LAYOUT_MODERN_LIGHT,le as BUTTONS_LAYOUT_ROUNDED,Se as CA_PROVINCES,be as COUNTRY_OPTIONS,M as CURRENCY_MAP,Bt as DEFAULT_API_BASE_URL,Nt as DEFAULT_API_VERSION,re as DEFAULT_APPEARANCE,N as DEFAULT_CURRENCY,Xt as ELEMENT_TYPES,Dt as FLAT_APPEARANCE,kt as FLO_SDK_VERSION_HEADER,c as FloPayError,de as GLASS_DARK_APPEARANCE,se as GLASS_LIGHT_APPEARANCE,Dr as IDEMPOTENCY_IN_PROGRESS_CODE,Nr as IDEMPOTENCY_KEY_HEADER,O as MAX_IDEMPOTENCY_KEY_LENGTH,ne as MODERN_DARK_APPEARANCE,oe as MODERN_LIGHT_APPEARANCE,Lt as NIGHT_APPEARANCE,Pt as SDK_VERSION,ye as STRIPE_EXPRESS_METHODS,Fe as STRIPE_METHOD_AMOUNT_LIMITS,Ee as STRIPE_METHOD_COUNTRIES,Ce as STRIPE_METHOD_CURRENCIES,g as STRIPE_METHOD_MATRIX,$t as SUPPORTED_CARD_BRANDS,Y as TELEMETRY_ERROR_CODES,z as TELEMETRY_FAILURE_CATEGORIES,H as TELEMETRY_LOG_NAMES,je as TELEMETRY_MAX_BATCH_BYTES,Ze as TELEMETRY_MAX_BATCH_EVENTS,We as TELEMETRY_SCHEMA_VERSION,V as TELEMETRY_SDK_PACKAGES,me as THEMES,he as US_STATES,U as UUID_V4,Oe as apiError,xr as assertCaptureMethodEligible,Ue as authenticationError,Ir as buildCheckoutDisplayData,Tr as buildItemPayload,Sr as buildProductPayload,Ar as buildSubscriptionPayload,j as buildTelemetryErrorEvent,Z as buildTelemetryLogEvent,$ as buildTelemetryPerformanceEvent,X as buildTelemetryTerminalEvent,Tt as classifyPaymentRejection,At as classifyTelemetryFailure,_t as configureFlopay,qe as dropThirdPartyOnlyError,jt as filterStripeMethodsByAmount,Wt as filterStripeMethodsByCountry,qt as filterStripeMethodsByCurrency,Ie as foldIntoProducts,_e as generateIdempotencyKey,I as getConfiguredBillingApiUrl,nr as getCountryByCode,kr as getCurrencyByCountry,Rt as getFloPayEnvironment,br as getPostalCodeExample,Jt as getPostalCodeLabel,gr as getStateFromPostalCode,ur as getStateLabel,dr as getStateOptions,Yt as getStripeMethodDisplayName,Kt as hasVendoredStripeMethodLogo,sr as isAVSEnabled,ir as isAVSFieldVisible,_r as isAuthorizationOnlySession,De as isCardSetupCheckoutSession,hr as isDetachedSessionEligible,Rr as isMoneySettledOutcome,Fr as isPostalCodeSupported,Mr as isSetupIntentClientSecret,Ur as isUuidV4,fr as isValidPostalCode,Br as isValidPublishableKey,vr as isValidSecretKey,zt as needsStripeMethodExplicitConfirm,Ge as networkError,Pr as normalizeCheckoutFailureOutcome,Ne as normalizeGatewayEnvironment,Zt as partitionStripeMethods,wr as randomUuidV4,we as rateLimitError,xe as resolveAVSConfig,Mt as resolveBillingApiUrl,Ot as resolveButtonsLayoutTheme,Or as resolveIdempotencyKey,L as resolveSessionCurrency,Ht as resolveStripeMethodBrandVariant,Ut as resolveTheme,ht as serializeTelemetryBatch,wt as stripeExpressMethodToOptionKey,T as telemetryStatusClass,Le as validationError};
|
|
1
|
+
function Ne(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}}function De(e){return e.checkoutMode==="setup"&&e.amount===0&&(e.products?.length??0)===0}var c=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,Object.setPrototypeOf(this,new.target.prototype)}};function Le(e,t){return new c(e,"validation_error",{param:t})}function Oe(e,t,r){return new c(e,"api_error",{code:t,statusCode:r})}function Ue(e){return new c(e,"authentication_error")}function we(e){return new c(e,"rate_limit_error")}function Ge(e){return new c(e,"network_error")}var Ve=/(?:^|\/)dahlia\/stripe\.js(?:$|[?#])/i,Ke=/^dahlia\/stripe$/i,Ye=/^(?:chrome|moz|safari-web)-extension:\/\//i,ze=/^@flopay(?:\/|$)/i;function V(e){return Ve.test(e)||Ye.test(e)}function He(e){let t=[e.filename,e.abs_path].filter(r=>r!==void 0&&r!=="<anonymous>");return e.module!==void 0&&ze.test(e.module)||t.some(r=>!V(r))?"first-party":e.module!==void 0&&Ke.test(e.module)||t.some(V)?"third-party-hosted":t.length===0?"injected":"first-party"}function qe(e){let t=e.exception?.values;if(!t?.length)return e;let r=[];for(let n of t){let s=n.stacktrace?.frames;if(!s?.length)return e;r.push(...s)}let o=r.map(He);return!o.includes("first-party")&&o.includes("third-party-hosted")?null:e}var We=1,K=["@flopay/shared","@flopay/js","@flopay/react"],je=32768,Ze=20,Xe=["stripe","paypal"],$e=["card","wallet","paypal","apm","saved","unknown"],Je=["callback","sdk_initialize","checkout_mount","session_create","session_shell","session_claim","session_read","session_first_byte","session_complete","checkout_data_ready","checkout_render","checkout_interactive","provider_load","provider_ready","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"],Y=["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"],z=["server_error","transport_error","invalid_response","provider_runtime"],H=["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.interactive","checkout.recovery.started","checkout.recovery.completed","checkout.unmount","provider.load.started","provider.eligibility.checked","provider.availability.checked","provider.ready","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.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"],Qe=["session_create","session_claim","session_read","intent_create","process_payment","vault_capture","account_snapshot","provider_sdk","other"],et=["2xx","3xx","4xx","5xx","network_error","timeout","unknown"],tt=["full","auto","confirm","setup","unknown"],rt=["embedded","buttons","automatic","unknown"],ot=["machine","buyer","total"],nt=["action_required","card_setup_declined","card_setup_succeeded","customer_abandoned","payment_cancelled","payment_declined","payment_authorized","payment_succeeded","validation_rejected"],q=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,at=/^\d{1,4}\.\d{1,4}\.\d{1,4}(?:-[0-9A-Za-z.-]{1,32})?$/,it=new Set(Y),st=new Set(z),F=new Set(Je),dt=new Set(Xe),ut=new Set($e),ct=new Set(H),lt=new Set(tt),pt=new Set(rt),mt=new Set(Qe),yt=new Set(et),gt=new Set(ot),Ct=new Set(nt),Et=new Set(K),W=12e4;function l(e,t,r){return typeof e=="string"&&t.has(e)?e:r}function Ft(){try{let r=globalThis.crypto.randomUUID();if(q.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]&15|64,e[8]=e[8]&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"&&q.test(e)?e:Ft()}function ft(e){return typeof e=="number"&&Number.isInteger(e)&&e>=0&&e<=100?e:void 0}function f(e){return Number.isSafeInteger(e)&&e>=0?Math.min(e,1e6):0}function bt(e){return!Number.isFinite(e)||e<0?0:Math.min(Math.round(e),W)}function xt(e){return Number.isFinite(e)&&e>W}function b(e,t){let r=ft(t.attempt);return t.provider&&dt.has(t.provider)&&(e.provider=t.provider),r!==void 0&&(e.attempt=r),t.statusClass&&(e.statusClass=l(t.statusClass,yt,"unknown")),t.requestCategory&&(e.requestCategory=l(t.requestCategory,mt,"other")),t.paymentMethodCategory&&(e.paymentMethodCategory=l(t.paymentMethodCategory,ut,"unknown")),t.checkoutMode&&(e.checkoutMode=l(t.checkoutMode,lt,"unknown")),t.layout&&(e.layout=l(t.layout,pt,"unknown")),e}function j(e){let t=b({eventId:g(e.eventId),class:"technical_error",code:l(e.errorCode,it,"INTERNAL_SDK_ERROR"),stage:l(e.stage,F,"sdk_initialize"),sequence:f(e.sequence)},e);return e.failureCategory&&st.has(e.failureCategory)&&(t.failureCategory=e.failureCategory),t}function Z(e){return b({eventId:g(e.eventId),class:"lifecycle",name:l(e.name,ct,"operation.retry"),stage:l(e.stage,F,"sdk_initialize"),sequence:f(e.sequence)},e)}function X(e){let t={...e,stage:e.stage??"completion"};return b({eventId:g(e.eventId),class:"expected_outcome",outcome:l(e.outcome,Ct,"customer_abandoned"),stage:l(e.stage,F,"completion"),sequence:f(e.sequence)},t)}function $(e){let t=b({eventId:g(e.eventId),class:"performance",stage:l(e.stage,F,"sdk_initialize"),sequence:f(e.sequence),durationMs:bt(e.durationMs),durationMode:l(e.durationMode,gt,"machine")},e);return(e.durationTruncated===!0||xt(e.durationMs))&&(t.durationTruncated=!0),t}function ht(e,t){let r=e.slice(0,20).flatMap(n=>n.class==="technical_error"?[j({...n,errorCode:n.code})]:n.class==="lifecycle"?[Z(n)]:n.class==="expected_outcome"?[X(n)]:n.class==="performance"?[$(n)]:[]),o={schemaVersion:1,batchId:g(t.batchId),correlationId:g(t.correlationId),sdk:{package:l(t.sdkPackage,Et,"@flopay/shared"),version:at.test(t.sdkVersion)?t.sdkVersion:"0.0.0"},events:r};return JSON.stringify(o)}var St=new Set(["InvalidCheckoutSessionResponse","InvalidPaymentProcessResponse","InvalidSessionIntentResponse"]);function Tt(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 At(e,t,r="network_error"){if(e instanceof c&&e.code!==void 0&&St.has(e.code))return{errorCode:t,statusClass:T(e.statusCode,"unknown"),failureCategory:"invalid_response"};if(e instanceof Error&&(e.name==="AbortError"||e instanceof c&&e.code==="checkout_processing_timeout"))return{errorCode:"REQUEST_TIMEOUT",statusClass:"timeout",failureCategory:"transport_error"};if(e instanceof TypeError||e instanceof c&&e.type==="network_error")return{errorCode:"NETWORK_REQUEST_FAILED",statusClass:"network_error",failureCategory:"transport_error"};let o=T(e instanceof c?e.statusCode:void 0,r);return{errorCode:t,statusClass:o,...o==="5xx"?{failureCategory:"server_error"}:{}}}function T(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"}var It={local:"https://flo.ngrok.pro",staging:"https://api.stage.flopay.com",production:"https://api.flopay.com"},A="staging";function Pt(e){A=e.environment}function I(){return It[A]}function _t(){return A}var J=["alipay","bancontact","blik","eps","giropay","ideal","klarna","p24","sepa_debit","wechat_pay"];var Rt="1.6.0",kt="x-flo-sdk-version",vt="paypal_vaulted",x="https://api.stage.flopay.com",te="https://api.flopay.com",Bt=x,Mt=x;function Nt(e){return e||(typeof process<"u"&&process.env?.NEXT_PUBLIC_FLOPAY_ENV?process.env.NEXT_PUBLIC_FLOPAY_ENV==="production"?te:x:I())}var Dt="2024-01-01",re={theme:"default",variables:{colorPrimary:"#4A49FF",colorBackground:"#FFFFFF",colorText:"#262833",colorDanger:"#DF1B41",borderRadius:"8px",fontFamily:"Poppins, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"4px"}},Lt={theme:"flat",variables:{...re.variables,borderRadius:"4px"}},Ot={theme:"night",variables:{colorPrimary:"#7B7BFF",colorBackground:"#1A1A2E",colorText:"#E0E0E0",colorDanger:"#FF6B6B",borderRadius:"8px",fontFamily:"Poppins, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"4px"}},oe={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"}}},ne={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"}}},ae={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"}}},ie={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"}}},se={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)"}}},de={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)"}}},ue={},ce={cardButton:{border:"none",backgroundColor:"#f9fafb",boxShadow:"none"},cardFormContainer:{backgroundColor:"#f9fafb",border:"none"},cardInputBorder:"#e5e7eb",backButtonIcon:{backgroundColor:"#e5e7eb"},submitButton:{borderRadius:"6px"}},le={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"}},pe={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"}},P={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"}},_={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"}},R={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"}},v={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)"}},B={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 Ut(e){switch(e){case"minimal":return ce;case"rounded":return le;case"dark":return pe;case"modern-light":return P;case"modern-dark":return _;case"bold-light":return R;case"bold-dark":return k;case"glass-light":return v;case"glass-dark":return B;default:return ue}}var me={"modern-light":{appearance:oe,buttonsLayout:P},"modern-dark":{appearance:ne,buttonsLayout:_},"bold-light":{appearance:ae,buttonsLayout:R},"bold-dark":{appearance:ie,buttonsLayout:k},"glass-light":{appearance:se,buttonsLayout:v},"glass-dark":{appearance:de,buttonsLayout:B}};function wt(e){if(!(!e||e==="classic"))return me[e]}function Gt(e){switch(e){case"apple_pay":return"applePay";case"google_pay":return"googlePay";case"amazon_pay":return"amazonPay";default:return e}}function i(e,t,r){return`<svg viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><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="-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif" fill="${r}">${e}</text></svg>`}function Q(e,t){return`<svg viewBox="0 0 22 22" xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true"><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>`}var ye=["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"],Vt=[...ye,"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:{light:{backgroundColor:"#FFB3C7",textColor:"#0A0B09",borderColor:"#FFB3C7",logoSvg:i("K","#0A0B09","#FFB3C7")},dark:{backgroundColor:"#FFB3C7",textColor:"#0A0B09",borderColor:"#FFB3C7",logoSvg:i("K","#0A0B09","#FFB3C7")}}},affirm:{displayName:"Affirm",currencies:["usd"],countries:["US","CA"],amounts:{usd:{min:3500,max:3e6}},needsExplicitConfirm:!1,theme:{light:{backgroundColor:"#060F33",textColor:"#FFFFFF",borderColor:"#060F33",logoSvg:i("a","#FFFFFF","#060F33")},dark:{backgroundColor:"#0FA0EA",textColor:"#060F33",borderColor:"#0FA0EA",logoSvg:i("a","#060F33","#FFFFFF")}}},cashapp:{displayName:"Cash App Pay",currencies:["usd"],countries:["US"],amounts:{usd:{min:50,max:99999999}},needsExplicitConfirm:!1,theme:{light:{backgroundColor:"#00D54B",textColor:"#0A1F0E",borderColor:"#00D54B",logoSvg:i("$","#0A1F0E","#00D54B")},dark:{backgroundColor:"#00D54B",textColor:"#0A1F0E",borderColor:"#00D54B",logoSvg:i("$","#0A1F0E","#00D54B")}}},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:{light:{backgroundColor:"#B2FCE4",textColor:"#0A0B09",borderColor:"#B2FCE4",logoSvg:i("A","#0A0B09","#B2FCE4")},dark:{backgroundColor:"#B2FCE4",textColor:"#0A0B09",borderColor:"#B2FCE4",logoSvg:i("A","#0A0B09","#B2FCE4")}}},alipay:{displayName:"Alipay",currencies:["usd","cny"],theme:{light:{backgroundColor:"#1677FF",textColor:"#FFFFFF",borderColor:"#1677FF",logoSvg:i("A","#FFFFFF","#1677FF")},dark:{backgroundColor:"#1677FF",textColor:"#FFFFFF",borderColor:"#1677FF",logoSvg:i("A","#FFFFFF","#1677FF")}}},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:{light:{backgroundColor:"#FFDD55",textColor:"#1E3791",borderColor:"#FFDD55",logoSvg:i("B","#1E3791","#FFDD55")},dark:{backgroundColor:"#1E3791",textColor:"#FFDD55",borderColor:"#1E3791",logoSvg:i("B","#FFDD55","#1E3791")}}},bizum:{displayName:"Bizum",currencies:["eur"],countries:["ES"],theme:{light:{backgroundColor:"#00BFB3",textColor:"#FFFFFF",borderColor:"#00BFB3",logoSvg:i("B","#FFFFFF","#00BFB3")},dark:{backgroundColor:"#00BFB3",textColor:"#FFFFFF",borderColor:"#00BFB3",logoSvg:i("B","#FFFFFF","#00BFB3")}}},blik:{displayName:"BLIK",currencies:["pln"],countries:["PL"],theme:{light:{backgroundColor:"#000000",textColor:"#FFFFFF",borderColor:"#000000",logoSvg:i("B","#FFFFFF","#000000")},dark:{backgroundColor:"#FFFFFF",textColor:"#000000",borderColor:"#FFFFFF",logoSvg:i("B","#000000","#FFFFFF")}}},boleto:{displayName:"Boleto",currencies:["brl"],countries:["BR"]},customer_balance:{displayName:"Bank Transfer",currencies:["eur","usd"],countries:Vt,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:{light:{backgroundColor:"#C8102E",textColor:"#FFFFFF",borderColor:"#C8102E",logoSvg:i("E","#FFFFFF","#C8102E")},dark:{backgroundColor:"#C8102E",textColor:"#FFFFFF",borderColor:"#C8102E",logoSvg:i("E","#FFFFFF","#C8102E")}}},giropay:{displayName:"Giropay",currencies:["eur"],countries:["DE"],theme:{light:{backgroundColor:"#0F4197",textColor:"#FFFFFF",borderColor:"#0F4197",logoSvg:i("G","#FFFFFF","#0F4197")},dark:{backgroundColor:"#0F4197",textColor:"#FFFFFF",borderColor:"#0F4197",logoSvg:i("G","#FFFFFF","#0F4197")}}},ideal:{displayName:"iDEAL",currencies:["eur"],countries:["NL"],theme:{light:{backgroundColor:"#CC0066",textColor:"#FFFFFF",borderColor:"#CC0066",logoSvg:i("i","#FFFFFF","#CC0066")},dark:{backgroundColor:"#CC0066",textColor:"#FFFFFF",borderColor:"#CC0066",logoSvg:i("i","#FFFFFF","#CC0066")}}},konbini:{displayName:"Konbini",currencies:["jpy"],countries:["JP"]},kr_card:{displayName:"Korean Card",currencies:["krw"],countries:["KR"],theme:{light:{backgroundColor:"#0B3D91",textColor:"#FFFFFF",borderColor:"#0B3D91",logoSvg:i("K","#FFFFFF","#0B3D91")},dark:{backgroundColor:"#0B3D91",textColor:"#FFFFFF",borderColor:"#0B3D91",logoSvg:i("K","#FFFFFF","#0B3D91")}}},multibanco:{displayName:"Multibanco",currencies:["eur"],countries:["PT"]},oxxo:{displayName:"OXXO",currencies:["mxn"],countries:["MX"]},p24:{displayName:"Przelewy24",currencies:["eur","pln"],countries:["PL"],theme:{light:{backgroundColor:"#D90F1B",textColor:"#FFFFFF",borderColor:"#D90F1B",logoSvg:i("P","#FFFFFF","#D90F1B")},dark:{backgroundColor:"#D90F1B",textColor:"#FFFFFF",borderColor:"#D90F1B",logoSvg:i("P","#FFFFFF","#D90F1B")}}},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:ye,theme:{light:{backgroundColor:"#10298E",textColor:"#FFFFFF",borderColor:"#10298E",logoSvg:i("\u20AC","#FFFFFF","#10298E")},dark:{backgroundColor:"#3056D3",textColor:"#FFFFFF",borderColor:"#3056D3",logoSvg:i("\u20AC","#FFFFFF","#3056D3")}}},sofort:{displayName:"Sofort",currencies:["eur"],countries:["AT","BE","DE","ES","IT","NL"],theme:{light:{backgroundColor:"#EF809F",textColor:"#FFFFFF",borderColor:"#EF809F",logoSvg:i("S","#FFFFFF","#EF809F")},dark:{backgroundColor:"#EF809F",textColor:"#FFFFFF",borderColor:"#EF809F",logoSvg:i("S","#FFFFFF","#EF809F")}}},upi:{displayName:"UPI",currencies:["inr"],countries:["IN"],theme:{light:{backgroundColor:"#FF7909",textColor:"#FFFFFF",borderColor:"#FF7909",logoSvg:i("U","#FFFFFF","#FF7909")},dark:{backgroundColor:"#FF7909",textColor:"#FFFFFF",borderColor:"#FF7909",logoSvg:i("U","#FFFFFF","#FF7909")}}},us_bank_account:{displayName:"US Bank Account",currencies:["usd"],countries:["US"]},wechat_pay:{displayName:"WeChat Pay",currencies:["usd","cny"],theme:{light:{backgroundColor:"#07C160",textColor:"#FFFFFF",borderColor:"#07C160",logoSvg:i("W","#FFFFFF","#07C160")},dark:{backgroundColor:"#07C160",textColor:"#FFFFFF",borderColor:"#07C160",logoSvg:i("W","#FFFFFF","#07C160")}}},zip:{displayName:"Zip",currencies:["aud"],countries:["AU","NZ"]}};function Kt(e){return e?J.includes(e):!1}var ge=Object.entries(y).filter(([,e])=>e.express).map(([e])=>e),Yt=new Set(ge),Ce=Object.fromEntries(Object.entries(y).map(([e,t])=>[e,t.currencies])),Ee=Object.fromEntries(Object.entries(y).filter(([,e])=>e.countries).map(([e,t])=>[e,t.countries]));function zt(e){if(!e)return"this method";let t=y[e];return t?t.displayName:e.split("_").filter(Boolean).map(r=>r.charAt(0).toUpperCase()+r.slice(1)).join(" ")}function Ht(e){if(!e)return!0;let t=y[e];return t?t.needsExplicitConfirm!==!1:!0}function qt(e,t){if(!e)return null;let r=y[e];return r?.theme?(typeof t=="string"&&t.endsWith("-dark")?r.theme.dark:r.theme.light)??r.theme.light??null:null}function Wt(e,t){if(!e?.length)return[];if(!t)return[...e];let r=t.trim().toLowerCase();return r?e.filter(o=>{let n=Ce[o];return n?n.includes("*")||n.includes(r):!0}):[...e]}function jt(e,t){if(!e?.length)return[];if(!t)return[...e];let r=t.trim().toUpperCase();return r?e.filter(o=>{let n=Ee[o];return n?n.includes("*")||n.includes(r):!0}):[...e]}var Fe=Object.fromEntries(Object.entries(y).filter(([,e])=>e.amounts).map(([e,t])=>[e,t.amounts]));function Zt(e,t,r){if(!e?.length)return[];if(!t||typeof r!="number"||!Number.isFinite(r))return[...e];let o=t.trim().toLowerCase();return o?e.filter(n=>{let s=Fe[n];if(!s)return!0;let u=s[o];return u?!(typeof u.min=="number"&&r<u.min||typeof u.max=="number"&&r>u.max):!0}):[...e]}function Xt(e,t){if(!e?.length)return{expressMethods:[],paymentElementMethods:[]};let r=[],o=[],n=new Set,s=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(Yt.has(p)){if(n.has(p))continue;n.add(p),r.push(p)}else{if(s.has(p))continue;s.add(p),o.push(p)}}return{expressMethods:r,paymentElementMethods:o}}var $t=["payment","address"],Jt=["visa","mastercard","mastercard_debit","amex","discover"],M={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}},N={currency:"USD",symbol:"$",country:"United States",countryCode:"US",tax:0};function Qt(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 er=new Intl.DisplayNames(["en"],{type:"region"});function tr(e){return[...e.toUpperCase()].map(t=>String.fromCodePoint(127397+t.charCodeAt(0))).join("")}var fe=["US","GB","CA","AU","NZ","IE","DE","FR"],rr=["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 ee(e){return{code:e,name:er.of(e)??e,flag:tr(e)}}var or=new Set(fe),nr=rr.filter(e=>!or.has(e)),be=[...fe.map(ee),...nr.map(ee)];function ar(e){return be.find(t=>t.code===e)}var ir={country:!0,postal_code:!0};function xe(e){return e?e===!0?ir:e:null}function sr(e,t){if(e===void 0||e===!1)return!1;if(e===!0)return!0;let r=t.trim().toUpperCase();return e.some(o=>o.trim().toUpperCase()===r)}function dr(e){let t=xe(e);return t?Object.values(t).some(r=>r===!0||Array.isArray(r)&&r.length>0):!1}var he=[{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 ur(e){switch(e.toUpperCase()){case"US":return he;case"CA":return Se;default:return null}}function cr(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"}}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"]],pr={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 mr(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,s]of lr)if(r>=o&&r<=n)return s;return null}function yr(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 pr[r]??null}function gr(e,t){if(!e||!t)return null;let r=e.trim().toUpperCase(),o=t.trim();if(!o)return null;switch(r){case"US":return mr(o);case"CA":return yr(o);default:return null}}import*as Cr from"validator/lib/isPostalCode.js";var h=Cr,Te=typeof h.default=="function"?h.default:h.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 Ae=new Set(h.locales.map(e=>e.toUpperCase())),Er={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 D(e){let t=(e??"").trim().toUpperCase();return t?t.length===2?t:Er[t]??null:null}var Fr={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 fr(e){let t=D(e);return t!==null&&Ae.has(t)}function br(e,t){let r=(t??"").trim();if(!r)return!0;let o=D(e);if(o===null||!Ae.has(o))return!0;try{return Te(r,o)}catch{return!0}}function xr(e){let t=D(e);return t?Fr[t]:void 0}function hr(e){if(!(e.captureMethod!=="manual"||!(e.products??Ie(e.items,e.subscriptions)).some(r=>r.type==="subscription")))throw new c("Manual capture is not supported for subscription products.","validation_error",{code:"CaptureMethodUnsupportedForSubscription",param:"captureMethod"})}function Sr(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 L(e,t,r,o){let n=a(e);if(n)return n;for(let s of t??[]){let u=a(s.currency);if(u)return u}for(let s of r??[]){let u=a(s.currency);if(u)return u}for(let s of o??[]){let u=a(s.currency);if(u)return u}return null}function Ie(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 Tr(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 Ar(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 Ir(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}function Pr(e,t={}){let r=[],o=e.products??[],n=o.filter(d=>d.type==="subscription"),s=o.filter(d=>d.type!=="subscription"),p=(L(e.currency,void 0,void 0,o)??"USD").toUpperCase();for(let d of n){let m=d.totalAmount??0,E=d.overrideAmount??m,S=d.name||d.code||"Subscription";S==="4-WEEK PLAN"&&E<=1&&(S="7-DAY TRIAL: FULL ACCESS"),r.push({name:S,quantity:d.quantity,price:E,originalPrice:m})}if(!(t.hideBundledItems===!0&&n.length>0&&s.length>0))for(let d of s){let m=d.totalAmount??0,E=d.overrideAmount??m;r.push({name:d.name||d.code||"Item",quantity:d.quantity,price:E,originalPrice:m})}r.length===0&&r.push({name:"Purchase",quantity:1,price:e.amount/100,originalPrice:e.amount/100});let _e=r.reduce((d,m)=>d+m.originalPrice*m.quantity,0),Re=r.reduce((d,m)=>d+m.price*m.quantity,0),ke=typeof e.totalAmount=="number"&&Number.isFinite(e.totalAmount),ve=typeof e.subtotalAmount=="number"&&Number.isFinite(e.subtotalAmount),Be=typeof e.discountAmount=="number"&&Number.isFinite(e.discountAmount),w=ke?e.totalAmount:Re,C=ve?e.subtotalAmount:_e,G=Math.max(0,C-w),Me=C>0?Math.round(G/C*100):0;return{items:r,currency:p,total:w,originalTotal:C,totalSave:G,discountPercent:Me,...Be?{couponDiscount:e.discountAmount}:{}}}function _r(e){return e?.captureMethod==="manual"}function Rr(e,t){return e==="requires_capture"?t!=="manual":e==="succeeded"||e==="complete"||e==="completed"||e==="captured"||e==="paid"}function kr(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"}function vr(e){return M[e.toUpperCase()]??N}function Br(e){return/^pk_(test|live)_[A-Za-z0-9]+$/.test(e)}function Mr(e){return/^sk_(test|live)_[A-Za-z0-9]+$/.test(e)}function Nr(e){return typeof e=="string"&&e.startsWith("seti_")}var Dr="Idempotency-Key",O=255,Lr="IdempotencyKeyInProgress";function Or(){let e=globalThis.crypto;if(e&&(typeof e.randomUUID=="function"||typeof e.getRandomValues=="function"))return e}function Pe(){let e=Or();if(!e)return;if(typeof e.randomUUID=="function")return e.randomUUID();let t=new Uint8Array(16);return e.getRandomValues(t),Array.from(t,r=>r.toString(16).padStart(2,"0")).join("")}function Ur(e){if(e===void 0)return Pe();if(typeof e!="string"||e.trim()==="")throw new c("idempotencyKey must be a non-empty string identifying exactly one checkout creation.","validation_error",{code:"InvalidIdempotencyKey",param:"idempotencyKey"});if(e.length>O)throw new c(`idempotencyKey must be at most ${O} characters.`,"validation_error",{code:"InvalidIdempotencyKey",param:"idempotencyKey"});return e}var U=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function wr(e){return typeof e=="string"&&U.test(e)}function Gr(){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]&15|64,e[8]=e[8]&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)}`}export{Mt as BILLING_API_URL,te as BILLING_API_URL_PRODUCTION,x as BILLING_API_URL_STAGING,ie as BOLD_DARK_APPEARANCE,ae as BOLD_LIGHT_APPEARANCE,k as BUTTONS_LAYOUT_BOLD_DARK,R as BUTTONS_LAYOUT_BOLD_LIGHT,pe as BUTTONS_LAYOUT_DARK,ue as BUTTONS_LAYOUT_DEFAULT,B as BUTTONS_LAYOUT_GLASS_DARK,v as BUTTONS_LAYOUT_GLASS_LIGHT,ce as BUTTONS_LAYOUT_MINIMAL,_ as BUTTONS_LAYOUT_MODERN_DARK,P as BUTTONS_LAYOUT_MODERN_LIGHT,le as BUTTONS_LAYOUT_ROUNDED,Se as CA_PROVINCES,be as COUNTRY_OPTIONS,M as CURRENCY_MAP,Bt as DEFAULT_API_BASE_URL,Dt as DEFAULT_API_VERSION,re as DEFAULT_APPEARANCE,N as DEFAULT_CURRENCY,$t as ELEMENT_TYPES,Lt as FLAT_APPEARANCE,kt as FLO_SDK_VERSION_HEADER,c as FloPayError,de as GLASS_DARK_APPEARANCE,se as GLASS_LIGHT_APPEARANCE,Lr as IDEMPOTENCY_IN_PROGRESS_CODE,Dr as IDEMPOTENCY_KEY_HEADER,O as MAX_IDEMPOTENCY_KEY_LENGTH,ne as MODERN_DARK_APPEARANCE,oe as MODERN_LIGHT_APPEARANCE,Ot as NIGHT_APPEARANCE,vt as PAYPAL_VAULTED_PAYMENT_METHOD_TYPE,Rt as SDK_VERSION,ge as STRIPE_EXPRESS_METHODS,Fe as STRIPE_METHOD_AMOUNT_LIMITS,Ee as STRIPE_METHOD_COUNTRIES,Ce as STRIPE_METHOD_CURRENCIES,y as STRIPE_METHOD_MATRIX,Jt as SUPPORTED_CARD_BRANDS,Y as TELEMETRY_ERROR_CODES,z as TELEMETRY_FAILURE_CATEGORIES,H as TELEMETRY_LOG_NAMES,je as TELEMETRY_MAX_BATCH_BYTES,Ze as TELEMETRY_MAX_BATCH_EVENTS,We as TELEMETRY_SCHEMA_VERSION,K as TELEMETRY_SDK_PACKAGES,me as THEMES,he as US_STATES,U as UUID_V4,Oe as apiError,hr as assertCaptureMethodEligible,Ue as authenticationError,Pr as buildCheckoutDisplayData,Ar as buildItemPayload,Tr as buildProductPayload,Ir as buildSubscriptionPayload,j as buildTelemetryErrorEvent,Z as buildTelemetryLogEvent,$ as buildTelemetryPerformanceEvent,X as buildTelemetryTerminalEvent,Tt as classifyPaymentRejection,At as classifyTelemetryFailure,Pt as configureFlopay,qe as dropThirdPartyOnlyError,Zt as filterStripeMethodsByAmount,jt as filterStripeMethodsByCountry,Wt as filterStripeMethodsByCurrency,Ie as foldIntoProducts,Pe as generateIdempotencyKey,I as getConfiguredBillingApiUrl,ar as getCountryByCode,vr as getCurrencyByCountry,_t as getFloPayEnvironment,xr as getPostalCodeExample,Qt as getPostalCodeLabel,gr as getStateFromPostalCode,cr as getStateLabel,ur as getStateOptions,zt as getStripeMethodDisplayName,Kt as hasVendoredStripeMethodLogo,dr as isAVSEnabled,sr as isAVSFieldVisible,_r as isAuthorizationOnlySession,De as isCardSetupCheckoutSession,Sr as isDetachedSessionEligible,Rr as isMoneySettledOutcome,fr as isPostalCodeSupported,Nr as isSetupIntentClientSecret,wr as isUuidV4,br as isValidPostalCode,Br as isValidPublishableKey,Mr as isValidSecretKey,Ht as needsStripeMethodExplicitConfirm,Ge as networkError,kr as normalizeCheckoutFailureOutcome,Ne as normalizeGatewayEnvironment,Xt as partitionStripeMethods,Gr as randomUuidV4,we as rateLimitError,xe as resolveAVSConfig,Nt as resolveBillingApiUrl,Ut as resolveButtonsLayoutTheme,Ur as resolveIdempotencyKey,L as resolveSessionCurrency,qt as resolveStripeMethodBrandVariant,wt as resolveTheme,ht as serializeTelemetryBatch,Gt as stripeExpressMethodToOptionKey,T as telemetryStatusClass,Le as validationError};
|