@nice2dev/ui-money 1.3.7 → 1.3.9

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/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @nice2dev/ui-money
2
2
 
3
+ ## 1.3.9
4
+
5
+ No changes in this release.
6
+
7
+ ## 1.3.8
8
+
9
+ ### Patch Changes
10
+
11
+ - d70e139: Every control whose props extend `NiceStandardProps` now puts `testId` / `data-testid` on its root element. `data-testid` wins, as in `resolveTestId`. Before, 105 of 117 dropped both, and E2E tests had to wrap them, for example `NiceAlert` in a `<div data-testid>`. Overlays carry the id on the dialog or panel, not on the backdrop. Controls that spread their other props onto the DOM no longer leak an unknown `testId` attribute.
12
+
13
+ The new `Test ids on standard controls` gate (`scripts/audit-test-ids.mjs --max=0`) keeps it that way.
14
+
3
15
  ## 1.3.7
4
16
 
5
17
  No changes in this release.
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var Mt=Object.defineProperty;var Pt=(t,e,r)=>e in t?Mt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var Y=(t,e,r)=>Pt(t,typeof e!="symbol"?e+"":e,r);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react"),n=require("react/jsx-runtime"),L=require("@nice2dev/ui-core"),me=[{code:"USD",numeric:840,symbol:"$",name:"US Dollar",decimals:2,symbolFirst:!0},{code:"EUR",numeric:978,symbol:"€",name:"Euro",decimals:2,symbolFirst:!0},{code:"GBP",numeric:826,symbol:"£",name:"Pound Sterling",decimals:2,symbolFirst:!0},{code:"JPY",numeric:392,symbol:"¥",name:"Japanese Yen",decimals:0,symbolFirst:!0},{code:"CHF",numeric:756,symbol:"Fr",name:"Swiss Franc",decimals:2},{code:"CAD",numeric:124,symbol:"CA$",name:"Canadian Dollar",decimals:2,symbolFirst:!0},{code:"AUD",numeric:36,symbol:"A$",name:"Australian Dollar",decimals:2,symbolFirst:!0},{code:"NZD",numeric:554,symbol:"NZ$",name:"New Zealand Dollar",decimals:2,symbolFirst:!0},{code:"CNY",numeric:156,symbol:"¥",name:"Chinese Yuan Renminbi",decimals:2,symbolFirst:!0},{code:"HKD",numeric:344,symbol:"HK$",name:"Hong Kong Dollar",decimals:2,symbolFirst:!0},{code:"SGD",numeric:702,symbol:"S$",name:"Singapore Dollar",decimals:2,symbolFirst:!0},{code:"PLN",numeric:985,symbol:"zł",name:"Polish Złoty",decimals:2},{code:"CZK",numeric:203,symbol:"Kč",name:"Czech Koruna",decimals:2},{code:"HUF",numeric:348,symbol:"Ft",name:"Hungarian Forint",decimals:2},{code:"RON",numeric:946,symbol:"lei",name:"Romanian Leu",decimals:2},{code:"BGN",numeric:975,symbol:"лв",name:"Bulgarian Lev",decimals:2},{code:"HRK",numeric:191,symbol:"kn",name:"Croatian Kuna",decimals:2},{code:"DKK",numeric:208,symbol:"kr",name:"Danish Krone",decimals:2},{code:"SEK",numeric:752,symbol:"kr",name:"Swedish Krona",decimals:2},{code:"NOK",numeric:578,symbol:"kr",name:"Norwegian Krone",decimals:2},{code:"ISK",numeric:352,symbol:"kr",name:"Icelandic Króna",decimals:0},{code:"RUB",numeric:643,symbol:"₽",name:"Russian Ruble",decimals:2},{code:"UAH",numeric:980,symbol:"₴",name:"Ukrainian Hryvnia",decimals:2},{code:"TRY",numeric:949,symbol:"₺",name:"Turkish Lira",decimals:2,symbolFirst:!0},{code:"MXN",numeric:484,symbol:"Mex$",name:"Mexican Peso",decimals:2,symbolFirst:!0},{code:"BRL",numeric:986,symbol:"R$",name:"Brazilian Real",decimals:2,symbolFirst:!0},{code:"ARS",numeric:32,symbol:"AR$",name:"Argentine Peso",decimals:2,symbolFirst:!0},{code:"CLP",numeric:152,symbol:"CL$",name:"Chilean Peso",decimals:0,symbolFirst:!0},{code:"COP",numeric:170,symbol:"CO$",name:"Colombian Peso",decimals:2,symbolFirst:!0},{code:"PEN",numeric:604,symbol:"S/",name:"Peruvian Sol",decimals:2,symbolFirst:!0},{code:"UYU",numeric:858,symbol:"$U",name:"Uruguayan Peso",decimals:2,symbolFirst:!0},{code:"INR",numeric:356,symbol:"₹",name:"Indian Rupee",decimals:2,symbolFirst:!0},{code:"IDR",numeric:360,symbol:"Rp",name:"Indonesian Rupiah",decimals:2,symbolFirst:!0},{code:"KRW",numeric:410,symbol:"₩",name:"South Korean Won",decimals:0,symbolFirst:!0},{code:"MYR",numeric:458,symbol:"RM",name:"Malaysian Ringgit",decimals:2,symbolFirst:!0},{code:"PHP",numeric:608,symbol:"₱",name:"Philippine Peso",decimals:2,symbolFirst:!0},{code:"THB",numeric:764,symbol:"฿",name:"Thai Baht",decimals:2,symbolFirst:!0},{code:"VND",numeric:704,symbol:"₫",name:"Vietnamese Đồng",decimals:0},{code:"TWD",numeric:901,symbol:"NT$",name:"New Taiwan Dollar",decimals:2,symbolFirst:!0},{code:"PKR",numeric:586,symbol:"₨",name:"Pakistani Rupee",decimals:2},{code:"BDT",numeric:50,symbol:"৳",name:"Bangladeshi Taka",decimals:2},{code:"LKR",numeric:144,symbol:"Rs",name:"Sri Lankan Rupee",decimals:2},{code:"AED",numeric:784,symbol:"د.إ",name:"UAE Dirham",decimals:2},{code:"SAR",numeric:682,symbol:"ر.س",name:"Saudi Riyal",decimals:2},{code:"QAR",numeric:634,symbol:"ر.ق",name:"Qatari Riyal",decimals:2},{code:"KWD",numeric:414,symbol:"د.ك",name:"Kuwaiti Dinar",decimals:3},{code:"BHD",numeric:48,symbol:".د.ب",name:"Bahraini Dinar",decimals:3},{code:"OMR",numeric:512,symbol:"ر.ع",name:"Omani Rial",decimals:3},{code:"JOD",numeric:400,symbol:"د.أ",name:"Jordanian Dinar",decimals:3},{code:"ILS",numeric:376,symbol:"₪",name:"Israeli New Shekel",decimals:2,symbolFirst:!0},{code:"EGP",numeric:818,symbol:"E£",name:"Egyptian Pound",decimals:2,symbolFirst:!0},{code:"ZAR",numeric:710,symbol:"R",name:"South African Rand",decimals:2,symbolFirst:!0},{code:"NGN",numeric:566,symbol:"₦",name:"Nigerian Naira",decimals:2,symbolFirst:!0},{code:"KES",numeric:404,symbol:"KSh",name:"Kenyan Shilling",decimals:2},{code:"GHS",numeric:936,symbol:"₵",name:"Ghanaian Cedi",decimals:2},{code:"MAD",numeric:504,symbol:"د.م.",name:"Moroccan Dirham",decimals:2},{code:"TND",numeric:788,symbol:"د.ت",name:"Tunisian Dinar",decimals:3},{code:"BTC",numeric:0,symbol:"₿",name:"Bitcoin",decimals:8,symbolFirst:!0},{code:"ETH",numeric:0,symbol:"Ξ",name:"Ether",decimals:8,symbolFirst:!0},{code:"USDC",numeric:0,symbol:"USDC",name:"USD Coin",decimals:6},{code:"USDT",numeric:0,symbol:"USDT",name:"Tether",decimals:6}],ze=new Map(me.map(t=>[t.code,t]));function W(t){return ze.get(t.toUpperCase())}function St(t){ze.set(t.code.toUpperCase(),t);const e=me.findIndex(r=>r.code===t.code);e>=0?me[e]=t:me.push(t)}function ee(t,e){const r=W(e),a=(r==null?void 0:r.decimals)??2,c=Math.pow(10,a);return{amount:(t<0?-1:1)*Math.round(Math.abs(t)*c),currency:e.toUpperCase()}}function De(t){const e=W(t.currency),r=(e==null?void 0:e.decimals)??2;return t.amount/Math.pow(10,r)}function Dt(t,e){return t.currency.toUpperCase()===e.currency.toUpperCase()}function Ie(t,e,r){if(!Dt(t,e))throw new Error(`Cannot ${r} different currencies: ${t.currency} vs ${e.currency}`)}function le(t,e){return Ie(t,e,"add"),{amount:t.amount+e.amount,currency:t.currency}}function He(t,e){return Ie(t,e,"subtract"),{amount:t.amount-e.amount,currency:t.currency}}function Ne(t,e){return{amount:(t.amount*e<0?-1:1)*Math.round(Math.abs(t.amount*e)),currency:t.currency}}function It(t,e){return Ie(t,e,"compare"),t.amount-e.amount}function Rt(t){return t.amount===0}function At(t){return t.amount<0}function $t(t){return{amount:-t.amount,currency:t.currency}}function ne(t,e={}){const r=W(t.currency),a=e.decimals??(r==null?void 0:r.decimals)??2,c=t.amount/Math.pow(10,a);try{return new Intl.NumberFormat(e.locale,{style:"currency",currency:t.currency,minimumFractionDigits:a,maximumFractionDigits:a,currencyDisplay:e.currencyDisplay??"symbol"}).format(c)}catch{const i=(r==null?void 0:r.symbol)??t.currency,u=c.toFixed(a);return r!=null&&r.symbolFirst?`${i}${u}`:`${u} ${i}`}}function Ye(t,e){if(!t)return null;let r=t.replace(/[^\d.,-]/g,"").trim();if(!r||r==="-")return null;const a=r.startsWith("-");a&&(r=r.slice(1));const c=r.lastIndexOf("."),i=r.lastIndexOf(","),u=Math.max(c,i);let s,l="";u===-1?s=r:(s=r.slice(0,u).replace(/[.,]/g,""),l=r.slice(u+1).replace(/[.,]/g,""));const d=`${s}.${l||"0"}`,h=parseFloat(d);return Number.isFinite(h)?ee(a?-h:h,e):null}function be(t){const e=(t||"").replace(/\D/g,"");return e?/^4/.test(e)?"visa":/^(5[1-5]|2(2[2-9]|[3-6]\d|7[01]|720))/.test(e)?"mastercard":/^3[47]/.test(e)?"amex":/^(6011|65|64[4-9]|622(12[6-9]|1[3-9]\d|[2-8]\d\d|9[01]\d|92[0-5]))/.test(e)?"discover":/^3(0[0-5]|[68])/.test(e)?"diners":/^35(2[89]|[3-8])/.test(e)?"jcb":/^62/.test(e)?"unionpay":/^(50|5[6-9]|6[0-9])/.test(e)?"maestro":/^(2200|2201|2202|2203|2204)/.test(e)?"mir":/^(4011|4312|4389|4514|4576|5041|5066|5067|509|6277|6362|6363|650|6516|6550)/.test(e)?"elo":/^(606282|3841)/.test(e)?"hipercard":"unknown":"unknown"}function Re(t){const e=(t||"").replace(/\D/g,"");if(e.length<12||e.length>19)return!1;let r=0,a=!1;for(let c=e.length-1;c>=0;c--){let i=e.charCodeAt(c)-48;a&&(i*=2,i>9&&(i-=9)),r+=i,a=!a}return r%10===0}function Ge(t,e){const r=(t||"").replace(/\D/g,""),a=e??be(r);return a==="amex"?[r.slice(0,4),r.slice(4,10),r.slice(10,15)].filter(Boolean).join(" "):a==="diners"?[r.slice(0,4),r.slice(4,10),r.slice(10,14)].filter(Boolean).join(" "):(r.match(/.{1,4}/g)??[]).join(" ").trim()}function Et(t,e){const r=(t||"").replace(/\D/g,"");if(r.length<4)return r;const a=r.slice(-4),c="*".repeat(r.length-4)+a,i=e??be(r);return i==="amex"?[c.slice(0,4),c.slice(4,10),c.slice(10,15)].filter(Boolean).join(" "):i==="diners"?[c.slice(0,4),c.slice(4,10),c.slice(10,14)].filter(Boolean).join(" "):(c.match(/.{1,4}/g)??[]).join(" ").trim()}function Ae(t){const e=(t||"").replace(/\D/g,"");if(e.length<3)return null;const r=e.slice(0,2),a=e.length>=4?e.slice(-2):e.slice(2,4),c=parseInt(r,10);return!Number.isFinite(c)||c<1||c>12?null:`${r}/${a}`}function $e(t,e=new Date){const r=Ae(t);if(!r)return!1;const[a,c]=r.split("/"),i=parseInt(a,10),u=2e3+parseInt(c,10);return new Date(u,i,0,23,59,59,999).getTime()>=e.getTime()}function ue(t){return t==="amex"?4:3}function Pe(t,e={}){var d;const r={},a=be(t.number),c=Re(t.number);c||(r.number="Invalid card number");const i=$e(t.expiry,e.now);i||(r.expiry="Invalid or expired");const s=(t.cvc||"").replace(/\D/g,"").length===ue(a);s||(r.cvc=`CVC must be ${ue(a)} digits`);const l=!e.requireHolder||(((d=t.holderName)==null?void 0:d.trim().length)??0)>=2;return l||(r.holderName="Cardholder name required"),{brand:a,numberValid:c,expiryValid:i,cvcValid:s,holderValid:l,isValid:c&&i&&s&&l,errors:r}}class Ut{constructor(e){Y(this,"id","static");this.rates=e}async getRate(e,r){const a=e.toUpperCase(),c=r.toUpperCase();if(a===c)return{base:a,quote:c,rate:1,asOf:new Date().toISOString()};const i=this.rates.find(d=>d.base===a&&d.quote===c);if(i)return i;const u=this.rates.find(d=>d.base===c&&d.quote===a);if(u)return{base:a,quote:c,rate:1/u.rate,asOf:u.asOf};const s=this.rates.find(d=>d.base===a&&d.quote==="USD")??this.rates.find(d=>d.base==="USD"&&d.quote===a),l=this.rates.find(d=>d.base==="USD"&&d.quote===c)??this.rates.find(d=>d.base===c&&d.quote==="USD");if(s&&l){const d=s.base==="USD"?1/s.rate:s.rate,h=l.base==="USD"?l.rate:1/l.rate;return{base:a,quote:c,rate:d*h,asOf:new Date().toISOString()}}throw new Error(`No FX rate for ${a}/${c}`)}}class ke{constructor(e={}){Y(this,"cache",new Map);Y(this,"fetchImpl");Y(this,"ttl");this.fetchImpl=e.fetchImpl??fetch,this.ttl=e.cacheTtl??6e4}cacheKey(e,r){return`${this.id}:${e.toUpperCase()}/${r.toUpperCase()}`}getCached(e,r){const a=this.cacheKey(e,r),c=this.cache.get(a);return c&&c.expires>Date.now()?c.rate:(c&&this.cache.delete(a),null)}setCached(e){this.cache.set(this.cacheKey(e.base,e.quote),{expires:Date.now()+this.ttl,rate:e})}}class Ze extends ke{constructor(r={}){super(r);Y(this,"id","frankfurter")}async getRate(r,a){const c=r.toUpperCase(),i=a.toUpperCase();if(c===i)return{base:c,quote:i,rate:1,asOf:new Date().toISOString()};const u=this.getCached(c,i);if(u)return u;const s=`https://api.frankfurter.app/latest?from=${c}&to=${i}`,l=await this.fetchImpl(s);if(!l.ok)throw new Error(`Frankfurter HTTP ${l.status}`);const d=await l.json(),h=d.rates[i];if(h==null)throw new Error(`Frankfurter: no rate for ${c}/${i}`);const v={base:c,quote:i,rate:h,asOf:d.date};return this.setCached(v),v}}class Je extends ke{constructor(r,a={}){super(a);Y(this,"id","openexchangerates");this.appId=r}async getRate(r,a){const c=r.toUpperCase(),i=a.toUpperCase();if(c===i)return{base:c,quote:i,rate:1,asOf:new Date().toISOString()};const u=this.getCached(c,i);if(u)return u;const s=`https://openexchangerates.org/api/latest.json?app_id=${this.appId}`,l=await this.fetchImpl(s);if(!l.ok)throw new Error(`OpenExchangeRates HTTP ${l.status}`);const d=await l.json(),h=d.rates[c],v=d.rates[i];if(h==null||v==null)throw new Error(`OpenExchangeRates: missing rate for ${c} or ${i}`);const b={base:c,quote:i,rate:v/h,asOf:new Date(d.timestamp*1e3).toISOString()};return this.setCached(b),b}}class Ve extends ke{constructor(r={}){super(r);Y(this,"id","exchangerate.host")}async getRate(r,a){var b;const c=r.toUpperCase(),i=a.toUpperCase();if(c===i)return{base:c,quote:i,rate:1,asOf:new Date().toISOString()};const u=this.getCached(c,i);if(u)return u;const s=`https://api.exchangerate.host/convert?from=${c}&to=${i}`,l=await this.fetchImpl(s);if(!l.ok)throw new Error(`exchangerate.host HTTP ${l.status}`);const d=await l.json(),h=((b=d.info)==null?void 0:b.rate)??d.result,v={base:c,quote:i,rate:h,asOf:d.date};return this.setCached(v),v}}class Xe extends ke{constructor(r={}){super(r);Y(this,"id","nbp");Y(this,"table");this.table=r.table??"A"}async getRate(r,a){const c=r.toUpperCase(),i=a.toUpperCase();if(c===i)return{base:c,quote:i,rate:1,asOf:new Date().toISOString()};const u=this.getCached(c,i);if(u)return u;const s=async v=>{var C;if(v==="PLN")return{rate:1,date:new Date().toISOString().slice(0,10)};const b=`https://api.nbp.pl/api/exchangerates/rates/${this.table}/${v}/?format=json`,m=await this.fetchImpl(b);if(!m.ok)return null;const f=(C=(await m.json()).rates)==null?void 0:C[0];return f?{rate:f.mid??f.ask??0,date:f.effectiveDate}:null},l=await s(c),d=await s(i);if(!l||!d||l.rate===0)throw new Error(`NBP: missing rate for ${c} or ${i}`);const h={base:c,quote:i,rate:l.rate/d.rate,asOf:l.date};return this.setCached(h),h}}class Qe extends Ze{constructor(){super(...arguments);Y(this,"id","ecb")}}class We extends Ve{constructor(){super(...arguments);Y(this,"id","free-forex")}}const Tt=(t={})=>new Xe(t),Ft=(t={})=>new Qe(t),Ot=t=>new Je(t.apiKey,t),qt=(t={})=>new We(t);async function et(t,e,r){const a=e.toUpperCase();if(t.currency.toUpperCase()===a)return t;const c=W(t.currency),i=W(a),u=(c==null?void 0:c.decimals)??2,s=(i==null?void 0:i.decimals)??2,{rate:l}=await r.getRate(t.currency,a),h=t.amount/Math.pow(10,u)*l;return{currency:a,amount:Math.round(h*Math.pow(10,s))}}class tt{constructor(e={}){Y(this,"id");Y(this,"name");Y(this,"supportedCurrencies");Y(this,"minimums");Y(this,"counter",0);this.id=e.id??"mock",this.name=e.name??"Mock Processor",this.supportedCurrencies=e.supportedCurrencies??"*"}newId(e){return this.counter+=1,`${e}_${Date.now().toString(36)}_${this.counter}`}async authorize(e){return{id:this.newId("auth"),status:"authorized",processor:this.id,amount:e.amount,raw:{mock:!0,request:e}}}async capture(e,r){return{id:e.replace("auth_","cap_"),status:"captured",processor:this.id,amount:r}}async cancel(e){return{id:e,status:"cancelled",processor:this.id}}async refund(e,r){return{id:e.replace(/^[a-z]+_/,"ref_"),status:"refunded",processor:this.id,amount:r}}}function X(t,e,r,a,c){const i=u=>{const s=a==null?void 0:a[u];return s||(async()=>{throw new Error(`[ui-money] ${e} adapter is not wired. Pass an \`executor.${String(u)}\` implementation that calls the ${e} SDK.`)})};return{id:t,name:e,supportedCurrencies:r,minimums:c,authorize:i("authorize"),capture:i("capture"),cancel:i("cancel"),refund:i("refund")}}function rt(t){return X("stripe","Stripe","*",t,{USD:50,EUR:50,GBP:30,JPY:50,AUD:50,CAD:50,CHF:50,DKK:250,NOK:300,SEK:300,PLN:200})}function nt(t){return X("paypal","PayPal",["USD","EUR","GBP","AUD","CAD","JPY","CHF","NZD","SEK","NOK","DKK","PLN","CZK","HUF","BRL","MXN","HKD","SGD","TWD","THB","PHP","ILS"],t)}function at(t){return X("adyen","Adyen","*",t)}function ct(t){return X("square","Square",["USD","CAD","GBP","AUD","JPY","EUR"],t)}function st(t){return X("mollie","Mollie","*",t)}function it(t){return X("braintree","Braintree","*",t)}function ot(t){return X("razorpay","Razorpay",["INR","USD","EUR","GBP","AED"],t)}function lt(t){return X("payu","PayU",["PLN","EUR","USD","CZK","HUF","RON","BGN","TRY"],t)}function dt(t){return X("przelewy24","Przelewy24",["PLN","EUR"],t)}function ut(t={}){return X("tpay","Tpay",["PLN","EUR","USD","GBP"],t)}function mt(t={}){return X("autopay","Autopay",["PLN","EUR","USD","GBP","CZK"],t)}function pt(t={}){const{acquirer:e="native",...r}=t;return X(`blik:${e}`,`BLIK (${e})`,["PLN"],r)}function yt(t){return X("klarna","Klarna",["USD","EUR","GBP","SEK","NOK","DKK","CHF","AUD","CAD","NZD","PLN"],t)}function ht(t){return X("coinbase-commerce","Coinbase Commerce",["BTC","ETH","USDC","USDT","USD","EUR"],t)}const ft={mock:()=>new tt,stripe:()=>rt(),paypal:()=>nt(),adyen:()=>at(),square:()=>ct(),mollie:()=>st(),braintree:()=>it(),razorpay:()=>ot(),payu:()=>lt(),przelewy24:()=>dt(),tpay:()=>ut(),autopay:()=>mt(),blik:()=>pt(),klarna:()=>yt(),"coinbase-commerce":()=>ht()};function Kt(t){const e=ft[t];return e?e().supportedCurrencies:"*"}function Bt(t){return`/api/payments/${t}/webhook`}const Lt=[{id:"stripe",name:"Stripe",type:"card",credentials:[{key:"apiKey",label:"Secret API key",secret:!0,required:!0,help:"sk_live_… / sk_test_…"},{key:"publishableKey",label:"Publishable key",required:!0,help:"pk_live_… / pk_test_…"},{key:"webhookSecret",label:"Webhook signing secret",secret:!0,help:"whsec_…"}],supportedMethods:["card","applepay","googlepay","link"],allowedDomains:["api.stripe.com"],hasTestMode:!0},{id:"paypal",name:"PayPal",type:"wallet",credentials:[{key:"clientId",label:"Client ID",required:!0},{key:"clientSecret",label:"Client secret",secret:!0,required:!0},{key:"webhookId",label:"Webhook ID"}],supportedMethods:["paypal","card","paylater"],allowedDomains:["api-m.paypal.com","api-m.sandbox.paypal.com"],hasTestMode:!0},{id:"adyen",name:"Adyen",type:"aggregator",credentials:[{key:"apiKey",label:"API key",secret:!0,required:!0},{key:"merchantAccount",label:"Merchant account",required:!0},{key:"hmacKey",label:"HMAC key (webhooks)",secret:!0},{key:"clientKey",label:"Client key"}],supportedMethods:["card","ideal","bancontact","applepay","googlepay"],allowedDomains:["checkout-test.adyen.com","checkout-live.adyen.com"],hasTestMode:!0},{id:"square",name:"Square",type:"card",credentials:[{key:"accessToken",label:"Access token",secret:!0,required:!0},{key:"applicationId",label:"Application ID",required:!0},{key:"locationId",label:"Location ID",required:!0}],supportedMethods:["card","applepay","googlepay"],allowedDomains:["connect.squareup.com","connect.squareupsandbox.com"],hasTestMode:!0},{id:"mollie",name:"Mollie",type:"aggregator",credentials:[{key:"apiKey",label:"API key",secret:!0,required:!0,help:"live_… / test_…"}],supportedMethods:["card","ideal","bancontact","blik","applepay"],allowedDomains:["api.mollie.com"],hasTestMode:!0},{id:"braintree",name:"Braintree",type:"card",credentials:[{key:"merchantId",label:"Merchant ID",required:!0},{key:"publicKey",label:"Public key",required:!0},{key:"privateKey",label:"Private key",secret:!0,required:!0}],supportedMethods:["card","paypal","applepay","googlepay"],allowedDomains:["api.braintreegateway.com","api.sandbox.braintreegateway.com"],hasTestMode:!0},{id:"razorpay",name:"Razorpay",type:"aggregator",credentials:[{key:"keyId",label:"Key ID",required:!0},{key:"keySecret",label:"Key secret",secret:!0,required:!0},{key:"webhookSecret",label:"Webhook secret",secret:!0}],supportedMethods:["card","upi","netbanking","wallet"],allowedDomains:["api.razorpay.com"],hasTestMode:!0},{id:"payu",name:"PayU",type:"aggregator",credentials:[{key:"posId",label:"POS ID",required:!0},{key:"clientId",label:"OAuth client ID",required:!0},{key:"clientSecret",label:"OAuth client secret",secret:!0,required:!0},{key:"secondKey",label:"Second key (MD5)",secret:!0}],supportedMethods:["card","blik","transfer","googlepay"],allowedDomains:["secure.payu.com","secure.snd.payu.com"],hasTestMode:!0},{id:"przelewy24",name:"Przelewy24",type:"bank",credentials:[{key:"merchantId",label:"Merchant ID",required:!0},{key:"posId",label:"POS ID",required:!0},{key:"crcKey",label:"CRC key",secret:!0,required:!0},{key:"apiKey",label:"API key",secret:!0,required:!0}],supportedMethods:["transfer","blik","card"],allowedDomains:["secure.przelewy24.pl","sandbox.przelewy24.pl"],hasTestMode:!0},{id:"tpay",name:"Tpay",type:"aggregator",credentials:[{key:"merchantId",label:"Merchant ID",required:!0},{key:"apiKey",label:"API key",secret:!0,required:!0},{key:"apiPassword",label:"API password",secret:!0,required:!0}],supportedMethods:["card","blik","transfer","applepay"],allowedDomains:["api.tpay.com","secure.tpay.com"],hasTestMode:!0},{id:"autopay",name:"Autopay",type:"aggregator",credentials:[{key:"serviceId",label:"Service ID",required:!0},{key:"sharedSecret",label:"Shared secret",secret:!0,required:!0}],supportedMethods:["card","blik","transfer"],allowedDomains:["pay.autopay.eu","testpay.autopay.eu"],hasTestMode:!0},{id:"blik",name:"BLIK",type:"bank",credentials:[{key:"acquirer",label:"Acquirer (p24 / tpay / payu / native)",required:!0,help:"Underlying acquirer routing BLIK."}],supportedMethods:["blik"],hasTestMode:!0},{id:"klarna",name:"Klarna",type:"bnpl",credentials:[{key:"username",label:"API username (UID)",required:!0},{key:"password",label:"API password",secret:!0,required:!0},{key:"region",label:"Region (eu / na / oc)",help:"Selects the Klarna API host."}],supportedMethods:["paylater","installments","paynow"],allowedDomains:["api.klarna.com","api.playground.klarna.com"],hasTestMode:!0},{id:"coinbase-commerce",name:"Coinbase Commerce",type:"crypto",credentials:[{key:"apiKey",label:"API key",secret:!0,required:!0},{key:"webhookSharedSecret",label:"Webhook shared secret",secret:!0}],supportedMethods:["crypto"],allowedDomains:["api.commerce.coinbase.com"],hasTestMode:!1},{id:"wallet",name:"In-app Wallet",type:"wallet",currencyKey:"mock",credentials:[{key:"ledgerAccount",label:"Ledger account",required:!0,help:"Account the wallet debits/credits."}],supportedMethods:["wallet"],hasTestMode:!0}],fe=Object.fromEntries(Lt.map(t=>{const{currencyKey:e,...r}=t,a={...r,supportedCurrencies:Kt(e??t.id),webhookPath:Bt(t.id)};return[t.id,a]})),bt=Object.values(fe);function zt(t){return fe[t]}function Ht(t,e){const r=o.useMemo(()=>"amount"in t?t:ee(t.major,t.currency),[]),[a,c]=o.useState(r),i=o.useCallback(b=>c(m=>ee(b,m.currency)),[]),u=o.useCallback(b=>{c(m=>({...m,currency:b.toUpperCase()}))},[]),s=o.useCallback(b=>c(m=>le(m,b)),[]),l=o.useCallback(b=>c(m=>He(m,b)),[]),d=o.useCallback(b=>c(m=>Ne(m,b)),[]),h=o.useMemo(()=>ne(a,{locale:e}),[a,e]),v=o.useMemo(()=>De(a),[a]);return{money:a,setMoney:c,setMajor:i,setCurrency:u,add:s,subtract:l,scale:d,formatted:h,major:v}}function Ce(t,e,r){const[a,c]=o.useState(null),[i,u]=o.useState(null),[s,l]=o.useState(!1),d=o.useRef(0),h=t==null?void 0:t.amount,v=t==null?void 0:t.currency;return o.useEffect(()=>{if(h===void 0||v===void 0){c(null);return}const b=++d.current;l(!0),u(null),et({amount:h,currency:v},e,r).then(m=>{d.current===b&&c(m)}).catch(m=>{d.current===b&&(u(m instanceof Error?m:new Error(String(m))),c(null))}).finally(()=>{d.current===b&&l(!1)})},[h,v,e,r]),{converted:a,loading:s,error:i}}function _t(t){const[e,r]=o.useState("idle"),[a,c]=o.useState(null),[i,u]=o.useState(null),s=o.useCallback(()=>{r("idle"),c(null),u(null)},[]),l=o.useCallback(async b=>{r("authorizing"),u(null);try{const m=await t.authorize(b);return c(m),r(m.status),m}catch(m){const _=m instanceof Error?m:new Error(String(m));throw u(_),r("failed"),_}},[t]),d=o.useCallback(async(b,m)=>{const _=b??(a==null?void 0:a.id);if(!_)throw new Error("No authorization id to capture");r("capturing");try{const f=await t.capture(_,m);return c(f),r(f.status),f}catch(f){const C=f instanceof Error?f:new Error(String(f));throw u(C),r("failed"),C}},[t,a==null?void 0:a.id]),h=o.useCallback(async b=>{const m=b??(a==null?void 0:a.id);if(!m)throw new Error("No payment id to cancel");const _=await t.cancel(m);return c(_),r(_.status),_},[t,a==null?void 0:a.id]),v=o.useCallback(async(b,m)=>{const _=b??(a==null?void 0:a.id);if(!_)throw new Error("No payment id to refund");const f=await t.refund(_,m);return c(f),r(f.status),f},[t,a==null?void 0:a.id]);return{status:e,response:a,error:i,authorize:l,capture:d,cancel:h,refund:v,reset:s}}const Se=o.forwardRef(function({value:e,amount:r,currency:a,locale:c,display:i="symbol",highlightNegative:u=!0,zeroPlaceholder:s,convertTo:l,exchangeProvider:d,className:h,style:v,"aria-label":b},m){const{t:_}=L.useNiceTranslation(),f=o.useMemo(()=>{if(e)return e;if(r!=null&&a){const x=W(a),S=(x==null?void 0:x.decimals)??2;return{amount:Math.round(r*Math.pow(10,S)),currency:a.toUpperCase()}}return null},[e,r,a]),C=o.useMemo(()=>f?f.amount===0&&s!=null?s:ne(f,{locale:c,currencyDisplay:i}):"",[f,c,i,s]),{converted:R}=Ce(l&&d?f:null,l??"",d);if(!f)return null;const p=f.amount<0,g="nice-money"+(u&&p?" nice-money--negative":"")+(h?` ${h}`:"");return n.jsxs("span",{ref:m,className:g,style:v,"aria-label":b,children:[n.jsx("span",{className:"nice-money__value",children:C}),R&&n.jsxs("span",{className:"nice-money__converted","aria-label":_("money.convertedTo","Converted to {currency}").replace("{currency}",String(R.currency)),children:[" ≈ ",ne(R,{locale:c})]})]})}),Yt=me.map(t=>t.code).sort(),Ee=o.forwardRef(function({value:e,onChange:r,options:a=me,recents:c=[],searchable:i,showCode:u=!0,showSymbol:s=!0,compact:l=!1,disabled:d,readOnly:h,loading:v,accessMode:b,label:m,helperText:_,error:f,required:C,size:R="md",labelPlacement:p="top",labelWidth:g,controlWidth:x,className:S,style:E,id:M,name:P,title:O,"data-testid":D,"aria-label":Q,placeholder:$},j){const{t:U}=L.useNiceTranslation(),q=b==="hidden",J=d||b==="disabled"||v,te=h||b==="readOnly",H=o.useId(),Z=M??`nice-cs-${H}`,[V,re]=o.useState(""),T=i??a.length>8,k=o.useMemo(()=>{if(!V.trim())return a;const I=V.trim().toLowerCase();return a.filter(A=>A.code.toLowerCase().includes(I)||A.name.toLowerCase().includes(I)||A.symbol.toLowerCase().includes(I))},[a,V]),y=o.useMemo(()=>{const I=new Set;return c.map(A=>W(A)).filter(A=>!!A&&!I.has(A.code)&&!!I.add(A.code))},[c]),F=o.useCallback(I=>{const A=I.target.value,se=W(A);se&&(r==null||r(A,se))},[r]),K=I=>{if(l)return`${s?I.symbol+" ":""}${I.code}`;const A=[];return s&&A.push(I.symbol),u&&A.push(I.code),A.push("—",I.name),A.join(" ")},w=`nice-currency-selector nice-currency-selector--${R} nice-currency-selector--label-${p}`+(l?" nice-currency-selector--compact":"")+(f?" nice-currency-selector--error":"")+(J?" nice-currency-selector--disabled":"")+(S?` ${S}`:""),B=p==="left"&&g!=null?{width:typeof g=="number"?`${g}px`:g,flex:"none"}:void 0,ce=x!=null?{width:typeof x=="number"?`${x}px`:x,flex:"none"}:void 0;return q?null:n.jsxs("div",{ref:j,className:w,style:E,title:O,"data-testid":D,children:[m&&n.jsxs("label",{htmlFor:Z,className:"nice-currency-selector__label",style:B,children:[m,C&&n.jsx("span",{className:"nice-currency-selector__required","aria-hidden":!0,children:"*"})]}),n.jsxs("div",{className:"nice-currency-selector__inner",style:ce,children:[T&&n.jsx("input",{type:"search",className:"nice-currency-selector__search",placeholder:U("currencySelector.searchCurrency","Search currency…"),value:V,onChange:I=>re(I.target.value),disabled:J||te,"aria-label":U("currencySelector.searchCurrency2","Search currency")}),n.jsxs("select",{id:Z,name:P,className:"nice-currency-selector__select",value:e??"",onChange:F,disabled:J||te,required:C,"aria-invalid":!!f,"aria-label":Q??(typeof m=="string"?m:U("currencySelector.currency","Currency")),children:[!e&&n.jsx("option",{value:"",children:$??U("currencySelector.selectCurrency","Select currency…")}),y.length>0&&n.jsx("optgroup",{label:U("currencySelector.recent","Recent"),children:y.map(I=>n.jsx("option",{value:I.code,children:K(I)},`r-${I.code}`))}),n.jsx("optgroup",{label:y.length>0?U("currencySelector.all","All"):"",children:k.map(I=>n.jsx("option",{value:I.code,children:K(I)},I.code))})]})]}),(f||_)&&n.jsx("span",{className:f?"nice-currency-selector__error":"nice-currency-selector__helper",children:f??_})]})}),Ue=o.forwardRef(function({value:e,onChange:r,currency:a,onCurrencyChange:c,currencies:i,hideCurrencySelector:u,min:s,max:l,step:d,locale:h,placeholder:v,label:b,helperText:m,error:_,size:f="md",disabled:C,readOnly:R,required:p,loading:g,accessMode:x,labelPlacement:S="top",errorPlacement:E="bottom",labelWidth:M,controlWidth:P,submitOnEnter:O,onSubmit:D,showFormattedPreview:Q=!0,showSteppers:$=!1,className:j,style:U,id:q,name:J,title:te,"data-testid":H,onBlur:Z,onFocus:V,liveGrouping:re,multiplierShortcuts:T=!0,onValidationError:k},y){const{t:F}=L.useNiceTranslation(),K=C||x==="disabled"||g,w=R||x==="readOnly",B=x==="hidden",ce=o.useId(),I=q??`nice-money-${ce}`,A=((e==null?void 0:e.currency)??a??"USD").toUpperCase(),se=W(A),G=(se==null?void 0:se.decimals)??2,we=d??1/Math.pow(10,G),[_e,pe]=o.useState(()=>e?(e.amount/Math.pow(10,G)).toFixed(G):""),[ge,Te]=o.useState(!1);o.useEffect(()=>{if(ge)return;if(e==null){pe("");return}const N=W(e.currency),z=(N==null?void 0:N.decimals)??2;pe((e.amount/Math.pow(10,z)).toFixed(z))},[e,ge]);const Fe=o.useCallback(N=>{let z=N;if(T){const ie=N.trim().match(/^([+-]?\d+(?:[.,]\d+)?)\s*([kKmMbB])$/);if(ie){const oe=ie[2].toLowerCase()==="k"?1e3:ie[2].toLowerCase()==="m"?1e6:1e9,Ke=Number(ie[1].replace(",","."))*oe;if(!Number.isFinite(Ke)){k==null||k(new Error("overflow"));return}z=String(Ke)}}const ae=Ye(z,A);if(!ae){r==null||r(null);return}if(!Number.isSafeInteger(ae.amount)){k==null||k(new Error("overflow: amount exceeds Number.MAX_SAFE_INTEGER"));return}const de=ae.amount/Math.pow(10,G);if(s!=null&&de<s){k==null||k(new Error(`min: ${s}`)),r==null||r(ee(s,A));return}if(l!=null&&de>l){k==null||k(new Error(`max: ${l}`)),r==null||r(ee(l,A));return}r==null||r(ae)},[A,G,s,l,r,T,k]),xt=o.useCallback(N=>{const z=N.target.value;pe(z),Fe(z)},[Fe]),xe=o.useCallback(N=>{const z=Math.min(l??1/0,Math.max(s??-1/0,N));pe(z.toFixed(G)),r==null||r(ee(z,A))},[G,s,l,A,r]),je=o.useCallback(N=>xe((e?e.amount/Math.pow(10,G):0)+N),[e,G,xe]),Oe=o.useRef(null),he=o.useRef(null),vt=$&&!K&&!w;L.useEngage(Oe,{kind:$?"value":"text",disabled:K||w,restoreOnCancel:$,onEngage:()=>{he.current={value:e??null,draft:_e}},onRelease:N=>{N&&$&&he.current&&(pe(he.current.draft),r==null||r(he.current.value)),he.current=null}});const ve=o.useMemo(()=>{var N,z;try{const ae=new Intl.NumberFormat(h).formatToParts(12345.6),de=((N=ae.find(oe=>oe.type==="group"))==null?void 0:N.value)??",",ie=((z=ae.find(oe=>oe.type==="decimal"))==null?void 0:z.value)??".";return{group:de,decimal:ie}}catch{return{group:",",decimal:"."}}},[h]),qe=re??!!ve.group,Nt=o.useMemo(()=>{if(!qe||ge===!1)return _e;const N=ve.decimal,z=ve.group,ae=_e.replace(new RegExp(`[${z.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")}]`,"g"),""),[de,ie]=ae.split(N);if(!de)return ae;const oe=de.replace(/\B(?=(\d{3})+(?!\d))/g,z);return ie!=null?`${oe}${N}${ie}`:oe},[_e,ge,qe,ve]),Me=o.useMemo(()=>e?ne(e,{locale:h}):"",[e,h]),ye=typeof _=="string"?_:void 0,Ct=`nice-money-input nice-money-input--${f} nice-money-input--label-${S} nice-money-input--error-${E}`+(ye?" nice-money-input--error":"")+(K?" nice-money-input--disabled":"")+(g?" nice-money-input--loading":"")+(j?` ${j}`:""),kt=N=>{if(O&&N.key==="Enter"&&D){N.preventDefault(),D();return}if(!vt)return;const z=N.key==="ArrowUp"?1:N.key==="ArrowDown"?-1:N.key==="PageUp"?10:N.key==="PageDown"?-10:0;z?(N.preventDefault(),je(z*we)):N.key==="Home"&&s!=null?(N.preventDefault(),xe(s)):N.key==="End"&&l!=null&&(N.preventDefault(),xe(l))},wt=S==="left"&&M!=null?{width:typeof M=="number"?`${M}px`:M,flex:"none"}:void 0,jt=P!=null?{width:typeof P=="number"?`${P}px`:P,flex:"none"}:void 0;return B?null:n.jsxs("div",{ref:y,className:Ct,style:U,title:te,"data-testid":H,children:[b&&n.jsxs("label",{htmlFor:I,className:"nice-money-input__label",style:wt,children:[b,p&&n.jsx("span",{className:"nice-money-input__required","aria-hidden":!0,children:"*"})]}),n.jsxs("div",{className:"nice-money-input__row",style:jt,children:[!u&&n.jsx(Ee,{value:A,compact:!0,options:i?i.map(W).filter(N=>!!N):void 0,onChange:N=>c==null?void 0:c(N),disabled:K||w,className:"nice-money-input__currency","aria-label":F("moneyInput.currency","Currency")}),u&&n.jsx("span",{className:"nice-money-input__symbol","aria-hidden":!0,children:(se==null?void 0:se.symbol)??A}),$&&n.jsx("button",{type:"button",className:"nice-money-input__step nice-money-input__step--down",onClick:()=>je(-we),disabled:K||w||s!=null&&e!=null&&e.amount/Math.pow(10,G)<=s,"aria-label":F("moneyInput.decreaseAmount","Decrease amount"),tabIndex:-1,children:n.jsx(L.NiceIcon,{name:"minus",size:14})}),n.jsx("input",{ref:Oe,id:I,name:J,type:"text",inputMode:"decimal",autoComplete:"transaction-amount",className:"nice-money-input__amount",value:Nt,onChange:xt,onKeyDown:kt,onFocus:N=>{Te(!0),V==null||V(N)},onBlur:N=>{Te(!1),e&&pe((e.amount/Math.pow(10,G)).toFixed(G)),Z==null||Z(N)},placeholder:v??`0${G>0?"."+"0".repeat(G):""}`,disabled:K,readOnly:w,required:p,"aria-invalid":!!ye,"aria-describedby":ye||m?`${I}-help`:void 0,...$&&{role:"spinbutton","aria-valuenow":e?e.amount/Math.pow(10,G):void 0,"aria-valuemin":s,"aria-valuemax":l,"aria-valuetext":Me||void 0}}),$&&n.jsx("button",{type:"button",className:"nice-money-input__step nice-money-input__step--up",onClick:()=>je(we),disabled:K||w||l!=null&&e!=null&&e.amount/Math.pow(10,G)>=l,"aria-label":F("moneyInput.increaseAmount","Increase amount"),tabIndex:-1,children:n.jsx(L.NiceIcon,{name:"plus",size:14})}),g&&n.jsx("span",{className:"nice-money-input__spinner","aria-hidden":!0,children:n.jsx(L.NiceIcon,{name:"refresh",size:14})})]}),Q&&Me&&n.jsx("span",{className:"nice-money-input__preview","aria-live":"polite",children:Me}),(ye||m)&&n.jsx("span",{id:`${I}-help`,className:ye?"nice-money-input__error":"nice-money-input__helper",children:ye??m})]})}),Gt={number:"",expiry:"",cvc:""},gt=o.forwardRef(function({value:e=Gt,onChange:r,showHolderName:a=!0,requireHolderName:c,showPostalCode:i=!1,acceptedBrands:u,showBrandIcon:s=!0,size:l="md",disabled:d,readOnly:h,loading:v,accessMode:b,label:m,helperText:_,error:f,required:C,className:R,style:p,id:g,title:x,"data-testid":S},E){const{t:M}=L.useNiceTranslation(),P=b==="hidden",O=d||b==="disabled"||v,D=h||b==="readOnly",Q=o.useId(),$=g??`nice-cc-${Q}`,[j,U]=o.useState({number:!1,expiry:!1,cvc:!1,holder:!1,postal:!1}),q=o.useMemo(()=>be(e.number),[e.number]),J=o.useMemo(()=>Pe(e,{requireHolder:c??a}),[e,c,a]),te=!u||u.includes(q)||q==="unknown",H=o.useCallback(w=>{const B={...e,...w},ce=Pe(B,{requireHolder:c??a});r==null||r(B,ce)},[e,c,a,r]),Z=o.useCallback(w=>{const B=w.target.value.replace(/\D/g,"").slice(0,19);H({number:B})},[H]),V=o.useCallback(w=>{const B=w.target.value.replace(/\D/g,"").slice(0,4);let ce=B;B.length>=3?ce=`${B.slice(0,2)}/${B.slice(2)}`:B.length===2&&(ce=`${B}/`),H({expiry:ce})},[H]),re=o.useCallback(w=>{const B=w.target.value.replace(/\D/g,"").slice(0,ue(q));H({cvc:B})},[q,H]),T=o.useMemo(()=>Ge(e.number,q),[e.number,q]),k=j.number&&e.number.length>0&&(Re(e.number)?te?void 0:"Card brand not accepted":J.errors.number),y=j.expiry&&e.expiry.length>0&&!$e(e.expiry)?J.errors.expiry:void 0,F=j.cvc&&e.cvc.length>0&&e.cvc.length!==ue(q)?J.errors.cvc:void 0,K=`nice-credit-card nice-credit-card--${l}`+(O?" nice-credit-card--disabled":"")+(v?" nice-credit-card--loading":"")+(f?" nice-credit-card--error":"")+(R?` ${R}`:"");return P?null:n.jsxs("div",{ref:E,className:K,style:p,title:x,"data-testid":S,children:[m&&n.jsxs("div",{className:"nice-credit-card__title",children:[m,C&&n.jsx("span",{className:"nice-credit-card__required","aria-hidden":!0,children:"*"})]}),n.jsx("div",{className:"nice-credit-card__row",children:n.jsxs("label",{className:"nice-credit-card__field nice-credit-card__field--number",children:[n.jsx("span",{className:"nice-credit-card__label",children:M("creditCardInput.cardNumber","Card number")}),n.jsxs("span",{className:"nice-credit-card__input-wrapper",children:[n.jsx("input",{id:`${$}-number`,type:"text",inputMode:"numeric",autoComplete:"cc-number",placeholder:q==="amex"?"3782 822463 10005":"1234 1234 1234 1234",value:T,onChange:Z,onBlur:()=>U(w=>({...w,number:!0})),disabled:O,readOnly:D,"aria-invalid":!!k,"aria-describedby":k?`${$}-number-err`:void 0,className:"nice-credit-card__input",maxLength:q==="amex"?17:23}),s&&n.jsx(Zt,{brand:q})]}),k&&n.jsx("span",{id:`${$}-number-err`,className:"nice-credit-card__error",children:k})]})}),n.jsxs("div",{className:"nice-credit-card__row nice-credit-card__row--split",children:[n.jsxs("label",{className:"nice-credit-card__field",children:[n.jsx("span",{className:"nice-credit-card__label",children:M("creditCardInput.expiry","Expiry")}),n.jsx("input",{id:`${$}-expiry`,type:"text",inputMode:"numeric",autoComplete:"cc-exp",placeholder:M("creditCardInput.mmYy","MM/YY"),value:e.expiry,onChange:V,onBlur:()=>{U(B=>({...B,expiry:!0}));const w=Ae(e.expiry);w&&w!==e.expiry&&H({expiry:w})},disabled:O,readOnly:D,"aria-invalid":!!y,"aria-describedby":y?`${$}-expiry-err`:void 0,className:"nice-credit-card__input",maxLength:5}),y&&n.jsx("span",{id:`${$}-expiry-err`,className:"nice-credit-card__error",children:y})]}),n.jsxs("label",{className:"nice-credit-card__field",children:[n.jsx("span",{className:"nice-credit-card__label",children:q==="amex"?M("creditCardInput.cid","CID"):M("creditCardInput.cvc","CVC")}),n.jsx("input",{id:`${$}-cvc`,type:"text",inputMode:"numeric",autoComplete:"cc-csc",placeholder:"•".repeat(ue(q)),value:e.cvc,onChange:re,onBlur:()=>U(w=>({...w,cvc:!0})),disabled:O,readOnly:D,"aria-invalid":!!F,"aria-describedby":F?`${$}-cvc-err`:void 0,className:"nice-credit-card__input",maxLength:ue(q)}),F&&n.jsx("span",{id:`${$}-cvc-err`,className:"nice-credit-card__error",children:F})]})]}),a&&n.jsx("div",{className:"nice-credit-card__row",children:n.jsxs("label",{className:"nice-credit-card__field",children:[n.jsx("span",{className:"nice-credit-card__label",children:M("creditCardInput.cardholderName","Cardholder name")}),n.jsx("input",{id:`${$}-holder`,type:"text",autoComplete:"cc-name",placeholder:M("creditCardInput.janeDoe","Jane Doe"),value:e.holderName??"",onChange:w=>H({holderName:w.target.value}),onBlur:()=>U(w=>({...w,holder:!0})),disabled:O,readOnly:D,className:"nice-credit-card__input",maxLength:120})]})}),i&&n.jsx("div",{className:"nice-credit-card__row",children:n.jsxs("label",{className:"nice-credit-card__field",children:[n.jsx("span",{className:"nice-credit-card__label",children:M("creditCardInput.postalCode","Postal code")}),n.jsx("input",{id:`${$}-postal`,type:"text",autoComplete:"postal-code",value:e.postalCode??"",onChange:w=>H({postalCode:w.target.value}),onBlur:()=>U(w=>({...w,postal:!0})),disabled:O,readOnly:D,className:"nice-credit-card__input",maxLength:16})]})}),(f||_)&&n.jsx("div",{className:f?"nice-credit-card__form-error":"nice-credit-card__helper",role:f?"alert":void 0,children:f??_})]})}),Be={visa:"VISA",mastercard:"MasterCard",amex:"AMEX",discover:"Discover",diners:"Diners",jcb:"JCB",unionpay:"UnionPay",maestro:"Maestro",mir:"MIR",elo:"Elo",hipercard:"Hipercard",unknown:""};function Zt({brand:t}){return t==="unknown"?null:n.jsx("span",{className:`nice-credit-card__brand nice-credit-card__brand--${t}`,"aria-label":Be[t],children:Be[t]})}const Jt=o.forwardRef(function({processor:e,amount:r,editableAmount:a,customer:c,currencies:i,description:u,metadata:s,autoCapture:l=!0,submitLabel:d,onSuccess:h,onError:v,consents:b,className:m,style:_},f){const{t:C}=L.useNiceTranslation(),R=d??C("paymentForm.pay","Pay"),[p,g]=o.useState(r),[x,S]=o.useState(r.currency),[E,M]=o.useState({number:"",expiry:"",cvc:""}),[P,O]=o.useState(null),[D,Q]=o.useState(!1),[$,j]=o.useState(null),U=_t(e),q=o.useMemo(()=>e.supportedCurrencies==="*"?!0:e.supportedCurrencies.includes(p.currency.toUpperCase()),[e,p.currency]),J=o.useMemo(()=>{var k;const T=(k=e.minimums)==null?void 0:k[p.currency.toUpperCase()];return T==null||p.amount>=T},[e,p]),te=o.useMemo(()=>{var k;const T=(k=e.minimums)==null?void 0:k[p.currency.toUpperCase()];return T==null?null:{amount:T,currency:p.currency}},[e,p.currency]),H=!!(P!=null&&P.isValid),Z=!D&&q&&J&&H,V=o.useCallback(async T=>{if(T.preventDefault(),!!Z){j(null),Q(!0);try{const k={amount:p,card:E,customer:c,description:u,metadata:s,idempotencyKey:Vt()},y=await U.authorize(k);if(l&&y.status==="authorized"){const F=await U.capture(y.id,p);h==null||h(F)}else h==null||h(y)}catch(k){const y=k instanceof Error?k:new Error(String(k));j(y.message),v==null||v(y)}finally{Q(!1)}}},[Z,p,E,c,u,s,l,U,h,v]),re=W(p.currency);return n.jsxs("form",{ref:f,className:"nice-payment-form"+(m?` ${m}`:""),style:_,onSubmit:V,"aria-busy":D,children:[n.jsx("div",{className:"nice-payment-form__amount",children:a?n.jsx(Ue,{label:C("paymentForm.amount","Amount"),value:p,currency:x,currencies:i,onChange:T=>T&&g(T),onCurrencyChange:T=>{S(T),g(k=>({...k,currency:T}))},disabled:D,required:!0,showFormattedPreview:!0}):n.jsxs("div",{className:"nice-payment-form__total",children:[n.jsx("span",{className:"nice-payment-form__total-label",children:C("paymentForm.total","Total")}),n.jsx(Se,{value:p})]})}),u&&n.jsx("p",{className:"nice-payment-form__description",children:u}),n.jsx("div",{className:"nice-payment-form__card",children:n.jsx(gt,{value:E,onChange:(T,k)=>{M(T),O(k)},disabled:D})}),!q&&n.jsx("div",{className:"nice-payment-form__warning",role:"alert",children:C("paymentForm.doesNotAccept","{provider} does not accept {currency}.").replace("{provider}",String(e.name)).replace("{currency}",String((re==null?void 0:re.name)??p.currency))}),!J&&te&&n.jsxs("div",{className:"nice-payment-form__warning",role:"alert",children:[C("paymentForm.minimumChargeForIs","Minimum charge for {name} is").replace("{name}",String(e.name))," ",n.jsx(Se,{value:te}),"."]}),b&&n.jsx("div",{className:"nice-payment-form__consents",children:b}),$&&n.jsx("div",{className:"nice-payment-form__error",role:"alert",children:$}),n.jsx("button",{type:"submit",className:"nice-payment-form__submit",disabled:!Z,"aria-disabled":!Z,children:D?C("paymentForm.processing","Processing…"):R}),n.jsxs("p",{className:"nice-payment-form__processor",children:[C("paymentForm.securedBy","Secured by")," ",n.jsx("strong",{children:e.name})]})]})});function Vt(){return typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID():`idem_${Date.now().toString(36)}_${Math.random().toString(36).slice(2)}`}const Xt=o.forwardRef(function({price:e,originalPrice:r,period:a,prefix:c,suffix:i,showDiscountBadge:u=!0,size:s="md",locale:l,className:d,style:h},v){const{t:b}=L.useNiceTranslation(),m=r&&r.currency===e.currency&&r.amount>e.amount,_=o.useMemo(()=>!m||!r?null:Math.round((r.amount-e.amount)/r.amount*100),[m,r,e.amount]),f=`nice-price-tag nice-price-tag--${s}`+(d?` ${d}`:"");return n.jsxs("div",{ref:v,className:f,style:h,children:[c&&n.jsx("span",{className:"nice-price-tag__prefix",children:c}),n.jsxs("span",{className:"nice-price-tag__main",children:[n.jsx("span",{className:"nice-price-tag__amount",children:ne(e,{locale:l})}),a&&n.jsx("span",{className:"nice-price-tag__period",children:a})]}),m&&r&&n.jsx("span",{className:"nice-price-tag__original","aria-label":b("priceTag.originalPrice","Original price"),children:n.jsx("s",{children:ne(r,{locale:l})})}),m&&u&&_!=null&&_>0&&n.jsxs("span",{className:"nice-price-tag__discount","aria-label":b("priceTag.percentOff","{pct} percent off").replace("{pct}",String(_)),children:["−",_,"%"]}),i&&n.jsx("span",{className:"nice-price-tag__suffix",children:i})]})}),Qt={amount:0,currency:"USD"},Wt=o.forwardRef(function({source:e,defaultSource:r,onSourceChange:a,targetCurrency:c,defaultTargetCurrency:i,onTargetCurrencyChange:u,provider:s,locale:l,showRateLine:d=!0,className:h,style:v},b){const{t:m}=L.useNiceTranslation(),[_,f]=L.useControllableState({value:e,defaultValue:r,fallbackValue:Qt,onChange:a,componentName:"NiceCurrencyConverter"}),[C,R]=L.useControllableState({value:c,defaultValue:i,fallbackValue:_.currency,onChange:u,componentName:"NiceCurrencyConverter"}),{converted:p,loading:g,error:x}=Ce(_,C,s),S=o.useMemo(()=>({amount:Math.pow(10,2),currency:_.currency}),[_.currency]),{converted:E}=Ce(d?S:null,C,s);return n.jsxs("div",{ref:b,className:"nice-currency-converter"+(h?` ${h}`:""),style:v,children:[n.jsx("div",{className:"nice-currency-converter__row",children:n.jsx(Ue,{label:m("currencyConverter.from","From"),value:_,onChange:M=>M&&f(M),currency:_.currency,onCurrencyChange:M=>f({..._,currency:M}),showFormattedPreview:!1})}),n.jsxs("div",{className:"nice-currency-converter__row",children:[n.jsx("label",{className:"nice-currency-converter__label",children:m("currencyConverter.to","To")}),n.jsxs("div",{className:"nice-currency-converter__output",children:[n.jsx(Ee,{value:C,onChange:M=>R(M),compact:!0}),n.jsx("span",{className:"nice-currency-converter__amount",children:g?"…":x?"—":p?ne(p,{locale:l}):""})]})]}),d&&E&&n.jsxs("p",{className:"nice-currency-converter__rate",children:["1 ",_.currency," = ",ne(E,{locale:l})," ",n.jsxs("span",{className:"nice-currency-converter__inverse",children:["· 1 ",C," ="," ",ne(ee(1/De(E),_.currency),{locale:l})]})]}),x&&n.jsx("p",{className:"nice-currency-converter__error",role:"alert",children:x.message})]})}),er=[];function Le(t){return{amount:Math.round(t.amount),currency:t.currency}}const tr=o.forwardRef(function({lines:e=er,locale:r,rounding:a="line",showTotals:c=!0,showGrandTotal:i=!0,hideRateColumn:u=!1,labels:s,density:l="comfortable",className:d,style:h,id:v},b){const{t:m}=L.useNiceTranslation(),_={label:(s==null?void 0:s.label)??m("taxBreakdown.item","Item"),rate:(s==null?void 0:s.rate)??"VAT",net:(s==null?void 0:s.net)??"Net",vat:(s==null?void 0:s.vat)??"Tax",gross:(s==null?void 0:s.gross)??"Gross",total:(s==null?void 0:s.total)??"Total"},f=o.useMemo(()=>{if(a==="total"){const p=new Map;for(const x of e){let S=p.get(x.vatRate);S||(S=[],p.set(x.vatRate,S)),S.push(x.netAmount)}const g=[];for(const[x,S]of p){const E=S.reduce((O,D)=>le(O,D),ee(0,S[0].currency)),M=Le(Ne(E,x)),P=le(E,M);g.push({rate:x,net:E,vat:M,gross:P})}return g}return e.map(p=>{const g=Le(Ne(p.netAmount,p.vatRate)),x=le(p.netAmount,g);return{label:p.label,rate:p.vatRate,net:p.netAmount,vat:g,gross:x}})},[e,a]),C=o.useMemo(()=>{if(f.length===0)return null;const p=f[0].net.currency;let g=ee(0,p),x=ee(0,p),S=ee(0,p);for(const E of f)g=le(g,E.net),x=le(x,E.vat),S=le(S,E.gross);return{net:g,vat:x,gross:S}},[f]),R=p=>ne(p,{locale:r});return n.jsxs("table",{ref:b,id:v,className:`nice-tax-breakdown nice-tax-breakdown--${l} ${d??""}`,style:h,role:"table","aria-label":_.total,children:[n.jsx("thead",{children:n.jsxs("tr",{children:[f.some(p=>p.label!==void 0)&&n.jsx("th",{scope:"col",children:_.label}),!u&&n.jsx("th",{scope:"col",className:"nice-tax-breakdown__rate",children:_.rate}),n.jsx("th",{scope:"col",className:"nice-tax-breakdown__num",children:_.net}),n.jsx("th",{scope:"col",className:"nice-tax-breakdown__num",children:_.vat}),n.jsx("th",{scope:"col",className:"nice-tax-breakdown__num",children:_.gross})]})}),n.jsx("tbody",{children:f.map((p,g)=>n.jsxs("tr",{children:[f.some(x=>x.label!==void 0)&&n.jsx("td",{children:p.label??""}),!u&&n.jsxs("td",{className:"nice-tax-breakdown__rate",children:[(p.rate*100).toLocaleString(r,{maximumFractionDigits:2}),"%"]}),n.jsx("td",{className:"nice-tax-breakdown__num",children:R(p.net)}),n.jsx("td",{className:"nice-tax-breakdown__num",children:R(p.vat)}),n.jsx("td",{className:"nice-tax-breakdown__num",children:R(p.gross)})]},`${p.rate}-${g}`))}),c&&C&&n.jsx("tfoot",{children:i&&n.jsxs("tr",{className:"nice-tax-breakdown__totals",children:[f.some(p=>p.label!==void 0)&&n.jsx("td",{children:_.total}),!u&&n.jsx("td",{children:f.some(p=>p.label!==void 0)?null:_.total}),n.jsx("td",{className:"nice-tax-breakdown__num",children:R(C.net)}),n.jsx("td",{className:"nice-tax-breakdown__num",children:R(C.vat)}),n.jsx("td",{className:"nice-tax-breakdown__num",children:R(C.gross)})]})})]})}),rr=[],nr=o.forwardRef(function(e,r){const{t:a}=L.useNiceTranslation(),{methods:c=rr,value:i,onChange:u,layout:s="list",columns:l=2,currency:d,label:h,name:v,readOnly:b=!1,className:m,style:_,id:f,accessMode:C,"data-testid":R}=e,p=o.useId(),g=v??`nice-pm-${p}`,x=o.useMemo(()=>{if(!d)return c;const P=d.toUpperCase();return c.filter(O=>!O.currencies||O.currencies.map(D=>D.toUpperCase()).includes(P))},[c,d]);if(C==="hidden")return null;const S=b||C==="disabled"||C==="readOnly",E=`nice-payment-method-selector nice-payment-method-selector--${s}`+(m?` ${m}`:""),M=s==="grid"?{gridTemplateColumns:`repeat(${l}, minmax(0, 1fr))`}:void 0;return n.jsxs("div",{ref:r,id:f,className:E,style:_,"data-testid":R,children:[h&&n.jsx("div",{className:"nice-payment-method-selector__label",children:h}),n.jsxs("div",{className:"nice-payment-method-selector__options",style:M,role:"radiogroup","aria-label":h??a("paymentMethodSelector.paymentMethod","Payment method"),children:[x.map(P=>{const O=P.id===i,D=S||P.disabled;return n.jsxs("label",{className:"nice-payment-method-selector__option"+(O?" nice-payment-method-selector__option--selected":"")+(D?" nice-payment-method-selector__option--disabled":""),children:[n.jsx("input",{type:"radio",className:"nice-payment-method-selector__radio",name:g,value:P.id,checked:O,disabled:D,onChange:()=>u==null?void 0:u(P.id)}),P.icon&&n.jsx("span",{className:"nice-payment-method-selector__icon",children:P.icon}),n.jsxs("span",{className:"nice-payment-method-selector__text",children:[n.jsx("span",{className:"nice-payment-method-selector__name",children:P.label}),P.description&&n.jsx("span",{className:"nice-payment-method-selector__desc",children:P.description})]})]},P.id)}),x.length===0&&n.jsx("div",{className:"nice-payment-method-selector__empty",children:a("paymentMethodSelector.noMethodsAvailable","No methods available.")})]})]})}),ar=[{target:".nice-payment-provider-config",titleKey:"tutorial.paymentProviderConfig.intro.title",title:"Payment provider",contentKey:"tutorial.paymentProviderConfig.intro.content",content:"Pick a provider, fill its credentials (secrets are masked), choose test/live, enable methods and copy the webhook URL.",placement:"auto"}],cr={providerId:"",mode:"test",credentials:{},enabledMethods:[]},sr=o.forwardRef(function(e,r){const{t:a}=L.useNiceTranslation(),{value:c,defaultValue:i,onChange:u,providers:s,onTestConnection:l,showWebhookUrl:d=!0,baseUrl:h,readOnly:v=!1,testLabel:b=a("paymentProviderConfig.testConnection","Test connection"),tutorial:m,className:_,style:f,id:C,accessMode:R,"data-testid":p}=e,[g,x]=L.useControllableState({value:c,defaultValue:i,fallbackValue:cr,onChange:u,componentName:"NicePaymentProviderConfig"}),S=o.useId(),[E,M]=o.useState(new Set),[P,O]=o.useState(!1),[D,Q]=o.useState(null),$=o.useMemo(()=>s?s.map(y=>fe[y]).filter(y=>!!y):bt,[s]),j=fe[g.providerId];if(R==="hidden")return null;const U=v||R==="disabled"||R==="readOnly",q=y=>{Q(null),M(new Set),x({providerId:y,mode:g.mode,credentials:{},enabledMethods:[]})},J=(y,F)=>{x({...g,credentials:{...g.credentials,[y]:F}})},te=y=>{const F=new Set(g.enabledMethods??[]);F.has(y)?F.delete(y):F.add(y),x({...g,enabledMethods:[...F]})},H=y=>{M(F=>{const K=new Set(F);return K.has(y)?K.delete(y):K.add(y),K})},Z=async()=>{if(l){O(!0),Q(null);try{Q(await l(g))}catch(y){Q({ok:!1,message:y instanceof Error?y.message:String(y)})}finally{O(!1)}}},V=j!=null&&j.webhookPath?`${(h??"").replace(/\/$/,"")}${j.webhookPath}`:"",re=(j==null?void 0:j.supportedCurrencies)==="*"?a("paymentProviderConfig.allCurrencies","All currencies"):((j==null?void 0:j.supportedCurrencies)??[]).join(", "),T="nice-payment-provider-config"+(_?` ${_}`:""),k=((j==null?void 0:j.credentials)??[]).filter(y=>!y.testOnly||g.mode==="test");return n.jsxs("div",{ref:r,id:C,className:T,style:f,"data-testid":p,children:[m&&n.jsx("div",{className:"nice-payment-provider-config__tutorial",children:n.jsx(L.NiceTutorialButton,{steps:L.resolveTutorial(m,ar)})}),n.jsxs("div",{className:"nice-payment-provider-config__row",children:[n.jsxs("label",{className:"nice-payment-provider-config__field",children:[n.jsx("span",{className:"nice-payment-provider-config__field-label",children:a("paymentProviderConfig.provider","Provider")}),n.jsxs("select",{className:"nice-payment-provider-config__select",value:g.providerId,disabled:U,onChange:y=>q(y.target.value),children:[n.jsx("option",{value:"",children:a("paymentProviderConfig.selectProvider","— select provider —")}),$.map(y=>n.jsx("option",{value:y.id,children:y.name},y.id))]})]}),(j==null?void 0:j.hasTestMode)&&n.jsxs("div",{className:"nice-payment-provider-config__mode",role:"group","aria-label":a("paymentProviderConfig.mode","Mode"),children:[n.jsx("button",{type:"button",className:"nice-payment-provider-config__mode-btn"+(g.mode==="test"?" nice-payment-provider-config__mode-btn--active":""),onClick:()=>x({...g,mode:"test"}),disabled:U,children:a("paymentProviderConfig.test","Test")}),n.jsx("button",{type:"button",className:"nice-payment-provider-config__mode-btn"+(g.mode==="live"?" nice-payment-provider-config__mode-btn--active":""),onClick:()=>x({...g,mode:"live"}),disabled:U,children:a("paymentProviderConfig.live","Live")})]})]}),j&&n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"nice-payment-provider-config__meta",children:[n.jsx("span",{className:"nice-payment-provider-config__badge",children:j.type}),n.jsx("span",{className:"nice-payment-provider-config__currencies",children:re})]}),n.jsx("div",{className:"nice-payment-provider-config__credentials",children:k.map(y=>{const F=`${S}-${y.key}`,K=y.secret,w=E.has(y.key);return n.jsxs("div",{className:"nice-payment-provider-config__field",children:[n.jsxs("label",{className:"nice-payment-provider-config__field-label",htmlFor:F,children:[y.label,y.required&&n.jsx("span",{className:"nice-payment-provider-config__required",children:" *"})]}),n.jsxs("div",{className:"nice-payment-provider-config__input-wrap",children:[n.jsx("input",{id:F,type:K&&!w?"password":"text",className:"nice-payment-provider-config__input",value:g.credentials[y.key]??"",readOnly:U,autoComplete:K?"new-password":"off",onChange:B=>J(y.key,B.target.value)}),K&&n.jsx("button",{type:"button",className:"nice-payment-provider-config__reveal",onClick:()=>H(y.key),"aria-label":w?a("paymentProviderConfig.hide","Hide"):a("paymentProviderConfig.reveal","Reveal"),"aria-pressed":w,children:n.jsx(L.NiceIcon,{name:w?"eye-off":"eye",size:14})})]}),y.help&&n.jsx("span",{className:"nice-payment-provider-config__help",children:y.help})]},y.key)})}),j.supportedMethods&&j.supportedMethods.length>0&&n.jsxs("div",{className:"nice-payment-provider-config__methods",children:[n.jsx("span",{className:"nice-payment-provider-config__field-label",children:a("paymentProviderConfig.enabledMethods","Enabled methods")}),n.jsx("div",{className:"nice-payment-provider-config__method-list",children:j.supportedMethods.map(y=>n.jsxs("label",{className:"nice-payment-provider-config__method",children:[n.jsx("input",{type:"checkbox",checked:(g.enabledMethods??[]).includes(y),disabled:U,onChange:()=>te(y)}),y]},y))})]}),d&&j.webhookPath&&n.jsxs("div",{className:"nice-payment-provider-config__field",children:[n.jsx("span",{className:"nice-payment-provider-config__field-label",children:a("paymentProviderConfig.webhookUrl","Webhook URL")}),n.jsx("code",{className:"nice-payment-provider-config__webhook",children:V})]}),l&&n.jsxs("div",{className:"nice-payment-provider-config__test",children:[n.jsx("button",{type:"button",className:"nice-payment-provider-config__test-btn",onClick:()=>void Z(),disabled:U||P,children:P?a("paymentProviderConfig.testing","Testing…"):b}),D&&n.jsxs("span",{className:"nice-payment-provider-config__test-result nice-payment-provider-config__test-result--"+(D.ok?"ok":"error"),children:[n.jsx(L.NiceIcon,{name:D.ok?"check":"close",size:14})," ",D.message??(D.ok?a("paymentProviderConfig.ok","OK"):a("paymentProviderConfig.failed","Failed"))]})]})]})]})});exports.EcbRatesProvider=Qe;exports.ExchangeRateHostProvider=Ve;exports.FrankfurterProvider=Ze;exports.FreeForexApiProvider=We;exports.MockPaymentProcessor=tt;exports.NICE_CURRENCY_CATALOG=me;exports.NICE_CURRENCY_CODES=Yt;exports.NICE_PAYMENT_PROCESSORS=ft;exports.NICE_PAYMENT_PROVIDER_LIST=bt;exports.NICE_PAYMENT_PROVIDER_PROFILES=fe;exports.NbpRatesProvider=Xe;exports.NiceCreditCardInput=gt;exports.NiceCurrencyConverter=Wt;exports.NiceCurrencySelector=Ee;exports.NiceMoney=Se;exports.NiceMoneyInput=Ue;exports.NicePaymentForm=Jt;exports.NicePaymentMethodSelector=nr;exports.NicePaymentProviderConfig=sr;exports.NicePriceTag=Xt;exports.NiceTaxBreakdown=tr;exports.OpenExchangeRatesProvider=Je;exports.StaticExchangeRateProvider=Ut;exports.addMoney=le;exports.compareMoney=It;exports.convertMoney=et;exports.createEcbRatesProvider=Ft;exports.createFreeForexApiProvider=qt;exports.createNbpRatesProvider=Tt;exports.createOpenExchangeRatesProvider=Ot;exports.detectCardBrand=be;exports.expectedCvcLength=ue;exports.findCurrency=W;exports.findPaymentProviderProfile=zt;exports.formatCardNumber=Ge;exports.formatMoney=ne;exports.fromMoney=De;exports.isExpiryValid=$e;exports.isNegative=At;exports.isZero=Rt;exports.luhnCheck=Re;exports.makeAdyenAdapter=at;exports.makeAutopayAdapter=mt;exports.makeBlikAdapter=pt;exports.makeBraintreeAdapter=it;exports.makeCoinbaseCommerceAdapter=ht;exports.makeKlarnaAdapter=yt;exports.makeMollieAdapter=st;exports.makePayPalAdapter=nt;exports.makePayUAdapter=lt;exports.makePrzelewy24Adapter=dt;exports.makeRazorpayAdapter=ot;exports.makeSquareAdapter=ct;exports.makeStripeAdapter=rt;exports.makeTpayAdapter=ut;exports.maskCardNumber=Et;exports.multiplyMoney=Ne;exports.negateMoney=$t;exports.normaliseExpiry=Ae;exports.parseMoney=Ye;exports.registerCurrency=St;exports.subtractMoney=He;exports.toMoney=ee;exports.useNiceExchangeRate=Ce;exports.useNiceMoney=Ht;exports.useNicePayment=_t;exports.validateCreditCard=Pe;
1
+ "use strict";var Mt=Object.defineProperty;var Pt=(t,e,r)=>e in t?Mt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var Y=(t,e,r)=>Pt(t,typeof e!="symbol"?e+"":e,r);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react"),n=require("react/jsx-runtime"),L=require("@nice2dev/ui-core"),me=[{code:"USD",numeric:840,symbol:"$",name:"US Dollar",decimals:2,symbolFirst:!0},{code:"EUR",numeric:978,symbol:"€",name:"Euro",decimals:2,symbolFirst:!0},{code:"GBP",numeric:826,symbol:"£",name:"Pound Sterling",decimals:2,symbolFirst:!0},{code:"JPY",numeric:392,symbol:"¥",name:"Japanese Yen",decimals:0,symbolFirst:!0},{code:"CHF",numeric:756,symbol:"Fr",name:"Swiss Franc",decimals:2},{code:"CAD",numeric:124,symbol:"CA$",name:"Canadian Dollar",decimals:2,symbolFirst:!0},{code:"AUD",numeric:36,symbol:"A$",name:"Australian Dollar",decimals:2,symbolFirst:!0},{code:"NZD",numeric:554,symbol:"NZ$",name:"New Zealand Dollar",decimals:2,symbolFirst:!0},{code:"CNY",numeric:156,symbol:"¥",name:"Chinese Yuan Renminbi",decimals:2,symbolFirst:!0},{code:"HKD",numeric:344,symbol:"HK$",name:"Hong Kong Dollar",decimals:2,symbolFirst:!0},{code:"SGD",numeric:702,symbol:"S$",name:"Singapore Dollar",decimals:2,symbolFirst:!0},{code:"PLN",numeric:985,symbol:"zł",name:"Polish Złoty",decimals:2},{code:"CZK",numeric:203,symbol:"Kč",name:"Czech Koruna",decimals:2},{code:"HUF",numeric:348,symbol:"Ft",name:"Hungarian Forint",decimals:2},{code:"RON",numeric:946,symbol:"lei",name:"Romanian Leu",decimals:2},{code:"BGN",numeric:975,symbol:"лв",name:"Bulgarian Lev",decimals:2},{code:"HRK",numeric:191,symbol:"kn",name:"Croatian Kuna",decimals:2},{code:"DKK",numeric:208,symbol:"kr",name:"Danish Krone",decimals:2},{code:"SEK",numeric:752,symbol:"kr",name:"Swedish Krona",decimals:2},{code:"NOK",numeric:578,symbol:"kr",name:"Norwegian Krone",decimals:2},{code:"ISK",numeric:352,symbol:"kr",name:"Icelandic Króna",decimals:0},{code:"RUB",numeric:643,symbol:"₽",name:"Russian Ruble",decimals:2},{code:"UAH",numeric:980,symbol:"₴",name:"Ukrainian Hryvnia",decimals:2},{code:"TRY",numeric:949,symbol:"₺",name:"Turkish Lira",decimals:2,symbolFirst:!0},{code:"MXN",numeric:484,symbol:"Mex$",name:"Mexican Peso",decimals:2,symbolFirst:!0},{code:"BRL",numeric:986,symbol:"R$",name:"Brazilian Real",decimals:2,symbolFirst:!0},{code:"ARS",numeric:32,symbol:"AR$",name:"Argentine Peso",decimals:2,symbolFirst:!0},{code:"CLP",numeric:152,symbol:"CL$",name:"Chilean Peso",decimals:0,symbolFirst:!0},{code:"COP",numeric:170,symbol:"CO$",name:"Colombian Peso",decimals:2,symbolFirst:!0},{code:"PEN",numeric:604,symbol:"S/",name:"Peruvian Sol",decimals:2,symbolFirst:!0},{code:"UYU",numeric:858,symbol:"$U",name:"Uruguayan Peso",decimals:2,symbolFirst:!0},{code:"INR",numeric:356,symbol:"₹",name:"Indian Rupee",decimals:2,symbolFirst:!0},{code:"IDR",numeric:360,symbol:"Rp",name:"Indonesian Rupiah",decimals:2,symbolFirst:!0},{code:"KRW",numeric:410,symbol:"₩",name:"South Korean Won",decimals:0,symbolFirst:!0},{code:"MYR",numeric:458,symbol:"RM",name:"Malaysian Ringgit",decimals:2,symbolFirst:!0},{code:"PHP",numeric:608,symbol:"₱",name:"Philippine Peso",decimals:2,symbolFirst:!0},{code:"THB",numeric:764,symbol:"฿",name:"Thai Baht",decimals:2,symbolFirst:!0},{code:"VND",numeric:704,symbol:"₫",name:"Vietnamese Đồng",decimals:0},{code:"TWD",numeric:901,symbol:"NT$",name:"New Taiwan Dollar",decimals:2,symbolFirst:!0},{code:"PKR",numeric:586,symbol:"₨",name:"Pakistani Rupee",decimals:2},{code:"BDT",numeric:50,symbol:"৳",name:"Bangladeshi Taka",decimals:2},{code:"LKR",numeric:144,symbol:"Rs",name:"Sri Lankan Rupee",decimals:2},{code:"AED",numeric:784,symbol:"د.إ",name:"UAE Dirham",decimals:2},{code:"SAR",numeric:682,symbol:"ر.س",name:"Saudi Riyal",decimals:2},{code:"QAR",numeric:634,symbol:"ر.ق",name:"Qatari Riyal",decimals:2},{code:"KWD",numeric:414,symbol:"د.ك",name:"Kuwaiti Dinar",decimals:3},{code:"BHD",numeric:48,symbol:".د.ب",name:"Bahraini Dinar",decimals:3},{code:"OMR",numeric:512,symbol:"ر.ع",name:"Omani Rial",decimals:3},{code:"JOD",numeric:400,symbol:"د.أ",name:"Jordanian Dinar",decimals:3},{code:"ILS",numeric:376,symbol:"₪",name:"Israeli New Shekel",decimals:2,symbolFirst:!0},{code:"EGP",numeric:818,symbol:"E£",name:"Egyptian Pound",decimals:2,symbolFirst:!0},{code:"ZAR",numeric:710,symbol:"R",name:"South African Rand",decimals:2,symbolFirst:!0},{code:"NGN",numeric:566,symbol:"₦",name:"Nigerian Naira",decimals:2,symbolFirst:!0},{code:"KES",numeric:404,symbol:"KSh",name:"Kenyan Shilling",decimals:2},{code:"GHS",numeric:936,symbol:"₵",name:"Ghanaian Cedi",decimals:2},{code:"MAD",numeric:504,symbol:"د.م.",name:"Moroccan Dirham",decimals:2},{code:"TND",numeric:788,symbol:"د.ت",name:"Tunisian Dinar",decimals:3},{code:"BTC",numeric:0,symbol:"₿",name:"Bitcoin",decimals:8,symbolFirst:!0},{code:"ETH",numeric:0,symbol:"Ξ",name:"Ether",decimals:8,symbolFirst:!0},{code:"USDC",numeric:0,symbol:"USDC",name:"USD Coin",decimals:6},{code:"USDT",numeric:0,symbol:"USDT",name:"Tether",decimals:6}],ze=new Map(me.map(t=>[t.code,t]));function W(t){return ze.get(t.toUpperCase())}function St(t){ze.set(t.code.toUpperCase(),t);const e=me.findIndex(r=>r.code===t.code);e>=0?me[e]=t:me.push(t)}function ee(t,e){const r=W(e),a=(r==null?void 0:r.decimals)??2,c=Math.pow(10,a);return{amount:(t<0?-1:1)*Math.round(Math.abs(t)*c),currency:e.toUpperCase()}}function De(t){const e=W(t.currency),r=(e==null?void 0:e.decimals)??2;return t.amount/Math.pow(10,r)}function Dt(t,e){return t.currency.toUpperCase()===e.currency.toUpperCase()}function Ie(t,e,r){if(!Dt(t,e))throw new Error(`Cannot ${r} different currencies: ${t.currency} vs ${e.currency}`)}function le(t,e){return Ie(t,e,"add"),{amount:t.amount+e.amount,currency:t.currency}}function He(t,e){return Ie(t,e,"subtract"),{amount:t.amount-e.amount,currency:t.currency}}function Ne(t,e){return{amount:(t.amount*e<0?-1:1)*Math.round(Math.abs(t.amount*e)),currency:t.currency}}function It(t,e){return Ie(t,e,"compare"),t.amount-e.amount}function Rt(t){return t.amount===0}function At(t){return t.amount<0}function $t(t){return{amount:-t.amount,currency:t.currency}}function ne(t,e={}){const r=W(t.currency),a=e.decimals??(r==null?void 0:r.decimals)??2,c=t.amount/Math.pow(10,a);try{return new Intl.NumberFormat(e.locale,{style:"currency",currency:t.currency,minimumFractionDigits:a,maximumFractionDigits:a,currencyDisplay:e.currencyDisplay??"symbol"}).format(c)}catch{const i=(r==null?void 0:r.symbol)??t.currency,u=c.toFixed(a);return r!=null&&r.symbolFirst?`${i}${u}`:`${u} ${i}`}}function Ye(t,e){if(!t)return null;let r=t.replace(/[^\d.,-]/g,"").trim();if(!r||r==="-")return null;const a=r.startsWith("-");a&&(r=r.slice(1));const c=r.lastIndexOf("."),i=r.lastIndexOf(","),u=Math.max(c,i);let s,l="";u===-1?s=r:(s=r.slice(0,u).replace(/[.,]/g,""),l=r.slice(u+1).replace(/[.,]/g,""));const d=`${s}.${l||"0"}`,y=parseFloat(d);return Number.isFinite(y)?ee(a?-y:y,e):null}function be(t){const e=(t||"").replace(/\D/g,"");return e?/^4/.test(e)?"visa":/^(5[1-5]|2(2[2-9]|[3-6]\d|7[01]|720))/.test(e)?"mastercard":/^3[47]/.test(e)?"amex":/^(6011|65|64[4-9]|622(12[6-9]|1[3-9]\d|[2-8]\d\d|9[01]\d|92[0-5]))/.test(e)?"discover":/^3(0[0-5]|[68])/.test(e)?"diners":/^35(2[89]|[3-8])/.test(e)?"jcb":/^62/.test(e)?"unionpay":/^(50|5[6-9]|6[0-9])/.test(e)?"maestro":/^(2200|2201|2202|2203|2204)/.test(e)?"mir":/^(4011|4312|4389|4514|4576|5041|5066|5067|509|6277|6362|6363|650|6516|6550)/.test(e)?"elo":/^(606282|3841)/.test(e)?"hipercard":"unknown":"unknown"}function Re(t){const e=(t||"").replace(/\D/g,"");if(e.length<12||e.length>19)return!1;let r=0,a=!1;for(let c=e.length-1;c>=0;c--){let i=e.charCodeAt(c)-48;a&&(i*=2,i>9&&(i-=9)),r+=i,a=!a}return r%10===0}function Ge(t,e){const r=(t||"").replace(/\D/g,""),a=e??be(r);return a==="amex"?[r.slice(0,4),r.slice(4,10),r.slice(10,15)].filter(Boolean).join(" "):a==="diners"?[r.slice(0,4),r.slice(4,10),r.slice(10,14)].filter(Boolean).join(" "):(r.match(/.{1,4}/g)??[]).join(" ").trim()}function Et(t,e){const r=(t||"").replace(/\D/g,"");if(r.length<4)return r;const a=r.slice(-4),c="*".repeat(r.length-4)+a,i=e??be(r);return i==="amex"?[c.slice(0,4),c.slice(4,10),c.slice(10,15)].filter(Boolean).join(" "):i==="diners"?[c.slice(0,4),c.slice(4,10),c.slice(10,14)].filter(Boolean).join(" "):(c.match(/.{1,4}/g)??[]).join(" ").trim()}function Ae(t){const e=(t||"").replace(/\D/g,"");if(e.length<3)return null;const r=e.slice(0,2),a=e.length>=4?e.slice(-2):e.slice(2,4),c=parseInt(r,10);return!Number.isFinite(c)||c<1||c>12?null:`${r}/${a}`}function $e(t,e=new Date){const r=Ae(t);if(!r)return!1;const[a,c]=r.split("/"),i=parseInt(a,10),u=2e3+parseInt(c,10);return new Date(u,i,0,23,59,59,999).getTime()>=e.getTime()}function ue(t){return t==="amex"?4:3}function Pe(t,e={}){var d;const r={},a=be(t.number),c=Re(t.number);c||(r.number="Invalid card number");const i=$e(t.expiry,e.now);i||(r.expiry="Invalid or expired");const s=(t.cvc||"").replace(/\D/g,"").length===ue(a);s||(r.cvc=`CVC must be ${ue(a)} digits`);const l=!e.requireHolder||(((d=t.holderName)==null?void 0:d.trim().length)??0)>=2;return l||(r.holderName="Cardholder name required"),{brand:a,numberValid:c,expiryValid:i,cvcValid:s,holderValid:l,isValid:c&&i&&s&&l,errors:r}}class Ut{constructor(e){Y(this,"id","static");this.rates=e}async getRate(e,r){const a=e.toUpperCase(),c=r.toUpperCase();if(a===c)return{base:a,quote:c,rate:1,asOf:new Date().toISOString()};const i=this.rates.find(d=>d.base===a&&d.quote===c);if(i)return i;const u=this.rates.find(d=>d.base===c&&d.quote===a);if(u)return{base:a,quote:c,rate:1/u.rate,asOf:u.asOf};const s=this.rates.find(d=>d.base===a&&d.quote==="USD")??this.rates.find(d=>d.base==="USD"&&d.quote===a),l=this.rates.find(d=>d.base==="USD"&&d.quote===c)??this.rates.find(d=>d.base===c&&d.quote==="USD");if(s&&l){const d=s.base==="USD"?1/s.rate:s.rate,y=l.base==="USD"?l.rate:1/l.rate;return{base:a,quote:c,rate:d*y,asOf:new Date().toISOString()}}throw new Error(`No FX rate for ${a}/${c}`)}}class ke{constructor(e={}){Y(this,"cache",new Map);Y(this,"fetchImpl");Y(this,"ttl");this.fetchImpl=e.fetchImpl??fetch,this.ttl=e.cacheTtl??6e4}cacheKey(e,r){return`${this.id}:${e.toUpperCase()}/${r.toUpperCase()}`}getCached(e,r){const a=this.cacheKey(e,r),c=this.cache.get(a);return c&&c.expires>Date.now()?c.rate:(c&&this.cache.delete(a),null)}setCached(e){this.cache.set(this.cacheKey(e.base,e.quote),{expires:Date.now()+this.ttl,rate:e})}}class Ze extends ke{constructor(r={}){super(r);Y(this,"id","frankfurter")}async getRate(r,a){const c=r.toUpperCase(),i=a.toUpperCase();if(c===i)return{base:c,quote:i,rate:1,asOf:new Date().toISOString()};const u=this.getCached(c,i);if(u)return u;const s=`https://api.frankfurter.app/latest?from=${c}&to=${i}`,l=await this.fetchImpl(s);if(!l.ok)throw new Error(`Frankfurter HTTP ${l.status}`);const d=await l.json(),y=d.rates[i];if(y==null)throw new Error(`Frankfurter: no rate for ${c}/${i}`);const v={base:c,quote:i,rate:y,asOf:d.date};return this.setCached(v),v}}class Je extends ke{constructor(r,a={}){super(a);Y(this,"id","openexchangerates");this.appId=r}async getRate(r,a){const c=r.toUpperCase(),i=a.toUpperCase();if(c===i)return{base:c,quote:i,rate:1,asOf:new Date().toISOString()};const u=this.getCached(c,i);if(u)return u;const s=`https://openexchangerates.org/api/latest.json?app_id=${this.appId}`,l=await this.fetchImpl(s);if(!l.ok)throw new Error(`OpenExchangeRates HTTP ${l.status}`);const d=await l.json(),y=d.rates[c],v=d.rates[i];if(y==null||v==null)throw new Error(`OpenExchangeRates: missing rate for ${c} or ${i}`);const f={base:c,quote:i,rate:v/y,asOf:new Date(d.timestamp*1e3).toISOString()};return this.setCached(f),f}}class Ve extends ke{constructor(r={}){super(r);Y(this,"id","exchangerate.host")}async getRate(r,a){var f;const c=r.toUpperCase(),i=a.toUpperCase();if(c===i)return{base:c,quote:i,rate:1,asOf:new Date().toISOString()};const u=this.getCached(c,i);if(u)return u;const s=`https://api.exchangerate.host/convert?from=${c}&to=${i}`,l=await this.fetchImpl(s);if(!l.ok)throw new Error(`exchangerate.host HTTP ${l.status}`);const d=await l.json(),y=((f=d.info)==null?void 0:f.rate)??d.result,v={base:c,quote:i,rate:y,asOf:d.date};return this.setCached(v),v}}class Xe extends ke{constructor(r={}){super(r);Y(this,"id","nbp");Y(this,"table");this.table=r.table??"A"}async getRate(r,a){const c=r.toUpperCase(),i=a.toUpperCase();if(c===i)return{base:c,quote:i,rate:1,asOf:new Date().toISOString()};const u=this.getCached(c,i);if(u)return u;const s=async v=>{var _;if(v==="PLN")return{rate:1,date:new Date().toISOString().slice(0,10)};const f=`https://api.nbp.pl/api/exchangerates/rates/${this.table}/${v}/?format=json`,m=await this.fetchImpl(f);if(!m.ok)return null;const b=(_=(await m.json()).rates)==null?void 0:_[0];return b?{rate:b.mid??b.ask??0,date:b.effectiveDate}:null},l=await s(c),d=await s(i);if(!l||!d||l.rate===0)throw new Error(`NBP: missing rate for ${c} or ${i}`);const y={base:c,quote:i,rate:l.rate/d.rate,asOf:l.date};return this.setCached(y),y}}class Qe extends Ze{constructor(){super(...arguments);Y(this,"id","ecb")}}class We extends Ve{constructor(){super(...arguments);Y(this,"id","free-forex")}}const Tt=(t={})=>new Xe(t),Ft=(t={})=>new Qe(t),Ot=t=>new Je(t.apiKey,t),qt=(t={})=>new We(t);async function et(t,e,r){const a=e.toUpperCase();if(t.currency.toUpperCase()===a)return t;const c=W(t.currency),i=W(a),u=(c==null?void 0:c.decimals)??2,s=(i==null?void 0:i.decimals)??2,{rate:l}=await r.getRate(t.currency,a),y=t.amount/Math.pow(10,u)*l;return{currency:a,amount:Math.round(y*Math.pow(10,s))}}class tt{constructor(e={}){Y(this,"id");Y(this,"name");Y(this,"supportedCurrencies");Y(this,"minimums");Y(this,"counter",0);this.id=e.id??"mock",this.name=e.name??"Mock Processor",this.supportedCurrencies=e.supportedCurrencies??"*"}newId(e){return this.counter+=1,`${e}_${Date.now().toString(36)}_${this.counter}`}async authorize(e){return{id:this.newId("auth"),status:"authorized",processor:this.id,amount:e.amount,raw:{mock:!0,request:e}}}async capture(e,r){return{id:e.replace("auth_","cap_"),status:"captured",processor:this.id,amount:r}}async cancel(e){return{id:e,status:"cancelled",processor:this.id}}async refund(e,r){return{id:e.replace(/^[a-z]+_/,"ref_"),status:"refunded",processor:this.id,amount:r}}}function Q(t,e,r,a,c){const i=u=>{const s=a==null?void 0:a[u];return s||(async()=>{throw new Error(`[ui-money] ${e} adapter is not wired. Pass an \`executor.${String(u)}\` implementation that calls the ${e} SDK.`)})};return{id:t,name:e,supportedCurrencies:r,minimums:c,authorize:i("authorize"),capture:i("capture"),cancel:i("cancel"),refund:i("refund")}}function rt(t){return Q("stripe","Stripe","*",t,{USD:50,EUR:50,GBP:30,JPY:50,AUD:50,CAD:50,CHF:50,DKK:250,NOK:300,SEK:300,PLN:200})}function nt(t){return Q("paypal","PayPal",["USD","EUR","GBP","AUD","CAD","JPY","CHF","NZD","SEK","NOK","DKK","PLN","CZK","HUF","BRL","MXN","HKD","SGD","TWD","THB","PHP","ILS"],t)}function at(t){return Q("adyen","Adyen","*",t)}function ct(t){return Q("square","Square",["USD","CAD","GBP","AUD","JPY","EUR"],t)}function st(t){return Q("mollie","Mollie","*",t)}function it(t){return Q("braintree","Braintree","*",t)}function ot(t){return Q("razorpay","Razorpay",["INR","USD","EUR","GBP","AED"],t)}function lt(t){return Q("payu","PayU",["PLN","EUR","USD","CZK","HUF","RON","BGN","TRY"],t)}function dt(t){return Q("przelewy24","Przelewy24",["PLN","EUR"],t)}function ut(t={}){return Q("tpay","Tpay",["PLN","EUR","USD","GBP"],t)}function mt(t={}){return Q("autopay","Autopay",["PLN","EUR","USD","GBP","CZK"],t)}function pt(t={}){const{acquirer:e="native",...r}=t;return Q(`blik:${e}`,`BLIK (${e})`,["PLN"],r)}function yt(t){return Q("klarna","Klarna",["USD","EUR","GBP","SEK","NOK","DKK","CHF","AUD","CAD","NZD","PLN"],t)}function ht(t){return Q("coinbase-commerce","Coinbase Commerce",["BTC","ETH","USDC","USDT","USD","EUR"],t)}const ft={mock:()=>new tt,stripe:()=>rt(),paypal:()=>nt(),adyen:()=>at(),square:()=>ct(),mollie:()=>st(),braintree:()=>it(),razorpay:()=>ot(),payu:()=>lt(),przelewy24:()=>dt(),tpay:()=>ut(),autopay:()=>mt(),blik:()=>pt(),klarna:()=>yt(),"coinbase-commerce":()=>ht()};function Kt(t){const e=ft[t];return e?e().supportedCurrencies:"*"}function Bt(t){return`/api/payments/${t}/webhook`}const Lt=[{id:"stripe",name:"Stripe",type:"card",credentials:[{key:"apiKey",label:"Secret API key",secret:!0,required:!0,help:"sk_live_… / sk_test_…"},{key:"publishableKey",label:"Publishable key",required:!0,help:"pk_live_… / pk_test_…"},{key:"webhookSecret",label:"Webhook signing secret",secret:!0,help:"whsec_…"}],supportedMethods:["card","applepay","googlepay","link"],allowedDomains:["api.stripe.com"],hasTestMode:!0},{id:"paypal",name:"PayPal",type:"wallet",credentials:[{key:"clientId",label:"Client ID",required:!0},{key:"clientSecret",label:"Client secret",secret:!0,required:!0},{key:"webhookId",label:"Webhook ID"}],supportedMethods:["paypal","card","paylater"],allowedDomains:["api-m.paypal.com","api-m.sandbox.paypal.com"],hasTestMode:!0},{id:"adyen",name:"Adyen",type:"aggregator",credentials:[{key:"apiKey",label:"API key",secret:!0,required:!0},{key:"merchantAccount",label:"Merchant account",required:!0},{key:"hmacKey",label:"HMAC key (webhooks)",secret:!0},{key:"clientKey",label:"Client key"}],supportedMethods:["card","ideal","bancontact","applepay","googlepay"],allowedDomains:["checkout-test.adyen.com","checkout-live.adyen.com"],hasTestMode:!0},{id:"square",name:"Square",type:"card",credentials:[{key:"accessToken",label:"Access token",secret:!0,required:!0},{key:"applicationId",label:"Application ID",required:!0},{key:"locationId",label:"Location ID",required:!0}],supportedMethods:["card","applepay","googlepay"],allowedDomains:["connect.squareup.com","connect.squareupsandbox.com"],hasTestMode:!0},{id:"mollie",name:"Mollie",type:"aggregator",credentials:[{key:"apiKey",label:"API key",secret:!0,required:!0,help:"live_… / test_…"}],supportedMethods:["card","ideal","bancontact","blik","applepay"],allowedDomains:["api.mollie.com"],hasTestMode:!0},{id:"braintree",name:"Braintree",type:"card",credentials:[{key:"merchantId",label:"Merchant ID",required:!0},{key:"publicKey",label:"Public key",required:!0},{key:"privateKey",label:"Private key",secret:!0,required:!0}],supportedMethods:["card","paypal","applepay","googlepay"],allowedDomains:["api.braintreegateway.com","api.sandbox.braintreegateway.com"],hasTestMode:!0},{id:"razorpay",name:"Razorpay",type:"aggregator",credentials:[{key:"keyId",label:"Key ID",required:!0},{key:"keySecret",label:"Key secret",secret:!0,required:!0},{key:"webhookSecret",label:"Webhook secret",secret:!0}],supportedMethods:["card","upi","netbanking","wallet"],allowedDomains:["api.razorpay.com"],hasTestMode:!0},{id:"payu",name:"PayU",type:"aggregator",credentials:[{key:"posId",label:"POS ID",required:!0},{key:"clientId",label:"OAuth client ID",required:!0},{key:"clientSecret",label:"OAuth client secret",secret:!0,required:!0},{key:"secondKey",label:"Second key (MD5)",secret:!0}],supportedMethods:["card","blik","transfer","googlepay"],allowedDomains:["secure.payu.com","secure.snd.payu.com"],hasTestMode:!0},{id:"przelewy24",name:"Przelewy24",type:"bank",credentials:[{key:"merchantId",label:"Merchant ID",required:!0},{key:"posId",label:"POS ID",required:!0},{key:"crcKey",label:"CRC key",secret:!0,required:!0},{key:"apiKey",label:"API key",secret:!0,required:!0}],supportedMethods:["transfer","blik","card"],allowedDomains:["secure.przelewy24.pl","sandbox.przelewy24.pl"],hasTestMode:!0},{id:"tpay",name:"Tpay",type:"aggregator",credentials:[{key:"merchantId",label:"Merchant ID",required:!0},{key:"apiKey",label:"API key",secret:!0,required:!0},{key:"apiPassword",label:"API password",secret:!0,required:!0}],supportedMethods:["card","blik","transfer","applepay"],allowedDomains:["api.tpay.com","secure.tpay.com"],hasTestMode:!0},{id:"autopay",name:"Autopay",type:"aggregator",credentials:[{key:"serviceId",label:"Service ID",required:!0},{key:"sharedSecret",label:"Shared secret",secret:!0,required:!0}],supportedMethods:["card","blik","transfer"],allowedDomains:["pay.autopay.eu","testpay.autopay.eu"],hasTestMode:!0},{id:"blik",name:"BLIK",type:"bank",credentials:[{key:"acquirer",label:"Acquirer (p24 / tpay / payu / native)",required:!0,help:"Underlying acquirer routing BLIK."}],supportedMethods:["blik"],hasTestMode:!0},{id:"klarna",name:"Klarna",type:"bnpl",credentials:[{key:"username",label:"API username (UID)",required:!0},{key:"password",label:"API password",secret:!0,required:!0},{key:"region",label:"Region (eu / na / oc)",help:"Selects the Klarna API host."}],supportedMethods:["paylater","installments","paynow"],allowedDomains:["api.klarna.com","api.playground.klarna.com"],hasTestMode:!0},{id:"coinbase-commerce",name:"Coinbase Commerce",type:"crypto",credentials:[{key:"apiKey",label:"API key",secret:!0,required:!0},{key:"webhookSharedSecret",label:"Webhook shared secret",secret:!0}],supportedMethods:["crypto"],allowedDomains:["api.commerce.coinbase.com"],hasTestMode:!1},{id:"wallet",name:"In-app Wallet",type:"wallet",currencyKey:"mock",credentials:[{key:"ledgerAccount",label:"Ledger account",required:!0,help:"Account the wallet debits/credits."}],supportedMethods:["wallet"],hasTestMode:!0}],fe=Object.fromEntries(Lt.map(t=>{const{currencyKey:e,...r}=t,a={...r,supportedCurrencies:Kt(e??t.id),webhookPath:Bt(t.id)};return[t.id,a]})),bt=Object.values(fe);function zt(t){return fe[t]}function Ht(t,e){const r=o.useMemo(()=>"amount"in t?t:ee(t.major,t.currency),[]),[a,c]=o.useState(r),i=o.useCallback(f=>c(m=>ee(f,m.currency)),[]),u=o.useCallback(f=>{c(m=>({...m,currency:f.toUpperCase()}))},[]),s=o.useCallback(f=>c(m=>le(m,f)),[]),l=o.useCallback(f=>c(m=>He(m,f)),[]),d=o.useCallback(f=>c(m=>Ne(m,f)),[]),y=o.useMemo(()=>ne(a,{locale:e}),[a,e]),v=o.useMemo(()=>De(a),[a]);return{money:a,setMoney:c,setMajor:i,setCurrency:u,add:s,subtract:l,scale:d,formatted:y,major:v}}function Ce(t,e,r){const[a,c]=o.useState(null),[i,u]=o.useState(null),[s,l]=o.useState(!1),d=o.useRef(0),y=t==null?void 0:t.amount,v=t==null?void 0:t.currency;return o.useEffect(()=>{if(y===void 0||v===void 0){c(null);return}const f=++d.current;l(!0),u(null),et({amount:y,currency:v},e,r).then(m=>{d.current===f&&c(m)}).catch(m=>{d.current===f&&(u(m instanceof Error?m:new Error(String(m))),c(null))}).finally(()=>{d.current===f&&l(!1)})},[y,v,e,r]),{converted:a,loading:s,error:i}}function _t(t){const[e,r]=o.useState("idle"),[a,c]=o.useState(null),[i,u]=o.useState(null),s=o.useCallback(()=>{r("idle"),c(null),u(null)},[]),l=o.useCallback(async f=>{r("authorizing"),u(null);try{const m=await t.authorize(f);return c(m),r(m.status),m}catch(m){const g=m instanceof Error?m:new Error(String(m));throw u(g),r("failed"),g}},[t]),d=o.useCallback(async(f,m)=>{const g=f??(a==null?void 0:a.id);if(!g)throw new Error("No authorization id to capture");r("capturing");try{const b=await t.capture(g,m);return c(b),r(b.status),b}catch(b){const _=b instanceof Error?b:new Error(String(b));throw u(_),r("failed"),_}},[t,a==null?void 0:a.id]),y=o.useCallback(async f=>{const m=f??(a==null?void 0:a.id);if(!m)throw new Error("No payment id to cancel");const g=await t.cancel(m);return c(g),r(g.status),g},[t,a==null?void 0:a.id]),v=o.useCallback(async(f,m)=>{const g=f??(a==null?void 0:a.id);if(!g)throw new Error("No payment id to refund");const b=await t.refund(g,m);return c(b),r(b.status),b},[t,a==null?void 0:a.id]);return{status:e,response:a,error:i,authorize:l,capture:d,cancel:y,refund:v,reset:s}}const Se=o.forwardRef(function({value:e,amount:r,currency:a,locale:c,display:i="symbol",highlightNegative:u=!0,zeroPlaceholder:s,convertTo:l,exchangeProvider:d,className:y,style:v,"aria-label":f,testId:m,"data-testid":g},b){const{t:_}=L.useNiceTranslation(),M=o.useMemo(()=>{if(e)return e;if(r!=null&&a){const P=W(a),N=(P==null?void 0:P.decimals)??2;return{amount:Math.round(r*Math.pow(10,N)),currency:a.toUpperCase()}}return null},[e,r,a]),w=o.useMemo(()=>M?M.amount===0&&s!=null?s:ne(M,{locale:c,currencyDisplay:i}):"",[M,c,i,s]),{converted:x}=Ce(l&&d?M:null,l??"",d);if(!M)return null;const h=M.amount<0,I="nice-money"+(u&&h?" nice-money--negative":"")+(y?` ${y}`:"");return n.jsxs("span",{ref:b,className:I,style:v,"aria-label":f,"data-testid":g??m,children:[n.jsx("span",{className:"nice-money__value",children:w}),x&&n.jsxs("span",{className:"nice-money__converted","aria-label":_("money.convertedTo","Converted to {currency}").replace("{currency}",String(x.currency)),children:[" ≈ ",ne(x,{locale:c})]})]})}),Yt=me.map(t=>t.code).sort(),Ee=o.forwardRef(function({value:e,onChange:r,options:a=me,recents:c=[],searchable:i,showCode:u=!0,showSymbol:s=!0,compact:l=!1,disabled:d,readOnly:y,loading:v,accessMode:f,label:m,helperText:g,error:b,required:_,size:M="md",labelPlacement:w="top",labelWidth:x,controlWidth:h,className:I,style:P,id:N,name:S,title:T,"data-testid":R,"aria-label":Z,placeholder:$},D){const{t:U}=L.useNiceTranslation(),q=f==="hidden",V=d||f==="disabled"||v,te=y||f==="readOnly",H=o.useId(),J=N??`nice-cs-${H}`,[X,re]=o.useState(""),F=i??a.length>8,k=o.useMemo(()=>{if(!X.trim())return a;const A=X.trim().toLowerCase();return a.filter(E=>E.code.toLowerCase().includes(A)||E.name.toLowerCase().includes(A)||E.symbol.toLowerCase().includes(A))},[a,X]),p=o.useMemo(()=>{const A=new Set;return c.map(E=>W(E)).filter(E=>!!E&&!A.has(E.code)&&!!A.add(E.code))},[c]),O=o.useCallback(A=>{const E=A.target.value,se=W(E);se&&(r==null||r(E,se))},[r]),K=A=>{if(l)return`${s?A.symbol+" ":""}${A.code}`;const E=[];return s&&E.push(A.symbol),u&&E.push(A.code),E.push("—",A.name),E.join(" ")},j=`nice-currency-selector nice-currency-selector--${M} nice-currency-selector--label-${w}`+(l?" nice-currency-selector--compact":"")+(b?" nice-currency-selector--error":"")+(V?" nice-currency-selector--disabled":"")+(I?` ${I}`:""),B=w==="left"&&x!=null?{width:typeof x=="number"?`${x}px`:x,flex:"none"}:void 0,ce=h!=null?{width:typeof h=="number"?`${h}px`:h,flex:"none"}:void 0;return q?null:n.jsxs("div",{ref:D,className:j,style:P,title:T,"data-testid":R,children:[m&&n.jsxs("label",{htmlFor:J,className:"nice-currency-selector__label",style:B,children:[m,_&&n.jsx("span",{className:"nice-currency-selector__required","aria-hidden":!0,children:"*"})]}),n.jsxs("div",{className:"nice-currency-selector__inner",style:ce,children:[F&&n.jsx("input",{type:"search",className:"nice-currency-selector__search",placeholder:U("currencySelector.searchCurrency","Search currency…"),value:X,onChange:A=>re(A.target.value),disabled:V||te,"aria-label":U("currencySelector.searchCurrency2","Search currency")}),n.jsxs("select",{id:J,name:S,className:"nice-currency-selector__select",value:e??"",onChange:O,disabled:V||te,required:_,"aria-invalid":!!b,"aria-label":Z??(typeof m=="string"?m:U("currencySelector.currency","Currency")),children:[!e&&n.jsx("option",{value:"",children:$??U("currencySelector.selectCurrency","Select currency…")}),p.length>0&&n.jsx("optgroup",{label:U("currencySelector.recent","Recent"),children:p.map(A=>n.jsx("option",{value:A.code,children:K(A)},`r-${A.code}`))}),n.jsx("optgroup",{label:p.length>0?U("currencySelector.all","All"):"",children:k.map(A=>n.jsx("option",{value:A.code,children:K(A)},A.code))})]})]}),(b||g)&&n.jsx("span",{className:b?"nice-currency-selector__error":"nice-currency-selector__helper",children:b??g})]})}),Ue=o.forwardRef(function({value:e,onChange:r,currency:a,onCurrencyChange:c,currencies:i,hideCurrencySelector:u,min:s,max:l,step:d,locale:y,placeholder:v,label:f,helperText:m,error:g,size:b="md",disabled:_,readOnly:M,required:w,loading:x,accessMode:h,labelPlacement:I="top",errorPlacement:P="bottom",labelWidth:N,controlWidth:S,submitOnEnter:T,onSubmit:R,showFormattedPreview:Z=!0,showSteppers:$=!1,className:D,style:U,id:q,name:V,title:te,"data-testid":H,onBlur:J,onFocus:X,liveGrouping:re,multiplierShortcuts:F=!0,onValidationError:k},p){const{t:O}=L.useNiceTranslation(),K=_||h==="disabled"||x,j=M||h==="readOnly",B=h==="hidden",ce=o.useId(),A=q??`nice-money-${ce}`,E=((e==null?void 0:e.currency)??a??"USD").toUpperCase(),se=W(E),G=(se==null?void 0:se.decimals)??2,we=d??1/Math.pow(10,G),[_e,pe]=o.useState(()=>e?(e.amount/Math.pow(10,G)).toFixed(G):""),[ge,Te]=o.useState(!1);o.useEffect(()=>{if(ge)return;if(e==null){pe("");return}const C=W(e.currency),z=(C==null?void 0:C.decimals)??2;pe((e.amount/Math.pow(10,z)).toFixed(z))},[e,ge]);const Fe=o.useCallback(C=>{let z=C;if(F){const ie=C.trim().match(/^([+-]?\d+(?:[.,]\d+)?)\s*([kKmMbB])$/);if(ie){const oe=ie[2].toLowerCase()==="k"?1e3:ie[2].toLowerCase()==="m"?1e6:1e9,Ke=Number(ie[1].replace(",","."))*oe;if(!Number.isFinite(Ke)){k==null||k(new Error("overflow"));return}z=String(Ke)}}const ae=Ye(z,E);if(!ae){r==null||r(null);return}if(!Number.isSafeInteger(ae.amount)){k==null||k(new Error("overflow: amount exceeds Number.MAX_SAFE_INTEGER"));return}const de=ae.amount/Math.pow(10,G);if(s!=null&&de<s){k==null||k(new Error(`min: ${s}`)),r==null||r(ee(s,E));return}if(l!=null&&de>l){k==null||k(new Error(`max: ${l}`)),r==null||r(ee(l,E));return}r==null||r(ae)},[E,G,s,l,r,F,k]),xt=o.useCallback(C=>{const z=C.target.value;pe(z),Fe(z)},[Fe]),xe=o.useCallback(C=>{const z=Math.min(l??1/0,Math.max(s??-1/0,C));pe(z.toFixed(G)),r==null||r(ee(z,E))},[G,s,l,E,r]),je=o.useCallback(C=>xe((e?e.amount/Math.pow(10,G):0)+C),[e,G,xe]),Oe=o.useRef(null),he=o.useRef(null),vt=$&&!K&&!j;L.useEngage(Oe,{kind:$?"value":"text",disabled:K||j,restoreOnCancel:$,onEngage:()=>{he.current={value:e??null,draft:_e}},onRelease:C=>{C&&$&&he.current&&(pe(he.current.draft),r==null||r(he.current.value)),he.current=null}});const ve=o.useMemo(()=>{var C,z;try{const ae=new Intl.NumberFormat(y).formatToParts(12345.6),de=((C=ae.find(oe=>oe.type==="group"))==null?void 0:C.value)??",",ie=((z=ae.find(oe=>oe.type==="decimal"))==null?void 0:z.value)??".";return{group:de,decimal:ie}}catch{return{group:",",decimal:"."}}},[y]),qe=re??!!ve.group,Nt=o.useMemo(()=>{if(!qe||ge===!1)return _e;const C=ve.decimal,z=ve.group,ae=_e.replace(new RegExp(`[${z.replace(/[-/\\^$*+?.()|[\]{}]/g,"\\$&")}]`,"g"),""),[de,ie]=ae.split(C);if(!de)return ae;const oe=de.replace(/\B(?=(\d{3})+(?!\d))/g,z);return ie!=null?`${oe}${C}${ie}`:oe},[_e,ge,qe,ve]),Me=o.useMemo(()=>e?ne(e,{locale:y}):"",[e,y]),ye=typeof g=="string"?g:void 0,Ct=`nice-money-input nice-money-input--${b} nice-money-input--label-${I} nice-money-input--error-${P}`+(ye?" nice-money-input--error":"")+(K?" nice-money-input--disabled":"")+(x?" nice-money-input--loading":"")+(D?` ${D}`:""),kt=C=>{if(T&&C.key==="Enter"&&R){C.preventDefault(),R();return}if(!vt)return;const z=C.key==="ArrowUp"?1:C.key==="ArrowDown"?-1:C.key==="PageUp"?10:C.key==="PageDown"?-10:0;z?(C.preventDefault(),je(z*we)):C.key==="Home"&&s!=null?(C.preventDefault(),xe(s)):C.key==="End"&&l!=null&&(C.preventDefault(),xe(l))},wt=I==="left"&&N!=null?{width:typeof N=="number"?`${N}px`:N,flex:"none"}:void 0,jt=S!=null?{width:typeof S=="number"?`${S}px`:S,flex:"none"}:void 0;return B?null:n.jsxs("div",{ref:p,className:Ct,style:U,title:te,"data-testid":H,children:[f&&n.jsxs("label",{htmlFor:A,className:"nice-money-input__label",style:wt,children:[f,w&&n.jsx("span",{className:"nice-money-input__required","aria-hidden":!0,children:"*"})]}),n.jsxs("div",{className:"nice-money-input__row",style:jt,children:[!u&&n.jsx(Ee,{value:E,compact:!0,options:i?i.map(W).filter(C=>!!C):void 0,onChange:C=>c==null?void 0:c(C),disabled:K||j,className:"nice-money-input__currency","aria-label":O("moneyInput.currency","Currency")}),u&&n.jsx("span",{className:"nice-money-input__symbol","aria-hidden":!0,children:(se==null?void 0:se.symbol)??E}),$&&n.jsx("button",{type:"button",className:"nice-money-input__step nice-money-input__step--down",onClick:()=>je(-we),disabled:K||j||s!=null&&e!=null&&e.amount/Math.pow(10,G)<=s,"aria-label":O("moneyInput.decreaseAmount","Decrease amount"),tabIndex:-1,children:n.jsx(L.NiceIcon,{name:"minus",size:14})}),n.jsx("input",{ref:Oe,id:A,name:V,type:"text",inputMode:"decimal",autoComplete:"transaction-amount",className:"nice-money-input__amount",value:Nt,onChange:xt,onKeyDown:kt,onFocus:C=>{Te(!0),X==null||X(C)},onBlur:C=>{Te(!1),e&&pe((e.amount/Math.pow(10,G)).toFixed(G)),J==null||J(C)},placeholder:v??`0${G>0?"."+"0".repeat(G):""}`,disabled:K,readOnly:j,required:w,"aria-invalid":!!ye,"aria-describedby":ye||m?`${A}-help`:void 0,...$&&{role:"spinbutton","aria-valuenow":e?e.amount/Math.pow(10,G):void 0,"aria-valuemin":s,"aria-valuemax":l,"aria-valuetext":Me||void 0}}),$&&n.jsx("button",{type:"button",className:"nice-money-input__step nice-money-input__step--up",onClick:()=>je(we),disabled:K||j||l!=null&&e!=null&&e.amount/Math.pow(10,G)>=l,"aria-label":O("moneyInput.increaseAmount","Increase amount"),tabIndex:-1,children:n.jsx(L.NiceIcon,{name:"plus",size:14})}),x&&n.jsx("span",{className:"nice-money-input__spinner","aria-hidden":!0,children:n.jsx(L.NiceIcon,{name:"refresh",size:14})})]}),Z&&Me&&n.jsx("span",{className:"nice-money-input__preview","aria-live":"polite",children:Me}),(ye||m)&&n.jsx("span",{id:`${A}-help`,className:ye?"nice-money-input__error":"nice-money-input__helper",children:ye??m})]})}),Gt={number:"",expiry:"",cvc:""},gt=o.forwardRef(function({value:e=Gt,onChange:r,showHolderName:a=!0,requireHolderName:c,showPostalCode:i=!1,acceptedBrands:u,showBrandIcon:s=!0,size:l="md",disabled:d,readOnly:y,loading:v,accessMode:f,label:m,helperText:g,error:b,required:_,className:M,style:w,id:x,title:h,"data-testid":I},P){const{t:N}=L.useNiceTranslation(),S=f==="hidden",T=d||f==="disabled"||v,R=y||f==="readOnly",Z=o.useId(),$=x??`nice-cc-${Z}`,[D,U]=o.useState({number:!1,expiry:!1,cvc:!1,holder:!1,postal:!1}),q=o.useMemo(()=>be(e.number),[e.number]),V=o.useMemo(()=>Pe(e,{requireHolder:c??a}),[e,c,a]),te=!u||u.includes(q)||q==="unknown",H=o.useCallback(j=>{const B={...e,...j},ce=Pe(B,{requireHolder:c??a});r==null||r(B,ce)},[e,c,a,r]),J=o.useCallback(j=>{const B=j.target.value.replace(/\D/g,"").slice(0,19);H({number:B})},[H]),X=o.useCallback(j=>{const B=j.target.value.replace(/\D/g,"").slice(0,4);let ce=B;B.length>=3?ce=`${B.slice(0,2)}/${B.slice(2)}`:B.length===2&&(ce=`${B}/`),H({expiry:ce})},[H]),re=o.useCallback(j=>{const B=j.target.value.replace(/\D/g,"").slice(0,ue(q));H({cvc:B})},[q,H]),F=o.useMemo(()=>Ge(e.number,q),[e.number,q]),k=D.number&&e.number.length>0&&(Re(e.number)?te?void 0:"Card brand not accepted":V.errors.number),p=D.expiry&&e.expiry.length>0&&!$e(e.expiry)?V.errors.expiry:void 0,O=D.cvc&&e.cvc.length>0&&e.cvc.length!==ue(q)?V.errors.cvc:void 0,K=`nice-credit-card nice-credit-card--${l}`+(T?" nice-credit-card--disabled":"")+(v?" nice-credit-card--loading":"")+(b?" nice-credit-card--error":"")+(M?` ${M}`:"");return S?null:n.jsxs("div",{ref:P,className:K,style:w,title:h,"data-testid":I,children:[m&&n.jsxs("div",{className:"nice-credit-card__title",children:[m,_&&n.jsx("span",{className:"nice-credit-card__required","aria-hidden":!0,children:"*"})]}),n.jsx("div",{className:"nice-credit-card__row",children:n.jsxs("label",{className:"nice-credit-card__field nice-credit-card__field--number",children:[n.jsx("span",{className:"nice-credit-card__label",children:N("creditCardInput.cardNumber","Card number")}),n.jsxs("span",{className:"nice-credit-card__input-wrapper",children:[n.jsx("input",{id:`${$}-number`,type:"text",inputMode:"numeric",autoComplete:"cc-number",placeholder:q==="amex"?"3782 822463 10005":"1234 1234 1234 1234",value:F,onChange:J,onBlur:()=>U(j=>({...j,number:!0})),disabled:T,readOnly:R,"aria-invalid":!!k,"aria-describedby":k?`${$}-number-err`:void 0,className:"nice-credit-card__input",maxLength:q==="amex"?17:23}),s&&n.jsx(Zt,{brand:q})]}),k&&n.jsx("span",{id:`${$}-number-err`,className:"nice-credit-card__error",children:k})]})}),n.jsxs("div",{className:"nice-credit-card__row nice-credit-card__row--split",children:[n.jsxs("label",{className:"nice-credit-card__field",children:[n.jsx("span",{className:"nice-credit-card__label",children:N("creditCardInput.expiry","Expiry")}),n.jsx("input",{id:`${$}-expiry`,type:"text",inputMode:"numeric",autoComplete:"cc-exp",placeholder:N("creditCardInput.mmYy","MM/YY"),value:e.expiry,onChange:X,onBlur:()=>{U(B=>({...B,expiry:!0}));const j=Ae(e.expiry);j&&j!==e.expiry&&H({expiry:j})},disabled:T,readOnly:R,"aria-invalid":!!p,"aria-describedby":p?`${$}-expiry-err`:void 0,className:"nice-credit-card__input",maxLength:5}),p&&n.jsx("span",{id:`${$}-expiry-err`,className:"nice-credit-card__error",children:p})]}),n.jsxs("label",{className:"nice-credit-card__field",children:[n.jsx("span",{className:"nice-credit-card__label",children:q==="amex"?N("creditCardInput.cid","CID"):N("creditCardInput.cvc","CVC")}),n.jsx("input",{id:`${$}-cvc`,type:"text",inputMode:"numeric",autoComplete:"cc-csc",placeholder:"•".repeat(ue(q)),value:e.cvc,onChange:re,onBlur:()=>U(j=>({...j,cvc:!0})),disabled:T,readOnly:R,"aria-invalid":!!O,"aria-describedby":O?`${$}-cvc-err`:void 0,className:"nice-credit-card__input",maxLength:ue(q)}),O&&n.jsx("span",{id:`${$}-cvc-err`,className:"nice-credit-card__error",children:O})]})]}),a&&n.jsx("div",{className:"nice-credit-card__row",children:n.jsxs("label",{className:"nice-credit-card__field",children:[n.jsx("span",{className:"nice-credit-card__label",children:N("creditCardInput.cardholderName","Cardholder name")}),n.jsx("input",{id:`${$}-holder`,type:"text",autoComplete:"cc-name",placeholder:N("creditCardInput.janeDoe","Jane Doe"),value:e.holderName??"",onChange:j=>H({holderName:j.target.value}),onBlur:()=>U(j=>({...j,holder:!0})),disabled:T,readOnly:R,className:"nice-credit-card__input",maxLength:120})]})}),i&&n.jsx("div",{className:"nice-credit-card__row",children:n.jsxs("label",{className:"nice-credit-card__field",children:[n.jsx("span",{className:"nice-credit-card__label",children:N("creditCardInput.postalCode","Postal code")}),n.jsx("input",{id:`${$}-postal`,type:"text",autoComplete:"postal-code",value:e.postalCode??"",onChange:j=>H({postalCode:j.target.value}),onBlur:()=>U(j=>({...j,postal:!0})),disabled:T,readOnly:R,className:"nice-credit-card__input",maxLength:16})]})}),(b||g)&&n.jsx("div",{className:b?"nice-credit-card__form-error":"nice-credit-card__helper",role:b?"alert":void 0,children:b??g})]})}),Be={visa:"VISA",mastercard:"MasterCard",amex:"AMEX",discover:"Discover",diners:"Diners",jcb:"JCB",unionpay:"UnionPay",maestro:"Maestro",mir:"MIR",elo:"Elo",hipercard:"Hipercard",unknown:""};function Zt({brand:t}){return t==="unknown"?null:n.jsx("span",{className:`nice-credit-card__brand nice-credit-card__brand--${t}`,"aria-label":Be[t],children:Be[t]})}const Jt=o.forwardRef(function({processor:e,amount:r,editableAmount:a,customer:c,currencies:i,description:u,metadata:s,autoCapture:l=!0,submitLabel:d,onSuccess:y,onError:v,consents:f,className:m,style:g},b){const{t:_}=L.useNiceTranslation(),M=d??_("paymentForm.pay","Pay"),[w,x]=o.useState(r),[h,I]=o.useState(r.currency),[P,N]=o.useState({number:"",expiry:"",cvc:""}),[S,T]=o.useState(null),[R,Z]=o.useState(!1),[$,D]=o.useState(null),U=_t(e),q=o.useMemo(()=>e.supportedCurrencies==="*"?!0:e.supportedCurrencies.includes(w.currency.toUpperCase()),[e,w.currency]),V=o.useMemo(()=>{var k;const F=(k=e.minimums)==null?void 0:k[w.currency.toUpperCase()];return F==null||w.amount>=F},[e,w]),te=o.useMemo(()=>{var k;const F=(k=e.minimums)==null?void 0:k[w.currency.toUpperCase()];return F==null?null:{amount:F,currency:w.currency}},[e,w.currency]),H=!!(S!=null&&S.isValid),J=!R&&q&&V&&H,X=o.useCallback(async F=>{if(F.preventDefault(),!!J){D(null),Z(!0);try{const k={amount:w,card:P,customer:c,description:u,metadata:s,idempotencyKey:Vt()},p=await U.authorize(k);if(l&&p.status==="authorized"){const O=await U.capture(p.id,w);y==null||y(O)}else y==null||y(p)}catch(k){const p=k instanceof Error?k:new Error(String(k));D(p.message),v==null||v(p)}finally{Z(!1)}}},[J,w,P,c,u,s,l,U,y,v]),re=W(w.currency);return n.jsxs("form",{ref:b,className:"nice-payment-form"+(m?` ${m}`:""),style:g,onSubmit:X,"aria-busy":R,children:[n.jsx("div",{className:"nice-payment-form__amount",children:a?n.jsx(Ue,{label:_("paymentForm.amount","Amount"),value:w,currency:h,currencies:i,onChange:F=>F&&x(F),onCurrencyChange:F=>{I(F),x(k=>({...k,currency:F}))},disabled:R,required:!0,showFormattedPreview:!0}):n.jsxs("div",{className:"nice-payment-form__total",children:[n.jsx("span",{className:"nice-payment-form__total-label",children:_("paymentForm.total","Total")}),n.jsx(Se,{value:w})]})}),u&&n.jsx("p",{className:"nice-payment-form__description",children:u}),n.jsx("div",{className:"nice-payment-form__card",children:n.jsx(gt,{value:P,onChange:(F,k)=>{N(F),T(k)},disabled:R})}),!q&&n.jsx("div",{className:"nice-payment-form__warning",role:"alert",children:_("paymentForm.doesNotAccept","{provider} does not accept {currency}.").replace("{provider}",String(e.name)).replace("{currency}",String((re==null?void 0:re.name)??w.currency))}),!V&&te&&n.jsxs("div",{className:"nice-payment-form__warning",role:"alert",children:[_("paymentForm.minimumChargeForIs","Minimum charge for {name} is").replace("{name}",String(e.name))," ",n.jsx(Se,{value:te}),"."]}),f&&n.jsx("div",{className:"nice-payment-form__consents",children:f}),$&&n.jsx("div",{className:"nice-payment-form__error",role:"alert",children:$}),n.jsx("button",{type:"submit",className:"nice-payment-form__submit",disabled:!J,"aria-disabled":!J,children:R?_("paymentForm.processing","Processing…"):M}),n.jsxs("p",{className:"nice-payment-form__processor",children:[_("paymentForm.securedBy","Secured by")," ",n.jsx("strong",{children:e.name})]})]})});function Vt(){return typeof crypto<"u"&&"randomUUID"in crypto?crypto.randomUUID():`idem_${Date.now().toString(36)}_${Math.random().toString(36).slice(2)}`}const Xt=o.forwardRef(function({price:e,originalPrice:r,period:a,prefix:c,suffix:i,showDiscountBadge:u=!0,size:s="md",locale:l,className:d,style:y,testId:v,"data-testid":f},m){const{t:g}=L.useNiceTranslation(),b=r&&r.currency===e.currency&&r.amount>e.amount,_=o.useMemo(()=>!b||!r?null:Math.round((r.amount-e.amount)/r.amount*100),[b,r,e.amount]),M=`nice-price-tag nice-price-tag--${s}`+(d?` ${d}`:"");return n.jsxs("div",{ref:m,className:M,style:y,"data-testid":f??v,children:[c&&n.jsx("span",{className:"nice-price-tag__prefix",children:c}),n.jsxs("span",{className:"nice-price-tag__main",children:[n.jsx("span",{className:"nice-price-tag__amount",children:ne(e,{locale:l})}),a&&n.jsx("span",{className:"nice-price-tag__period",children:a})]}),b&&r&&n.jsx("span",{className:"nice-price-tag__original","aria-label":g("priceTag.originalPrice","Original price"),children:n.jsx("s",{children:ne(r,{locale:l})})}),b&&u&&_!=null&&_>0&&n.jsxs("span",{className:"nice-price-tag__discount","aria-label":g("priceTag.percentOff","{pct} percent off").replace("{pct}",String(_)),children:["−",_,"%"]}),i&&n.jsx("span",{className:"nice-price-tag__suffix",children:i})]})}),Qt={amount:0,currency:"USD"},Wt=o.forwardRef(function({source:e,defaultSource:r,onSourceChange:a,targetCurrency:c,defaultTargetCurrency:i,onTargetCurrencyChange:u,provider:s,locale:l,showRateLine:d=!0,className:y,style:v},f){const{t:m}=L.useNiceTranslation(),[g,b]=L.useControllableState({value:e,defaultValue:r,fallbackValue:Qt,onChange:a,componentName:"NiceCurrencyConverter"}),[_,M]=L.useControllableState({value:c,defaultValue:i,fallbackValue:g.currency,onChange:u,componentName:"NiceCurrencyConverter"}),{converted:w,loading:x,error:h}=Ce(g,_,s),I=o.useMemo(()=>({amount:Math.pow(10,2),currency:g.currency}),[g.currency]),{converted:P}=Ce(d?I:null,_,s);return n.jsxs("div",{ref:f,className:"nice-currency-converter"+(y?` ${y}`:""),style:v,children:[n.jsx("div",{className:"nice-currency-converter__row",children:n.jsx(Ue,{label:m("currencyConverter.from","From"),value:g,onChange:N=>N&&b(N),currency:g.currency,onCurrencyChange:N=>b({...g,currency:N}),showFormattedPreview:!1})}),n.jsxs("div",{className:"nice-currency-converter__row",children:[n.jsx("label",{className:"nice-currency-converter__label",children:m("currencyConverter.to","To")}),n.jsxs("div",{className:"nice-currency-converter__output",children:[n.jsx(Ee,{value:_,onChange:N=>M(N),compact:!0}),n.jsx("span",{className:"nice-currency-converter__amount",children:x?"…":h?"—":w?ne(w,{locale:l}):""})]})]}),d&&P&&n.jsxs("p",{className:"nice-currency-converter__rate",children:["1 ",g.currency," = ",ne(P,{locale:l})," ",n.jsxs("span",{className:"nice-currency-converter__inverse",children:["· 1 ",_," ="," ",ne(ee(1/De(P),g.currency),{locale:l})]})]}),h&&n.jsx("p",{className:"nice-currency-converter__error",role:"alert",children:h.message})]})}),er=[];function Le(t){return{amount:Math.round(t.amount),currency:t.currency}}const tr=o.forwardRef(function({lines:e=er,locale:r,rounding:a="line",showTotals:c=!0,showGrandTotal:i=!0,hideRateColumn:u=!1,labels:s,density:l="comfortable",className:d,style:y,id:v,testId:f,"data-testid":m},g){const{t:b}=L.useNiceTranslation(),_={label:(s==null?void 0:s.label)??b("taxBreakdown.item","Item"),rate:(s==null?void 0:s.rate)??"VAT",net:(s==null?void 0:s.net)??"Net",vat:(s==null?void 0:s.vat)??"Tax",gross:(s==null?void 0:s.gross)??"Gross",total:(s==null?void 0:s.total)??"Total"},M=o.useMemo(()=>{if(a==="total"){const h=new Map;for(const P of e){let N=h.get(P.vatRate);N||(N=[],h.set(P.vatRate,N)),N.push(P.netAmount)}const I=[];for(const[P,N]of h){const S=N.reduce((Z,$)=>le(Z,$),ee(0,N[0].currency)),T=Le(Ne(S,P)),R=le(S,T);I.push({rate:P,net:S,vat:T,gross:R})}return I}return e.map(h=>{const I=Le(Ne(h.netAmount,h.vatRate)),P=le(h.netAmount,I);return{label:h.label,rate:h.vatRate,net:h.netAmount,vat:I,gross:P}})},[e,a]),w=o.useMemo(()=>{if(M.length===0)return null;const h=M[0].net.currency;let I=ee(0,h),P=ee(0,h),N=ee(0,h);for(const S of M)I=le(I,S.net),P=le(P,S.vat),N=le(N,S.gross);return{net:I,vat:P,gross:N}},[M]),x=h=>ne(h,{locale:r});return n.jsxs("table",{ref:g,id:v,className:`nice-tax-breakdown nice-tax-breakdown--${l} ${d??""}`,style:y,role:"table","aria-label":_.total,"data-testid":m??f,children:[n.jsx("thead",{children:n.jsxs("tr",{children:[M.some(h=>h.label!==void 0)&&n.jsx("th",{scope:"col",children:_.label}),!u&&n.jsx("th",{scope:"col",className:"nice-tax-breakdown__rate",children:_.rate}),n.jsx("th",{scope:"col",className:"nice-tax-breakdown__num",children:_.net}),n.jsx("th",{scope:"col",className:"nice-tax-breakdown__num",children:_.vat}),n.jsx("th",{scope:"col",className:"nice-tax-breakdown__num",children:_.gross})]})}),n.jsx("tbody",{children:M.map((h,I)=>n.jsxs("tr",{children:[M.some(P=>P.label!==void 0)&&n.jsx("td",{children:h.label??""}),!u&&n.jsxs("td",{className:"nice-tax-breakdown__rate",children:[(h.rate*100).toLocaleString(r,{maximumFractionDigits:2}),"%"]}),n.jsx("td",{className:"nice-tax-breakdown__num",children:x(h.net)}),n.jsx("td",{className:"nice-tax-breakdown__num",children:x(h.vat)}),n.jsx("td",{className:"nice-tax-breakdown__num",children:x(h.gross)})]},`${h.rate}-${I}`))}),c&&w&&n.jsx("tfoot",{children:i&&n.jsxs("tr",{className:"nice-tax-breakdown__totals",children:[M.some(h=>h.label!==void 0)&&n.jsx("td",{children:_.total}),!u&&n.jsx("td",{children:M.some(h=>h.label!==void 0)?null:_.total}),n.jsx("td",{className:"nice-tax-breakdown__num",children:x(w.net)}),n.jsx("td",{className:"nice-tax-breakdown__num",children:x(w.vat)}),n.jsx("td",{className:"nice-tax-breakdown__num",children:x(w.gross)})]})})]})}),rr=[],nr=o.forwardRef(function(e,r){const{t:a}=L.useNiceTranslation(),{methods:c=rr,value:i,onChange:u,layout:s="list",columns:l=2,currency:d,label:y,name:v,readOnly:f=!1,className:m,style:g,id:b,accessMode:_,"data-testid":M}=e,w=o.useId(),x=v??`nice-pm-${w}`,h=o.useMemo(()=>{if(!d)return c;const S=d.toUpperCase();return c.filter(T=>!T.currencies||T.currencies.map(R=>R.toUpperCase()).includes(S))},[c,d]);if(_==="hidden")return null;const I=f||_==="disabled"||_==="readOnly",P=`nice-payment-method-selector nice-payment-method-selector--${s}`+(m?` ${m}`:""),N=s==="grid"?{gridTemplateColumns:`repeat(${l}, minmax(0, 1fr))`}:void 0;return n.jsxs("div",{ref:r,id:b,className:P,style:g,"data-testid":M,children:[y&&n.jsx("div",{className:"nice-payment-method-selector__label",children:y}),n.jsxs("div",{className:"nice-payment-method-selector__options",style:N,role:"radiogroup","aria-label":y??a("paymentMethodSelector.paymentMethod","Payment method"),children:[h.map(S=>{const T=S.id===i,R=I||S.disabled;return n.jsxs("label",{className:"nice-payment-method-selector__option"+(T?" nice-payment-method-selector__option--selected":"")+(R?" nice-payment-method-selector__option--disabled":""),children:[n.jsx("input",{type:"radio",className:"nice-payment-method-selector__radio",name:x,value:S.id,checked:T,disabled:R,onChange:()=>u==null?void 0:u(S.id)}),S.icon&&n.jsx("span",{className:"nice-payment-method-selector__icon",children:S.icon}),n.jsxs("span",{className:"nice-payment-method-selector__text",children:[n.jsx("span",{className:"nice-payment-method-selector__name",children:S.label}),S.description&&n.jsx("span",{className:"nice-payment-method-selector__desc",children:S.description})]})]},S.id)}),h.length===0&&n.jsx("div",{className:"nice-payment-method-selector__empty",children:a("paymentMethodSelector.noMethodsAvailable","No methods available.")})]})]})}),ar=[{target:".nice-payment-provider-config",titleKey:"tutorial.paymentProviderConfig.intro.title",title:"Payment provider",contentKey:"tutorial.paymentProviderConfig.intro.content",content:"Pick a provider, fill its credentials (secrets are masked), choose test/live, enable methods and copy the webhook URL.",placement:"auto"}],cr={providerId:"",mode:"test",credentials:{},enabledMethods:[]},sr=o.forwardRef(function(e,r){const{t:a}=L.useNiceTranslation(),{value:c,defaultValue:i,onChange:u,providers:s,onTestConnection:l,showWebhookUrl:d=!0,baseUrl:y,readOnly:v=!1,testLabel:f=a("paymentProviderConfig.testConnection","Test connection"),tutorial:m,className:g,style:b,id:_,accessMode:M,"data-testid":w}=e,[x,h]=L.useControllableState({value:c,defaultValue:i,fallbackValue:cr,onChange:u,componentName:"NicePaymentProviderConfig"}),I=o.useId(),[P,N]=o.useState(new Set),[S,T]=o.useState(!1),[R,Z]=o.useState(null),$=o.useMemo(()=>s?s.map(p=>fe[p]).filter(p=>!!p):bt,[s]),D=fe[x.providerId];if(M==="hidden")return null;const U=v||M==="disabled"||M==="readOnly",q=p=>{Z(null),N(new Set),h({providerId:p,mode:x.mode,credentials:{},enabledMethods:[]})},V=(p,O)=>{h({...x,credentials:{...x.credentials,[p]:O}})},te=p=>{const O=new Set(x.enabledMethods??[]);O.has(p)?O.delete(p):O.add(p),h({...x,enabledMethods:[...O]})},H=p=>{N(O=>{const K=new Set(O);return K.has(p)?K.delete(p):K.add(p),K})},J=async()=>{if(l){T(!0),Z(null);try{Z(await l(x))}catch(p){Z({ok:!1,message:p instanceof Error?p.message:String(p)})}finally{T(!1)}}},X=D!=null&&D.webhookPath?`${(y??"").replace(/\/$/,"")}${D.webhookPath}`:"",re=(D==null?void 0:D.supportedCurrencies)==="*"?a("paymentProviderConfig.allCurrencies","All currencies"):((D==null?void 0:D.supportedCurrencies)??[]).join(", "),F="nice-payment-provider-config"+(g?` ${g}`:""),k=((D==null?void 0:D.credentials)??[]).filter(p=>!p.testOnly||x.mode==="test");return n.jsxs("div",{ref:r,id:_,className:F,style:b,"data-testid":w,children:[m&&n.jsx("div",{className:"nice-payment-provider-config__tutorial",children:n.jsx(L.NiceTutorialButton,{steps:L.resolveTutorial(m,ar)})}),n.jsxs("div",{className:"nice-payment-provider-config__row",children:[n.jsxs("label",{className:"nice-payment-provider-config__field",children:[n.jsx("span",{className:"nice-payment-provider-config__field-label",children:a("paymentProviderConfig.provider","Provider")}),n.jsxs("select",{className:"nice-payment-provider-config__select",value:x.providerId,disabled:U,onChange:p=>q(p.target.value),children:[n.jsx("option",{value:"",children:a("paymentProviderConfig.selectProvider","— select provider —")}),$.map(p=>n.jsx("option",{value:p.id,children:p.name},p.id))]})]}),(D==null?void 0:D.hasTestMode)&&n.jsxs("div",{className:"nice-payment-provider-config__mode",role:"group","aria-label":a("paymentProviderConfig.mode","Mode"),children:[n.jsx("button",{type:"button",className:"nice-payment-provider-config__mode-btn"+(x.mode==="test"?" nice-payment-provider-config__mode-btn--active":""),onClick:()=>h({...x,mode:"test"}),disabled:U,children:a("paymentProviderConfig.test","Test")}),n.jsx("button",{type:"button",className:"nice-payment-provider-config__mode-btn"+(x.mode==="live"?" nice-payment-provider-config__mode-btn--active":""),onClick:()=>h({...x,mode:"live"}),disabled:U,children:a("paymentProviderConfig.live","Live")})]})]}),D&&n.jsxs(n.Fragment,{children:[n.jsxs("div",{className:"nice-payment-provider-config__meta",children:[n.jsx("span",{className:"nice-payment-provider-config__badge",children:D.type}),n.jsx("span",{className:"nice-payment-provider-config__currencies",children:re})]}),n.jsx("div",{className:"nice-payment-provider-config__credentials",children:k.map(p=>{const O=`${I}-${p.key}`,K=p.secret,j=P.has(p.key);return n.jsxs("div",{className:"nice-payment-provider-config__field",children:[n.jsxs("label",{className:"nice-payment-provider-config__field-label",htmlFor:O,children:[p.label,p.required&&n.jsx("span",{className:"nice-payment-provider-config__required",children:" *"})]}),n.jsxs("div",{className:"nice-payment-provider-config__input-wrap",children:[n.jsx("input",{id:O,type:K&&!j?"password":"text",className:"nice-payment-provider-config__input",value:x.credentials[p.key]??"",readOnly:U,autoComplete:K?"new-password":"off",onChange:B=>V(p.key,B.target.value)}),K&&n.jsx("button",{type:"button",className:"nice-payment-provider-config__reveal",onClick:()=>H(p.key),"aria-label":j?a("paymentProviderConfig.hide","Hide"):a("paymentProviderConfig.reveal","Reveal"),"aria-pressed":j,children:n.jsx(L.NiceIcon,{name:j?"eye-off":"eye",size:14})})]}),p.help&&n.jsx("span",{className:"nice-payment-provider-config__help",children:p.help})]},p.key)})}),D.supportedMethods&&D.supportedMethods.length>0&&n.jsxs("div",{className:"nice-payment-provider-config__methods",children:[n.jsx("span",{className:"nice-payment-provider-config__field-label",children:a("paymentProviderConfig.enabledMethods","Enabled methods")}),n.jsx("div",{className:"nice-payment-provider-config__method-list",children:D.supportedMethods.map(p=>n.jsxs("label",{className:"nice-payment-provider-config__method",children:[n.jsx("input",{type:"checkbox",checked:(x.enabledMethods??[]).includes(p),disabled:U,onChange:()=>te(p)}),p]},p))})]}),d&&D.webhookPath&&n.jsxs("div",{className:"nice-payment-provider-config__field",children:[n.jsx("span",{className:"nice-payment-provider-config__field-label",children:a("paymentProviderConfig.webhookUrl","Webhook URL")}),n.jsx("code",{className:"nice-payment-provider-config__webhook",children:X})]}),l&&n.jsxs("div",{className:"nice-payment-provider-config__test",children:[n.jsx("button",{type:"button",className:"nice-payment-provider-config__test-btn",onClick:()=>void J(),disabled:U||S,children:S?a("paymentProviderConfig.testing","Testing…"):f}),R&&n.jsxs("span",{className:"nice-payment-provider-config__test-result nice-payment-provider-config__test-result--"+(R.ok?"ok":"error"),children:[n.jsx(L.NiceIcon,{name:R.ok?"check":"close",size:14})," ",R.message??(R.ok?a("paymentProviderConfig.ok","OK"):a("paymentProviderConfig.failed","Failed"))]})]})]})]})});exports.EcbRatesProvider=Qe;exports.ExchangeRateHostProvider=Ve;exports.FrankfurterProvider=Ze;exports.FreeForexApiProvider=We;exports.MockPaymentProcessor=tt;exports.NICE_CURRENCY_CATALOG=me;exports.NICE_CURRENCY_CODES=Yt;exports.NICE_PAYMENT_PROCESSORS=ft;exports.NICE_PAYMENT_PROVIDER_LIST=bt;exports.NICE_PAYMENT_PROVIDER_PROFILES=fe;exports.NbpRatesProvider=Xe;exports.NiceCreditCardInput=gt;exports.NiceCurrencyConverter=Wt;exports.NiceCurrencySelector=Ee;exports.NiceMoney=Se;exports.NiceMoneyInput=Ue;exports.NicePaymentForm=Jt;exports.NicePaymentMethodSelector=nr;exports.NicePaymentProviderConfig=sr;exports.NicePriceTag=Xt;exports.NiceTaxBreakdown=tr;exports.OpenExchangeRatesProvider=Je;exports.StaticExchangeRateProvider=Ut;exports.addMoney=le;exports.compareMoney=It;exports.convertMoney=et;exports.createEcbRatesProvider=Ft;exports.createFreeForexApiProvider=qt;exports.createNbpRatesProvider=Tt;exports.createOpenExchangeRatesProvider=Ot;exports.detectCardBrand=be;exports.expectedCvcLength=ue;exports.findCurrency=W;exports.findPaymentProviderProfile=zt;exports.formatCardNumber=Ge;exports.formatMoney=ne;exports.fromMoney=De;exports.isExpiryValid=$e;exports.isNegative=At;exports.isZero=Rt;exports.luhnCheck=Re;exports.makeAdyenAdapter=at;exports.makeAutopayAdapter=mt;exports.makeBlikAdapter=pt;exports.makeBraintreeAdapter=it;exports.makeCoinbaseCommerceAdapter=ht;exports.makeKlarnaAdapter=yt;exports.makeMollieAdapter=st;exports.makePayPalAdapter=nt;exports.makePayUAdapter=lt;exports.makePrzelewy24Adapter=dt;exports.makeRazorpayAdapter=ot;exports.makeSquareAdapter=ct;exports.makeStripeAdapter=rt;exports.makeTpayAdapter=ut;exports.maskCardNumber=Et;exports.multiplyMoney=Ne;exports.negateMoney=$t;exports.normaliseExpiry=Ae;exports.parseMoney=Ye;exports.registerCurrency=St;exports.subtractMoney=He;exports.toMoney=ee;exports.useNiceExchangeRate=Ce;exports.useNiceMoney=Ht;exports.useNicePayment=_t;exports.validateCreditCard=Pe;