@miden-npm/react 0.1.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -33,6 +33,9 @@ __export(index_exports, {
33
33
  BzpCheckoutButton: () => BzpCheckoutButton,
34
34
  BzpCheckoutCard: () => BzpCheckoutCard,
35
35
  BzpCheckoutIframe: () => BzpCheckoutIframe,
36
+ MidenCheckoutButton: () => MidenCheckoutButton,
37
+ MidenCheckoutCard: () => MidenCheckoutCard,
38
+ MidenCheckoutIframe: () => MidenCheckoutIframe,
36
39
  MidenPGClient: () => MidenPGClient,
37
40
  MidenPGProvider: () => MidenPGProvider,
38
41
  useMidenPGClient: () => useMidenPGClient,
@@ -106,17 +109,28 @@ function usePaymentIntents() {
106
109
  }
107
110
 
108
111
  // src/buzapay-checkout/checkout-button.tsx
109
- var import_react6 = require("react");
112
+ var import_react8 = require("react");
110
113
 
111
114
  // src/utils/object.util.ts
112
115
  var checkObjectTruthy = (obj) => {
113
116
  if (obj == null || typeof obj !== "object") return false;
114
117
  return Object.values(obj).every(Boolean);
115
118
  };
119
+ var getQueryParams = (url) => {
120
+ const params = {};
121
+ const searchParams = new URL(url).searchParams;
122
+ searchParams.forEach((value, key) => {
123
+ params[key] = value;
124
+ });
125
+ return params;
126
+ };
116
127
 
117
128
  // src/utils/api.util.ts
118
- var getBaseUrl = (mode) => {
119
- return mode === "sandbox" ? "https://sandbox-api.midencards.io/payment-gateway-api" : "";
129
+ var getBaseUrl = (mode, caller) => {
130
+ if (mode === "sandbox") {
131
+ return caller === "buzapay" ? "https://sandbox-api.buzapay.com/payment-gateway-api" : "https://sandbox-api.midencards.io/miden-web";
132
+ }
133
+ return "";
120
134
  };
121
135
 
122
136
  // src/utils/string.util.ts
@@ -168,22 +182,468 @@ var restrictToNumericKeys = (event) => {
168
182
  }
169
183
  };
170
184
 
185
+ // src/utils/error.util.ts
186
+ var validateRegex = (value, regex) => regex.test(value);
187
+ function parseRules(rules) {
188
+ if (!rules) return [];
189
+ return rules.split("|").map((chunk) => {
190
+ const [rule, val] = chunk.split(":");
191
+ return { rule, value: val };
192
+ });
193
+ }
194
+ function getValidationErrorMessage(rulesStr, inputValue, label) {
195
+ const errors = [];
196
+ const rules = parseRules(rulesStr);
197
+ const lowerLabel = (label || "This field").toLowerCase();
198
+ const v = inputValue ?? "";
199
+ const num = Number(v);
200
+ const hasNum = !Number.isNaN(num);
201
+ for (const r of rules) {
202
+ switch (r.rule) {
203
+ case "required":
204
+ if (!v) errors.push(`The ${lowerLabel} field is required`);
205
+ break;
206
+ case "alpha":
207
+ if (!validateRegex(v, /^[a-zA-Z]+$/))
208
+ errors.push(
209
+ `The ${lowerLabel} field must only contain alphabetic characters`
210
+ );
211
+ break;
212
+ case "at_least_one_uppercase":
213
+ if (!validateRegex(v, /.*[A-Z].*/))
214
+ errors.push(
215
+ `The ${lowerLabel} field must contain at least one uppercase character`
216
+ );
217
+ break;
218
+ case "at_least_one_lowercase":
219
+ if (!validateRegex(v, /.*[a-z].*/))
220
+ errors.push(
221
+ `The ${lowerLabel} field must contain at least one lowercase character`
222
+ );
223
+ break;
224
+ case "at_least_one_number":
225
+ if (!validateRegex(v, /.*\d.*/))
226
+ errors.push(
227
+ `The ${lowerLabel} field must contain at least one number`
228
+ );
229
+ break;
230
+ case "alpha_num":
231
+ if (!validateRegex(v, /^[a-z0-9]+$/i))
232
+ errors.push(
233
+ `The ${lowerLabel} field must only contain alphabetic characters and numbers`
234
+ );
235
+ break;
236
+ case "num_spaces":
237
+ if (!validateRegex(v, /^[0-9\s]+$/i))
238
+ errors.push(
239
+ `The ${lowerLabel} field must only contain space and numbers`
240
+ );
241
+ break;
242
+ case "alpha_spaces":
243
+ if (!validateRegex(v, /^[A-Za-z\s]*$/))
244
+ errors.push(
245
+ `The ${lowerLabel} field must only contain alphabetic characters and spaces`
246
+ );
247
+ break;
248
+ case "numeric":
249
+ if (!validateRegex(v, /^\d+$/))
250
+ errors.push(`The ${lowerLabel} field must only contain numbers`);
251
+ break;
252
+ case "no_special":
253
+ if (validateRegex(v, /[^a-zA-Z0-9\s]/))
254
+ errors.push(
255
+ `The ${lowerLabel} field must not contain special characters`
256
+ );
257
+ break;
258
+ case "at_least_one_special":
259
+ if (!validateRegex(v, /[^a-zA-Z0-9\s]/))
260
+ errors.push(
261
+ `The ${lowerLabel} field must contain at least one special character`
262
+ );
263
+ break;
264
+ case "email":
265
+ if (!validateRegex(v, /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,})+$/)) {
266
+ errors.push("Please enter a valid email address");
267
+ }
268
+ break;
269
+ case "is":
270
+ if (r.value !== v) errors.push(`Value entered must be ${r.value}`);
271
+ break;
272
+ case "is_not":
273
+ if (r.value === v) errors.push(`Value entered must not be ${r.value}`);
274
+ break;
275
+ case "char_length":
276
+ if (v.length !== Number(r.value))
277
+ errors.push(
278
+ `The ${lowerLabel} field must be ${r.value} characters long`
279
+ );
280
+ break;
281
+ case "min_char_length":
282
+ if (v.length < Number(r.value))
283
+ errors.push(
284
+ `The ${lowerLabel} field must not be less than ${r.value} characters long`
285
+ );
286
+ break;
287
+ case "max_char_length":
288
+ if (v.length > Number(r.value))
289
+ errors.push(
290
+ `The ${lowerLabel} field must not be greater than ${r.value} characters long`
291
+ );
292
+ break;
293
+ // Age rules treat the value as a number (strict numeric compare)
294
+ case "age":
295
+ if (!hasNum || num !== Number(r.value))
296
+ errors.push(`Age entered must be ${r.value}`);
297
+ break;
298
+ case "min_age":
299
+ if (!hasNum || num < Number(r.value))
300
+ errors.push(`Age entered must not be less than ${r.value}`);
301
+ break;
302
+ case "max_age":
303
+ if (!hasNum || num > Number(r.value))
304
+ errors.push(`Age entered must not be greater than ${r.value}`);
305
+ break;
306
+ // Numeric value rules (general numbers)
307
+ case "num_is":
308
+ if (!hasNum || num !== Number(r.value))
309
+ errors.push(`Number entered must be ${r.value}`);
310
+ break;
311
+ case "num_is_not":
312
+ if (hasNum && num === Number(r.value))
313
+ errors.push(`Number entered must not be ${r.value}`);
314
+ break;
315
+ case "min_number":
316
+ if (!hasNum || num < Number(r.value))
317
+ errors.push(`Number entered must not be less than ${r.value}`);
318
+ break;
319
+ case "max_number":
320
+ if (!hasNum || num > Number(r.value))
321
+ errors.push(`Number entered must not be greater than ${r.value}`);
322
+ break;
323
+ default:
324
+ break;
325
+ }
326
+ }
327
+ return errors.length > 0 ? errors[0] : null;
328
+ }
329
+ var validateGroup = (values, rulesMap, prettyLabels) => {
330
+ const out = {};
331
+ for (const [field, rules] of Object.entries(rulesMap)) {
332
+ if (!rules) continue;
333
+ const label = prettyLabels?.[field] ?? field;
334
+ const err = getValidationErrorMessage(rules, values[field] ?? "", label);
335
+ if (err) out[field] = err;
336
+ }
337
+ return out;
338
+ };
339
+
340
+ // src/utils/card-scheme.util.ts
341
+ var CardSchemes = /* @__PURE__ */ ((CardSchemes2) => {
342
+ CardSchemes2[CardSchemes2["Visa"] = 1] = "Visa";
343
+ CardSchemes2[CardSchemes2["MasterCard"] = 2] = "MasterCard";
344
+ CardSchemes2[CardSchemes2["Verve"] = 3] = "Verve";
345
+ CardSchemes2[CardSchemes2["MastercardAndVisa"] = 4] = "MastercardAndVisa";
346
+ CardSchemes2[CardSchemes2["AmericanExpress"] = 5] = "AmericanExpress";
347
+ CardSchemes2[CardSchemes2["Discover"] = 6] = "Discover";
348
+ CardSchemes2[CardSchemes2["JCB"] = 7] = "JCB";
349
+ CardSchemes2[CardSchemes2["DinersClub"] = 8] = "DinersClub";
350
+ CardSchemes2[CardSchemes2["Maestro"] = 9] = "Maestro";
351
+ CardSchemes2[CardSchemes2["UnionPay"] = 10] = "UnionPay";
352
+ CardSchemes2[CardSchemes2["UnionPay3DS"] = 11] = "UnionPay3DS";
353
+ CardSchemes2[CardSchemes2["UnionPayNon3DS"] = 12] = "UnionPayNon3DS";
354
+ CardSchemes2[CardSchemes2["UATP"] = 13] = "UATP";
355
+ CardSchemes2[CardSchemes2["PayPak"] = 14] = "PayPak";
356
+ CardSchemes2[CardSchemes2["Jaywan"] = 15] = "Jaywan";
357
+ CardSchemes2[CardSchemes2["Mada"] = 16] = "Mada";
358
+ CardSchemes2[CardSchemes2["MadaVisa"] = 17] = "MadaVisa";
359
+ CardSchemes2[CardSchemes2["MadaMastercard"] = 18] = "MadaMastercard";
360
+ CardSchemes2[CardSchemes2["Unknown"] = 19] = "Unknown";
361
+ return CardSchemes2;
362
+ })(CardSchemes || {});
363
+ var VISA_RE = /^4\d{12}(\d{3}){0,2}$/;
364
+ var MC_RE = /^(?:5[1-5]\d{14}|2(?:2(?:2[1-9]|[3-9]\d)|[3-6]\d{2}|7(?:[01]\d|20))\d{12})(?:\d{0,3})?$/;
365
+ var AMEX_RE = /^(34|37)\d{13}$/;
366
+ var DISCOVER_RE = /^(?:6011|65|64[4-9]|622(?:12[6-9]|1[3-9]\d|[2-8]\d{2}|9(?:0\d|1\d|2[0-5])))\d{12,15}$/;
367
+ var JCB_RE = /^(?:35(?:2[8-9]|[3-8]\d))\d{12,15}$/;
368
+ var DINERS_RE = /^(?:3(?:0[0-5]\d|095|6\d|[89]\d))\d{11,13}$/;
369
+ var MAESTRO_RE = /^(?:50|5[6-9]|6[0-9])\d{10,17}$/;
370
+ var UNIONPAY_RE = /^62\d{14,17}$/;
371
+ var UATP_RE = /^1\d{14}$/;
372
+ var VERVE_BIN6_RANGES = [
373
+ [506099, 506198],
374
+ [650002, 650027]
375
+ ];
376
+ var VERVE_BIN6_SINGLES = /* @__PURE__ */ new Set([507865, 507866]);
377
+ var PAYPAK_BIN6 = /* @__PURE__ */ new Set([220545, 220543]);
378
+ var JAYWAN_BIN7 = /* @__PURE__ */ new Set([6690109]);
379
+ var MADA_ONLY_BIN6 = /* @__PURE__ */ new Set([968209, 873646]);
380
+ var MADA_VISA_BIN6 = /* @__PURE__ */ new Set([422818, 486094]);
381
+ var MADA_MC_BIN6 = /* @__PURE__ */ new Set([529741, 543357]);
382
+ var UNIONPAY_3DS_BIN6 = /* @__PURE__ */ new Set([620108]);
383
+ var UNIONPAY_NON3DS_BIN6 = /* @__PURE__ */ new Set([621423]);
384
+ function cardTypeHandler(cardNumber) {
385
+ const scheme = detect(cardNumber);
386
+ return CardSchemes[scheme];
387
+ }
388
+ function detect(cardNumber) {
389
+ if (!cardNumber || !cardNumber.trim()) return 19 /* Unknown */;
390
+ const digits = cardNumber.replace(/\D/g, "");
391
+ if (digits.length < 12 || digits.length > 19) return 19 /* Unknown */;
392
+ if (digits.length >= 6) {
393
+ const bin6 = parseInt(digits.slice(0, 6), 10);
394
+ if (MADA_ONLY_BIN6.has(bin6) && digits.length >= 16 && digits.length <= 19)
395
+ return 16 /* Mada */;
396
+ if (MADA_VISA_BIN6.has(bin6) && VISA_RE.test(digits)) return 17 /* MadaVisa */;
397
+ if (MADA_MC_BIN6.has(bin6) && MC_RE.test(digits)) return 18 /* MadaMastercard */;
398
+ if (PAYPAK_BIN6.has(bin6) && digits.length === 16) return 14 /* PayPak */;
399
+ if (UNIONPAY_3DS_BIN6.has(bin6) && UNIONPAY_RE.test(digits)) return 11 /* UnionPay3DS */;
400
+ if (UNIONPAY_NON3DS_BIN6.has(bin6) && UNIONPAY_RE.test(digits))
401
+ return 12 /* UnionPayNon3DS */;
402
+ if (isVerve(bin6, digits.length)) return 3 /* Verve */;
403
+ }
404
+ if (digits.length >= 7) {
405
+ const bin7 = parseInt(digits.slice(0, 7), 10);
406
+ if (JAYWAN_BIN7.has(bin7) && digits.length === 16) return 15 /* Jaywan */;
407
+ }
408
+ if (UATP_RE.test(digits)) return 13 /* UATP */;
409
+ if (AMEX_RE.test(digits)) return 5 /* AmericanExpress */;
410
+ if (DISCOVER_RE.test(digits)) return 6 /* Discover */;
411
+ if (JCB_RE.test(digits)) return 7 /* JCB */;
412
+ if (DINERS_RE.test(digits)) return 8 /* DinersClub */;
413
+ if (MC_RE.test(digits)) return 2 /* MasterCard */;
414
+ if (VISA_RE.test(digits)) return 1 /* Visa */;
415
+ if (UNIONPAY_RE.test(digits)) return 10 /* UnionPay */;
416
+ if (MAESTRO_RE.test(digits)) return 9 /* Maestro */;
417
+ return 19 /* Unknown */;
418
+ }
419
+ function isVerve(bin6, length) {
420
+ if (length < 16 || length > 19) return false;
421
+ const inRange = VERVE_BIN6_RANGES.some(([start, end]) => bin6 >= start && bin6 <= end);
422
+ return inRange || VERVE_BIN6_SINGLES.has(bin6);
423
+ }
424
+
171
425
  // src/apis/checkout.api.ts
172
- async function createPaymentLink(paymentObject, environment, secretKey) {
426
+ async function createPaymentLink(paymentObject, environment, secretKey, caller) {
173
427
  try {
174
- const baseUrl = getBaseUrl(environment);
175
- const res = await fetch(
176
- `${baseUrl}/api/v1/checkout/generate-payment-link2`,
177
- {
178
- method: "POST",
179
- headers: {
180
- "Content-Type": "application/json",
181
- Accept: "application/json",
182
- merchantId: secretKey
183
- },
184
- body: JSON.stringify(paymentObject)
428
+ const baseUrl = getBaseUrl(environment, caller);
429
+ const apiKey = {
430
+ buzapay: "api/v1/checkout/generate-payment-link2",
431
+ miden: "api/v1/accrual/checkout/generate-payment-link"
432
+ };
433
+ const res = await fetch(`${baseUrl}/${apiKey[caller]}`, {
434
+ method: "POST",
435
+ headers: {
436
+ "Content-Type": "application/json",
437
+ Accept: "application/json",
438
+ merchantId: secretKey,
439
+ uniqueKey: secretKey
440
+ },
441
+ body: JSON.stringify({
442
+ ...paymentObject,
443
+ LinkName: `${Date.now()}-Link`
444
+ })
445
+ });
446
+ return await res.json();
447
+ } catch (error) {
448
+ }
449
+ }
450
+ async function authorizeCardPayment(environment, {
451
+ merchantId,
452
+ ...rest
453
+ }, caller) {
454
+ try {
455
+ const baseUrl = getBaseUrl(environment, caller);
456
+ const apiKey = {
457
+ buzapay: "api/v1/checkout/authorize-card-3ds-payment-sdk",
458
+ miden: "api/v1/accrual/card/authorize"
459
+ };
460
+ const res = await fetch(`${baseUrl}/${apiKey[caller]}`, {
461
+ method: "POST",
462
+ headers: {
463
+ "Content-Type": "application/json",
464
+ Accept: "application/json",
465
+ merchantId,
466
+ uniqueKey: merchantId
467
+ },
468
+ body: JSON.stringify(rest)
469
+ });
470
+ return await res.json();
471
+ } catch (error) {
472
+ }
473
+ }
474
+ async function getPaymentReferenceDetails(environment, paymentReference, caller) {
475
+ try {
476
+ const baseUrl = getBaseUrl(environment, caller);
477
+ const apiKey = {
478
+ buzapay: `api/v1/checkout/details/${paymentReference}`,
479
+ miden: `api/v1/accrual/checkout/details/${paymentReference}`
480
+ };
481
+ const res = await fetch(`${baseUrl}/${apiKey[caller]}`, {
482
+ method: "GET",
483
+ headers: {
484
+ "Content-Type": "application/json",
485
+ Accept: "application/json"
185
486
  }
186
- );
487
+ });
488
+ return await res.json();
489
+ } catch (error) {
490
+ }
491
+ }
492
+ async function generatePaymentAccount(environment, { merchantId, ...rest }, caller) {
493
+ try {
494
+ const baseUrl = getBaseUrl(environment, caller);
495
+ const apiKey = {
496
+ buzapay: "api/v1/checkout/generate-payment-account",
497
+ miden: "api/v1/accrual/checkout/generate-payment-account"
498
+ };
499
+ const res = await fetch(`${baseUrl}/${apiKey[caller]}`, {
500
+ method: "POST",
501
+ headers: {
502
+ "Content-Type": "application/json",
503
+ Accept: "application/json",
504
+ merchantId,
505
+ uniqueKey: merchantId
506
+ },
507
+ body: JSON.stringify(rest)
508
+ });
509
+ return await res.json();
510
+ } catch (error) {
511
+ }
512
+ }
513
+ async function generateStableCoinAddress(environment, { merchantId, ...rest }, caller) {
514
+ try {
515
+ const baseUrl = getBaseUrl(environment, caller);
516
+ const apiKey = {
517
+ buzapay: "api/v1/checkout/generate-payment-walletaddress",
518
+ miden: "api/v1/accrual/checkout/generate-wallet-address"
519
+ };
520
+ const res = await fetch(`${baseUrl}/${apiKey[caller]}`, {
521
+ method: "POST",
522
+ headers: {
523
+ "Content-Type": "application/json",
524
+ Accept: "application/json",
525
+ merchantId,
526
+ uniqueKey: merchantId
527
+ },
528
+ body: JSON.stringify(rest)
529
+ });
530
+ return await res.json();
531
+ } catch (error) {
532
+ }
533
+ }
534
+
535
+ // src/apis/encrypt.api.ts
536
+ var import_crypto_js = __toESM(require("crypto-js"), 1);
537
+ function encryptPayload(merchantId, formData = {}) {
538
+ const merchId = merchantId.replace(/-/g, "");
539
+ const first16Key = merchId.slice(0, 16);
540
+ const last16Iv = merchId.slice(-16);
541
+ const key = import_crypto_js.default.enc.Utf8.parse(first16Key);
542
+ const iv = import_crypto_js.default.enc.Utf8.parse(last16Iv);
543
+ const postDataObj = JSON.stringify(formData);
544
+ const encryptedData = import_crypto_js.default.AES.encrypt(
545
+ import_crypto_js.default.enc.Utf8.parse(postDataObj),
546
+ key,
547
+ {
548
+ keySize: 128 / 8,
549
+ iv,
550
+ mode: import_crypto_js.default.mode.CBC,
551
+ padding: import_crypto_js.default.pad.Pkcs7
552
+ }
553
+ );
554
+ return {
555
+ requestParam: encryptedData.toString()
556
+ };
557
+ }
558
+ function decryptPayload(merchantId, payload) {
559
+ const merchId = merchantId.replace(/-/g, "");
560
+ const first16Key = merchId.slice(0, 16);
561
+ const last16Iv = merchId.slice(-16);
562
+ const key = import_crypto_js.default.enc.Utf8.parse(first16Key);
563
+ const iv = import_crypto_js.default.enc.Utf8.parse(last16Iv);
564
+ const decryptedData = import_crypto_js.default.AES.decrypt(payload, key, {
565
+ keySize: 128 / 8,
566
+ iv,
567
+ mode: import_crypto_js.default.mode.CBC,
568
+ padding: import_crypto_js.default.pad.Pkcs7
569
+ });
570
+ const decryptedText = decryptedData.toString(import_crypto_js.default.enc.Utf8);
571
+ return JSON.parse(decryptedText);
572
+ }
573
+
574
+ // src/apis/resources.api.ts
575
+ async function getCountries(environment, secretKey, caller) {
576
+ try {
577
+ const baseUrl = getBaseUrl(environment, caller);
578
+ const apiKey = {
579
+ buzapay: "api/v1/countries-iso",
580
+ miden: "api/v1/accrual/utils/countries"
581
+ };
582
+ const res = await fetch(`${baseUrl}/${apiKey[caller]}`, {
583
+ method: "GET",
584
+ headers: {
585
+ "Content-Type": "application/json",
586
+ Accept: "application/json",
587
+ merchantId: secretKey,
588
+ uniqueKey: secretKey
589
+ }
590
+ });
591
+ return await res.json();
592
+ } catch (error) {
593
+ }
594
+ }
595
+ async function getCountryStates(countryIso3, environment, secretKey, caller) {
596
+ try {
597
+ const baseUrl = getBaseUrl(environment, caller);
598
+ const apiKey = {
599
+ buzapay: `api/v1/state-by-country/${countryIso3}`,
600
+ miden: `api/v1/accrual/utils/state-by-country/${countryIso3}`
601
+ };
602
+ const res = await fetch(`${baseUrl}/${apiKey[caller]}`, {
603
+ method: "GET",
604
+ headers: {
605
+ "Content-Type": "application/json",
606
+ Accept: "application/json",
607
+ merchantId: secretKey,
608
+ uniqueKey: secretKey
609
+ }
610
+ });
611
+ return await res.json();
612
+ } catch (error) {
613
+ }
614
+ }
615
+ async function getStableCoins(environment, caller) {
616
+ try {
617
+ const baseUrl = getBaseUrl(environment, caller);
618
+ const apiKey = {
619
+ buzapay: "api/v1/checkout/stable-coin",
620
+ miden: "api/v1/accrual/checkout/stable-coin"
621
+ };
622
+ const res = await fetch(`${baseUrl}/${apiKey[caller]}`, {
623
+ method: "GET",
624
+ headers: {
625
+ "Content-Type": "application/json",
626
+ Accept: "application/json"
627
+ }
628
+ });
629
+ return await res.json();
630
+ } catch (error) {
631
+ }
632
+ }
633
+ async function getStableCoinNetworks(environment, stableCoin, caller) {
634
+ try {
635
+ const baseUrl = getBaseUrl(environment, caller);
636
+ const apiKey = {
637
+ buzapay: `api/v1/checkout/networks/${stableCoin}`,
638
+ miden: `api/v1/accrual/checkout/networks/${stableCoin}`
639
+ };
640
+ const res = await fetch(`${baseUrl}/${apiKey[caller]}`, {
641
+ method: "GET",
642
+ headers: {
643
+ "Content-Type": "application/json",
644
+ Accept: "application/json"
645
+ }
646
+ });
187
647
  return await res.json();
188
648
  } catch (error) {
189
649
  }
@@ -442,7 +902,7 @@ function IconUsdt({
442
902
  xmlns: "http://www.w3.org/2000/svg",
443
903
  ...props,
444
904
  children: [
445
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("g", { "clip-path": "url(#clip0_10908_387045)", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
905
+ /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("g", { clipPath: "url(#clip0_10908_387045)", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
446
906
  "path",
447
907
  {
448
908
  "fill-rule": "evenodd",
@@ -475,7 +935,7 @@ function IconUsdc({
475
935
  xmlns: "http://www.w3.org/2000/svg",
476
936
  ...props,
477
937
  children: [
478
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("g", { "clip-path": "url(#clip0_10908_387048)", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
938
+ /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("g", { clipPath: "url(#clip0_10908_387048)", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
479
939
  "path",
480
940
  {
481
941
  d: "M14 0C21.7324 0 28 6.26763 28 14C28 21.7324 21.7324 28 14 28C6.26763 28 0 21.7324 0 14C0 6.26763 6.26763 0 14 0ZM16.933 4.865C16.7195 4.76 16.506 4.865 16.4535 5.07762C16.4001 5.131 16.4001 5.18438 16.4001 5.29025V6.034L16.4089 6.125C16.4546 6.30501 16.5652 6.46177 16.7195 6.56512C20.8792 8.05262 23.0125 12.6726 21.4655 16.7615C20.6657 18.9928 18.9061 20.6911 16.7195 21.4883C16.506 21.5941 16.4001 21.7534 16.4001 22.0194V22.7631L16.4045 22.8401C16.4128 22.9241 16.4479 23.0033 16.5047 23.0658C16.5614 23.1284 16.6367 23.171 16.7195 23.1875C16.7729 23.1875 16.8796 23.1875 16.933 23.135C18.1331 22.7602 19.2473 22.1517 20.2113 21.3446C21.1753 20.5375 21.9701 19.5476 22.5499 18.432C23.1298 17.3164 23.4833 16.0972 23.59 14.8444C23.6967 13.5917 23.5546 12.3302 23.1718 11.1326C22.2128 8.10512 19.866 5.8205 16.933 4.865ZM11.2805 4.8125C11.2271 4.8125 11.1204 4.8125 11.067 4.865C9.86688 5.23978 8.75274 5.84826 7.78874 6.6554C6.82475 7.46254 6.02993 8.4524 5.45006 9.56797C4.87019 10.6836 4.51673 11.9028 4.41001 13.1556C4.30329 14.4083 4.44543 15.6698 4.82825 16.8674C5.78725 19.8424 8.08062 22.1261 11.067 23.0816C11.2805 23.1875 11.494 23.0816 11.5465 22.869C11.5999 22.8165 11.5999 22.7622 11.5999 22.6564V21.9126L11.5911 21.8426C11.5544 21.6947 11.417 21.5259 11.2805 21.4349C7.12075 19.9474 4.9875 15.3274 6.5345 11.2385C7.33425 9.00725 9.09388 7.30887 11.2805 6.51175C11.494 6.40587 11.5999 6.24663 11.5999 5.98063V5.23688L11.5955 5.15987C11.5872 5.07585 11.5521 4.99673 11.4954 4.93418C11.4386 4.87163 11.3633 4.82898 11.2805 4.8125ZM14.3736 7.574H13.573L13.496 7.581C13.321 7.616 13.1933 7.7665 13.146 7.99925V9.22075L12.9649 9.24875C11.4704 9.51475 10.5341 10.5464 10.5341 11.823C10.5341 13.5748 11.5999 14.2651 13.8399 14.5311C15.3335 14.7963 15.813 15.1156 15.813 15.9653C15.813 16.814 15.0666 17.3985 14.0534 17.3985C12.6665 17.3985 12.187 16.8149 12.0269 16.0177C11.9744 15.806 11.8134 15.6992 11.6532 15.6992H10.7467L10.6776 15.7054C10.5913 15.7193 10.513 15.7641 10.4572 15.8313C10.4014 15.8985 10.3718 15.9838 10.374 16.0711V16.1236L10.4029 16.2811C10.6566 17.5271 11.5106 18.4187 13.2003 18.6734V19.9483L13.2072 20.0252C13.2422 20.1985 13.3936 20.3263 13.6273 20.3726H14.427L14.504 20.3656C14.679 20.3306 14.8067 20.1801 14.854 19.9483V18.6725L15.0351 18.6375C16.534 18.3207 17.5201 17.2366 17.5201 15.8576C17.5201 13.9991 16.4001 13.3621 14.1601 13.0961C12.5598 12.8835 12.2404 12.4591 12.2404 11.7154C12.2404 10.9716 12.7741 10.4939 13.8399 10.4939C14.7998 10.4939 15.3335 10.8124 15.5995 11.6095C15.6272 11.6866 15.6779 11.7533 15.7447 11.8007C15.8115 11.8481 15.8912 11.8739 15.9731 11.8746H16.8262L16.8954 11.8694C16.982 11.8556 17.0606 11.8108 17.1166 11.7434C17.1726 11.6759 17.2022 11.5904 17.1999 11.5027V11.4503L17.1675 11.2989C17.0361 10.755 16.7366 10.2664 16.3115 9.90255C15.8864 9.53872 15.3574 9.31821 14.7997 9.27238V7.99925L14.7928 7.92225C14.7578 7.74812 14.6073 7.62038 14.3736 7.574Z",
@@ -539,130 +999,455 @@ function IconArrowSwap({
539
999
  );
540
1000
  }
541
1001
 
542
- // src/components/base/button.tsx
1002
+ // src/components/icons/icon-lock.tsx
543
1003
  var import_jsx_runtime13 = require("react/jsx-runtime");
544
- function getButtonBgClass(type, disabled) {
545
- if (disabled)
546
- return "bg-gray-200 text-gray-400 cursor-not-allowed border-gray-200";
547
- switch (type) {
548
- case "primary":
549
- return "bg-primary text-white hover:bg-primary-black hover:border-primary-black border-primary";
550
- case "secondary":
551
- return "bg-gray-200 border-gray-200 hover:bg-gray-300 text-heading-text";
552
- case "danger":
553
- return "bg-red-500 border-red-500 text-white hover:bg-red-600";
554
- case "neutral":
555
- default:
556
- return "bg-off-white border-grey-border hover:bg-gray-100";
557
- }
558
- }
559
- function getButtonSizeClass(size) {
560
- switch (size) {
561
- case "de":
562
- return "h-68px rounded-xl";
563
- case "md":
564
- return "h-42px rounded-lg";
565
- case "sm":
566
- return "h-32px rounded-md";
567
- default:
568
- return "h-68px rounded-xl";
569
- }
570
- }
571
- function getLabelSizeClass(size) {
572
- switch (size) {
573
- case "de":
574
- case "md":
575
- case "sm":
576
- return "text-body-2xs font-normal";
577
- default:
578
- return "text-body-xs font-normal";
579
- }
580
- }
581
- function BaseButton({
582
- label,
583
- type = "neutral",
584
- size = "de",
585
- paddingClassX = "px-8",
586
- disabled = false,
587
- loading = false,
588
- customClass,
589
- onClick,
590
- prefix,
591
- suffix,
592
- children
1004
+ function IconLock({
1005
+ width = 24,
1006
+ height = 24,
1007
+ color = "currentColor",
1008
+ ...props
593
1009
  }) {
594
- const isDisabled = disabled || loading;
595
- const handleClick = () => {
596
- if (!isDisabled) onClick?.();
597
- };
598
1010
  return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
599
- "button",
1011
+ "svg",
600
1012
  {
601
- className: `flex items-center justify-center gap-2 py-3 border font-normal text-input-grey transition-colors duration-300 ease-in-out ${getButtonBgClass(
602
- type,
603
- isDisabled
604
- )} ${getButtonSizeClass(size)} ${paddingClassX} ${customClass}`,
605
- type: "button",
606
- disabled: isDisabled,
607
- onClick: handleClick,
1013
+ width,
1014
+ height,
1015
+ viewBox: "0 0 24 24",
1016
+ fill: "none",
1017
+ xmlns: "http://www.w3.org/2000/svg",
1018
+ ...props,
608
1019
  children: [
609
- prefix,
610
- loading ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(IconLoader, {}) : /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { children: label ? /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("p", { className: `mb-0 ${getLabelSizeClass(size)}`, children: label }) : /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(import_jsx_runtime13.Fragment, { children }) }),
611
- suffix
1020
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1021
+ "path",
1022
+ {
1023
+ d: "M12.0001 17.35C12.9003 17.35 13.6301 16.6203 13.6301 15.72C13.6301 14.8198 12.9003 14.09 12.0001 14.09C11.0999 14.09 10.3701 14.8198 10.3701 15.72C10.3701 16.6203 11.0999 17.35 12.0001 17.35Z",
1024
+ fill: color
1025
+ }
1026
+ ),
1027
+ /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
1028
+ "path",
1029
+ {
1030
+ d: "M18.28 9.53V8.28C18.28 5.58 17.63 2 12 2C6.37 2 5.72 5.58 5.72 8.28V9.53C2.92 9.88 2 11.3 2 14.79V16.65C2 20.75 3.25 22 7.35 22H16.65C20.75 22 22 20.75 22 16.65V14.79C22 11.3 21.08 9.88 18.28 9.53ZM12 18.74C10.33 18.74 8.98 17.38 8.98 15.72C8.98 14.05 10.34 12.7 12 12.7C13.66 12.7 15.02 14.06 15.02 15.72C15.02 17.39 13.67 18.74 12 18.74ZM7.35 9.44C7.27 9.44 7.2 9.44 7.12 9.44V8.28C7.12 5.35 7.95 3.4 12 3.4C16.05 3.4 16.88 5.35 16.88 8.28V9.45C16.8 9.45 16.73 9.45 16.65 9.45H7.35V9.44Z",
1031
+ fill: color
1032
+ }
1033
+ )
612
1034
  ]
613
1035
  }
614
1036
  );
615
1037
  }
616
1038
 
617
- // src/components/base/back.tsx
1039
+ // src/components/icons/icon-miden-logo.tsx
618
1040
  var import_jsx_runtime14 = require("react/jsx-runtime");
619
- function BaseBack({ back }) {
620
- return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("div", { className: "flex items-center gap-2 cursor-pointer", onClick: back, children: [
621
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(IconChevronLeft, {}),
622
- /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("p", { className: "mb-0 text-body-xs font-normal", children: "Back" })
623
- ] });
624
- }
625
-
626
- // src/components/base/card.tsx
627
- var import_jsx_runtime15 = require("react/jsx-runtime");
628
- function BaseCard({
629
- showBackButton = false,
630
- onBack,
631
- children,
632
- onClose
1041
+ function IconMidenLogo({
1042
+ width = 83,
1043
+ height = 24,
1044
+ color = "currentColor",
1045
+ ...props
633
1046
  }) {
634
- return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "checkout-card w-full h-screen flex flex-col items-center justify-center text-white", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "flex w-1/2", children: [
635
- showBackButton && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(BaseBack, { back: () => onBack?.() }),
636
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "flex gap-2 w-full", children: [
637
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "flex flex-col gap-8 w-full", children: [
638
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "bg-off-white rounded-xl", children }),
639
- /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "flex items-center gap-2 justify-center", children: [
640
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { className: "text-light-white-100 text-body-2xs font-regular", children: "Powered by Buzapay" }),
641
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(IconBuzapayIcon, { color: "#E8F4FF" })
642
- ] })
643
- ] }),
644
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
645
- "div",
646
- {
647
- onClick: onClose,
648
- className: "close-icon flex flex-col items-center justify-center self-start cursor-pointer hover:bg-gray-500",
649
- children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { className: "text-white", children: "x" })
650
- }
651
- )
652
- ] })
653
- ] }) });
654
- }
655
-
656
- // src/components/base/radio-group.tsx
657
- var import_react3 = require("react");
658
- var import_jsx_runtime16 = require("react/jsx-runtime");
659
- var BaseRadioGroup = ({
660
- options,
661
- type = "vertical",
662
- value,
663
- defaultValue,
1047
+ return /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
1048
+ "svg",
1049
+ {
1050
+ width: "83",
1051
+ height: "24",
1052
+ viewBox: "0 0 83 24",
1053
+ fill: "none",
1054
+ xmlns: "http://www.w3.org/2000/svg",
1055
+ children: [
1056
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("g", { clipPath: "url(#clip0_13262_15389)", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1057
+ "path",
1058
+ {
1059
+ d: "M8.78809 -7.24082C9.77412 -7.81065 10.9896 -7.81065 11.9756 -7.24082L17.9238 -3.80332C18.9099 -3.23336 19.5176 -2.1789 19.5176 -1.03769V5.83731C19.5175 6.97837 18.9098 8.03202 17.9238 8.60196L11.9756 12.0395C10.9896 12.6093 9.77412 12.6093 8.78809 12.0395L2.83984 8.60196C1.85383 8.03203 1.24519 6.97841 1.24512 5.83731V-1.03769C1.24512 -2.17893 1.85368 -3.23338 2.83984 -3.80332L8.78809 -7.24082Z",
1060
+ stroke: "#0A0032",
1061
+ strokeWidth: "3.11415"
1062
+ }
1063
+ ) }),
1064
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("g", { clipPath: "url(#clip1_13262_15389)", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1065
+ "path",
1066
+ {
1067
+ d: "M20.6924 15.3051L20.6826 15.6088C20.5818 17.1217 19.7341 18.4954 18.4092 19.2602L12.6826 22.5649L12.4131 22.7084C11.1429 23.3328 9.65297 23.3329 8.38281 22.7084L8.11426 22.5649L2.3877 19.2602C1.06271 18.4954 0.214141 17.1218 0.113281 15.6088L0.103516 15.3051V10.6205C0.420907 10.9744 0.794913 11.2821 1.21875 11.5268L3.21777 12.6801V15.3051C3.21804 15.8234 3.49466 16.3034 3.94434 16.5629L9.6709 19.8686C10.1206 20.128 10.6753 20.1279 11.125 19.8686L16.8516 16.5629C17.3012 16.3034 17.5788 15.8234 17.5791 15.3051V12.6801L19.5771 11.5268C20.001 11.2821 20.375 10.9744 20.6924 10.6205V15.3051ZM8.11426 1.43402C9.52761 0.618234 11.2693 0.618234 12.6826 1.43402L17.502 4.21429V7.57172C17.502 7.64507 17.4628 7.71415 17.3984 7.7514L17.2832 7.81683C17.1679 7.66481 17.0223 7.53453 16.8516 7.43597L11.125 4.13031C10.6751 3.87086 10.1207 3.87075 9.6709 4.13031L6.80762 5.78363L3.94434 7.43597C3.77341 7.53467 3.62695 7.66454 3.51172 7.81683L3.39844 7.7514C3.33411 7.71413 3.29395 7.64502 3.29395 7.57172V4.21527L8.11426 1.43402Z",
1068
+ fill: "#0A0032"
1069
+ }
1070
+ ) }),
1071
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("g", { clipPath: "url(#clip2_13262_15389)", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1072
+ "path",
1073
+ {
1074
+ d: "M20.6924 15.3065L20.6826 15.6102C20.5819 17.1233 19.7342 18.4967 18.4092 19.2616L12.6826 22.5663L12.4131 22.7098C11.1428 23.3343 9.65302 23.3344 8.38281 22.7098L8.11426 22.5663L2.3877 19.2616C1.0627 18.4967 0.214005 17.1233 0.113281 15.6102L0.103516 15.3065V10.621C0.420907 10.9748 0.794915 11.2826 1.21875 11.5272L3.21777 12.6806V15.3065C3.21789 15.8249 3.49465 16.3047 3.94434 16.5643L9.6709 19.87C10.1206 20.1295 10.6752 20.1294 11.125 19.87L16.8516 16.5643C17.3014 16.3047 17.579 15.825 17.5791 15.3065V12.6806L19.5771 11.5272C20.001 11.2826 20.375 10.9748 20.6924 10.621V15.3065ZM8.11426 1.43543C9.52754 0.619685 11.2693 0.61976 12.6826 1.43543L17.502 4.21571V7.57215C17.502 7.64551 17.4629 7.71459 17.3984 7.75184L17.2832 7.81825C17.1679 7.66636 17.0222 7.53587 16.8516 7.43739L11.125 4.13172C10.6752 3.87239 10.1206 3.8722 9.6709 4.13172L6.80762 5.78504L3.94434 7.43739C3.77387 7.5358 3.62779 7.66553 3.5127 7.81727L3.39844 7.75184C3.3341 7.71457 3.29395 7.64546 3.29395 7.57215V4.21668L8.11426 1.43543Z",
1075
+ fill: "#0A0032"
1076
+ }
1077
+ ) }),
1078
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1079
+ "path",
1080
+ {
1081
+ d: "M28.4292 5.868H30.4836L35.2452 12.3192L40.026 5.868H42.0804V19.5H39.8148V9.7272L35.2644 15.9096L30.6756 9.708V19.5H28.4292V5.868ZM46.1481 7.8072C45.7641 7.8072 45.4313 7.6728 45.1497 7.404C44.8681 7.1224 44.7273 6.7832 44.7273 6.3864C44.7273 6.0024 44.8681 5.676 45.1497 5.4072C45.4313 5.1256 45.7641 4.9848 46.1481 4.9848C46.5449 4.9848 46.8777 5.1256 47.1465 5.4072C47.4153 5.676 47.5497 6.0024 47.5497 6.3864C47.5497 6.7832 47.4153 7.1224 47.1465 7.404C46.8777 7.6728 46.5449 7.8072 46.1481 7.8072ZM45.0921 19.5V9.9H47.2041V19.5H45.0921ZM53.9781 19.692C52.6725 19.692 51.5717 19.2056 50.6757 18.2328C49.7925 17.26 49.3509 16.0824 49.3509 14.7C49.3509 13.3176 49.7925 12.14 50.6757 11.1672C51.5717 10.1944 52.6725 9.708 53.9781 9.708C54.6309 9.708 55.2325 9.8552 55.7829 10.1496C56.3333 10.4312 56.7557 10.7768 57.0501 11.1864V5.1H59.1621V19.5H57.0501V18.2136C56.7557 18.6232 56.3333 18.9752 55.7829 19.2696C55.2325 19.5512 54.6309 19.692 53.9781 19.692ZM52.3077 16.8888C52.8453 17.4776 53.5301 17.772 54.3621 17.772C55.1941 17.772 55.8789 17.4776 56.4165 16.8888C56.9541 16.3 57.2229 15.5704 57.2229 14.7C57.2229 13.8296 56.9541 13.1 56.4165 12.5112C55.8789 11.9224 55.1941 11.628 54.3621 11.628C53.5301 11.628 52.8453 11.9224 52.3077 12.5112C51.7701 13.1 51.5013 13.8296 51.5013 14.7C51.5013 15.5704 51.7701 16.3 52.3077 16.8888ZM66.2665 19.692C64.8329 19.692 63.6553 19.2248 62.7337 18.2904C61.8121 17.3432 61.3513 16.1464 61.3513 14.7C61.3513 13.2536 61.8057 12.0632 62.7145 11.1288C63.6233 10.1816 64.8137 9.708 66.2857 9.708C67.7705 9.708 68.9673 10.2264 69.8761 11.2632C70.7849 12.2872 71.1881 13.6056 71.0857 15.2184H63.4441C63.4697 15.9608 63.7513 16.5816 64.2889 17.0808C64.8265 17.58 65.5113 17.8296 66.3433 17.8296C67.5209 17.8296 68.3273 17.3816 68.7625 16.4856H70.9705C70.6761 17.42 70.1129 18.188 69.2809 18.7896C68.4489 19.3912 67.4441 19.692 66.2665 19.692ZM66.2281 11.4744C65.5369 11.4744 64.9417 11.6728 64.4425 12.0696C63.9561 12.4536 63.6425 13.004 63.5017 13.7208H68.8201C68.6665 12.9784 68.3529 12.4216 67.8793 12.0504C67.4057 11.6664 66.8553 11.4744 66.2281 11.4744ZM73.2546 19.5V9.9H75.3666V11.2056C75.9682 10.2072 76.941 9.708 78.285 9.708C79.3986 9.708 80.2882 10.0728 80.9538 10.8024C81.6194 11.532 81.9522 12.5048 81.9522 13.7208V19.5H79.8402V14.0664C79.8402 13.2984 79.661 12.7032 79.3026 12.2808C78.9442 11.8456 78.4578 11.628 77.8434 11.628C77.1138 11.628 76.5186 11.9032 76.0578 12.4536C75.597 13.004 75.3666 13.7784 75.3666 14.7768V19.5H73.2546Z",
1082
+ fill: "#0A0032"
1083
+ }
1084
+ ),
1085
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("defs", { children: [
1086
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("clipPath", { id: "clip0_13262_15389", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1087
+ "rect",
1088
+ {
1089
+ y: "2.50274",
1090
+ width: "20.6599",
1091
+ height: "11.5209",
1092
+ rx: "4.98265",
1093
+ fill: "white"
1094
+ }
1095
+ ) }),
1096
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("clipPath", { id: "clip1_13262_15389", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1097
+ "rect",
1098
+ {
1099
+ width: "8.92839",
1100
+ height: "22.3152",
1101
+ fill: "white",
1102
+ transform: "translate(5.91797 0.841991)"
1103
+ }
1104
+ ) }),
1105
+ /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("clipPath", { id: "clip2_13262_15389", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1106
+ "rect",
1107
+ {
1108
+ width: "20.556",
1109
+ height: "14.5308",
1110
+ fill: "white",
1111
+ transform: "translate(0.103516 8.62676)"
1112
+ }
1113
+ ) })
1114
+ ] })
1115
+ ]
1116
+ }
1117
+ );
1118
+ }
1119
+
1120
+ // src/components/icons/icon-close.tsx
1121
+ var import_jsx_runtime15 = require("react/jsx-runtime");
1122
+ function IconClose({
1123
+ width = 24,
1124
+ height = 24,
1125
+ color = "currentColor",
1126
+ ...props
1127
+ }) {
1128
+ return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1129
+ "svg",
1130
+ {
1131
+ width,
1132
+ height,
1133
+ viewBox: "0 0 24 24",
1134
+ fill: "none",
1135
+ xmlns: "http://www.w3.org/2000/svg",
1136
+ ...props,
1137
+ children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1138
+ "path",
1139
+ {
1140
+ d: "M19.1476 18.3525C19.2029 18.404 19.2472 18.4661 19.278 18.5351C19.3087 18.6041 19.3252 18.6786 19.3266 18.7541C19.3279 18.8296 19.314 18.9047 19.2857 18.9747C19.2574 19.0447 19.2153 19.1084 19.1619 19.1618C19.1085 19.2152 19.0449 19.2573 18.9748 19.2856C18.9048 19.3139 18.8298 19.3278 18.7542 19.3264C18.6787 19.3251 18.6042 19.3086 18.5352 19.2778C18.4662 19.2471 18.4041 19.2028 18.3526 19.1475L12.0001 12.7959L5.64763 19.1475C5.541 19.2469 5.39996 19.301 5.25424 19.2984C5.10851 19.2958 4.96947 19.2368 4.86641 19.1337C4.76335 19.0307 4.70432 18.8916 4.70175 18.7459C4.69918 18.6002 4.75327 18.4591 4.85263 18.3525L11.2042 12L4.85263 5.6475C4.75327 5.54087 4.69918 5.39983 4.70175 5.25411C4.70432 5.10838 4.76335 4.96934 4.86641 4.86628C4.96947 4.76322 5.10851 4.70419 5.25424 4.70162C5.39996 4.69905 5.541 4.75314 5.64763 4.8525L12.0001 11.2041L18.3526 4.8525C18.4593 4.75314 18.6003 4.69905 18.746 4.70162C18.8917 4.70419 19.0308 4.76322 19.1338 4.86628C19.2369 4.96934 19.2959 5.10838 19.2985 5.25411C19.3011 5.39983 19.247 5.54087 19.1476 5.6475L12.7961 12L19.1476 18.3525Z",
1141
+ fill: color
1142
+ }
1143
+ )
1144
+ }
1145
+ );
1146
+ }
1147
+
1148
+ // src/components/icons/icon-courthouse.tsx
1149
+ var import_jsx_runtime16 = require("react/jsx-runtime");
1150
+ function IconCourthouse({
1151
+ width = 16,
1152
+ height = 16,
1153
+ color = "currentColor",
1154
+ ...props
1155
+ }) {
1156
+ return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1157
+ "svg",
1158
+ {
1159
+ width,
1160
+ height,
1161
+ viewBox: "0 0 16 16",
1162
+ fill: "none",
1163
+ xmlns: "http://www.w3.org/2000/svg",
1164
+ ...props,
1165
+ children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1166
+ "path",
1167
+ {
1168
+ d: "M14.6668 14.1667H13.8335V7.33333C13.8335 5.72 12.9468 4.83333 11.3335 4.83333H8.50016V4.01333C8.88683 4.10667 9.2735 4.16 9.66683 4.16C10.2935 4.16 10.9202 4.04 11.5202 3.8C11.7068 3.72667 11.8335 3.54 11.8335 3.33333V1.33333C11.8335 1.16667 11.7535 1.01333 11.6135 0.920001C11.4735 0.826668 11.3002 0.806668 11.1468 0.866668C10.1935 1.24667 9.14016 1.24667 8.18683 0.866668C8.0335 0.806668 7.86016 0.826668 7.72016 0.920001C7.58016 1.01333 7.50016 1.16667 7.50016 1.33333V3.33333V4.83333H4.66683C3.0535 4.83333 2.16683 5.72 2.16683 7.33333V14.1667H1.3335C1.06016 14.1667 0.833496 14.3933 0.833496 14.6667C0.833496 14.94 1.06016 15.1667 1.3335 15.1667H2.66683H13.3335H14.6668C14.9402 15.1667 15.1668 14.94 15.1668 14.6667C15.1668 14.3933 14.9402 14.1667 14.6668 14.1667ZM4.82683 14.1667H3.16683V8.5H4.82683V14.1667ZM7.4935 14.1667H5.82683V8.5H7.4935V14.1667ZM10.1602 14.1667H8.4935V8.5H10.1602V14.1667ZM12.8335 14.1667H11.1602V8.5H12.8335V14.1667Z",
1169
+ fill: color
1170
+ }
1171
+ )
1172
+ }
1173
+ );
1174
+ }
1175
+
1176
+ // src/components/icons/icon-coin.tsx
1177
+ var import_jsx_runtime17 = require("react/jsx-runtime");
1178
+ function IconCoin({
1179
+ width = 16,
1180
+ height = 16,
1181
+ color = "currentColor",
1182
+ ...props
1183
+ }) {
1184
+ return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
1185
+ "svg",
1186
+ {
1187
+ width,
1188
+ height,
1189
+ viewBox: "0 0 16 16",
1190
+ fill: "none",
1191
+ xmlns: "http://www.w3.org/2000/svg",
1192
+ ...props,
1193
+ children: [
1194
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1195
+ "path",
1196
+ {
1197
+ d: "M14.6136 11.1667C14.3936 12.9401 12.9402 14.3934 11.1669 14.6134C10.0936 14.7467 9.09357 14.4534 8.31357 13.8801C7.8669 13.5534 7.97357 12.8601 8.5069 12.7001C10.5136 12.0934 12.0936 10.5067 12.7069 8.50006C12.8669 7.9734 13.5602 7.86673 13.8869 8.30673C14.4536 9.0934 14.7469 10.0934 14.6136 11.1667Z",
1198
+ fill: color
1199
+ }
1200
+ ),
1201
+ /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1202
+ "path",
1203
+ {
1204
+ d: "M6.66064 1.83301C9.23993 1.83326 11.3453 3.86201 11.48 6.41211L11.4868 6.66113C11.486 9.32416 9.32379 11.4861 6.66064 11.4863C3.99695 11.4863 1.83376 9.32379 1.8335 6.66016C1.8335 3.9963 3.99679 1.83301 6.66064 1.83301ZM6.6665 3.27344C6.27525 3.27356 5.93487 3.50201 5.771 3.83203C4.94463 3.9947 4.3335 4.7462 4.3335 5.61328C4.33354 6.00558 4.42304 6.37269 4.63818 6.68164C4.66671 6.72258 4.69726 6.76143 4.729 6.79883C4.48939 6.982 4.33357 7.27008 4.3335 7.59277C4.3335 8.48803 4.93148 9.2422 5.75049 9.45801C5.90533 9.81094 6.25852 10.0594 6.6665 10.0596C7.06141 10.0596 7.40374 9.82611 7.56592 9.49121C8.39042 9.32705 9.00049 8.5787 9.00049 7.71289C9.00047 7.32502 8.91261 6.96047 8.69873 6.65137C8.66984 6.60964 8.63919 6.56935 8.60693 6.53125C8.84508 6.34793 9.00049 6.06083 9.00049 5.73926C9.0003 4.84357 8.40128 4.0892 7.58154 3.87402C7.4264 3.5216 7.07419 3.27344 6.6665 3.27344Z",
1205
+ fill: color,
1206
+ stroke: color
1207
+ }
1208
+ )
1209
+ ]
1210
+ }
1211
+ );
1212
+ }
1213
+
1214
+ // src/components/icons/icon-cards.tsx
1215
+ var import_jsx_runtime18 = require("react/jsx-runtime");
1216
+ function IconCards({
1217
+ width = 16,
1218
+ height = 16,
1219
+ color = "currentColor",
1220
+ ...props
1221
+ }) {
1222
+ return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
1223
+ "svg",
1224
+ {
1225
+ width,
1226
+ height,
1227
+ viewBox: "0 0 16 16",
1228
+ fill: "none",
1229
+ xmlns: "http://www.w3.org/2000/svg",
1230
+ ...props,
1231
+ children: [
1232
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1233
+ "path",
1234
+ {
1235
+ d: "M3.85303 4.86667H10.147C11.1573 4.86668 11.5914 5.00442 11.811 5.22116C12.0282 5.43571 12.1665 5.85839 12.1665 6.853V7.23972C12.1665 7.33013 12.0909 7.40653 12.0005 7.40671H2.00049C1.90996 7.40671 1.8335 7.33024 1.8335 7.23972V6.853C1.83352 5.95674 1.94725 5.5223 2.1333 5.28757C2.29732 5.08064 2.60747 4.92401 3.36279 4.87936L3.36182 4.87839C3.51875 4.87187 3.68056 4.86668 3.85303 4.86667Z",
1236
+ fill: color,
1237
+ stroke: color
1238
+ }
1239
+ ),
1240
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1241
+ "path",
1242
+ {
1243
+ d: "M2.00016 8.90667C1.6335 8.90667 1.3335 9.20667 1.3335 9.57334V11.5133C1.3335 13.5 1.84016 14 3.8535 14H10.1468C12.1268 14 12.6468 13.52 12.6668 11.62V9.57334C12.6668 9.20667 12.3668 8.90667 12.0002 8.90667H2.00016ZM4.64016 12.3733H3.50016C3.22683 12.3733 3.00016 12.1467 3.00016 11.8733C3.00016 11.6 3.22683 11.3733 3.50016 11.3733H4.64683C4.92016 11.3733 5.14683 11.6 5.14683 11.8733C5.14683 12.1467 4.92016 12.3733 4.64016 12.3733ZM8.36683 12.3733H6.0735C5.80016 12.3733 5.5735 12.1467 5.5735 11.8733C5.5735 11.6 5.80016 11.3733 6.0735 11.3733H8.36683C8.64016 11.3733 8.86683 11.6 8.86683 11.8733C8.86683 12.1467 8.64683 12.3733 8.36683 12.3733Z",
1244
+ fill: color
1245
+ }
1246
+ ),
1247
+ /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1248
+ "path",
1249
+ {
1250
+ d: "M14.6666 8.88667V5.39334C14.6666 3.30667 13.4732 2.4 11.6732 2.4H5.71991C5.21324 2.4 4.75991 2.47333 4.35991 2.62667C4.04658 2.74 3.76658 2.90667 3.53991 3.12667C3.41991 3.24 3.51324 3.42667 3.68658 3.42667H10.9332C12.4332 3.42667 13.6466 4.64 13.6466 6.14V10.92C13.6466 11.0867 13.8266 11.18 13.9466 11.06C14.4066 10.5733 14.6666 9.86 14.6666 8.88667Z",
1251
+ fill: color
1252
+ }
1253
+ )
1254
+ ]
1255
+ }
1256
+ );
1257
+ }
1258
+
1259
+ // src/components/icons/icon-qr-code.tsx
1260
+ var import_jsx_runtime19 = require("react/jsx-runtime");
1261
+ function IconQrCode({
1262
+ width = 96,
1263
+ height = 96,
1264
+ color = "currentColor",
1265
+ ...props
1266
+ }) {
1267
+ return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
1268
+ "svg",
1269
+ {
1270
+ width: "96",
1271
+ height: "96",
1272
+ viewBox: "0 0 96 96",
1273
+ fill: "none",
1274
+ xmlns: "http://www.w3.org/2000/svg",
1275
+ xmlnsXlink: "http://www.w3.org/1999/xlink",
1276
+ children: [
1277
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("rect", { width: "96", height: "96", fill: "url(#pattern0_13262_14636)" }),
1278
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("defs", { children: [
1279
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1280
+ "pattern",
1281
+ {
1282
+ id: "pattern0_13262_14636",
1283
+ patternContentUnits: "objectBoundingBox",
1284
+ width: "1",
1285
+ height: "1",
1286
+ children: /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1287
+ "use",
1288
+ {
1289
+ xlinkHref: "#image0_13262_14636",
1290
+ transform: "translate(-0.585526 -0.641953) scale(0.0018556)"
1291
+ }
1292
+ )
1293
+ }
1294
+ ),
1295
+ /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1296
+ "image",
1297
+ {
1298
+ id: "image0_13262_14636",
1299
+ width: "1170",
1300
+ height: "2532",
1301
+ preserveAspectRatio: "none",
1302
+ xlinkHref: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAABJIAAAnkCAIAAADZI9xUAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAEkqADAAQAAAABAAAJ5AAAAADL9lqOAABAAElEQVR4AezdB3gURRvA8Vw6JBBCIIQeepMmSFcUxY4gomJHURFRBAXFgqCCih0L2FFBsX+iqCgooAiC0qVI7y1ACKQnd/e9sLhZdvcum+Mud5f757knzs7Ozs7+9k7uzczO2FIbtwnjBwEEEEAAAQQQQAABBBBAIFAFwgO1YbQLAQQQQAABBBBAAAEEEEDguABhG+8DBBBAAAEEEEAAAQQQQCCgBQjbAvr20DgEEEAAAQQQQAABBBBAgLCN9wACCCCAAAIIIIAAAgggENAChG0BfXtoHAIIIIAAAggggAACCCBA2MZ7AAEEEEAAAQQQQAABBBAIaAHCtoC+PTQOAQQQQAABBBBAAAEEECBs4z2AAAIIIIAAAggggAACCAS0AGFbQN8eGocAAggggAACCCCAAAIIELbxHkAAAQQQQAABBBBAAAEEAlqAsC2gbw+NQwABBBBAAAEEEEAAAQQI23gPIIAAAggggAACCCCAAAIBLUDYFtC3h8YhgAACCCCAAAIIIIAAAoRtvAcQQAABBBBAAAEEEEAAgYAWIGwL6NtD4xBAAAEEEEAAAQQQQAABwjbeAwgggAACCCCAAAIIIIBAQAsQtgX07aFxCCCAAAIIIIAAAggggABhG+8BBBBAAAEEEEAAAQQQQCCgBQjbAvr20DgEEEAAAQQQQAABBBBAgLCN9wACCCCAAAIIIIAAAgggENAChG0BfXtoHAIIIIAAAggggAACCCBA2MZ7AAEEEEAAAQQQQAABBBAIaAHCtoC+PTQOAQQQQAABBBBAAAEEECBs4z2AAAIIIIAAAggggAACCAS0AGFbQN8eGocAAggggAACCCCAAAIIELbxHkAAAQQQQAABBBBAAAEEAlqAsC2gbw+NQwABBBBAAAEEEEAAAQQI23gPIIAAAggggAACCCCAAAIBLUDYFtC3h8YhgAACCCCAAAIIIIAAAoRtvAcQQAABBBBAAAEEEEAAgYAWIGwL6NtD4xBAAAEEEEAAAQQQQACBSAhOSyDGFp4YaasYYasQbouLsJUPt8XawmLDbdG2sCibLcoWFmkLi7DZIuR3mCTk94m0LUziZdkMD7OVxcDZ6QgLk5fdqfx2SsJ+YtMediLtDCt0OgucYQVOZ74zLNfhzHU6sx3OLLsz0+HMsDuO2CXztO4LByOAAAIIIIAAAgggUIYECNtKeDOjbRG1osNrRoWnRIcnR4ZXjZRQrYRVlP3ix2NReUnIevzHpvzH+mU7sxyOQ4WO/QWOfQWOPQX2HfkS4Fk/nJIIIIAAAggggAACCJQxAcI2azc00hbRJDayYUx4vZiIGlHWjqGUhwK2uPCIuOiIOtHK8fa9BY4teYWb8uwbconfPDTlMAQQQAABBBBAAIFgFrClNm4TzO33edttCRGRLctFtigX0SDG5yfjBG4F7JvyCtfmFP6T45RRlPwggAACCCCAAAIIIBAyAvS2ub7V0bao9nGRbctH1D3Z7eO6KHtKQyCiYYy8IluVL1yeXbAsKyyPkZOlwc45EEAAAQQQQAABBPwuQNhmfgskPIjqGB/Zupz5bnL9JxCRGn38VT+mYHGm9L/5ryGcGQEEEEAAAQQQQACBUhKIqJSUUkqnCp7TRHWJj74wQQKD4GlyyLU0PCUqom5MmMxVuTM/5C6eC0YAAQQQQAABBBAIMQHCtlNuuEwLGd2zosRs4fHMD3mKTABuyM2KaBRri7HJbJNMVRKAN4gmIYAAAggggAACCHhLgLCtSNKWGCEBW3S3+BLPWF9UB6lSFZCVBiJSY2zlwh17C8JyedStVPE5GQIIIIAAAggggECpCRC2naQ+HrP1TIjqEFdq9JzIWwKykp6tXIRjTz6Rm7dIqQcBBBBAAAEEEEAgoAQI247fjuNjIy8kZguod2bJGiOL6dmiwx3bWZi7ZG6URgABBBBAAAEEEAgKAZ7gOn6bos6tENWRfrageMe6bKTcQbmPLnezAwEEEEAAAQQQQACBoBUgbAuL6hofdQ5f94P2LaxpeHT3CnI3NRkkEUAAAQQQQAABBBAoCwKhHrbJVITyRV9mtuCnLAjYwmTxBrmnZeFauAYEEEAAAQQQQAABBP4TCO14JTY8qlNceBXWHP/v7RD8/w2vGin3VOaWDP5L4QoQQAABBBBAAAEEEDgpENLfbmXeyMiW5XgvlDEBuaeRZ/GkYhm7q1wOAggggAACCCAQ0gKh29EUXi0qsl35wLn5sRExybFJ8ooKjzyQe3h/zsHMwqzAaV5wtUTurP3fXMf+guBqNq1FAAEEEEAAAQQQQMBUIHTDtsg25SOqR5milGamRGsX1Tj7strdO1ZpFa55xs4Z5lx+aN0Pu3/7dscvOfZcXzfp/OpduiS30Z1lysavd2Xv02W62iwfWf72RlclRBdN7vLMqrcLnYWuyvs0X+6s3N/8nzJ8ehYqRwABBBBAAAEEEECgdARsqY31X9ZL58T+PUt4cmTsLVXkOSj/NqNN5eZPnzmsdlx1N83Ylb3/8eWv/nVwlZsyp7krpVzVb3q8ERepHy960+8Prji8zkrlbSo3e6bdA7XKV9MWbj+zX549T5tTmmlHWmHuhwcdB/wTN5bmlXIuBBBAAAEEEEAAgTIvEKLPtkW0KOf3mK1v3Qs/7PaM+5hN3n8SC73Xddyltbr77r04ts09xpjN4unCbRF3N7n+g27P6mI2i4f7rpjcX7nLvqufmhFAAAEEEEAAAQQQKDUBP3c3ldp1nnKiSFtkUz9/oT+rSqvHW9+tHRXpcDo2Ht2+/PC6hKj4tknNpAdMbbMtzDau7bC92WnLD69VM72V6F37gq7JZ3pWW63yKc+2e6B15aaeHe7ro+QuF/yeGVbo9PWJqB8BBBBAAAEEEEAAAZ8KhGLYFtEoJqJetE9Z3VcuYaNEOxG2CLXYV9t/fv6f97IKs9WchhXqTu48Rg3eZJ6SB1rcduPvI9QC2kT3ah1aJDbam33g+13z8x352l3u00kxiQ+2HKiWkcMvs9ytd0Xt8x9pNcjjbjr1pL5LyF2We21f5/MnA313CdSMAAIIIIAAAggggIAIhOIgyYj6Mf699xfV7JYcW1ltw6dbfxi74nVtzCa7Nh3bfuuCR/blpKnFWlduIs/CqZtq4ok2Q1/vNHpwk/5Pth36afcXy0WUYLHph1veWTEqXqlKZkB5Z8MXarVuEhWi4l9o/9D4M4dpY7aPt3w3c+dcN0f5ZZff77VfrpqTIoAAAggggAACCJQxgZDsbavr57Ctd53z1beRzPU/ftVkdVObkFkcP9w046GWt6uZbSs3W3HqOMlmCQ361u2pFmhUMfXq1Is/2vyNmuMm0T2lgwSQSoE8e/7jK14ND7O5Ka/ukkGV6oGSeSjvyGPLXllwYOmoloPUMgGSiPD3vQ4QB5qBAAIIIIAAAgh4SyA6MTaxa3JU7diw6pGFSWHOqDCnLcwpnUHhTklY+zpZTFtaf1D0uFAxRU/sdjhP/Bz/j8PucGRlZWdmZWVlZh08dLigoIysCBVyYVt49aiIuv4cISlvrXrxNdX339KD/6hpY+LvQ6fsrRWXoitTN75GsTm6AsqmzNf/WKu71F2T/52+LXNX/fjaao7FxG/7/x69fOLhvCMWy5dyMbnXcscde8vIx7WU9TgdAggggAACCCBwioAtLKVPqvPS8vZop/34jkCZQSDcJnNB2E6MI4yQBb5iY2KSKidK+woKCzdv3rp7z95TriI4N0IxbPPK3wA8vt3yYJuMS8y15x//Y4TNtuTgajdVbTi6ze60q0/BGXvD1mdslblMtFObrD2y2U2F6q6hzW5UH5z7N2PrB5v+p+6ymJAOuhfXTJm+dabF8v4pJp9fwjb/0HNWBBBAAAEEglUgJjq6cuXEuLjyMTEx8m3N4XAUFtqPHjt2qAx13Xhwb6ITY5KHN8itK6FaoERrxV5FVGRk0yaNqlatsmbt+mDvdgu9sC3Zz0tsywrUHb+/ptg3mVIgpVwVNWaTnH+PbtUdKF1kr6//+N5mN8pfGGTXgv1Lv9kxR1fGuNk8oeF19S5T8u1Ox5gVr0lwaCzmJmfj0W0j/35h87HtbsoEyK5wf9/xAHGgGQgggAACCCBgUUBitqSkomkIwsPDo6PDqyRVlu6cvXv3W6ykjBWLSYpNGl0/NzFoAjatv/S8tTuz9dJlK4M6cgu9sK1yMF1yi0oNte856VvTbirpdzZ8Pn/fX1JyT/aBxcdX5S7m4yQrrY1pM0TtoJOpRNYc2Wis1k2OrMF97fz7CxzBMfIwPKjuuBt2diGAAAIIIIBA6QhIP5vpieLKx5nmh0Jm1XuCNWZT7k5c+fLNmzVZueqU54+C68YFUwzjFVlb5aJp971Soe8qkX62OxsX9ctlFmT/m7HF9HQbjm6Vl+kuY6b0szX/LxqUteBeXzfNWMZ9jnZ+S/clA2FvEN3xQOCiDQgggAACCCAgYyNNEWJi/Dw/gmmrSiEzvl7F3PrFdAyUQjNO8xTSX1q+fLns7JzTrMdfh4de2BYXNGHbrQ37Nk2or74zpm75Nsd+ukuQVY1NkhGVap3jV795+nWqtQVmwhY8dzwwAWkVAggggAACoSYgz7OZXrKrfNPCpZ8p83Dk5uX54rzxrRILfVGvps7Y8JgaMVXrlEtJjKyYac+JrZ27Z9++wgIvn7ZSQgJhm0Y9sJO2+OBYqq51YtPBTa9TLXdm7f1g49fqpseJkS1uUxdbm7Nn4fx9SzyuKlgODJY7HiyetBMBBBBAAAEEPBBoUD+1a5eO1g+c+vHnMpm9+/IVKsRfc1XvLp071qpZo2bN6jIOMDc3L+3gwc1bts6eM2/2L/PSDh5yX4PFvZF1Y03jp5oxyddXv7RX1e7F1rP06NrXdkzfkrPLWDIhssJ5lc+6NuXChuXrqHsdDzv2H0ibO3/B7wsWleiBNHkQMTGxkkweo1alTVSsUGHP3n3anCBKh1xvW1ik+Z9PAuqe1Ymr8Vqn0dHhJ2dPkflCHlr6Yrb9dLt0O1ZpfUmtc5QrzS7MeXb1OwF11b5qTDDccV9dO/UigAACCCCAQGAIdD+76+hHRlhvy7RPvnATtsmkKcPuvatvn8slVNPWGRsbU7tWTXmde063J8c8PPXjz156dfKxY5naMh6kndVktJpJDBkVHlkxMq5chPmYUu2JYsKjjs/Rb/hJLVfjtpp9LqnSTbdHoq/qKdWuvOJS+f3tzB8tXoIcdd89gxo3bjjqkScyjh7V1Smb5ePKGTODJSc4up6CRdMr7awWW+WdLk8lRldUa3ty5aTV6f+qm54losKjHtUs1DZp/fT9uQc9q4qjEEAAAQQQQAABBEokoJ2askQHGgs3athgxhfTbrr+Gl3MpisZEREx4Obrf/1pRutWZ+h2lXTTUcn8iChbZGy458/71YlNubl6L2PMpp6sXLlyZ3ftdEP/fhb1rr36yhbNm4Y5nYV2097BsHKxQRy2hV5vW6EzLMIk1lffH/5NJEYnSMxWo3yy2ox3N3zx9faf1U2PEzc16F2vQi3l8I1Ht0/b8q3HVQXZgXLH+UEAAQQQQACBkBfw72psyurPp38TOnds//akl+Pj47VVbdm6bdv2nWlpB1OqJdeuXbNeal31MTyZh2PalMm3DByybIXMN+7hT2E5829TkbaIGE/DNnmYrWNCq0uqFvWz5Tryd+buS8tPrxWbXCu6mnSdSXMjIyPr1Utt0+qMX+b+5r7155zd5fzzjg8rkyvNyso2LRwd7eeVwExbZTEz5MI2Z6bDFhOgs5JUiIp/u8uTanAlt/CLbbMmrvvI4r10Uyw5NumuxteqBZ5e9VZJF2pTjw26hNzxoGszDUYAAQQQQAABrwv4dzU2CZ+UK9qwcXO/6wYUe3WyxrexTKVKCa++PEEbs/00+9fXJr0ja0lrCzdu1GDQ7bdc2ftyJXiT8m+98VKPi/tYHGqorUrSEj45XXx3jjze23ZyhOS+vINf7Z/z48E/dIcrm/mOgmP2LO2uhuVrn5/UUQI/JfNA/uHP9v00fe+PBc7CylEJ9+zrffGF50dFHY+yKidWatiw/sI//8rJcfnEUJPGDaVTTqnqj4WLtSfSpuVa5MfUVlssMNOhF7Zl2cOSXLz1/HqLykeUm9xprHbqyBk7fpHhkV5p1IgWt5WLjFWq+nHXb38fWu2VaoOiEqfccX4QQAABBBBAIOQF/LsaW1KVJOUOyEwbnoVPcviYRx9Uwz/ZfO7FVye/PcV4YyUyfOChx/9cvPTZ8Y9LlCIFqlRJemDYkLFPTTAWLjZH7bgzlowKL+ptk74yCb3251uaBEVmcGgSl9q2QhOlTofTsfrYxm8PzJOYTXIOF2RIj1nt2rWkk002pQHVkpMlFnW16lrVqlUG33mbDAqVwjIZybr1G5RqTX+7uRzT8oGTGXph22F7WJ3A8T/ZkpiImNc7jW5d+eR7V3K/3zV/9PJXTZ/+NG29LKLtcJrHJ+2TWqozkeQU5r64xuTjbVpn2ch0yh3nBwEEEEAAAQRCXsC/q7FVqXyyty0tLc2zW9GpQ/s+V1yqHvvGm++ZxmxqgS++npGUlPjQiPuUnBv6X/3SK5OOHjumFjj9hPS2qfORSMSV47C6/EBSVKUG5WqH246HlPKzM3f/giPLjxQWtW3vvv0zvv1h6bIVSoH8/AIZAqqkdb/LlYu99+474uNProT+x6IlbqZy0R4rk53IWbQ5AZ4OubDNcdj8CUU/3ieZLOTlsx4+q0pLtQ0Ssz2y7GVnmEnnuFpGTTRLaDCmzZCmCQ0O5BySEZXf75qn7lIS16RerObIJ+rxNkPUTV2i/H89ckr+2Db3ZBeeXCnuhTXvLzu0Rlc+KDYD8I4HhRuNRAABBBBAoIwJuOpmcZXv3ctXJ9VIS7PUH2U8u8wbqWbu3r33tUlvq5uuEh98NH3grTcpHXSRkRHnde82Y+aPrgq7yrfbXf4FXMI29dm2Akdhjt162JZQv3xN9Yx789JWHTuli0xWbNu5a7e81DKmCVu47c6Bt9SonqLslYBt4SKXIySVMurlNG/WRB4FXLNuvcSEppUHWmbohW0HAuvGRNginms34uxq7dR3xsyd8x5d/oqrrjO1mJKQx+Emdx6bFHN8fp/q5as+0+7+3dkHVhxeqy0WEV40KLRiVPw51dpr97pJN6hQ1C8pB7opGci7HAF2xwPZirYhgAACCCCAgC8EZEZE6RRSaj7gotfI/XllZo4LLzhPLTPxjbfy8vLVTVcJWX173DMvnnN2Z6VAdLTnsz6aniLKFqHOJHmity23QmRc+4rNu1ZqWzW6UpY9959jG+enL92dd0B3eGJUxTqx1dXMLHvOoYKMcuExjeNSOyacIasCVLkrfv+BA/LMngz4VAMttbyauLpv75ZnNFc31/+78aCLFdvUMtqEPO54ZtvWfy9dXljoMjTVlvdvOvTCtr0Fx5edCIy5JG1h4ePa3ndBjS7qm6BEMZsc1S6phRKzKTXYwmw9a3TRhW1q5aGYkC5LueP8IIAAAggggAAC/hPQPpAmy2GrDUmuWkVmfQyPCN+9Z++ePfsKC10OCuvauUNCwsnVoWRGjTm/zlcrcZ+Y8d0P8nJfxuO9J6YkORkKStgmkdjNNa44O7GtfCNV6uyZ1OmalIs+2vPd1wd+0Z5FlnGLjzi54lyh0y6zlVSOqnhj9csvr3rOyYWLTzwJKDNDLl+x+sv/fXv4cLr2cCXdrWsnbSgrmW4mIzEeruTIIgqyzN3WbTtcFQic/FAM2+zb8yNSvfzHBs/u6OjWgy+vXfSHk5LGbHLSQof+4y091J41pkweJfeasK1M3lkuCgEEEEAAgSASkGfM1NYeOHBQus6uurLX3YNuq1O7lpqfkXFU4pMPp35qOjKwSeNGakmZmSM9/Yi66cdE5PEpSU7OJFkzpuqV1Xq0jC9qp9KwmrHJV6f0lOfWfj28RG1qlC0qNuLkt3Hpaou2RfVPuaRvtfPVAkpCZpJs0/qMvPy8L776Njv7lDn9ZfG6G6+7RlteeszSjxyRMFibKfGe6brb2jJVkpII27QgAZS2b88LhLBt5Bm3X6156mzmzrmPLHvF4vNsquZfh/7ZnrmnbnwNJUdiNqlH3askxq2cbHEaEnlM7pUOD6uHD1/yzNqMzcrm4byA+L+D2jaLCbnXFktSDAEEEEAAAQSCUaB+vdQbruvXof2Z8j0+KioyMyvryJGMn+fMnfLhJ3v27guQK0r6bz4SaY+EFm++/qKywpi2edKZNnDAjbJg9MhRY2b9fErflBRLTq6iFt60eaua9mMiIiw8xhYd8d+0ItVjqspL2iO9Z7LQlPrMm+Q0LF/n+uqXHio4svLEA2yySLdMZKL2yFWIiOuR1MHhlOFwJj8ysFPGMco6bN9894M88KaUkN5LCXrlaT3tAbI58v57tTmSlgPvf/AxN8MspYyrKUZ1Vfl9M+R620TcviUvrHsF/9IPaXrDzQ16a9vgQcwmh+fZ8+5YOPrBMwa2TGy8JzvttXVTNx3brq1W0un5GfLSZZpuVo0p+lOQFDiYl74nO5gm2DFe1PF7zQ8CCCCAAAIIlF0Bidluu+UG9foqVqggr9tvvUl6tJ4Y95ya79+EOh+JNOOpsY9IkKm2R2bR0M6JEh8XN/m1FyTS+N+M79UykqhapShsMx0xqC1cOunI8KL5SJQzymLZn+z94Ye0BTLf3gVJHSVUqxN7crKQpnGpF1fpuurYRmeYUyaQlNGVaiPDbbZYW4ws7LY4Y/XUPTN35e5vXaHJTbaLGjaor5SRcYxNmzRqsr6hsjxdbGzMPXffUaGCpWkX1v27wX3MpjYj8BNFZIHfVm+10L4xz741P6Ke38ZJDmjY964m/XWXs+DSj3U5ppvXzhu+K/uUPx3tzTkw/K9nTAuHeKbcZbnXIY7A5SOAAAIIIFC2BbQhkPZKZbp87aZ/07JsmtoAaXBBYeGUDz/+YdacTZu3REZEntW+beeOZ0n8qS5RIKHdipX/bN1W9Lf4KlVOrh8g9Rx2PULyjYnP204+VqaesCgh03U8/oTXvjTKStnqfCRyjr15Bz/dN+vL/XOOn8+ROzNtvowCG173xvjI48+wSedb7diUuuWqb8vZk+/IP1aYJd1rErAdL3x8wSvnsqPrXto+dWvO8akjZQqTin86ru13Za1aJweUydwh9VLrKGHbrTdfX6vmyfwTR7v8tWv3ng8++sTl7v92SA/tf8mA/m8ohm3Sd1u4PsePYdtltbob3xQWp2q0/dcTbayBHJ2A3GW517pMNhFAAAEEEECgLAnI2EjTy6lXr65pvl8y1UXb5Ow7du4aOGiodqCjzC8ir98WLHx70svKZI/SvzR0yJ3DRz6qtlYdHyg56twk6l41cfGFPZT1tdUcbUJOrd08zbT0j/1xZIUssa3UI2tkr8/aptaZ5yjYnLNzbdaWDglnKJkVIspXi06SsE2+nOXYc4/aMytFnhz+JisHbM7ZpcRsSmGJuJavXK2GbQJSOfH4oDBZU7tZ08bqWdwkZE3z1ya9k5tb/F/wPZvb082pfbQrJMM2GSe5JsfRPi68aohevo/eTAFVrSOtUO5yQDWJxiCAAAIIIICA1wVkMKRpndKLZZrvl0wZ1ydP3MmpC+322+8apo3Z1PbM/33h0PtHvfn6S0rOJRedP+bJZ9XVsY9kHFVL1qldU037MSFTR27J2SUvV204Wpi1L69o2kzpcJPITSmc68jLKCgK2xxOhzwRp61Hnkk7dPiwOoJUorWY2Bj5LSMeRz/xjPZZQTkqOjpq2L2DtY+6yZyck95675CFxQBkphNZBE976oBNB9AbujSNHAcKC1flRJ/v5yfcSvOSQ+1ccn/lLofaVXO9CCCAAAIIhJpARES46SW7yjct7OvMRx4fJ69iz/LznHmH09OVbiUZMNmuXZu5835XjpKJTNTDa9VyGbbJE3GyArVaUhKVEhJ6nHu2kiMrB2h3+TptDMbUM+Y48mRuybph1ZWcHEfukYKiuFQypakF+QV2u0MbjCmFZcpNealVSaJjh3a6YtM++Xzjpi3aMqbp9CMZa9auC5aH30I0bJM7V7giO6J5bET1KNO76NPMq+fd59P6Pa58Zfr6ljN6eXz4s6vfkpfHh3vxQPveArm/XqyQqhBAAAEEEECgNAWCYn5Ir4NI59Jffy+/qGcPpeYaKdXUU8hC0mraTW/biFGPq8WUhDw4p4ZtGUeP6fZa2ZQ+LtNiDcvXvrlGrw4JLZW9SzL+eX3HdHXMpGRWiJRRkZXVY3Md+UftJ58iO7G+dlEgWuh05DtP+Wu7rE6emFhJDcbkacCcnBxX8VW3Lp3Us0hC5hFdsHCxNkebVrrsJGftun/37T8g5tq9gZw2//tEILfYW21z7C8oXMo3e29xBlY9cmfl/gZWm2gNAggggAACCFgWUOaHPKNFs5iYaHlYSyaHlCXOZH7IOwbebLmOoCz4z5p1artlHg41/ffS5WpauuPObNNK3XSf0M7eYWXQoPvatHvlgbRce35SVILyaly+jnbRNpnfv2p05frla6mHZNtzDv03t/mu3ANLj661O0/2/sla243K14n9bwk4OSSxUqW6dWqrx0rMpowyVXPUhCwGIPNMqpur/1n7xdcz1E03ib379gdRzCYXErphm1x8wZKswtU8/uTm/RyUu+SeFv4VHDMCBaUvjUYAAQQQQMD3AkExP6RFBuneqVE9RXlpIzHTw5s0bqjmpx08pKY3b9mmXYZu2NDB6i73iQ5ntVMLrFu/QU1bT7iKbTIKM3flFa0UVa9czd7J50oXnFJzk7jUq6pdoKzkJjkyf8mO3H1b/3sQTp5tW5e5ddWJZdxkrzz21rVS66ur9Qw/EZtUjkrocNaZ7c5srTby4MFDpg8ESoEunTuqKygI0Vvvfuh0uOtAc3U56rkCNhG6gySP35JcR8GfWeHVo8KrhLZDwL49S94wmYlE7qkz5+Qfb0peAUcggAACCCCAgP8FgmJ+SItMMt5vwdwflNDiwIG0ruddKhNmuDr2LM2SbtqpMiTYeHni5OeffUI58OyunWQR6mXLV7qqR8mXKLH35ZeoZeb//oeatp6Qx8xs9jCnYaRkpj17XeaWzdk7G5wI1WQ1tk6VWjWNq7cxe4dM6N8srn7FyDj1LLKk218Zaxwy1f9/PzKXye/py9pUbKKsuy1dc4PrXNMrufvu3AMSAdZsl/xfwbCCgoJdu/ZI4KrmqAlR7dK5g7KZmZl1YurIXHWvMSHXIj/G/KDICeneNrlD9o25BX9k/tdDGxS3jEa6FnCGFSzMlHvqugR7EEAAAQQQQCAIBIJifkiLjhJOqD1FyclVZYpIVwfKc2jVkqsqe3NyclesWq0t+dU33ykLlymZ4598tLrm4TdtSSWdXLXKxx++JUGjsinHLl1WTJhnrETJicw5ZZoTtZjM7//F/tlHCk4+MicBWGJURZnxv2NCS23MJlNKLjiyfF763+qBkpDH2/46umbhkaImRdkiJWDrlti2ZmxRzCYlRe+Xeb9J8KY9XEnLYgAySFLS8tjb5LffT0srmrjSWFhy8vNNKjEtGYCZoR62yS2RsK3gN08e0AzA2xniTcqff0zuZogjcPkIIIAAAgiUAQFX80C6yg/wS/7xp9lqC0eNHNaiWVN1U03Ig3zvTp6obn4780dZeUzdlIR0uI1/9kU1p2njRt/9b3pHzRhIdZckateu+cX0KVJGyZQpPUY+PMbjjqbwotlDtCc5HnrNTPtNlsnen1c0nvOUEmFhErP9kPb7tD3f20+d4l+Krc/a+tK2qd8dmC9zTuqOUjalwf9u2DRj5o/ajkdtya5dOiqbH3/6pZTU7jJN5+QG8eNRDA48fk8L5h2zlQuP6ljUk2t6p8kMZIGCxVlyHwO5hbQNAQQQQAABBEJT4N0p02658TplmWx5yO3LTz+Y8MJEWaht2/YdAiLPs3XueJasr12xYgXFJzMr6813PjBaLVr89+xf5vU8/1xlV1LlxGkfvDXzh59WrFy9YtU/ErfIKWrXqnHJhRf07XN5pUoJag2T33rPswfblBps++1htcw7e/Ic+bMPLZK1tm+v1feM+IaRtqLBlLJLFuD+fN9Pvx5eoluWTW3Yjty9r+/8VAZMXp3SMyW6ioy0VHZJjHrocPrCRUsW/PGnLIqgltcm4uLKK1Oz/CKLlf++ULvLVTo7K4jDNltq4zauLiyk8m2JEdE9E6Lan1wEMKSuvQxcbMHf2fmzM5zppyzUWAaui0tAAAEEEEAgNAU2rV1q2rEmC3k1bN5Oa2K9pHRnaQ/UprXzN0q+9ZLaStynu5/d5Z03J0aduji4rD8m8Yk2vlIqGXzviFk//2JaYYUK8e9MekVWKjPda5q55O9lNw64y3SQoWl5Y2ZK77qFfYv5kiwBm0xA0jQuNSmqktSQlp8uE5Bsy9mjfZ7NWLOaI5ORJEUnyBNxNWKqSide9Ne5u/fslQkk1QLGhMSoz44fI8Hqq6+/ZbEjUWJX7cwuxjoDOYfetpN3R77xy/f+MLuTPrdAfr+atk362fJ/Oeo8QsxmykMmAggggAACwScgk3ZEREQb211o10/mYb2kBEjqlIPamiVfuylp6yV1B7rZlL61ocNHPff0WIm71GJK/5u6KYnMzMxHHx/vKmaTAjJy8uaBg8eOHnVtvz6yNIL2WGP66NFjz7/0mgwgNF6jsbCbnMxV6bHFhW3SnybzjsjLTT1udjnCHBLppeUvVcq03nzyGT83h0jQ+9iY8enpRyzGbFLVkYwMNxUG+K5ibnaAt967zTseuf2YkT/vmIvhtd49G7V5QUDGSMv9yp+VQczmBU2qQAABBBBAIGAENm7abNqWrVu36/Ktl8zLy9Mdq2zm5eXr8q2X1B3oflOCsZ6XXTXjux9N65fMb2fOurRP/2+/n+W+HplX45HRT/Xqe/2cX+bl5+sbrxybm5snJzr/4j7Tpn9xmjGbVJi59WjsFvNZSdw31dd7ZSU66zHbwUOHs7Pddd/5urWnWT+9bacAOrMd+T8cjwGiusaHVwXnFJxA23AcLCxYkClTRwZaw2gPAggggAACCJymgIzrMx2p+OeSU2YjlLNYL5mVlR0be3JaRW3zsrL1y71aL6mtx0p6//4Dw0Y8Eh8fd173bql168i8kdLVt3f//t279sydv+DosRI8pb923b933D28XLly3bp0bFA/tUqVpLi4uB07dm7ctGXDps07d+4+/WhNe0Vpr29JGl0/P1HfM6ktE8jprOxsEQvkFhbbNp5tMyeKaBgT1TE+snU5893k+lugcGVOweJM+ybzP5v5u3WcHwEEEEAAAQROS6B+vdQbrusni27LAm5RUZEyRceRIxk/z5k75cNPdM8mWS8ZEx0t65jJPBYxMTEyWlJ6aQoL7RIpSY+N7rkv6yVP6yKD7eDoxJjk4Q1y65ZG5Nb6g+IHSVr3k9lNZP0D3V22fniAlCRsc30jom1R7eMi25aPqGsytNr1YezxrYB9W37h8uyCZVlheaXxfw3fXgy1I4AAAggggAACQSRgC0vpk+q8tLw92rdfw7wVtsnKB5s3b5XZTYLI2FVTCdtcyZzMtyVERLYsF9miXESDmGKKstvHAtK3Vrg2p/CfHJ5k87E01SOAAAIIIIAAAi4FohNjE7smR9WODaseWZgU5owKc9rCnDJjRrjM+hIW5o2H4EoatjlkSKj8HP+Pw+5wyDBX6aHNysyS59mCvZNNvQ2EbSqF24TMadokNrJhTHi9mIgaUW6LstPLAva9BY4teYWb8uwbc8PyffunHS83neoQQAABBBBAAAEEEPCGALNuWFOUOU3X5MgrLNoWUSs6vGZUeEp0eHKkTFtiK89snNYMLZdyZjkchwod+wsc+wocewrsO/LDCojWLPNREAEEEEAAAQQQQKDMCRC2lfCW5jvtW/LkdfKwGFt4YqStYoStQrgtLkJCOFusLSw23BZtC4uy2aJsYZG2sAibLUJ+h0lCfp9I28Ik1pPN8LD/1oIvYTMCu/jxFRTkZXcqv52SkDXVTvw+kXaGFTqdEokVOJ3Se5brcOY6ZQ5PZ5bdmelwZtgdsgJbrhzPDwIIIIAAAggggAACCBwXIGw7vfdBnlN6hMLkxQ8CCCCAAAIIIIAAAggg4BsBBvj5xpVaEUAAAQQQQAABBBBAAAEvCRC2eQmSahBAAAEEEEAAAQQQQAAB3wgQtvnGlVoRQAABBBBAAAEEEEAAAS8JELZ5CZJqEEAAAQQQQAABBBBAAAHfCBC2+caVWhFAAAEEEEAAAQQQQAABLwkQtnkJkmoQQAABBBBAAAEEEEAAAd8IELb5xpVaEUAAAQQQQAABBBBAAAEvCRC2eQmSahBAAAEEEEAAAQQQQAAB3wgQtvnGlVoRQAABBBBAAAEEEEAAAS8JELZ5CZJqEEAAAQQQQAABBBBAAAHfCBC2+caVWhFAAAEEEEAAAQQQQAABLwkQtnkJkmoQQAABBBBAAAEEEEAAAd8IELb5xpVaEUAAAQQQQAABBBBAAAEvCRC2eQmSahBAAAEEEEAAAQQQQAAB3wgQtvnGlVoRQAABBBBAAAEEEEAAAS8JELZ5CZJqEEAAAQQQQAABBBBAAAHfCBC2+caVWhFAAAEEEEAAAQQQQAABLwkQtnkJkmoQQAABBBBAAAEEEEAAAd8IELb5xpVaEUAAAQQQQAABBBBAAAEvCRC2eQmSahBAAAEEEEAAAQQQQAAB3wgQtvnGlVoRQAABBBBAAAEEEEAAAS8JELZ5CZJqEEAAAQQQQAABBBBAAAHfCBC2+caVWhFAAAEEEEAAAQQQQAABLwkQtnkJkmoQQAABBBBAAAEEEEAAAd8IELb5xpVaEUAAAQQQQAABBBBAAAEvCRC2eQmSahBAAAEEEEAAAQQQQAAB3wgQtvnGlVoRQAABBBBAAAEEEEAAAS8JELZ5CZJqEEAAAQQQQAABBBBAAAHfCBC2+caVWhFAAAEEEEAAAQQQQAABLwkQtnkJkmoQQAABBBBAAAEEEEAAAd8IELb5xpVaEUAAAQQQQAABBBBAAAEvCRC2eQmSahBAAAEEEEAAAQQQQAAB3wgQtvnGlVoRQAABBBBAAAEEEEAAAS8JELZ5CZJqEEAAAQQQQAABBBBAAAHfCBC2+caVWhFAAAEEEEAAAQQQQAABLwkQtnkJkmoQQAABBBBAAAEEEEAAAd8IELb5xpVaEUAAAQQQQAABBBBAAAEvCRC2eQmSahBAAAEEEEAAAQQQQAAB3wgQtvnGlVoRQAABBBBAAAEEEEAAAS8JELZ5CZJqEEAAAQQQQAABBBBAAAHfCBC2+caVWhFAAAEEEEAAAQQQQAABLwkQtnkJkmoQQAABBBBAAAEEEEAAAd8IELb5xpVaEUAAAQQQQAABBBBAAAEvCRC2eQmSahBAAAEEEEAAAQQQQAAB3wgQtvnGlVoRQAABBBBAAAEEEEAAAS8JELZ5CZJqEEAAAQQQQAABBBBAAAHfCBC2+caVWhFAAAEEEEAAAQQQQAABLwkQtnkJkmoQQAABBBBAAAEEEEAAAd8IELb5xpVaEUAAAQQQQAABBBBAAAEvCRC2eQmSahBAAAEEEEAAAQQQQAAB3wgQtvnGlVoRQAABBBBAAAEEEEAAAS8JELZ5CZJqEEAAAQQQQAABBBBAAAHfCBC2+caVWhFAAAEEEEAAAQQQQAABLwkQtnkJkmoQQAABBBBAAAEEEEAAAd8IELb5xpVaEUAAAQQQQAABBBBAAAEvCRC2eQmSahBAAAEEEEAAAQQQQAAB3wgQtvnGlVoRQAABBBBAAAEEEEAAAS8JELZ5CZJqEEAAAQQQQAABBBBAAAHfCBC2+caVWhFAAAEEEEAAAQQQQAABLwkQtnkJkmoQQAABBBBAAAEEEEAAAd8IELb5xpVaEUAAAQQQQAABBBBAAAEvCRC2eQmSahBAAAEEEEAAAQQQQAAB3wgQtvnGlVoRQAABBBBAAAEEEEAAAS8JELZ5CZJqEEAAAQQQQAABBBBAAAHfCBC2+caVWhFAAAEEEEAAAQQQQAABLwkQtnkJkmoQQAABBBBAAAEEEEAAAd8IELb5xpVaEUAAAQQQQAABBBBAAAEvCRC2eQmSahBAAAEEEEAAAQQQQAAB3wgQtvnGlVoRQAABBBBAAAEEEEAAAS8JELZ5CZJqEEAAAQQQQAABBBBAAAHfCBC2+caVWhFAAAEEEEAAAQQQQAABLwkQtnkJkmoQQAABBBBAAAEEEEAAAd8IELb5xpVaEUAAAQQQQAABBBBAAAEvCRC2eQmSahBAAAEEEEAAAQQQQAAB3wgQtvnGlVoRQAABBBBAAAEEEEAAAS8JELZ5CZJqEEAAAQQQQAABBBBAAAHfCBC2+caVWhFAAAEEEEAAAQQQQAABLwkQtnkJkmoQQAABBBBAAAEEEEAAAd8IELb5xpVaEUAAAQQQQAABBBBAAAEvCRC2eQmSahBAAAEEEEAAAQQQQAAB3wgQtvnGlVoRQAABBBBAAAEEEEAAAS8JELZ5CZJqEEAAAQQQQAABBBBAAAHfCBC2+caVWhFAAAEEEEAAAQQQQAABLwkQtnkJkmoQQAABBBBAAAEEEEAAAd8IELb5xpVaEUAAAQQQQAABBBBAAAEvCRC2eQmSahBAAAEEEEAAAQQQQAAB3wgQtvnGlVoRQAABBBBAAAEEEEAAAS8JRHqpHqpBAAEEEEAAAQQQQAABBE4KnNm2Tbsz2/iU4533PvBp/QFVOWFbQN0OGoMAAgggULxAZGSEw+F0OBzFF6UEAggggICfBCRmu2PgLT49OWGbT3mpHAEEEEAAAQ8Fateq+eCIYW3btHaGOf/6a+lzL7yyb/8BD+viMAQQQAABBIJHgN624LlXtBQBBBAIbYFKlRLefvO1pMqJCkO3rp3r1693/U23ZWfnhDYMV48AAgggUPYFymzYVr16SvNmTX75dX7Zv4dcIQIIIBAaAtde3VeN2ZQrrlE9pXevy6Z/9mVoABRdZURExJltW8urSpL8VK6cmGi32w+lpx8+nH7gQNriJX+tXbfe6SwqHyypBvXrNWrYICWlWvXq1aqnpCQkVDxyJONA2kH52bJ1+4I/FuXkEKIHy82knQgg4GWBshm2Scz25huvVEuuGh317I8/zfayGdUhgEAQCgweNLBf3z5WGn4sMzPt+M9B+bIo34D/XPzXlq3brBxIGV8L1K+XajxFvdS6xkyf5gwbenevyy7RnmLT5i2D7r5Pm1Nsuv+1/e647ZRHPjKzsnr37V/sgRLV3HDdNdLTWLFiBVeF77rzNnn3zv9twYcffXIgLc1VMSU/ED4a8rDied3PuebqK1u3aummtXl5eb//sWjWT3N+X/BHMAalbi6NXQgggECxAmUwbFNituop1eTix4weJb+J3Ip9H1AAgTIvEBsbW6FCvJXLlGLSh6MtuXbt+pk/zPpp9i/HjmVq80mXssDuPXuNZ9yz1yTTWMyLOcb3UlxcXEnrj4mO1r0hbTab+0ri4+IG3XFrv6uujIgofvGe5KpVrr6qz2WXXPTulA8//ezLwkK7q8qNl+OqpI8+Gv369r51wI1Vq1RxdV41PyYm5oIe58pr+YqV4595YcfOXeouEggggECZFyhrYZs2ZpObFx4eTuRW5t/EXCACvhZo3rypvIYNHfLu+x98OPUT/szva3BX9X/19Yy+fa4oX76cWiAjI+O7mbPUTW2ia5dOjz08UpuTl5/f56rrtDlBlJZxg29Pmii/S9RmsRo65K5uXToNe2BUbm5eiY61Uvg0Pxoy1PPBEfdd2buXlXNpy8icNB9Pfe+ddz/4aNp0bT5pBBBAoAwLlKmwTRezKbdNidyOHjv2x8I/y/CN5NIQQMDXAtHRUXffdUerlmeMefJput18rW1av/S2DXvgoTGPjapZs4YU2LZ9x9gnnz50+LBp4ejoaHnoS7tLwjbtZhCl5eG1N159saQxm3qBsnTS88+Ou3/kIwUFBWqmFxOefTTi4+OfHT+2w1ntPGuJdFfec/edcXHlJ7/1nmc1cBQCCHhR4PJLLzbW1rhRQ2OmMWfRn0tm/Txn1eo1hw4dkv5/mTFYxoH3ueLyxMRKxsKhnFN2wjbTmE25tWvWrl+xclUo32auHQEEvCUg/5ZMnfL2Aw8+unnLVm/VST3WBVasXN33mhtq1Kghi7bt3bvP+oFBXfL5CU/J9xjTS5BZNLdu27Z16/Zy5crVr58qxSIjTf5l79ih/ZDBd7zy6iTTSrySWaKPhvSzvfHqC82aNnF16sLCwj1798l3uEqVKiUnV40rX9605K233JiVlU2fmykOmQiUpsDjjz3kwenkAfLRY8ctX1H0LV3GBchERKv/WStjW4YMvlMGe3tQbVk9xOR/7sF4qW5iNrnxQ4ePlP+tB+N10WYEEPCdgPzD8PH0z3X1y6CyasnJ1aolp6bW1U1aqJasUaP6c88+dcPNt+fm5qqZJEpNQAap7t69p9RO5/cTyWjPM1o0NzZj8ZK/X3jp1R07d2pH7crcHtIhPOrB+1Pr1tEdIlPyfPr5V/v27dflGzdL4aNx843XmcZsEo3P+WXe1I+nb9y0RV1OXUbNyKK9MmXohT17GFsrfW4bN22Wv9Ybd5GDAAKBLLBjx85Bdw9zNWJC/ib1/IsTd+3aPfy+IYF8FaXZtrIQthGzleY7hnMhUGYEMjKOyh/zXF2OfFOU3oMre1/euVMHSeuKSZ+GTCf47HMv6fLZRMDrAgNvvUlXp/REvfrGW599/qU2YFPKyNQjy5avvGnAndK31v+aq7QHylDGW2+54ZkJxb9pff3RqFu3zsBbb9a2TUnLFCMjH3ps67btul0Sv/319zLlJc/CRUVF6QoMvecumfHVaeTQlWMTAQQCRkD+7ikjt13FbGozZX0XWZ+zd69L1ZxQTui/iwSdBTFb0N0yGoxAUAjIN8Xffv9j+IiH7x/xcGZmlrHNffv0km4QYz45CHhRQCZvNHa1ffbF1zI5pJsgRSbKf+mV11euWq1ryVntPXyQTFvPaX40ZMLMxx4eITGktk5Jy9/d7xoyzBizaYvN+O57+du8rOKmzZS0rPZ2+aUX6TLZRACBQBaQeMziZLBvTHo7K8vkX+FAvjoftS24e9uI2Xz0tqBaBBBQBRb+uWTAwLteeWlCrRPTYKj5knhoxLDeV/V38+1ZLSxfVdu3aysrjMn/tWQR4eiY6P37D+zfv3/3nn2LFi2WBbvUkq4S8pR2/XqnLFDmcDjX/7tBW14m6mhQL1WGd9auXevYsWMyknDX7j3S9+LxRBQtmjdt0rhxtWpVZeCorOgsY+f2Hziw/0Dapk2b5Rkz7amtp2UYascOZzVv1kSeNZdFouUZp/T0I+lHjmzfvmPhoiXuFxmTWUYaNqinO9e69RvUbhZZrlOdhsT4MFi4zSbn1R4uU8vs3LVbmxNo6Tq1axubJMtRGDONOfLE14vPnbIMmryHZbW3o0ePGQt7kOPZR0MmgTQuzpaVnT343vsPHjxUbDP+WbNWeuQ+eO9NXckbb+j/3feWWHQHsokAAqUvIP/T/uKrbyye90hGxs9zfvVgylmL9QdRsSAO24jZguh9RlMRCGoB+YvgY48/+d7bk3TrZcnMfvIF1H0AI9PlXXH5JfJQtTL5odEhJyd31s+zv/jyG1my2bhXzZH+hCnvnjKfhARjXbtfqBSoW6e2DNo07f2Tr8KfSO/M/76V5wTU2twnpM2XXNxTBog2bFDfVUkx+ebbmTO/nyWxnKsyuvwmjRvededAmTnQOMhNLblh4+YpH0795df5ao42kVIt2fh9/Zwel6gPGcoa1rIUtfYQbVrOqzt84aLFMjO+tkygpevUrmVskqwFb8w05iz4Y5EsmSABv3ZXQsWK3grbpFoPPho9zjtH2x4lLcuCW7woKb923b/Llq+Q6TG19cjfROQPAfInAG0maQQQKDWBvWbPzVaQf07iTZa1lIdXjX+mkX9Pr+/fb/uOne+896Hur43yRz3CNrmVwRq2EbOV2ueQEyGAgAjIN8Vpn3x2y036Vb96XtDDTdjWtk2rCU8/WalSghvDcuVi5V8jmen47XenvDdlqpuSrnYNuuM2aZjp/IFySJUqSbJy13XX9rv3vpFbtm5zVYma37rVGc+Of0Lts1LzdQkJJ6TaATfdIJOAFTsbhMRLI+8fekWvS41PCeqqbdyowTPjxq5a/c/Djz1h/Xu8rpIyvyn36PcFi4q9TOkHnvDCK8UWO80CJfpoyIri5517tu6MMpWcDJfSZbrf/Gjap7qwTcq3ad1q7rzf3B/IXgQQ8JFA7779jTXfMXDAHQNvMeYb5wGOiox86fmnZVi4FJZVu6Z9/Jn2KGN57d7QSQfls23EbKHzBuVKEQgcgXfe+8A4vL7Hed1dhSK9Lr/k9YkvuI/Z1KuTUZQSfT391OOxsTFqppVEnysukykrXMVsag1Vq1R5a/JEGfSo5pgm+vXtPfn1l4uN2dRjZcTdyy88M+DmG+TruKsf+cd4wjNP9ul9uSso44EyF6IHS0sb6ykDOTIq1XgV556jj3yMZUozx/pHo+UZLeStqGvbD7N+lofxdJnuNxf9uVhie/lrvfalG0Xsvgb2IoCAHwXOan/m/774WPv66vNpSswmrZLx87q26TrfdHtDZzP4etuI2ULn3cmVIhBQAvn5+b//sejiCy/QtkoWCZCuD+2aM8reSy7qOfqRB7UlraQvOP+8Qrv98bHjrRSWMk2aNBpx/30WC8vouNdeeeHq/je7mrlLFkt9cMQwi7WpxSQYu/uu22VuQ+mNVDO1iWH3DenmYu4WGdKWk5ubXLWKMeyUMaUSxA68c4iVRwe1pytjaXn0Th4Ckahee13yFwF5HnLia5PVKfK1e0s/bf2jcXa3rsbmFdtbazxE3hW3D7rXmE8OAggEhYA85Cwv06YeSDv46Wdf6XZVrar/c4+uQIhsBlnY5iZmkxH2T094ocKJHx/dvMxjMp9c8TMH+OjsVIsAAn4XmDv3N13YJk2S+T90YVuVpMoPDDf5Tvn30uXffvfDtu07srOz5bm4Th3PuuLyS6XDSntdUr+cZe7837WZpmkZeTjlnUlqwJNx9Oi//26UkSTyJIE0SUYbGo+SZwzuGXLnE089a9wl7Xlg+D3GfHls7IdZszds2JR2MC2pcuWGDRtcdulFxrWP5aE1eU7MOAizRvUUeUZOV+3h9HSZ51Dmc1eeRFLma7ltwE2yNpe2pMygeFHPC2b9PEeb6T4tcyeqD87JlCSyeIO2vN3u+Op/M7Q5Wy2MGtWWL/20jBRdvmKlcUCgjHpt1LDBe1M+kqe8AiGytfjRqFmzus5QJiNZ/c8aXSabCCAQmgISs8mMssa5qYz/DwxNn2AK29zEbHLz5EGL6VPf9+ldfPvdD959/0OfnoLKEUAgkAWW/L3U2LwqSUm6zIcfekAXjOXl54954ulf5xbNtCF/aVry19KPpk5/4blxMiZQW8NDDw7/e9lymeRQm2maVmI2mdRk8lvvygQhublFI81kLWNZzEoXCEkll1584f+++W7Vav0X5TGPjYqL0z84vmDhn0+Nn6Cb5uGtd94fNfL+nhecp22SzOf+xJhHBgwcbLfbtflX9LpMDSyVfFnu+ZaBd2nrlN4kCeGWLlsxdvTDF190SmemzIxSorBt3vwF8lJOdN655+jCtkJ7oaxPrW1eUKS//uY7068sMjepvGRK0sV//b106QqZYtGPs2Ja/GgYl7DfsGGjrDUXFDeCRiKAgBsB+ZZu3KuOezTuMuYoMZusr63bFRkZcVHPHrrM0NwMmrDNfcwWmjeP7QkFwAAAQABJREFUq0YAgVIWyMrKlhhJJhHRnlf3JFjjRg3P7tZFW0DSjz72xG8LFuoyZVPmNR4ydMQnU9/TzlYvw/ovvKDHV//71ljemCNjAIY98JAxDFu3/t+hw0aOf+rxc7uf8hyUdG1d3e9KXXl55s0Y4Mn6xQ+NGl1QWKg7qcSTMg2JjI08v0d37a4mjRvJ4wpylDYztW4d7aakf5r9izZmU/fKeL/nX5p49tldtF158iiUNFid318tHFKJn2f/ev553SUKNb3qatWSpc9WXrJXelzXrl2/ctU/8heBtevWl+YQSisfDWmhdNjqriI93epMpLoD2UQAgYASmPHV9NNpj6uYTeq86srerqZiPp0zBuOxwTElCTFbML63aDMCZVLg8OHDuuuSIZHaHF03lOya8+s805hNOUomY3j+xYnaGiRtrERXQN185bVJuhhM3SUR1+NPPC3/Fqo5SqJzxw6yWpo2U+bD1G5KOj+/4OkJLxpjNqWYxAMTXnhZhrfpjpJoU5dTvXo1XY6sqqzLUTclIOzR87KOXc9TX+dfdHmIx2wKzlPjn5NxqiqUq4Q8vigdjHfdedv777wx+8cZz4wbK8stuCrs9fxiPxpyxsrGsO0IU/Z7/VZQIQJBJpB28PjYSGM/m1yGjJa/d8hdQXY9PmtucIRtPrt8KkYAAQRKJnD4cLruAF1v2wU9ztUV+LK4RUWlh0rmQNceJVOZ66JB7V41vXHT5u9m/qhuGhPyZJqMadTlywBOmUZFzZTuLJkKRd1UEt99/6OMZtRlajdluTbjdUnPnvpomVLYuESYhIhuppSUx7R0L+1JQzYtj1UPHHSP+3utw5GxSdIdKnOZTp/2vsx3qtvri81iPxqyWrpxBSfr6/75os3UiQACgSCwZMlS05hNVvt8+cVnZBB+IDQyENoQHGGbPGQvUbjpQn6BgEgbEEAglAUKCoqGEcqav7qxHBkZGW4WdlPd5CkyNS0JCWxanvrAm3avmp49Z26xnVEyV4TueTM5vN2ZbdVKZCFvmctR3VQSslKzLse4aSwjX8pbntFcW1IWTtVuSlomYpn40oT69VJ1+Wy6F5Be2aeefu7eYSNlYhv3JXV75f4+O36sPLtYrpz5vG268l7c1H40pNrwcJtZ5U6zTPIQQCDUBSRme+PVl2QQQahDaK4/aJ5tUyK3N994pXqKfsiN5nJIIoAAAr4VqFw5UXcCbSeDzMeo2yvzfMhDX7pM42bFE2uMavNlmWztpmlaVq8yzddmSkeNjKKUhb+1mVU1lScnV9XukrTMuLhs+UpdpnHznzXrjE/66aZpnvXTnGv6Xak7tmOH9p9+PEWmnZTpQ1atWr16zVor86/oKgnNzcVL/pZX82ZNep7fo1OnsyQks+gg83/WqJFy970PGGN4izUUW8z9R0MOlylzZGCt9tlFyayU4G4x+mJPSgEEECiTAjIqRGI23eReZfJKS3RRQRO2yVW5j9xkWrZRj4wxPmtRIg73hfli4d6HvQiEgkCiYRlQ7TJoxpGNMo/ih++/6YGMsSpjJdt37DJmGnPkf4+6sE17Fcb4MONoRk5OjrEeXY4EAGlpaXXq1Nbm6+bVlOkNf537W4/zTKbTkA43pc9NOgylU05WT5b5JCUmYdSc1tM0vXbdv/Ka+PpkCZLbtW0jM8o0b9a0cZNGMdHRpuWVzLZtWsvkoi9PfMNNmdPZpX1TKfVoPxpKjvyNQx+2Vap0OiflWAQQKJMC8hdPYjbjnQ2msE1a7yZykwUAZNLtocNHynxWxuskBwEEEDh9ARlmZlwh9NChoklKkgyLAXh8Ul38Y6xHRs3Jo2vGfGOOMRBKTCzq4jCeyFjeWKeSk5FxVLfLWNu4p5+Tzr2WLVvoSqqb8nCdTDgpL5kOUUI4WQngk0+/+GPhokBYjkxtZGAmZFU3WSBBWSNB5shu0bx5l84dunbu1LhxQ9MGX9Ov79Rp0w9q3rGmxTzILPajodQpHxbtpKmSWalS0VvRg/NyCAIIBIhA76uuM7ZEVpjsf81VxnxdjjwirlvmRPfQuK58yG4GWdgm98lN5CbPVLz68vNEbiH7bubCEfC1wFntih4JU8+lDdu8OApft8yAejo1YX1wgazurR6lJLRLtFWIj9fttdLVphxibEO8YbSnjNIcNOS+QXcM7H9N35iYGN25dJsSwinLkcka06PHjDcuuqorz6YqIKufyWrj8pr81nttWrccdu/dzZs3VfcqiYiI8Msvu/iDjz7R5Z/+ZrEfDeUU2g+LkiNDiOVJztJcq+D0L5YaEEDAKCDfz42ZFsepyTPP8jIeTo5OIDimJNE1WoncTGcoUSK3uLjyukPYRAABBE5fQLcGmlLh1m3b1JplHTY1rSYktin2JYULCgq0xfLy8tUaTBMVK1QwzTdmGksePVrUS5ZumIHdGMgZ61RyjEupHjHUJiUlonhj8tu9rrxWprWUBeWKnUZFDpERfTK4NLmq/rk7Vy0pzXyHQ788dLExtrF5sbGxuky7oVpdAeubMgvOrXcMlpUnjIfIJKXGzNPPKfajoZxi7z79FzvjNDan3xhqQAABBMqkQPD1tim3gT63Mvl25KIQCGQBWevs7G6ddS2UWfLXrF2vZh48eEhNK4nffv9jxEOP6TK9silPzcXHx2dmZhZbWyXNkEilsHaN44OH9G1OSLA6c5dxPgmjgNo8GXv53pSp8pK5KyR4kL+ytTqjRZMmjV1N7iyDZMY9OfrOwUPVGgIkcfBg0bBYpUnGqTiLbWrVqvopZ4w9UcVW4qaADDF9ctyEtq1b6cYayfLcbo7ybJeVj4ZSs8w+euP11+rOIn9llyXCdZnFbsq8LJVOfS5u/4EDmzdvLfZACiCAAAJBKhCsYZtwE7kF6XuOZiMQpAI33XBtgmHWu19+na+9HGMIZJxeT1v+NNNNmzSyMh1840b6J53S09PVUxsDrYoVK8oTR8U+4Sb9RcZZKI0C6onUhMxL8evc+fKSnKjIyDPOaH5Ot64XX3SBLsCQvTLYr1nTJtJBpx4bCAljl5EM/qyWXHX/qYvvuW9q3VOncpHC7hfKc1+b6V559HH5ylW6hQR1oY7pgSXNtPLRUOpcvmLV4fT0yqfO63PJRT3fnzLV1drupo2RvxdMfv0VXSfn65PeJmwz5SITAQTKhkAQh21yA4jcysa7kKtAIPAF5Ev2wNtuMbZTNw5N/qekK1O/Xj1ZgVoGQOryvbIpk08UG7bJZIONGjbQnU76JdQcY5vlAbOz2rebPedXtYxp4sw2rXSLa0sxY22mx6qZ8mVdvsrL6+33Phgx/N5el1+i7lISZ7U/M9DCtv37i/TU1vbs2WPax5+pm+4TEuNJb6OujHHkf80a1Uc/+qCu2IiHRlvpYlWOkjlLdIcfPKjP0RUo6abFj4ZSrYyPlVUf+vbppT1LjRrVr+53pcxDo810n76ufz9dzCbl/166zP1R7EUAAd8JzPj6U2PlFofcy1gD7eMGUk90dLTxf5LG+kMtJyifbdPeJCVyM/5rJ2V4zk0LRRoBBDwWSKp8fLSecXb13bv3rFm7TlutTLW/ddt2bY7MPNmpY3ttjhfTF114frFrKPfudZnxjIsW/6Vm7ty1W5ZQUzeVxPnnddflGDd79NCXOZB20OMQS+ZBeXrCiwKoO5EXB/VFRkTK7Be6+j3YFK7CwqI11pUa+lxxuXzPsFhbv6v6SGysK7xx42Zdjni2PKOFTLCmfbU7s42umJtNWf9dt3fPnr26nNPZtP7RUM+i9LKqm0ritgE3WZ9SUsYGGxcDzMzMWv/vRl21bCKAQKkJyLrKxpc8vGqlAX8u/ktWldS+Ro8db+XAUCvjhX/A/E5G5Ob3W0ADECjDAjJI78Mpb5kumf3s8y8bL3z2nLm6zAE33WD8jq4r0+Gsdtf3v1p53XDdNfKSRU10ZYybsuTarbfcYMxXc2RKj5tu6K9uKom0gwc3bDjlC+6cX/RtPu/cs+XCdQdqN+vWrXPZJRdrcyQt9Whn7U9NrXNOty7al/s6ZSG4zZu36Oo0ToOpK+ByU9uUE4VkHkXtOuMuDyxuhwwfnTf/d10puV/Dh96tyzTdlMf6brxef1Oys3N+mj1HV146aTds3KTLHHjrTfIsmS7TdFMGx8r7SrdLonRdjsebJf1oKCeS/mFjbC8LNL0+8UUrD1XK0NxHRj2gnQpVqfbXefOZjtLjW8mBCCAQFAJlIWwTaCK3oHi30UgEgktAeuxHP/LgO2++ZjrhxFdfz5C1oY1XNNsQAsmSZQNudhdcydffF59/etjQu5XXffcOvvP2W40TPBrPJTm33HR93z5XmO6SnpBXX37OOJZs4cLFuojGGGpKnDlm9KjERPOlkKW748kxj0gUpDuvrp5mTZq88Nx47WvSay+66VSR3qr27c7U1bl9+05djsVN6aoyljznnG7GTA9yvvjqG+NRV/XtLXdQ1k8z7lJzunTq8MKEp4x0P/4023TRUVmCXD1WSTRt0vjlF56pUT1Fl6/b7Nih/SsvPmvsXZQT6Up6sOnZR0M5kQRX455+XkJ03XkbN2ow6bWXUtzOmCLDfadOeVv3tJ7Uk5OT++bb7+sqZBMBBBAoYwLB/Wyb9mYokdubb7wiXbTafEm3aN5U5pKWCax0+WwigEAoC8gKY8aAR8Y0ynNHMtOGPJNWt25tVz67du+Z+Pqbpnu3b9/x/Y8/XXbJRdq9gwcNlPk2Jr35jnSqaPPlW3W/vr0H3XGbbgTmzB9mWVzuRuKrUQ8Ob9u21QcffazOxyAzZPS67GKJFY1Thsjovmmf6B/B2r5jp7HN9eulyv9RJzz/8rLlK7VtPqNF84dGDjN2P/6+YKFuyOhfhmeNpJPkhQnj7h/5yNGjx7R1SlpitqH33KVbUUC+4stCZLqSFjfloowl77x9gDxEMXfefF3gaizpPkcexpOLbdG8ma6Y9JfKIMZPP/vq13m/6Za/a93qDBmwetmlFxm7XqVX7fMvvtZVpWx+PP3zfn376AYaydSLn33ywbvvf/Tl198Ygz0JjOXWyyq3xhMt+nOJ+iYxPZ2S6aOPhnrGjZs2fzh1+m0DblRzlIREZV99Pu3bmT/KmuB7NI+Jyp8JpOfwzLatb7n5et0nRTlw6sfTjTPr6CpnEwEEEAh2AVtq4xKMkg/8q61ePUUXucm/+k+Me/bHWV74+2LgXz4tRAABVwLD7xsiX2Rd7S1Rvsz498CDj8pXT1dHxcfFffrxFGPIJMuyzfll3pYtW2UyPfkDU73UVJlEsXatmrp6JGC7acAd2q+tUkAihCnvTtKWlP+5yXN0DerXUzPl8R45SiIfGRtp7M9Rik39+NPX3nhLPURNSJunT3vf9EEyGdImFyuTW0j3XYMG9aWnRT1KTci4wf433ipTRKo5SuLJsY9efOEFusxDh9O/mfHdgj/+lNW0HXaHjLesX6/uNVf3Ta1bR1dy5veznhw/Qc2UgYhffjZV3VQS5/S4RKZM1GUqmz/O/DqpcqJxV15+/r69+yV/7br1Y5582ljASk5KSrUP33vTVYdkXl6e3AtBk0RSUlJKSrJu+kTtKcY98/y33/2gzdGmZZjrvUMGaXO0aQlXtm3fIX8skMld5M1Qv34900uWQ6SDa9Dd961avUZ7uKRL86Ohnloms5F+s/r1U9UcXUIC+127dh8+cqRe3To1a9bQ7dVuSgg9dPiD4qzNJI0AAqUssGShfrC99QZ8/8NP8l1dW16+z8/4aro2x1W6Q5fzXO0qe/llp7dNuTe6PjditrL3luWKEPCvwJK/lj72+FOmy2qrDcvMypJgY+JLE3TPIMWVL9+716VqMdOEfPuUzihdzGZaUr6F3zVk2LQP3lFjLemTkZFmpoWVTJm96b0pH5kWUNosgyp1bZbCMobT/TNpMj3gMxNeNMZscuzEVyd36dRRnlzSnlTiioG33iwvbaYxLQGJLM9tzLeeI5Nh9r/mKmN56bFRulJ379lj3GsxR6L3hx55XMb1yQJ6xkOkw1OmAzHOCGIs+fmX/3MTs0l5mWJRBkb2vMD8q4k83yiv9u3aGmvW5sg9eurp54wxm7bMaaatfDTUU0gH4+B7h7/w7DgZQqxmahPynmnevKk2xzS9evWaYQ+MImYzxSETgdIUkIUijafrfk637ud0NeYbc3SjA8INkzYZDwnBHP2TCWWAQH3OjZitDNxNLgGBwBGw2x0yEPHeYSPdx2xKg+Ur7JChI4pd+kx3dRKJjXp0rPVhgRkZRx9+7AnjrIa6apXNHTt2Dho8VDdKU1tSHqMaMvQB6QnUZhabli4+iTPnGqboUA48dPjw3ffeL91rxdajK3DgQJp0DZVoJTRdDbL5xuR35KqN+d7KWbFy9chRo0sqpp5dQikJyV6e+IaaY5qQd8XoseNm/aSfsMS0sGmmnOiVVyf98OPPpntPP7NEHw31dOnpRwbfe/9Ps39Rc0qakE/Z0Psf1A1GLWkllEcAAa8IyNh+48s4qZLpuWT0+OI/ftW+/vflJ6YlQzyzDIZtckeVyO3Rx59kbGSIv7+5fAS8IiBf/SUA6HXlNZPefFe+AVusc9nyFTffNmjt2vUWy8+d99v1Nw38Y+GfFssrxf5Zs1aipmKnB1y1+p/b77p3n9mCY9rTyWNsNw8YJD0Y2kw3aRk8ecttg9y3Wf7Zvv3OIQsXLXZTj3aXCM/6ec5tdwwp9qK0R5mmpRNGwlrrl2NaiftMufb+19+qW3Xd/SHKXulQHXzPcImmJCortrz8FVIGc8pYSnkwr9jCugL/btg48M57pn/2pS7fK5uefTTUU+fn548eM06WyTY+66iWMU3IHwIeHzv+nvtGGB/tMy1PJgIIIFAGBEyGdpSBq5JLkMhNXmXjWrgKBBAoTQF5tEweSZLHruQlCVlPZuWqfzxrgIyjG3D74DatW8rcJz3O6x4dHWWsR7q/Vqxc9dY7U4yzohsLm+ZIC/tfP6D/tf2uv+4a43NN0of24dRPpF/C9Fhjplz1wEH3tGrZQhYiu+D8c2W+dWMZGeE2d97v33w7c+my5VbC2N179spINnGQ5bZk+eyEhARjnZIjMYlEd19+PcNjCmO1EljK5ci6Z1df1adOnVoyKah6domFpLvSeEhJc6T39eHHxspU+5defGH37t1kKKybGiQolbfTz7N/+f7Hn0vUTSQHylhKmatTFoe4qOf5bubLUc4uVydDIn+Y9fOMb7+3/rcGNy2XXV78aGhP9NG06Z9/+fXFF/WUt0fDBvW1u4xpuaESJMvIUutrjhsrIQcBBBAIRoGyNiVJMN4D2owAAqEgIHN+SNhQLTm5Wkq1hIoV5DGznTt37dixS4YRWrl845QkEjt17X6h7liZRVCZA/PYsWOysLLMeFnSfgxthTKvZt06dWRuFZldMzExMSMjY/9+Gb2Ytn3HLo+/NMsDDDILZe3ataSplRIS5PmF9CMZ6enpoiH9claCQG0LPUjLlJWJlRJkVhK5hMLC4nu6SnQKqbxrl07NmzWtUqVylaTjT51JjoSjBw8dOnTwkNwOWfDtNEd+Ku2pWaN6ly6dZH7FyomV5EdmRpGxssJ4+PARGbQps1zKMg9WRvOW6OpKobDMt9moUUNl0V6Z9EUuTkLr43qHD+/cuXvebwtknpJSaAanQAABrwjcMXDAHQNv8UpVrioJqSlJCNtcvQ3IRwABBAJIwGLYFkAtpikIIIAAAqEtQNjm3ftfNp9t864RtSGAAAIIIIAAAggggAACfhQgbPMjPqdGAAEEEEAAAQQQQAABBIoXKLNTkhR/6ZRAAAEEEEAAAQQQQAAB3wgsXbbCNxWHaK2EbSF647lsBBBAAAEEEEAAAQR8JyAL4cjLd/WHWs0Mkgy1O871IoAAAggggAACCCCAQJAJELYF2Q2juQgggAACCCCAAAIIIBBqAoRtoXbHuV4EEEAAAQQQQAABBBAIMgHWbQuyG0ZzEUAgNAVkleqYmJhTr92Zm5t3ag5bCCCAAAIIIFA2BZiSpGzeV64KAQTKmIDTKUFabhm7KC4HAQQQQAABBCwKMEjSIhTFEEAAAQQQQAABBBBAAAH/CBC2+cedsyKAAAIIIIAAAggggAACFgUI2yxCUQwBBBBAAAEEEEAAAQQQ8I8AYZt/3DkrAggggAACCCCAAAIIIGBRgLDNIhTFEEAAAQQQQAABBBBAAAH/CBC2+cedsyKAAAIIIIAAAggggAACFgUI2yxCUQwBBBBAAAEEEEAAAQQQ8I8AYZt/3DkrAggggAACCCCAAAIIIGBRgLDNIhTFEEAAAQQQQAABBBBAAAH/CBC2+cedsyKAAAIIIIAAAggggAACFgUI2yxCUQwBBBBAAAEEEEAAAQQQ8I8AYZt/3DkrAggggAACCCCAAAIIIGBRgLDNIhTFEEAAAQQQQAABBBBAAAH/CBC2+cedsyKAAAIIIIAAAggggAACFgUI2yxCUQwBBBBAAAEEEEAAAQQQ8I8AYZt/3DkrAggggAACCCCAAAIIIGBRgLDNIhTFEEAAAQQQQAABBBBAAAH/CBC2+cedsyKAAAIIIIAAAggggAACFgUI2yxCUQwBBBBAAAEEEEAAAQQQ8I8AYZt/3DkrAggggAACCCCAAAIIIGBRgLDNIhTFEEAAAQQQQAABBBBAAAH/CBC2+cedsyKAAAIIIIAAAggggAACFgUI2yxCUQwBBBBAAAEEEEAAAQQQ8I8AYZt/3DkrAggggAACCCCAAAIIIGBRgLDNIhTFEEAAAQQQQAABBBBAAAH/CBC2+cedsyKAAAIIIIAAAggggAACFgUI2yxCUQwBBBBAAAEEEEAAAQQQ8I8AYZt/3DkrAggggAACCCCAAAIIIGBRgLDNIhTFEEAAAQQQQAABBBBAAAH/CBC2+cedsyKAAAIIIIAAAggggAACFgUI2yxCUQwBBBBAAAEEEEAAAQQQ8I8AYZt/3DkrAggggAACCCCAAAIIIGBRgLDNIhTFEEAAAQQQQAABBBBAAAH/CBC2+cedsyKAAAIIIIAAAggggAACFgUI2yxCUQwBBBBAAAEEEEAAAQQQ8I8AYZt/3DkrAggggAACCCCAAAIIIGBRgLDNIhTFEEAAAQQQQAABBBBAAAH/CBC2+cedsyKAAAIIIIAAAggggAACFgUI2yxCUQwBBBBAAAEEEEAAAQQQ8I8AYZt/3DkrAggggAACCCCAAAIIIGBRgLDNIhTFEEAAAQQQQAABBBBAAAH/CBC2+cedsyKAAAIIIIAAAggggAACFgUI2yxCUQwBBBBAAAEEEEAAAQQQ8I8AYZt/3DkrAggggAACCCCAAAIIIGBRgLDNIhTFEEAAAQQQQAABBBBAAAH/CBC2+cedsyKAAAIIIIAAAggggAACFgUI2yxCUQwBBBBAAAEEEEAAAQQQ8I8AYZt/3DkrAggggAACCCCAAAIIIGBRgLDNIhTFEEAAAQQQQAABBBBAAAH/CBC2+cedsyKAAAIIIIAAAggggAACFgUI2yxCUQwBBBBAAAEEEEAAAQQQ8I8AYZt/3DkrAggggAACCCCAAAIIIGBRgLDNIhTFEEAAAQQQQAABBBBAAAH/CBC2+cedsyKAAAIIIIAAAggggAACFgUI2yxCUQwBBBBAAAEEEEAAAQQQ8I8AYZt/3DkrAggggAACCCCAAAIIIGBRgLDNIhTFEEAAAQQQQAABBBBAAAH/CBC2+cedsyKAAAIIIIAAAggggAACFgUI2yxCUQwBBBBAAAEEEEAAAQQQ8I8AYZt/3DkrAggggAACCCCAAAIIIGBRgLDNIhTFEEAAAQQQQAABBBBAAAH/CBC2+cedsyKAAAIIIIAAAggggAACFgUI2yxCUQwBBBBAAAEEEEAAAQQQ8I8AYZt/3DkrAggggAACCCCAAAIIIGBRgLDNIhTFEEAAAQQQQAABBBBAAAH/CBC2+cedsyKAAAIIIIAAAggggAACFgUI2yxCUQwBBBBAAAEEEEAAAQQQ8I8AYZt/3DkrAggggAACCCCAAAIIIGBRgLDNIhTFEEAAAQQQQAABBBBAAAH/CBC2+cedsyKAAAIIIIAAAggggAACFgUI2yxCUQwBBBBAAAEEEEAAAQQQ8I8AYZt/3DkrAggggAACCCCAAAIIIGBRgLDNIhTFEEAAAQQQQAABBBBAAAH/CBC2+cedsyKAAAIIIIAAAggggAACFgUI2yxCUQwBBBBAAAEEEEAAAQQQ8I8AYZt/3DkrAggggAACCCCAAAIIIGBRgLDNIhTFEEAAAQQQQAABBBBAAAH/CBC2+cedsyKAAAIIIIAAAggggAACFgUI2yxCUQwBBBBAAAEEEEAAAQQQ8I8AYZt/3DkrAggggAAC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ECBAgAABAgQIEBDbHAMECBAgQIAAAQIECBAoWkBsK3p5FEeAAAECBAgQIECAAAGxzTFAgAABAgQIECBAgACBogXEtqKXR3EECBAgQIAAAQIECBAQ2xwDBAgQIECAAAECBAgQKFpAbCt6eRRHgAABAgQIECBAgAABsc0xQIAAAQIECBAgQIAAgaIFxLail0dxBAgQIECAAAECBAgQENscAwQIECBAgAABAgQIEChaQGwrenkUR4AAAQIECBAgQIAAAbHNMUCAAAECBAgQIECAAIGiBcS2opdHcQQIECBAgAABAgQIENiDgAABAgQIDAjMzc3Nz88PbNz2Ya/XW19fX1pa2rbl+A2iwhgufibtqsl5ra6uhkZSedE4KqxuSR1jsaJXUpdqrIxVjklVt6Thzk0rucikUcZpfG5aaUuWN6+8scaZnb4ECMyAgNg2A4toCgQIEJiwQCSi2GP1s/6u42R0bW1tZWWlfpfsllXeSM0qTc4rI9uERswoplbNrj5O9EpdrNh5nkbE0YxEmjev+gLjt2xyXnljjT9HeyBAoNUCYlurl0/xBAgQmIpAnGTHLXXXcZ0tMtvy8nJqx7z2GUGl/HlFhZHZFhcX80ySeuVpxBARzpMGisZNziu1tn77JueVMVa/TncIEOimgPe2dXPdzZoAAQIECBAgQIAAgdYIiG2tWSqFEiBAgAABAgQIECDQTQGxrZvrbtYECBAgQIAAAQIECLRGQGxrzVIplAABAgQIECBAgACBbgqIbd1cd7MmQIAAAQIECBAgQKA1AmJba5ZKoQQIECBAgAABAgQIdFNAbOvmups1AQIECBAgQIAAAQKtERDbWrNUCiVAgAABAgQIECBAoJsCYls3192sCRAgQIAAAQIECBBojYDY1pqlUigBAgQIECBAgAABAt0UENu6ue5mTYAAAQIECBAgQIBAawTEttYslUIJECBAgAABAgQIEOimgNjWzXU3awIECBAgQIAAAQIEWiMgtrVmqRRKgAABAgQIECBAgEA3BcS2bq67WRMgQIAAAQIECBAg0BqBPa2pVKEECBDotsD6+vrq6mozBnNzc71eL34mDRft5+fnk7pE45hXdUvqGF0a04iBYrik8qJxaFS3pI7BHmMtLS0l9cprHOU1tspNzitPI2+V88bK63XugEr7rYxfyeiYN6JeBAgUJSC2FbUciiFA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IECgXQJiW7vWS7UECBAgQIAAAQIECHROQGzr3JKbMAECBAgQIECAAAEC7RIQ29q1XqolQIAAAQIECBAgQKBzAmJb55bchAkQIECAAAECBAgQaJeA2Nau9VItAQIECBAgQIAAAQKdE/C9bZ1bchMmQIAAAQIECBAgQKBdAq62tWu9VEuAAAECBAgQIECAQOcExLbOLbkJEyBAgAABAgQIECDQLgGxrV3rpVoCBAgQIECAAAECBDonILZ1bslNmAABAgQIECBAgACBdgmIbe1aL9USIECAAAECBAgQINA5AbGtc0tuwgQIECBAgAABAgQItEtAbGvXeqmWAAECBAgQIECAAIHOCYhtnVtyEyZAgAABAgQIECBAoF0CYlu71ku1BAgQIECAAAECBAh0TkBs69ySmzABAgQIECBAgAABAu0SENvatV6qJUCAAAECBAgQIECgcwJiW+eW3IQJECBAgAABAgQIEGiXgNjWrvVSLQECBAgQIECAAAECnRMQ2zq35CZMgAABAgQIECBAgEC7BMS2dq2XagkQIECAAAECBAgQ6JyA2Na5JTdhAgQIECBAgAABAgTaJSC2tWu9VEuAAAECBAgQIECAQOcExLbOLbkJEyBAgAABAgQIECDQLgGxrV3rpVoCBAgQIECAAAECBDonILZ1bslNmAABAgQIECBAgACBdgmIbe1aL9USIECAAAECBAgQINA5AbGtc0tuwgQIECBAgAABAgQItEtAbGvXeqmWAAECBAgQIECAAIHOCYhtnVtyEyZAgAABAgQIECBAoF0CYlu71ku1BAgQIECAAAECBAh0TkBs69ySmzABAgQIECBAgAABAu0SENvatV6qJUCAAAECBAgQIECgcwJiW+eW3IQJECBAgAABAgQIEGiXgNjWrvVSLQECBAgQIECAAAECnRMQ2zq35CZMgAABAgQIECBAgEC7BMS2dq2XagkQIECAAAECBAgQ6JyA2Na5JTdhAgQIECBAgAABAgTaJSC2tWu9VEuAAAECBAgQIECAQOcExLbOLbkJEyBAgAABAgQIECDQLgGxrV3rpVoCBAgQIECAAAECBDonILZ1bslNmAABAgQIECBAgACBdgmIbe1aL9USIECAAAECBAgQINA5AbGtc0tuwgQIECBAgAABAgQItEtAbGvXeqmWAAECBAgQIECAAIHOCYhtnVtyEyZAgAABAgQIECBAoF0CYlu71ku1BAgQIECAAAECBAh0TkBs69ySmzABAgQIECBAgAABAu0SENvatV6qJUCAAAECBAgQIECgcwJiW+eW3IQJECBAgAABAgQIEGiXgNjWrvVSLQECBAgQIECAAAECnRMQ2zq35CZMgAABAgQIECBAgEC7BMS2dq2XagkQIECAAAECBAgQ6JyA2Na5JTdhAgQIECBAgAABAgTaJSC2tWu9VEuAAAECBAgQIECAQOcExLbOLbkJEyBAgAABAgQIECDQLgGxrV3rpVoCBAgQIECAAAECBDonILZ1bslNmAABAgQIECBAgACBdgmIbe1aL9USIECAAAECBAgQINA5AbGtc0tuwgQIECBAgAABAgQItEtAbGvXeqmWAAECBAgQIECAAIHOCYhtnVtyEyZAgAABAgQIECBAoF0CYlu71ku1BAgQIECAAAECBAh0TkBs69ySmzABAgQIECBAgAABAu0SENvatV6qJUCAAAECBAgQIECgcwJiW+eW3IQJECBAgAABAgQIEGiXgNjWrvVSLQECBAgQIECAAAECnRMQ2zq35CZMgAABAgQIECBAgEC7BMS2dq2XagkQIECAAAECBAgQ6JyA2Na5JTdhAgQIECBAgAABAgTaJSC2tWu9VEuAAAECBAgQIECAQOcExLbOLbkJEyBAgAABAgQIECDQLgGxrV3rpVoCBAgQIECAAAECBDonILZ1bslNmAABAgQIECBAgACBdgmIbe1aL9USIECAAAECBAgQINA5AbGtc0tuwgQIECBAgAABAgQItEtAbGvXeqmWAAECBAgQIECAAIHOCeyZmRlfeOGFey/ad9G+fRddtC/uz8y8TIQAAQIECBAgQIAAgfoCp0+fPnnyxMkTJ548eSLu1+9YcstZiG27du0+cPDgvv0HRqa1p59++vTp+PH06Wf+7+lhk1OwAABAAElEQVQDBy8ueUnURoAAAQIECBAgQIDAFgLHjj5x4a5duy48+3/x/888ePZVhBEK9u3bH/8is504fuzYsaNPnzq1xd5a8VS7Y1ssz4GDl+zbv38gsJ069dSTJ08+GbdRCfvoE0dasTaKJECAAAECBAgQIECgjkDEgXjl3d64XXTR7t3PZJzYuP/Amas7J44fP3b0SFzIqbOrMtu0NbbFGsRFs1iGjYHt1FNPnThx/OSJ46fan6fL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AmJb148A8ydAgAABAgQIECBAoHABsa3wBVIeAQIECBAgQIAAAQJdFxDbun4EmD8BAgQIECBAgAABAoULiG2FL5DyCBAgQIAAAQIECBDouoDY1vUjwPwJECBAgAABAgQIEChcQGwrfIGUR4AAAQIECBAgQIBA1wXEtq4fAeZPgAABAgQIECBAgEDhAmJb4QukPAIECBAgQIAAAQIEui4gtnX9CDB/AgQIECBAgAABAgQKFxDbCl8g5REgQIAAAQIECBAg0HUBsa3rR4D5EyBAgAABAgQIECBQuIDYVvgCKY8AAQIECBAgQIAAga4LiG1dPwLMnwABAgQIECBAgACBwgXEtsIXSHkECBAgQIAAAQIECHRdQGzr+hFg/gQIECBAgAABAgQIFC4gthW+QMojQIAAAQIECBAgQKDrAmJb148A8ydAgAABAgQIECBAoHABsa3wBVIeAQIECBAgQIAAAQJdFxDbun4EmD8BAgQIECBAgAABAoULiG2FL5DyCBAgQIAAAQIECBDouoDY1vUjwPwJECBAgAABAgQIEChcQGwrfIGUR4AAAQIECBAgQIBA1wXEtq4fAeZPgAABAgQIECBAgEDhAmJb4QukPAIECBAgQIAAAQIEui4gtnX9CDB/AgQIECBAgAABAgQKFxDbCl8g5REgQIAAAQIECBAg0HUBsa3rR4D5EyBAgAABAgQIECBQuIDYVvgCKY8AAQIECBAgQIAAga4LiG1dPwLMnwABAgQIECBAgACBwgX2FF6f8gg0KbB79+69e/fGiKcvuODE8eNNDm0sAgQIECBAgAABApsJiG2bydjeRYGbXn7z/D95fcz8xIkTf/h//34XCcyZAAECBAgQIECgPAGxrek12bV7d6/3gv6oa9/8+tNPP91/uMWda6659uDFl0SDEyeOf/tbD27R0lMECBAgQIAAAQIECMySgNjW9Gru27fvJ//p/9wf9f/7f1e/8Def7z/c4s4rfujWF7/kpdHgu9956P/5k6UtWnqKAAECBAgQIECAAIFZEhDbdng1b33lq7/6lS8/8cSRHa5jw/D/5PU/cmD/gdiw8plPHj16dMMz7hIgQIAAAQIECBAgsAMCPklyB9A3DhkfgPGPX/PajVt2/H68hvOFL3px/Ntz9sM5drweBRAgQIAAAQIECBDouIDYtvMHwIte/JLnXd/b+TpUQIAA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AiRAAuGTAM228DlubDUJkAAJkAAJkAAJkAAJkECEIUCzLcIMNTtKAiRAAiRAAiRAAiRAAiQQPgnQbAuf48ZWkwAJkAAJkAAJkAAJkAAJRBgCkSNMT9lRFwQunD+3Ye1qZMIWYS6y8jQJkAAJkAAJkAAJkAAJkEAoEqDZFoqww3ZVN65fx2/YbiNbRwIkQAIkQAIkQAIkQAIRkQAnSUbEUWefSYAESIAESIAESIAESIAEwhEBmm3haLDYVBIgARIgARIgARIgARIggYhIgGZbRBx19pkESIAESIAESIAESIAESCAcEaDZFo4Gi00lARIgARIgARIgARIgARKIiARotkXEUWefSYAESIAESIAESIAESIAEwhEBmm3haLDYVBIgARIgARIgARIgARIggYhIgGZbRBx19pkESIAESIAESIAESIAESCAcEaDZFo4Gi00lARIgARIgARIgARIgARKIiARotkXEUWefSYAESIAESIAESIAESIAEwhEBmm3haLDYVBIgARIgARIgARIgARIggYhIgGZbRBx19pkESIAESIAESIAESIAESCAcEaDZFo4Gi00lARIgARIgARIgARIgARKIiARotkXEUWefSYAESIAESIAESIAESIAEwhEBmm3haLDYVBIgARIgARIgARIgARIggYhIgGZbRBx19pkESIAESIAESIAESIAESCAcEaDZFo4Gi00lARIgARIgARIgARIgARKIiARotkXEUWefSYAESIAESIAESIAESIAEwhEBmm3haLDYVBIgARIgARIgARIgARIggYhIgGZbRBx19pkESIAESIAESIAESIAESCAcEaDZFo4Gi00lARIgARIgARIgARIgARKIiARotkXEUWefSYAESIAESIAESIAESIAEwhEBmm3haLDYVBIgARIgARIgARIgARIggYhIgGZbRBx19pkESIAESIAESIAESIAESCAcEaDZFo4Gi00lARIgARIgARIgARIgARKIiARotkXEUWefSYAESIAESIAESIAESIAEwhEBmm3haLDYVBIgARIgARIgARIgARIggYhIgGZbRBx19pkESIAESIAESIAESIAESCAcEaDZFo4Gi00lARIgARIgARIgARIgARKIiARotkXEUWefSYAESIAESIAESIAESIAEwhEBmm3haLDYVBIgARIgARIgARIgARIggYhIgGZb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QAIkQAIkQAIkQAL+IUCzzT/cWSsJkAAJkAAJkAAJkAAJkAAJuEmAZpuboJiNBEiABEiABEiABEiABEiABPxDgGabf7izVhIgARIgARIgARIgARIgARJwkwDNNjdBMRsJkAAJkAAJkAAJkAAJkAAJ+IcAzTb/cGetJEACJEACJEACJEACJEACJOAmAZptboJiNhIgARIgARIgARIgARIgARLwDwGabf7hzlpJgARIgARIgARIgARIgARIwE0CNNvcBMVsJEACJEACJEACJEACJEACJOAfAjTb/MOdtZIACZAACZAACZAACZAACZCAmwRotrkJitlIgARIgARIgARIgARIgARIwD8EaLb5hztrJQESIAESIAESIAESIAESIAE3CdBscxMUs5EACZAACZAACZAACZAACZCAfwjQbPMPd9ZKAiRAAiRAAiRAAiRAAiRAAm4SoNnmJihmIwESIAESIAESIAESIAESIAH/EKDZ5h/urJUESIAESIAESIAESIAESIAE3CRAs81NUMxGAiRAAiRAAiRAAiRAAiRAAv9n776CJDvPM0FXVrX3jW54S3hvCA+wBYAACIIUJJISJUizodnY2FgbK2n2Zvdm52pNxE7sbMTc7NWYnV3FSkNKpIihkSEIEt57S4BwJFzDtPddtV8hG6cT1dXV1dnfl5VZ9UAd1KnMc97znyezyXrxHzMzAmrbzLjbKwECBAgQIECAAAECBKYpoLZNE8pqBAgQIECAAAECBAgQmBkBtW1m3O2VAAECBAgQIECAAAEC0xToo9rWarWmOWirESBAgAABAgQIECBAoFSgr+rJzNe2sbGxNndfuZR+A4QTIECAAAECBAgQINDnAk09aQrLDA545mvb6Oho+/hbwzM/mBn8JOyaAAECBAgQIECAAIH+EWjqSVNYZnBsM9+URkf3to9/ZHhkBiHsmgABAgQIECBAgAABAo1AU0+awtK81fuFPqhte/fVtuERta33XwB7JECAAAECBAgQIEBgEoGmnox+VlgmWalXL/VBbRsdHfv0PMnhT//p1YHbDwECBAgQIECAAAECBCYXaLpJVBUnSe4z2rNnT3tp3vz5k7N5lQABAgQIECBAgAABAr0SaIpJU1V6tefJ9zPzs20xrj17drdHN2/+gsmH6VUCBAgQIECAAAECBAj0SqApJk1V6dWeJ99PX9S23bt2tUe3QG2b/GPyKgECBAgQIECAAAECvRNoisnu3fuqSu/2Pdme+qO27d7dfhjCyLx5zZV/k43WawQIECBAgAABAgQIEKgViEoSxST2ESVl9659JwbW7vJQ6X1R2wKkmXBbuHDRocbsfQIECBAgQIAAAQIECFQJNJXk05IyVrWbw8ntk9o2tHPnjvawG6PDOQrrEiBAgAABAgQIECBAIEdg4aJ9M0lNScnJPYKUfqltu3btHBsbjQOJ6cjmti1HcFw2JUCAAAECBAgQIECAwGELRBmJUyRjs6gnUVIOe/uaDfqltoXKzh37JtwWLV5Sc7BSCRAgQIAAAQIECBAgMJVAU0bG68lYX5whGcPtm9o2NLRj+/a238IFC+MiwKksvUeAAAECBAgQIECAAIFsgaghUUbaqU09yd5JN3l9VNv27t2zbxay1Vq8dFk3R2MbAgQIECBAgAABAgQIdCswXkNardg6iknUk25j8rfro9oWB7d969b2IcaNSVzhlv9pSyRAgAABAgQIECBA4CACUUCa+yM2xeQg6/b65f6qbfEM8uZuLcuWreg1hv0RIECAAAECBAgQIDBXBZoCEle1RTHpK4b+qm1Bs23L5uaWkkucKtlXXxaDIUCAAAECBAgQIDBLBaJ6fPaI7dFtWzf321H2XW0bHR3dumVLm2nxkqXzFyzoNzLjIUCAAAECBAgQIEBgNglE6Yjq0T6iKCNRSfrt6PqutgXQzh3bmyckLFu+cthdJfvtW2M8BAgQIECAAAECBGaLQNSNKB3to4kaEmWkD4+sH2tbMG3ZtGl0795YGB4eXrFiVevT27n0IZ8hESBAgAABAgQIECAwuAJRNKJuROmIQ4gCEjWkP4+lT2tbXN62edPGsU8fbxfnmC5fsao/+YyKAAECBAgQIECAAIHBFYii8dklbWOfFpC+Oz2ybduntS0GFzdv2bJ5X9mNk02Xr9g3cTm43wkjJ0CAAAECBAgQIECgfwSiYjS30ojq0W93j+yE6t/aFqPctXPH1i377uKyYOGiZZpb50dnmQABAgQIECBAgACBbgWiXETFaG8dpSOqR7dJvdiur2tbAOzYvm37tv3P4F6xcrXr3HrxvbAPAgQIECBAgAABArNUYPx6tpWr9z9Ze9vWKB19fqwjq9Yc1+dD3L17V1wjGM8sj3GOjIxEJ47pyz68KWefMxoeAQIECBAgQIAAAQJRK6KztctFaERh27Z13+PH+hlnAGpb8O3etSv+s33iaVS4RQsXRUXu53NP+/kjNzYCBAgQIECAAAECc1AgGkQ8U3vZshXt+0aGQBS2gehsMdTBqG0x0D27d+/dsyea2/hJkq3W/FhauGg0btL56XMC5uDXziETIECAAAECBAgQIDBNgQULF8ZNI+M/o0rEJnHu3pZNG/vzEW2THtHA1LYYfTS0uFIwbtA5MjIvfoyWHCekzl+wcO/ePc6ZnPTT9SIBAgQIECBAgACBOS4Q50NGYVu8ZGkzyRbP1N68ccOePXsGSGaQaluwxpPcornFHNu8+Z9Ou316tduiRYtj8m3v6F7lbYC+eYZKgAABAgQIECBAoFRg/vz5y5avjBMjh0dG2juKvrB186Y4MbL9gOjSveeGj09bDdw/O3fuiIocjXnR4iXj50x+etnbygVHxVmU42/t3OHMyYH7TA2YAAECBAgQIECAQIpA+y6GcV5e+zna7czoae171A9cYWuPv3Xa2Zem6MxISEx0Ll6ybOGi8TuUdA4gTpuMu5jsjn927RzQD6bzcCwTIECAAAECBAgQIDCFQNSBuHgqptfiDhjtK6qalaMO7NwRlW3LQJ+aN5Czbc1nMD7LuWVTPNht8ZIlCxctbspbfFQji+ctWjy+YqwzNhb/MTq27/9GY5quSbBAgAABAgQIECBAgMBgCcTv/62YwGl9+n/x/8d/mOR51J8Wtu3bt2+La6wG6wAPHO1g17b28cT9JOO55nGKajTsuDlM3GKy6W+xwqcfYXM664ECXiFAgAABAgQIECBAYJAEpp6GibYWV1Tt2rlzNp15NxtqW/srNv7xfHph2yB944yVAAECBAgQIECAAAEChxKYZDLxUJt4nwABAgQIECBAgAABAgR6J6C29c7anggQIECAAAECBAgQINCFgNrWBZpNCBAgQIAAAQIECBAg0DsBta131vZEgAABAgQIECBAgACBLgTUti7QbEKAAAECBAgQIECAAIHeCahtvbO2JwIECBAgQIAAAQIECHQhoLZ1gWYTAgQIECBAgAABAgQI9E5AbeudtT0RIECAAAECBAgQIECgCwG1rQs0mxAgQIAAAQIECBAgQKB3Ampb76ztiQABAgQIECBAgAABAl0IqG1doNmEAAECBAgQIECAAAECvRNQ23pnbU8ECBAgQIAAAQIECBDoQkBt6wLNJgQIECBAgAABAgQIEOidgNrWO2t7IkCAAAECBAgQIECAQBcCalsXaDYhQIAAAQIECBAgQIBA7wTUtt5Z2xMBAgQIECBAgAABAgS6EFDbukCzCQECBAgQIECAAAECBHonoLb1ztqeCBAgQIAAAQIECBAg0IWA2tYFmk0IECBAgAABAgQIECDQOwG1rXfW9kSAAAECBAgQIECAAIEuBNS2LtBsQoAAAQIECBAgQIAAgd4JqG29s7YnAgQIECBAgAABAgQIdCGgtnWBZhMCBAgQIECAAAECBAj0TkBt6521PREgQIAAAQIECBAgQKALAbWtCzSbECBAgAABAgQIECBAoHcCalvvrO2JAAECBAgQIECAAAECXQiobV2g2YQAAQIECBAgQIAAAQK9E1DbemdtTwQIECBAgAABAgQIEOhCQG3rAs0mBAgQIECAAAECBAgQ6J2A2tY7a3siQIAAAQIECBAgQIBAFwJqWxdoNiFAgAABAgQIECBAgEDvBNS23lnbEwECBAgQIECAAAECBLoQUNu6QLMJAQIECBAgQIAAAQIEeiegtvXO2p4IECBAgAABAgQIECDQhYDa1gWaTQgQIECAAAECBAgQINA7AbWtd9b2RIAAAQIECBAgQIAAgS4E1LYu0GxCgAABAgQIECBAgACB3gmobb2zticCBAgQIECAAAECBAh0IaC2dYFmEwIECBAgQIAAAQIECPROQG3rnbU9ESBAgAABAgQIECBAoAsBta0LNJsQIECAAAECBAgQIECgdwJqW++s7YkAAQIECBAgQIAAAQJdCKhtXaDZhAABAgQIECBAgAABAr0TUNt6Z21PBAgQIECAAAECBAgQ6EJAbesCzSYECBAgQIAAAQIECBDonYDa1jtreyJAgAABAgQIECBAgEAXAmpbF2g2IUCAAAECBAgQIECAQO8E1LbeWdsTAQIECBAgQIAAAQIEuhBQ27pAswkBAgQIECBAgAABAgR6J6C29c7anggQIECAAAECBAgQINCFgNrWBZpNCBAgQIAAAQIECBAg0DsBta131vZEgAABAgQIECBAgACBLgTUti7QbEKAAAECBAgQIECAAIHeCahtvbO2JwIECBAgQIAAAQIECHQhoLZ1gWYTAgQIECBAgAABAgQI9E5AbeudtT0RIECAAAECBAgQIECgCwG1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EEAAAQSCBAjbgnRYhgACCCCAAAIIIIAAAgjELkDYFnsRkAEEEEAAAQQQQAABBBBAIEiAsC1Ih2UIIIAAAggggAACCCCAQOwChG2xFwEZQAABBBBAAAEEEEAAAQSCBAjbgnRYhgACCCCAAAIIIIAAAgjELkDYFnsRkAEEEEAAAQQQQAABBBBAIEiAsC1Ih2UIIIAAAggggAACCCCAQOwChG2xFwEZQAABBBBAAAEEEEAAAQSCBAjbgnRYhgACCCCAAAIIIIAAAgjELkDYFnsRkAEEEEAAAQQQQAABBBBAIEiAsC1Ih2UIIIAAAggggAACCCCAQOwChG2xFwEZQAABBBBAAAEEEEAAAQSCBAjbgnRYhgACCCCAAAIIIIAAAgjELkDYFnsRkAEEEEAAAQQQQAABBBBAIEiAsC1Ih2UIIIAAAggggAACCCCAQOwChG2xFwEZQAABBBBAAAEEEEAAAQSCBAjbgnRYhgACCCCAAAIIIIAAAgjELkDYFnsRkAEEEEAAAQQQQAABBBBAIEiAsC1Ih2UIIIAAAggggAACCCCAQOwChG2xFwEZQAABBBBAAAEEEEAAAQSCBAjbgnRYhgACCCCAAAIIIIAAAgjELkDYFnsRkAEEEEAAAQQQQAABBBBAIEiAsC1Ih2UIIIAAAggggAACCCCAQOwChG2xFwEZQAABBBBAAAEEEEAAAQSCBAjbgnRYhgACCCCAAAIIIIAAAgjELkDYFnsRkAEEEEAAAQQQQAABBBBAIEiAsC1Ih2UIIIAAAggggAACCCCAQOwChG2xFwEZQAABBBBAAAEEEEAAAQSCBAjbgnRYhgACCCCAAAIIIIAAAgjELkDYFnsRkAEEEEAAAQQQQAABBBBAIEiAsC1Ih2UIIIAAAggggAACCCCAQOwChG2xFwEZQAABBBBAAAEEEEAAAQSCBAjbgnRYhgACCCCAAAIIIIAAAgjELkDYFnsRkAEEEEAAAQQQQAABBBBAIEiAsC1Ih2UIIIAAAggggAACCCCAQOwChG2xFwEZQAABBBBAAAEEEEAAAQSCBAjbgnRYhgACCCCAAAIIIIAAAgjELkDYFnsRkAEEEEAAAQQQQAABBBBAIEiAsC1Ih2UIIIAAAggggAACCCCAQOwChG2xFwEZQAABBBBAAAEEEEAAAQSCBAjbgnRYhgACCCCAAAIIIIAAAgjELkDY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"
1303
+ }
1304
+ )
1305
+ ] })
1306
+ ]
1307
+ }
1308
+ );
1309
+ }
1310
+
1311
+ // src/components/base/button.tsx
1312
+ var import_jsx_runtime20 = require("react/jsx-runtime");
1313
+ function getButtonBgClass(type, disabled, caller) {
1314
+ if (disabled)
1315
+ return "bg-gray-200 text-gray-400 cursor-not-allowed border-gray-200";
1316
+ switch (type) {
1317
+ case "primary":
1318
+ return `${caller === "buzapay" ? "bg-primary" : "bg-primary-miden"} text-white hover:bg-primary-black hover:border-primary-black border-primary`;
1319
+ case "secondary":
1320
+ return "bg-gray-200 border-gray-200 hover:bg-gray-300 text-heading-text";
1321
+ case "danger":
1322
+ return "bg-red-500 border-red-500 text-white hover:bg-red-600";
1323
+ case "neutral":
1324
+ default:
1325
+ return "bg-off-white border-grey-border hover:bg-gray-100";
1326
+ }
1327
+ }
1328
+ function getButtonSizeClass(size, caller) {
1329
+ switch (size) {
1330
+ case "de":
1331
+ return `${caller === "buzapay" ? "h-68px rounded-xl" : "h-42px rounded-md"}`;
1332
+ case "md":
1333
+ return "h-42px rounded-lg";
1334
+ case "sm":
1335
+ return "h-32px rounded-md";
1336
+ default:
1337
+ return "h-68px rounded-xl";
1338
+ }
1339
+ }
1340
+ function getLabelSizeClass(size) {
1341
+ switch (size) {
1342
+ case "de":
1343
+ case "md":
1344
+ case "sm":
1345
+ return "text-body-2xs font-normal";
1346
+ default:
1347
+ return "text-body-xs font-normal";
1348
+ }
1349
+ }
1350
+ function BaseButton({
1351
+ label,
1352
+ type = "neutral",
1353
+ size = "de",
1354
+ paddingClassX = "px-8",
1355
+ disabled = false,
1356
+ loading = false,
1357
+ customClass,
1358
+ onClick,
1359
+ prefix,
1360
+ suffix,
1361
+ children,
1362
+ caller = "buzapay"
1363
+ }) {
1364
+ const isDisabled = disabled || loading;
1365
+ const handleClick = () => {
1366
+ if (!isDisabled) onClick?.();
1367
+ };
1368
+ return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
1369
+ "button",
1370
+ {
1371
+ className: `flex items-center justify-center gap-2 py-3 border font-normal text-input-grey transition-colors duration-300 ease-in-out ${getButtonBgClass(
1372
+ type,
1373
+ isDisabled,
1374
+ caller
1375
+ )} ${getButtonSizeClass(size, caller)} ${paddingClassX} ${customClass}`,
1376
+ type: "button",
1377
+ disabled: isDisabled,
1378
+ onClick: handleClick,
1379
+ children: [
1380
+ prefix,
1381
+ loading ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(IconLoader, {}) : /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { children: label ? /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("p", { className: `mb-0 ${getLabelSizeClass(size)}`, children: label }) : /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(import_jsx_runtime20.Fragment, { children }) }),
1382
+ suffix
1383
+ ]
1384
+ }
1385
+ );
1386
+ }
1387
+
1388
+ // src/components/base/back.tsx
1389
+ var import_jsx_runtime21 = require("react/jsx-runtime");
1390
+ function BaseBack({ back }) {
1391
+ return /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("div", { className: "flex items-center gap-2 cursor-pointer", onClick: back, children: [
1392
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)(IconChevronLeft, {}),
1393
+ /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("p", { className: "mb-0 text-body-xs font-normal", children: "Back" })
1394
+ ] });
1395
+ }
1396
+
1397
+ // src/components/base/card.tsx
1398
+ var import_jsx_runtime22 = require("react/jsx-runtime");
1399
+ function BaseCard({
1400
+ showBackButton = false,
1401
+ onBack,
1402
+ children,
1403
+ onClose,
1404
+ caller = "buzapay"
1405
+ }) {
1406
+ return caller === "buzapay" ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "checkout-card-miden w-full h-screen flex flex-col items-center justify-center text-white", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "flex w-1/2", children: [
1407
+ showBackButton && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(BaseBack, { back: () => onBack?.() }),
1408
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "flex gap-2 w-full", children: [
1409
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "flex flex-col gap-8 w-full", children: [
1410
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "bg-off-white rounded-xl", children }),
1411
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "flex items-center gap-2 justify-center", children: [
1412
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("p", { className: "text-light-white-100 text-body-2xs font-regular", children: "Powered by Buzapay" }),
1413
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(IconBuzapayIcon, { color: "#E8F4FF" })
1414
+ ] })
1415
+ ] }),
1416
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1417
+ "div",
1418
+ {
1419
+ onClick: onClose,
1420
+ className: "close-icon flex flex-col items-center justify-center self-start cursor-pointer hover:bg-gray-500",
1421
+ children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("p", { className: "text-white", children: "x" })
1422
+ }
1423
+ )
1424
+ ] })
1425
+ ] }) }) : /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "checkout-card-miden w-full h-screen flex flex-col items-center justify-center text-white", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "flex w-1/2", children: [
1426
+ showBackButton && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(BaseBack, { back: () => onBack?.() }),
1427
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "flex gap-2 w-full", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "flex flex-col gap-8 w-full", children: [
1428
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "bg-white rounded-xl", children }),
1429
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "flex items-center gap-4 justify-center", children: [
1430
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(IconLock, { color: "#E8F4FF" }),
1431
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("p", { className: "text-light-white-100 text-body-2xs font-regular", children: [
1432
+ "Secured by ",
1433
+ /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "font-semibold", children: "Miden" })
1434
+ ] })
1435
+ ] })
1436
+ ] }) })
1437
+ ] }) });
1438
+ }
1439
+
1440
+ // src/components/base/radio-group.tsx
1441
+ var import_react3 = require("react");
1442
+ var import_jsx_runtime23 = require("react/jsx-runtime");
1443
+ var BaseRadioGroup = ({
1444
+ options,
1445
+ type = "vertical",
1446
+ value,
1447
+ defaultValue,
664
1448
  selectedChange,
665
- className = ""
1449
+ className = "",
1450
+ caller = "buzapay"
666
1451
  }) => {
667
1452
  const isControlled = value !== void 0;
668
1453
  const [internal, setInternal] = (0, import_react3.useState)("");
@@ -678,7 +1463,42 @@ var BaseRadioGroup = ({
678
1463
  selectedChange?.(v);
679
1464
  };
680
1465
  const containerLayout = type === "horizontal" ? "flex-row gap-5" : "flex-col gap-6";
681
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1466
+ return caller === "buzapay" ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
1467
+ "div",
1468
+ {
1469
+ className: `flex ${containerLayout} ${className}`,
1470
+ role: "radiogroup",
1471
+ "aria-orientation": type === "horizontal" ? "horizontal" : "vertical",
1472
+ tabIndex: 0,
1473
+ children: options.map((option) => {
1474
+ const isActive = selected === option.value;
1475
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
1476
+ "div",
1477
+ {
1478
+ role: "radio",
1479
+ "aria-checked": isActive,
1480
+ tabIndex: -1,
1481
+ onClick: () => setSelected(option.value),
1482
+ className: "flex items-center gap-2 cursor-pointer transition-colors duration-200",
1483
+ children: [
1484
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
1485
+ "div",
1486
+ {
1487
+ className: [
1488
+ "w-4 h-4 rounded-full border flex items-center justify-center",
1489
+ isActive ? "bg-orange-500 border-orange-500" : "bg-white border-grey-200"
1490
+ ].join(" "),
1491
+ children: isActive && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "bg-white w-2 h-2 rounded-full" })
1492
+ }
1493
+ ),
1494
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("p", { className: "mb-0 text-body-2xs font-medium text-heading-text", children: option.label })
1495
+ ]
1496
+ },
1497
+ option.value
1498
+ );
1499
+ })
1500
+ }
1501
+ ) : /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
682
1502
  "div",
683
1503
  {
684
1504
  className: `flex ${containerLayout} ${className}`,
@@ -687,26 +1507,46 @@ var BaseRadioGroup = ({
687
1507
  tabIndex: 0,
688
1508
  children: options.map((option) => {
689
1509
  const isActive = selected === option.value;
690
- return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
1510
+ return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
691
1511
  "div",
692
1512
  {
693
1513
  role: "radio",
694
1514
  "aria-checked": isActive,
695
1515
  tabIndex: -1,
696
1516
  onClick: () => setSelected(option.value),
697
- className: "flex items-center gap-2 cursor-pointer transition-colors duration-200",
1517
+ className: [
1518
+ "flex items-center gap-4 cursor-pointer transition-colors duration-200 px-6 py-2 my-1",
1519
+ selected === option.value ? "border-r-4 border-white" : ""
1520
+ ].join(" "),
698
1521
  children: [
699
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
700
- "div",
1522
+ option.value === "CARD" && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
1523
+ IconCards,
1524
+ {
1525
+ color: selected === option.value ? "#ffffff" : "#8FAECA"
1526
+ }
1527
+ ),
1528
+ option.value === "BANK_TRANSFER" && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
1529
+ IconCourthouse,
1530
+ {
1531
+ color: selected === option.value ? "#ffffff" : "#8FAECA"
1532
+ }
1533
+ ),
1534
+ option.value === "STABLE_COIN" && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
1535
+ IconCoin,
1536
+ {
1537
+ color: selected === option.value ? "#ffffff" : "#8FAECA"
1538
+ }
1539
+ ),
1540
+ /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
1541
+ "p",
701
1542
  {
702
1543
  className: [
703
- "w-4 h-4 rounded-full border flex items-center justify-center",
704
- isActive ? "bg-orange-500 border-orange-500" : "bg-white border-grey-200"
1544
+ "mb-0 text-body-2xs font-medium",
1545
+ selected === option.value ? "text-white" : "text-[#8FAECA]"
705
1546
  ].join(" "),
706
- children: isActive && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("div", { className: "bg-white w-2 h-2 rounded-full" })
1547
+ children: option.label
707
1548
  }
708
- ),
709
- /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("p", { className: "mb-0 text-body-2xs font-medium text-heading-text", children: option.label })
1549
+ )
710
1550
  ]
711
1551
  },
712
1552
  option.value
@@ -717,7 +1557,7 @@ var BaseRadioGroup = ({
717
1557
  };
718
1558
 
719
1559
  // src/components/base/image.tsx
720
- var import_jsx_runtime17 = require("react/jsx-runtime");
1560
+ var import_jsx_runtime24 = require("react/jsx-runtime");
721
1561
  function BaseImage({
722
1562
  src,
723
1563
  height = 50,
@@ -727,7 +1567,7 @@ function BaseImage({
727
1567
  isFullWidth,
728
1568
  onClick
729
1569
  }) {
730
- return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1570
+ return /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
731
1571
  "img",
732
1572
  {
733
1573
  src,
@@ -741,7 +1581,7 @@ function BaseImage({
741
1581
  }
742
1582
 
743
1583
  // src/components/base/copy.tsx
744
- var import_jsx_runtime18 = require("react/jsx-runtime");
1584
+ var import_jsx_runtime25 = require("react/jsx-runtime");
745
1585
  function BaseCopy({ copyText, color }) {
746
1586
  const copyToClipboard = (text) => {
747
1587
  return navigator.clipboard.writeText(text);
@@ -751,7 +1591,7 @@ function BaseCopy({ copyText, color }) {
751
1591
  }).catch((err) => {
752
1592
  });
753
1593
  };
754
- return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1594
+ return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
755
1595
  IconCopySuccess,
756
1596
  {
757
1597
  className: "cursor-pointer",
@@ -762,7 +1602,7 @@ function BaseCopy({ copyText, color }) {
762
1602
  }
763
1603
 
764
1604
  // src/components/base/label-info.tsx
765
- var import_jsx_runtime19 = require("react/jsx-runtime");
1605
+ var import_jsx_runtime26 = require("react/jsx-runtime");
766
1606
  var BaseLabelInfo = ({
767
1607
  type = "vertical",
768
1608
  label = "",
@@ -772,20 +1612,20 @@ var BaseLabelInfo = ({
772
1612
  valueImagePosition = "prefix",
773
1613
  hasValueCopy = false,
774
1614
  value = "",
775
- valueCustomClass = "text-body-2xs font-medium text-sub-copy",
1615
+ valueCustomClass = "text-body-2xs font-medium text-sub-copy max-w-[18rem] truncate",
776
1616
  alignRight = false
777
1617
  }) => {
778
1618
  const showPrefixImg = valueImageSrc && valueImagePosition === "prefix";
779
1619
  const showSuffixImg = valueImageSrc && valueImagePosition === "suffix";
780
1620
  if (type === "vertical") {
781
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
1621
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
782
1622
  "div",
783
1623
  {
784
1624
  className: `flex flex-col gap-1 ${alignRight ? "text-right items-end" : ""}`,
785
1625
  children: [
786
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("p", { className: labelCustomClass, children: label.toUpperCase() }),
787
- /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "flex items-center gap-1", children: [
788
- showPrefixImg && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1626
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: labelCustomClass, children: label.toUpperCase() }),
1627
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "flex items-center gap-1", children: [
1628
+ showPrefixImg && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
789
1629
  BaseImage,
790
1630
  {
791
1631
  src: valueImageSrc,
@@ -794,9 +1634,9 @@ var BaseLabelInfo = ({
794
1634
  customClass: valueImageCustomClass
795
1635
  }
796
1636
  ),
797
- !hasValueCopy ? /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("p", { className: valueCustomClass, children: value }) : /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("p", { className: `${valueCustomClass} truncate`, children: truncateString(value, 40) }),
798
- hasValueCopy && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(BaseCopy, { copyText: value, color: "#9DBFDE" }),
799
- showSuffixImg && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1637
+ !hasValueCopy ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: valueCustomClass, children: value }) : /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: `${valueCustomClass} truncate`, children: truncateString(value, 40) }),
1638
+ hasValueCopy && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(BaseCopy, { copyText: value, color: "#9DBFDE" }),
1639
+ showSuffixImg && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
800
1640
  BaseImage,
801
1641
  {
802
1642
  src: valueImageSrc,
@@ -810,10 +1650,10 @@ var BaseLabelInfo = ({
810
1650
  }
811
1651
  );
812
1652
  }
813
- return /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "flex items-center justify-between", children: [
814
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("p", { className: labelCustomClass, children: label.toUpperCase() }),
815
- /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("div", { className: "flex items-center gap-1", children: [
816
- showPrefixImg && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1653
+ return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "flex items-center justify-between", children: [
1654
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: labelCustomClass, children: label.toUpperCase() }),
1655
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "flex items-center gap-1", children: [
1656
+ showPrefixImg && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
817
1657
  BaseImage,
818
1658
  {
819
1659
  src: valueImageSrc,
@@ -822,9 +1662,9 @@ var BaseLabelInfo = ({
822
1662
  customClass: valueImageCustomClass
823
1663
  }
824
1664
  ),
825
- /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("p", { className: valueCustomClass, children: value }),
826
- hasValueCopy && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(BaseCopy, { copyText: value, color: "#9DBFDE" }),
827
- showSuffixImg && /* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
1665
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: valueCustomClass, children: value }),
1666
+ hasValueCopy && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(BaseCopy, { copyText: value, color: "#9DBFDE" }),
1667
+ showSuffixImg && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
828
1668
  BaseImage,
829
1669
  {
830
1670
  src: valueImageSrc,
@@ -838,61 +1678,83 @@ var BaseLabelInfo = ({
838
1678
  };
839
1679
 
840
1680
  // src/components/base/success.tsx
841
- var import_jsx_runtime20 = require("react/jsx-runtime");
842
- var BaseSuccess = ({}) => {
843
- return /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "flex flex-col gap-8 p-16", children: [
844
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "flex flex-col gap-8", children: [
845
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "flex flex-col gap-8", children: [
846
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(IconCheckCircle, { color: "#F47A1F", className: "mx-auto" }),
847
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "flex flex-col text-center", style: { gap: "2px" }, children: [
848
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("p", { className: "text-heading-text font-medium text-header-2xl", children: "\u20A62,500.00" }),
849
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("p", { className: "text-sub-copy font-regular text-body-3xs", children: "Has been paid successfully" })
1681
+ var import_jsx_runtime27 = require("react/jsx-runtime");
1682
+ var BaseSuccess = ({
1683
+ amount,
1684
+ currency,
1685
+ redirectUrl,
1686
+ successObject = {
1687
+ paymentDate: "",
1688
+ paymentId: "",
1689
+ paymentStatus: ""
1690
+ },
1691
+ caller = "buzapay"
1692
+ }) => {
1693
+ const formatAmountHandler = formatAmount(amount, currency);
1694
+ const goToRedirectUrl = () => {
1695
+ window.open(redirectUrl, "_self", "noopener,noreferrer");
1696
+ };
1697
+ const paymentDate = successObject.paymentDate ? new Date(successObject.paymentDate).toLocaleDateString("en-US", {
1698
+ year: "numeric",
1699
+ month: "long",
1700
+ day: "2-digit"
1701
+ }) : "---";
1702
+ return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "flex flex-col gap-8 p-16", children: [
1703
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "flex flex-col gap-8", children: [
1704
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "flex flex-col gap-8", children: [
1705
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(IconCheckCircle, { color: "#F47A1F", className: "mx-auto" }),
1706
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "flex flex-col text-center", style: { gap: "2px" }, children: [
1707
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("p", { className: "text-heading-text font-medium text-header-2xl", children: formatAmountHandler }),
1708
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("p", { className: "text-sub-copy font-regular text-body-3xs", children: "Has been paid successfully" })
850
1709
  ] })
851
1710
  ] }),
852
- /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)("div", { className: "flex flex-col", children: [
853
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "py-4 border-b border-grey-100", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1711
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "flex flex-col", children: [
1712
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "py-4 border-b border-grey-100", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
854
1713
  BaseLabelInfo,
855
1714
  {
856
1715
  type: "horizontal",
857
1716
  label: "Order ID",
858
- value: "9900009000-8890-8829hd7"
1717
+ value: successObject.paymentId
859
1718
  }
860
1719
  ) }),
861
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "py-4", children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1720
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "py-4", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
862
1721
  BaseLabelInfo,
863
1722
  {
864
1723
  type: "horizontal",
865
1724
  label: "Payment date",
866
- value: "July 24, 2025"
1725
+ value: paymentDate
867
1726
  }
868
1727
  ) })
869
1728
  ] })
870
1729
  ] }),
871
- /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("div", { className: "mx-auto", style: { width: "80%" }, children: /* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
1730
+ /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "mx-auto", style: { width: "80%" }, children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
872
1731
  BaseButton,
873
1732
  {
874
1733
  label: "Return to Merchant Website",
875
1734
  type: "secondary",
876
- customClass: "w-full"
1735
+ caller,
1736
+ customClass: "w-full",
1737
+ onClick: goToRedirectUrl
877
1738
  }
878
1739
  ) })
879
1740
  ] });
880
1741
  };
881
1742
 
882
1743
  // src/components/base/hint.tsx
883
- var import_jsx_runtime21 = require("react/jsx-runtime");
1744
+ var import_jsx_runtime28 = require("react/jsx-runtime");
884
1745
  function BaseHint({ hint }) {
885
- return /* @__PURE__ */ (0, import_jsx_runtime21.jsx)("p", { className: "mb-0 text-body-3xs font-medium text-orange-500", children: hint });
1746
+ return /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("p", { className: "mb-0 text-body-3xs font-medium text-orange-500", children: hint });
886
1747
  }
887
1748
 
888
1749
  // src/components/base/select.tsx
889
1750
  var import_react4 = __toESM(require("react"), 1);
890
- var import_jsx_runtime22 = require("react/jsx-runtime");
1751
+ var import_jsx_runtime29 = require("react/jsx-runtime");
891
1752
  var BaseSelect = ({
892
1753
  options,
893
1754
  value,
894
1755
  defaultValue,
895
1756
  onChange,
1757
+ onBlur,
896
1758
  placeholder = "Select an option",
897
1759
  hasSearch = true,
898
1760
  disabled = false,
@@ -965,6 +1827,7 @@ var BaseSelect = ({
965
1827
  const commit = (val) => {
966
1828
  if (!isControlled) setInternalValue(val);
967
1829
  onChange?.(val);
1830
+ onBlur?.(val);
968
1831
  closeMenu();
969
1832
  };
970
1833
  const onSearchInput = (e) => {
@@ -1050,12 +1913,12 @@ var BaseSelect = ({
1050
1913
  };
1051
1914
  const containerBg = disabled ? "bg-grey-100 cursor-not-allowed" : "bg-white";
1052
1915
  const containerBorder = validationError ? "border-red-300 bg-red-50" : "border-grey-100 bg-white";
1053
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: `flex flex-col gap-2 relative ${className}`, children: [
1054
- label ? /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("p", { className: "mb-0 text-body-2xs font-normal text-heading-text", children: [
1916
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: `flex flex-col gap-2 relative ${className}`, children: [
1917
+ label ? /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("p", { className: "mb-0 text-body-2xs font-normal text-heading-text", children: [
1055
1918
  label,
1056
- required && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "text-orange-required", children: " *" })
1919
+ required && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: "text-orange-required", children: " *" })
1057
1920
  ] }) : null,
1058
- /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
1921
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
1059
1922
  "div",
1060
1923
  {
1061
1924
  ref: triggerRef,
@@ -1070,10 +1933,10 @@ var BaseSelect = ({
1070
1933
  onClick: toggleMenu,
1071
1934
  onKeyDown: onTriggerKeyDown,
1072
1935
  children: [
1073
- /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "flex items-center gap-2", children: [
1936
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "flex items-center gap-2", children: [
1074
1937
  prefix,
1075
- /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "flex items-center gap-2", children: [
1076
- selected && itemImageType === "country" && selected.countryCode && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1938
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "flex items-center gap-2", children: [
1939
+ selected && itemImageType === "country" && selected.countryCode && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
1077
1940
  BaseImage,
1078
1941
  {
1079
1942
  src: `https://flagcdn.com/w40/${selected.countryCode.toLowerCase()}.png`,
@@ -1082,7 +1945,7 @@ var BaseSelect = ({
1082
1945
  customClass: "rounded-lg"
1083
1946
  }
1084
1947
  ),
1085
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1948
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
1086
1949
  "p",
1087
1950
  {
1088
1951
  className: `text-body-2xs font-normal mb-0 ${selected?.label ? "text-sub-copy" : "text-grey-500"}`,
@@ -1093,12 +1956,12 @@ var BaseSelect = ({
1093
1956
  ] }),
1094
1957
  loading ? (
1095
1958
  // Loader (replace with your own IconLoader if you have one)
1096
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { className: "inline-block h-4 w-4 border-2 border-current border-t-transparent rounded-full animate-spin" })
1097
- ) : open ? /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(IconChevronUp, { color: "#8FAECA" }) : /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(IconChevronDown, { color: "#8FAECA" })
1959
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: "inline-block h-4 w-4 border-2 border-current border-t-transparent rounded-full animate-spin" })
1960
+ ) : open ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(IconChevronUp, { color: "#8FAECA" }) : /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(IconChevronDown, { color: "#8FAECA" })
1098
1961
  ]
1099
1962
  }
1100
1963
  ),
1101
- open && /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
1964
+ open && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
1102
1965
  "div",
1103
1966
  {
1104
1967
  ref: menuRef,
@@ -1109,19 +1972,20 @@ var BaseSelect = ({
1109
1972
  style: { position: "absolute", top: "100%", zIndex: 10 },
1110
1973
  onKeyDown: onMenuKeyDown,
1111
1974
  children: [
1112
- hasSearch && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "px-4 pt-2 pb-1", children: /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1975
+ hasSearch && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: "px-4 pt-2 pb-1", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
1113
1976
  "input",
1114
1977
  {
1115
1978
  ref: searchRef,
1116
1979
  type: "text",
1117
1980
  onChange: onSearchInput,
1981
+ onBlur: onSearchInput,
1118
1982
  placeholder: `Search ${label || "options"}`,
1119
1983
  className: "bg-transparent outline-none border-b pb-2 w-full focus:outline-none focus:ring-0 text-body-2xs text-light-copy font-normal"
1120
1984
  }
1121
1985
  ) }),
1122
1986
  filtered.map((opt, i) => {
1123
1987
  const selectedOpt = selected?.value === opt.value;
1124
- return /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)(
1988
+ return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
1125
1989
  "div",
1126
1990
  {
1127
1991
  onClick: () => commit(opt.value),
@@ -1131,7 +1995,7 @@ var BaseSelect = ({
1131
1995
  "aria-selected": selectedOpt,
1132
1996
  className: `px-4 py-3 first:pt-0 hover:bg-gray-100 flex items-center gap-2 cursor-pointer ${i === activeIndex ? "bg-gray-100" : ""}`,
1133
1997
  children: [
1134
- itemImageType === "country" && opt.countryCode && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(
1998
+ itemImageType === "country" && opt.countryCode && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
1135
1999
  BaseImage,
1136
2000
  {
1137
2001
  src: `https://flagcdn.com/w40/${opt.countryCode.toLowerCase()}.png`,
@@ -1140,7 +2004,7 @@ var BaseSelect = ({
1140
2004
  customClass: "rounded-lg"
1141
2005
  }
1142
2006
  ),
1143
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("p", { className: "mb-0 text-body-2xs font-medium", children: opt.label })
2007
+ /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("p", { className: "mb-0 text-body-2xs font-medium", children: opt.label })
1144
2008
  ]
1145
2009
  },
1146
2010
  opt.value
@@ -1149,13 +2013,13 @@ var BaseSelect = ({
1149
2013
  ]
1150
2014
  }
1151
2015
  ),
1152
- hint && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(BaseHint, { hint }),
1153
- validationError && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(BaseInputError, { errorMessage: validationError })
2016
+ hint && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(BaseHint, { hint }),
2017
+ validationError && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(BaseInputError, { errorMessage: validationError })
1154
2018
  ] });
1155
2019
  };
1156
2020
 
1157
2021
  // src/components/base/currency-amount.tsx
1158
- var import_jsx_runtime23 = require("react/jsx-runtime");
2022
+ var import_jsx_runtime30 = require("react/jsx-runtime");
1159
2023
  var BaseCurrencyAmount = ({
1160
2024
  currency,
1161
2025
  amount,
@@ -1166,10 +2030,10 @@ var BaseCurrencyAmount = ({
1166
2030
  }) => {
1167
2031
  const cur = currency?.toUpperCase();
1168
2032
  if (cur !== "USDT" && cur !== "USDC") {
1169
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("p", { className: textClass, children: formatAmount(amount, cur) });
2033
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("p", { className: textClass, children: formatAmount(amount, cur) });
1170
2034
  }
1171
- return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "flex items-center gap-1", children: [
1172
- cur === "USDT" && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2035
+ return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "flex items-center gap-1", children: [
2036
+ cur === "USDT" && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
1173
2037
  IconUsdt,
1174
2038
  {
1175
2039
  width: iconWidth,
@@ -1177,7 +2041,7 @@ var BaseCurrencyAmount = ({
1177
2041
  color: iconColorClass
1178
2042
  }
1179
2043
  ),
1180
- cur === "USDC" && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
2044
+ cur === "USDC" && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
1181
2045
  IconUsdc,
1182
2046
  {
1183
2047
  width: iconWidth,
@@ -1185,13 +2049,224 @@ var BaseCurrencyAmount = ({
1185
2049
  color: iconColorClass
1186
2050
  }
1187
2051
  ),
1188
- /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("p", { className: textClass, children: formatAmount(amount) })
2052
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("p", { className: textClass, children: formatAmount(amount) })
2053
+ ] });
2054
+ };
2055
+
2056
+ // src/components/base/input.tsx
2057
+ var import_react5 = __toESM(require("react"), 1);
2058
+ var import_react_imask = require("react-imask");
2059
+ var import_jsx_runtime31 = require("react/jsx-runtime");
2060
+ var BaseInput = ({
2061
+ label = "",
2062
+ type = "text",
2063
+ mask,
2064
+ placeholder,
2065
+ validationError = "",
2066
+ hint = "",
2067
+ rules = [],
2068
+ isAmountInput = false,
2069
+ required = false,
2070
+ disabled = false,
2071
+ loading = false,
2072
+ showCopyIcon = false,
2073
+ preventPaste = false,
2074
+ value,
2075
+ defaultValue,
2076
+ onChange,
2077
+ onBlur,
2078
+ prefix,
2079
+ suffix,
2080
+ className = ""
2081
+ }) => {
2082
+ const isControlled = value !== void 0;
2083
+ const [rawValue, setRawValue] = import_react5.default.useState(
2084
+ defaultValue ?? value ?? ""
2085
+ );
2086
+ const [localHint, setLocalHint] = import_react5.default.useState("");
2087
+ const [localError, setLocalError] = import_react5.default.useState("");
2088
+ import_react5.default.useEffect(() => {
2089
+ if (isControlled) setRawValue(value ?? "");
2090
+ }, [isControlled, value]);
2091
+ const formattedValue = isAmountInput ? formatAmount(rawValue.replace(/,/g, "")) : rawValue;
2092
+ const handleChange = (e) => {
2093
+ const incoming = e.target.value.replace(/,/g, "");
2094
+ if (!isControlled) setRawValue(incoming);
2095
+ onChange?.(incoming);
2096
+ setTimeout(() => {
2097
+ const el = e.target;
2098
+ el.selectionStart = el.selectionEnd = el.value.length;
2099
+ });
2100
+ };
2101
+ const handleBlur = () => {
2102
+ onBlur?.(rawValue);
2103
+ };
2104
+ const handleKeyDown = (e) => {
2105
+ if (rules.includes("numeric")) restrictToNumericKeys(e);
2106
+ };
2107
+ const handlePaste = (e) => {
2108
+ if (preventPaste) {
2109
+ e.preventDefault();
2110
+ setLocalError("Pasting is disabled for this input");
2111
+ }
2112
+ };
2113
+ const containerBg = disabled ? "bg-grey-50 cursor-not-allowed" : "bg-white";
2114
+ const containerBorder = validationError || localError ? "border-red-300 bg-red-50" : "border-grey-100";
2115
+ const copyToClipboard = (text) => {
2116
+ return navigator.clipboard.writeText(text);
2117
+ };
2118
+ const copyHandler = () => {
2119
+ copyToClipboard(rawValue).then(() => {
2120
+ setLocalHint("Text copied to clipboard");
2121
+ }).catch(() => {
2122
+ setLocalError("Failed to copy text to clipboard");
2123
+ });
2124
+ };
2125
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: `flex flex-col gap-2 ${className}`, children: [
2126
+ label ? /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("p", { className: "mb-0 text-body-2xs font-normal text-heading-text", children: [
2127
+ label,
2128
+ required && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("span", { className: "text-orange-required", children: " *" })
2129
+ ] }) : null,
2130
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
2131
+ "div",
2132
+ {
2133
+ className: `border-c px-3 py-2 flex items-center justify-between rounded-md h-12 ${containerBg} ${containerBorder}`,
2134
+ children: [
2135
+ prefix,
2136
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
2137
+ import_react_imask.IMaskInput,
2138
+ {
2139
+ type,
2140
+ mask,
2141
+ value: formattedValue,
2142
+ onChange: handleChange,
2143
+ onBlur: handleBlur,
2144
+ onKeyDown: handleKeyDown,
2145
+ onPaste: handlePaste,
2146
+ disabled,
2147
+ placeholder: placeholder ?? (label ? `Enter ${label.toLowerCase()}` : void 0),
2148
+ inputMode: isAmountInput ? "decimal" : void 0,
2149
+ className: "search-input bg-transparent outline-none border-none focus:outline-none focus:ring-0 text-body-2xs text-light-copy font-normal w-full"
2150
+ }
2151
+ ),
2152
+ !loading ? /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(import_jsx_runtime31.Fragment, { children: [
2153
+ suffix,
2154
+ showCopyIcon && rawValue && rawValue.trim() !== "" && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
2155
+ BaseImage,
2156
+ {
2157
+ src: "assets/images/copyIcon.svg",
2158
+ alt: "copy",
2159
+ width: 16,
2160
+ height: 16,
2161
+ customClass: "cursor-pointer hover:opacity-70 transition-opacity",
2162
+ onClick: copyHandler
2163
+ }
2164
+ )
2165
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: "animate-spin h-4 w-4 border-2 border-current border-t-transparent rounded-full" })
2166
+ ]
2167
+ }
2168
+ ),
2169
+ (hint || localHint) && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("p", { className: "text-body-3xs text-light-copy", children: localHint || hint }),
2170
+ (validationError || localError) && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("p", { className: "text-body-3xs text-red-500", children: localError || validationError })
1189
2171
  ] });
1190
2172
  };
1191
2173
 
2174
+ // src/components/base/circular-countdown.tsx
2175
+ var import_react6 = require("react");
2176
+ var import_jsx_runtime32 = require("react/jsx-runtime");
2177
+ function BaseCircularCountdown({
2178
+ value = 0,
2179
+ total = 100,
2180
+ middleText = "",
2181
+ size = 72,
2182
+ stroke = 6,
2183
+ color = "#3b82f6"
2184
+ }) {
2185
+ const radius = (0, import_react6.useMemo)(() => (size - stroke) / 2, [size, stroke]);
2186
+ const circumference = (0, import_react6.useMemo)(() => 2 * Math.PI * radius, [radius]);
2187
+ const percentLeft = (0, import_react6.useMemo)(() => {
2188
+ const safeTotal = Math.max(1, total);
2189
+ const p = value / safeTotal * 100;
2190
+ return Math.max(0, Math.min(100, p));
2191
+ }, [value, total]);
2192
+ const dashOffset = (0, import_react6.useMemo)(
2193
+ () => circumference * (1 - percentLeft / 100),
2194
+ [circumference, percentLeft]
2195
+ );
2196
+ return /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
2197
+ "div",
2198
+ {
2199
+ style: {
2200
+ position: "relative",
2201
+ display: "inline-block",
2202
+ width: `${size}px`,
2203
+ height: `${size}px`,
2204
+ color
2205
+ },
2206
+ children: [
2207
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(
2208
+ "svg",
2209
+ {
2210
+ width: size,
2211
+ height: size,
2212
+ viewBox: `0 0 ${size} ${size}`,
2213
+ "aria-hidden": "true",
2214
+ children: [
2215
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
2216
+ "circle",
2217
+ {
2218
+ cx: size / 2,
2219
+ cy: size / 2,
2220
+ r: radius,
2221
+ strokeWidth: stroke,
2222
+ fill: "none",
2223
+ style: { stroke: "rgba(0, 0, 0, 0.12)" }
2224
+ }
2225
+ ),
2226
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
2227
+ "circle",
2228
+ {
2229
+ cx: size / 2,
2230
+ cy: size / 2,
2231
+ r: radius,
2232
+ stroke: color,
2233
+ strokeWidth: stroke,
2234
+ fill: "none",
2235
+ strokeDasharray: `${circumference} ${circumference}`,
2236
+ strokeDashoffset: dashOffset,
2237
+ style: {
2238
+ strokeLinecap: "round",
2239
+ transform: "rotate(-90deg)",
2240
+ transformOrigin: "50% 50%",
2241
+ transition: "stroke-dashoffset 0.2s linear"
2242
+ }
2243
+ }
2244
+ )
2245
+ ]
2246
+ }
2247
+ ),
2248
+ /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
2249
+ "div",
2250
+ {
2251
+ className: "text-light-copy text-body-3xs",
2252
+ style: {
2253
+ position: "absolute",
2254
+ inset: 0,
2255
+ display: "grid",
2256
+ placeItems: "center",
2257
+ userSelect: "none"
2258
+ },
2259
+ children: middleText
2260
+ }
2261
+ )
2262
+ ]
2263
+ }
2264
+ );
2265
+ }
2266
+
1192
2267
  // src/buzapay-checkout/checkout-iframe.tsx
1193
- var import_react5 = require("react");
1194
- var import_jsx_runtime24 = require("react/jsx-runtime");
2268
+ var import_react7 = require("react");
2269
+ var import_jsx_runtime33 = require("react/jsx-runtime");
1195
2270
  function BzpCheckoutIframe({
1196
2271
  style = {
1197
2272
  width: "100%",
@@ -1204,22 +2279,23 @@ function BzpCheckoutIframe({
1204
2279
  secretKey,
1205
2280
  environment = "sandbox",
1206
2281
  paymentObject = {
2282
+ merchantName: "",
1207
2283
  amount: 0,
1208
2284
  currency: "",
1209
2285
  email: "",
1210
2286
  phoneNumber: "",
1211
2287
  narration: "",
1212
- redirectUrl: ""
1213
- }
2288
+ redirectUrl: "https://sandbox-merchant.buzapay.com/account/three-ds-status"
2289
+ },
2290
+ onError
1214
2291
  }) {
1215
- const containerRef = (0, import_react5.useRef)(null);
1216
- const iframeRef = (0, import_react5.useRef)(null);
1217
- const [message, setMessage] = (0, import_react5.useState)("");
1218
- const [launchUrl, setLaunchUrl] = (0, import_react5.useState)("");
1219
- const [loading, setLoading] = (0, import_react5.useState)(false);
1220
- const launchIframe = (0, import_react5.useCallback)(
2292
+ const containerRef = (0, import_react7.useRef)(null);
2293
+ const iframeRef = (0, import_react7.useRef)(null);
2294
+ const [message, setMessage] = (0, import_react7.useState)("");
2295
+ const [launchUrl, setLaunchUrl] = (0, import_react7.useState)("");
2296
+ const [loading, setLoading] = (0, import_react7.useState)(false);
2297
+ const launchIframe = (0, import_react7.useCallback)(
1221
2298
  (url2) => {
1222
- if (!containerRef.current) return;
1223
2299
  if (iframeRef.current && iframeRef.current.parentNode) {
1224
2300
  iframeRef.current.parentNode.removeChild(iframeRef.current);
1225
2301
  }
@@ -1230,7 +2306,7 @@ function BzpCheckoutIframe({
1230
2306
  if (style.border) iframe.style.border = style.border;
1231
2307
  if (style.borderRadius) iframe.style.borderRadius = style.borderRadius;
1232
2308
  if (style.overflow) iframe.style.overflow = style.overflow;
1233
- containerRef.current.appendChild(iframe);
2309
+ containerRef.current?.appendChild(iframe);
1234
2310
  iframeRef.current = iframe;
1235
2311
  },
1236
2312
  [style]
@@ -1247,47 +2323,354 @@ function BzpCheckoutIframe({
1247
2323
  return setMessage("Secret key is required.");
1248
2324
  }
1249
2325
  setLoading(true);
1250
- const response = await createPaymentLink(
1251
- paymentObject,
1252
- environment,
1253
- secretKey
1254
- );
1255
- if (response?.isSuccessful) {
1256
- setLaunchUrl(response.launchUrl ?? "");
1257
- setMessage("Payment link created successfully");
1258
- if (launchUrl) {
1259
- launchIframe(launchUrl);
2326
+ try {
2327
+ const response = await createPaymentLink(
2328
+ paymentObject,
2329
+ environment,
2330
+ secretKey,
2331
+ "buzapay"
2332
+ );
2333
+ if (response?.isSuccessful) {
2334
+ setLaunchUrl(response.launchUrl ?? "");
2335
+ setMessage("Payment link created successfully");
2336
+ if (response.launchUrl) {
2337
+ setLoading(false);
2338
+ launchIframe(`${response.launchUrl}&merchantId=${btoa(secretKey)}`);
2339
+ }
2340
+ } else {
2341
+ setLoading(false);
2342
+ setMessage("Failed to create payment link");
1260
2343
  }
1261
- } else {
1262
- setMessage("Failed to create payment link");
2344
+ } catch (e) {
2345
+ setMessage(e?.message || "Failed to create payment link");
2346
+ onError?.({
2347
+ errorMessage: message
2348
+ });
2349
+ } finally {
2350
+ setLoading(false);
1263
2351
  }
1264
2352
  };
1265
- (0, import_react5.useEffect)(() => {
1266
- (async () => {
1267
- await generatePaymentLinkHandler();
1268
- })();
2353
+ (0, import_react7.useEffect)(() => {
2354
+ if (!containerRef.current) return;
2355
+ generatePaymentLinkHandler();
1269
2356
  }, []);
1270
- return loading ? /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: "w-full h-48 flex flex-col justify-center items-center", children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)(IconLoader, {}) }) : /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { ref: containerRef, style });
2357
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "relative", style, children: [
2358
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { ref: containerRef, className: "w-full h-full" }),
2359
+ loading && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "absolute inset-0 grid place-items-center bg-white/60", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(IconLoader, {}) })
2360
+ ] });
1271
2361
  }
1272
2362
 
1273
2363
  // src/buzapay-checkout/checkout-button.tsx
1274
- var import_jsx_runtime25 = require("react/jsx-runtime");
2364
+ var import_jsx_runtime34 = require("react/jsx-runtime");
1275
2365
  function BzpCheckoutButton({
1276
2366
  secretKey,
1277
2367
  environment = "sandbox",
1278
2368
  paymentObject = {
2369
+ merchantName: "",
1279
2370
  amount: 0,
1280
2371
  currency: "",
1281
2372
  email: "",
1282
2373
  phoneNumber: "",
1283
2374
  narration: "",
1284
- redirectUrl: ""
2375
+ redirectUrl: "https://sandbox-merchant.buzapay.com/account/three-ds-status"
1285
2376
  },
1286
- mode = "redirect"
2377
+ mode = "redirect",
2378
+ onError
2379
+ }) {
2380
+ const [message, setMessage] = (0, import_react8.useState)("");
2381
+ const [launchUrl, setLaunchUrl] = (0, import_react8.useState)("");
2382
+ const [urlLaunchUrl, setUrlLaunchUrl] = (0, import_react8.useState)("");
2383
+ const [loading, setLoading] = (0, import_react8.useState)(false);
2384
+ const generatePaymentLinkHandler = async () => {
2385
+ if (!secretKey) {
2386
+ setMessage("Secret key is required.");
2387
+ return;
2388
+ }
2389
+ if (!checkObjectTruthy(paymentObject)) {
2390
+ setMessage("Kindly ensure you are passing all the required data.");
2391
+ return;
2392
+ }
2393
+ setLoading(true);
2394
+ setMessage("");
2395
+ try {
2396
+ const response = await createPaymentLink(
2397
+ paymentObject,
2398
+ environment,
2399
+ secretKey,
2400
+ "buzapay"
2401
+ );
2402
+ if (response?.isSuccessful && response.launchUrl) {
2403
+ setLaunchUrl(response.launchUrl);
2404
+ setUrlLaunchUrl(`${response.launchUrl}&merchantId=${btoa(secretKey)}`);
2405
+ setMessage("Payment link created successfully");
2406
+ if (mode === "redirect") {
2407
+ window.open(response.launchUrl, "_blank", "noopener,noreferrer");
2408
+ }
2409
+ } else {
2410
+ setMessage("Failed to create payment link");
2411
+ }
2412
+ } catch (e) {
2413
+ setMessage(e?.message || "Failed to create payment link");
2414
+ onError?.({
2415
+ errorMessage: message
2416
+ });
2417
+ } finally {
2418
+ setLoading(false);
2419
+ }
2420
+ };
2421
+ return urlLaunchUrl && mode === "iframe" ? /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
2422
+ BzpCheckoutIframe,
2423
+ {
2424
+ url: urlLaunchUrl,
2425
+ secretKey,
2426
+ environment
2427
+ }
2428
+ ) : /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { children: [
2429
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(
2430
+ BaseButton,
2431
+ {
2432
+ label: "Pay",
2433
+ type: "primary",
2434
+ customClass: "w-full",
2435
+ loading,
2436
+ onClick: generatePaymentLinkHandler
2437
+ }
2438
+ ),
2439
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)(BaseInputError, { errorMessage: message })
2440
+ ] });
2441
+ }
2442
+
2443
+ // src/buzapay-checkout/checkout-card.tsx
2444
+ var import_react12 = require("react");
2445
+
2446
+ // src/components/pay-by-card.tsx
2447
+ var import_react9 = require("react");
2448
+ var import_jsx_runtime35 = require("react/jsx-runtime");
2449
+ function PayByCard({
2450
+ secretKey,
2451
+ paymentObject,
2452
+ environment = "sandbox",
2453
+ onPaymentAuthorized,
2454
+ onError,
2455
+ caller = "buzapay"
1287
2456
  }) {
1288
- const [message, setMessage] = (0, import_react6.useState)("");
1289
- const [launchUrl, setLaunchUrl] = (0, import_react6.useState)("");
1290
- const [loading, setLoading] = (0, import_react6.useState)(false);
2457
+ const [formIndex, setFormIndex] = (0, import_react9.useState)(0);
2458
+ const [message, setMessage] = (0, import_react9.useState)("");
2459
+ const [isMakingPayment, setIsMakingPayment] = (0, import_react9.useState)(false);
2460
+ const [loading, setLoading] = (0, import_react9.useState)(false);
2461
+ const [cardType, setCardType] = (0, import_react9.useState)("");
2462
+ const [transactionReference, setTransactionReference] = (0, import_react9.useState)("");
2463
+ const [loadingCountries, setLoadingCountries] = (0, import_react9.useState)(false);
2464
+ const [loadingStates, setLoadingStates] = (0, import_react9.useState)(false);
2465
+ const [rawCountries, setRawCountries] = (0, import_react9.useState)([]);
2466
+ const [countries, setCountries] = (0, import_react9.useState)([]);
2467
+ const [countryStates, setCountryStates] = (0, import_react9.useState)([]);
2468
+ const [billingForm, setBillingForm] = (0, import_react9.useState)({
2469
+ address1: "",
2470
+ address2: "",
2471
+ postalCode: "",
2472
+ state: "",
2473
+ city: "",
2474
+ country: "",
2475
+ emailAddress: "",
2476
+ phoneNumber: ""
2477
+ });
2478
+ const [payForm, setPayForm] = (0, import_react9.useState)({
2479
+ customerName: "",
2480
+ cardNo: "",
2481
+ expireDate: "",
2482
+ cvv: "",
2483
+ cardPin: ""
2484
+ // Only required for Verve cards
2485
+ });
2486
+ const [billingErrors, setBillingErrors] = (0, import_react9.useState)(
2487
+ {}
2488
+ );
2489
+ const [payErrors, setPayErrors] = (0, import_react9.useState)({});
2490
+ const billingRules = {
2491
+ address1: "required",
2492
+ address2: "",
2493
+ // optional
2494
+ country: "required",
2495
+ state: "required",
2496
+ city: "required",
2497
+ postalCode: "required|no_special|char_length:6",
2498
+ emailAddress: "required|email",
2499
+ phoneNumber: "required"
2500
+ };
2501
+ const payRules = {
2502
+ customerName: "required",
2503
+ cardNo: "required|num_spaces",
2504
+ expireDate: "required",
2505
+ cvv: "required|numeric",
2506
+ cardPin: ""
2507
+ // optional unless Verve
2508
+ };
2509
+ const formatAmountHandler = formatAmount(
2510
+ paymentObject.amount,
2511
+ paymentObject.currency
2512
+ );
2513
+ const billingLabels = {
2514
+ address1: "Address Line 1",
2515
+ address2: "Address Line 2",
2516
+ postalCode: "Postal Code",
2517
+ state: "State",
2518
+ city: "City",
2519
+ country: "Country",
2520
+ emailAddress: "Email",
2521
+ phoneNumber: "Phone Number"
2522
+ };
2523
+ const payLabels = {
2524
+ customerName: "Card Name",
2525
+ cardNo: "Card Number",
2526
+ expireDate: "Expiry Date",
2527
+ cvv: "CVV",
2528
+ cardPin: "Card PIN"
2529
+ };
2530
+ const proceedHandler = async () => {
2531
+ if (formIndex === 0) {
2532
+ const errs = validateGroup(billingForm, billingRules, billingLabels);
2533
+ setBillingErrors(errs);
2534
+ if (Object.keys(errs).length === 0) {
2535
+ setFormIndex(1);
2536
+ }
2537
+ return;
2538
+ }
2539
+ if (formIndex === 1) {
2540
+ const errs = validateGroup(payForm, payRules, payLabels);
2541
+ setPayErrors(errs);
2542
+ if (Object.keys(errs).length > 0) {
2543
+ return;
2544
+ }
2545
+ try {
2546
+ setIsMakingPayment(true);
2547
+ setMessage("");
2548
+ const cardDetails = {
2549
+ pan: payForm.cardNo ?? "",
2550
+ expiryDate: payForm.expireDate ?? "",
2551
+ cvv: payForm.cvv ?? "",
2552
+ cardScheme: cardType,
2553
+ nameOnCard: payForm.customerName ?? "",
2554
+ ...cardType === "Verve" && { pin: payForm.cardPin ?? "" }
2555
+ };
2556
+ const billingDetails = {
2557
+ address1: billingForm.address1 ?? "",
2558
+ address2: billingForm.address2 ?? "",
2559
+ postalCode: billingForm.postalCode ?? "",
2560
+ state: billingForm.state ?? "",
2561
+ city: billingForm.city ?? "",
2562
+ country: billingForm.country ?? "",
2563
+ emailAddress: billingForm.emailAddress ?? "",
2564
+ phoneNumber: billingForm.phoneNumber ?? ""
2565
+ };
2566
+ const encryptedCardDetails = encryptPayload(secretKey, cardDetails);
2567
+ const payload = {
2568
+ customerId: paymentObject?.email || payForm.customerName || "",
2569
+ amount: String(paymentObject?.amount ?? ""),
2570
+ currency: paymentObject?.currency || "USD",
2571
+ narration: paymentObject?.narration || "Test transaction",
2572
+ encryptedCardDetails: encryptedCardDetails.requestParam,
2573
+ billingDetails,
2574
+ redirectUrl: paymentObject?.redirectUrl || "",
2575
+ paymentReference: transactionReference,
2576
+ isCheckout: true
2577
+ };
2578
+ const request = { ...payload, merchantId: secretKey };
2579
+ let response = await authorizeCardPayment(environment, request, caller);
2580
+ if (response?.responseParam) {
2581
+ response = decryptPayload(environment, response.responseParam);
2582
+ }
2583
+ if (response?.isSuccessful) {
2584
+ if (response.threeDsInteractionRequired === true) {
2585
+ const threeDsData = {
2586
+ transactionReference: response.transactionReference,
2587
+ threeDsHtml: response.threeDsHtml,
2588
+ amount: response.amount,
2589
+ responseMessage: response.responseMessage,
2590
+ paReq: response.threeDsHtml?.paReq,
2591
+ termUrl: response.threeDsHtml?.termUrl,
2592
+ action: response.threeDsHtml?.action,
2593
+ acsUrl: response.threeDsHtml?.acsUrl,
2594
+ md: response.threeDsHtml?.md
2595
+ };
2596
+ const stringifiedThreeDsData = btoa(JSON.stringify(threeDsData));
2597
+ const threeDsUrl = `https://sandbox-merchant.buzapay.com/account/three-ds-confirm?threeDsData=${encodeURIComponent(
2598
+ stringifiedThreeDsData
2599
+ )}&paymentReference=${response.transactionReference}`;
2600
+ window.open(threeDsUrl, "_self", "noopener,noreferrer");
2601
+ setMessage(
2602
+ "3D Secure authentication opened in new tab. Please complete the verification"
2603
+ );
2604
+ setIsMakingPayment(false);
2605
+ return;
2606
+ }
2607
+ if (response.responseMessage === "Payer Interaction Required" && response.threeDsHtml) {
2608
+ const threeDsData = {
2609
+ transactionReference: response.transactionReference,
2610
+ threeDsHtml: response.threeDsHtml,
2611
+ amount: response.amount,
2612
+ responseMessage: response.responseMessage,
2613
+ paReq: response.threeDsHtml?.paReq,
2614
+ termUrl: response.threeDsHtml?.termUrl,
2615
+ action: response.threeDsHtml?.action,
2616
+ acsUrl: response.threeDsHtml?.acsUrl,
2617
+ md: response.threeDsHtml?.md
2618
+ };
2619
+ const stringifiedThreeDsData = btoa(JSON.stringify(threeDsData));
2620
+ const threeDsUrl = `https://sandbox-merchant.buzapay.com/account/three-ds-confirm?threeDsData=${encodeURIComponent(
2621
+ stringifiedThreeDsData
2622
+ )}&paymentReference=${response.transactionReference}`;
2623
+ window.open(threeDsUrl, "_self", "noopener,noreferrer");
2624
+ setMessage(
2625
+ "3D Secure authentication opened in new tab. Please complete the verification"
2626
+ );
2627
+ setIsMakingPayment(false);
2628
+ return;
2629
+ }
2630
+ if (response.transactionReference?.trim()) {
2631
+ onPaymentAuthorized?.({
2632
+ paymentId: response.transactionReference,
2633
+ paymentDate: response?.data?.updatedAt,
2634
+ // optional if present
2635
+ paymentStatus: "authorized",
2636
+ message
2637
+ });
2638
+ }
2639
+ setMessage("Card payment authorized successfully");
2640
+ setIsMakingPayment(false);
2641
+ return;
2642
+ }
2643
+ setMessage(response?.responseMessage || "Payment failed");
2644
+ onPaymentAuthorized?.({
2645
+ paymentId: response?.transactionReference,
2646
+ paymentDate: response?.data?.updatedAt,
2647
+ paymentStatus: "payment failed",
2648
+ message
2649
+ });
2650
+ setIsMakingPayment(false);
2651
+ } catch (err) {
2652
+ let friendly = "Payment failed";
2653
+ if (err?.error?.responseParam) {
2654
+ try {
2655
+ const decryptedError = decryptPayload(
2656
+ environment,
2657
+ err.error.responseParam
2658
+ );
2659
+ friendly = decryptedError?.responseMessage || friendly;
2660
+ } catch {
2661
+ friendly = err?.error?.responseMessage || err?.error?.message || friendly;
2662
+ }
2663
+ } else {
2664
+ friendly = err?.error?.responseMessage || err?.error?.message || "Payment failed";
2665
+ }
2666
+ setMessage(friendly);
2667
+ setIsMakingPayment(false);
2668
+ onError?.({
2669
+ errorMessage: message
2670
+ });
2671
+ }
2672
+ }
2673
+ };
1291
2674
  const generatePaymentLinkHandler = async () => {
1292
2675
  if (!secretKey) {
1293
2676
  setMessage("Secret key is required.");
@@ -1303,544 +2686,1582 @@ function BzpCheckoutButton({
1303
2686
  const response = await createPaymentLink(
1304
2687
  paymentObject,
1305
2688
  environment,
1306
- secretKey
2689
+ secretKey,
2690
+ caller
1307
2691
  );
1308
2692
  if (response?.isSuccessful && response.launchUrl) {
1309
- setLaunchUrl(response.launchUrl);
2693
+ const queryParams = getQueryParams(response.launchUrl);
2694
+ setTransactionReference(queryParams["paymentReference"]);
1310
2695
  setMessage("Payment link created successfully");
1311
- if (mode === "redirect") {
1312
- window.open(response.launchUrl, "_blank", "noopener,noreferrer");
1313
- }
1314
2696
  } else {
1315
2697
  setMessage("Failed to create payment link");
1316
2698
  }
1317
2699
  } catch (e) {
1318
2700
  setMessage(e?.message || "Failed to create payment link");
2701
+ onError?.({
2702
+ errorMessage: message
2703
+ });
1319
2704
  } finally {
1320
2705
  setLoading(false);
1321
2706
  }
1322
2707
  };
1323
- return launchUrl && mode === "iframe" ? /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
1324
- BzpCheckoutIframe,
1325
- {
1326
- url: launchUrl,
1327
- secretKey,
1328
- environment
1329
- }
1330
- ) : /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)("div", { children: [
1331
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
1332
- BaseButton,
1333
- {
1334
- label: "Pay",
1335
- type: "primary",
1336
- customClass: "w-full",
1337
- loading,
1338
- onClick: generatePaymentLinkHandler
2708
+ const getAllCountries = async () => {
2709
+ setLoadingCountries(true);
2710
+ try {
2711
+ const response = await getCountries(
2712
+ environment,
2713
+ secretKey,
2714
+ caller
2715
+ );
2716
+ if (response?.isSuccessful) {
2717
+ setRawCountries(response.data);
2718
+ setCountries(
2719
+ (response.data ?? []).map((c) => {
2720
+ return { label: c.countryName, value: c.iso2 };
2721
+ })
2722
+ );
1339
2723
  }
1340
- ),
1341
- /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(BaseInputError, { errorMessage: message })
1342
- ] });
1343
- }
1344
-
1345
- // src/buzapay-checkout/checkout-card.tsx
1346
- var import_react11 = require("react");
1347
-
1348
- // src/components/pay-by-card.tsx
1349
- var import_react8 = require("react");
1350
-
1351
- // src/components/base/input.tsx
1352
- var import_react7 = __toESM(require("react"), 1);
1353
- var import_jsx_runtime26 = require("react/jsx-runtime");
1354
- var BaseInput = ({
1355
- label = "",
1356
- type = "text",
1357
- placeholder,
1358
- validationError = "",
1359
- hint = "",
1360
- rules = [],
1361
- isAmountInput = false,
1362
- required = false,
1363
- disabled = false,
1364
- loading = false,
1365
- showCopyIcon = false,
1366
- value,
1367
- defaultValue,
1368
- onChange,
1369
- onBlur,
1370
- prefix,
1371
- suffix,
1372
- className = ""
1373
- }) => {
1374
- const isControlled = value !== void 0;
1375
- const [rawValue, setRawValue] = import_react7.default.useState(
1376
- defaultValue ?? value ?? ""
1377
- );
1378
- const [localHint, setLocalHint] = import_react7.default.useState("");
1379
- const [localError, setLocalError] = import_react7.default.useState("");
1380
- import_react7.default.useEffect(() => {
1381
- if (isControlled) setRawValue(value ?? "");
1382
- }, [isControlled, value]);
1383
- const formattedValue = isAmountInput ? formatAmount(rawValue.replace(/,/g, "")) : rawValue;
1384
- const handleChange = (e) => {
1385
- const incoming = e.target.value.replace(/,/g, "");
1386
- if (!isControlled) setRawValue(incoming);
1387
- onChange?.(incoming);
1388
- setTimeout(() => {
1389
- const el = e.target;
1390
- el.selectionStart = el.selectionEnd = el.value.length;
1391
- });
1392
- };
1393
- const handleBlur = () => {
1394
- onBlur?.(rawValue);
1395
- };
1396
- const handleKeyDown = (e) => {
1397
- if (rules.includes("numeric")) restrictToNumericKeys(e);
2724
+ } catch (e) {
2725
+ setMessage(e?.message || "Failed to get countries");
2726
+ onError?.({
2727
+ errorMessage: message
2728
+ });
2729
+ } finally {
2730
+ setLoadingCountries(false);
2731
+ }
1398
2732
  };
1399
- const containerBg = disabled ? "bg-grey-50 cursor-not-allowed" : "bg-white";
1400
- const containerBorder = validationError || localError ? "border-red-300 bg-red-50" : "border-grey-100";
1401
- const copyToClipboard = (text) => {
1402
- return navigator.clipboard.writeText(text);
2733
+ const getStates = async (countryIso2) => {
2734
+ const country = rawCountries.find((c) => c.iso2 === countryIso2);
2735
+ if (!country) return;
2736
+ setLoadingStates(true);
2737
+ try {
2738
+ const response = await getCountryStates(
2739
+ country.iso3,
2740
+ environment,
2741
+ secretKey,
2742
+ caller
2743
+ );
2744
+ if (response?.isSuccessful) {
2745
+ setCountryStates(
2746
+ (response.data ?? []).map((s) => ({
2747
+ label: s.name,
2748
+ value: s.name
2749
+ }))
2750
+ );
2751
+ }
2752
+ } catch (e) {
2753
+ setMessage(e?.message || "Failed to get country states");
2754
+ onError?.({
2755
+ errorMessage: message
2756
+ });
2757
+ } finally {
2758
+ setLoadingStates(false);
2759
+ }
1403
2760
  };
1404
- const copyHandler = () => {
1405
- copyToClipboard(rawValue).then(() => {
1406
- setLocalHint("Text copied to clipboard");
1407
- }).catch((err) => {
1408
- setLocalError("Failed to copy text to clipboard");
1409
- });
2761
+ const cardNumberInputHandler = (event) => {
2762
+ setCardType(cardTypeHandler(event));
2763
+ payRules.cardPin = cardType === "Verve" ? "required|numeric" : "";
1410
2764
  };
1411
- return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: `flex flex-col gap-2 ${className}`, children: [
1412
- label ? /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("p", { className: "mb-0 text-body-2xs font-normal text-heading-text", children: [
1413
- label,
1414
- required && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "text-orange-required", children: " *" })
1415
- ] }) : null,
1416
- /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
2765
+ (0, import_react9.useEffect)(() => {
2766
+ (async () => {
2767
+ await generatePaymentLinkHandler();
2768
+ await getAllCountries();
2769
+ })();
2770
+ }, []);
2771
+ return /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "flex flex-col gap-6", children: [
2772
+ formIndex === 0 && /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "grid grid-cols-2 gap-6 overflow-y-auto", children: [
2773
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "col-span-2", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
2774
+ BaseInput,
2775
+ {
2776
+ label: "Address Line 1",
2777
+ required: true,
2778
+ value: billingForm.address1,
2779
+ onChange: (e) => {
2780
+ setBillingForm({ ...billingForm, address1: e });
2781
+ if (billingErrors.address1) {
2782
+ setBillingErrors((er) => ({ ...er, address1: "" }));
2783
+ }
2784
+ },
2785
+ validationError: billingErrors.address1 ?? ""
2786
+ }
2787
+ ) }),
2788
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "col-span-2", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
2789
+ BaseInput,
2790
+ {
2791
+ label: "Address Line 2",
2792
+ value: billingForm.address2,
2793
+ onChange: (e) => setBillingForm({ ...billingForm, address2: e }),
2794
+ validationError: billingErrors.address2 ?? ""
2795
+ }
2796
+ ) }),
2797
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
2798
+ BaseSelect,
2799
+ {
2800
+ label: "Select Country",
2801
+ required: true,
2802
+ options: countries,
2803
+ loading: loadingCountries,
2804
+ value: billingForm.country,
2805
+ onChange: (e) => {
2806
+ setBillingForm({ ...billingForm, country: e, state: "" });
2807
+ getStates(e);
2808
+ if (billingErrors.country) {
2809
+ setBillingErrors((er) => ({ ...er, country: "" }));
2810
+ }
2811
+ },
2812
+ validationError: billingErrors.country ?? ""
2813
+ }
2814
+ ),
2815
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
2816
+ BaseSelect,
2817
+ {
2818
+ label: "Select State",
2819
+ required: true,
2820
+ options: countryStates,
2821
+ loading: loadingStates,
2822
+ value: billingForm.state,
2823
+ onChange: (e) => {
2824
+ setBillingForm({ ...billingForm, state: e });
2825
+ if (billingErrors.state) {
2826
+ setBillingErrors((er) => ({ ...er, state: "" }));
2827
+ }
2828
+ },
2829
+ validationError: billingErrors.state ?? ""
2830
+ }
2831
+ ),
2832
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
2833
+ BaseInput,
2834
+ {
2835
+ label: "City",
2836
+ required: true,
2837
+ value: billingForm.city,
2838
+ onChange: (e) => {
2839
+ setBillingForm({ ...billingForm, city: e });
2840
+ if (billingErrors.city) {
2841
+ setBillingErrors((er) => ({ ...er, city: "" }));
2842
+ }
2843
+ },
2844
+ validationError: billingErrors.city ?? ""
2845
+ }
2846
+ ),
2847
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
2848
+ BaseInput,
2849
+ {
2850
+ label: "Postal Code",
2851
+ required: true,
2852
+ value: billingForm.postalCode,
2853
+ onChange: (e) => {
2854
+ setBillingForm({ ...billingForm, postalCode: e });
2855
+ if (billingErrors.postalCode) {
2856
+ setBillingErrors((er) => ({ ...er, postalCode: "" }));
2857
+ }
2858
+ },
2859
+ validationError: billingErrors.postalCode ?? ""
2860
+ }
2861
+ ),
2862
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
2863
+ BaseInput,
2864
+ {
2865
+ label: "Email",
2866
+ required: true,
2867
+ value: billingForm.emailAddress,
2868
+ onChange: (e) => {
2869
+ setBillingForm({ ...billingForm, emailAddress: e });
2870
+ if (billingErrors.emailAddress) {
2871
+ setBillingErrors((er) => ({ ...er, emailAddress: "" }));
2872
+ }
2873
+ },
2874
+ validationError: billingErrors.emailAddress ?? ""
2875
+ }
2876
+ ),
2877
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
2878
+ BaseInput,
2879
+ {
2880
+ label: "Phone Number",
2881
+ required: true,
2882
+ value: billingForm.phoneNumber,
2883
+ onChange: (e) => {
2884
+ setBillingForm({ ...billingForm, phoneNumber: e });
2885
+ if (billingErrors.phoneNumber) {
2886
+ setBillingErrors((er) => ({ ...er, phoneNumber: "" }));
2887
+ }
2888
+ },
2889
+ validationError: billingErrors.phoneNumber ?? ""
2890
+ }
2891
+ )
2892
+ ] }),
2893
+ formIndex === 1 && /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
1417
2894
  "div",
1418
2895
  {
1419
- className: `border-c px-3 py-2 flex items-center justify-between rounded-md h-12 ${containerBg} ${containerBorder}`,
2896
+ className: "grid grid-cols-2 gap-6 overflow-y-auto",
2897
+ style: { maxHeight: 320 },
1420
2898
  children: [
1421
- prefix,
1422
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
1423
- "input",
2899
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "col-span-2", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
2900
+ BaseInput,
1424
2901
  {
1425
- type,
1426
- value: formattedValue,
1427
- onChange: handleChange,
1428
- onBlur: handleBlur,
1429
- onKeyDown: handleKeyDown,
1430
- disabled,
1431
- placeholder: placeholder ?? (label ? `Enter ${label.toLowerCase()}` : void 0),
1432
- inputMode: isAmountInput ? "decimal" : void 0,
1433
- className: "search-input bg-transparent outline-none border-none focus:outline-none focus:ring-0 text-body-2xs text-light-copy font-normal w-full"
2902
+ label: "Card Name",
2903
+ required: true,
2904
+ value: payForm.customerName,
2905
+ onChange: (e) => {
2906
+ setPayForm({ ...payForm, customerName: e });
2907
+ if (payErrors.customerName) {
2908
+ setPayErrors((er) => ({ ...er, customerName: "" }));
2909
+ }
2910
+ },
2911
+ validationError: payErrors.customerName ?? ""
2912
+ }
2913
+ ) }),
2914
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "col-span-2", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
2915
+ BaseInput,
2916
+ {
2917
+ label: "Card Number",
2918
+ required: true,
2919
+ rules: ["numeric"],
2920
+ mask: "0000 0000 0000 0000",
2921
+ placeholder: "0000 0000 0000 0000",
2922
+ value: payForm.cardNo,
2923
+ preventPaste: true,
2924
+ onChange: (e) => {
2925
+ setPayForm({ ...payForm, cardNo: e });
2926
+ if (payErrors.cardNo)
2927
+ setPayErrors((er) => ({ ...er, cardNo: "" }));
2928
+ cardNumberInputHandler(e);
2929
+ },
2930
+ validationError: payErrors.cardNo ?? ""
2931
+ }
2932
+ ) }),
2933
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
2934
+ BaseInput,
2935
+ {
2936
+ label: "Expiry Date",
2937
+ required: true,
2938
+ value: payForm.expireDate,
2939
+ mask: "00/00",
2940
+ placeholder: "00/00",
2941
+ onChange: (e) => {
2942
+ setPayForm({ ...payForm, expireDate: e });
2943
+ if (payErrors.expireDate)
2944
+ setPayErrors((er) => ({ ...er, expireDate: "" }));
2945
+ },
2946
+ validationError: payErrors.expireDate ?? ""
1434
2947
  }
1435
2948
  ),
1436
- !loading ? /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(import_jsx_runtime26.Fragment, { children: [
1437
- suffix,
1438
- showCopyIcon && rawValue && rawValue.trim() !== "" && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
1439
- BaseImage,
1440
- {
1441
- src: "assets/images/copyIcon.svg",
1442
- alt: "copy",
1443
- width: 16,
1444
- height: 16,
1445
- customClass: "cursor-pointer hover:opacity-70 transition-opacity",
1446
- onClick: copyHandler
1447
- }
1448
- )
1449
- ] }) : (
1450
- // Simple loader placeholder; swap for your icon component if desired
1451
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: "animate-spin h-4 w-4 border-2 border-current border-t-transparent rounded-full" })
2949
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
2950
+ BaseInput,
2951
+ {
2952
+ label: "CVV",
2953
+ required: true,
2954
+ rules: ["numeric"],
2955
+ value: payForm.cvv,
2956
+ mask: "000",
2957
+ placeholder: "000",
2958
+ onChange: (e) => {
2959
+ setPayForm({ ...payForm, cvv: e });
2960
+ if (payErrors.cvv) setPayErrors((er) => ({ ...er, cvv: "" }));
2961
+ },
2962
+ validationError: payErrors.cvv ?? ""
2963
+ }
2964
+ ),
2965
+ cardType === "Verve" && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
2966
+ BaseInput,
2967
+ {
2968
+ label: "Card Pin",
2969
+ required: true,
2970
+ rules: ["numeric"],
2971
+ value: payForm.cardPin,
2972
+ mask: "0000",
2973
+ placeholder: "0000",
2974
+ onChange: (e) => {
2975
+ setPayForm({ ...payForm, cardPin: e });
2976
+ if (payErrors.cardPin)
2977
+ setPayErrors((er) => ({ ...er, cardPin: "" }));
2978
+ },
2979
+ validationError: payErrors.cardPin ?? ""
2980
+ }
1452
2981
  )
1453
2982
  ]
1454
2983
  }
1455
2984
  ),
1456
- (hint || localHint) && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "text-body-3xs text-light-copy", children: localHint || hint }),
1457
- (validationError || localError) && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "text-body-3xs text-red-500", children: localError || validationError })
2985
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
2986
+ BaseButton,
2987
+ {
2988
+ label: formIndex === 0 ? "Proceed" : `Pay ${formatAmountHandler}`,
2989
+ type: "primary",
2990
+ customClass: "w-full mt-6",
2991
+ caller,
2992
+ loading: isMakingPayment,
2993
+ onClick: proceedHandler,
2994
+ disabled: isMakingPayment
2995
+ }
2996
+ )
1458
2997
  ] });
1459
- };
2998
+ }
1460
2999
 
1461
- // src/components/pay-by-card.tsx
1462
- var import_jsx_runtime27 = require("react/jsx-runtime");
1463
- function PayByCard({}) {
1464
- const [formIndex, setFormIndex] = (0, import_react8.useState)(0);
1465
- return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "flex flex-col gap-6", children: [
1466
- formIndex === 0 && /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { className: "grid grid-cols-2 gap-6 overflow-y-auto", children: [
1467
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(BaseInput, { label: "First Name", required: true }),
1468
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(BaseInput, { label: "Last Name", required: true }),
1469
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(BaseInput, { label: "Email", required: true }),
1470
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(BaseInput, { label: "Phone Number", required: true }),
1471
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
1472
- BaseSelect,
3000
+ // src/components/pay-by-transfer.tsx
3001
+ var import_react10 = require("react");
3002
+ var import_jsx_runtime36 = require("react/jsx-runtime");
3003
+ var PayByTransfer = ({
3004
+ secretKey,
3005
+ paymentObject,
3006
+ environment = "sandbox",
3007
+ onPaymentAuthorized,
3008
+ onCancel,
3009
+ onError,
3010
+ caller = "buzapay"
3011
+ }) => {
3012
+ const [formIndex, setFormIndex] = (0, import_react10.useState)(0);
3013
+ const [isMakingPayment, setIsMakingPayment] = (0, import_react10.useState)(false);
3014
+ const [isConfirmCall, setIsConfirmCall] = (0, import_react10.useState)(false);
3015
+ const [isPaymentConfirmed, setIsPaymentConfirmed] = (0, import_react10.useState)(false);
3016
+ const [transactionReference, setTransactionReference] = (0, import_react10.useState)("");
3017
+ const [paymentReferenceStatus, setPaymentReferenceStatus] = (0, import_react10.useState)("");
3018
+ const [isFetchingPaymentDetails, setIsFetchingPaymentDetails] = (0, import_react10.useState)(false);
3019
+ const [paymentReferenceDetails, setPaymentReferenceDetails] = (0, import_react10.useState)(null);
3020
+ const [paymentAccountDetails, setPaymentAccountDetails] = (0, import_react10.useState)(null);
3021
+ const [paymentMade, setPaymentMade] = (0, import_react10.useState)(false);
3022
+ const [loading, setLoading] = (0, import_react10.useState)(false);
3023
+ const [message, setMessage] = (0, import_react10.useState)("");
3024
+ const [remainingSeconds, setRemainingSeconds] = (0, import_react10.useState)(30 * 60);
3025
+ const [countDownTime, setCountDownTime] = (0, import_react10.useState)("00:00");
3026
+ const intervalRef = (0, import_react10.useRef)(null);
3027
+ const [transferForm, setTransferForm] = (0, import_react10.useState)({
3028
+ customerName: ""
3029
+ });
3030
+ const [transferErrors, setTransferErrors] = (0, import_react10.useState)(
3031
+ {}
3032
+ );
3033
+ const transferRules = {
3034
+ customerName: "required"
3035
+ };
3036
+ const transferLabels = {
3037
+ customerName: "Customer Name"
3038
+ };
3039
+ const formatAmountHandler = formatAmount(
3040
+ paymentObject.amount,
3041
+ paymentObject.currency
3042
+ );
3043
+ const payHandler = async () => {
3044
+ if (formIndex === 0) {
3045
+ const errs = validateGroup(transferForm, transferRules, transferLabels);
3046
+ setTransferErrors(errs);
3047
+ if (Object.keys(errs).length === 0) {
3048
+ const payload = {
3049
+ paymentReference: transactionReference,
3050
+ channel: "virtual_account",
3051
+ customerName: transferForm.customerName ?? "",
3052
+ merchantId: secretKey
3053
+ };
3054
+ setIsMakingPayment(true);
3055
+ try {
3056
+ const response = await generatePaymentAccount(
3057
+ environment,
3058
+ payload,
3059
+ caller
3060
+ );
3061
+ if (response?.isSuccessful) {
3062
+ setPaymentAccountDetails(response.data);
3063
+ startTimer();
3064
+ setMessage("Virtual account generated successfully for payment.");
3065
+ setIsMakingPayment(true);
3066
+ setFormIndex(1);
3067
+ }
3068
+ } catch (err) {
3069
+ setIsMakingPayment(false);
3070
+ setMessage(err.error.responseMessage || err.error.message);
3071
+ onError?.({
3072
+ errorMessage: message
3073
+ });
3074
+ }
3075
+ }
3076
+ return;
3077
+ }
3078
+ };
3079
+ const getReferenceDetails = async () => {
3080
+ setIsFetchingPaymentDetails(true);
3081
+ try {
3082
+ const response = await getPaymentReferenceDetails(
3083
+ environment,
3084
+ transactionReference,
3085
+ caller
3086
+ );
3087
+ if (response?.isSuccessful) {
3088
+ setPaymentReferenceDetails(response.data);
3089
+ const made = response.data?.paymentStatus === "Payment Received";
3090
+ setPaymentMade(made);
3091
+ const noServerStatus = response.data?.finalTransactionStatus == null || response.data?.paymentStatus == null;
3092
+ if (noServerStatus) {
3093
+ if (isConfirmCall) {
3094
+ setMessage("Transaction not confirmed !!");
3095
+ }
3096
+ if (!isPaymentConfirmed && !made) {
3097
+ setPaymentReferenceStatus("pending");
3098
+ onPaymentAuthorized?.({
3099
+ paymentId: transactionReference,
3100
+ paymentDate: response.data?.updatedAt,
3101
+ paymentStatus: "pending",
3102
+ message
3103
+ });
3104
+ } else {
3105
+ setPaymentReferenceStatus("confirmed");
3106
+ onPaymentAuthorized?.({
3107
+ paymentId: transactionReference,
3108
+ paymentDate: response.data?.updatedAt,
3109
+ paymentStatus: "confirmed",
3110
+ message
3111
+ });
3112
+ }
3113
+ } else if (response.data?.finalTransactionStatus === "Success" || response.data?.paymentStatus === "Received" || response.data?.paymentStatus === "Payment Received") {
3114
+ setPaymentReferenceStatus("confirmed");
3115
+ setIsPaymentConfirmed(true);
3116
+ setMessage("Transaction confirmed !!");
3117
+ onPaymentAuthorized?.({
3118
+ paymentId: transactionReference,
3119
+ paymentDate: response.data?.updatedAt,
3120
+ paymentStatus: "confirmed",
3121
+ message
3122
+ });
3123
+ }
3124
+ } else if (!response?.isSuccessful && response?.responseCode === "119") {
3125
+ setPaymentReferenceStatus("used");
3126
+ setMessage(response.responseMessage || "");
3127
+ onPaymentAuthorized?.({
3128
+ paymentId: transactionReference,
3129
+ paymentDate: null,
3130
+ paymentStatus: "used",
3131
+ message
3132
+ });
3133
+ }
3134
+ } catch (err) {
3135
+ setPaymentReferenceStatus("");
3136
+ setMessage(
3137
+ err?.error?.responseMessage || err?.error?.message || "Something went wrong"
3138
+ );
3139
+ onError?.({
3140
+ errorMessage: message
3141
+ });
3142
+ } finally {
3143
+ setIsFetchingPaymentDetails(false);
3144
+ }
3145
+ };
3146
+ const generatePaymentLinkHandler = async () => {
3147
+ if (!secretKey) {
3148
+ setMessage("Secret key is required.");
3149
+ return;
3150
+ }
3151
+ if (!checkObjectTruthy(paymentObject)) {
3152
+ setMessage("Kindly ensure you are passing all the required data.");
3153
+ return;
3154
+ }
3155
+ setLoading(true);
3156
+ setMessage("");
3157
+ try {
3158
+ const response = await createPaymentLink(
3159
+ paymentObject,
3160
+ environment,
3161
+ secretKey,
3162
+ caller
3163
+ );
3164
+ if (response?.isSuccessful && response.launchUrl) {
3165
+ const queryParams = getQueryParams(response.launchUrl);
3166
+ setTransactionReference(queryParams["paymentReference"]);
3167
+ setMessage("Payment link created successfully");
3168
+ } else {
3169
+ setMessage("Failed to create payment link");
3170
+ }
3171
+ } catch (e) {
3172
+ setMessage(e?.message || "Failed to create payment link");
3173
+ onError?.({
3174
+ errorMessage: message
3175
+ });
3176
+ } finally {
3177
+ setLoading(false);
3178
+ }
3179
+ };
3180
+ const updateDisplay = (0, import_react10.useCallback)((secs) => {
3181
+ const minutes = String(Math.floor(secs / 60)).padStart(2, "0");
3182
+ const seconds = String(secs % 60).padStart(2, "0");
3183
+ setCountDownTime(`${minutes}:${seconds}`);
3184
+ }, []);
3185
+ const startTimer = (0, import_react10.useCallback)(() => {
3186
+ if (intervalRef.current) {
3187
+ clearInterval(intervalRef.current);
3188
+ intervalRef.current = null;
3189
+ }
3190
+ updateDisplay(remainingSeconds);
3191
+ intervalRef.current = setInterval(() => {
3192
+ setRemainingSeconds((prev) => {
3193
+ const next = prev - 1;
3194
+ if (next < 0) {
3195
+ if (intervalRef.current) {
3196
+ clearInterval(intervalRef.current);
3197
+ intervalRef.current = null;
3198
+ }
3199
+ setCountDownTime("00:00");
3200
+ return 0;
3201
+ }
3202
+ updateDisplay(next);
3203
+ return next;
3204
+ });
3205
+ }, 1e3);
3206
+ }, [remainingSeconds, updateDisplay]);
3207
+ const stopTimer = () => {
3208
+ if (intervalRef.current) {
3209
+ clearInterval(intervalRef.current);
3210
+ intervalRef.current = null;
3211
+ }
3212
+ };
3213
+ (0, import_react10.useEffect)(() => {
3214
+ (async () => {
3215
+ await generatePaymentLinkHandler();
3216
+ })();
3217
+ }, []);
3218
+ (0, import_react10.useEffect)(() => {
3219
+ if (remainingSeconds < 0 && intervalRef.current) {
3220
+ stopTimer();
3221
+ }
3222
+ }, [remainingSeconds]);
3223
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "flex flex-col gap-10", children: [
3224
+ formIndex === 0 && /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "flex flex-col gap-10", children: [
3225
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
3226
+ BaseInput,
1473
3227
  {
1474
- label: "Select Country",
3228
+ label: "Customer Name",
1475
3229
  required: true,
1476
- options: [
1477
- { label: "United States", value: "US" },
1478
- { label: "Canada", value: "CA" },
1479
- { label: "United Kingdom", value: "UK" }
1480
- ]
3230
+ value: transferForm.customerName,
3231
+ onChange: (e) => {
3232
+ setTransferForm({ ...transferForm, customerName: e });
3233
+ if (transferForm.customerName) {
3234
+ setTransferErrors((er) => ({ ...er, customerName: "" }));
3235
+ }
3236
+ },
3237
+ validationError: transferErrors.customerName ?? ""
1481
3238
  }
1482
3239
  ),
1483
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
1484
- BaseSelect,
3240
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
3241
+ BaseButton,
1485
3242
  {
1486
- label: "Select State",
1487
- required: true,
1488
- options: [
1489
- { label: "California", value: "CA" },
1490
- { label: "Texas", value: "TX" },
1491
- { label: "New York", value: "NY" }
3243
+ label: `Pay ${formatAmountHandler}`,
3244
+ type: "primary",
3245
+ customClass: "w-full",
3246
+ caller,
3247
+ loading: isMakingPayment,
3248
+ onClick: payHandler
3249
+ }
3250
+ )
3251
+ ] }),
3252
+ formIndex === 1 && /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "flex flex-col gap-10", children: [
3253
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
3254
+ "div",
3255
+ {
3256
+ className: [
3257
+ "p-4 rounded-lg flex flex-col gap-6",
3258
+ caller === "miden" ? "bg-[#FAFDFF] border border-[#F0FAFF]" : "bg-[#EFF7FF]"
3259
+ ].join(" "),
3260
+ children: [
3261
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
3262
+ BaseLabelInfo,
3263
+ {
3264
+ label: "Bank Name",
3265
+ value: `${paymentAccountDetails?.bank} ${paymentAccountDetails?.accountName}`
3266
+ }
3267
+ ),
3268
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "flex items-center justify-between", children: [
3269
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
3270
+ BaseLabelInfo,
3271
+ {
3272
+ label: "Account Number",
3273
+ value: paymentAccountDetails?.accountNumber
3274
+ }
3275
+ ),
3276
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
3277
+ BaseCopy,
3278
+ {
3279
+ color: "#9DBFDE",
3280
+ copyText: paymentAccountDetails?.accountNumber ?? ""
3281
+ }
3282
+ )
3283
+ ] }),
3284
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "flex items-center justify-between", children: [
3285
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(BaseLabelInfo, { label: "Amount", value: formatAmountHandler }),
3286
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(BaseCopy, { color: "#9DBFDE", copyText: formatAmountHandler })
3287
+ ] })
1492
3288
  ]
1493
3289
  }
1494
3290
  ),
1495
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(BaseInput, { label: "City", required: true }),
1496
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(BaseInput, { label: "Postal Code", required: true }),
1497
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "col-span-2", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(BaseInput, { label: "Street Address", required: true }) })
1498
- ] }),
1499
- formIndex === 1 && /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
1500
- "div",
1501
- {
1502
- className: "grid grid-cols-2 gap-6 overflow-y-auto",
1503
- style: { maxHeight: "320px" },
1504
- children: [
1505
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "col-span-2", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(BaseInput, { label: "Card Name", required: true }) }),
1506
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("div", { className: "col-span-2", children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(BaseInput, { label: "Card Number", required: true }) }),
1507
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(BaseInput, { label: "Expiry Date", required: true }),
1508
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(BaseInput, { label: "CVV", required: true })
1509
- ]
1510
- }
1511
- ),
1512
- /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
1513
- BaseButton,
1514
- {
1515
- label: formIndex === 0 ? "Proceed" : "Pay",
1516
- type: "primary",
1517
- customClass: "w-full",
1518
- onClick: formIndex === 0 ? () => setFormIndex(1) : void 0
1519
- }
1520
- )
3291
+ caller === "buzapay" && /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("p", { className: "w-2/3 mx-auto text-center text-body-2xs font-medium text-sub-copy", children: [
3292
+ "This account is for this transaction only and expires in",
3293
+ " ",
3294
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "text-orange-500", children: remainingSeconds >= 0 ? countDownTime : "00:00" })
3295
+ ] }),
3296
+ caller === "miden" && /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "p-4 rounded-lg bg-[#FAFDFF] flex items-center gap-3", children: [
3297
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
3298
+ BaseCircularCountdown,
3299
+ {
3300
+ value: remainingSeconds,
3301
+ total: 1800,
3302
+ middleText: countDownTime,
3303
+ size: 40,
3304
+ stroke: 2,
3305
+ color: "#3b82f6"
3306
+ }
3307
+ ),
3308
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("p", { className: "text-body-3xs font-medium text-light-copy", children: [
3309
+ "This account is for this transaction only and expires in",
3310
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("span", { className: "text-[#1383E8] ml-2", children: [
3311
+ countDownTime,
3312
+ "..."
3313
+ ] })
3314
+ ] })
3315
+ ] }),
3316
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "flex flex-col gap-4", children: [
3317
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
3318
+ BaseButton,
3319
+ {
3320
+ label: "I have paid the money",
3321
+ type: "primary",
3322
+ caller,
3323
+ customClass: "w-full",
3324
+ loading: isFetchingPaymentDetails,
3325
+ onClick: getReferenceDetails
3326
+ }
3327
+ ),
3328
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
3329
+ "button",
3330
+ {
3331
+ type: "button",
3332
+ onClick: onCancel,
3333
+ className: "text-heading-text text-body-2xs font-medium text-center py-2 cursor-pointer",
3334
+ children: "Cancel Payment"
3335
+ }
3336
+ )
3337
+ ] })
3338
+ ] })
1521
3339
  ] });
1522
- }
3340
+ };
1523
3341
 
1524
- // src/components/pay-by-transfer.tsx
1525
- var import_react9 = require("react");
1526
- var import_jsx_runtime28 = require("react/jsx-runtime");
1527
- var PayByTransfer = ({
1528
- amountDisplay = "NGN 200,500.00",
1529
- bankName = "Teerus MFB",
1530
- accountNumber = "0001928940",
1531
- initialSeconds = 30 * 60,
1532
- onConfirmPaid,
1533
- onCancel
3342
+ // src/components/pay-by-stable-coin.tsx
3343
+ var import_react11 = require("react");
3344
+ var import_jsx_runtime37 = require("react/jsx-runtime");
3345
+ var PayByStableCoin = ({
3346
+ secretKey,
3347
+ paymentObject,
3348
+ environment = "sandbox",
3349
+ onPaymentAuthorized,
3350
+ onError,
3351
+ caller = "buzapay"
1534
3352
  }) => {
1535
- const [remaining, setRemaining] = (0, import_react9.useState)(initialSeconds);
1536
- const intervalRef = (0, import_react9.useRef)(null);
1537
- const countDownTime = (0, import_react9.useMemo)(() => {
1538
- const clamped = Math.max(0, remaining);
1539
- const m = Math.floor(clamped / 60);
1540
- const s = clamped % 60;
1541
- return `${String(m).padStart(2, "0")}:${String(s).padStart(2, "0")}`;
1542
- }, [remaining]);
1543
- (0, import_react9.useEffect)(() => {
1544
- intervalRef.current = window.setInterval(() => {
1545
- setRemaining((prev) => prev - 1);
1546
- }, 1e3);
1547
- return () => {
1548
- if (intervalRef.current) {
1549
- clearInterval(intervalRef.current);
1550
- intervalRef.current = null;
3353
+ const [formIndex, setFormIndex] = (0, import_react11.useState)(0);
3354
+ const [message, setMessage] = (0, import_react11.useState)("");
3355
+ const [loading, setLoading] = (0, import_react11.useState)(false);
3356
+ const [generatingAddress, setGeneratingAddress] = (0, import_react11.useState)(false);
3357
+ const [loadingStableCoins, setLoadingStableCoins] = (0, import_react11.useState)(false);
3358
+ const [loadingStableCoinNetworks, setLoadingStableCoinNetworks] = (0, import_react11.useState)(false);
3359
+ const [transactionReference, setTransactionReference] = (0, import_react11.useState)("");
3360
+ const [stableCoins, setStableCoins] = (0, import_react11.useState)([]);
3361
+ const [networkList, setNetworkList] = (0, import_react11.useState)([]);
3362
+ const [addressDetails, setAddressDetails] = (0, import_react11.useState)(null);
3363
+ const [generateAddressPayload, setGenerateAddressPayload] = (0, import_react11.useState)(null);
3364
+ const [isConfirmingPayment, setIsConfirmingPayment] = (0, import_react11.useState)(false);
3365
+ const [paymentReferenceDetails, setPaymentReferenceDetails] = (0, import_react11.useState)(null);
3366
+ const [paymentReferenceStatus, setPaymentReferenceStatus] = (0, import_react11.useState)("");
3367
+ const [stableCoinForm, setStableCoinForm] = (0, import_react11.useState)({
3368
+ stableCoin: "",
3369
+ network: ""
3370
+ });
3371
+ const [stableCoinErrors, setStableCoinErrors] = (0, import_react11.useState)({});
3372
+ const stableCoinRules = {
3373
+ stableCoin: "required",
3374
+ network: "required"
3375
+ };
3376
+ const stableCoinLabels = {
3377
+ stableCoin: "Stable Coin",
3378
+ network: "Network"
3379
+ };
3380
+ const generatePaymentLinkHandler = async () => {
3381
+ if (!secretKey) {
3382
+ setMessage("Secret key is required.");
3383
+ return;
3384
+ }
3385
+ if (!checkObjectTruthy(paymentObject)) {
3386
+ setMessage("Kindly ensure you are passing all the required data.");
3387
+ return;
3388
+ }
3389
+ setLoading(true);
3390
+ setMessage("");
3391
+ try {
3392
+ const response = await createPaymentLink(
3393
+ paymentObject,
3394
+ environment,
3395
+ secretKey,
3396
+ caller
3397
+ );
3398
+ if (response?.isSuccessful && response.launchUrl) {
3399
+ const queryParams = getQueryParams(response.launchUrl);
3400
+ setTransactionReference(queryParams["paymentReference"]);
3401
+ setMessage("Payment link created successfully");
3402
+ } else {
3403
+ setMessage("Failed to create payment link");
1551
3404
  }
1552
- };
1553
- }, []);
1554
- (0, import_react9.useEffect)(() => {
1555
- if (remaining < 0 && intervalRef.current) {
1556
- clearInterval(intervalRef.current);
1557
- intervalRef.current = null;
3405
+ } catch (e) {
3406
+ setMessage(e?.message || "Failed to create payment link");
3407
+ onError?.({
3408
+ errorMessage: message
3409
+ });
3410
+ } finally {
3411
+ setLoading(false);
1558
3412
  }
1559
- }, [remaining]);
1560
- return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "flex flex-col gap-10", children: [
1561
- /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("p", { className: "text-sub-copy text-sm font-semibold text-center", children: [
1562
- "Amount to Pay ",
1563
- amountDisplay
1564
- ] }),
1565
- /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "bg-[#EFF7FF] p-4 rounded-lg flex flex-col gap-6", children: [
1566
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(BaseLabelInfo, { label: "Bank Name", value: bankName, type: "horizontal" }),
1567
- /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "flex items-center justify-between", children: [
1568
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
1569
- BaseLabelInfo,
3413
+ };
3414
+ const generateAddress = async (payload) => {
3415
+ if (!payload) return;
3416
+ setGeneratingAddress(true);
3417
+ try {
3418
+ const response = await generateStableCoinAddress(
3419
+ environment,
3420
+ payload,
3421
+ caller
3422
+ );
3423
+ if (response?.isSuccessful) {
3424
+ setAddressDetails(response.data);
3425
+ setFormIndex(1);
3426
+ }
3427
+ } catch (e) {
3428
+ setMessage(e?.message || "Failed to generate address");
3429
+ onError?.({
3430
+ errorMessage: message
3431
+ });
3432
+ } finally {
3433
+ setGeneratingAddress(false);
3434
+ }
3435
+ };
3436
+ const getAllStableCoins = async () => {
3437
+ setLoadingStableCoins(true);
3438
+ try {
3439
+ const response = await getStableCoins(
3440
+ environment,
3441
+ caller
3442
+ );
3443
+ if (response?.isSuccessful) {
3444
+ setStableCoins(
3445
+ response.data?.map((c) => ({
3446
+ label: c.name,
3447
+ value: c.name
3448
+ })) ?? []
3449
+ );
3450
+ }
3451
+ } catch (e) {
3452
+ setMessage(e?.message || "Failed to get stable coins");
3453
+ onError?.({
3454
+ errorMessage: message
3455
+ });
3456
+ } finally {
3457
+ setLoadingStableCoins(false);
3458
+ }
3459
+ };
3460
+ const getAllStableCoinNetworks = async (stableCoin) => {
3461
+ setLoadingStableCoinNetworks(true);
3462
+ try {
3463
+ const response = await getStableCoinNetworks(
3464
+ environment,
3465
+ stableCoin,
3466
+ caller
3467
+ );
3468
+ if (response?.isSuccessful) {
3469
+ setNetworkList(
3470
+ response.networks?.map((n) => ({
3471
+ label: n,
3472
+ value: n
3473
+ })) ?? []
3474
+ );
3475
+ }
3476
+ } catch (e) {
3477
+ setMessage(e?.message || "Failed to get stable coin networks");
3478
+ onError?.({
3479
+ errorMessage: message
3480
+ });
3481
+ } finally {
3482
+ setLoadingStableCoinNetworks(false);
3483
+ }
3484
+ };
3485
+ const confirmPaymentHandler = async () => {
3486
+ setIsConfirmingPayment(true);
3487
+ try {
3488
+ const response = await getPaymentReferenceDetails(
3489
+ environment,
3490
+ transactionReference,
3491
+ caller
3492
+ );
3493
+ if (response?.isSuccessful) {
3494
+ setPaymentReferenceDetails(response.data);
3495
+ const needsConfirm = response.data?.finalTransactionStatus == null || response.data?.paymentStatus == null;
3496
+ if (needsConfirm) {
3497
+ setMessage("Transaction not confirmed !!");
3498
+ setPaymentReferenceStatus("pending");
3499
+ onPaymentAuthorized?.({
3500
+ paymentId: transactionReference,
3501
+ paymentDate: response.data?.updatedAt ?? "",
3502
+ paymentStatus: "pending",
3503
+ message
3504
+ });
3505
+ } else if (response.data?.finalTransactionStatus === "Success" || response.data?.paymentStatus === "Payment Received") {
3506
+ setMessage("Transaction confirmed !!");
3507
+ setPaymentReferenceStatus("confirmed");
3508
+ onPaymentAuthorized?.({
3509
+ paymentId: transactionReference,
3510
+ paymentDate: response.data?.updatedAt,
3511
+ paymentStatus: "confirmed",
3512
+ message
3513
+ });
3514
+ }
3515
+ } else if (!response?.isSuccessful && response?.responseCode === "119") {
3516
+ setPaymentReferenceStatus("used");
3517
+ setMessage(response.responseMessage || "");
3518
+ onPaymentAuthorized?.({
3519
+ paymentId: transactionReference,
3520
+ paymentDate: null,
3521
+ paymentStatus: "used",
3522
+ message
3523
+ });
3524
+ }
3525
+ } catch (err) {
3526
+ setPaymentReferenceStatus("");
3527
+ setMessage(
3528
+ err?.error?.responseMessage || err?.error?.message || "Something went wrong"
3529
+ );
3530
+ onError?.({
3531
+ errorMessage: message
3532
+ });
3533
+ } finally {
3534
+ setIsConfirmingPayment(false);
3535
+ }
3536
+ };
3537
+ const formatAmountHandler = formatAmount(
3538
+ paymentObject.amount,
3539
+ paymentObject.currency
3540
+ );
3541
+ const payHandler = async () => {
3542
+ const errs = validateGroup(
3543
+ stableCoinForm,
3544
+ stableCoinRules,
3545
+ stableCoinLabels
3546
+ );
3547
+ setStableCoinErrors(errs);
3548
+ if (Object.keys(errs).length === 0) {
3549
+ const payload = {
3550
+ paymentReference: transactionReference,
3551
+ currency: stableCoinForm.stableCoin,
3552
+ chain: stableCoinForm.network,
3553
+ transactionAmount: paymentObject.amount,
3554
+ merchantId: secretKey
3555
+ };
3556
+ setGenerateAddressPayload(payload);
3557
+ await generateAddress(payload);
3558
+ } else {
3559
+ return;
3560
+ }
3561
+ };
3562
+ const amountPlusNetworkFee = addressDetails ? Number(addressDetails.transactionAmount) + addressDetails.networkFee : 0;
3563
+ (0, import_react11.useEffect)(() => {
3564
+ (async () => {
3565
+ await generatePaymentLinkHandler();
3566
+ await getAllStableCoins();
3567
+ })();
3568
+ }, []);
3569
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex flex-col gap-6", children: [
3570
+ formIndex === 0 && /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_jsx_runtime37.Fragment, { children: [
3571
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "grid grid-cols-1 gap-6", children: [
3572
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3573
+ BaseSelect,
1570
3574
  {
1571
- label: "Account Number",
1572
- value: accountNumber,
1573
- type: "horizontal"
3575
+ label: "Select Crypto",
3576
+ required: true,
3577
+ options: stableCoins,
3578
+ loading: loadingStableCoins,
3579
+ value: stableCoinForm.stableCoin,
3580
+ onChange: (e) => {
3581
+ setStableCoinForm({ ...stableCoinForm, stableCoin: e });
3582
+ getAllStableCoinNetworks(e);
3583
+ if (stableCoinErrors.stableCoin) {
3584
+ setStableCoinErrors((er) => ({ ...er, stableCoin: "" }));
3585
+ }
3586
+ },
3587
+ validationError: stableCoinErrors.stableCoin ?? ""
1574
3588
  }
1575
3589
  ),
1576
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(BaseCopy, { color: "#9DBFDE", copyText: accountNumber })
1577
- ] }),
1578
- /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "flex items-center justify-between", children: [
1579
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
1580
- BaseLabelInfo,
3590
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3591
+ BaseSelect,
1581
3592
  {
1582
- label: "Amount",
1583
- value: amountDisplay,
1584
- type: "horizontal"
3593
+ label: "Select Network",
3594
+ required: true,
3595
+ options: networkList,
3596
+ loading: loadingStableCoinNetworks,
3597
+ value: stableCoinForm.network,
3598
+ onChange: (e) => {
3599
+ setStableCoinForm({ ...stableCoinForm, network: e });
3600
+ if (stableCoinErrors.network) {
3601
+ setStableCoinErrors((er) => ({ ...er, network: "" }));
3602
+ }
3603
+ },
3604
+ validationError: stableCoinErrors.network ?? ""
1585
3605
  }
1586
- ),
1587
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(BaseCopy, { color: "#9DBFDE", copyText: amountDisplay })
1588
- ] })
1589
- ] }),
1590
- /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("p", { className: "w-2/3 mx-auto text-center text-body-2xs font-medium text-sub-copy", children: [
1591
- "This account is for this transaction only and expires in",
1592
- " ",
1593
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)("span", { className: "text-orange-500", children: remaining >= 0 ? countDownTime : "00:00" })
1594
- ] }),
1595
- /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "flex flex-col gap-4", children: [
1596
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
3606
+ )
3607
+ ] }),
3608
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
1597
3609
  BaseButton,
1598
3610
  {
1599
- label: "I have paid the money",
3611
+ label: `Pay ${formatAmountHandler}`,
1600
3612
  type: "primary",
3613
+ caller,
1601
3614
  customClass: "w-full",
1602
- onClick: onConfirmPaid
1603
- }
1604
- ),
1605
- /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
1606
- "button",
1607
- {
1608
- type: "button",
1609
- onClick: onCancel,
1610
- className: "text-heading-text text-body-2xs font-medium text-center py-2 cursor-pointer",
1611
- children: "Cancel Payment"
3615
+ loading: generatingAddress,
3616
+ onClick: payHandler
1612
3617
  }
1613
3618
  )
3619
+ ] }),
3620
+ formIndex === 1 && /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { children: [
3621
+ caller === "buzapay" && /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex flex-col gap-6", children: [
3622
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "mx-auto", children: [
3623
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(IconQrCode, {}),
3624
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "mb-0 text-body-4xs text-light-copy font-normal text-center", children: generateAddressPayload?.currency })
3625
+ ] }),
3626
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex flex-col gap-6 border-c border-grey-100 p-4 rounded-2xl bg-light-white-50", children: [
3627
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "border-b border-grey-border pb-4 flex flex-col gap-2", children: [
3628
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "mb-0 text-body-3xs text-light-copy font-normal", children: "Network" }),
3629
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex justify-between", children: [
3630
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex flex-col gap-1", children: [
3631
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "mb-0 text-body-2xs font-medium text-sub-copy", children: addressDetails?.chain }),
3632
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex items-center gap-2", children: [
3633
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "mb-0 text-body-3xs text-light-copy font-normal", children: "*Est. arrival = 3 mins" }),
3634
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "mb-0 text-body-3xs text-light-copy font-normal", children: "|" }),
3635
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3636
+ BaseCurrencyAmount,
3637
+ {
3638
+ currency: generateAddressPayload?.currency ?? "",
3639
+ amount: addressDetails?.networkFee ?? 0,
3640
+ textClass: "mb-0 text-body-3xs text-light-copy font-normal",
3641
+ iconColorClass: "#557591",
3642
+ iconWidth: 12,
3643
+ iconHeight: 12
3644
+ }
3645
+ )
3646
+ ] })
3647
+ ] }),
3648
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(IconArrowSwap, {})
3649
+ ] })
3650
+ ] }),
3651
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "pb-4 flex flex-col gap-2", children: [
3652
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "mb-0 text-body-3xs text-light-copy font-normal", children: "Deposit Address >" }),
3653
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex justify-between", children: [
3654
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "mb-0 text-body-2xs font-medium text-sub-copy w-2/3 break-words", children: addressDetails?.walletAddress }),
3655
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(BaseCopy, { copyText: addressDetails?.walletAddress ?? "" })
3656
+ ] })
3657
+ ] })
3658
+ ] }),
3659
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex flex-col gap-2", children: [
3660
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex items-center justify-between border-b border-grey-border py-3", children: [
3661
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "mb-0 text-body-2xs font-medium text-primary-black", children: "Network fee" }),
3662
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3663
+ BaseCurrencyAmount,
3664
+ {
3665
+ currency: generateAddressPayload?.currency ?? "",
3666
+ amount: addressDetails?.networkFee ?? 0,
3667
+ textClass: "mb-0 text-body-2xs font-extrabold text-primary-black",
3668
+ iconColorClass: "#231F20"
3669
+ }
3670
+ )
3671
+ ] }),
3672
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex items-center justify-between py-4", children: [
3673
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "mb-0 text-body-lg font-semibold text-primary-black", children: "Pay" }),
3674
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3675
+ BaseCurrencyAmount,
3676
+ {
3677
+ currency: generateAddressPayload?.currency ?? "",
3678
+ amount: amountPlusNetworkFee,
3679
+ textClass: "mb-0 text-body-lg font-extrabold text-primary-black",
3680
+ iconColorClass: "#231F20",
3681
+ iconWidth: 20,
3682
+ iconHeight: 20
3683
+ }
3684
+ )
3685
+ ] })
3686
+ ] }),
3687
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "flex flex-col gap-6", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3688
+ BaseButton,
3689
+ {
3690
+ label: "Confirm Payment",
3691
+ type: "primary",
3692
+ caller,
3693
+ customClass: "w-full",
3694
+ loading: isConfirmingPayment,
3695
+ onClick: confirmPaymentHandler
3696
+ }
3697
+ ) })
3698
+ ] }),
3699
+ caller === "miden" && /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex flex-col gap-6", children: [
3700
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "p-4 rounded-lg flex flex-col gap-6 bg-[#FAFDFF] border border-[#F0FAFF]", children: [
3701
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex items-center justify-between", children: [
3702
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3703
+ BaseLabelInfo,
3704
+ {
3705
+ label: "Chain",
3706
+ value: addressDetails?.chain ?? ""
3707
+ }
3708
+ ),
3709
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3710
+ BaseCopy,
3711
+ {
3712
+ color: "#9DBFDE",
3713
+ copyText: addressDetails?.chain ?? ""
3714
+ }
3715
+ )
3716
+ ] }),
3717
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex items-center justify-between", children: [
3718
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3719
+ BaseLabelInfo,
3720
+ {
3721
+ label: "Wallet Address",
3722
+ value: addressDetails?.walletAddress ?? ""
3723
+ }
3724
+ ),
3725
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3726
+ BaseCopy,
3727
+ {
3728
+ color: "#9DBFDE",
3729
+ copyText: addressDetails?.walletAddress ?? ""
3730
+ }
3731
+ )
3732
+ ] }),
3733
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex flex-col", children: [
3734
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "mb-1 text-body-4xs font-medium text-light-copy uppercase", children: "Amount" }),
3735
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3736
+ BaseCurrencyAmount,
3737
+ {
3738
+ currency: generateAddressPayload?.currency ?? "",
3739
+ amount: amountPlusNetworkFee,
3740
+ textClass: "mb-0 text-body-2xs font-medium text-sub-copy",
3741
+ iconColorClass: "#231F20",
3742
+ iconWidth: "20",
3743
+ iconHeight: "20"
3744
+ }
3745
+ )
3746
+ ] }),
3747
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex gap-4 items-center justify-center", children: [
3748
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "w-24 border border-[#E1EBF5]" }),
3749
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "mb-2 text-body-2xs text-[#5F738C] font-normal", children: "Or" }),
3750
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "w-24 border border-[#E1EBF5]" })
3751
+ ] }),
3752
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "mx-auto", children: [
3753
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "mb-2 text-body-xs text-primary font-semibold text-center", children: "Scan to Pay" }),
3754
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(IconQrCode, {})
3755
+ ] })
3756
+ ] }),
3757
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "flex flex-col gap-6", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
3758
+ BaseButton,
3759
+ {
3760
+ label: "I have made this payment",
3761
+ type: "primary",
3762
+ caller,
3763
+ customClass: "w-full",
3764
+ loading: isConfirmingPayment,
3765
+ onClick: confirmPaymentHandler
3766
+ }
3767
+ ) })
3768
+ ] })
1614
3769
  ] })
1615
3770
  ] });
1616
3771
  };
1617
3772
 
1618
- // src/components/pay-by-stable-coin.tsx
1619
- var import_react10 = require("react");
1620
- var import_jsx_runtime29 = require("react/jsx-runtime");
1621
- var PayByStableCoin = ({ onProceedToPay }) => {
1622
- const [formIndex, setFormIndex] = (0, import_react10.useState)(0);
1623
- const payHandler = () => {
1624
- setFormIndex(1);
1625
- onProceedToPay?.();
3773
+ // src/buzapay-checkout/checkout-card.tsx
3774
+ var import_jsx_runtime38 = require("react/jsx-runtime");
3775
+ function BzpCheckoutCard({
3776
+ secretKey,
3777
+ options,
3778
+ environment = "sandbox",
3779
+ paymentObject = {
3780
+ merchantName: "",
3781
+ amount: 0,
3782
+ currency: "",
3783
+ email: "",
3784
+ phoneNumber: "",
3785
+ narration: "",
3786
+ redirectUrl: "https://sandbox-merchant.buzapay.com/account/three-ds-status"
3787
+ },
3788
+ onPaymentAuthorized,
3789
+ onError
3790
+ }) {
3791
+ const [checkoutState, setCheckoutState] = (0, import_react12.useState)("PENDING");
3792
+ const paymentTypeOptions = [
3793
+ { label: "Card", value: "CARD" },
3794
+ { label: "Bank Transfer", value: "BANK_TRANSFER" },
3795
+ { label: "Stable Coin", value: "STABLE_COIN" }
3796
+ ];
3797
+ const [filteredPaymentTypeOptions, setFilteredPaymentTypeOptions] = (0, import_react12.useState)([]);
3798
+ const [paymentType, setPaymentType] = (0, import_react12.useState)("");
3799
+ const [successObject, setSuccessObject] = (0, import_react12.useState)({
3800
+ paymentDate: "",
3801
+ paymentId: "",
3802
+ paymentStatus: ""
3803
+ });
3804
+ const paymentTypeHandler = (event) => {
3805
+ setPaymentType(event);
1626
3806
  };
1627
- return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "flex flex-col gap-6", children: [
1628
- formIndex === 0 && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(import_jsx_runtime29.Fragment, { children: [
1629
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "grid grid-cols-1 gap-6", children: [
1630
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
1631
- BaseSelect,
1632
- {
1633
- label: "Select Crypto",
1634
- required: true,
1635
- options: [
1636
- { label: "USDT", value: "USDT" },
1637
- { label: "USDC", value: "USDC" },
1638
- { label: "BUSD", value: "BUSD" }
1639
- ]
1640
- }
1641
- ),
1642
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
1643
- BaseSelect,
1644
- {
1645
- label: "Select Network",
1646
- required: true,
1647
- options: [
1648
- { label: "Ethereum", value: "ETH" },
1649
- { label: "Binance Smart Chain", value: "BSC" },
1650
- { label: "Polygon", value: "MATIC" }
1651
- ]
1652
- }
1653
- )
1654
- ] }),
1655
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
1656
- BaseButton,
3807
+ const setSuccess = (event) => {
3808
+ setSuccessObject({ ...event });
3809
+ if (event.paymentStatus === "authorized") {
3810
+ setCheckoutState("SUCCESS");
3811
+ } else if (event.paymentStatus === "payment failed") {
3812
+ setCheckoutState("PENDING");
3813
+ } else if (event.paymentStatus === "used") {
3814
+ setCheckoutState("USED");
3815
+ } else {
3816
+ setCheckoutState("PENDING");
3817
+ }
3818
+ onPaymentAuthorized?.(event);
3819
+ };
3820
+ (0, import_react12.useEffect)(() => {
3821
+ let options2 = [];
3822
+ if (paymentObject.currency === "USD") {
3823
+ if (paymentObject.amount < 50) {
3824
+ options2 = paymentTypeOptions.filter(
3825
+ (option) => option.value !== "BANK_TRANSFER" && option.value !== "STABLE_COIN"
3826
+ );
3827
+ } else {
3828
+ options2 = paymentTypeOptions.filter(
3829
+ (option) => option.value !== "BANK_TRANSFER"
3830
+ );
3831
+ }
3832
+ } else {
3833
+ options2 = paymentTypeOptions.filter(
3834
+ (option) => option.value !== "STABLE_COIN"
3835
+ );
3836
+ }
3837
+ setFilteredPaymentTypeOptions(options2);
3838
+ }, [paymentObject.currency, paymentObject.amount]);
3839
+ (0, import_react12.useEffect)(() => {
3840
+ if (filteredPaymentTypeOptions.length) {
3841
+ setPaymentType(filteredPaymentTypeOptions[0].value);
3842
+ }
3843
+ }, [filteredPaymentTypeOptions]);
3844
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(BaseCard, { children: /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "grid grid-cols-3", children: [
3845
+ checkoutState === "PENDING" && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "bg-[#EFF7FF] px-6 py-8 flex flex-col gap-5 col-span-1 rounded-l-xl", children: [
3846
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "text-heading-text text-body-xs font-semibold", children: "Pay with" }),
3847
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
3848
+ BaseRadioGroup,
1657
3849
  {
1658
- label: "Pay",
1659
- type: "primary",
1660
- customClass: "w-full",
1661
- onClick: payHandler
3850
+ options: filteredPaymentTypeOptions,
3851
+ selectedChange: (e) => paymentTypeHandler(e)
1662
3852
  }
1663
3853
  )
1664
3854
  ] }),
1665
- formIndex === 1 && /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "flex flex-col gap-6", children: [
1666
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "mx-auto", children: [
1667
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
1668
- BaseImage,
1669
- {
1670
- src: "../../../assets/images/stable-coin-qr-code.png",
1671
- alt: "QR Code",
1672
- width: 122,
1673
- height: 122,
1674
- customClass: "mb-1"
1675
- }
1676
- ),
1677
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("p", { className: "mb-0 text-body-4xs text-light-copy font-normal text-center", children: "USDC" })
1678
- ] }),
1679
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "flex flex-col gap-6 border-c border-grey-100 p-4 rounded-2xl bg-light-white-50", children: [
1680
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "border-b border-grey-border pb-4 flex flex-col gap-2", children: [
1681
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("p", { className: "mb-0 text-body-3xs text-light-copy font-normal", children: "Network" }),
1682
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "flex justify-between", children: [
1683
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "flex flex-col gap-1", children: [
1684
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("p", { className: "mb-0 text-body-2xs font-medium text-sub-copy", children: "BNB Smart Chain (BEP20)" }),
1685
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "flex items-center gap-2", children: [
1686
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("p", { className: "mb-0 text-body-3xs text-light-copy font-normal", children: "*Est. arrival = 3 mins" }),
1687
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("p", { className: "mb-0 text-body-3xs text-light-copy font-normal", children: "|" }),
1688
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
1689
- BaseCurrencyAmount,
1690
- {
1691
- currency: "USDC",
1692
- amount: 10,
1693
- textClass: "mb-0 text-body-3xs text-light-copy font-normal",
1694
- iconColorClass: "#557591",
1695
- iconWidth: 12,
1696
- iconHeight: 12
1697
- }
1698
- )
3855
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
3856
+ "div",
3857
+ {
3858
+ className: checkoutState === "SUCCESS" ? "col-span-3" : "col-span-2",
3859
+ children: [
3860
+ checkoutState === "PENDING" && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex items-center justify-between px-12 py-8", children: [
3861
+ options?.imageUrl ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
3862
+ BaseImage,
3863
+ {
3864
+ src: options?.imageUrl ?? "",
3865
+ alt: "Merchant Logo",
3866
+ width: 52,
3867
+ height: 52,
3868
+ customClass: "rounded-lg"
3869
+ }
3870
+ ) : /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
3871
+ "div",
3872
+ {
3873
+ className: "bg-heading-text rounded flex flex-col justify-center",
3874
+ style: { width: "52px", height: "52px" },
3875
+ children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "text-white text-center text-body-2xs font-medium", children: "Logo" })
3876
+ }
3877
+ ),
3878
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex flex-col gap-1", children: [
3879
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "text-body-2xs font-regular text-sub-copy text-right", children: paymentObject.merchantName }),
3880
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("p", { className: "text-body-2xs font-regular text-sub-copy text-right", children: [
3881
+ "Pay:",
3882
+ " ",
3883
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "text-orange-500 font-extrabold", children: formatAmount(paymentObject.amount, paymentObject.currency) })
1699
3884
  ] })
1700
- ] }),
1701
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(IconArrowSwap, {})
1702
- ] })
1703
- ] }),
1704
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "pb-4 flex flex-col gap-2", children: [
1705
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("p", { className: "mb-0 text-body-3xs text-light-copy font-normal", children: "Deposit Address >" }),
1706
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "flex justify-between", children: [
1707
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("p", { className: "mb-0 text-body-2xs font-medium text-sub-copy w-2/3 break-words", children: "0j8938ysheeee8333c162883a4d4f5g6t111nhk8uey37777yt6" }),
1708
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(BaseCopy, { copyText: "0j8938ysheeee8333c162883a4d4f5g6t111nhk8uey37777yt6" })
1709
- ] })
1710
- ] })
1711
- ] }),
1712
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "flex flex-col gap-2", children: [
1713
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "flex items-center justify-between border-b border-grey-border py-3", children: [
1714
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("p", { className: "mb-0 text-body-2xs font-medium text-primary-black", children: "Network fee" }),
1715
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
1716
- BaseCurrencyAmount,
3885
+ ] })
3886
+ ] }),
3887
+ checkoutState === "PENDING" && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "overflow-y-scroll px-10 pb-10 pt-2", children: paymentType === "CARD" ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
3888
+ PayByCard,
1717
3889
  {
1718
- currency: "USDC",
1719
- amount: 12,
1720
- textClass: "mb-0 text-body-2xs font-extrabold text-primary-black",
1721
- iconColorClass: "#231F20"
3890
+ secretKey,
3891
+ environment,
3892
+ paymentObject,
3893
+ onPaymentAuthorized: setSuccess,
3894
+ onError
1722
3895
  }
1723
- )
1724
- ] }),
1725
- /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "flex items-center justify-between py-4", children: [
1726
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("p", { className: "mb-0 text-body-lg font-semibold text-primary-black", children: "Pay" }),
1727
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
1728
- BaseCurrencyAmount,
3896
+ ) : paymentType === "BANK_TRANSFER" ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
3897
+ PayByTransfer,
3898
+ {
3899
+ secretKey,
3900
+ environment,
3901
+ paymentObject,
3902
+ onPaymentAuthorized: setSuccess,
3903
+ onError
3904
+ }
3905
+ ) : /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
3906
+ PayByStableCoin,
1729
3907
  {
1730
- currency: "USDC",
1731
- amount: 15,
1732
- textClass: "mb-0 text-body-lg font-extrabold text-primary-black",
1733
- iconColorClass: "#231F20",
1734
- iconWidth: 20,
1735
- iconHeight: 20
3908
+ secretKey,
3909
+ environment,
3910
+ paymentObject,
3911
+ onPaymentAuthorized: setSuccess,
3912
+ onError
3913
+ }
3914
+ ) }),
3915
+ checkoutState === "SUCCESS" && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
3916
+ BaseSuccess,
3917
+ {
3918
+ amount: paymentObject.amount,
3919
+ currency: paymentObject.currency,
3920
+ redirectUrl: paymentObject.redirectUrl ?? "",
3921
+ successObject
1736
3922
  }
1737
3923
  )
1738
- ] })
1739
- ] }),
1740
- /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("div", { className: "flex flex-col gap-6", children: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
1741
- BaseButton,
1742
- {
1743
- label: "Confirm Payment",
1744
- type: "primary",
1745
- customClass: "w-full"
3924
+ ]
3925
+ }
3926
+ )
3927
+ ] }) });
3928
+ }
3929
+
3930
+ // src/miden-checkout/checkout-button.tsx
3931
+ var import_react14 = require("react");
3932
+
3933
+ // src/miden-checkout/checkout-iframe.tsx
3934
+ var import_react13 = require("react");
3935
+ var import_jsx_runtime39 = require("react/jsx-runtime");
3936
+ function MidenCheckoutIframe({
3937
+ style = {
3938
+ width: "100%",
3939
+ height: "100vh",
3940
+ border: "0",
3941
+ borderRadius: "6px",
3942
+ overflow: "hidden"
3943
+ },
3944
+ url,
3945
+ secretKey,
3946
+ environment = "sandbox",
3947
+ paymentObject = {
3948
+ merchantName: "",
3949
+ amount: 0,
3950
+ currency: "",
3951
+ email: "",
3952
+ phoneNumber: "",
3953
+ narration: "",
3954
+ redirectUrl: "https://sandbox-merchant.buzapay.com/account/three-ds-status"
3955
+ },
3956
+ onError
3957
+ }) {
3958
+ const containerRef = (0, import_react13.useRef)(null);
3959
+ const iframeRef = (0, import_react13.useRef)(null);
3960
+ const [message, setMessage] = (0, import_react13.useState)("");
3961
+ const [launchUrl, setLaunchUrl] = (0, import_react13.useState)("");
3962
+ const [loading, setLoading] = (0, import_react13.useState)(false);
3963
+ const launchIframe = (0, import_react13.useCallback)(
3964
+ (url2) => {
3965
+ if (iframeRef.current && iframeRef.current.parentNode) {
3966
+ iframeRef.current.parentNode.removeChild(iframeRef.current);
3967
+ }
3968
+ const iframe = document.createElement("iframe");
3969
+ iframe.src = url2;
3970
+ if (style.width) iframe.style.width = style.width;
3971
+ if (style.height) iframe.style.height = style.height;
3972
+ if (style.border) iframe.style.border = style.border;
3973
+ if (style.borderRadius) iframe.style.borderRadius = style.borderRadius;
3974
+ if (style.overflow) iframe.style.overflow = style.overflow;
3975
+ containerRef.current?.appendChild(iframe);
3976
+ iframeRef.current = iframe;
3977
+ },
3978
+ [style]
3979
+ );
3980
+ const generatePaymentLinkHandler = async () => {
3981
+ if (url) {
3982
+ launchIframe(url);
3983
+ return;
3984
+ }
3985
+ if (!secretKey) {
3986
+ return setMessage("Secret key is required.");
3987
+ }
3988
+ if (!checkObjectTruthy(paymentObject)) {
3989
+ return setMessage("Secret key is required.");
3990
+ }
3991
+ setLoading(true);
3992
+ try {
3993
+ const response = await createPaymentLink(
3994
+ paymentObject,
3995
+ environment,
3996
+ secretKey,
3997
+ "miden"
3998
+ );
3999
+ if (response?.isSuccessful) {
4000
+ setLaunchUrl(response.launchUrl ?? "");
4001
+ setMessage("Payment link created successfully");
4002
+ if (response.launchUrl) {
4003
+ setLoading(false);
4004
+ launchIframe(`${response.launchUrl}&merchantId=${btoa(secretKey)}`);
1746
4005
  }
1747
- ) })
1748
- ] })
4006
+ } else {
4007
+ setLoading(false);
4008
+ setMessage("Failed to create payment link");
4009
+ }
4010
+ } catch (e) {
4011
+ setMessage(e?.message || "Failed to create payment link");
4012
+ onError?.({
4013
+ errorMessage: message
4014
+ });
4015
+ } finally {
4016
+ setLoading(false);
4017
+ }
4018
+ };
4019
+ (0, import_react13.useEffect)(() => {
4020
+ if (!containerRef.current) return;
4021
+ generatePaymentLinkHandler();
4022
+ }, []);
4023
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "relative", style, children: [
4024
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { ref: containerRef, className: "w-full h-full" }),
4025
+ loading && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "absolute inset-0 grid place-items-center bg-white/60", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(IconLoader, {}) })
1749
4026
  ] });
1750
- };
4027
+ }
1751
4028
 
1752
- // src/buzapay-checkout/checkout-card.tsx
1753
- var import_jsx_runtime30 = require("react/jsx-runtime");
1754
- function BzpCheckoutCard({
4029
+ // src/miden-checkout/checkout-button.tsx
4030
+ var import_jsx_runtime40 = require("react/jsx-runtime");
4031
+ function MidenCheckoutButton({
4032
+ secretKey,
4033
+ environment = "sandbox",
4034
+ paymentObject = {
4035
+ merchantName: "",
4036
+ amount: 0,
4037
+ currency: "",
4038
+ email: "",
4039
+ phoneNumber: "",
4040
+ narration: "",
4041
+ redirectUrl: "https://sandbox-merchant.buzapay.com/account/three-ds-status"
4042
+ },
4043
+ mode = "redirect",
4044
+ onError
4045
+ }) {
4046
+ const [message, setMessage] = (0, import_react14.useState)("");
4047
+ const [launchUrl, setLaunchUrl] = (0, import_react14.useState)("");
4048
+ const [urlLaunchUrl, setUrlLaunchUrl] = (0, import_react14.useState)("");
4049
+ const [loading, setLoading] = (0, import_react14.useState)(false);
4050
+ const generatePaymentLinkHandler = async () => {
4051
+ if (!secretKey) {
4052
+ setMessage("Secret key is required.");
4053
+ return;
4054
+ }
4055
+ if (!checkObjectTruthy(paymentObject)) {
4056
+ setMessage("Kindly ensure you are passing all the required data.");
4057
+ return;
4058
+ }
4059
+ setLoading(true);
4060
+ setMessage("");
4061
+ try {
4062
+ const response = await createPaymentLink(
4063
+ paymentObject,
4064
+ environment,
4065
+ secretKey,
4066
+ "miden"
4067
+ );
4068
+ if (response?.isSuccessful && response.launchUrl) {
4069
+ setLaunchUrl(response.launchUrl);
4070
+ setUrlLaunchUrl(`${response.launchUrl}&merchantId=${btoa(secretKey)}`);
4071
+ setMessage("Payment link created successfully");
4072
+ if (mode === "redirect") {
4073
+ window.open(response.launchUrl, "_blank", "noopener,noreferrer");
4074
+ }
4075
+ } else {
4076
+ setMessage("Failed to create payment link");
4077
+ }
4078
+ } catch (e) {
4079
+ setMessage(e?.message || "Failed to create payment link");
4080
+ onError?.({
4081
+ errorMessage: message
4082
+ });
4083
+ } finally {
4084
+ setLoading(false);
4085
+ }
4086
+ };
4087
+ return urlLaunchUrl && mode === "iframe" ? /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
4088
+ MidenCheckoutIframe,
4089
+ {
4090
+ url: urlLaunchUrl,
4091
+ secretKey,
4092
+ environment
4093
+ }
4094
+ ) : /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { children: [
4095
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
4096
+ BaseButton,
4097
+ {
4098
+ label: "Pay",
4099
+ type: "primary",
4100
+ caller: "miden",
4101
+ customClass: "w-full",
4102
+ loading,
4103
+ onClick: generatePaymentLinkHandler
4104
+ }
4105
+ ),
4106
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(BaseInputError, { errorMessage: message })
4107
+ ] });
4108
+ }
4109
+
4110
+ // src/miden-checkout/checkout-card.tsx
4111
+ var import_react15 = require("react");
4112
+ var import_jsx_runtime41 = require("react/jsx-runtime");
4113
+ function MidenCheckoutCard({
4114
+ secretKey,
1755
4115
  options,
1756
4116
  environment = "sandbox",
1757
4117
  paymentObject = {
4118
+ merchantName: "",
1758
4119
  amount: 0,
1759
4120
  currency: "",
1760
4121
  email: "",
1761
4122
  phoneNumber: "",
1762
4123
  narration: "",
1763
- redirectUrl: ""
1764
- }
4124
+ redirectUrl: "https://sandbox-merchant.buzapay.com/account/three-ds-status"
4125
+ },
4126
+ onPaymentAuthorized,
4127
+ onError
1765
4128
  }) {
1766
- const [checkoutState, setCheckoutState] = (0, import_react11.useState)("PAYMENT");
4129
+ const [checkoutState, setCheckoutState] = (0, import_react15.useState)("PENDING");
1767
4130
  const paymentTypeOptions = [
1768
4131
  { label: "Card", value: "CARD" },
1769
4132
  { label: "Bank Transfer", value: "BANK_TRANSFER" },
1770
4133
  { label: "Stable Coin", value: "STABLE_COIN" }
1771
4134
  ];
1772
- const [filteredPaymentTypeOptions, setFilteredPaymentTypeOptions] = (0, import_react11.useState)([]);
1773
- const [paymentType, setPaymentType] = (0, import_react11.useState)(
1774
- filteredPaymentTypeOptions[0].value
1775
- );
4135
+ const [filteredPaymentTypeOptions, setFilteredPaymentTypeOptions] = (0, import_react15.useState)([]);
4136
+ const [paymentType, setPaymentType] = (0, import_react15.useState)("");
4137
+ const [successObject, setSuccessObject] = (0, import_react15.useState)({
4138
+ paymentDate: "",
4139
+ paymentId: "",
4140
+ paymentStatus: ""
4141
+ });
1776
4142
  const paymentTypeHandler = (event) => {
1777
4143
  setPaymentType(event);
1778
4144
  };
1779
- (0, import_react11.useEffect)(() => {
4145
+ const setSuccess = (event) => {
4146
+ setSuccessObject({ ...event });
4147
+ if (event.paymentStatus === "authorized") {
4148
+ setCheckoutState("SUCCESS");
4149
+ } else if (event.paymentStatus === "payment failed") {
4150
+ setCheckoutState("PENDING");
4151
+ } else if (event.paymentStatus === "used") {
4152
+ setCheckoutState("USED");
4153
+ } else {
4154
+ setCheckoutState("PENDING");
4155
+ }
4156
+ onPaymentAuthorized?.(event);
4157
+ };
4158
+ const formatAmountHandler = () => {
4159
+ return formatAmount(paymentObject.amount, paymentObject.currency);
4160
+ };
4161
+ const formatChargeHandler = () => {
4162
+ return formatAmount(0, paymentObject.currency);
4163
+ };
4164
+ (0, import_react15.useEffect)(() => {
1780
4165
  let options2 = [];
1781
4166
  if (paymentObject.currency === "USD") {
1782
- options2 = paymentTypeOptions.filter(
1783
- (option) => option.value !== "BANK_TRANSFER"
1784
- );
4167
+ if (paymentObject.amount < 50) {
4168
+ options2 = paymentTypeOptions.filter(
4169
+ (option) => option.value !== "BANK_TRANSFER" && option.value !== "STABLE_COIN"
4170
+ );
4171
+ } else {
4172
+ options2 = paymentTypeOptions.filter(
4173
+ (option) => option.value !== "BANK_TRANSFER"
4174
+ );
4175
+ }
1785
4176
  } else {
1786
4177
  options2 = paymentTypeOptions.filter(
1787
4178
  (option) => option.value !== "STABLE_COIN"
1788
4179
  );
1789
4180
  }
1790
4181
  setFilteredPaymentTypeOptions(options2);
1791
- }, [paymentObject.currency]);
1792
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(BaseCard, { showBackButton: checkoutState === "STABLE_COIN_PAYMENT", children: /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "grid grid-cols-3", children: [
1793
- checkoutState === "PAYMENT" && /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "bg-[#EFF7FF] px-6 py-8 flex flex-col gap-5 col-span-1 rounded-l-xl", children: [
1794
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("p", { className: "text-heading-text text-body-xs font-semibold", children: "Pay with" }),
1795
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
4182
+ }, [paymentObject.currency, paymentObject.amount]);
4183
+ (0, import_react15.useEffect)(() => {
4184
+ if (filteredPaymentTypeOptions.length) {
4185
+ setPaymentType(filteredPaymentTypeOptions[0].value);
4186
+ }
4187
+ }, [filteredPaymentTypeOptions]);
4188
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(BaseCard, { caller: "miden", children: /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "grid grid-cols-3", children: [
4189
+ checkoutState === "PENDING" && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "bg-[#0A0032] py-6 flex flex-col gap-5 col-span-1 rounded-l-xl", children: [
4190
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("p", { className: "text-white text-body-xs font-semibold px-6", children: "Pay with" }),
4191
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
1796
4192
  BaseRadioGroup,
1797
4193
  {
1798
- options: paymentTypeOptions,
4194
+ caller: "miden",
4195
+ options: filteredPaymentTypeOptions,
1799
4196
  selectedChange: (e) => paymentTypeHandler(e)
1800
4197
  }
1801
4198
  )
1802
4199
  ] }),
1803
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "col-span-2", children: [
1804
- (checkoutState === "PAYMENT" || checkoutState === "STABLE_COIN_PAYMENT") && /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { children: [
1805
- checkoutState === "PAYMENT" && /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "flex items-center justify-between px-12 py-8", children: [
1806
- options?.imageUrl ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
1807
- BaseImage,
1808
- {
1809
- src: options?.imageUrl ?? "",
1810
- alt: "Merchant Logo",
1811
- width: 52,
1812
- height: 52,
1813
- customClass: "rounded-lg"
1814
- }
1815
- ) : /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
1816
- "div",
4200
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
4201
+ "div",
4202
+ {
4203
+ className: checkoutState === "SUCCESS" ? "col-span-3" : "col-span-2",
4204
+ children: [
4205
+ checkoutState === "PENDING" && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "flex items-center justify-between p-6", children: [
4206
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(IconMidenLogo, {}),
4207
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(IconClose, { color: "black", className: "cursor-pointer" })
4208
+ ] }),
4209
+ checkoutState === "PENDING" && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "px-14 pt-4 pb-8 flex flex-col gap-6 max-h-[32rem] overflow-y-scroll", children: [
4210
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "flex items-center justify-between py-3 px-4 bg-[#F8FDFF] border border-[#DAE4E8] rounded-lg", children: [
4211
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
4212
+ BaseLabelInfo,
4213
+ {
4214
+ label: "Amount Due",
4215
+ value: formatAmountHandler()
4216
+ }
4217
+ ),
4218
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(BaseLabelInfo, { label: "Charges", value: formatChargeHandler() })
4219
+ ] }),
4220
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { children: paymentType === "CARD" ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
4221
+ PayByCard,
4222
+ {
4223
+ secretKey,
4224
+ environment,
4225
+ caller: "miden",
4226
+ paymentObject,
4227
+ onPaymentAuthorized: setSuccess,
4228
+ onError
4229
+ }
4230
+ ) : paymentType === "BANK_TRANSFER" ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
4231
+ PayByTransfer,
4232
+ {
4233
+ secretKey,
4234
+ environment,
4235
+ caller: "miden",
4236
+ paymentObject,
4237
+ onPaymentAuthorized: setSuccess,
4238
+ onError
4239
+ }
4240
+ ) : /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
4241
+ PayByStableCoin,
4242
+ {
4243
+ secretKey,
4244
+ environment,
4245
+ caller: "miden",
4246
+ paymentObject,
4247
+ onPaymentAuthorized: setSuccess,
4248
+ onError
4249
+ }
4250
+ ) })
4251
+ ] }),
4252
+ checkoutState === "SUCCESS" && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
4253
+ BaseSuccess,
1817
4254
  {
1818
- className: "bg-heading-text rounded flex flex-col justify-center",
1819
- style: { width: "52px", height: "52px" },
1820
- children: /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("p", { className: "text-white text-center text-body-2xs font-medium", children: "Logo" })
4255
+ amount: paymentObject.amount,
4256
+ currency: paymentObject.currency,
4257
+ caller: "miden",
4258
+ redirectUrl: paymentObject.redirectUrl ?? "",
4259
+ successObject
1821
4260
  }
1822
- ),
1823
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "flex flex-col gap-1", children: [
1824
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("p", { className: "text-body-2xs font-regular text-sub-copy text-right", children: "Raymahni Merchant LLC" }),
1825
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("p", { className: "text-body-2xs font-regular text-sub-copy text-right", children: [
1826
- "Pay:",
1827
- " ",
1828
- /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("span", { className: "text-orange-500 font-extrabold", children: [
1829
- currencySign(paymentObject.currency),
1830
- " 100,051.00"
1831
- ] })
1832
- ] })
1833
- ] })
1834
- ] }),
1835
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "overflow-y-scroll px-10 pb-10 pt-2", children: paymentType === "CARD" ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(PayByCard, {}) : paymentType === "BANK_TRANSFER" ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(PayByTransfer, {}) : /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
1836
- PayByStableCoin,
1837
- {
1838
- onProceedToPay: () => setCheckoutState("STABLE_COIN_PAYMENT")
1839
- }
1840
- ) })
1841
- ] }),
1842
- checkoutState === "SUCCESS" && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(BaseSuccess, {})
1843
- ] })
4261
+ )
4262
+ ]
4263
+ }
4264
+ )
1844
4265
  ] }) });
1845
4266
  }
1846
4267
  // Annotate the CommonJS export names for ESM import in node:
@@ -1848,6 +4269,9 @@ function BzpCheckoutCard({
1848
4269
  BzpCheckoutButton,
1849
4270
  BzpCheckoutCard,
1850
4271
  BzpCheckoutIframe,
4272
+ MidenCheckoutButton,
4273
+ MidenCheckoutCard,
4274
+ MidenCheckoutIframe,
1851
4275
  MidenPGClient,
1852
4276
  MidenPGProvider,
1853
4277
  useMidenPGClient,