@flopay/shared 1.9.20 → 1.9.22

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -56,6 +56,8 @@ The postal-code helpers are a faithful mirror of the billing API's own postcode
56
56
 
57
57
  `@flopay/shared` exposes no helper for declaring, selecting, or filtering payment gateways or gateway capabilities, and none should be added. Which gateway processes a session (Stripe, PayPal, Worldpay Corporate Gateway, or a future provider) is decided by the billing API from the merchant's configured gateways and their approved capability records. Clients that build `POST /v1/checkouts/sessions` themselves send the same provider-neutral body the SDK sends and render whatever `gateways` the response advertises. Card setup follows the same rule: the optional `country`, `currency`, and `futureUse` on `CreateCardSetupSessionRequest` describe the transaction the card is set up for, and the billing API alone decides which gateway verifies the card.
58
58
 
59
+ An Auto-mode create may send `x-flo-sdk-capabilities: async-auto-checkout-v1`. This generic response-shape negotiation says only that the client can consume a `202 checkout_processing` response and its authenticated status endpoint. It is not a gateway hint, a saved-card eligibility claim, or a Worldpay opt-in. Confirm and Full creates do not send it.
60
+
59
61
  ### Privacy-safe telemetry contract
60
62
 
61
63
  `@flopay/shared` exports the versioned, closed telemetry types and builders used by both browser packages. Builders copy only allowlisted enum, numeric, and opaque fields: arbitrary messages, stacks, payloads, URLs, credentials, customer data, and unknown nested fields cannot enter serialized events. `serializeTelemetryBatch()` emits the billing API's v1 envelope with a fixed, closed package identity (`@flopay/shared`, `@flopay/js`, or `@flopay/react`).
@@ -176,6 +178,7 @@ try {
176
178
  | `ThemeBundleId` | Bundle id: `'modern-light'` / `'modern-dark'` / `'bold-light'` / `'bold-dark'` / `'glass-light'` / `'glass-dark'` |
177
179
  | `ThemeId` | Accepted by the React components' `theme` prop: `'classic'` or any `ThemeBundleId` |
178
180
  | `VaultCardThemeColors` | Theme directive sent to the hosted card form: the flat keys every hosted form understands (`primaryColor`, `primaryHoverColor`, `inputBackgroundColor`, `textColor`, `borderColor`, `placeholderColor`, `errorColor`, `successColor`, `fontFamily`, `fontSize`, `fontWeight`, `borderRadius`) plus the optional `submitButton` snapshot. Partial objects stay valid and are forwarded unchanged. |
181
+ | `ExternalMethodFailureDetails` | Optional bounded diagnostics for an external-method failure: sanitized provider code, popup-block status, normalized browser family, mount-lifetime popup capability, and presentation mode |
179
182
  | `VaultSubmitButtonTheme` | Complete, bounded snapshot for the hosted submit control (billing API v1.9.6+): `foregroundColor`, `background` / `hoverBackground` / `disabledBackground` (`VaultSubmitBackground`), `typography` (`VaultSubmitTypography`), `spacing` (`VaultSubmitSpacing`), `shadow` (zero to four `VaultShadowLayer` values), `borderRadius`, `disabledOpacity`, `backdropBlur`. Structured values only, never raw CSS: the hosted form ignores an invalid or out-of-range member, and theme input never blocks capture. |
180
183
  | `VaultSubmitBackground` | `VaultSolidBackground` (`{ type: 'solid', color }`) or `VaultLinearGradientBackground` (`{ type: 'linearGradient', angle, stops }` with two to five `VaultGradientStop` values in non-decreasing order). Colors are `VaultThemeColor`: `#RRGGBB`, integer-channel `rgb()`, or `rgba()` with alpha `0..1`. |
181
184
  | `CardCaptureAdapter` | Hosted card-capture abstraction the React card surfaces depend on: `mount()`, `on()`, `unmount()`, plus the optional live controls `applyTheme(theme \| null)` (`null` is the explicit classic reset), `setSubmitGate()`, `setCardFieldOrder()`, and `setSubmitLabel(label \| null)` (hosted submit wording, billing API v1.9.35+; `null` resets to the session default, `CONFIRM PAYMENT` or `ADD CARD`; retained and replayed on every `'ready'` event, and posted only to the exact `VaultCaptureBlock.expectedOrigin` with its `VaultCaptureBlock.messageToken`). `CardCaptureMountOptions.submitLabel` sets the initial wording. |
@@ -192,6 +195,8 @@ try {
192
195
  | `GatewayEnvironment` | `'sandbox'` / `'live'`, which selects the PayPal JS SDK script and other environment-scoped behavior |
193
196
  | `PaymentResult` | Payment outcome: `status` (`'authorized'`/`'succeeded'`/`'processing'`/`'requires_action'`/`'failed'`); authorized results carry `paymentId?`, `sessionId?`, and `authorizationExpiresAt?` |
194
197
  | `CheckoutFailureOutcome` | Stable authorization lifecycle failure: `'authorization_declined'` / `'authentication_required'` / `'authorization_expired'` / `'capture_failed'` |
198
+ | `CheckoutProcessError` | Provider-neutral process failure. Optional `code` carries a stable `StoredPaymentMethodOutcomeCode`; older billing APIs may omit it. |
199
+ | `StoredPaymentMethodOutcomeCode` | `'stored_payment_method_unsupported'`: the selected saved method cannot be used for this transaction and the buyer must choose another method. |
195
200
  | `PayPalPaymentResult` | Stripe-hosted PayPal outcome: `status`, `paymentIntentId?`, `paymentMethodId?`, `error?` |
196
201
  | `CreateSessionIntentRequest` | Discriminated Stripe wallet/APM or direct-PayPal intent request. PayPal sends `intentKind: 'payment'` for Orders and subscriptions and `'setup'` for a standalone setup token. Direct card is not representable. |
197
202
  | `SessionIntent` | Matching discriminated response. Stripe carries `clientSecret`; PayPal carries a server-derived `providerObjectType`. Provider, payment-method category, type, and id, intent kind, and provider object id are separate fields. |
@@ -273,6 +278,10 @@ try {
273
278
  | `IDEMPOTENCY_KEY_HEADER` | `'Idempotency-Key'`, sent on `POST /v1/checkouts/sessions` |
274
279
  | `MAX_IDEMPOTENCY_KEY_LENGTH` | `255`, the longest key the SDK accepts |
275
280
  | `IDEMPOTENCY_IN_PROGRESS_CODE` | `'IdempotencyKeyInProgress'`: the billing API's retryable in-progress replay code. Retry with the same key. |
281
+ | `FLO_SDK_CAPABILITIES_HEADER` | `'x-flo-sdk-capabilities'`, the generic response-shape negotiation header |
282
+ | `ASYNC_AUTO_CHECKOUT_CAPABILITY` | `'async-auto-checkout-v1'`: advertises support for authenticated asynchronous Auto status responses, never gateway routing |
283
+ | `STORED_PAYMENT_METHOD_UNSUPPORTED_CODE` | `'stored_payment_method_unsupported'`, the stable provider-neutral unsupported-use outcome |
284
+ | `STORED_PAYMENT_METHOD_UNSUPPORTED_MESSAGE` | The buyer-safe instruction to choose another payment method for that outcome |
276
285
  | `TELEMETRY_LOG_NAMES` | The complete SDK-authored lifecycle log catalog |
277
286
  | `TELEMETRY_FAILURE_CATEGORIES` | `'server_error'`, `'transport_error'`, `'invalid_response'`, `'provider_runtime'` |
278
287
 
@@ -312,7 +321,7 @@ try {
312
321
 
313
322
  | Export | Description |
314
323
  |--------|-------------|
315
- | `FloPayError` | Error class with `type`, `code?`, `declineCode?`, `param?`, `statusCode?`, and `cause?` |
324
+ | `FloPayError` | Error class with `type`, `code?`, `declineCode?`, `param?`, `statusCode?`, `cause?`, and optional bounded `details?` |
316
325
  | `FloPayErrorType` | `'validation_error'` / `'api_error'` / `'authentication_error'` / `'rate_limit_error'` / `'network_error'` |
317
326
  | `validationError(message, param?)` | Creates a `validation_error` |
318
327
  | `apiError(message, code?, statusCode?)` | Creates an `api_error` |
@@ -336,6 +345,12 @@ try {
336
345
 
337
346
  Errors the FloPay SDK creates or normalizes are `FloPayError`s. Other failures can still surface unchanged, such as an underlying `fetch()` rejection, a Stripe error, or a native `Error` from a payload builder, so check `error instanceof FloPayError` before reading `type` or `code`. Branch on its stable `type` and `code`, never on `message`.
338
347
 
348
+ `FloPayError` also has an optional `details` field for bounded diagnostics. An
349
+ external-method failure may supply `ExternalMethodFailureDetails` with a
350
+ sanitized provider code, popup-block status, normalized in-app-browser and app
351
+ family, mount-lifetime popup capability, and optional presentation mode. Other
352
+ errors and existing factory results omit `details`.
353
+
339
354
  | `type` | Meaning |
340
355
  |--------|---------|
341
356
  | `validation_error` | The input was rejected before or by the billing API. `param` names the offending field when known. |
@@ -352,5 +367,6 @@ Codes raised by this package's helpers:
352
367
  Billing API outcomes described by shared types:
353
368
 
354
369
  - `IDEMPOTENCY_IN_PROGRESS_CODE` marks a retryable in-progress replay of the same idempotency key; retry with the same key. A `409` payload conflict for a reused key is not retryable.
370
+ - `STORED_PAYMENT_METHOD_UNSUPPORTED_CODE` marks an explicit, provider-neutral saved-method failure. Show `STORED_PAYMENT_METHOD_UNSUPPORTED_MESSAGE` and let the buyer choose another method; do not silently retry with different payment behavior. The optional `CheckoutProcessError.code` remains absent-safe for older billing APIs.
355
371
  - `CheckoutFailureOutcome` classifies an authorization that did not complete: `authorization_declined`, `authentication_required`, `authorization_expired`, or `capture_failed`.
356
372
  - `PaymentMethodRemovalError` covers saved-method removal from your server: `payment_method_not_found` (404, also returned for a method you cannot access), the `409` conflicts `payment_method_has_active_payment`, `payment_method_in_use`, and `payment_method_reassignment_requires_payer_action`, and `payment_method_deletion_failed` (502, retry-safe, with a `reason` and `resolution`).
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var rr=Object.create;var T=Object.defineProperty;var nr=Object.getOwnPropertyDescriptor;var or=Object.getOwnPropertyNames;var ar=Object.getPrototypeOf,ir=Object.prototype.hasOwnProperty;var sr=(e,t)=>{for(var r in t)T(e,r,{get:t[r],enumerable:!0})},he=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of or(t))!ir.call(e,o)&&o!==r&&T(e,o,{get:()=>t[o],enumerable:!(n=nr(t,o))||n.enumerable});return e};var Se=(e,t,r)=>(r=e!=null?rr(ar(e)):{},he(t||!e||!e.__esModule?T(r,"default",{value:e,enumerable:!0}):r,e)),ur=e=>he(T({},"__esModule",{value:!0}),e);var Tn={};sr(Tn,{BILLING_API_URL:()=>We,BILLING_API_URL_PRODUCTION:()=>V,BILLING_API_URL_STAGING:()=>E,BOLD_DARK_APPEARANCE:()=>H,BOLD_LIGHT_APPEARANCE:()=>z,BUTTONS_LAYOUT_BOLD_DARK:()=>_,BUTTONS_LAYOUT_BOLD_LIGHT:()=>A,BUTTONS_LAYOUT_DARK:()=>$,BUTTONS_LAYOUT_DEFAULT:()=>j,BUTTONS_LAYOUT_GLASS_DARK:()=>I,BUTTONS_LAYOUT_GLASS_LIGHT:()=>F,BUTTONS_LAYOUT_MINIMAL:()=>Z,BUTTONS_LAYOUT_MODERN_DARK:()=>x,BUTTONS_LAYOUT_MODERN_LIGHT:()=>S,BUTTONS_LAYOUT_ROUNDED:()=>X,CA_PROVINCES:()=>ie,COUNTRY_OPTIONS:()=>ne,CURRENCY_MAP:()=>P,DEFAULT_API_BASE_URL:()=>qe,DEFAULT_API_VERSION:()=>Ze,DEFAULT_APPEARANCE:()=>G,DEFAULT_CURRENCY:()=>R,FLAT_APPEARANCE:()=>Xe,FLO_INSTRUMENT_CATALOG:()=>_t,FLO_INSTRUMENT_SCHEMA_VERSION:()=>At,FLO_SDK_VERSION_HEADER:()=>ze,FloPayError:()=>u,GLASS_DARK_APPEARANCE:()=>W,GLASS_LIGHT_APPEARANCE:()=>q,IDEMPOTENCY_IN_PROGRESS_CODE:()=>St,IDEMPOTENCY_KEY_HEADER:()=>ht,MAX_IDEMPOTENCY_KEY_LENGTH:()=>k,MODERN_DARK_APPEARANCE:()=>K,MODERN_LIGHT_APPEARANCE:()=>Y,NIGHT_APPEARANCE:()=>$e,PAYPAL_VAULTED_PAYMENT_METHOD_TYPE:()=>He,SDK_VERSION:()=>Ke,STRIPE_EXPRESS_METHODS:()=>Q,STRIPE_METHOD_AMOUNT_LIMITS:()=>re,STRIPE_METHOD_COUNTRIES:()=>te,STRIPE_METHOD_CURRENCIES:()=>ee,STRIPE_METHOD_MATRIX:()=>y,SUPPORTED_CARD_BRANDS:()=>dt,TELEMETRY_ERROR_CODES:()=>le,TELEMETRY_FAILURE_CATEGORIES:()=>pe,TELEMETRY_LOG_NAMES:()=>me,TELEMETRY_MAX_BATCH_BYTES:()=>Ot,TELEMETRY_MAX_BATCH_EVENTS:()=>vt,TELEMETRY_SCHEMA_VERSION:()=>Bt,TELEMETRY_SDK_PACKAGES:()=>de,THEMES:()=>J,US_STATES:()=>ae,UUID_V4:()=>v,apiError:()=>Pe,assertCaptureMethodEligible:()=>Ne,authenticationError:()=>Re,buildCheckoutDisplayData:()=>Ct,buildItemPayload:()=>Oe,buildProductPayload:()=>Be,buildSubscriptionPayload:()=>ve,buildTelemetryErrorEvent:()=>ge,buildTelemetryLogEvent:()=>Ee,buildTelemetryPerformanceEvent:()=>Ce,buildTelemetryTerminalEvent:()=>fe,classifyPaymentRejection:()=>Vt,classifyTelemetryFailure:()=>Gt,configureFlopay:()=>De,dropThirdPartyOnlyError:()=>Lt,filterStripeMethodsByAmount:()=>ut,filterStripeMethodsByCountry:()=>st,filterStripeMethodsByCurrency:()=>it,foldIntoProducts:()=>U,generateIdempotencyKey:()=>ue,getConfiguredBillingApiUrl:()=>h,getCountryByCode:()=>mt,getCurrencyByCountry:()=>Ht,getFloPayEnvironment:()=>Ue,getPostalCodeExample:()=>Mt,getPostalCodeLabel:()=>lt,getStateFromPostalCode:()=>Ft,getStateLabel:()=>ft,getStateOptions:()=>Et,getStripeMethodDisplayName:()=>nt,hasVendoredStripeMethodLogo:()=>rt,isAVSEnabled:()=>gt,isAVSFieldVisible:()=>yt,isAuthorizationOnlySession:()=>Ae,isCardHolderNamePlaceholder:()=>Zt,isCardSetupCheckoutSession:()=>xe,isDetachedSessionEligible:()=>Le,isMoneySettledOutcome:()=>_e,isPostalCodeSupported:()=>Rt,isSetupIntentClientSecret:()=>jt,isUuidV4:()=>Kt,isValidEmail:()=>bt,isValidPostalCode:()=>kt,isValidPublishableKey:()=>qt,isValidSecretKey:()=>Wt,needsStripeMethodExplicitConfirm:()=>ot,networkError:()=>Me,normalizeCheckoutFailureOutcome:()=>Fe,normalizeGatewayEnvironment:()=>Yt,partitionStripeMethods:()=>ct,randomUuidV4:()=>zt,rateLimitError:()=>ke,resolveAVSConfig:()=>oe,resolveBillingApiUrl:()=>je,resolveButtonsLayoutTheme:()=>Je,resolveIdempotencyKey:()=>xt,resolveSessionCurrency:()=>b,resolveStripeMethodBrandVariant:()=>at,resolveTheme:()=>Qe,serializeTelemetryBatch:()=>wt,stripeExpressMethodToOptionKey:()=>et,telemetryStatusClass:()=>O,validationError:()=>Ie});module.exports=ur(Tn);function xe(e){return e.checkoutMode==="setup"&&e.amount===0&&(e.products?.length??0)===0}function Ae(e){return e?.captureMethod==="manual"}function _e(e,t){return e==="requires_capture"?t!=="manual":e==="succeeded"||e==="complete"||e==="completed"||e==="captured"||e==="paid"}function Fe(e){if(typeof e!="string"||e.length===0)return;let t=e.trim().toLowerCase().replace(/[\s-]+/g,"_");if(t==="capture_failed"||t.includes("capture")&&(t.includes("fail")||t.includes("error")))return"capture_failed";if(t==="authorization_expired"||t.includes("expired")||t.includes("expiry"))return"authorization_expired";if(t==="authentication_required"||t.includes("3ds")||t.includes("three_d")||t.includes("authentication")||t.includes("action_required"))return"authentication_required";if(t==="authorization_declined"||t.includes("declin")||t.includes("authorization_fail"))return"authorization_declined"}var u=class extends Error{constructor(t,r,n){super(t),this.name="FloPayError",this.type=r,this.code=n?.code,this.declineCode=n?.declineCode,this.param=n?.param,this.statusCode=n?.statusCode,n?.cause!==void 0&&(this.cause=n.cause),Object.setPrototypeOf(this,new.target.prototype)}};function Ie(e,t){return new u(e,"validation_error",{param:t})}function Pe(e,t,r){return new u(e,"api_error",{code:t,statusCode:r})}function Re(e){return new u(e,"authentication_error")}function ke(e){return new u(e,"rate_limit_error")}function Me(e){return new u(e,"network_error")}function Ne(e){if(!(e.captureMethod!=="manual"||!(e.products??U(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 Le(e){return e.deferDataAttachment!==!1&&(e.checkoutMode??"full")==="full"&&!e.tokenizedData}function a(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function b(e,t,r,n){let o=a(e);if(o)return o;for(let i of t??[]){let c=a(i.currency);if(c)return c}for(let i of r??[]){let c=a(i.currency);if(c)return c}for(let i of n??[]){let c=a(i.currency);if(c)return c}return null}function U(e,t){let r=[];for(let n of t??[])r.push({type:"subscription",code:a(n.code)??a(n.providerPlanId),providerPlanId:n.providerPlanId,name:a(n.subscriptionName)??a(n.providerPlanName)??null,subscriptionName:n.subscriptionName??null,providerPlanName:n.providerPlanName??null,quantity:n.quantity,totalAmount:n.totalAmount,overrideAmount:n.overrideAmount,currency:n.currency,metadata:n.metadata});for(let n of e??[])r.push({type:"item",code:a(n.code)??a(n.providerItemId),providerItemId:n.providerItemId,name:a(n.itemName)??a(n.providerItemName)??null,itemName:n.itemName??null,providerItemName:n.providerItemName??null,quantity:n.quantity,totalAmount:n.totalAmount,overrideAmount:n.overrideAmount,currency:n.currency,metadata:n.metadata});return r}function Be(e,t){let r=a(e.code)??a(e.providerItemId)??a(e.providerPlanId);if(!r)throw new Error("CheckoutProduct requires `code` (or the deprecated `providerItemId` / `providerPlanId`).");let n=a(e.name)??a(e.itemName)??a(e.providerItemName)??a(e.subscriptionName)??a(e.providerPlanName)??null,o={type:e.type,code:r,name:n,quantity:e.quantity??1,totalAmount:e.totalAmount,overrideAmount:e.overrideAmount??null,currency:a(e.currency)??t};return e.metadata&&(o.metadata=e.metadata),o}function Oe(e,t){let r=a(e.code)??a(e.providerItemId);if(!r)throw new Error("CheckoutItem requires either `code` or the deprecated `providerItemId`.");let n=a(e.itemName)??a(e.providerItemName)??null,o={code:r,providerItemId:a(e.providerItemId)??r,itemName:n,providerItemName:a(e.providerItemName)??n,quantity:e.quantity??1,totalAmount:e.totalAmount,overrideAmount:e.overrideAmount??null,currency:a(e.currency)??t};return e.metadata&&(o.metadata=e.metadata),o}function ve(e,t){let r=a(e.code)??a(e.providerPlanId);if(!r)throw new Error("CheckoutSubscription requires either `code` or the deprecated `providerPlanId`.");let n=a(e.subscriptionName)??a(e.providerPlanName)??null,o={code:r,providerPlanId:a(e.providerPlanId)??r,subscriptionName:n,providerPlanName:a(e.providerPlanName)??n,quantity:e.quantity??1,totalAmount:e.totalAmount,overrideAmount:e.overrideAmount??null,currency:a(e.currency)??t};return e.metadata&&(o.metadata=e.metadata),o}var cr={local:"https://flo.ngrok.pro",staging:"https://api.stage.flopay.com",production:"https://api.flopay.com"},w="staging";function De(e){w=e.environment}function h(){return cr[w]}function Ue(){return w}var we=["alipay","bancontact","blik","eps","giropay","ideal","klarna","p24","sepa_debit","wechat_pay"];var Ke="1.9.20",ze="x-flo-sdk-version",He="paypal_vaulted",E="https://api.stage.flopay.com",V="https://api.flopay.com",qe=E,We=E;function je(e){return e||(typeof process<"u"&&process.env?.NEXT_PUBLIC_FLOPAY_ENV?process.env.NEXT_PUBLIC_FLOPAY_ENV==="production"?V:E:h())}var Ze="2024-01-01",G={theme:"default",variables:{colorPrimary:"#4A49FF",colorBackground:"#FFFFFF",colorText:"#262833",colorDanger:"#DF1B41",borderRadius:"8px",fontFamily:"Poppins, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"4px"}},Xe={theme:"flat",variables:{...G.variables,borderRadius:"4px"}},$e={theme:"night",variables:{colorPrimary:"#7B7BFF",colorBackground:"#1A1A2E",colorText:"#E0E0E0",colorDanger:"#FF6B6B",borderRadius:"8px",fontFamily:"Poppins, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"4px"}},Y={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"}}},K={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"}}},z={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"}}},H={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)"}}},W={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)"}}},j={},Z={cardButton:{border:"none",backgroundColor:"#f9fafb",boxShadow:"none"},cardFormContainer:{backgroundColor:"#f9fafb",border:"none"},cardInputBorder:"#e5e7eb",backButtonIcon:{backgroundColor:"#e5e7eb"},submitButton:{borderRadius:"6px"}},X={cardButton:{borderRadius:"9999px",border:"1px solid #e5e7eb",boxShadow:"0 1px 3px rgba(0,0,0,0.06)"},cardFormContainer:{borderRadius:"16px",border:"1px solid #e5e7eb",boxShadow:"0 2px 8px rgba(0,0,0,0.06)"},cardInputBorder:"#d1d5db",submitButton:{borderRadius:"9999px"},backButtonIcon:{backgroundColor:"#f3f4f6"}},$={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"}},S={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"}},x={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"}},A={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"}},F={cardFormContainer:{background:"linear-gradient(135deg, #DBEAFE 0%, #BFDBFE 100%)",borderRadius:"24px",border:"1px solid rgba(255,255,255,0.6)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.6), 0 12px 40px rgba(23,133,224,0.15)",padding:"28px"},cardButton:{backgroundColor:"rgba(255,255,255,0.7)",backdropFilter:"blur(20px)",borderRadius:"16px",border:"1px solid rgba(255,255,255,0.6)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.5), 0 4px 16px rgba(23,133,224,0.1)",padding:"14px 18px"},cardInputBorder:"rgba(255,255,255,0.6)",nameInput:{backgroundColor:"rgba(255,255,255,0.6)",backdropFilter:"blur(10px)",border:"1px solid rgba(255,255,255,0.6)",borderRadius:"14px",padding:"14px 16px"},submitButton:{backgroundColor:"rgba(23,133,224,0.95)",backdropFilter:"blur(10px)",borderRadius:"16px",padding:"16px 24px",boxShadow:"0 10px 30px rgba(23,133,224,0.3), inset 0 1px 0 rgba(255,255,255,0.2)",fontWeight:"600",color:"#FFFFFF"},title:{color:"#1E293B",fontWeight:"600",letterSpacing:"-0.01em"},titleFontSize:"20px",backButton:{color:"#1785E0",fontWeight:"500"},backButtonIcon:{backgroundColor:"rgba(255,255,255,0.7)"}},I={cardFormContainer:{background:"linear-gradient(135deg, #0C2B4D 0%, #0F172A 100%)",borderRadius:"24px",border:"1px solid rgba(255,255,255,0.08)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.06), 0 20px 50px rgba(0,0,0,0.4)",padding:"28px"},cardButton:{backgroundColor:"rgba(15,23,42,0.6)",backdropFilter:"blur(20px)",borderRadius:"16px",border:"1px solid rgba(255,255,255,0.08)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.05), 0 4px 16px rgba(0,0,0,0.3)",padding:"14px 18px",color:"#F1F5F9"},cardInputBorder:"rgba(255,255,255,0.08)",cardInputBackground:"rgba(15,23,42,0.6)",cardInputColor:"#F1F5F9",cardInputPlaceholderColor:"#64748B",nameInput:{backgroundColor:"rgba(15,23,42,0.6)",backdropFilter:"blur(10px)",border:"1px solid rgba(255,255,255,0.08)",borderRadius:"14px",padding:"14px 16px",color:"#F1F5F9"},submitButton:{backgroundColor:"rgba(96,165,250,0.9)",backdropFilter:"blur(10px)",borderRadius:"16px",padding:"16px 24px",boxShadow:"0 10px 30px rgba(96,165,250,0.35), inset 0 1px 0 rgba(255,255,255,0.15)",fontWeight:"600",color:"#0F172A"},title:{color:"#F1F5F9",fontWeight:"600",letterSpacing:"-0.01em"},titleFontSize:"20px",backButton:{color:"#60A5FA",fontWeight:"500"},backButtonIcon:{backgroundColor:"rgba(255,255,255,0.08)"},countrySelect:{backgroundColor:"rgba(15,23,42,0.6)",color:"#F1F5F9"},zipInput:{backgroundColor:"rgba(15,23,42,0.6)",color:"#F1F5F9"}};function Je(e){switch(e){case"minimal":return Z;case"rounded":return X;case"dark":return $;case"modern-light":return S;case"modern-dark":return x;case"bold-light":return A;case"bold-dark":return _;case"glass-light":return F;case"glass-dark":return I;default:return j}}var J={"modern-light":{appearance:Y,buttonsLayout:S},"modern-dark":{appearance:K,buttonsLayout:x},"bold-light":{appearance:z,buttonsLayout:A},"bold-dark":{appearance:H,buttonsLayout:_},"glass-light":{appearance:q,buttonsLayout:F},"glass-dark":{appearance:W,buttonsLayout:I}};function Qe(e){if(!(!e||e==="classic"))return J[e]}function et(e){switch(e){case"apple_pay":return"applePay";case"google_pay":return"googlePay";case"amazon_pay":return"amazonPay";default:return e}}function dr(e,t,r){return`<svg viewBox="0 0 22 22"><circle cx="11" cy="11" r="11" fill="${t}"/><text x="11" y="15.5" text-anchor="middle" font-size="13" font-weight="700" font-family="sans-serif" fill="${r}">${e}</text></svg>`}function Ve(e,t){return`<svg viewBox="0 0 22 22"><circle cx="11" cy="11" r="11" fill="${e}"/><g fill="${t}"><path d="M11 4 L17.5 8 L4.5 8 Z"/><rect x="5" y="8.4" width="12" height="1.2" rx="0.3"/><rect x="5.9" y="10" width="1.5" height="5"/><rect x="8.55" y="10" width="1.5" height="5"/><rect x="11.95" y="10" width="1.5" height="5"/><rect x="14.6" y="10" width="1.5" height="5"/><rect x="4.6" y="15.4" width="12.8" height="1.5" rx="0.3"/></g></svg>`}function Ge(e,t,r,n=t){return{backgroundColor:t,borderColor:t,textColor:r,logoSvg:dr(e,r,n)}}function d(e,t,r,n=t,o=r,i=n){return{light:Ge(e,t,r),dark:Ge(e,n,o,i)}}var tt=["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"],lr=[...tt,"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:d("K","#FFB3C7","#0A0B09")},affirm:{displayName:"Affirm",currencies:["usd"],countries:["US","CA"],amounts:{usd:{min:3500,max:3e6}},needsExplicitConfirm:!1,theme:d("a","#060F33","#FFFFFF","#0FA0EA","#060F33","#FFFFFF")},cashapp:{displayName:"Cash App Pay",currencies:["usd"],countries:["US"],amounts:{usd:{min:50,max:99999999}},needsExplicitConfirm:!1,theme:d("$","#00D54B","#0A1F0E")},samsung_pay:{displayName:"Samsung Pay",currencies:["krw"],countries:["KR"],needsExplicitConfirm:!1},afterpay_clearpay:{displayName:"Afterpay",currencies:["usd","aud","cad","gbp","nzd"],countries:["US","CA","GB","AU","NZ"],amounts:{usd:{min:100,max:2e5},cad:{min:100,max:2e5},gbp:{min:100,max:12e4},aud:{min:100,max:2e5},nzd:{min:100,max:2e5}},theme:d("A","#B2FCE4","#0A0B09")},alipay:{displayName:"Alipay",currencies:["usd","cny"],theme:d("A","#1677FF","#FFFFFF")},au_becs_debit:{displayName:"BECS Direct Debit",currencies:["aud"],countries:["AU"]},bacs_debit:{displayName:"Bacs Debit",currencies:["gbp"],countries:["GB"]},bancontact:{displayName:"Bancontact",currencies:["eur"],countries:["BE"],theme:d("B","#FFDD55","#1E3791","#1E3791","#FFDD55")},bizum:{displayName:"Bizum",currencies:["eur"],countries:["ES"],theme:d("B","#00BFB3","#FFFFFF")},blik:{displayName:"BLIK",currencies:["pln"],countries:["PL"],theme:d("B","#000000","#FFFFFF","#FFFFFF","#000000")},boleto:{displayName:"Boleto",currencies:["brl"],countries:["BR"]},customer_balance:{displayName:"Bank Transfer",currencies:["eur","usd"],countries:lr,theme:{light:{backgroundColor:"#1F2937",textColor:"#FFFFFF",borderColor:"#1F2937",logoSvg:Ve("#1F2937","#FFFFFF")},dark:{backgroundColor:"#374151",textColor:"#FFFFFF",borderColor:"#374151",logoSvg:Ve("#374151","#FFFFFF")}}},eps:{displayName:"EPS",currencies:["eur"],countries:["AT"],theme:d("E","#C8102E","#FFFFFF")},giropay:{displayName:"Giropay",currencies:["eur"],countries:["DE"],theme:d("G","#0F4197","#FFFFFF")},ideal:{displayName:"iDEAL",currencies:["eur"],countries:["NL"],theme:d("i","#CC0066","#FFFFFF")},konbini:{displayName:"Konbini",currencies:["jpy"],countries:["JP"]},kr_card:{displayName:"Korean Card",currencies:["krw"],countries:["KR"],theme:d("K","#0B3D91","#FFFFFF")},multibanco:{displayName:"Multibanco",currencies:["eur"],countries:["PT"]},oxxo:{displayName:"OXXO",currencies:["mxn"],countries:["MX"]},p24:{displayName:"Przelewy24",currencies:["eur","pln"],countries:["PL"],theme:d("P","#D90F1B","#FFFFFF")},paynow:{displayName:"PayNow",currencies:["sgd"],countries:["SG"]},pix:{displayName:"Pix",currencies:["brl"],countries:["BR"]},promptpay:{displayName:"PromptPay",currencies:["thb"],countries:["TH"]},sepa_debit:{displayName:"SEPA Debit",currencies:["eur"],countries:tt,theme:d("\u20AC","#10298E","#FFFFFF","#3056D3")},sofort:{displayName:"Sofort",currencies:["eur"],countries:["AT","BE","DE","ES","IT","NL"],theme:d("S","#EF809F","#FFFFFF")},upi:{displayName:"UPI",currencies:["inr"],countries:["IN"],theme:d("U","#FF7909","#FFFFFF")},us_bank_account:{displayName:"US Bank Account",currencies:["usd"],countries:["US"]},wechat_pay:{displayName:"WeChat Pay",currencies:["usd","cny"],theme:d("W","#07C160","#FFFFFF")},zip:{displayName:"Zip",currencies:["aud"],countries:["AU","NZ"]}};function rt(e){return we.includes(e)}var Q=Object.entries(y).filter(([,e])=>e.express).map(([e])=>e),pr=new Set(Q),ee=Object.fromEntries(Object.entries(y).map(([e,t])=>[e,t.currencies])),te=Object.fromEntries(Object.entries(y).filter(([,e])=>e.countries).map(([e,t])=>[e,t.countries]));function nt(e){return e?y[e]?.displayName??e.split("_").filter(Boolean).map(t=>t[0].toUpperCase()+t.slice(1)).join(" "):"this method"}function ot(e){return y[e]?.needsExplicitConfirm!==!1}function at(e,t){let r=y[e]?.theme;return r?(typeof t=="string"&&t.endsWith("-dark")?r.dark:r.light)??r.light??null:null}function it(e,t){if(!e||e.length===0)return[];if(!t)return[...e];let r=t.trim().toLowerCase();return r?e.filter(n=>{let o=ee[n];return o?o.includes("*")||o.includes(r):!0}):[...e]}function st(e,t){if(!e||e.length===0)return[];if(!t)return[...e];let r=t.trim().toUpperCase();return r?e.filter(n=>{let o=te[n];return o?o.includes("*")||o.includes(r):!0}):[...e]}var re=Object.fromEntries(Object.entries(y).filter(([,e])=>e.amounts).map(([e,t])=>[e,t.amounts]));function ut(e,t,r){if(!e||e.length===0)return[];if(!t||typeof r!="number"||!Number.isFinite(r))return[...e];let n=t.trim().toLowerCase();return n?e.filter(o=>{let i=re[o];if(!i)return!0;let c=i[n];return c?!(typeof c.min=="number"&&r<c.min||typeof c.max=="number"&&r>c.max):!0}):[...e]}function ct(e,t){if(!e||e.length===0)return{expressMethods:[],paymentElementMethods:[]};let r=[],n=[],o=new Set,i=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(pr.has(p)){if(o.has(p))continue;o.add(p),r.push(p)}else{if(i.has(p))continue;i.add(p),n.push(p)}}return{expressMethods:r,paymentElementMethods:n}}var dt=["visa","mastercard","mastercard_debit","amex","discover"],P={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}},R={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 mr=new Intl.DisplayNames(["en"],{type:"region"});function yr(e){return[...e.toUpperCase()].map(t=>String.fromCodePoint(127397+t.charCodeAt(0))).join("")}var pt=["US","GB","CA","AU","NZ","IE","DE","FR"],gr=["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 Ye(e){return{code:e,name:mr.of(e)??e,flag:yr(e)}}var Er=new Set(pt),fr=gr.filter(e=>!Er.has(e)),ne=[...pt.map(Ye),...fr.map(Ye)];function mt(e){return ne.find(t=>t.code===e)}var Cr={country:!0,postal_code:!0};function oe(e){return e===!0?Cr:e||null}function yt(e,t){if(!e)return!1;if(e===!0)return!0;let r=t.trim().toUpperCase();return e.some(n=>n.trim().toUpperCase()===r)}function gt(e){let t=oe(e);return t?Object.values(t).some(r=>r===!0||Array.isArray(r)&&r.length>0):!1}var ae=[{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"}],ie=[{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 Et(e){switch(e.toUpperCase()){case"US":return ae;case"CA":return ie;default:return null}}function ft(e){switch(e.toUpperCase()){case"US":return"State";case"CA":return"Province";case"GB":return"County";case"AU":return"State / Territory";default:return"State / Province / Region"}}function Ct(e,t={}){let r=[],n=e.products??[],o=n.filter(s=>s.type==="subscription"),i=n.filter(s=>s.type!=="subscription"),p=(b(e.currency,void 0,void 0,n)??"USD").toUpperCase();for(let s of o){let m=s.totalAmount??0,C=s.overrideAmount??m,D=s.name||s.code||"Subscription";D==="4-WEEK PLAN"&&C<=1&&(D="7-DAY TRIAL: FULL ACCESS"),r.push({name:D,quantity:s.quantity,price:C,originalPrice:m})}if(!(t.hideBundledItems===!0&&o.length>0&&i.length>0))for(let s of i){let m=s.totalAmount??0,C=s.overrideAmount??m;r.push({name:s.name||s.code||"Item",quantity:s.quantity,price:C,originalPrice:m})}r.length===0&&r.push({name:"Purchase",quantity:1,price:e.amount/100,originalPrice:e.amount/100});let Xt=r.reduce((s,m)=>s+m.originalPrice*m.quantity,0),$t=r.reduce((s,m)=>s+m.price*m.quantity,0),Jt=typeof e.totalAmount=="number"&&Number.isFinite(e.totalAmount),Qt=typeof e.subtotalAmount=="number"&&Number.isFinite(e.subtotalAmount),er=typeof e.discountAmount=="number"&&Number.isFinite(e.discountAmount),Te=Jt?e.totalAmount:$t,f=Qt?e.subtotalAmount:Xt,be=Math.max(0,f-Te),tr=f>0?Math.round(be/f*100):0;return{items:r,currency:p,total:Te,originalTotal:f,totalSave:be,discountPercent:tr,...er?{couponDiscount:e.discountAmount}:{}}}var Tr=Se(require("validator/lib/isEmail.js"),1),se=Tr,Tt=typeof se.default=="function"?se.default:se.default?.default;if(typeof Tt!="function")throw new Error("validator/lib/isEmail.js interop failed: unexpected module shape. This likely means the bundler's CJS/ESM interop changed.");function bt(e){return typeof e=="string"&&e.length>0&&Tt(e)}var ht="Idempotency-Key",k=255,St="IdempotencyKeyInProgress";function br(){let e=globalThis.crypto;if(e&&(typeof e.randomUUID=="function"||typeof e.getRandomValues=="function"))return e}function ue(){let e=br();if(!e)return;if(typeof e.randomUUID=="function")return e.randomUUID();if(typeof e.getRandomValues!="function")return;let t=new Uint8Array(16);return e.getRandomValues(t),Array.from(t,r=>r.toString(16).padStart(2,"0")).join("")}function xt(e){if(e===void 0)return ue();if(typeof e!="string"||e.trim()==="")throw new u("idempotencyKey must be a non-empty string identifying exactly one checkout creation.","validation_error",{code:"InvalidIdempotencyKey",param:"idempotencyKey"});if(e.length>k)throw new u(`idempotencyKey must be at most ${k} characters.`,"validation_error",{code:"InvalidIdempotencyKey",param:"idempotencyKey"});return e}var At=1,_t=[{name:"checkout_mount"},{name:"sdk_loaded"},{name:"form_rendered"},{name:"card_expanded"},{name:"tokenize"},{name:"process_attempt"},{name:"3ds_challenge"},{name:"checkout_error",phase:"session_create"},{name:"checkout_error",phase:"sdk_load"},{name:"checkout_error",phase:"process"},{name:"checkout_error",phase:"wallets"}];var hr=[[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"]],Sr={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 xr(e){let t=e.replace(/\D/g,"");if(t.length<5)return null;let r=Number.parseInt(t.slice(0,3),10);if(!Number.isFinite(r))return null;for(let[n,o,i]of hr)if(r>=n&&r<=o)return i;return null}function Ar(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 Sr[r]??null}function Ft(e,t){if(!e||!t)return null;let r=e.trim().toUpperCase(),n=t.trim();if(!n)return null;switch(r){case"US":return xr(n);case"CA":return Ar(n);default:return null}}var _r=Se(require("validator/lib/isPostalCode.js"),1),M=_r,It=typeof M.default=="function"?M.default:M.default?.default;if(typeof It!="function")throw new Error("validator/lib/isPostalCode.js interop failed: unexpected module shape. This likely means the bundler's CJS/ESM interop changed.");var Pt=new Set(M.locales.map(e=>e.toUpperCase())),Fr={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 ce(e){let t=(e??"").trim().toUpperCase();return t?t.length===2?t:Fr[t]??null:null}var Ir={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 Rt(e){let t=ce(e);return t!==null&&Pt.has(t)}function kt(e,t){let r=(t??"").trim();if(!r)return!0;let n=ce(e);if(n===null||!Pt.has(n))return!0;try{return It(r,n)}catch{return!0}}function Mt(e){let t=ce(e);return t?Ir[t]:void 0}var Pr=/(?:^|\/)dahlia\/stripe\.js(?:$|[?#])/i,Rr=/^dahlia\/stripe$/i,kr=/^(?:chrome|moz|safari-web)-extension:\/\//i,Mr=/^@flopay(?:\/|$)/i;function Nt(e){return Pr.test(e)||kr.test(e)}function Nr(e){let t=[e.filename,e.abs_path].filter(r=>r!==void 0&&r!=="<anonymous>");return e.module!==void 0&&Mr.test(e.module)||t.some(r=>!Nt(r))?"first-party":e.module!==void 0&&Rr.test(e.module)||t.some(Nt)?"third-party-hosted":t.length===0?"injected":"first-party"}function Lt(e){let t=e.exception?.values;if(!t||t.length===0)return e;let r=[];for(let o of t){let i=o.stacktrace?.frames;if(!i||i.length===0)return e;r.push(...i)}let n=r.map(Nr);return!n.includes("first-party")&&n.includes("third-party-hosted")?null:e}var Bt=1,de=["@flopay/shared","@flopay/js","@flopay/react"],Ot=32768,vt=20,Lr=["stripe","paypal"],Br=["card","wallet","paypal","apm","saved","unknown"],Or=["apple_pay","google_pay"],vr=["watchdog_expired","resolved","rejected","returned_error","resolved_late","rejected_late","returned_error_late"],Dr=["none","facebook","instagram","tiktok","generic_webview","other_in_app"],Ur=["unknown","available","blocked"],wr=["popup","app_switch","redirect"],Vr=["approved","cancelled","provider_declined","popup_blocked","provider_error","overlay_timeout"],Gr=["callback","sdk_initialize","checkout_mount","session_create","session_shell","session_claim","session_read","session_first_byte","session_complete","checkout_data_ready","checkout_render","provider_load","provider_ready","provider_confirmation","overlay_open","overlay_return","redirect","redirect_resume","vault_request","vault_mount","vault_ready","vault_submit","tokenization","three_ds_handoff","three_ds_return","processing","recovery","completion","unmount","total_journey"],le=["CALLBACK_FAILED","CHECKOUT_SESSION_CREATE_FAILED","CONFIGURATION_INVALID","INTERNAL_SDK_ERROR","NETWORK_REQUEST_FAILED","PAYMENT_PROCESSING_FAILED","POPUP_BLOCKED","PROVIDER_LOAD_FAILED","PROVIDER_RUNTIME_FAILED","RECOVERY_FAILED","REDIRECT_RESUME_FAILED","REQUEST_TIMEOUT","SDK_INITIALIZATION_FAILED","THREE_DS_FAILED","TOKENIZATION_FAILED","VAULT_LOAD_FAILED","VAULT_SUBMIT_FAILED"],pe=["server_error","transport_error","invalid_response","provider_runtime"],me=["sdk.initialize.started","sdk.initialize.ready","sdk.cache.hit","sdk.cache.miss","checkout.mount","session.create.started","session.shell.ready","session.claim.started","session.claim.completed","session.read.started","session.request.first_byte","session.request.completed","checkout.data.ready","checkout.rendered","checkout.recovery.started","checkout.recovery.completed","checkout.unmount","provider.load.started","provider.eligibility.checked","provider.availability.checked","provider.ready","provider.handoff.requested","provider.popup.opened","provider.overlay.opened","provider.overlay.returned","provider.redirect.started","provider.redirect.resumed","vault.capture.requested","vault.widget.mounted","vault.widget.ready","vault.submission.started","vault.action.required","vault.three_ds.handoff","vault.three_ds.returned","vault.terminal","payment.method.selected","payment.intent.started","payment.intent.completed","payment.provider_confirmation.started","payment.provider_confirmation.returned","payment.tokenization.started","payment.tokenization.completed","payment.processing.started","payment.processing.completed","payment.three_ds.handoff","payment.three_ds.returned","operation.retry","operation.deduplicated","operation.fallback","operation.cache.hit","operation.cache.miss","operation.recovery.started","operation.recovery.completed","operation.state_transition"],Yr=["session_create","session_claim","session_read","intent_create","process_payment","vault_capture","account_snapshot","provider_sdk","other"],Kr=["2xx","3xx","4xx","5xx","network_error","timeout","unknown"],zr=["full","auto","confirm","setup","unknown"],Hr=["embedded","buttons","automatic","unknown"],qr=["machine","buyer","total"],Wr=["action_required","card_setup_declined","card_setup_succeeded","customer_abandoned","payment_cancelled","payment_declined","payment_authorized","payment_succeeded","validation_rejected"],ye=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,jr=/^\d{1,4}\.\d{1,4}\.\d{1,4}(?:-[0-9A-Za-z.-]{1,32})?$/,Zr=new Set(le),Xr=new Set(pe),N=new Set(Gr),$r=new Set(Lr),Jr=new Set(Br),Qr=new Set(Or),en=new Set(vr),tn=new Set(Dr),rn=new Set(Ur),nn=new Set(wr),on=new Set(Vr),an=new Set(me),sn=new Set(zr),un=new Set(Hr),cn=new Set(Yr),dn=new Set(Kr),ln=new Set(qr),pn=new Set(Wr),mn=new Set(de),Dt=12e4;function l(e,t,r){return typeof e=="string"&&t.has(e)?e:r}function yn(){try{let r=globalThis.crypto.randomUUID();if(ye.test(r))return r}catch{}let e=new Uint8Array(16);try{globalThis.crypto.getRandomValues(e)}catch{for(let r=0;r<e.length;r+=1)e[r]=Math.floor(Math.random()*256)}e[6]=(e[6]??0)&15|64,e[8]=(e[8]??0)&63|128;let t=[...e].map(r=>r.toString(16).padStart(2,"0")).join("");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}function g(e){return typeof e=="string"&&ye.test(e)?e:yn()}function gn(e){return typeof e=="string"&&ye.test(e)?e:void 0}function En(e){return typeof e=="number"&&Number.isInteger(e)&&e>=0&&e<=100?e:void 0}function L(e){return Number.isSafeInteger(e)&&e>=0?Math.min(e,1e6):0}function Ut(e){return!Number.isFinite(e)||e<0?0:Math.min(Math.round(e),Dt)}function fn(e){return Number.isFinite(e)&&e>Dt}function B(e,t){let r=En(t.attempt);return t.provider&&$r.has(t.provider)&&(e.provider=t.provider),r!==void 0&&(e.attempt=r),t.statusClass&&(e.statusClass=l(t.statusClass,dn,"unknown")),t.requestCategory&&(e.requestCategory=l(t.requestCategory,cn,"other")),t.paymentMethodCategory&&(e.paymentMethodCategory=l(t.paymentMethodCategory,Jr,"unknown")),t.walletType&&Qr.has(t.walletType)&&(e.walletType=t.walletType),t.operationOutcome&&en.has(t.operationOutcome)&&(e.operationOutcome=t.operationOutcome),t.checkoutMode&&(e.checkoutMode=l(t.checkoutMode,sn,"unknown")),t.layout&&(e.layout=l(t.layout,un,"unknown")),typeof t.inAppBrowser=="boolean"&&(e.inAppBrowser=t.inAppBrowser),t.appFamily&&tn.has(t.appFamily)&&(e.appFamily=t.appFamily),t.popupCapability&&rn.has(t.popupCapability)&&(e.popupCapability=t.popupCapability),t.presentationMode&&nn.has(t.presentationMode)&&(e.presentationMode=t.presentationMode),t.terminalReason&&on.has(t.terminalReason)&&(e.terminalReason=t.terminalReason),e}function ge(e){let t=B({eventId:g(e.eventId),class:"technical_error",code:l(e.errorCode,Zr,"INTERNAL_SDK_ERROR"),stage:l(e.stage,N,"sdk_initialize"),sequence:L(e.sequence)},e);if(e.failureCategory&&Xr.has(e.failureCategory)&&(t.failureCategory=e.failureCategory),e.stage!=="provider_confirmation"){let r=gn(e.checkoutSessionId);r&&(t.checkoutSessionId=r)}return e.durationMs!==void 0&&(t.durationMs=Ut(e.durationMs)),t}function Ee(e){return B({eventId:g(e.eventId),class:"lifecycle",name:l(e.name,an,"operation.retry"),stage:l(e.stage,N,"sdk_initialize"),sequence:L(e.sequence)},e)}function fe(e){let t={...e,stage:e.stage??"completion"};return B({eventId:g(e.eventId),class:"expected_outcome",outcome:l(e.outcome,pn,"customer_abandoned"),stage:l(e.stage,N,"completion"),sequence:L(e.sequence)},t)}function Ce(e){let t=B({eventId:g(e.eventId),class:"performance",stage:l(e.stage,N,"sdk_initialize"),sequence:L(e.sequence),durationMs:Ut(e.durationMs),durationMode:l(e.durationMode,ln,"machine")},e);return(e.durationTruncated===!0||fn(e.durationMs))&&(t.durationTruncated=!0),t}function wt(e,t){let r=e.slice(0,20).flatMap(o=>o.class==="technical_error"?[ge({...o,errorCode:o.code})]:o.class==="lifecycle"?[Ee(o)]:o.class==="expected_outcome"?[fe(o)]:o.class==="performance"?[Ce(o)]:[]),n={schemaVersion:1,batchId:g(t.batchId),correlationId:g(t.correlationId),sdk:{package:l(t.sdkPackage,mn,"@flopay/shared"),version:jr.test(t.sdkVersion)?t.sdkVersion:"0.0.0"},events:r};return JSON.stringify(n)}var Cn=new Set(["InvalidCheckoutSessionResponse","InvalidPaymentProcessResponse","InvalidSessionIntentResponse"]);function Vt(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 Gt(e,t,r="network_error"){if(e instanceof SyntaxError)return{errorCode:t,statusClass:"unknown",failureCategory:"invalid_response"};if(e instanceof u&&e.code!==void 0&&Cn.has(e.code))return{errorCode:t,statusClass:O(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 n=O(e instanceof u?e.statusCode:void 0,r);return{errorCode:t,statusClass:n,...n==="5xx"?{failureCategory:"server_error"}:{}}}function O(e,t="network_error"){if(e===void 0)return t;let r=`${Math.floor(e/100)}xx`;return r==="2xx"||r==="3xx"||r==="4xx"||r==="5xx"?r:"unknown"}function Yt(e){if(e!=null)switch(e){case"sandbox":case"stage":return"sandbox";case"live":case"production":return"live";default:console.warn(`[FloPay] Unrecognized gateway environment "${e}". Expected one of: sandbox, live, stage, production. Falling back to undefined.`);return}}var v=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function Kt(e){return typeof e=="string"&&v.test(e)}function zt(){try{let r=globalThis.crypto.randomUUID();if(v.test(r))return r}catch{}let e=new Uint8Array(16);try{globalThis.crypto.getRandomValues(e)}catch{for(let r=0;r<e.length;r+=1)e[r]=Math.floor(Math.random()*256)}e[6]=(e[6]??0)&15|64,e[8]=(e[8]??0)&63|128;let t=[...e].map(r=>r.toString(16).padStart(2,"0")).join("");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}function Ht(e){return P[e.toUpperCase()]??R}function qt(e){return/^pk_(test|live)_[A-Za-z0-9]+$/.test(e)}function Wt(e){return/^sk_(test|live)_[A-Za-z0-9]+$/.test(e)}function jt(e){return typeof e=="string"&&e.startsWith("seti_")}function Zt(...e){return/^\s*card\s+holder\s+name\s*$/i.test(e.join(" "))}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,FLAT_APPEARANCE,FLO_INSTRUMENT_CATALOG,FLO_INSTRUMENT_SCHEMA_VERSION,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,isCardHolderNamePlaceholder,isCardSetupCheckoutSession,isDetachedSessionEligible,isMoneySettledOutcome,isPostalCodeSupported,isSetupIntentClientSecret,isUuidV4,isValidEmail,isValidPostalCode,isValidPublishableKey,isValidSecretKey,needsStripeMethodExplicitConfirm,networkError,normalizeCheckoutFailureOutcome,normalizeGatewayEnvironment,partitionStripeMethods,randomUuidV4,rateLimitError,resolveAVSConfig,resolveBillingApiUrl,resolveButtonsLayoutTheme,resolveIdempotencyKey,resolveSessionCurrency,resolveStripeMethodBrandVariant,resolveTheme,serializeTelemetryBatch,stripeExpressMethodToOptionKey,telemetryStatusClass,validationError});
1
+ "use strict";var or=Object.create;var T=Object.defineProperty;var ar=Object.getOwnPropertyDescriptor;var ir=Object.getOwnPropertyNames;var sr=Object.getPrototypeOf,ur=Object.prototype.hasOwnProperty;var dr=(e,t)=>{for(var r in t)T(e,r,{get:t[r],enumerable:!0})},be=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of ir(t))!ur.call(e,o)&&o!==r&&T(e,o,{get:()=>t[o],enumerable:!(n=ar(t,o))||n.enumerable});return e};var cr=(e,t,r)=>(r=e!=null?or(sr(e)):{},be(t||!e||!e.__esModule?T(r,"default",{value:e,enumerable:!0}):r,e)),lr=e=>be(T({},"__esModule",{value:!0}),e);var Fn={};dr(Fn,{ASYNC_AUTO_CHECKOUT_CAPABILITY:()=>ze,BILLING_API_URL:()=>Ze,BILLING_API_URL_PRODUCTION:()=>V,BILLING_API_URL_STAGING:()=>E,BOLD_DARK_APPEARANCE:()=>H,BOLD_LIGHT_APPEARANCE:()=>z,BUTTONS_LAYOUT_BOLD_DARK:()=>_,BUTTONS_LAYOUT_BOLD_LIGHT:()=>A,BUTTONS_LAYOUT_DARK:()=>X,BUTTONS_LAYOUT_DEFAULT:()=>j,BUTTONS_LAYOUT_GLASS_DARK:()=>I,BUTTONS_LAYOUT_GLASS_LIGHT:()=>F,BUTTONS_LAYOUT_MINIMAL:()=>Z,BUTTONS_LAYOUT_MODERN_DARK:()=>x,BUTTONS_LAYOUT_MODERN_LIGHT:()=>S,BUTTONS_LAYOUT_ROUNDED:()=>$,CA_PROVINCES:()=>ie,COUNTRY_OPTIONS:()=>ne,CURRENCY_MAP:()=>P,DEFAULT_API_BASE_URL:()=>je,DEFAULT_API_VERSION:()=>Xe,DEFAULT_APPEARANCE:()=>G,DEFAULT_CURRENCY:()=>R,FLAT_APPEARANCE:()=>Je,FLO_INSTRUMENT_CATALOG:()=>It,FLO_INSTRUMENT_SCHEMA_VERSION:()=>Ft,FLO_SDK_CAPABILITIES_HEADER:()=>Ke,FLO_SDK_VERSION_HEADER:()=>Ye,FloPayError:()=>u,GLASS_DARK_APPEARANCE:()=>W,GLASS_LIGHT_APPEARANCE:()=>q,IDEMPOTENCY_IN_PROGRESS_CODE:()=>At,IDEMPOTENCY_KEY_HEADER:()=>xt,MAX_IDEMPOTENCY_KEY_LENGTH:()=>k,MODERN_DARK_APPEARANCE:()=>K,MODERN_LIGHT_APPEARANCE:()=>Y,NIGHT_APPEARANCE:()=>Qe,PAYPAL_VAULTED_PAYMENT_METHOD_TYPE:()=>He,SDK_VERSION:()=>Ge,STORED_PAYMENT_METHOD_UNSUPPORTED_CODE:()=>qe,STORED_PAYMENT_METHOD_UNSUPPORTED_MESSAGE:()=>We,STRIPE_EXPRESS_METHODS:()=>Q,STRIPE_METHOD_AMOUNT_LIMITS:()=>re,STRIPE_METHOD_COUNTRIES:()=>te,STRIPE_METHOD_CURRENCIES:()=>ee,STRIPE_METHOD_MATRIX:()=>y,SUPPORTED_CARD_BRANDS:()=>pt,TELEMETRY_ERROR_CODES:()=>ce,TELEMETRY_FAILURE_CATEGORIES:()=>le,TELEMETRY_LOG_NAMES:()=>pe,TELEMETRY_MAX_BATCH_BYTES:()=>Dt,TELEMETRY_MAX_BATCH_EVENTS:()=>Ut,TELEMETRY_SCHEMA_VERSION:()=>vt,TELEMETRY_SDK_PACKAGES:()=>de,THEMES:()=>J,US_STATES:()=>ae,UUID_V4:()=>v,apiError:()=>Fe,assertCaptureMethodEligible:()=>ke,authenticationError:()=>Ie,buildCheckoutDisplayData:()=>bt,buildItemPayload:()=>Oe,buildProductPayload:()=>Ne,buildSubscriptionPayload:()=>Le,buildTelemetryErrorEvent:()=>ye,buildTelemetryLogEvent:()=>ge,buildTelemetryPerformanceEvent:()=>fe,buildTelemetryTerminalEvent:()=>Ee,classifyPaymentRejection:()=>Yt,classifyTelemetryFailure:()=>Kt,configureFlopay:()=>Be,dropThirdPartyOnlyError:()=>Bt,filterStripeMethodsByAmount:()=>ct,filterStripeMethodsByCountry:()=>dt,filterStripeMethodsByCurrency:()=>ut,foldIntoProducts:()=>U,generateIdempotencyKey:()=>se,getConfiguredBillingApiUrl:()=>h,getCountryByCode:()=>gt,getCurrencyByCountry:()=>Wt,getFloPayEnvironment:()=>ve,getPostalCodeExample:()=>Ot,getPostalCodeLabel:()=>mt,getStateFromPostalCode:()=>Pt,getStateLabel:()=>Tt,getStateOptions:()=>Ct,getStripeMethodDisplayName:()=>at,hasVendoredStripeMethodLogo:()=>ot,isAVSEnabled:()=>ft,isAVSFieldVisible:()=>Et,isAuthorizationOnlySession:()=>Se,isCardHolderNamePlaceholder:()=>Xt,isCardSetupCheckoutSession:()=>he,isDetachedSessionEligible:()=>Me,isMoneySettledOutcome:()=>xe,isPostalCodeSupported:()=>Mt,isSetupIntentClientSecret:()=>$t,isUuidV4:()=>Ht,isValidEmail:()=>St,isValidPostalCode:()=>Nt,isValidPublishableKey:()=>jt,isValidSecretKey:()=>Zt,needsStripeMethodExplicitConfirm:()=>it,networkError:()=>Re,normalizeCheckoutFailureOutcome:()=>Ae,normalizeGatewayEnvironment:()=>zt,partitionStripeMethods:()=>lt,randomUuidV4:()=>qt,rateLimitError:()=>Pe,resolveAVSConfig:()=>oe,resolveBillingApiUrl:()=>$e,resolveButtonsLayoutTheme:()=>et,resolveIdempotencyKey:()=>_t,resolveSessionCurrency:()=>b,resolveStripeMethodBrandVariant:()=>st,resolveTheme:()=>tt,serializeTelemetryBatch:()=>Gt,stripeExpressMethodToOptionKey:()=>rt,telemetryStatusClass:()=>B,validationError:()=>_e});module.exports=lr(Fn);function he(e){return e.checkoutMode==="setup"&&e.amount===0&&(e.products?.length??0)===0}function Se(e){return e?.captureMethod==="manual"}function xe(e,t){return e==="requires_capture"?t!=="manual":e==="succeeded"||e==="complete"||e==="completed"||e==="captured"||e==="paid"}function Ae(e){if(typeof e!="string"||e.length===0)return;let t=e.trim().toLowerCase().replace(/[\s-]+/g,"_");if(t==="capture_failed"||t.includes("capture")&&(t.includes("fail")||t.includes("error")))return"capture_failed";if(t==="authorization_expired"||t.includes("expired")||t.includes("expiry"))return"authorization_expired";if(t==="authentication_required"||t.includes("3ds")||t.includes("three_d")||t.includes("authentication")||t.includes("action_required"))return"authentication_required";if(t==="authorization_declined"||t.includes("declin")||t.includes("authorization_fail"))return"authorization_declined"}var u=class extends Error{constructor(t,r,n){super(t),this.name="FloPayError",this.type=r,this.code=n?.code,this.declineCode=n?.declineCode,this.param=n?.param,this.statusCode=n?.statusCode,n?.details!==void 0&&(this.details=n.details),n?.cause!==void 0&&(this.cause=n.cause),Object.setPrototypeOf(this,new.target.prototype)}};function _e(e,t){return new u(e,"validation_error",{param:t})}function Fe(e,t,r){return new u(e,"api_error",{code:t,statusCode:r})}function Ie(e){return new u(e,"authentication_error")}function Pe(e){return new u(e,"rate_limit_error")}function Re(e){return new u(e,"network_error")}function ke(e){if(!(e.captureMethod!=="manual"||!(e.products??U(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 Me(e){return e.deferDataAttachment!==!1&&(e.checkoutMode??"full")==="full"&&!e.tokenizedData}function a(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function b(e,t,r,n){let o=a(e);if(o)return o;for(let i of t??[]){let d=a(i.currency);if(d)return d}for(let i of r??[]){let d=a(i.currency);if(d)return d}for(let i of n??[]){let d=a(i.currency);if(d)return d}return null}function U(e,t){let r=[];for(let n of t??[])r.push({type:"subscription",code:a(n.code)??a(n.providerPlanId),providerPlanId:n.providerPlanId,name:a(n.subscriptionName)??a(n.providerPlanName)??null,subscriptionName:n.subscriptionName??null,providerPlanName:n.providerPlanName??null,quantity:n.quantity,totalAmount:n.totalAmount,overrideAmount:n.overrideAmount,currency:n.currency,metadata:n.metadata});for(let n of e??[])r.push({type:"item",code:a(n.code)??a(n.providerItemId),providerItemId:n.providerItemId,name:a(n.itemName)??a(n.providerItemName)??null,itemName:n.itemName??null,providerItemName:n.providerItemName??null,quantity:n.quantity,totalAmount:n.totalAmount,overrideAmount:n.overrideAmount,currency:n.currency,metadata:n.metadata});return r}function Ne(e,t){let r=a(e.code)??a(e.providerItemId)??a(e.providerPlanId);if(!r)throw new Error("CheckoutProduct requires `code` (or the deprecated `providerItemId` / `providerPlanId`).");let n=a(e.name)??a(e.itemName)??a(e.providerItemName)??a(e.subscriptionName)??a(e.providerPlanName)??null,o={type:e.type,code:r,name:n,quantity:e.quantity??1,totalAmount:e.totalAmount,overrideAmount:e.overrideAmount??null,currency:a(e.currency)??t};return e.metadata&&(o.metadata=e.metadata),o}function Oe(e,t){let r=a(e.code)??a(e.providerItemId);if(!r)throw new Error("CheckoutItem requires either `code` or the deprecated `providerItemId`.");let n=a(e.itemName)??a(e.providerItemName)??null,o={code:r,providerItemId:a(e.providerItemId)??r,itemName:n,providerItemName:a(e.providerItemName)??n,quantity:e.quantity??1,totalAmount:e.totalAmount,overrideAmount:e.overrideAmount??null,currency:a(e.currency)??t};return e.metadata&&(o.metadata=e.metadata),o}function Le(e,t){let r=a(e.code)??a(e.providerPlanId);if(!r)throw new Error("CheckoutSubscription requires either `code` or the deprecated `providerPlanId`.");let n=a(e.subscriptionName)??a(e.providerPlanName)??null,o={code:r,providerPlanId:a(e.providerPlanId)??r,subscriptionName:n,providerPlanName:a(e.providerPlanName)??n,quantity:e.quantity??1,totalAmount:e.totalAmount,overrideAmount:e.overrideAmount??null,currency:a(e.currency)??t};return e.metadata&&(o.metadata=e.metadata),o}var pr={local:"https://flo.ngrok.pro",staging:"https://api.stage.flopay.com",production:"https://api.flopay.com"},w="staging";function Be(e){w=e.environment}function h(){return pr[w]}function ve(){return w}var De=["alipay","bancontact","blik","eps","giropay","ideal","klarna","p24","sepa_debit","wechat_pay"];var Ge="1.9.22",Ye="x-flo-sdk-version",Ke="x-flo-sdk-capabilities",ze="async-auto-checkout-v1",He="paypal_vaulted",qe="stored_payment_method_unsupported",We="This saved payment method can\u2019t be used for this payment. Choose another payment method.",E="https://api.stage.flopay.com",V="https://api.flopay.com",je=E,Ze=E;function $e(e){return e||(typeof process<"u"&&process.env?.NEXT_PUBLIC_FLOPAY_ENV?process.env.NEXT_PUBLIC_FLOPAY_ENV==="production"?V:E:h())}var Xe="2024-01-01",G={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:{...G.variables,borderRadius:"4px"}},Qe={theme:"night",variables:{colorPrimary:"#7B7BFF",colorBackground:"#1A1A2E",colorText:"#E0E0E0",colorDanger:"#FF6B6B",borderRadius:"8px",fontFamily:"Poppins, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"4px"}},Y={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"}}},K={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"}}},z={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"}}},H={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)"}}},W={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)"}}},j={},Z={cardButton:{border:"none",backgroundColor:"#f9fafb",boxShadow:"none"},cardFormContainer:{backgroundColor:"#f9fafb",border:"none"},cardInputBorder:"#e5e7eb",backButtonIcon:{backgroundColor:"#e5e7eb"},submitButton:{borderRadius:"6px"}},$={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"}},X={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"}},S={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"}},x={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"}},A={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"}},F={cardFormContainer:{background:"linear-gradient(135deg, #DBEAFE 0%, #BFDBFE 100%)",borderRadius:"24px",border:"1px solid rgba(255,255,255,0.6)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.6), 0 12px 40px rgba(23,133,224,0.15)",padding:"28px"},cardButton:{backgroundColor:"rgba(255,255,255,0.7)",backdropFilter:"blur(20px)",borderRadius:"16px",border:"1px solid rgba(255,255,255,0.6)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.5), 0 4px 16px rgba(23,133,224,0.1)",padding:"14px 18px"},cardInputBorder:"rgba(255,255,255,0.6)",nameInput:{backgroundColor:"rgba(255,255,255,0.6)",backdropFilter:"blur(10px)",border:"1px solid rgba(255,255,255,0.6)",borderRadius:"14px",padding:"14px 16px"},submitButton:{backgroundColor:"rgba(23,133,224,0.95)",backdropFilter:"blur(10px)",borderRadius:"16px",padding:"16px 24px",boxShadow:"0 10px 30px rgba(23,133,224,0.3), inset 0 1px 0 rgba(255,255,255,0.2)",fontWeight:"600",color:"#FFFFFF"},title:{color:"#1E293B",fontWeight:"600",letterSpacing:"-0.01em"},titleFontSize:"20px",backButton:{color:"#1785E0",fontWeight:"500"},backButtonIcon:{backgroundColor:"rgba(255,255,255,0.7)"}},I={cardFormContainer:{background:"linear-gradient(135deg, #0C2B4D 0%, #0F172A 100%)",borderRadius:"24px",border:"1px solid rgba(255,255,255,0.08)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.06), 0 20px 50px rgba(0,0,0,0.4)",padding:"28px"},cardButton:{backgroundColor:"rgba(15,23,42,0.6)",backdropFilter:"blur(20px)",borderRadius:"16px",border:"1px solid rgba(255,255,255,0.08)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.05), 0 4px 16px rgba(0,0,0,0.3)",padding:"14px 18px",color:"#F1F5F9"},cardInputBorder:"rgba(255,255,255,0.08)",cardInputBackground:"rgba(15,23,42,0.6)",cardInputColor:"#F1F5F9",cardInputPlaceholderColor:"#64748B",nameInput:{backgroundColor:"rgba(15,23,42,0.6)",backdropFilter:"blur(10px)",border:"1px solid rgba(255,255,255,0.08)",borderRadius:"14px",padding:"14px 16px",color:"#F1F5F9"},submitButton:{backgroundColor:"rgba(96,165,250,0.9)",backdropFilter:"blur(10px)",borderRadius:"16px",padding:"16px 24px",boxShadow:"0 10px 30px rgba(96,165,250,0.35), inset 0 1px 0 rgba(255,255,255,0.15)",fontWeight:"600",color:"#0F172A"},title:{color:"#F1F5F9",fontWeight:"600",letterSpacing:"-0.01em"},titleFontSize:"20px",backButton:{color:"#60A5FA",fontWeight:"500"},backButtonIcon:{backgroundColor:"rgba(255,255,255,0.08)"},countrySelect:{backgroundColor:"rgba(15,23,42,0.6)",color:"#F1F5F9"},zipInput:{backgroundColor:"rgba(15,23,42,0.6)",color:"#F1F5F9"}};function et(e){switch(e){case"minimal":return Z;case"rounded":return $;case"dark":return X;case"modern-light":return S;case"modern-dark":return x;case"bold-light":return A;case"bold-dark":return _;case"glass-light":return F;case"glass-dark":return I;default:return j}}var J={"modern-light":{appearance:Y,buttonsLayout:S},"modern-dark":{appearance:K,buttonsLayout:x},"bold-light":{appearance:z,buttonsLayout:A},"bold-dark":{appearance:H,buttonsLayout:_},"glass-light":{appearance:q,buttonsLayout:F},"glass-dark":{appearance:W,buttonsLayout:I}};function tt(e){if(!(!e||e==="classic"))return J[e]}function rt(e){switch(e){case"apple_pay":return"applePay";case"google_pay":return"googlePay";case"amazon_pay":return"amazonPay";default:return e}}function mr(e,t,r){return`<svg viewBox="0 0 22 22"><circle cx="11" cy="11" r="11" fill="${t}"/><text x="11" y="15.5" text-anchor="middle" font-size="13" font-weight="700" font-family="sans-serif" fill="${r}">${e}</text></svg>`}function Ue(e,t){return`<svg viewBox="0 0 22 22"><circle cx="11" cy="11" r="11" fill="${e}"/><g fill="${t}"><path d="M11 4 L17.5 8 L4.5 8 Z"/><rect x="5" y="8.4" width="12" height="1.2" rx="0.3"/><rect x="5.9" y="10" width="1.5" height="5"/><rect x="8.55" y="10" width="1.5" height="5"/><rect x="11.95" y="10" width="1.5" height="5"/><rect x="14.6" y="10" width="1.5" height="5"/><rect x="4.6" y="15.4" width="12.8" height="1.5" rx="0.3"/></g></svg>`}function we(e,t,r,n=t){return{backgroundColor:t,borderColor:t,textColor:r,logoSvg:mr(e,r,n)}}function c(e,t,r,n=t,o=r,i=n){return{light:we(e,t,r),dark:we(e,n,o,i)}}var nt=["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"],yr=[...nt,"JP","MX","US"],y={apple_pay:{displayName:"Apple Pay",currencies:["*"],express:!0,needsExplicitConfirm:!1},google_pay:{displayName:"Google Pay",currencies:["*"],express:!0,needsExplicitConfirm:!1},paypal:{displayName:"PayPal",currencies:["eur","gbp","usd","cad","aud","nzd","chf","jpy","pln","sek","nok","dkk","czk","huf"],express:!0,needsExplicitConfirm:!1},link:{displayName:"Link",currencies:["usd","eur"],express:!0,needsExplicitConfirm:!1},amazon_pay:{displayName:"Amazon Pay",currencies:["usd","eur","gbp"],express:!0,needsExplicitConfirm:!1},klarna:{displayName:"Klarna",currencies:["usd","eur","gbp","aud","nzd","cad","chf","sek","nok","dkk","pln","czk","ron"],amounts:{usd:{min:100},eur:{min:100},gbp:{min:100}},theme:c("K","#FFB3C7","#0A0B09")},affirm:{displayName:"Affirm",currencies:["usd"],countries:["US","CA"],amounts:{usd:{min:3500,max:3e6}},needsExplicitConfirm:!1,theme:c("a","#060F33","#FFFFFF","#0FA0EA","#060F33","#FFFFFF")},cashapp:{displayName:"Cash App Pay",currencies:["usd"],countries:["US"],amounts:{usd:{min:50,max:99999999}},needsExplicitConfirm:!1,theme:c("$","#00D54B","#0A1F0E")},samsung_pay:{displayName:"Samsung Pay",currencies:["krw"],countries:["KR"],needsExplicitConfirm:!1},afterpay_clearpay:{displayName:"Afterpay",currencies:["usd","aud","cad","gbp","nzd"],countries:["US","CA","GB","AU","NZ"],amounts:{usd:{min:100,max:2e5},cad:{min:100,max:2e5},gbp:{min:100,max:12e4},aud:{min:100,max:2e5},nzd:{min:100,max:2e5}},theme:c("A","#B2FCE4","#0A0B09")},alipay:{displayName:"Alipay",currencies:["usd","cny"],theme:c("A","#1677FF","#FFFFFF")},au_becs_debit:{displayName:"BECS Direct Debit",currencies:["aud"],countries:["AU"]},bacs_debit:{displayName:"Bacs Debit",currencies:["gbp"],countries:["GB"]},bancontact:{displayName:"Bancontact",currencies:["eur"],countries:["BE"],theme:c("B","#FFDD55","#1E3791","#1E3791","#FFDD55")},bizum:{displayName:"Bizum",currencies:["eur"],countries:["ES"],theme:c("B","#00BFB3","#FFFFFF")},blik:{displayName:"BLIK",currencies:["pln"],countries:["PL"],theme:c("B","#000000","#FFFFFF","#FFFFFF","#000000")},boleto:{displayName:"Boleto",currencies:["brl"],countries:["BR"]},customer_balance:{displayName:"Bank Transfer",currencies:["eur","usd"],countries:yr,theme:{light:{backgroundColor:"#1F2937",textColor:"#FFFFFF",borderColor:"#1F2937",logoSvg:Ue("#1F2937","#FFFFFF")},dark:{backgroundColor:"#374151",textColor:"#FFFFFF",borderColor:"#374151",logoSvg:Ue("#374151","#FFFFFF")}}},eps:{displayName:"EPS",currencies:["eur"],countries:["AT"],theme:c("E","#C8102E","#FFFFFF")},giropay:{displayName:"Giropay",currencies:["eur"],countries:["DE"],theme:c("G","#0F4197","#FFFFFF")},ideal:{displayName:"iDEAL",currencies:["eur"],countries:["NL"],theme:c("i","#CC0066","#FFFFFF")},konbini:{displayName:"Konbini",currencies:["jpy"],countries:["JP"]},kr_card:{displayName:"Korean Card",currencies:["krw"],countries:["KR"],theme:c("K","#0B3D91","#FFFFFF")},multibanco:{displayName:"Multibanco",currencies:["eur"],countries:["PT"]},oxxo:{displayName:"OXXO",currencies:["mxn"],countries:["MX"]},p24:{displayName:"Przelewy24",currencies:["eur","pln"],countries:["PL"],theme:c("P","#D90F1B","#FFFFFF")},paynow:{displayName:"PayNow",currencies:["sgd"],countries:["SG"]},pix:{displayName:"Pix",currencies:["brl"],countries:["BR"]},promptpay:{displayName:"PromptPay",currencies:["thb"],countries:["TH"]},sepa_debit:{displayName:"SEPA Debit",currencies:["eur"],countries:nt,theme:c("\u20AC","#10298E","#FFFFFF","#3056D3")},sofort:{displayName:"Sofort",currencies:["eur"],countries:["AT","BE","DE","ES","IT","NL"],theme:c("S","#EF809F","#FFFFFF")},upi:{displayName:"UPI",currencies:["inr"],countries:["IN"],theme:c("U","#FF7909","#FFFFFF")},us_bank_account:{displayName:"US Bank Account",currencies:["usd"],countries:["US"]},wechat_pay:{displayName:"WeChat Pay",currencies:["usd","cny"],theme:c("W","#07C160","#FFFFFF")},zip:{displayName:"Zip",currencies:["aud"],countries:["AU","NZ"]}};function ot(e){return De.includes(e)}var Q=Object.entries(y).filter(([,e])=>e.express).map(([e])=>e),gr=new Set(Q),ee=Object.fromEntries(Object.entries(y).map(([e,t])=>[e,t.currencies])),te=Object.fromEntries(Object.entries(y).filter(([,e])=>e.countries).map(([e,t])=>[e,t.countries]));function at(e){return e?y[e]?.displayName??e.split("_").filter(Boolean).map(t=>t[0].toUpperCase()+t.slice(1)).join(" "):"this method"}function it(e){return y[e]?.needsExplicitConfirm!==!1}function st(e,t){let r=y[e]?.theme;return r?(typeof t=="string"&&t.endsWith("-dark")?r.dark:r.light)??r.light??null:null}function ut(e,t){if(!e||e.length===0)return[];if(!t)return[...e];let r=t.trim().toLowerCase();return r?e.filter(n=>{let o=ee[n];return o?o.includes("*")||o.includes(r):!0}):[...e]}function dt(e,t){if(!e||e.length===0)return[];if(!t)return[...e];let r=t.trim().toUpperCase();return r?e.filter(n=>{let o=te[n];return o?o.includes("*")||o.includes(r):!0}):[...e]}var re=Object.fromEntries(Object.entries(y).filter(([,e])=>e.amounts).map(([e,t])=>[e,t.amounts]));function ct(e,t,r){if(!e||e.length===0)return[];if(!t||typeof r!="number"||!Number.isFinite(r))return[...e];let n=t.trim().toLowerCase();return n?e.filter(o=>{let i=re[o];if(!i)return!0;let d=i[n];return d?!(typeof d.min=="number"&&r<d.min||typeof d.max=="number"&&r>d.max):!0}):[...e]}function lt(e,t){if(!e||e.length===0)return{expressMethods:[],paymentElementMethods:[]};let r=[],n=[],o=new Set,i=new Set;for(let d of e){if(typeof d!="string")continue;let p=d.trim();if(!(!p||p==="card")&&!(t?.excludePaypal&&p==="paypal"))if(gr.has(p)){if(o.has(p))continue;o.add(p),r.push(p)}else{if(i.has(p))continue;i.add(p),n.push(p)}}return{expressMethods:r,paymentElementMethods:n}}var pt=["visa","mastercard","mastercard_debit","amex","discover"],P={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}},R={currency:"USD",symbol:"$",country:"United States",countryCode:"US",tax:0};function mt(e){switch(e.toUpperCase()){case"US":return"ZIP Code";case"GB":return"Postcode";case"CA":return"Postal Code";case"AU":case"NZ":return"Postcode";case"IE":return"Eircode";default:return"Postal Code"}}var Er=new Intl.DisplayNames(["en"],{type:"region"});function fr(e){return[...e.toUpperCase()].map(t=>String.fromCodePoint(127397+t.charCodeAt(0))).join("")}var yt=["US","GB","CA","AU","NZ","IE","DE","FR"],Cr=["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:Er.of(e)??e,flag:fr(e)}}var Tr=new Set(yt),br=Cr.filter(e=>!Tr.has(e)),ne=[...yt.map(Ve),...br.map(Ve)];function gt(e){return ne.find(t=>t.code===e)}var hr={country:!0,postal_code:!0};function oe(e){return e===!0?hr:e||null}function Et(e,t){if(!e)return!1;if(e===!0)return!0;let r=t.trim().toUpperCase();return e.some(n=>n.trim().toUpperCase()===r)}function ft(e){let t=oe(e);return t?Object.values(t).some(r=>r===!0||Array.isArray(r)&&r.length>0):!1}var ae=[{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"}],ie=[{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 ae;case"CA":return ie;default:return null}}function Tt(e){switch(e.toUpperCase()){case"US":return"State";case"CA":return"Province";case"GB":return"County";case"AU":return"State / Territory";default:return"State / Province / Region"}}function bt(e,t={}){let r=[],n=e.products??[],o=n.filter(s=>s.type==="subscription"),i=n.filter(s=>s.type!=="subscription"),p=(b(e.currency,void 0,void 0,n)??"USD").toUpperCase();for(let s of o){let m=s.totalAmount??0,C=s.overrideAmount??m,D=s.name||s.code||"Subscription";D==="4-WEEK PLAN"&&C<=1&&(D="7-DAY TRIAL: FULL ACCESS"),r.push({name:D,quantity:s.quantity,price:C,originalPrice:m})}if(!(t.hideBundledItems===!0&&o.length>0&&i.length>0))for(let s of i){let m=s.totalAmount??0,C=s.overrideAmount??m;r.push({name:s.name||s.code||"Item",quantity:s.quantity,price:C,originalPrice:m})}r.length===0&&r.push({name:"Purchase",quantity:1,price:e.amount/100,originalPrice:e.amount/100});let Jt=r.reduce((s,m)=>s+m.originalPrice*m.quantity,0),Qt=r.reduce((s,m)=>s+m.price*m.quantity,0),er=typeof e.totalAmount=="number"&&Number.isFinite(e.totalAmount),tr=typeof e.subtotalAmount=="number"&&Number.isFinite(e.subtotalAmount),rr=typeof e.discountAmount=="number"&&Number.isFinite(e.discountAmount),Ce=er?e.totalAmount:Qt,f=tr?e.subtotalAmount:Jt,Te=Math.max(0,f-Ce),nr=f>0?Math.round(Te/f*100):0;return{items:r,currency:p,total:Ce,originalTotal:f,totalSave:Te,discountPercent:nr,...rr?{couponDiscount:e.discountAmount}:{}}}var Sr=/^[a-z\d!#$%&'*+\-/=?^_`{|}~\u00A1-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+$/i,xr=/^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*$/i,Ar=/^([a-z\u00A1-\u00A8\u00AA-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i,_r=/^[a-z\u00a1-\uffff0-9-]+$/i;function ht(e){return encodeURI(e).split(/%..|./).length-1}function Fr(e){let t=e.split("."),r=t[t.length-1]??"";return t.length>=2&&Ar.test(r)&&!/\s/.test(r)&&t.every(n=>n.length<=63&&_r.test(n)&&!/[\uff01-\uff5e]/.test(n)&&!/^-|-$/.test(n)&&!/_/.test(n))}function St(e){if(typeof e!="string"||e.length===0||e.length>254)return!1;let t=e.split("@"),r=t.pop()??"",n=t.join("@");return ht(n)>64||ht(r)>254||!Fr(r)?!1:n.startsWith('"')&&n.endsWith('"')?xr.test(n.slice(1,-1)):n.split(".").every(o=>Sr.test(o))}var xt="Idempotency-Key",k=255,At="IdempotencyKeyInProgress";function Ir(){let e=globalThis.crypto;if(e&&(typeof e.randomUUID=="function"||typeof e.getRandomValues=="function"))return e}function se(){let e=Ir();if(!e)return;if(typeof e.randomUUID=="function")return e.randomUUID();if(typeof e.getRandomValues!="function")return;let t=new Uint8Array(16);return e.getRandomValues(t),Array.from(t,r=>r.toString(16).padStart(2,"0")).join("")}function _t(e){if(e===void 0)return se();if(typeof e!="string"||e.trim()==="")throw new u("idempotencyKey must be a non-empty string identifying exactly one checkout creation.","validation_error",{code:"InvalidIdempotencyKey",param:"idempotencyKey"});if(e.length>k)throw new u(`idempotencyKey must be at most ${k} characters.`,"validation_error",{code:"InvalidIdempotencyKey",param:"idempotencyKey"});return e}var Ft=1,It=[{name:"checkout_mount"},{name:"sdk_loaded"},{name:"form_rendered"},{name:"card_expanded"},{name:"tokenize"},{name:"process_attempt"},{name:"3ds_challenge"},{name:"checkout_error",phase:"session_create"},{name:"checkout_error",phase:"sdk_load"},{name:"checkout_error",phase:"process"},{name:"checkout_error",phase:"wallets"}];var Pr=[[5,5,"NY"],[10,27,"MA"],[28,29,"RI"],[30,38,"NH"],[39,49,"ME"],[50,59,"VT"],[60,69,"CT"],[70,89,"NJ"],[100,149,"NY"],[150,196,"PA"],[197,199,"DE"],[200,205,"DC"],[206,219,"MD"],[220,246,"VA"],[247,268,"WV"],[270,289,"NC"],[290,299,"SC"],[300,319,"GA"],[320,349,"FL"],[350,369,"AL"],[370,385,"TN"],[386,397,"MS"],[398,399,"GA"],[400,427,"KY"],[430,459,"OH"],[460,479,"IN"],[480,499,"MI"],[500,528,"IA"],[530,549,"WI"],[550,567,"MN"],[570,577,"SD"],[580,588,"ND"],[590,599,"MT"],[600,629,"IL"],[630,658,"MO"],[660,679,"KS"],[680,693,"NE"],[700,714,"LA"],[716,729,"AR"],[730,749,"OK"],[750,799,"TX"],[800,816,"CO"],[820,831,"WY"],[832,838,"ID"],[840,847,"UT"],[850,865,"AZ"],[870,884,"NM"],[889,898,"NV"],[900,961,"CA"],[967,968,"HI"],[970,979,"OR"],[980,994,"WA"],[995,999,"AK"]],Rr={A:"NL",B:"NS",C:"PE",E:"NB",G:"QC",H:"QC",J:"QC",K:"ON",L:"ON",M:"ON",N:"ON",P:"ON",R:"MB",S:"SK",T:"AB",V:"BC",X:"NT",Y:"YT"};function kr(e){let t=e.replace(/\D/g,"");if(t.length<5)return null;let r=Number.parseInt(t.slice(0,3),10);if(!Number.isFinite(r))return null;for(let[n,o,i]of Pr)if(r>=n&&r<=o)return i;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 Rr[r]??null}function Pt(e,t){if(!e||!t)return null;let r=e.trim().toUpperCase(),n=t.trim();if(!n)return null;switch(r){case"US":return kr(n);case"CA":return Mr(n);default:return null}}var Nr=cr(require("validator/lib/isPostalCode.js"),1),M=Nr,Rt=typeof M.default=="function"?M.default:M.default?.default;if(typeof Rt!="function")throw new Error("validator/lib/isPostalCode.js interop failed: unexpected module shape. This likely means the bundler's CJS/ESM interop changed.");var kt=new Set(M.locales.map(e=>e.toUpperCase())),Or={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 ue(e){let t=(e??"").trim().toUpperCase();return t?t.length===2?t:Or[t]??null:null}var Lr={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 Mt(e){let t=ue(e);return t!==null&&kt.has(t)}function Nt(e,t){let r=(t??"").trim();if(!r)return!0;let n=ue(e);if(n===null||!kt.has(n))return!0;try{return Rt(r,n)}catch{return!0}}function Ot(e){let t=ue(e);return t?Lr[t]:void 0}var Br=/(?:^|\/)dahlia\/stripe\.js(?:$|[?#])/i,vr=/^dahlia\/stripe$/i,Dr=/^(?:chrome|moz|safari-web)-extension:\/\//i,Ur=/^@flopay(?:\/|$)/i;function Lt(e){return Br.test(e)||Dr.test(e)}function wr(e){let t=[e.filename,e.abs_path].filter(r=>r!==void 0&&r!=="<anonymous>");return e.module!==void 0&&Ur.test(e.module)||t.some(r=>!Lt(r))?"first-party":e.module!==void 0&&vr.test(e.module)||t.some(Lt)?"third-party-hosted":t.length===0?"injected":"first-party"}function Bt(e){let t=e.exception?.values;if(!t||t.length===0)return e;let r=[];for(let o of t){let i=o.stacktrace?.frames;if(!i||i.length===0)return e;r.push(...i)}let n=r.map(wr);return!n.includes("first-party")&&n.includes("third-party-hosted")?null:e}var vt=1,de=["@flopay/shared","@flopay/js","@flopay/react"],Dt=32768,Ut=20,Vr=["stripe","paypal"],Gr=["card","wallet","paypal","apm","saved","unknown"],Yr=["apple_pay","google_pay"],Kr=["watchdog_expired","resolved","rejected","returned_error","resolved_late","rejected_late","returned_error_late"],zr=["none","facebook","instagram","tiktok","generic_webview","other_in_app"],Hr=["unknown","available","blocked"],qr=["popup","app_switch","redirect"],Wr=["approved","cancelled","provider_declined","popup_blocked","provider_error","overlay_timeout"],jr=["callback","sdk_initialize","checkout_mount","session_create","session_shell","session_claim","session_read","session_first_byte","session_complete","checkout_data_ready","checkout_render","provider_load","provider_ready","provider_confirmation","overlay_open","overlay_return","redirect","redirect_resume","vault_request","vault_mount","vault_ready","vault_submit","tokenization","three_ds_handoff","three_ds_return","processing","recovery","completion","unmount","total_journey"],ce=["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"],le=["server_error","transport_error","invalid_response","provider_runtime"],pe=["sdk.initialize.started","sdk.initialize.ready","sdk.cache.hit","sdk.cache.miss","checkout.mount","session.create.started","session.shell.ready","session.claim.started","session.claim.completed","session.read.started","session.request.first_byte","session.request.completed","checkout.data.ready","checkout.rendered","checkout.recovery.started","checkout.recovery.completed","checkout.unmount","provider.load.started","provider.eligibility.checked","provider.availability.checked","provider.ready","provider.handoff.requested","provider.popup.opened","provider.overlay.opened","provider.overlay.returned","provider.redirect.started","provider.redirect.resumed","vault.capture.requested","vault.widget.mounted","vault.widget.ready","vault.submission.started","vault.action.required","vault.three_ds.handoff","vault.three_ds.returned","vault.terminal","payment.method.selected","payment.intent.started","payment.intent.completed","payment.provider_confirmation.started","payment.provider_confirmation.returned","payment.tokenization.started","payment.tokenization.completed","payment.processing.started","payment.processing.completed","payment.three_ds.handoff","payment.three_ds.returned","operation.retry","operation.deduplicated","operation.fallback","operation.cache.hit","operation.cache.miss","operation.recovery.started","operation.recovery.completed","operation.state_transition"],Zr=["session_create","session_claim","session_read","intent_create","process_payment","vault_capture","account_snapshot","provider_sdk","other"],$r=["2xx","3xx","4xx","5xx","network_error","timeout","unknown"],Xr=["full","auto","confirm","setup","unknown"],Jr=["embedded","buttons","automatic","unknown"],Qr=["machine","buyer","total"],en=["action_required","card_setup_declined","card_setup_succeeded","customer_abandoned","payment_cancelled","payment_declined","payment_authorized","payment_succeeded","validation_rejected"],me=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,tn=/^\d{1,4}\.\d{1,4}\.\d{1,4}(?:-[0-9A-Za-z.-]{1,32})?$/,rn=new Set(ce),nn=new Set(le),N=new Set(jr),on=new Set(Vr),an=new Set(Gr),sn=new Set(Yr),un=new Set(Kr),dn=new Set(zr),cn=new Set(Hr),ln=new Set(qr),pn=new Set(Wr),mn=new Set(pe),yn=new Set(Xr),gn=new Set(Jr),En=new Set(Zr),fn=new Set($r),Cn=new Set(Qr),Tn=new Set(en),bn=new Set(de),wt=12e4;function l(e,t,r){return typeof e=="string"&&t.has(e)?e:r}function hn(){try{let r=globalThis.crypto.randomUUID();if(me.test(r))return r}catch{}let e=new Uint8Array(16);try{globalThis.crypto.getRandomValues(e)}catch{for(let r=0;r<e.length;r+=1)e[r]=Math.floor(Math.random()*256)}e[6]=(e[6]??0)&15|64,e[8]=(e[8]??0)&63|128;let t=[...e].map(r=>r.toString(16).padStart(2,"0")).join("");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}function g(e){return typeof e=="string"&&me.test(e)?e:hn()}function Sn(e){return typeof e=="string"&&me.test(e)?e:void 0}function xn(e){return typeof e=="number"&&Number.isInteger(e)&&e>=0&&e<=100?e:void 0}function O(e){return Number.isSafeInteger(e)&&e>=0?Math.min(e,1e6):0}function Vt(e){return!Number.isFinite(e)||e<0?0:Math.min(Math.round(e),wt)}function An(e){return Number.isFinite(e)&&e>wt}function L(e,t){let r=xn(t.attempt);return t.provider&&on.has(t.provider)&&(e.provider=t.provider),r!==void 0&&(e.attempt=r),t.statusClass&&(e.statusClass=l(t.statusClass,fn,"unknown")),t.requestCategory&&(e.requestCategory=l(t.requestCategory,En,"other")),t.paymentMethodCategory&&(e.paymentMethodCategory=l(t.paymentMethodCategory,an,"unknown")),t.walletType&&sn.has(t.walletType)&&(e.walletType=t.walletType),t.operationOutcome&&un.has(t.operationOutcome)&&(e.operationOutcome=t.operationOutcome),t.checkoutMode&&(e.checkoutMode=l(t.checkoutMode,yn,"unknown")),t.layout&&(e.layout=l(t.layout,gn,"unknown")),typeof t.inAppBrowser=="boolean"&&(e.inAppBrowser=t.inAppBrowser),t.appFamily&&dn.has(t.appFamily)&&(e.appFamily=t.appFamily),t.popupCapability&&cn.has(t.popupCapability)&&(e.popupCapability=t.popupCapability),t.presentationMode&&ln.has(t.presentationMode)&&(e.presentationMode=t.presentationMode),t.terminalReason&&pn.has(t.terminalReason)&&(e.terminalReason=t.terminalReason),e}function ye(e){let t=L({eventId:g(e.eventId),class:"technical_error",code:l(e.errorCode,rn,"INTERNAL_SDK_ERROR"),stage:l(e.stage,N,"sdk_initialize"),sequence:O(e.sequence)},e);if(e.failureCategory&&nn.has(e.failureCategory)&&(t.failureCategory=e.failureCategory),e.stage!=="provider_confirmation"){let r=Sn(e.checkoutSessionId);r&&(t.checkoutSessionId=r)}return e.durationMs!==void 0&&(t.durationMs=Vt(e.durationMs)),t}function ge(e){return L({eventId:g(e.eventId),class:"lifecycle",name:l(e.name,mn,"operation.retry"),stage:l(e.stage,N,"sdk_initialize"),sequence:O(e.sequence)},e)}function Ee(e){let t={...e,stage:e.stage??"completion"};return L({eventId:g(e.eventId),class:"expected_outcome",outcome:l(e.outcome,Tn,"customer_abandoned"),stage:l(e.stage,N,"completion"),sequence:O(e.sequence)},t)}function fe(e){let t=L({eventId:g(e.eventId),class:"performance",stage:l(e.stage,N,"sdk_initialize"),sequence:O(e.sequence),durationMs:Vt(e.durationMs),durationMode:l(e.durationMode,Cn,"machine")},e);return(e.durationTruncated===!0||An(e.durationMs))&&(t.durationTruncated=!0),t}function Gt(e,t){let r=e.slice(0,20).flatMap(o=>o.class==="technical_error"?[ye({...o,errorCode:o.code})]:o.class==="lifecycle"?[ge(o)]:o.class==="expected_outcome"?[Ee(o)]:o.class==="performance"?[fe(o)]:[]),n={schemaVersion:1,batchId:g(t.batchId),correlationId:g(t.correlationId),sdk:{package:l(t.sdkPackage,bn,"@flopay/shared"),version:tn.test(t.sdkVersion)?t.sdkVersion:"0.0.0"},events:r};return JSON.stringify(n)}var _n=new Set(["InvalidCheckoutSessionResponse","InvalidPaymentProcessResponse","InvalidSessionIntentResponse"]);function Yt(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 Kt(e,t,r="network_error"){if(e instanceof SyntaxError)return{errorCode:t,statusClass:"unknown",failureCategory:"invalid_response"};if(e instanceof u&&e.code!==void 0&&_n.has(e.code))return{errorCode:t,statusClass:B(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 n=B(e instanceof u?e.statusCode:void 0,r);return{errorCode:t,statusClass:n,...n==="5xx"?{failureCategory:"server_error"}:{}}}function B(e,t="network_error"){if(e===void 0)return t;let r=`${Math.floor(e/100)}xx`;return r==="2xx"||r==="3xx"||r==="4xx"||r==="5xx"?r:"unknown"}function zt(e){if(e!=null)switch(e){case"sandbox":case"stage":return"sandbox";case"live":case"production":return"live";default:console.warn(`[FloPay] Unrecognized gateway environment "${e}". Expected one of: sandbox, live, stage, production. Falling back to undefined.`);return}}var v=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function Ht(e){return typeof e=="string"&&v.test(e)}function qt(){try{let r=globalThis.crypto.randomUUID();if(v.test(r))return r}catch{}let e=new Uint8Array(16);try{globalThis.crypto.getRandomValues(e)}catch{for(let r=0;r<e.length;r+=1)e[r]=Math.floor(Math.random()*256)}e[6]=(e[6]??0)&15|64,e[8]=(e[8]??0)&63|128;let t=[...e].map(r=>r.toString(16).padStart(2,"0")).join("");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}function Wt(e){return P[e.toUpperCase()]??R}function jt(e){return/^pk_(test|live)_[A-Za-z0-9]+$/.test(e)}function Zt(e){return/^sk_(test|live)_[A-Za-z0-9]+$/.test(e)}function $t(e){return typeof e=="string"&&e.startsWith("seti_")}function Xt(...e){return/^\s*card\s+holder\s+name\s*$/i.test(e.join(" "))}0&&(module.exports={ASYNC_AUTO_CHECKOUT_CAPABILITY,BILLING_API_URL,BILLING_API_URL_PRODUCTION,BILLING_API_URL_STAGING,BOLD_DARK_APPEARANCE,BOLD_LIGHT_APPEARANCE,BUTTONS_LAYOUT_BOLD_DARK,BUTTONS_LAYOUT_BOLD_LIGHT,BUTTONS_LAYOUT_DARK,BUTTONS_LAYOUT_DEFAULT,BUTTONS_LAYOUT_GLASS_DARK,BUTTONS_LAYOUT_GLASS_LIGHT,BUTTONS_LAYOUT_MINIMAL,BUTTONS_LAYOUT_MODERN_DARK,BUTTONS_LAYOUT_MODERN_LIGHT,BUTTONS_LAYOUT_ROUNDED,CA_PROVINCES,COUNTRY_OPTIONS,CURRENCY_MAP,DEFAULT_API_BASE_URL,DEFAULT_API_VERSION,DEFAULT_APPEARANCE,DEFAULT_CURRENCY,FLAT_APPEARANCE,FLO_INSTRUMENT_CATALOG,FLO_INSTRUMENT_SCHEMA_VERSION,FLO_SDK_CAPABILITIES_HEADER,FLO_SDK_VERSION_HEADER,FloPayError,GLASS_DARK_APPEARANCE,GLASS_LIGHT_APPEARANCE,IDEMPOTENCY_IN_PROGRESS_CODE,IDEMPOTENCY_KEY_HEADER,MAX_IDEMPOTENCY_KEY_LENGTH,MODERN_DARK_APPEARANCE,MODERN_LIGHT_APPEARANCE,NIGHT_APPEARANCE,PAYPAL_VAULTED_PAYMENT_METHOD_TYPE,SDK_VERSION,STORED_PAYMENT_METHOD_UNSUPPORTED_CODE,STORED_PAYMENT_METHOD_UNSUPPORTED_MESSAGE,STRIPE_EXPRESS_METHODS,STRIPE_METHOD_AMOUNT_LIMITS,STRIPE_METHOD_COUNTRIES,STRIPE_METHOD_CURRENCIES,STRIPE_METHOD_MATRIX,SUPPORTED_CARD_BRANDS,TELEMETRY_ERROR_CODES,TELEMETRY_FAILURE_CATEGORIES,TELEMETRY_LOG_NAMES,TELEMETRY_MAX_BATCH_BYTES,TELEMETRY_MAX_BATCH_EVENTS,TELEMETRY_SCHEMA_VERSION,TELEMETRY_SDK_PACKAGES,THEMES,US_STATES,UUID_V4,apiError,assertCaptureMethodEligible,authenticationError,buildCheckoutDisplayData,buildItemPayload,buildProductPayload,buildSubscriptionPayload,buildTelemetryErrorEvent,buildTelemetryLogEvent,buildTelemetryPerformanceEvent,buildTelemetryTerminalEvent,classifyPaymentRejection,classifyTelemetryFailure,configureFlopay,dropThirdPartyOnlyError,filterStripeMethodsByAmount,filterStripeMethodsByCountry,filterStripeMethodsByCurrency,foldIntoProducts,generateIdempotencyKey,getConfiguredBillingApiUrl,getCountryByCode,getCurrencyByCountry,getFloPayEnvironment,getPostalCodeExample,getPostalCodeLabel,getStateFromPostalCode,getStateLabel,getStateOptions,getStripeMethodDisplayName,hasVendoredStripeMethodLogo,isAVSEnabled,isAVSFieldVisible,isAuthorizationOnlySession,isCardHolderNamePlaceholder,isCardSetupCheckoutSession,isDetachedSessionEligible,isMoneySettledOutcome,isPostalCodeSupported,isSetupIntentClientSecret,isUuidV4,isValidEmail,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
@@ -152,6 +152,15 @@ declare function serializeTelemetryBatch(events: readonly TelemetryEvent[], opti
152
152
 
153
153
  /** Discriminated error types returned by the FloPay SDK. */
154
154
  type FloPayErrorType = 'validation_error' | 'api_error' | 'authentication_error' | 'rate_limit_error' | 'network_error';
155
+ /** Privacy-bounded diagnostics for an external wallet or PayPal failure. */
156
+ interface ExternalMethodFailureDetails {
157
+ providerCode: string;
158
+ popupBlocked: boolean;
159
+ inAppBrowser: boolean;
160
+ appFamily: TelemetryAppFamily;
161
+ popupCapability: TelemetryPopupCapability;
162
+ presentationMode?: TelemetryPresentationMode;
163
+ }
155
164
  /**
156
165
  * Custom error class for all FloPay SDK errors.
157
166
  *
@@ -164,6 +173,7 @@ declare class FloPayError extends Error {
164
173
  readonly declineCode?: string;
165
174
  readonly param?: string;
166
175
  readonly statusCode?: number;
176
+ readonly details?: ExternalMethodFailureDetails;
167
177
  /** The underlying error when this one wraps another (the standard `Error.cause` slot). */
168
178
  readonly cause?: unknown;
169
179
  constructor(message: string, type: FloPayErrorType, options?: {
@@ -171,6 +181,7 @@ declare class FloPayError extends Error {
171
181
  declineCode?: string;
172
182
  param?: string;
173
183
  statusCode?: number;
184
+ details?: ExternalMethodFailureDetails;
174
185
  cause?: unknown;
175
186
  });
176
187
  }
@@ -362,6 +373,8 @@ type CheckoutSessionMode = CheckoutMode | 'setup';
362
373
  type CaptureMethod = 'automatic' | 'manual';
363
374
  /** Stable, provider-neutral authorization lifecycle failures exposed by the SDK. */
364
375
  type CheckoutFailureOutcome = 'authorization_declined' | 'authentication_required' | 'authorization_expired' | 'capture_failed';
376
+ /** Stable provider-neutral outcome for a saved method that cannot fund this checkout. */
377
+ type StoredPaymentMethodOutcomeCode = 'stored_payment_method_unsupported';
365
378
  /** Lifecycle states returned by the merchant-scoped saved-method list. */
366
379
  type SavedPaymentMethodStatus = 'pending' | 'active' | 'deleted';
367
380
  /**
@@ -1292,10 +1305,14 @@ interface TokenizedBody {
1292
1305
  /** Structured checkout-processing error returned by the billing API. */
1293
1306
  interface CheckoutProcessError {
1294
1307
  type: string;
1308
+ /** Stable provider-neutral machine code supplied by the billing API. */
1309
+ code?: StoredPaymentMethodOutcomeCode;
1295
1310
  /** Stable provider-neutral failure outcome when supplied by the backend. */
1296
1311
  outcome?: CheckoutFailureOutcome;
1297
1312
  message?: string;
1298
1313
  transactionId?: string;
1314
+ /** Fresh PayPal Order/Subscription id used to resume Direct PayPal approval. */
1315
+ orderId?: string;
1299
1316
  threeDSecureToken?: string;
1300
1317
  paymentMethodId?: string;
1301
1318
  checkoutMethod?: CheckoutButtonMethod;
@@ -1991,7 +2008,7 @@ declare function getConfiguredBillingApiUrl(): string;
1991
2008
  declare function getFloPayEnvironment(): FloPayEnvironment;
1992
2009
 
1993
2010
  /** Current SDK version. */
1994
- declare const SDK_VERSION = "1.9.20";
2011
+ declare const SDK_VERSION = "1.9.22";
1995
2012
  /**
1996
2013
  * HTTP header the SDK sends on checkout-session create/read requests so the
1997
2014
  * backend can observe compatibility. Version 1.4.9 is the first release that
@@ -2005,6 +2022,10 @@ declare const SDK_VERSION = "1.9.20";
2005
2022
  * @see SDK_VERSION — the value sent in this header.
2006
2023
  */
2007
2024
  declare const FLO_SDK_VERSION_HEADER = "x-flo-sdk-version";
2025
+ /** Generic SDK response-shape negotiation header; never a gateway selector. */
2026
+ declare const FLO_SDK_CAPABILITIES_HEADER = "x-flo-sdk-capabilities";
2027
+ /** Opts Auto session creation into the billing API's asynchronous `202` envelope. */
2028
+ declare const ASYNC_AUTO_CHECKOUT_CAPABILITY = "async-auto-checkout-v1";
2008
2029
  /**
2009
2030
  * In-band payment-method CHANNEL for Flo-owned PayPal continuations.
2010
2031
  *
@@ -2019,6 +2040,10 @@ declare const FLO_SDK_VERSION_HEADER = "x-flo-sdk-version";
2019
2040
  * header and no version-gated routing.
2020
2041
  */
2021
2042
  declare const PAYPAL_VAULTED_PAYMENT_METHOD_TYPE = "paypal_vaulted";
2043
+ /** Stable provider-neutral saved-method outcome published by the billing API. */
2044
+ declare const STORED_PAYMENT_METHOD_UNSUPPORTED_CODE = "stored_payment_method_unsupported";
2045
+ /** Buyer-safe recovery copy paired with {@link STORED_PAYMENT_METHOD_UNSUPPORTED_CODE}. */
2046
+ declare const STORED_PAYMENT_METHOD_UNSUPPORTED_MESSAGE = "This saved payment method can\u2019t be used for this payment. Choose another payment method.";
2022
2047
  /** Billing API URL for staging environment. */
2023
2048
  declare const BILLING_API_URL_STAGING = "https://api.stage.flopay.com";
2024
2049
  /** Billing API URL for production environment. */
@@ -2726,4 +2751,4 @@ declare function isSetupIntentClientSecret(clientSecret: string | null | undefin
2726
2751
  /** Treat the checkout's normalized fallback cardholder sentinel as absent. */
2727
2752
  declare function isCardHolderNamePlaceholder(...nameParts: Array<string | null | undefined>): boolean;
2728
2753
 
2729
- 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 CardSetupFutureUse, type CheckoutAccount, type CheckoutButtonMethod, type CheckoutDisplayData, type CheckoutFailureOutcome, type CheckoutGateway, type CheckoutGateways, type CheckoutItem, type CheckoutMetadata, type CheckoutMode, type CheckoutModeKind, type CheckoutProcessError, type CheckoutProcessingPending, type CheckoutProduct, type CheckoutProductType, type CheckoutSession, type CheckoutSessionMode, type CheckoutSessionProduct, type CheckoutSessionResult, type CheckoutSubscription, type ClassifiedTelemetryFailure, type CountryOption, type CreateCardSetupSessionRequest, type CreateCustomerParams, type CreateSessionIntentRequest, type CreateSessionParams, type CurrencyInfo, type Customer, DEFAULT_API_BASE_URL, DEFAULT_API_VERSION, DEFAULT_APPEARANCE, DEFAULT_CURRENCY, type DeclineEvent, type DetachedCheckoutSession, type DisplayLineItem, FLAT_APPEARANCE, FLO_INSTRUMENT_CATALOG, FLO_INSTRUMENT_SCHEMA_VERSION, FLO_SDK_VERSION_HEADER, type FloInstrumentErrorPhase, type FloInstrumentEvent, type FloInstrumentLifecycleName, type FloPayAppearance, type FloPayConfig, type FloPayEnvironment, FloPayError, type FloPayErrorType, type FloPayThemeVariables, GLASS_DARK_APPEARANCE, GLASS_LIGHT_APPEARANCE, type GatewayEnvironment, IDEMPOTENCY_IN_PROGRESS_CODE, IDEMPOTENCY_KEY_HEADER, type InlineSessionDraft, type InlineSessionParams, type InlineSessionPatch, type LineItem, MAX_IDEMPOTENCY_KEY_LENGTH, MODERN_DARK_APPEARANCE, MODERN_LIGHT_APPEARANCE, NIGHT_APPEARANCE, type NonCardPaymentMethodCategory, type NormalizedCheckoutSession, type NormalizedGatewayEnvironment, PAYPAL_VAULTED_PAYMENT_METHOD_TYPE, type PayPalApprovalPresentation, type PayPalPaymentResult, type PayPalProviderObjectType, type PayPalSessionIntent, type PayPalSessionIntentRequest, type PaymentMethodRemovalConflictCode, type PaymentMethodRemovalConflictError, type PaymentMethodRemovalError, type PaymentMethodRemovalFailureReason, type PaymentMethodRemovalNotFoundError, type PaymentMethodRemovalRetryableError, type PaymentProviderAdapter, type PaymentResult, type PriceData, type ProcessPaymentParams, type RecurringInterval, 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 TelemetryAppFamily, 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 TelemetryPopupCapability, type TelemetryPresentationMode, type TelemetryProvider, type TelemetryProviderInput, type TelemetryRequestCategory, type TelemetrySdkPackage, type TelemetryStage, type TelemetryStatusClass, type TelemetryTerminalReason, type ThemeBundle, type ThemeBundleId, type ThemeId, type TokenizedBody, US_STATES, UUID_V4, type UpdateCustomerParams, type VaultCaptureBlock, type VaultCaptureResultMessage, type VaultCardFieldKey, type VaultCardThemeColors, type VaultGradientStop, type VaultLinearGradientBackground, type VaultShadowLayer, type VaultSolidBackground, type VaultSubmitBackground, type VaultSubmitButtonTheme, type VaultSubmitSpacing, type VaultSubmitTypography, type VaultThemeColor, type WebhookEvent, apiError, assertCaptureMethodEligible, authenticationError, buildCheckoutDisplayData, buildItemPayload, buildProductPayload, buildSubscriptionPayload, buildTelemetryErrorEvent, buildTelemetryLogEvent, buildTelemetryPerformanceEvent, buildTelemetryTerminalEvent, classifyPaymentRejection, classifyTelemetryFailure, configureFlopay, dropThirdPartyOnlyError, filterStripeMethodsByAmount, filterStripeMethodsByCountry, filterStripeMethodsByCurrency, foldIntoProducts, generateIdempotencyKey, getConfiguredBillingApiUrl, getCountryByCode, getCurrencyByCountry, getFloPayEnvironment, getPostalCodeExample, getPostalCodeLabel, getStateFromPostalCode, getStateLabel, getStateOptions, getStripeMethodDisplayName, hasVendoredStripeMethodLogo, isAVSEnabled, isAVSFieldVisible, isAuthorizationOnlySession, isCardHolderNamePlaceholder, isCardSetupCheckoutSession, isDetachedSessionEligible, isMoneySettledOutcome, isPostalCodeSupported, isSetupIntentClientSecret, isUuidV4, isValidEmail, isValidPostalCode, isValidPublishableKey, isValidSecretKey, needsStripeMethodExplicitConfirm, networkError, normalizeCheckoutFailureOutcome, normalizeGatewayEnvironment, partitionStripeMethods, randomUuidV4, rateLimitError, resolveAVSConfig, resolveBillingApiUrl, resolveButtonsLayoutTheme, resolveIdempotencyKey, resolveSessionCurrency, resolveStripeMethodBrandVariant, resolveTheme, serializeTelemetryBatch, stripeExpressMethodToOptionKey, telemetryStatusClass, validationError };
2754
+ export { ASYNC_AUTO_CHECKOUT_CAPABILITY, 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 CardSetupFutureUse, type CheckoutAccount, type CheckoutButtonMethod, type CheckoutDisplayData, type CheckoutFailureOutcome, type CheckoutGateway, type CheckoutGateways, type CheckoutItem, type CheckoutMetadata, type CheckoutMode, type CheckoutModeKind, type CheckoutProcessError, type CheckoutProcessingPending, type CheckoutProduct, type CheckoutProductType, type CheckoutSession, type CheckoutSessionMode, type CheckoutSessionProduct, type CheckoutSessionResult, type CheckoutSubscription, type ClassifiedTelemetryFailure, type CountryOption, type CreateCardSetupSessionRequest, type CreateCustomerParams, type CreateSessionIntentRequest, type CreateSessionParams, type CurrencyInfo, type Customer, DEFAULT_API_BASE_URL, DEFAULT_API_VERSION, DEFAULT_APPEARANCE, DEFAULT_CURRENCY, type DeclineEvent, type DetachedCheckoutSession, type DisplayLineItem, type ExternalMethodFailureDetails, FLAT_APPEARANCE, FLO_INSTRUMENT_CATALOG, FLO_INSTRUMENT_SCHEMA_VERSION, FLO_SDK_CAPABILITIES_HEADER, FLO_SDK_VERSION_HEADER, type FloInstrumentErrorPhase, type FloInstrumentEvent, type FloInstrumentLifecycleName, type FloPayAppearance, type FloPayConfig, type FloPayEnvironment, FloPayError, type FloPayErrorType, type FloPayThemeVariables, GLASS_DARK_APPEARANCE, GLASS_LIGHT_APPEARANCE, type GatewayEnvironment, IDEMPOTENCY_IN_PROGRESS_CODE, IDEMPOTENCY_KEY_HEADER, type InlineSessionDraft, type InlineSessionParams, type InlineSessionPatch, type LineItem, MAX_IDEMPOTENCY_KEY_LENGTH, MODERN_DARK_APPEARANCE, MODERN_LIGHT_APPEARANCE, NIGHT_APPEARANCE, type NonCardPaymentMethodCategory, type NormalizedCheckoutSession, type NormalizedGatewayEnvironment, PAYPAL_VAULTED_PAYMENT_METHOD_TYPE, type PayPalApprovalPresentation, type PayPalPaymentResult, type PayPalProviderObjectType, type PayPalSessionIntent, type PayPalSessionIntentRequest, type PaymentMethodRemovalConflictCode, type PaymentMethodRemovalConflictError, type PaymentMethodRemovalError, type PaymentMethodRemovalFailureReason, type PaymentMethodRemovalNotFoundError, type PaymentMethodRemovalRetryableError, type PaymentProviderAdapter, type PaymentResult, type PriceData, type ProcessPaymentParams, type RecurringInterval, SDK_VERSION, STORED_PAYMENT_METHOD_UNSUPPORTED_CODE, STORED_PAYMENT_METHOD_UNSUPPORTED_MESSAGE, STRIPE_EXPRESS_METHODS, STRIPE_METHOD_AMOUNT_LIMITS, STRIPE_METHOD_COUNTRIES, STRIPE_METHOD_CURRENCIES, STRIPE_METHOD_MATRIX, SUPPORTED_CARD_BRANDS, type SavedCardDisplay, type SavedPaymentMethodStatus, type SentryEventLike, type SentryStackFrameLike, type SerializeTelemetryBatchOptions, type SessionIntent, type SessionIntentDeclineRequest, type StateOption, type StoredPaymentMethodOutcomeCode, type StripeMethodEntry, type StripeMethodThemeVariant, type StripeSessionIntent, type StripeSessionIntentRequest, TELEMETRY_ERROR_CODES, TELEMETRY_FAILURE_CATEGORIES, TELEMETRY_LOG_NAMES, TELEMETRY_MAX_BATCH_BYTES, TELEMETRY_MAX_BATCH_EVENTS, TELEMETRY_SCHEMA_VERSION, TELEMETRY_SDK_PACKAGES, THEMES, type TagsData, type TelemetryAppFamily, 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 TelemetryPopupCapability, type TelemetryPresentationMode, type TelemetryProvider, type TelemetryProviderInput, type TelemetryRequestCategory, type TelemetrySdkPackage, type TelemetryStage, type TelemetryStatusClass, type TelemetryTerminalReason, type ThemeBundle, type ThemeBundleId, type ThemeId, type TokenizedBody, US_STATES, UUID_V4, type UpdateCustomerParams, type VaultCaptureBlock, type VaultCaptureResultMessage, type VaultCardFieldKey, type VaultCardThemeColors, type VaultGradientStop, type VaultLinearGradientBackground, type VaultShadowLayer, type VaultSolidBackground, type VaultSubmitBackground, type VaultSubmitButtonTheme, type VaultSubmitSpacing, type VaultSubmitTypography, type VaultThemeColor, type WebhookEvent, apiError, assertCaptureMethodEligible, authenticationError, buildCheckoutDisplayData, buildItemPayload, buildProductPayload, buildSubscriptionPayload, buildTelemetryErrorEvent, buildTelemetryLogEvent, buildTelemetryPerformanceEvent, buildTelemetryTerminalEvent, classifyPaymentRejection, classifyTelemetryFailure, configureFlopay, dropThirdPartyOnlyError, filterStripeMethodsByAmount, filterStripeMethodsByCountry, filterStripeMethodsByCurrency, foldIntoProducts, generateIdempotencyKey, getConfiguredBillingApiUrl, getCountryByCode, getCurrencyByCountry, getFloPayEnvironment, getPostalCodeExample, getPostalCodeLabel, getStateFromPostalCode, getStateLabel, getStateOptions, getStripeMethodDisplayName, hasVendoredStripeMethodLogo, isAVSEnabled, isAVSFieldVisible, isAuthorizationOnlySession, isCardHolderNamePlaceholder, isCardSetupCheckoutSession, isDetachedSessionEligible, isMoneySettledOutcome, isPostalCodeSupported, isSetupIntentClientSecret, isUuidV4, isValidEmail, 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
@@ -152,6 +152,15 @@ declare function serializeTelemetryBatch(events: readonly TelemetryEvent[], opti
152
152
 
153
153
  /** Discriminated error types returned by the FloPay SDK. */
154
154
  type FloPayErrorType = 'validation_error' | 'api_error' | 'authentication_error' | 'rate_limit_error' | 'network_error';
155
+ /** Privacy-bounded diagnostics for an external wallet or PayPal failure. */
156
+ interface ExternalMethodFailureDetails {
157
+ providerCode: string;
158
+ popupBlocked: boolean;
159
+ inAppBrowser: boolean;
160
+ appFamily: TelemetryAppFamily;
161
+ popupCapability: TelemetryPopupCapability;
162
+ presentationMode?: TelemetryPresentationMode;
163
+ }
155
164
  /**
156
165
  * Custom error class for all FloPay SDK errors.
157
166
  *
@@ -164,6 +173,7 @@ declare class FloPayError extends Error {
164
173
  readonly declineCode?: string;
165
174
  readonly param?: string;
166
175
  readonly statusCode?: number;
176
+ readonly details?: ExternalMethodFailureDetails;
167
177
  /** The underlying error when this one wraps another (the standard `Error.cause` slot). */
168
178
  readonly cause?: unknown;
169
179
  constructor(message: string, type: FloPayErrorType, options?: {
@@ -171,6 +181,7 @@ declare class FloPayError extends Error {
171
181
  declineCode?: string;
172
182
  param?: string;
173
183
  statusCode?: number;
184
+ details?: ExternalMethodFailureDetails;
174
185
  cause?: unknown;
175
186
  });
176
187
  }
@@ -362,6 +373,8 @@ type CheckoutSessionMode = CheckoutMode | 'setup';
362
373
  type CaptureMethod = 'automatic' | 'manual';
363
374
  /** Stable, provider-neutral authorization lifecycle failures exposed by the SDK. */
364
375
  type CheckoutFailureOutcome = 'authorization_declined' | 'authentication_required' | 'authorization_expired' | 'capture_failed';
376
+ /** Stable provider-neutral outcome for a saved method that cannot fund this checkout. */
377
+ type StoredPaymentMethodOutcomeCode = 'stored_payment_method_unsupported';
365
378
  /** Lifecycle states returned by the merchant-scoped saved-method list. */
366
379
  type SavedPaymentMethodStatus = 'pending' | 'active' | 'deleted';
367
380
  /**
@@ -1292,10 +1305,14 @@ interface TokenizedBody {
1292
1305
  /** Structured checkout-processing error returned by the billing API. */
1293
1306
  interface CheckoutProcessError {
1294
1307
  type: string;
1308
+ /** Stable provider-neutral machine code supplied by the billing API. */
1309
+ code?: StoredPaymentMethodOutcomeCode;
1295
1310
  /** Stable provider-neutral failure outcome when supplied by the backend. */
1296
1311
  outcome?: CheckoutFailureOutcome;
1297
1312
  message?: string;
1298
1313
  transactionId?: string;
1314
+ /** Fresh PayPal Order/Subscription id used to resume Direct PayPal approval. */
1315
+ orderId?: string;
1299
1316
  threeDSecureToken?: string;
1300
1317
  paymentMethodId?: string;
1301
1318
  checkoutMethod?: CheckoutButtonMethod;
@@ -1991,7 +2008,7 @@ declare function getConfiguredBillingApiUrl(): string;
1991
2008
  declare function getFloPayEnvironment(): FloPayEnvironment;
1992
2009
 
1993
2010
  /** Current SDK version. */
1994
- declare const SDK_VERSION = "1.9.20";
2011
+ declare const SDK_VERSION = "1.9.22";
1995
2012
  /**
1996
2013
  * HTTP header the SDK sends on checkout-session create/read requests so the
1997
2014
  * backend can observe compatibility. Version 1.4.9 is the first release that
@@ -2005,6 +2022,10 @@ declare const SDK_VERSION = "1.9.20";
2005
2022
  * @see SDK_VERSION — the value sent in this header.
2006
2023
  */
2007
2024
  declare const FLO_SDK_VERSION_HEADER = "x-flo-sdk-version";
2025
+ /** Generic SDK response-shape negotiation header; never a gateway selector. */
2026
+ declare const FLO_SDK_CAPABILITIES_HEADER = "x-flo-sdk-capabilities";
2027
+ /** Opts Auto session creation into the billing API's asynchronous `202` envelope. */
2028
+ declare const ASYNC_AUTO_CHECKOUT_CAPABILITY = "async-auto-checkout-v1";
2008
2029
  /**
2009
2030
  * In-band payment-method CHANNEL for Flo-owned PayPal continuations.
2010
2031
  *
@@ -2019,6 +2040,10 @@ declare const FLO_SDK_VERSION_HEADER = "x-flo-sdk-version";
2019
2040
  * header and no version-gated routing.
2020
2041
  */
2021
2042
  declare const PAYPAL_VAULTED_PAYMENT_METHOD_TYPE = "paypal_vaulted";
2043
+ /** Stable provider-neutral saved-method outcome published by the billing API. */
2044
+ declare const STORED_PAYMENT_METHOD_UNSUPPORTED_CODE = "stored_payment_method_unsupported";
2045
+ /** Buyer-safe recovery copy paired with {@link STORED_PAYMENT_METHOD_UNSUPPORTED_CODE}. */
2046
+ declare const STORED_PAYMENT_METHOD_UNSUPPORTED_MESSAGE = "This saved payment method can\u2019t be used for this payment. Choose another payment method.";
2022
2047
  /** Billing API URL for staging environment. */
2023
2048
  declare const BILLING_API_URL_STAGING = "https://api.stage.flopay.com";
2024
2049
  /** Billing API URL for production environment. */
@@ -2726,4 +2751,4 @@ declare function isSetupIntentClientSecret(clientSecret: string | null | undefin
2726
2751
  /** Treat the checkout's normalized fallback cardholder sentinel as absent. */
2727
2752
  declare function isCardHolderNamePlaceholder(...nameParts: Array<string | null | undefined>): boolean;
2728
2753
 
2729
- 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 CardSetupFutureUse, type CheckoutAccount, type CheckoutButtonMethod, type CheckoutDisplayData, type CheckoutFailureOutcome, type CheckoutGateway, type CheckoutGateways, type CheckoutItem, type CheckoutMetadata, type CheckoutMode, type CheckoutModeKind, type CheckoutProcessError, type CheckoutProcessingPending, type CheckoutProduct, type CheckoutProductType, type CheckoutSession, type CheckoutSessionMode, type CheckoutSessionProduct, type CheckoutSessionResult, type CheckoutSubscription, type ClassifiedTelemetryFailure, type CountryOption, type CreateCardSetupSessionRequest, type CreateCustomerParams, type CreateSessionIntentRequest, type CreateSessionParams, type CurrencyInfo, type Customer, DEFAULT_API_BASE_URL, DEFAULT_API_VERSION, DEFAULT_APPEARANCE, DEFAULT_CURRENCY, type DeclineEvent, type DetachedCheckoutSession, type DisplayLineItem, FLAT_APPEARANCE, FLO_INSTRUMENT_CATALOG, FLO_INSTRUMENT_SCHEMA_VERSION, FLO_SDK_VERSION_HEADER, type FloInstrumentErrorPhase, type FloInstrumentEvent, type FloInstrumentLifecycleName, type FloPayAppearance, type FloPayConfig, type FloPayEnvironment, FloPayError, type FloPayErrorType, type FloPayThemeVariables, GLASS_DARK_APPEARANCE, GLASS_LIGHT_APPEARANCE, type GatewayEnvironment, IDEMPOTENCY_IN_PROGRESS_CODE, IDEMPOTENCY_KEY_HEADER, type InlineSessionDraft, type InlineSessionParams, type InlineSessionPatch, type LineItem, MAX_IDEMPOTENCY_KEY_LENGTH, MODERN_DARK_APPEARANCE, MODERN_LIGHT_APPEARANCE, NIGHT_APPEARANCE, type NonCardPaymentMethodCategory, type NormalizedCheckoutSession, type NormalizedGatewayEnvironment, PAYPAL_VAULTED_PAYMENT_METHOD_TYPE, type PayPalApprovalPresentation, type PayPalPaymentResult, type PayPalProviderObjectType, type PayPalSessionIntent, type PayPalSessionIntentRequest, type PaymentMethodRemovalConflictCode, type PaymentMethodRemovalConflictError, type PaymentMethodRemovalError, type PaymentMethodRemovalFailureReason, type PaymentMethodRemovalNotFoundError, type PaymentMethodRemovalRetryableError, type PaymentProviderAdapter, type PaymentResult, type PriceData, type ProcessPaymentParams, type RecurringInterval, 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 TelemetryAppFamily, 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 TelemetryPopupCapability, type TelemetryPresentationMode, type TelemetryProvider, type TelemetryProviderInput, type TelemetryRequestCategory, type TelemetrySdkPackage, type TelemetryStage, type TelemetryStatusClass, type TelemetryTerminalReason, type ThemeBundle, type ThemeBundleId, type ThemeId, type TokenizedBody, US_STATES, UUID_V4, type UpdateCustomerParams, type VaultCaptureBlock, type VaultCaptureResultMessage, type VaultCardFieldKey, type VaultCardThemeColors, type VaultGradientStop, type VaultLinearGradientBackground, type VaultShadowLayer, type VaultSolidBackground, type VaultSubmitBackground, type VaultSubmitButtonTheme, type VaultSubmitSpacing, type VaultSubmitTypography, type VaultThemeColor, type WebhookEvent, apiError, assertCaptureMethodEligible, authenticationError, buildCheckoutDisplayData, buildItemPayload, buildProductPayload, buildSubscriptionPayload, buildTelemetryErrorEvent, buildTelemetryLogEvent, buildTelemetryPerformanceEvent, buildTelemetryTerminalEvent, classifyPaymentRejection, classifyTelemetryFailure, configureFlopay, dropThirdPartyOnlyError, filterStripeMethodsByAmount, filterStripeMethodsByCountry, filterStripeMethodsByCurrency, foldIntoProducts, generateIdempotencyKey, getConfiguredBillingApiUrl, getCountryByCode, getCurrencyByCountry, getFloPayEnvironment, getPostalCodeExample, getPostalCodeLabel, getStateFromPostalCode, getStateLabel, getStateOptions, getStripeMethodDisplayName, hasVendoredStripeMethodLogo, isAVSEnabled, isAVSFieldVisible, isAuthorizationOnlySession, isCardHolderNamePlaceholder, isCardSetupCheckoutSession, isDetachedSessionEligible, isMoneySettledOutcome, isPostalCodeSupported, isSetupIntentClientSecret, isUuidV4, isValidEmail, isValidPostalCode, isValidPublishableKey, isValidSecretKey, needsStripeMethodExplicitConfirm, networkError, normalizeCheckoutFailureOutcome, normalizeGatewayEnvironment, partitionStripeMethods, randomUuidV4, rateLimitError, resolveAVSConfig, resolveBillingApiUrl, resolveButtonsLayoutTheme, resolveIdempotencyKey, resolveSessionCurrency, resolveStripeMethodBrandVariant, resolveTheme, serializeTelemetryBatch, stripeExpressMethodToOptionKey, telemetryStatusClass, validationError };
2754
+ export { ASYNC_AUTO_CHECKOUT_CAPABILITY, 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 CardSetupFutureUse, type CheckoutAccount, type CheckoutButtonMethod, type CheckoutDisplayData, type CheckoutFailureOutcome, type CheckoutGateway, type CheckoutGateways, type CheckoutItem, type CheckoutMetadata, type CheckoutMode, type CheckoutModeKind, type CheckoutProcessError, type CheckoutProcessingPending, type CheckoutProduct, type CheckoutProductType, type CheckoutSession, type CheckoutSessionMode, type CheckoutSessionProduct, type CheckoutSessionResult, type CheckoutSubscription, type ClassifiedTelemetryFailure, type CountryOption, type CreateCardSetupSessionRequest, type CreateCustomerParams, type CreateSessionIntentRequest, type CreateSessionParams, type CurrencyInfo, type Customer, DEFAULT_API_BASE_URL, DEFAULT_API_VERSION, DEFAULT_APPEARANCE, DEFAULT_CURRENCY, type DeclineEvent, type DetachedCheckoutSession, type DisplayLineItem, type ExternalMethodFailureDetails, FLAT_APPEARANCE, FLO_INSTRUMENT_CATALOG, FLO_INSTRUMENT_SCHEMA_VERSION, FLO_SDK_CAPABILITIES_HEADER, FLO_SDK_VERSION_HEADER, type FloInstrumentErrorPhase, type FloInstrumentEvent, type FloInstrumentLifecycleName, type FloPayAppearance, type FloPayConfig, type FloPayEnvironment, FloPayError, type FloPayErrorType, type FloPayThemeVariables, GLASS_DARK_APPEARANCE, GLASS_LIGHT_APPEARANCE, type GatewayEnvironment, IDEMPOTENCY_IN_PROGRESS_CODE, IDEMPOTENCY_KEY_HEADER, type InlineSessionDraft, type InlineSessionParams, type InlineSessionPatch, type LineItem, MAX_IDEMPOTENCY_KEY_LENGTH, MODERN_DARK_APPEARANCE, MODERN_LIGHT_APPEARANCE, NIGHT_APPEARANCE, type NonCardPaymentMethodCategory, type NormalizedCheckoutSession, type NormalizedGatewayEnvironment, PAYPAL_VAULTED_PAYMENT_METHOD_TYPE, type PayPalApprovalPresentation, type PayPalPaymentResult, type PayPalProviderObjectType, type PayPalSessionIntent, type PayPalSessionIntentRequest, type PaymentMethodRemovalConflictCode, type PaymentMethodRemovalConflictError, type PaymentMethodRemovalError, type PaymentMethodRemovalFailureReason, type PaymentMethodRemovalNotFoundError, type PaymentMethodRemovalRetryableError, type PaymentProviderAdapter, type PaymentResult, type PriceData, type ProcessPaymentParams, type RecurringInterval, SDK_VERSION, STORED_PAYMENT_METHOD_UNSUPPORTED_CODE, STORED_PAYMENT_METHOD_UNSUPPORTED_MESSAGE, STRIPE_EXPRESS_METHODS, STRIPE_METHOD_AMOUNT_LIMITS, STRIPE_METHOD_COUNTRIES, STRIPE_METHOD_CURRENCIES, STRIPE_METHOD_MATRIX, SUPPORTED_CARD_BRANDS, type SavedCardDisplay, type SavedPaymentMethodStatus, type SentryEventLike, type SentryStackFrameLike, type SerializeTelemetryBatchOptions, type SessionIntent, type SessionIntentDeclineRequest, type StateOption, type StoredPaymentMethodOutcomeCode, type StripeMethodEntry, type StripeMethodThemeVariant, type StripeSessionIntent, type StripeSessionIntentRequest, TELEMETRY_ERROR_CODES, TELEMETRY_FAILURE_CATEGORIES, TELEMETRY_LOG_NAMES, TELEMETRY_MAX_BATCH_BYTES, TELEMETRY_MAX_BATCH_EVENTS, TELEMETRY_SCHEMA_VERSION, TELEMETRY_SDK_PACKAGES, THEMES, type TagsData, type TelemetryAppFamily, 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 TelemetryPopupCapability, type TelemetryPresentationMode, type TelemetryProvider, type TelemetryProviderInput, type TelemetryRequestCategory, type TelemetrySdkPackage, type TelemetryStage, type TelemetryStatusClass, type TelemetryTerminalReason, type ThemeBundle, type ThemeBundleId, type ThemeId, type TokenizedBody, US_STATES, UUID_V4, type UpdateCustomerParams, type VaultCaptureBlock, type VaultCaptureResultMessage, type VaultCardFieldKey, type VaultCardThemeColors, type VaultGradientStop, type VaultLinearGradientBackground, type VaultShadowLayer, type VaultSolidBackground, type VaultSubmitBackground, type VaultSubmitButtonTheme, type VaultSubmitSpacing, type VaultSubmitTypography, type VaultThemeColor, type WebhookEvent, apiError, assertCaptureMethodEligible, authenticationError, buildCheckoutDisplayData, buildItemPayload, buildProductPayload, buildSubscriptionPayload, buildTelemetryErrorEvent, buildTelemetryLogEvent, buildTelemetryPerformanceEvent, buildTelemetryTerminalEvent, classifyPaymentRejection, classifyTelemetryFailure, configureFlopay, dropThirdPartyOnlyError, filterStripeMethodsByAmount, filterStripeMethodsByCountry, filterStripeMethodsByCurrency, foldIntoProducts, generateIdempotencyKey, getConfiguredBillingApiUrl, getCountryByCode, getCurrencyByCountry, getFloPayEnvironment, getPostalCodeExample, getPostalCodeLabel, getStateFromPostalCode, getStateLabel, getStateOptions, getStripeMethodDisplayName, hasVendoredStripeMethodLogo, isAVSEnabled, isAVSFieldVisible, isAuthorizationOnlySession, isCardHolderNamePlaceholder, isCardSetupCheckoutSession, isDetachedSessionEligible, isMoneySettledOutcome, isPostalCodeSupported, isSetupIntentClientSecret, isUuidV4, isValidEmail, 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 Ue(e){return e.checkoutMode==="setup"&&e.amount===0&&(e.products?.length??0)===0}function we(e){return e?.captureMethod==="manual"}function Ve(e,t){return e==="requires_capture"?t!=="manual":e==="succeeded"||e==="complete"||e==="completed"||e==="captured"||e==="paid"}function Ge(e){if(typeof e!="string"||e.length===0)return;let t=e.trim().toLowerCase().replace(/[\s-]+/g,"_");if(t==="capture_failed"||t.includes("capture")&&(t.includes("fail")||t.includes("error")))return"capture_failed";if(t==="authorization_expired"||t.includes("expired")||t.includes("expiry"))return"authorization_expired";if(t==="authentication_required"||t.includes("3ds")||t.includes("three_d")||t.includes("authentication")||t.includes("action_required"))return"authentication_required";if(t==="authorization_declined"||t.includes("declin")||t.includes("authorization_fail"))return"authorization_declined"}var c=class extends Error{constructor(t,r,n){super(t),this.name="FloPayError",this.type=r,this.code=n?.code,this.declineCode=n?.declineCode,this.param=n?.param,this.statusCode=n?.statusCode,n?.cause!==void 0&&(this.cause=n.cause),Object.setPrototypeOf(this,new.target.prototype)}};function Ye(e,t){return new c(e,"validation_error",{param:t})}function Ke(e,t,r){return new c(e,"api_error",{code:t,statusCode:r})}function ze(e){return new c(e,"authentication_error")}function He(e){return new c(e,"rate_limit_error")}function qe(e){return new c(e,"network_error")}function We(e){if(!(e.captureMethod!=="manual"||!(e.products??K(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 je(e){return e.deferDataAttachment!==!1&&(e.checkoutMode??"full")==="full"&&!e.tokenizedData}function a(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function A(e,t,r,n){let o=a(e);if(o)return o;for(let i of t??[]){let u=a(i.currency);if(u)return u}for(let i of r??[]){let u=a(i.currency);if(u)return u}for(let i of n??[]){let u=a(i.currency);if(u)return u}return null}function K(e,t){let r=[];for(let n of t??[])r.push({type:"subscription",code:a(n.code)??a(n.providerPlanId),providerPlanId:n.providerPlanId,name:a(n.subscriptionName)??a(n.providerPlanName)??null,subscriptionName:n.subscriptionName??null,providerPlanName:n.providerPlanName??null,quantity:n.quantity,totalAmount:n.totalAmount,overrideAmount:n.overrideAmount,currency:n.currency,metadata:n.metadata});for(let n of e??[])r.push({type:"item",code:a(n.code)??a(n.providerItemId),providerItemId:n.providerItemId,name:a(n.itemName)??a(n.providerItemName)??null,itemName:n.itemName??null,providerItemName:n.providerItemName??null,quantity:n.quantity,totalAmount:n.totalAmount,overrideAmount:n.overrideAmount,currency:n.currency,metadata:n.metadata});return r}function Ze(e,t){let r=a(e.code)??a(e.providerItemId)??a(e.providerPlanId);if(!r)throw new Error("CheckoutProduct requires `code` (or the deprecated `providerItemId` / `providerPlanId`).");let n=a(e.name)??a(e.itemName)??a(e.providerItemName)??a(e.subscriptionName)??a(e.providerPlanName)??null,o={type:e.type,code:r,name:n,quantity:e.quantity??1,totalAmount:e.totalAmount,overrideAmount:e.overrideAmount??null,currency:a(e.currency)??t};return e.metadata&&(o.metadata=e.metadata),o}function Xe(e,t){let r=a(e.code)??a(e.providerItemId);if(!r)throw new Error("CheckoutItem requires either `code` or the deprecated `providerItemId`.");let n=a(e.itemName)??a(e.providerItemName)??null,o={code:r,providerItemId:a(e.providerItemId)??r,itemName:n,providerItemName:a(e.providerItemName)??n,quantity:e.quantity??1,totalAmount:e.totalAmount,overrideAmount:e.overrideAmount??null,currency:a(e.currency)??t};return e.metadata&&(o.metadata=e.metadata),o}function $e(e,t){let r=a(e.code)??a(e.providerPlanId);if(!r)throw new Error("CheckoutSubscription requires either `code` or the deprecated `providerPlanId`.");let n=a(e.subscriptionName)??a(e.providerPlanName)??null,o={code:r,providerPlanId:a(e.providerPlanId)??r,subscriptionName:n,providerPlanName:a(e.providerPlanName)??n,quantity:e.quantity??1,totalAmount:e.totalAmount,overrideAmount:e.overrideAmount??null,currency:a(e.currency)??t};return e.metadata&&(o.metadata=e.metadata),o}var Je={local:"https://flo.ngrok.pro",staging:"https://api.stage.flopay.com",production:"https://api.flopay.com"},_="staging";function Qe(e){_=e.environment}function F(){return Je[_]}function et(){return _}var z=["alipay","bancontact","blik","eps","giropay","ideal","klarna","p24","sepa_debit","wechat_pay"];var tt="1.9.20",rt="x-flo-sdk-version",nt="paypal_vaulted",C="https://api.stage.flopay.com",j="https://api.flopay.com",ot=C,at=C;function it(e){return e||(typeof process<"u"&&process.env?.NEXT_PUBLIC_FLOPAY_ENV?process.env.NEXT_PUBLIC_FLOPAY_ENV==="production"?j:C:F())}var st="2024-01-01",Z={theme:"default",variables:{colorPrimary:"#4A49FF",colorBackground:"#FFFFFF",colorText:"#262833",colorDanger:"#DF1B41",borderRadius:"8px",fontFamily:"Poppins, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"4px"}},ut={theme:"flat",variables:{...Z.variables,borderRadius:"4px"}},ct={theme:"night",variables:{colorPrimary:"#7B7BFF",colorBackground:"#1A1A2E",colorText:"#E0E0E0",colorDanger:"#FF6B6B",borderRadius:"8px",fontFamily:"Poppins, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"4px"}},X={theme:"default",variables:{colorPrimary:"#1785E0",colorBackground:"#FFFFFF",colorText:"#0F172A",colorDanger:"#EF4444",borderRadius:"12px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"15px",spacingUnit:"5px"},rules:{".Input":{padding:"14px 16px",border:"1.5px solid #E5E7EB",boxShadow:"0 1px 2px rgba(15,23,42,0.04)"},".Input:focus":{borderColor:"#1785E0",boxShadow:"0 0 0 4px rgba(23,133,224,0.12)"},".Label":{fontWeight:"500",color:"#475569",marginBottom:"6px"},".Tab":{padding:"12px 16px",borderRadius:"12px",border:"1.5px solid #E5E7EB"},".Tab:hover":{borderColor:"#CBD5E1"},".Tab--selected":{borderColor:"#1785E0",boxShadow:"0 0 0 1px #1785E0"}}},$={theme:"night",variables:{colorPrimary:"#60A5FA",colorBackground:"#0B1220",colorText:"#F1F5F9",colorDanger:"#F87171",borderRadius:"12px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"15px",spacingUnit:"5px"},rules:{".Input":{backgroundColor:"#111827",padding:"14px 16px",border:"1.5px solid #1F2937",color:"#F1F5F9",boxShadow:"none"},".Input:focus":{borderColor:"#60A5FA",boxShadow:"0 0 0 4px rgba(96,165,250,0.18)"},".Label":{fontWeight:"500",color:"#94A3B8",marginBottom:"6px"},".Tab":{padding:"12px 16px",borderRadius:"12px",border:"1.5px solid #1F2937",backgroundColor:"#111827",color:"#F1F5F9"},".Tab:hover":{borderColor:"#374151"},".Tab--selected":{borderColor:"#60A5FA",boxShadow:"0 0 0 1px #60A5FA"}}},J={theme:"default",variables:{colorPrimary:"#1785E0",colorBackground:"#FFFFFF",colorText:"#0C2B4D",colorDanger:"#DC2626",borderRadius:"12px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"5px"},rules:{".Input":{padding:"14px 16px",border:"2px solid #E5E7EB"},".Input:focus":{borderColor:"#1785E0",boxShadow:"0 0 0 3px rgba(23,133,224,0.2)"},".Label":{fontWeight:"600",color:"#0C2B4D"},".Tab":{padding:"14px 18px",border:"2px solid #E5E7EB",fontWeight:"600"},".Tab--selected":{borderColor:"#1785E0",boxShadow:"0 0 0 1px #1785E0"}}},Q={theme:"night",variables:{colorPrimary:"#60A5FA",colorBackground:"#0C2B4D",colorText:"#FFFFFF",colorDanger:"#F87171",borderRadius:"12px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"16px",spacingUnit:"5px"},rules:{".Input":{backgroundColor:"#1E3A8A",padding:"14px 16px",border:"2px solid #1E40AF",color:"#FFFFFF"},".Input:focus":{borderColor:"#60A5FA",boxShadow:"0 0 0 3px rgba(96,165,250,0.25)"},".Label":{fontWeight:"600",color:"#DBEAFE"},".Tab":{padding:"14px 18px",border:"2px solid #1E40AF",backgroundColor:"#1E3A8A",color:"#FFFFFF",fontWeight:"600"},".Tab--selected":{borderColor:"#60A5FA",boxShadow:"0 0 0 1px #60A5FA"}}},ee={theme:"default",variables:{colorPrimary:"#1785E0",colorBackground:"#FFFFFF",colorText:"#1E293B",colorDanger:"#EF4444",borderRadius:"16px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"15px",spacingUnit:"5px"},rules:{".Input":{backgroundColor:"rgba(255,255,255,0.6)",backdropFilter:"blur(10px)",padding:"14px 16px",border:"1px solid rgba(255,255,255,0.6)",boxShadow:"inset 0 1px 0 rgba(255,255,255,0.5), 0 1px 3px rgba(23,133,224,0.08)"},".Input:focus":{borderColor:"rgba(23,133,224,0.5)",boxShadow:"0 0 0 3px rgba(23,133,224,0.15)"},".Label":{fontWeight:"500",color:"#475569"},".Tab":{padding:"12px 16px",backgroundColor:"rgba(255,255,255,0.5)",border:"1px solid rgba(255,255,255,0.6)",borderRadius:"14px"},".Tab--selected":{borderColor:"rgba(23,133,224,0.6)",boxShadow:"0 0 0 1px rgba(23,133,224,0.6)"}}},te={theme:"night",variables:{colorPrimary:"#60A5FA",colorBackground:"#0F172A",colorText:"#F1F5F9",colorDanger:"#F87171",borderRadius:"16px",fontFamily:"Inter, system-ui, sans-serif",fontSizeBase:"15px",spacingUnit:"5px"},rules:{".Input":{backgroundColor:"rgba(15,23,42,0.6)",backdropFilter:"blur(10px)",padding:"14px 16px",border:"1px solid rgba(255,255,255,0.08)",color:"#F1F5F9"},".Input:focus":{borderColor:"rgba(96,165,250,0.5)",boxShadow:"0 0 0 3px rgba(96,165,250,0.2)"},".Label":{fontWeight:"500",color:"#94A3B8"},".Tab":{padding:"12px 16px",backgroundColor:"rgba(15,23,42,0.6)",border:"1px solid rgba(255,255,255,0.08)",borderRadius:"14px",color:"#F1F5F9"},".Tab--selected":{borderColor:"rgba(96,165,250,0.6)",boxShadow:"0 0 0 1px rgba(96,165,250,0.6)"}}},re={},ne={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"}},ae={cardButton:{backgroundColor:"#1f2937",color:"#f9fafb",border:"1px solid #374151",boxShadow:"none"},cardFormContainer:{backgroundColor:"#111827",border:"1px solid #374151"},cardInputBorder:"#4b5563",cardInputColor:"#f9fafb",cardInputPlaceholderColor:"#6b7280",cardInputBackground:"#1f2937",nameInput:{backgroundColor:"#1f2937",color:"#f9fafb"},backButton:{color:"#9ca3af"},backButtonIcon:{backgroundColor:"#374151"},submitButton:{backgroundColor:"#6366f1"},title:{color:"#f9fafb"},countrySelect:{backgroundColor:"#1f2937",color:"#f9fafb"},zipInput:{backgroundColor:"#1f2937",color:"#f9fafb"}},I={cardFormContainer:{backgroundColor:"#FAFAFA",borderRadius:"20px",border:"1px solid #E5E7EB",boxShadow:"0 8px 24px rgba(15,23,42,0.04)",padding:"24px"},cardButton:{backgroundColor:"#FFFFFF",borderRadius:"14px",border:"1.5px solid #E5E7EB",boxShadow:"0 1px 2px rgba(15,23,42,0.04)",padding:"14px 18px"},cardInputBorder:"#E5E7EB",nameInput:{backgroundColor:"#FFFFFF",border:"1.5px solid #E5E7EB",borderRadius:"14px",padding:"14px 16px"},submitButton:{backgroundColor:"#1785E0",borderRadius:"14px",padding:"16px 24px",boxShadow:"0 4px 14px rgba(23,133,224,0.25)",fontWeight:"600"},title:{color:"#0F172A",fontWeight:"600"},titleFontSize:"20px",backButton:{color:"#64748B"},backButtonIcon:{backgroundColor:"#F1F5F9"}},P={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"}},M={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)"}},N={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 dt(e){switch(e){case"minimal":return ne;case"rounded":return oe;case"dark":return ae;case"modern-light":return I;case"modern-dark":return P;case"bold-light":return R;case"bold-dark":return k;case"glass-light":return M;case"glass-dark":return N;default:return re}}var ie={"modern-light":{appearance:X,buttonsLayout:I},"modern-dark":{appearance:$,buttonsLayout:P},"bold-light":{appearance:J,buttonsLayout:R},"bold-dark":{appearance:Q,buttonsLayout:k},"glass-light":{appearance:ee,buttonsLayout:M},"glass-dark":{appearance:te,buttonsLayout:N}};function lt(e){if(!(!e||e==="classic"))return ie[e]}function pt(e){switch(e){case"apple_pay":return"applePay";case"google_pay":return"googlePay";case"amazon_pay":return"amazonPay";default:return e}}function mt(e,t,r){return`<svg viewBox="0 0 22 22"><circle cx="11" cy="11" r="11" fill="${t}"/><text x="11" y="15.5" text-anchor="middle" font-size="13" font-weight="700" font-family="sans-serif" fill="${r}">${e}</text></svg>`}function H(e,t){return`<svg viewBox="0 0 22 22"><circle cx="11" cy="11" r="11" fill="${e}"/><g fill="${t}"><path d="M11 4 L17.5 8 L4.5 8 Z"/><rect x="5" y="8.4" width="12" height="1.2" rx="0.3"/><rect x="5.9" y="10" width="1.5" height="5"/><rect x="8.55" y="10" width="1.5" height="5"/><rect x="11.95" y="10" width="1.5" height="5"/><rect x="14.6" y="10" width="1.5" height="5"/><rect x="4.6" y="15.4" width="12.8" height="1.5" rx="0.3"/></g></svg>`}function q(e,t,r,n=t){return{backgroundColor:t,borderColor:t,textColor:r,logoSvg:mt(e,r,n)}}function d(e,t,r,n=t,o=r,i=n){return{light:q(e,t,r),dark:q(e,n,o,i)}}var se=["AT","BE","BG","CY","CZ","DE","DK","EE","ES","FI","FR","GR","HR","HU","IE","IT","LT","LU","LV","MT","NL","PL","PT","RO","SE","SI","SK","IS","LI","NO","CH","GB","MC","SM","AD","VA"],yt=[...se,"JP","MX","US"],y={apple_pay:{displayName:"Apple Pay",currencies:["*"],express:!0,needsExplicitConfirm:!1},google_pay:{displayName:"Google Pay",currencies:["*"],express:!0,needsExplicitConfirm:!1},paypal:{displayName:"PayPal",currencies:["eur","gbp","usd","cad","aud","nzd","chf","jpy","pln","sek","nok","dkk","czk","huf"],express:!0,needsExplicitConfirm:!1},link:{displayName:"Link",currencies:["usd","eur"],express:!0,needsExplicitConfirm:!1},amazon_pay:{displayName:"Amazon Pay",currencies:["usd","eur","gbp"],express:!0,needsExplicitConfirm:!1},klarna:{displayName:"Klarna",currencies:["usd","eur","gbp","aud","nzd","cad","chf","sek","nok","dkk","pln","czk","ron"],amounts:{usd:{min:100},eur:{min:100},gbp:{min:100}},theme:d("K","#FFB3C7","#0A0B09")},affirm:{displayName:"Affirm",currencies:["usd"],countries:["US","CA"],amounts:{usd:{min:3500,max:3e6}},needsExplicitConfirm:!1,theme:d("a","#060F33","#FFFFFF","#0FA0EA","#060F33","#FFFFFF")},cashapp:{displayName:"Cash App Pay",currencies:["usd"],countries:["US"],amounts:{usd:{min:50,max:99999999}},needsExplicitConfirm:!1,theme:d("$","#00D54B","#0A1F0E")},samsung_pay:{displayName:"Samsung Pay",currencies:["krw"],countries:["KR"],needsExplicitConfirm:!1},afterpay_clearpay:{displayName:"Afterpay",currencies:["usd","aud","cad","gbp","nzd"],countries:["US","CA","GB","AU","NZ"],amounts:{usd:{min:100,max:2e5},cad:{min:100,max:2e5},gbp:{min:100,max:12e4},aud:{min:100,max:2e5},nzd:{min:100,max:2e5}},theme:d("A","#B2FCE4","#0A0B09")},alipay:{displayName:"Alipay",currencies:["usd","cny"],theme:d("A","#1677FF","#FFFFFF")},au_becs_debit:{displayName:"BECS Direct Debit",currencies:["aud"],countries:["AU"]},bacs_debit:{displayName:"Bacs Debit",currencies:["gbp"],countries:["GB"]},bancontact:{displayName:"Bancontact",currencies:["eur"],countries:["BE"],theme:d("B","#FFDD55","#1E3791","#1E3791","#FFDD55")},bizum:{displayName:"Bizum",currencies:["eur"],countries:["ES"],theme:d("B","#00BFB3","#FFFFFF")},blik:{displayName:"BLIK",currencies:["pln"],countries:["PL"],theme:d("B","#000000","#FFFFFF","#FFFFFF","#000000")},boleto:{displayName:"Boleto",currencies:["brl"],countries:["BR"]},customer_balance:{displayName:"Bank Transfer",currencies:["eur","usd"],countries:yt,theme:{light:{backgroundColor:"#1F2937",textColor:"#FFFFFF",borderColor:"#1F2937",logoSvg:H("#1F2937","#FFFFFF")},dark:{backgroundColor:"#374151",textColor:"#FFFFFF",borderColor:"#374151",logoSvg:H("#374151","#FFFFFF")}}},eps:{displayName:"EPS",currencies:["eur"],countries:["AT"],theme:d("E","#C8102E","#FFFFFF")},giropay:{displayName:"Giropay",currencies:["eur"],countries:["DE"],theme:d("G","#0F4197","#FFFFFF")},ideal:{displayName:"iDEAL",currencies:["eur"],countries:["NL"],theme:d("i","#CC0066","#FFFFFF")},konbini:{displayName:"Konbini",currencies:["jpy"],countries:["JP"]},kr_card:{displayName:"Korean Card",currencies:["krw"],countries:["KR"],theme:d("K","#0B3D91","#FFFFFF")},multibanco:{displayName:"Multibanco",currencies:["eur"],countries:["PT"]},oxxo:{displayName:"OXXO",currencies:["mxn"],countries:["MX"]},p24:{displayName:"Przelewy24",currencies:["eur","pln"],countries:["PL"],theme:d("P","#D90F1B","#FFFFFF")},paynow:{displayName:"PayNow",currencies:["sgd"],countries:["SG"]},pix:{displayName:"Pix",currencies:["brl"],countries:["BR"]},promptpay:{displayName:"PromptPay",currencies:["thb"],countries:["TH"]},sepa_debit:{displayName:"SEPA Debit",currencies:["eur"],countries:se,theme:d("\u20AC","#10298E","#FFFFFF","#3056D3")},sofort:{displayName:"Sofort",currencies:["eur"],countries:["AT","BE","DE","ES","IT","NL"],theme:d("S","#EF809F","#FFFFFF")},upi:{displayName:"UPI",currencies:["inr"],countries:["IN"],theme:d("U","#FF7909","#FFFFFF")},us_bank_account:{displayName:"US Bank Account",currencies:["usd"],countries:["US"]},wechat_pay:{displayName:"WeChat Pay",currencies:["usd","cny"],theme:d("W","#07C160","#FFFFFF")},zip:{displayName:"Zip",currencies:["aud"],countries:["AU","NZ"]}};function gt(e){return z.includes(e)}var ue=Object.entries(y).filter(([,e])=>e.express).map(([e])=>e),Et=new Set(ue),ce=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 ft(e){return e?y[e]?.displayName??e.split("_").filter(Boolean).map(t=>t[0].toUpperCase()+t.slice(1)).join(" "):"this method"}function Ct(e){return y[e]?.needsExplicitConfirm!==!1}function Tt(e,t){let r=y[e]?.theme;return r?(typeof t=="string"&&t.endsWith("-dark")?r.dark:r.light)??r.light??null:null}function bt(e,t){if(!e||e.length===0)return[];if(!t)return[...e];let r=t.trim().toLowerCase();return r?e.filter(n=>{let o=ce[n];return o?o.includes("*")||o.includes(r):!0}):[...e]}function ht(e,t){if(!e||e.length===0)return[];if(!t)return[...e];let r=t.trim().toUpperCase();return r?e.filter(n=>{let o=de[n];return o?o.includes("*")||o.includes(r):!0}):[...e]}var le=Object.fromEntries(Object.entries(y).filter(([,e])=>e.amounts).map(([e,t])=>[e,t.amounts]));function St(e,t,r){if(!e||e.length===0)return[];if(!t||typeof r!="number"||!Number.isFinite(r))return[...e];let n=t.trim().toLowerCase();return n?e.filter(o=>{let i=le[o];if(!i)return!0;let u=i[n];return u?!(typeof u.min=="number"&&r<u.min||typeof u.max=="number"&&r>u.max):!0}):[...e]}function xt(e,t){if(!e||e.length===0)return{expressMethods:[],paymentElementMethods:[]};let r=[],n=[],o=new Set,i=new Set;for(let u of e){if(typeof u!="string")continue;let p=u.trim();if(!(!p||p==="card")&&!(t?.excludePaypal&&p==="paypal"))if(Et.has(p)){if(o.has(p))continue;o.add(p),r.push(p)}else{if(i.has(p))continue;i.add(p),n.push(p)}}return{expressMethods:r,paymentElementMethods:n}}var At=["visa","mastercard","mastercard_debit","amex","discover"],L={AT:{currency:"EUR",symbol:"\u20AC",country:"Austria",countryCode:"AT",tax:1},BE:{currency:"EUR",symbol:"\u20AC",country:"Belgium",countryCode:"BE",tax:1},CY:{currency:"EUR",symbol:"\u20AC",country:"Cyprus",countryCode:"CY",tax:1},DE:{currency:"EUR",symbol:"\u20AC",country:"Germany",countryCode:"DE",tax:1},EE:{currency:"EUR",symbol:"\u20AC",country:"Estonia",countryCode:"EE",tax:1},ES:{currency:"EUR",symbol:"\u20AC",country:"Spain",countryCode:"ES",tax:1},FI:{currency:"EUR",symbol:"\u20AC",country:"Finland",countryCode:"FI",tax:1},FR:{currency:"EUR",symbol:"\u20AC",country:"France",countryCode:"FR",tax:1},GR:{currency:"EUR",symbol:"\u20AC",country:"Greece",countryCode:"GR",tax:1},HR:{currency:"EUR",symbol:"\u20AC",country:"Croatia",countryCode:"HR",tax:1},IE:{currency:"EUR",symbol:"\u20AC",country:"Ireland",countryCode:"IE",tax:1},IT:{currency:"EUR",symbol:"\u20AC",country:"Italy",countryCode:"IT",tax:1},LT:{currency:"EUR",symbol:"\u20AC",country:"Lithuania",countryCode:"LT",tax:1},LU:{currency:"EUR",symbol:"\u20AC",country:"Luxembourg",countryCode:"LU",tax:1},LV:{currency:"EUR",symbol:"\u20AC",country:"Latvia",countryCode:"LV",tax:1},MT:{currency:"EUR",symbol:"\u20AC",country:"Malta",countryCode:"MT",tax:1},NL:{currency:"EUR",symbol:"\u20AC",country:"Netherlands",countryCode:"NL",tax:1},PT:{currency:"EUR",symbol:"\u20AC",country:"Portugal",countryCode:"PT",tax:1},SI:{currency:"EUR",symbol:"\u20AC",country:"Slovenia",countryCode:"SI",tax:1},SK:{currency:"EUR",symbol:"\u20AC",country:"Slovakia",countryCode:"SK",tax:1},BG:{currency:"EUR",symbol:"\u20AC",country:"Bulgaria",countryCode:"BG",tax:1},RO:{currency:"EUR",symbol:"\u20AC",country:"Romania",countryCode:"RO",tax:1},CZ:{currency:"EUR",symbol:"\u20AC",country:"Czech Republic",countryCode:"CZ",tax:1},SE:{currency:"EUR",symbol:"\u20AC",country:"Sweden",countryCode:"SE",tax:1},DK:{currency:"EUR",symbol:"\u20AC",country:"Denmark",countryCode:"DK",tax:1},PL:{currency:"EUR",symbol:"\u20AC",country:"Poland",countryCode:"PL",tax:1},HU:{currency:"EUR",symbol:"\u20AC",country:"Hungary",countryCode:"HU",tax:1},GB:{currency:"GBP",symbol:"\xA3",country:"United Kingdom",countryCode:"GB",tax:1},US:{currency:"USD",symbol:"$",country:"United States",countryCode:"US",tax:0},CA:{currency:"CAD",symbol:"CA$",country:"Canada",countryCode:"CA",tax:0},NZ:{currency:"NZD",symbol:"NZ$",country:"New Zealand",countryCode:"NZ",tax:0},AU:{currency:"AUD",symbol:"AU$",country:"Australia",countryCode:"AU",tax:0}},B={currency:"USD",symbol:"$",country:"United States",countryCode:"US",tax:0};function _t(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 Ft=new Intl.DisplayNames(["en"],{type:"region"});function It(e){return[...e.toUpperCase()].map(t=>String.fromCodePoint(127397+t.charCodeAt(0))).join("")}var pe=["US","GB","CA","AU","NZ","IE","DE","FR"],Pt=["AD","AE","AF","AG","AL","AM","AO","AR","AT","AU","AZ","BA","BB","BD","BE","BF","BG","BH","BI","BJ","BN","BO","BR","BS","BT","BW","BY","BZ","CA","CD","CF","CG","CH","CI","CL","CM","CN","CO","CR","CU","CV","CY","CZ","DE","DJ","DK","DM","DO","DZ","EC","EE","EG","ER","ES","ET","FI","FJ","FM","FR","GA","GB","GD","GE","GH","GM","GN","GQ","GR","GT","GW","GY","HN","HR","HT","HU","ID","IE","IL","IN","IQ","IR","IS","IT","JM","JO","JP","KE","KG","KH","KI","KM","KN","KR","KW","KZ","LA","LB","LC","LI","LK","LR","LS","LT","LU","LV","LY","MA","MC","MD","ME","MG","MH","MK","ML","MM","MN","MR","MT","MU","MV","MW","MX","MY","MZ","NA","NE","NG","NI","NL","NO","NP","NR","NZ","OM","PA","PE","PG","PH","PK","PL","PT","PW","PY","QA","RO","RS","RU","RW","SA","SB","SC","SD","SE","SG","SI","SK","SL","SM","SN","SO","SR","SS","ST","SV","SY","SZ","TD","TG","TH","TJ","TL","TM","TN","TO","TR","TT","TV","TW","TZ","UA","UG","US","UY","UZ","VA","VC","VE","VN","VU","WS","XK","YE","ZA","ZM","ZW"];function W(e){return{code:e,name:Ft.of(e)??e,flag:It(e)}}var Rt=new Set(pe),kt=Pt.filter(e=>!Rt.has(e)),me=[...pe.map(W),...kt.map(W)];function Mt(e){return me.find(t=>t.code===e)}var Nt={country:!0,postal_code:!0};function ye(e){return e===!0?Nt:e||null}function Lt(e,t){if(!e)return!1;if(e===!0)return!0;let r=t.trim().toUpperCase();return e.some(n=>n.trim().toUpperCase()===r)}function Bt(e){let t=ye(e);return t?Object.values(t).some(r=>r===!0||Array.isArray(r)&&r.length>0):!1}var ge=[{code:"AL",name:"Alabama"},{code:"AK",name:"Alaska"},{code:"AZ",name:"Arizona"},{code:"AR",name:"Arkansas"},{code:"CA",name:"California"},{code:"CO",name:"Colorado"},{code:"CT",name:"Connecticut"},{code:"DE",name:"Delaware"},{code:"DC",name:"District of Columbia"},{code:"FL",name:"Florida"},{code:"GA",name:"Georgia"},{code:"HI",name:"Hawaii"},{code:"ID",name:"Idaho"},{code:"IL",name:"Illinois"},{code:"IN",name:"Indiana"},{code:"IA",name:"Iowa"},{code:"KS",name:"Kansas"},{code:"KY",name:"Kentucky"},{code:"LA",name:"Louisiana"},{code:"ME",name:"Maine"},{code:"MD",name:"Maryland"},{code:"MA",name:"Massachusetts"},{code:"MI",name:"Michigan"},{code:"MN",name:"Minnesota"},{code:"MS",name:"Mississippi"},{code:"MO",name:"Missouri"},{code:"MT",name:"Montana"},{code:"NE",name:"Nebraska"},{code:"NV",name:"Nevada"},{code:"NH",name:"New Hampshire"},{code:"NJ",name:"New Jersey"},{code:"NM",name:"New Mexico"},{code:"NY",name:"New York"},{code:"NC",name:"North Carolina"},{code:"ND",name:"North Dakota"},{code:"OH",name:"Ohio"},{code:"OK",name:"Oklahoma"},{code:"OR",name:"Oregon"},{code:"PA",name:"Pennsylvania"},{code:"RI",name:"Rhode Island"},{code:"SC",name:"South Carolina"},{code:"SD",name:"South Dakota"},{code:"TN",name:"Tennessee"},{code:"TX",name:"Texas"},{code:"UT",name:"Utah"},{code:"VT",name:"Vermont"},{code:"VA",name:"Virginia"},{code:"WA",name:"Washington"},{code:"WV",name:"West Virginia"},{code:"WI",name:"Wisconsin"},{code:"WY",name:"Wyoming"}],Ee=[{code:"AB",name:"Alberta"},{code:"BC",name:"British Columbia"},{code:"MB",name:"Manitoba"},{code:"NB",name:"New Brunswick"},{code:"NL",name:"Newfoundland and Labrador"},{code:"NS",name:"Nova Scotia"},{code:"NT",name:"Northwest Territories"},{code:"NU",name:"Nunavut"},{code:"ON",name:"Ontario"},{code:"PE",name:"Prince Edward Island"},{code:"QC",name:"Quebec"},{code:"SK",name:"Saskatchewan"},{code:"YT",name:"Yukon"}];function Ot(e){switch(e.toUpperCase()){case"US":return ge;case"CA":return Ee;default:return null}}function vt(e){switch(e.toUpperCase()){case"US":return"State";case"CA":return"Province";case"GB":return"County";case"AU":return"State / Territory";default:return"State / Province / Region"}}function Dt(e,t={}){let r=[],n=e.products??[],o=n.filter(s=>s.type==="subscription"),i=n.filter(s=>s.type!=="subscription"),p=(A(e.currency,void 0,void 0,n)??"USD").toUpperCase();for(let s of o){let m=s.totalAmount??0,f=s.overrideAmount??m,x=s.name||s.code||"Subscription";x==="4-WEEK PLAN"&&f<=1&&(x="7-DAY TRIAL: FULL ACCESS"),r.push({name:x,quantity:s.quantity,price:f,originalPrice:m})}if(!(t.hideBundledItems===!0&&o.length>0&&i.length>0))for(let s of i){let m=s.totalAmount??0,f=s.overrideAmount??m;r.push({name:s.name||s.code||"Item",quantity:s.quantity,price:f,originalPrice:m})}r.length===0&&r.push({name:"Purchase",quantity:1,price:e.amount/100,originalPrice:e.amount/100});let Ne=r.reduce((s,m)=>s+m.originalPrice*m.quantity,0),Le=r.reduce((s,m)=>s+m.price*m.quantity,0),Be=typeof e.totalAmount=="number"&&Number.isFinite(e.totalAmount),Oe=typeof e.subtotalAmount=="number"&&Number.isFinite(e.subtotalAmount),ve=typeof e.discountAmount=="number"&&Number.isFinite(e.discountAmount),G=Be?e.totalAmount:Le,E=Oe?e.subtotalAmount:Ne,Y=Math.max(0,E-G),De=E>0?Math.round(Y/E*100):0;return{items:r,currency:p,total:G,originalTotal:E,totalSave:Y,discountPercent:De,...ve?{couponDiscount:e.discountAmount}:{}}}import*as Ut from"validator/lib/isEmail.js";var O=Ut,fe=typeof O.default=="function"?O.default:O.default?.default;if(typeof fe!="function")throw new Error("validator/lib/isEmail.js interop failed: unexpected module shape. This likely means the bundler's CJS/ESM interop changed.");function wt(e){return typeof e=="string"&&e.length>0&&fe(e)}var Vt="Idempotency-Key",v=255,Gt="IdempotencyKeyInProgress";function Yt(){let e=globalThis.crypto;if(e&&(typeof e.randomUUID=="function"||typeof e.getRandomValues=="function"))return e}function Ce(){let e=Yt();if(!e)return;if(typeof e.randomUUID=="function")return e.randomUUID();if(typeof e.getRandomValues!="function")return;let t=new Uint8Array(16);return e.getRandomValues(t),Array.from(t,r=>r.toString(16).padStart(2,"0")).join("")}function Kt(e){if(e===void 0)return Ce();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>v)throw new c(`idempotencyKey must be at most ${v} characters.`,"validation_error",{code:"InvalidIdempotencyKey",param:"idempotencyKey"});return e}var zt=1,Ht=[{name:"checkout_mount"},{name:"sdk_loaded"},{name:"form_rendered"},{name:"card_expanded"},{name:"tokenize"},{name:"process_attempt"},{name:"3ds_challenge"},{name:"checkout_error",phase:"session_create"},{name:"checkout_error",phase:"sdk_load"},{name:"checkout_error",phase:"process"},{name:"checkout_error",phase:"wallets"}];var qt=[[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"]],Wt={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 jt(e){let t=e.replace(/\D/g,"");if(t.length<5)return null;let r=Number.parseInt(t.slice(0,3),10);if(!Number.isFinite(r))return null;for(let[n,o,i]of qt)if(r>=n&&r<=o)return i;return null}function Zt(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 Wt[r]??null}function Xt(e,t){if(!e||!t)return null;let r=e.trim().toUpperCase(),n=t.trim();if(!n)return null;switch(r){case"US":return jt(n);case"CA":return Zt(n);default:return null}}import*as $t from"validator/lib/isPostalCode.js";var T=$t,Te=typeof T.default=="function"?T.default:T.default?.default;if(typeof Te!="function")throw new Error("validator/lib/isPostalCode.js interop failed: unexpected module shape. This likely means the bundler's CJS/ESM interop changed.");var be=new Set(T.locales.map(e=>e.toUpperCase())),Jt={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:Jt[t]??null:null}var Qt={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 er(e){let t=D(e);return t!==null&&be.has(t)}function tr(e,t){let r=(t??"").trim();if(!r)return!0;let n=D(e);if(n===null||!be.has(n))return!0;try{return Te(r,n)}catch{return!0}}function rr(e){let t=D(e);return t?Qt[t]:void 0}var nr=/(?:^|\/)dahlia\/stripe\.js(?:$|[?#])/i,or=/^dahlia\/stripe$/i,ar=/^(?:chrome|moz|safari-web)-extension:\/\//i,ir=/^@flopay(?:\/|$)/i;function he(e){return nr.test(e)||ar.test(e)}function sr(e){let t=[e.filename,e.abs_path].filter(r=>r!==void 0&&r!=="<anonymous>");return e.module!==void 0&&ir.test(e.module)||t.some(r=>!he(r))?"first-party":e.module!==void 0&&or.test(e.module)||t.some(he)?"third-party-hosted":t.length===0?"injected":"first-party"}function ur(e){let t=e.exception?.values;if(!t||t.length===0)return e;let r=[];for(let o of t){let i=o.stacktrace?.frames;if(!i||i.length===0)return e;r.push(...i)}let n=r.map(sr);return!n.includes("first-party")&&n.includes("third-party-hosted")?null:e}var cr=1,Se=["@flopay/shared","@flopay/js","@flopay/react"],dr=32768,lr=20,pr=["stripe","paypal"],mr=["card","wallet","paypal","apm","saved","unknown"],yr=["apple_pay","google_pay"],gr=["watchdog_expired","resolved","rejected","returned_error","resolved_late","rejected_late","returned_error_late"],Er=["none","facebook","instagram","tiktok","generic_webview","other_in_app"],fr=["unknown","available","blocked"],Cr=["popup","app_switch","redirect"],Tr=["approved","cancelled","provider_declined","popup_blocked","provider_error","overlay_timeout"],br=["callback","sdk_initialize","checkout_mount","session_create","session_shell","session_claim","session_read","session_first_byte","session_complete","checkout_data_ready","checkout_render","provider_load","provider_ready","provider_confirmation","overlay_open","overlay_return","redirect","redirect_resume","vault_request","vault_mount","vault_ready","vault_submit","tokenization","three_ds_handoff","three_ds_return","processing","recovery","completion","unmount","total_journey"],xe=["CALLBACK_FAILED","CHECKOUT_SESSION_CREATE_FAILED","CONFIGURATION_INVALID","INTERNAL_SDK_ERROR","NETWORK_REQUEST_FAILED","PAYMENT_PROCESSING_FAILED","POPUP_BLOCKED","PROVIDER_LOAD_FAILED","PROVIDER_RUNTIME_FAILED","RECOVERY_FAILED","REDIRECT_RESUME_FAILED","REQUEST_TIMEOUT","SDK_INITIALIZATION_FAILED","THREE_DS_FAILED","TOKENIZATION_FAILED","VAULT_LOAD_FAILED","VAULT_SUBMIT_FAILED"],Ae=["server_error","transport_error","invalid_response","provider_runtime"],_e=["sdk.initialize.started","sdk.initialize.ready","sdk.cache.hit","sdk.cache.miss","checkout.mount","session.create.started","session.shell.ready","session.claim.started","session.claim.completed","session.read.started","session.request.first_byte","session.request.completed","checkout.data.ready","checkout.rendered","checkout.recovery.started","checkout.recovery.completed","checkout.unmount","provider.load.started","provider.eligibility.checked","provider.availability.checked","provider.ready","provider.handoff.requested","provider.popup.opened","provider.overlay.opened","provider.overlay.returned","provider.redirect.started","provider.redirect.resumed","vault.capture.requested","vault.widget.mounted","vault.widget.ready","vault.submission.started","vault.action.required","vault.three_ds.handoff","vault.three_ds.returned","vault.terminal","payment.method.selected","payment.intent.started","payment.intent.completed","payment.provider_confirmation.started","payment.provider_confirmation.returned","payment.tokenization.started","payment.tokenization.completed","payment.processing.started","payment.processing.completed","payment.three_ds.handoff","payment.three_ds.returned","operation.retry","operation.deduplicated","operation.fallback","operation.cache.hit","operation.cache.miss","operation.recovery.started","operation.recovery.completed","operation.state_transition"],hr=["session_create","session_claim","session_read","intent_create","process_payment","vault_capture","account_snapshot","provider_sdk","other"],Sr=["2xx","3xx","4xx","5xx","network_error","timeout","unknown"],xr=["full","auto","confirm","setup","unknown"],Ar=["embedded","buttons","automatic","unknown"],_r=["machine","buyer","total"],Fr=["action_required","card_setup_declined","card_setup_succeeded","customer_abandoned","payment_cancelled","payment_declined","payment_authorized","payment_succeeded","validation_rejected"],U=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,Ir=/^\d{1,4}\.\d{1,4}\.\d{1,4}(?:-[0-9A-Za-z.-]{1,32})?$/,Pr=new Set(xe),Rr=new Set(Ae),b=new Set(br),kr=new Set(pr),Mr=new Set(mr),Nr=new Set(yr),Lr=new Set(gr),Br=new Set(Er),Or=new Set(fr),vr=new Set(Cr),Dr=new Set(Tr),Ur=new Set(_e),wr=new Set(xr),Vr=new Set(Ar),Gr=new Set(hr),Yr=new Set(Sr),Kr=new Set(_r),zr=new Set(Fr),Hr=new Set(Se),Fe=12e4;function l(e,t,r){return typeof e=="string"&&t.has(e)?e:r}function qr(){try{let r=globalThis.crypto.randomUUID();if(U.test(r))return r}catch{}let e=new Uint8Array(16);try{globalThis.crypto.getRandomValues(e)}catch{for(let r=0;r<e.length;r+=1)e[r]=Math.floor(Math.random()*256)}e[6]=(e[6]??0)&15|64,e[8]=(e[8]??0)&63|128;let t=[...e].map(r=>r.toString(16).padStart(2,"0")).join("");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}function g(e){return typeof e=="string"&&U.test(e)?e:qr()}function Wr(e){return typeof e=="string"&&U.test(e)?e:void 0}function jr(e){return typeof e=="number"&&Number.isInteger(e)&&e>=0&&e<=100?e:void 0}function h(e){return Number.isSafeInteger(e)&&e>=0?Math.min(e,1e6):0}function Ie(e){return!Number.isFinite(e)||e<0?0:Math.min(Math.round(e),Fe)}function Zr(e){return Number.isFinite(e)&&e>Fe}function S(e,t){let r=jr(t.attempt);return t.provider&&kr.has(t.provider)&&(e.provider=t.provider),r!==void 0&&(e.attempt=r),t.statusClass&&(e.statusClass=l(t.statusClass,Yr,"unknown")),t.requestCategory&&(e.requestCategory=l(t.requestCategory,Gr,"other")),t.paymentMethodCategory&&(e.paymentMethodCategory=l(t.paymentMethodCategory,Mr,"unknown")),t.walletType&&Nr.has(t.walletType)&&(e.walletType=t.walletType),t.operationOutcome&&Lr.has(t.operationOutcome)&&(e.operationOutcome=t.operationOutcome),t.checkoutMode&&(e.checkoutMode=l(t.checkoutMode,wr,"unknown")),t.layout&&(e.layout=l(t.layout,Vr,"unknown")),typeof t.inAppBrowser=="boolean"&&(e.inAppBrowser=t.inAppBrowser),t.appFamily&&Br.has(t.appFamily)&&(e.appFamily=t.appFamily),t.popupCapability&&Or.has(t.popupCapability)&&(e.popupCapability=t.popupCapability),t.presentationMode&&vr.has(t.presentationMode)&&(e.presentationMode=t.presentationMode),t.terminalReason&&Dr.has(t.terminalReason)&&(e.terminalReason=t.terminalReason),e}function Pe(e){let t=S({eventId:g(e.eventId),class:"technical_error",code:l(e.errorCode,Pr,"INTERNAL_SDK_ERROR"),stage:l(e.stage,b,"sdk_initialize"),sequence:h(e.sequence)},e);if(e.failureCategory&&Rr.has(e.failureCategory)&&(t.failureCategory=e.failureCategory),e.stage!=="provider_confirmation"){let r=Wr(e.checkoutSessionId);r&&(t.checkoutSessionId=r)}return e.durationMs!==void 0&&(t.durationMs=Ie(e.durationMs)),t}function Re(e){return S({eventId:g(e.eventId),class:"lifecycle",name:l(e.name,Ur,"operation.retry"),stage:l(e.stage,b,"sdk_initialize"),sequence:h(e.sequence)},e)}function ke(e){let t={...e,stage:e.stage??"completion"};return S({eventId:g(e.eventId),class:"expected_outcome",outcome:l(e.outcome,zr,"customer_abandoned"),stage:l(e.stage,b,"completion"),sequence:h(e.sequence)},t)}function Me(e){let t=S({eventId:g(e.eventId),class:"performance",stage:l(e.stage,b,"sdk_initialize"),sequence:h(e.sequence),durationMs:Ie(e.durationMs),durationMode:l(e.durationMode,Kr,"machine")},e);return(e.durationTruncated===!0||Zr(e.durationMs))&&(t.durationTruncated=!0),t}function Xr(e,t){let r=e.slice(0,20).flatMap(o=>o.class==="technical_error"?[Pe({...o,errorCode:o.code})]:o.class==="lifecycle"?[Re(o)]:o.class==="expected_outcome"?[ke(o)]:o.class==="performance"?[Me(o)]:[]),n={schemaVersion:1,batchId:g(t.batchId),correlationId:g(t.correlationId),sdk:{package:l(t.sdkPackage,Hr,"@flopay/shared"),version:Ir.test(t.sdkVersion)?t.sdkVersion:"0.0.0"},events:r};return JSON.stringify(n)}var $r=new Set(["InvalidCheckoutSessionResponse","InvalidPaymentProcessResponse","InvalidSessionIntentResponse"]);function Jr(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 Qr(e,t,r="network_error"){if(e instanceof SyntaxError)return{errorCode:t,statusClass:"unknown",failureCategory:"invalid_response"};if(e instanceof c&&e.code!==void 0&&$r.has(e.code))return{errorCode:t,statusClass:w(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 n=w(e instanceof c?e.statusCode:void 0,r);return{errorCode:t,statusClass:n,...n==="5xx"?{failureCategory:"server_error"}:{}}}function w(e,t="network_error"){if(e===void 0)return t;let r=`${Math.floor(e/100)}xx`;return r==="2xx"||r==="3xx"||r==="4xx"||r==="5xx"?r:"unknown"}function en(e){if(e!=null)switch(e){case"sandbox":case"stage":return"sandbox";case"live":case"production":return"live";default:console.warn(`[FloPay] Unrecognized gateway environment "${e}". Expected one of: sandbox, live, stage, production. Falling back to undefined.`);return}}var V=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function tn(e){return typeof e=="string"&&V.test(e)}function rn(){try{let r=globalThis.crypto.randomUUID();if(V.test(r))return r}catch{}let e=new Uint8Array(16);try{globalThis.crypto.getRandomValues(e)}catch{for(let r=0;r<e.length;r+=1)e[r]=Math.floor(Math.random()*256)}e[6]=(e[6]??0)&15|64,e[8]=(e[8]??0)&63|128;let t=[...e].map(r=>r.toString(16).padStart(2,"0")).join("");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}function nn(e){return L[e.toUpperCase()]??B}function on(e){return/^pk_(test|live)_[A-Za-z0-9]+$/.test(e)}function an(e){return/^sk_(test|live)_[A-Za-z0-9]+$/.test(e)}function sn(e){return typeof e=="string"&&e.startsWith("seti_")}function un(...e){return/^\s*card\s+holder\s+name\s*$/i.test(e.join(" "))}export{at as BILLING_API_URL,j as BILLING_API_URL_PRODUCTION,C as BILLING_API_URL_STAGING,Q as BOLD_DARK_APPEARANCE,J as BOLD_LIGHT_APPEARANCE,k as BUTTONS_LAYOUT_BOLD_DARK,R as BUTTONS_LAYOUT_BOLD_LIGHT,ae as BUTTONS_LAYOUT_DARK,re as BUTTONS_LAYOUT_DEFAULT,N as BUTTONS_LAYOUT_GLASS_DARK,M as BUTTONS_LAYOUT_GLASS_LIGHT,ne as BUTTONS_LAYOUT_MINIMAL,P as BUTTONS_LAYOUT_MODERN_DARK,I as BUTTONS_LAYOUT_MODERN_LIGHT,oe as BUTTONS_LAYOUT_ROUNDED,Ee as CA_PROVINCES,me as COUNTRY_OPTIONS,L as CURRENCY_MAP,ot as DEFAULT_API_BASE_URL,st as DEFAULT_API_VERSION,Z as DEFAULT_APPEARANCE,B as DEFAULT_CURRENCY,ut as FLAT_APPEARANCE,Ht as FLO_INSTRUMENT_CATALOG,zt as FLO_INSTRUMENT_SCHEMA_VERSION,rt as FLO_SDK_VERSION_HEADER,c as FloPayError,te as GLASS_DARK_APPEARANCE,ee as GLASS_LIGHT_APPEARANCE,Gt as IDEMPOTENCY_IN_PROGRESS_CODE,Vt as IDEMPOTENCY_KEY_HEADER,v as MAX_IDEMPOTENCY_KEY_LENGTH,$ as MODERN_DARK_APPEARANCE,X as MODERN_LIGHT_APPEARANCE,ct as NIGHT_APPEARANCE,nt as PAYPAL_VAULTED_PAYMENT_METHOD_TYPE,tt as SDK_VERSION,ue as STRIPE_EXPRESS_METHODS,le as STRIPE_METHOD_AMOUNT_LIMITS,de as STRIPE_METHOD_COUNTRIES,ce as STRIPE_METHOD_CURRENCIES,y as STRIPE_METHOD_MATRIX,At as SUPPORTED_CARD_BRANDS,xe as TELEMETRY_ERROR_CODES,Ae as TELEMETRY_FAILURE_CATEGORIES,_e as TELEMETRY_LOG_NAMES,dr as TELEMETRY_MAX_BATCH_BYTES,lr as TELEMETRY_MAX_BATCH_EVENTS,cr as TELEMETRY_SCHEMA_VERSION,Se as TELEMETRY_SDK_PACKAGES,ie as THEMES,ge as US_STATES,V as UUID_V4,Ke as apiError,We as assertCaptureMethodEligible,ze as authenticationError,Dt as buildCheckoutDisplayData,Xe as buildItemPayload,Ze as buildProductPayload,$e as buildSubscriptionPayload,Pe as buildTelemetryErrorEvent,Re as buildTelemetryLogEvent,Me as buildTelemetryPerformanceEvent,ke as buildTelemetryTerminalEvent,Jr as classifyPaymentRejection,Qr as classifyTelemetryFailure,Qe as configureFlopay,ur as dropThirdPartyOnlyError,St as filterStripeMethodsByAmount,ht as filterStripeMethodsByCountry,bt as filterStripeMethodsByCurrency,K as foldIntoProducts,Ce as generateIdempotencyKey,F as getConfiguredBillingApiUrl,Mt as getCountryByCode,nn as getCurrencyByCountry,et as getFloPayEnvironment,rr as getPostalCodeExample,_t as getPostalCodeLabel,Xt as getStateFromPostalCode,vt as getStateLabel,Ot as getStateOptions,ft as getStripeMethodDisplayName,gt as hasVendoredStripeMethodLogo,Bt as isAVSEnabled,Lt as isAVSFieldVisible,we as isAuthorizationOnlySession,un as isCardHolderNamePlaceholder,Ue as isCardSetupCheckoutSession,je as isDetachedSessionEligible,Ve as isMoneySettledOutcome,er as isPostalCodeSupported,sn as isSetupIntentClientSecret,tn as isUuidV4,wt as isValidEmail,tr as isValidPostalCode,on as isValidPublishableKey,an as isValidSecretKey,Ct as needsStripeMethodExplicitConfirm,qe as networkError,Ge as normalizeCheckoutFailureOutcome,en as normalizeGatewayEnvironment,xt as partitionStripeMethods,rn as randomUuidV4,He as rateLimitError,ye as resolveAVSConfig,it as resolveBillingApiUrl,dt as resolveButtonsLayoutTheme,Kt as resolveIdempotencyKey,A as resolveSessionCurrency,Tt as resolveStripeMethodBrandVariant,lt as resolveTheme,Xr as serializeTelemetryBatch,pt as stripeExpressMethodToOptionKey,w as telemetryStatusClass,Ye as validationError};
1
+ function De(e){return e.checkoutMode==="setup"&&e.amount===0&&(e.products?.length??0)===0}function Ue(e){return e?.captureMethod==="manual"}function we(e,t){return e==="requires_capture"?t!=="manual":e==="succeeded"||e==="complete"||e==="completed"||e==="captured"||e==="paid"}function Ve(e){if(typeof e!="string"||e.length===0)return;let t=e.trim().toLowerCase().replace(/[\s-]+/g,"_");if(t==="capture_failed"||t.includes("capture")&&(t.includes("fail")||t.includes("error")))return"capture_failed";if(t==="authorization_expired"||t.includes("expired")||t.includes("expiry"))return"authorization_expired";if(t==="authentication_required"||t.includes("3ds")||t.includes("three_d")||t.includes("authentication")||t.includes("action_required"))return"authentication_required";if(t==="authorization_declined"||t.includes("declin")||t.includes("authorization_fail"))return"authorization_declined"}var d=class extends Error{constructor(t,r,n){super(t),this.name="FloPayError",this.type=r,this.code=n?.code,this.declineCode=n?.declineCode,this.param=n?.param,this.statusCode=n?.statusCode,n?.details!==void 0&&(this.details=n.details),n?.cause!==void 0&&(this.cause=n.cause),Object.setPrototypeOf(this,new.target.prototype)}};function Ge(e,t){return new d(e,"validation_error",{param:t})}function Ye(e,t,r){return new d(e,"api_error",{code:t,statusCode:r})}function Ke(e){return new d(e,"authentication_error")}function ze(e){return new d(e,"rate_limit_error")}function He(e){return new d(e,"network_error")}function qe(e){if(!(e.captureMethod!=="manual"||!(e.products??Y(e.items,e.subscriptions)).some(r=>r.type==="subscription")))throw new d("Manual capture is not supported for subscription products.","validation_error",{code:"CaptureMethodUnsupportedForSubscription",param:"captureMethod"})}function We(e){return e.deferDataAttachment!==!1&&(e.checkoutMode??"full")==="full"&&!e.tokenizedData}function a(e){if(typeof e!="string")return;let t=e.trim();return t.length>0?t:void 0}function A(e,t,r,n){let o=a(e);if(o)return o;for(let i of t??[]){let u=a(i.currency);if(u)return u}for(let i of r??[]){let u=a(i.currency);if(u)return u}for(let i of n??[]){let u=a(i.currency);if(u)return u}return null}function Y(e,t){let r=[];for(let n of t??[])r.push({type:"subscription",code:a(n.code)??a(n.providerPlanId),providerPlanId:n.providerPlanId,name:a(n.subscriptionName)??a(n.providerPlanName)??null,subscriptionName:n.subscriptionName??null,providerPlanName:n.providerPlanName??null,quantity:n.quantity,totalAmount:n.totalAmount,overrideAmount:n.overrideAmount,currency:n.currency,metadata:n.metadata});for(let n of e??[])r.push({type:"item",code:a(n.code)??a(n.providerItemId),providerItemId:n.providerItemId,name:a(n.itemName)??a(n.providerItemName)??null,itemName:n.itemName??null,providerItemName:n.providerItemName??null,quantity:n.quantity,totalAmount:n.totalAmount,overrideAmount:n.overrideAmount,currency:n.currency,metadata:n.metadata});return r}function je(e,t){let r=a(e.code)??a(e.providerItemId)??a(e.providerPlanId);if(!r)throw new Error("CheckoutProduct requires `code` (or the deprecated `providerItemId` / `providerPlanId`).");let n=a(e.name)??a(e.itemName)??a(e.providerItemName)??a(e.subscriptionName)??a(e.providerPlanName)??null,o={type:e.type,code:r,name:n,quantity:e.quantity??1,totalAmount:e.totalAmount,overrideAmount:e.overrideAmount??null,currency:a(e.currency)??t};return e.metadata&&(o.metadata=e.metadata),o}function Ze(e,t){let r=a(e.code)??a(e.providerItemId);if(!r)throw new Error("CheckoutItem requires either `code` or the deprecated `providerItemId`.");let n=a(e.itemName)??a(e.providerItemName)??null,o={code:r,providerItemId:a(e.providerItemId)??r,itemName:n,providerItemName:a(e.providerItemName)??n,quantity:e.quantity??1,totalAmount:e.totalAmount,overrideAmount:e.overrideAmount??null,currency:a(e.currency)??t};return e.metadata&&(o.metadata=e.metadata),o}function $e(e,t){let r=a(e.code)??a(e.providerPlanId);if(!r)throw new Error("CheckoutSubscription requires either `code` or the deprecated `providerPlanId`.");let n=a(e.subscriptionName)??a(e.providerPlanName)??null,o={code:r,providerPlanId:a(e.providerPlanId)??r,subscriptionName:n,providerPlanName:a(e.providerPlanName)??n,quantity:e.quantity??1,totalAmount:e.totalAmount,overrideAmount:e.overrideAmount??null,currency:a(e.currency)??t};return e.metadata&&(o.metadata=e.metadata),o}var Xe={local:"https://flo.ngrok.pro",staging:"https://api.stage.flopay.com",production:"https://api.flopay.com"},_="staging";function Je(e){_=e.environment}function F(){return Xe[_]}function Qe(){return _}var K=["alipay","bancontact","blik","eps","giropay","ideal","klarna","p24","sepa_debit","wechat_pay"];var et="1.9.22",tt="x-flo-sdk-version",rt="x-flo-sdk-capabilities",nt="async-auto-checkout-v1",ot="paypal_vaulted",at="stored_payment_method_unsupported",it="This saved payment method can\u2019t be used for this payment. Choose another payment method.",C="https://api.stage.flopay.com",W="https://api.flopay.com",st=C,ut=C;function dt(e){return e||(typeof process<"u"&&process.env?.NEXT_PUBLIC_FLOPAY_ENV?process.env.NEXT_PUBLIC_FLOPAY_ENV==="production"?W:C:F())}var ct="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"}},lt={theme:"flat",variables:{...j.variables,borderRadius:"4px"}},pt={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"}}},$={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"}}},X={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"}},ne={cardButton:{borderRadius:"9999px",border:"1px solid #e5e7eb",boxShadow:"0 1px 3px rgba(0,0,0,0.06)"},cardFormContainer:{borderRadius:"16px",border:"1px solid #e5e7eb",boxShadow:"0 2px 8px rgba(0,0,0,0.06)"},cardInputBorder:"#d1d5db",submitButton:{borderRadius:"9999px"},backButtonIcon:{backgroundColor:"#f3f4f6"}},oe={cardButton:{backgroundColor:"#1f2937",color:"#f9fafb",border:"1px solid #374151",boxShadow:"none"},cardFormContainer:{backgroundColor:"#111827",border:"1px solid #374151"},cardInputBorder:"#4b5563",cardInputColor:"#f9fafb",cardInputPlaceholderColor:"#6b7280",cardInputBackground:"#1f2937",nameInput:{backgroundColor:"#1f2937",color:"#f9fafb"},backButton:{color:"#9ca3af"},backButtonIcon:{backgroundColor:"#374151"},submitButton:{backgroundColor:"#6366f1"},title:{color:"#f9fafb"},countrySelect:{backgroundColor:"#1f2937",color:"#f9fafb"},zipInput:{backgroundColor:"#1f2937",color:"#f9fafb"}},I={cardFormContainer:{backgroundColor:"#FAFAFA",borderRadius:"20px",border:"1px solid #E5E7EB",boxShadow:"0 8px 24px rgba(15,23,42,0.04)",padding:"24px"},cardButton:{backgroundColor:"#FFFFFF",borderRadius:"14px",border:"1.5px solid #E5E7EB",boxShadow:"0 1px 2px rgba(15,23,42,0.04)",padding:"14px 18px"},cardInputBorder:"#E5E7EB",nameInput:{backgroundColor:"#FFFFFF",border:"1.5px solid #E5E7EB",borderRadius:"14px",padding:"14px 16px"},submitButton:{backgroundColor:"#1785E0",borderRadius:"14px",padding:"16px 24px",boxShadow:"0 4px 14px rgba(23,133,224,0.25)",fontWeight:"600"},title:{color:"#0F172A",fontWeight:"600"},titleFontSize:"20px",backButton:{color:"#64748B"},backButtonIcon:{backgroundColor:"#F1F5F9"}},P={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"}},M={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)"}},N={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 mt(e){switch(e){case"minimal":return re;case"rounded":return ne;case"dark":return oe;case"modern-light":return I;case"modern-dark":return P;case"bold-light":return R;case"bold-dark":return k;case"glass-light":return M;case"glass-dark":return N;default:return te}}var ae={"modern-light":{appearance:Z,buttonsLayout:I},"modern-dark":{appearance:$,buttonsLayout:P},"bold-light":{appearance:X,buttonsLayout:R},"bold-dark":{appearance:J,buttonsLayout:k},"glass-light":{appearance:Q,buttonsLayout:M},"glass-dark":{appearance:ee,buttonsLayout:N}};function yt(e){if(!(!e||e==="classic"))return ae[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 Et(e,t,r){return`<svg viewBox="0 0 22 22"><circle cx="11" cy="11" r="11" fill="${t}"/><text x="11" y="15.5" text-anchor="middle" font-size="13" font-weight="700" font-family="sans-serif" fill="${r}">${e}</text></svg>`}function z(e,t){return`<svg viewBox="0 0 22 22"><circle cx="11" cy="11" r="11" fill="${e}"/><g fill="${t}"><path d="M11 4 L17.5 8 L4.5 8 Z"/><rect x="5" y="8.4" width="12" height="1.2" rx="0.3"/><rect x="5.9" y="10" width="1.5" height="5"/><rect x="8.55" y="10" width="1.5" height="5"/><rect x="11.95" y="10" width="1.5" height="5"/><rect x="14.6" y="10" width="1.5" height="5"/><rect x="4.6" y="15.4" width="12.8" height="1.5" rx="0.3"/></g></svg>`}function H(e,t,r,n=t){return{backgroundColor:t,borderColor:t,textColor:r,logoSvg:Et(e,r,n)}}function c(e,t,r,n=t,o=r,i=n){return{light:H(e,t,r),dark:H(e,n,o,i)}}var ie=["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"],ft=[...ie,"JP","MX","US"],y={apple_pay:{displayName:"Apple Pay",currencies:["*"],express:!0,needsExplicitConfirm:!1},google_pay:{displayName:"Google Pay",currencies:["*"],express:!0,needsExplicitConfirm:!1},paypal:{displayName:"PayPal",currencies:["eur","gbp","usd","cad","aud","nzd","chf","jpy","pln","sek","nok","dkk","czk","huf"],express:!0,needsExplicitConfirm:!1},link:{displayName:"Link",currencies:["usd","eur"],express:!0,needsExplicitConfirm:!1},amazon_pay:{displayName:"Amazon Pay",currencies:["usd","eur","gbp"],express:!0,needsExplicitConfirm:!1},klarna:{displayName:"Klarna",currencies:["usd","eur","gbp","aud","nzd","cad","chf","sek","nok","dkk","pln","czk","ron"],amounts:{usd:{min:100},eur:{min:100},gbp:{min:100}},theme:c("K","#FFB3C7","#0A0B09")},affirm:{displayName:"Affirm",currencies:["usd"],countries:["US","CA"],amounts:{usd:{min:3500,max:3e6}},needsExplicitConfirm:!1,theme:c("a","#060F33","#FFFFFF","#0FA0EA","#060F33","#FFFFFF")},cashapp:{displayName:"Cash App Pay",currencies:["usd"],countries:["US"],amounts:{usd:{min:50,max:99999999}},needsExplicitConfirm:!1,theme:c("$","#00D54B","#0A1F0E")},samsung_pay:{displayName:"Samsung Pay",currencies:["krw"],countries:["KR"],needsExplicitConfirm:!1},afterpay_clearpay:{displayName:"Afterpay",currencies:["usd","aud","cad","gbp","nzd"],countries:["US","CA","GB","AU","NZ"],amounts:{usd:{min:100,max:2e5},cad:{min:100,max:2e5},gbp:{min:100,max:12e4},aud:{min:100,max:2e5},nzd:{min:100,max:2e5}},theme:c("A","#B2FCE4","#0A0B09")},alipay:{displayName:"Alipay",currencies:["usd","cny"],theme:c("A","#1677FF","#FFFFFF")},au_becs_debit:{displayName:"BECS Direct Debit",currencies:["aud"],countries:["AU"]},bacs_debit:{displayName:"Bacs Debit",currencies:["gbp"],countries:["GB"]},bancontact:{displayName:"Bancontact",currencies:["eur"],countries:["BE"],theme:c("B","#FFDD55","#1E3791","#1E3791","#FFDD55")},bizum:{displayName:"Bizum",currencies:["eur"],countries:["ES"],theme:c("B","#00BFB3","#FFFFFF")},blik:{displayName:"BLIK",currencies:["pln"],countries:["PL"],theme:c("B","#000000","#FFFFFF","#FFFFFF","#000000")},boleto:{displayName:"Boleto",currencies:["brl"],countries:["BR"]},customer_balance:{displayName:"Bank Transfer",currencies:["eur","usd"],countries:ft,theme:{light:{backgroundColor:"#1F2937",textColor:"#FFFFFF",borderColor:"#1F2937",logoSvg:z("#1F2937","#FFFFFF")},dark:{backgroundColor:"#374151",textColor:"#FFFFFF",borderColor:"#374151",logoSvg:z("#374151","#FFFFFF")}}},eps:{displayName:"EPS",currencies:["eur"],countries:["AT"],theme:c("E","#C8102E","#FFFFFF")},giropay:{displayName:"Giropay",currencies:["eur"],countries:["DE"],theme:c("G","#0F4197","#FFFFFF")},ideal:{displayName:"iDEAL",currencies:["eur"],countries:["NL"],theme:c("i","#CC0066","#FFFFFF")},konbini:{displayName:"Konbini",currencies:["jpy"],countries:["JP"]},kr_card:{displayName:"Korean Card",currencies:["krw"],countries:["KR"],theme:c("K","#0B3D91","#FFFFFF")},multibanco:{displayName:"Multibanco",currencies:["eur"],countries:["PT"]},oxxo:{displayName:"OXXO",currencies:["mxn"],countries:["MX"]},p24:{displayName:"Przelewy24",currencies:["eur","pln"],countries:["PL"],theme:c("P","#D90F1B","#FFFFFF")},paynow:{displayName:"PayNow",currencies:["sgd"],countries:["SG"]},pix:{displayName:"Pix",currencies:["brl"],countries:["BR"]},promptpay:{displayName:"PromptPay",currencies:["thb"],countries:["TH"]},sepa_debit:{displayName:"SEPA Debit",currencies:["eur"],countries:ie,theme:c("\u20AC","#10298E","#FFFFFF","#3056D3")},sofort:{displayName:"Sofort",currencies:["eur"],countries:["AT","BE","DE","ES","IT","NL"],theme:c("S","#EF809F","#FFFFFF")},upi:{displayName:"UPI",currencies:["inr"],countries:["IN"],theme:c("U","#FF7909","#FFFFFF")},us_bank_account:{displayName:"US Bank Account",currencies:["usd"],countries:["US"]},wechat_pay:{displayName:"WeChat Pay",currencies:["usd","cny"],theme:c("W","#07C160","#FFFFFF")},zip:{displayName:"Zip",currencies:["aud"],countries:["AU","NZ"]}};function Ct(e){return K.includes(e)}var se=Object.entries(y).filter(([,e])=>e.express).map(([e])=>e),Tt=new Set(se),ue=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 bt(e){return e?y[e]?.displayName??e.split("_").filter(Boolean).map(t=>t[0].toUpperCase()+t.slice(1)).join(" "):"this method"}function ht(e){return y[e]?.needsExplicitConfirm!==!1}function St(e,t){let r=y[e]?.theme;return r?(typeof t=="string"&&t.endsWith("-dark")?r.dark:r.light)??r.light??null:null}function xt(e,t){if(!e||e.length===0)return[];if(!t)return[...e];let r=t.trim().toLowerCase();return r?e.filter(n=>{let o=ue[n];return o?o.includes("*")||o.includes(r):!0}):[...e]}function At(e,t){if(!e||e.length===0)return[];if(!t)return[...e];let r=t.trim().toUpperCase();return r?e.filter(n=>{let o=de[n];return o?o.includes("*")||o.includes(r):!0}):[...e]}var ce=Object.fromEntries(Object.entries(y).filter(([,e])=>e.amounts).map(([e,t])=>[e,t.amounts]));function _t(e,t,r){if(!e||e.length===0)return[];if(!t||typeof r!="number"||!Number.isFinite(r))return[...e];let n=t.trim().toLowerCase();return n?e.filter(o=>{let i=ce[o];if(!i)return!0;let u=i[n];return u?!(typeof u.min=="number"&&r<u.min||typeof u.max=="number"&&r>u.max):!0}):[...e]}function Ft(e,t){if(!e||e.length===0)return{expressMethods:[],paymentElementMethods:[]};let r=[],n=[],o=new Set,i=new Set;for(let u of e){if(typeof u!="string")continue;let p=u.trim();if(!(!p||p==="card")&&!(t?.excludePaypal&&p==="paypal"))if(Tt.has(p)){if(o.has(p))continue;o.add(p),r.push(p)}else{if(i.has(p))continue;i.add(p),n.push(p)}}return{expressMethods:r,paymentElementMethods:n}}var It=["visa","mastercard","mastercard_debit","amex","discover"],O={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}},L={currency:"USD",symbol:"$",country:"United States",countryCode:"US",tax:0};function Pt(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 Rt=new Intl.DisplayNames(["en"],{type:"region"});function kt(e){return[...e.toUpperCase()].map(t=>String.fromCodePoint(127397+t.charCodeAt(0))).join("")}var le=["US","GB","CA","AU","NZ","IE","DE","FR"],Mt=["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 q(e){return{code:e,name:Rt.of(e)??e,flag:kt(e)}}var Nt=new Set(le),Ot=Mt.filter(e=>!Nt.has(e)),pe=[...le.map(q),...Ot.map(q)];function Lt(e){return pe.find(t=>t.code===e)}var Bt={country:!0,postal_code:!0};function me(e){return e===!0?Bt:e||null}function vt(e,t){if(!e)return!1;if(e===!0)return!0;let r=t.trim().toUpperCase();return e.some(n=>n.trim().toUpperCase()===r)}function Dt(e){let t=me(e);return t?Object.values(t).some(r=>r===!0||Array.isArray(r)&&r.length>0):!1}var ye=[{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"}],ge=[{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 Ut(e){switch(e.toUpperCase()){case"US":return ye;case"CA":return ge;default:return null}}function wt(e){switch(e.toUpperCase()){case"US":return"State";case"CA":return"Province";case"GB":return"County";case"AU":return"State / Territory";default:return"State / Province / Region"}}function Vt(e,t={}){let r=[],n=e.products??[],o=n.filter(s=>s.type==="subscription"),i=n.filter(s=>s.type!=="subscription"),p=(A(e.currency,void 0,void 0,n)??"USD").toUpperCase();for(let s of o){let m=s.totalAmount??0,f=s.overrideAmount??m,x=s.name||s.code||"Subscription";x==="4-WEEK PLAN"&&f<=1&&(x="7-DAY TRIAL: FULL ACCESS"),r.push({name:x,quantity:s.quantity,price:f,originalPrice:m})}if(!(t.hideBundledItems===!0&&o.length>0&&i.length>0))for(let s of i){let m=s.totalAmount??0,f=s.overrideAmount??m;r.push({name:s.name||s.code||"Item",quantity:s.quantity,price:f,originalPrice:m})}r.length===0&&r.push({name:"Purchase",quantity:1,price:e.amount/100,originalPrice:e.amount/100});let Me=r.reduce((s,m)=>s+m.originalPrice*m.quantity,0),Ne=r.reduce((s,m)=>s+m.price*m.quantity,0),Oe=typeof e.totalAmount=="number"&&Number.isFinite(e.totalAmount),Le=typeof e.subtotalAmount=="number"&&Number.isFinite(e.subtotalAmount),Be=typeof e.discountAmount=="number"&&Number.isFinite(e.discountAmount),V=Oe?e.totalAmount:Ne,E=Le?e.subtotalAmount:Me,G=Math.max(0,E-V),ve=E>0?Math.round(G/E*100):0;return{items:r,currency:p,total:V,originalTotal:E,totalSave:G,discountPercent:ve,...Be?{couponDiscount:e.discountAmount}:{}}}var Gt=/^[a-z\d!#$%&'*+\-/=?^_`{|}~\u00A1-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]+$/i,Yt=/^([\s\x01-\x08\x0b\x0c\x0e-\x1f\x7f\x21\x23-\x5b\x5d-\x7e\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]|(\\[\x01-\x09\x0b\x0c\x0d-\x7f\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))*$/i,Kt=/^([a-z\u00A1-\u00A8\u00AA-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]{2,}|xn[a-z0-9-]{2,})$/i,zt=/^[a-z\u00a1-\uffff0-9-]+$/i;function Ee(e){return encodeURI(e).split(/%..|./).length-1}function Ht(e){let t=e.split("."),r=t[t.length-1]??"";return t.length>=2&&Kt.test(r)&&!/\s/.test(r)&&t.every(n=>n.length<=63&&zt.test(n)&&!/[\uff01-\uff5e]/.test(n)&&!/^-|-$/.test(n)&&!/_/.test(n))}function qt(e){if(typeof e!="string"||e.length===0||e.length>254)return!1;let t=e.split("@"),r=t.pop()??"",n=t.join("@");return Ee(n)>64||Ee(r)>254||!Ht(r)?!1:n.startsWith('"')&&n.endsWith('"')?Yt.test(n.slice(1,-1)):n.split(".").every(o=>Gt.test(o))}var Wt="Idempotency-Key",B=255,jt="IdempotencyKeyInProgress";function Zt(){let e=globalThis.crypto;if(e&&(typeof e.randomUUID=="function"||typeof e.getRandomValues=="function"))return e}function fe(){let e=Zt();if(!e)return;if(typeof e.randomUUID=="function")return e.randomUUID();if(typeof e.getRandomValues!="function")return;let t=new Uint8Array(16);return e.getRandomValues(t),Array.from(t,r=>r.toString(16).padStart(2,"0")).join("")}function $t(e){if(e===void 0)return fe();if(typeof e!="string"||e.trim()==="")throw new d("idempotencyKey must be a non-empty string identifying exactly one checkout creation.","validation_error",{code:"InvalidIdempotencyKey",param:"idempotencyKey"});if(e.length>B)throw new d(`idempotencyKey must be at most ${B} characters.`,"validation_error",{code:"InvalidIdempotencyKey",param:"idempotencyKey"});return e}var Xt=1,Jt=[{name:"checkout_mount"},{name:"sdk_loaded"},{name:"form_rendered"},{name:"card_expanded"},{name:"tokenize"},{name:"process_attempt"},{name:"3ds_challenge"},{name:"checkout_error",phase:"session_create"},{name:"checkout_error",phase:"sdk_load"},{name:"checkout_error",phase:"process"},{name:"checkout_error",phase:"wallets"}];var Qt=[[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"]],er={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 tr(e){let t=e.replace(/\D/g,"");if(t.length<5)return null;let r=Number.parseInt(t.slice(0,3),10);if(!Number.isFinite(r))return null;for(let[n,o,i]of Qt)if(r>=n&&r<=o)return i;return null}function rr(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 er[r]??null}function nr(e,t){if(!e||!t)return null;let r=e.trim().toUpperCase(),n=t.trim();if(!n)return null;switch(r){case"US":return tr(n);case"CA":return rr(n);default:return null}}import*as or from"validator/lib/isPostalCode.js";var T=or,Ce=typeof T.default=="function"?T.default:T.default?.default;if(typeof Ce!="function")throw new Error("validator/lib/isPostalCode.js interop failed: unexpected module shape. This likely means the bundler's CJS/ESM interop changed.");var Te=new Set(T.locales.map(e=>e.toUpperCase())),ar={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 v(e){let t=(e??"").trim().toUpperCase();return t?t.length===2?t:ar[t]??null:null}var ir={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 sr(e){let t=v(e);return t!==null&&Te.has(t)}function ur(e,t){let r=(t??"").trim();if(!r)return!0;let n=v(e);if(n===null||!Te.has(n))return!0;try{return Ce(r,n)}catch{return!0}}function dr(e){let t=v(e);return t?ir[t]:void 0}var cr=/(?:^|\/)dahlia\/stripe\.js(?:$|[?#])/i,lr=/^dahlia\/stripe$/i,pr=/^(?:chrome|moz|safari-web)-extension:\/\//i,mr=/^@flopay(?:\/|$)/i;function be(e){return cr.test(e)||pr.test(e)}function yr(e){let t=[e.filename,e.abs_path].filter(r=>r!==void 0&&r!=="<anonymous>");return e.module!==void 0&&mr.test(e.module)||t.some(r=>!be(r))?"first-party":e.module!==void 0&&lr.test(e.module)||t.some(be)?"third-party-hosted":t.length===0?"injected":"first-party"}function gr(e){let t=e.exception?.values;if(!t||t.length===0)return e;let r=[];for(let o of t){let i=o.stacktrace?.frames;if(!i||i.length===0)return e;r.push(...i)}let n=r.map(yr);return!n.includes("first-party")&&n.includes("third-party-hosted")?null:e}var Er=1,he=["@flopay/shared","@flopay/js","@flopay/react"],fr=32768,Cr=20,Tr=["stripe","paypal"],br=["card","wallet","paypal","apm","saved","unknown"],hr=["apple_pay","google_pay"],Sr=["watchdog_expired","resolved","rejected","returned_error","resolved_late","rejected_late","returned_error_late"],xr=["none","facebook","instagram","tiktok","generic_webview","other_in_app"],Ar=["unknown","available","blocked"],_r=["popup","app_switch","redirect"],Fr=["approved","cancelled","provider_declined","popup_blocked","provider_error","overlay_timeout"],Ir=["callback","sdk_initialize","checkout_mount","session_create","session_shell","session_claim","session_read","session_first_byte","session_complete","checkout_data_ready","checkout_render","provider_load","provider_ready","provider_confirmation","overlay_open","overlay_return","redirect","redirect_resume","vault_request","vault_mount","vault_ready","vault_submit","tokenization","three_ds_handoff","three_ds_return","processing","recovery","completion","unmount","total_journey"],Se=["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"],xe=["server_error","transport_error","invalid_response","provider_runtime"],Ae=["sdk.initialize.started","sdk.initialize.ready","sdk.cache.hit","sdk.cache.miss","checkout.mount","session.create.started","session.shell.ready","session.claim.started","session.claim.completed","session.read.started","session.request.first_byte","session.request.completed","checkout.data.ready","checkout.rendered","checkout.recovery.started","checkout.recovery.completed","checkout.unmount","provider.load.started","provider.eligibility.checked","provider.availability.checked","provider.ready","provider.handoff.requested","provider.popup.opened","provider.overlay.opened","provider.overlay.returned","provider.redirect.started","provider.redirect.resumed","vault.capture.requested","vault.widget.mounted","vault.widget.ready","vault.submission.started","vault.action.required","vault.three_ds.handoff","vault.three_ds.returned","vault.terminal","payment.method.selected","payment.intent.started","payment.intent.completed","payment.provider_confirmation.started","payment.provider_confirmation.returned","payment.tokenization.started","payment.tokenization.completed","payment.processing.started","payment.processing.completed","payment.three_ds.handoff","payment.three_ds.returned","operation.retry","operation.deduplicated","operation.fallback","operation.cache.hit","operation.cache.miss","operation.recovery.started","operation.recovery.completed","operation.state_transition"],Pr=["session_create","session_claim","session_read","intent_create","process_payment","vault_capture","account_snapshot","provider_sdk","other"],Rr=["2xx","3xx","4xx","5xx","network_error","timeout","unknown"],kr=["full","auto","confirm","setup","unknown"],Mr=["embedded","buttons","automatic","unknown"],Nr=["machine","buyer","total"],Or=["action_required","card_setup_declined","card_setup_succeeded","customer_abandoned","payment_cancelled","payment_declined","payment_authorized","payment_succeeded","validation_rejected"],D=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i,Lr=/^\d{1,4}\.\d{1,4}\.\d{1,4}(?:-[0-9A-Za-z.-]{1,32})?$/,Br=new Set(Se),vr=new Set(xe),b=new Set(Ir),Dr=new Set(Tr),Ur=new Set(br),wr=new Set(hr),Vr=new Set(Sr),Gr=new Set(xr),Yr=new Set(Ar),Kr=new Set(_r),zr=new Set(Fr),Hr=new Set(Ae),qr=new Set(kr),Wr=new Set(Mr),jr=new Set(Pr),Zr=new Set(Rr),$r=new Set(Nr),Xr=new Set(Or),Jr=new Set(he),_e=12e4;function l(e,t,r){return typeof e=="string"&&t.has(e)?e:r}function Qr(){try{let r=globalThis.crypto.randomUUID();if(D.test(r))return r}catch{}let e=new Uint8Array(16);try{globalThis.crypto.getRandomValues(e)}catch{for(let r=0;r<e.length;r+=1)e[r]=Math.floor(Math.random()*256)}e[6]=(e[6]??0)&15|64,e[8]=(e[8]??0)&63|128;let t=[...e].map(r=>r.toString(16).padStart(2,"0")).join("");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}function g(e){return typeof e=="string"&&D.test(e)?e:Qr()}function en(e){return typeof e=="string"&&D.test(e)?e:void 0}function tn(e){return typeof e=="number"&&Number.isInteger(e)&&e>=0&&e<=100?e:void 0}function h(e){return Number.isSafeInteger(e)&&e>=0?Math.min(e,1e6):0}function Fe(e){return!Number.isFinite(e)||e<0?0:Math.min(Math.round(e),_e)}function rn(e){return Number.isFinite(e)&&e>_e}function S(e,t){let r=tn(t.attempt);return t.provider&&Dr.has(t.provider)&&(e.provider=t.provider),r!==void 0&&(e.attempt=r),t.statusClass&&(e.statusClass=l(t.statusClass,Zr,"unknown")),t.requestCategory&&(e.requestCategory=l(t.requestCategory,jr,"other")),t.paymentMethodCategory&&(e.paymentMethodCategory=l(t.paymentMethodCategory,Ur,"unknown")),t.walletType&&wr.has(t.walletType)&&(e.walletType=t.walletType),t.operationOutcome&&Vr.has(t.operationOutcome)&&(e.operationOutcome=t.operationOutcome),t.checkoutMode&&(e.checkoutMode=l(t.checkoutMode,qr,"unknown")),t.layout&&(e.layout=l(t.layout,Wr,"unknown")),typeof t.inAppBrowser=="boolean"&&(e.inAppBrowser=t.inAppBrowser),t.appFamily&&Gr.has(t.appFamily)&&(e.appFamily=t.appFamily),t.popupCapability&&Yr.has(t.popupCapability)&&(e.popupCapability=t.popupCapability),t.presentationMode&&Kr.has(t.presentationMode)&&(e.presentationMode=t.presentationMode),t.terminalReason&&zr.has(t.terminalReason)&&(e.terminalReason=t.terminalReason),e}function Ie(e){let t=S({eventId:g(e.eventId),class:"technical_error",code:l(e.errorCode,Br,"INTERNAL_SDK_ERROR"),stage:l(e.stage,b,"sdk_initialize"),sequence:h(e.sequence)},e);if(e.failureCategory&&vr.has(e.failureCategory)&&(t.failureCategory=e.failureCategory),e.stage!=="provider_confirmation"){let r=en(e.checkoutSessionId);r&&(t.checkoutSessionId=r)}return e.durationMs!==void 0&&(t.durationMs=Fe(e.durationMs)),t}function Pe(e){return S({eventId:g(e.eventId),class:"lifecycle",name:l(e.name,Hr,"operation.retry"),stage:l(e.stage,b,"sdk_initialize"),sequence:h(e.sequence)},e)}function Re(e){let t={...e,stage:e.stage??"completion"};return S({eventId:g(e.eventId),class:"expected_outcome",outcome:l(e.outcome,Xr,"customer_abandoned"),stage:l(e.stage,b,"completion"),sequence:h(e.sequence)},t)}function ke(e){let t=S({eventId:g(e.eventId),class:"performance",stage:l(e.stage,b,"sdk_initialize"),sequence:h(e.sequence),durationMs:Fe(e.durationMs),durationMode:l(e.durationMode,$r,"machine")},e);return(e.durationTruncated===!0||rn(e.durationMs))&&(t.durationTruncated=!0),t}function nn(e,t){let r=e.slice(0,20).flatMap(o=>o.class==="technical_error"?[Ie({...o,errorCode:o.code})]:o.class==="lifecycle"?[Pe(o)]:o.class==="expected_outcome"?[Re(o)]:o.class==="performance"?[ke(o)]:[]),n={schemaVersion:1,batchId:g(t.batchId),correlationId:g(t.correlationId),sdk:{package:l(t.sdkPackage,Jr,"@flopay/shared"),version:Lr.test(t.sdkVersion)?t.sdkVersion:"0.0.0"},events:r};return JSON.stringify(n)}var on=new Set(["InvalidCheckoutSessionResponse","InvalidPaymentProcessResponse","InvalidSessionIntentResponse"]);function an(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 sn(e,t,r="network_error"){if(e instanceof SyntaxError)return{errorCode:t,statusClass:"unknown",failureCategory:"invalid_response"};if(e instanceof d&&e.code!==void 0&&on.has(e.code))return{errorCode:t,statusClass:U(e.statusCode,"unknown"),failureCategory:"invalid_response"};if(e instanceof Error&&(e.name==="AbortError"||e instanceof d&&e.code==="checkout_processing_timeout"))return{errorCode:"REQUEST_TIMEOUT",statusClass:"timeout",failureCategory:"transport_error"};if(e instanceof TypeError||e instanceof d&&e.type==="network_error")return{errorCode:"NETWORK_REQUEST_FAILED",statusClass:"network_error",failureCategory:"transport_error"};let n=U(e instanceof d?e.statusCode:void 0,r);return{errorCode:t,statusClass:n,...n==="5xx"?{failureCategory:"server_error"}:{}}}function U(e,t="network_error"){if(e===void 0)return t;let r=`${Math.floor(e/100)}xx`;return r==="2xx"||r==="3xx"||r==="4xx"||r==="5xx"?r:"unknown"}function un(e){if(e!=null)switch(e){case"sandbox":case"stage":return"sandbox";case"live":case"production":return"live";default:console.warn(`[FloPay] Unrecognized gateway environment "${e}". Expected one of: sandbox, live, stage, production. Falling back to undefined.`);return}}var w=/^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;function dn(e){return typeof e=="string"&&w.test(e)}function cn(){try{let r=globalThis.crypto.randomUUID();if(w.test(r))return r}catch{}let e=new Uint8Array(16);try{globalThis.crypto.getRandomValues(e)}catch{for(let r=0;r<e.length;r+=1)e[r]=Math.floor(Math.random()*256)}e[6]=(e[6]??0)&15|64,e[8]=(e[8]??0)&63|128;let t=[...e].map(r=>r.toString(16).padStart(2,"0")).join("");return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}function ln(e){return O[e.toUpperCase()]??L}function pn(e){return/^pk_(test|live)_[A-Za-z0-9]+$/.test(e)}function mn(e){return/^sk_(test|live)_[A-Za-z0-9]+$/.test(e)}function yn(e){return typeof e=="string"&&e.startsWith("seti_")}function gn(...e){return/^\s*card\s+holder\s+name\s*$/i.test(e.join(" "))}export{nt as ASYNC_AUTO_CHECKOUT_CAPABILITY,ut as BILLING_API_URL,W as BILLING_API_URL_PRODUCTION,C as BILLING_API_URL_STAGING,J as BOLD_DARK_APPEARANCE,X as BOLD_LIGHT_APPEARANCE,k as BUTTONS_LAYOUT_BOLD_DARK,R as BUTTONS_LAYOUT_BOLD_LIGHT,oe as BUTTONS_LAYOUT_DARK,te as BUTTONS_LAYOUT_DEFAULT,N as BUTTONS_LAYOUT_GLASS_DARK,M as BUTTONS_LAYOUT_GLASS_LIGHT,re as BUTTONS_LAYOUT_MINIMAL,P as BUTTONS_LAYOUT_MODERN_DARK,I as BUTTONS_LAYOUT_MODERN_LIGHT,ne as BUTTONS_LAYOUT_ROUNDED,ge as CA_PROVINCES,pe as COUNTRY_OPTIONS,O as CURRENCY_MAP,st as DEFAULT_API_BASE_URL,ct as DEFAULT_API_VERSION,j as DEFAULT_APPEARANCE,L as DEFAULT_CURRENCY,lt as FLAT_APPEARANCE,Jt as FLO_INSTRUMENT_CATALOG,Xt as FLO_INSTRUMENT_SCHEMA_VERSION,rt as FLO_SDK_CAPABILITIES_HEADER,tt as FLO_SDK_VERSION_HEADER,d as FloPayError,ee as GLASS_DARK_APPEARANCE,Q as GLASS_LIGHT_APPEARANCE,jt as IDEMPOTENCY_IN_PROGRESS_CODE,Wt as IDEMPOTENCY_KEY_HEADER,B as MAX_IDEMPOTENCY_KEY_LENGTH,$ as MODERN_DARK_APPEARANCE,Z as MODERN_LIGHT_APPEARANCE,pt as NIGHT_APPEARANCE,ot as PAYPAL_VAULTED_PAYMENT_METHOD_TYPE,et as SDK_VERSION,at as STORED_PAYMENT_METHOD_UNSUPPORTED_CODE,it as STORED_PAYMENT_METHOD_UNSUPPORTED_MESSAGE,se as STRIPE_EXPRESS_METHODS,ce as STRIPE_METHOD_AMOUNT_LIMITS,de as STRIPE_METHOD_COUNTRIES,ue as STRIPE_METHOD_CURRENCIES,y as STRIPE_METHOD_MATRIX,It as SUPPORTED_CARD_BRANDS,Se as TELEMETRY_ERROR_CODES,xe as TELEMETRY_FAILURE_CATEGORIES,Ae as TELEMETRY_LOG_NAMES,fr as TELEMETRY_MAX_BATCH_BYTES,Cr as TELEMETRY_MAX_BATCH_EVENTS,Er as TELEMETRY_SCHEMA_VERSION,he as TELEMETRY_SDK_PACKAGES,ae as THEMES,ye as US_STATES,w as UUID_V4,Ye as apiError,qe as assertCaptureMethodEligible,Ke as authenticationError,Vt as buildCheckoutDisplayData,Ze as buildItemPayload,je as buildProductPayload,$e as buildSubscriptionPayload,Ie as buildTelemetryErrorEvent,Pe as buildTelemetryLogEvent,ke as buildTelemetryPerformanceEvent,Re as buildTelemetryTerminalEvent,an as classifyPaymentRejection,sn as classifyTelemetryFailure,Je as configureFlopay,gr as dropThirdPartyOnlyError,_t as filterStripeMethodsByAmount,At as filterStripeMethodsByCountry,xt as filterStripeMethodsByCurrency,Y as foldIntoProducts,fe as generateIdempotencyKey,F as getConfiguredBillingApiUrl,Lt as getCountryByCode,ln as getCurrencyByCountry,Qe as getFloPayEnvironment,dr as getPostalCodeExample,Pt as getPostalCodeLabel,nr as getStateFromPostalCode,wt as getStateLabel,Ut as getStateOptions,bt as getStripeMethodDisplayName,Ct as hasVendoredStripeMethodLogo,Dt as isAVSEnabled,vt as isAVSFieldVisible,Ue as isAuthorizationOnlySession,gn as isCardHolderNamePlaceholder,De as isCardSetupCheckoutSession,We as isDetachedSessionEligible,we as isMoneySettledOutcome,sr as isPostalCodeSupported,yn as isSetupIntentClientSecret,dn as isUuidV4,qt as isValidEmail,ur as isValidPostalCode,pn as isValidPublishableKey,mn as isValidSecretKey,ht as needsStripeMethodExplicitConfirm,He as networkError,Ve as normalizeCheckoutFailureOutcome,un as normalizeGatewayEnvironment,Ft as partitionStripeMethods,cn as randomUuidV4,ze as rateLimitError,me as resolveAVSConfig,dt as resolveBillingApiUrl,mt as resolveButtonsLayoutTheme,$t as resolveIdempotencyKey,A as resolveSessionCurrency,St as resolveStripeMethodBrandVariant,yt as resolveTheme,nn as serializeTelemetryBatch,gt as stripeExpressMethodToOptionKey,U as telemetryStatusClass,Ge as validationError};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flopay/shared",
3
- "version": "1.9.20",
3
+ "version": "1.9.22",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "publishConfig": {