@paykka/card-checkout-ui 0.13.8 → 0.13.13

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.
Files changed (175) hide show
  1. package/dist/card-checkout-ui.js +20 -20
  2. package/dist/card-checkout-ui.umd.cjs +21 -21
  3. package/dist/es/_commonjsHelpers.js +1 -82
  4. package/dist/es/api/index.js +2 -1
  5. package/dist/es/api/modules/checkout/map.js +1 -0
  6. package/dist/es/api/modules/get-browser-params.js +20 -8
  7. package/dist/es/api/modules/index.js +2 -1
  8. package/dist/es/api/modules/map.js +2 -1
  9. package/dist/es/api/modules/risk/index.js +21 -18
  10. package/dist/es/api/modules/threeDS/index.js +2 -1
  11. package/dist/es/api/modules/vietqr/index.js +2 -1
  12. package/dist/es/api/utils/index.js +4 -1
  13. package/dist/es/components/AccordionItem/AccordionItem.js +0 -1
  14. package/dist/es/components/AccountNameField/index.js +1 -1
  15. package/dist/es/components/AddressField/index.js +1 -2
  16. package/dist/es/components/AliPay/index.js +4 -2
  17. package/dist/es/components/ApplePay/index.js +201 -135
  18. package/dist/es/components/Boost/index.js +4 -2
  19. package/dist/es/components/CPFField/index.js +88 -0
  20. package/dist/es/components/Card/index.js +5 -11
  21. package/dist/es/components/CardBrands/index.js +0 -1
  22. package/dist/es/components/CardExpireDateField/index.js +1 -1
  23. package/dist/es/components/CardHolderNameField/index.js +1 -1
  24. package/dist/es/components/CardIBANField/index.js +1 -1
  25. package/dist/es/components/CardNo/index.js +0 -1
  26. package/dist/es/components/CardNumberField/index.js +1 -1
  27. package/dist/es/components/CardSecurityCodeField/index.js +1 -1
  28. package/dist/es/components/CardSelector/index.js +1 -1
  29. package/dist/es/components/CombinedCardInfo/index.js +1 -1
  30. package/dist/es/components/DropIn/index.js +0 -1
  31. package/dist/es/components/EmailField/EmailField.js +1 -1
  32. package/dist/es/components/EncryptedCard/index.js +12 -11
  33. package/dist/es/components/GooglePay/index.js +1 -0
  34. package/dist/es/components/GrabPay/index.js +4 -2
  35. package/dist/es/components/GuideCard/index.js +1 -1
  36. package/dist/es/components/LinePay/index.js +4 -2
  37. package/dist/es/components/MayBankQRPay/index.js +4 -2
  38. package/dist/es/components/NinePay/index.js +4 -2
  39. package/dist/es/components/RecurringTip/index.js +1 -2
  40. package/dist/es/components/SecuredFieldsProvider/index.js +20 -3
  41. package/dist/es/components/SecuredIframe/index.js +50 -22
  42. package/dist/es/components/Sepa/index.js +4 -2
  43. package/dist/es/components/ShopeePay/index.js +4 -2
  44. package/dist/es/components/SubmitButton/index.js +1 -1
  45. package/dist/es/components/TNGWallet/index.js +4 -2
  46. package/dist/es/components/ThreeDS/index.js +1 -2
  47. package/dist/es/components/Tip/index.js +18 -0
  48. package/dist/es/components/WechatPay/index.js +4 -2
  49. package/dist/es/components/business/QRCodeModal/QRCodeModal.js +1 -1
  50. package/dist/es/components/business/QRCodeModal/index.js +0 -1
  51. package/dist/es/components/business/index.js +0 -1
  52. package/dist/es/components/index.js +0 -1
  53. package/dist/es/components/internal/Accordion/index.js +0 -1
  54. package/dist/es/components/internal/Button/Button.js +0 -1
  55. package/dist/es/components/internal/Button/index.js +0 -1
  56. package/dist/es/components/internal/CheckBox/CheckBox.js +0 -1
  57. package/dist/es/components/internal/CheckBox/index.js +0 -1
  58. package/dist/es/components/internal/Form/type.js +0 -1
  59. package/dist/es/components/internal/Info/Info.js +0 -1
  60. package/dist/es/components/internal/Info/index.js +0 -1
  61. package/dist/es/components/internal/Input/Input.js +1 -1
  62. package/dist/es/components/internal/Input/type.js +0 -1
  63. package/dist/es/components/internal/LoadingCheck/LoadingCheck.js +0 -1
  64. package/dist/es/components/internal/LoadingCheck/index.js +0 -1
  65. package/dist/es/components/internal/Modal/Modal.js +1 -1
  66. package/dist/es/components/internal/QRCode/QRCode.js +0 -1
  67. package/dist/es/components/internal/QRCode/index.js +0 -1
  68. package/dist/es/components/internal/Select/Select.js +14 -17
  69. package/dist/es/components/internal/Select/SelectMenu.js +2 -3
  70. package/dist/es/components/internal/Select/SelectMenuItem.js +0 -1
  71. package/dist/es/components/wallets/GCash/GCash.js +4 -2
  72. package/dist/es/components/wallets/OpayWallet/OpayWallet.js +8 -9
  73. package/dist/es/components/wallets/PagaWallet/PagaWallet.js +8 -9
  74. package/dist/es/components/wallets/Paymaya/Paymaya.js +4 -2
  75. package/dist/es/components/wallets/PicPay/PicPay.js +136 -72
  76. package/dist/es/components/wallets/Pix/Pix.js +136 -72
  77. package/dist/es/components/wallets/Vietqr/Vietqr.js +4 -2
  78. package/dist/es/components/wallets/Zalopay/Zalopay.js +4 -2
  79. package/dist/es/config.js +1 -1
  80. package/dist/es/constant.js +2 -0
  81. package/dist/es/core/checkout.js +15 -3
  82. package/dist/es/core/environment.js +10 -2
  83. package/dist/es/core/index.js +0 -1
  84. package/dist/es/core/query.js +2 -1
  85. package/dist/es/core/session.js +6 -2
  86. package/dist/es/core/theme.js +0 -1
  87. package/dist/es/core.js +585 -4
  88. package/dist/es/hooks/index.js +0 -1
  89. package/dist/es/hooks/useI18n.js +0 -1
  90. package/dist/es/hooks/usePayState.js +13 -6
  91. package/dist/es/i18n/locales/de-DE.js +6 -1
  92. package/dist/es/i18n/locales/en-GB.js +6 -1
  93. package/dist/es/i18n/locales/es-ES.js +6 -1
  94. package/dist/es/i18n/locales/fr-FR.js +7 -2
  95. package/dist/es/i18n/locales/ja-JP.js +6 -1
  96. package/dist/es/i18n/locales/ko-KR.js +6 -1
  97. package/dist/es/i18n/locales/nl-NL.js +6 -1
  98. package/dist/es/i18n/locales/pt-PT.js +6 -1
  99. package/dist/es/i18n/locales/ru-RU.js +6 -1
  100. package/dist/es/i18n/locales/zh-CN.js +6 -1
  101. package/dist/es/i18n/locales/zh-HK.js +7 -2
  102. package/dist/es/i18n/locales/zh-TW.js +7 -2
  103. package/dist/es/index.js +6 -3
  104. package/dist/es/out/base-fraud-detection.js +134 -0
  105. package/dist/es/out/config.js +16 -0
  106. package/dist/es/out/fraud-detection.js +118 -27
  107. package/dist/es/out/paykka-detection.js +63 -0
  108. package/dist/es/out/stripe-radar.js +25 -51
  109. package/dist/es/out/worldpay-ddc.js +52 -99
  110. package/dist/es/out/worldpay-jsc-origin.js +0 -1
  111. package/dist/es/out/worldpay-jsc.js +21 -43
  112. package/dist/es/style.css +1 -1
  113. package/dist/es/types/event.js +33 -13
  114. package/dist/es/types/index.js +14 -0
  115. package/dist/es/utils/cpf.js +48 -0
  116. package/dist/es/utils/encrypt.js +18 -0
  117. package/dist/es/utils/iframe.js +1 -1
  118. package/dist/es/utils/location.js +4 -2
  119. package/dist/es/utils/redirect.js +8 -5
  120. package/dist/es/utils/system-info/index.js +1 -3
  121. package/dist/style.css +1 -1
  122. package/dist/types/api/modules/checkout/type.d.ts +2 -0
  123. package/dist/types/api/modules/get-browser-params.d.ts +25 -1
  124. package/dist/types/api/modules/risk/index.d.ts +28 -12
  125. package/dist/types/api/modules/type.d.ts +5 -0
  126. package/dist/types/api/utils/index.d.ts +3 -0
  127. package/dist/types/components/ApplePay/config.d.ts +9 -0
  128. package/dist/types/components/ApplePay/hooks/useApplePay.d.ts +15 -0
  129. package/dist/types/components/ApplePay/type.d.ts +53 -10
  130. package/dist/types/components/ApplePay/utils.d.ts +8 -2
  131. package/dist/types/components/CPFField/CPFField.d.ts +4 -0
  132. package/dist/types/components/CPFField/index.d.ts +2 -0
  133. package/dist/types/components/CPFField/type.d.ts +21 -0
  134. package/dist/types/components/SecuredFieldsProvider/type.d.ts +8 -3
  135. package/dist/types/components/SecuredIframe/useSecuredInput.d.ts +2 -5
  136. package/dist/types/components/ThreeDS/components/ThreeDSIframe/ThreeDSIframe.d.ts +6 -0
  137. package/dist/types/components/Tip/Tip.d.ts +3 -0
  138. package/dist/types/components/Tip/index.d.ts +2 -0
  139. package/dist/types/components/Tip/type.d.ts +12 -0
  140. package/dist/types/constant.d.ts +3 -1
  141. package/dist/types/core/checkout.d.ts +1 -1
  142. package/dist/types/core/environment.d.ts +12 -0
  143. package/dist/types/core/session.d.ts +1 -0
  144. package/dist/types/i18n/locales/de-DE.d.ts +4 -0
  145. package/dist/types/i18n/locales/en-GB.d.ts +4 -0
  146. package/dist/types/i18n/locales/es-ES.d.ts +4 -0
  147. package/dist/types/i18n/locales/fr-FR.d.ts +4 -0
  148. package/dist/types/i18n/locales/ja-JP.d.ts +4 -0
  149. package/dist/types/i18n/locales/ko-KR.d.ts +4 -0
  150. package/dist/types/i18n/locales/nl-NL.d.ts +4 -0
  151. package/dist/types/i18n/locales/pt-PT.d.ts +4 -0
  152. package/dist/types/i18n/locales/ru-RU.d.ts +4 -0
  153. package/dist/types/i18n/locales/zh-CN.d.ts +4 -0
  154. package/dist/types/i18n/locales/zh-HK.d.ts +4 -0
  155. package/dist/types/i18n/locales/zh-TW.d.ts +4 -0
  156. package/dist/types/out/base-fraud-detection.d.ts +53 -0
  157. package/dist/types/out/config.d.ts +11 -0
  158. package/dist/types/out/fraud-detection.d.ts +14 -3
  159. package/dist/types/out/paykka-detection.d.ts +20 -0
  160. package/dist/types/out/stripe-radar.d.ts +7 -9
  161. package/dist/types/out/types.d.ts +8 -2
  162. package/dist/types/out/worldpay-ddc.d.ts +7 -19
  163. package/dist/types/out/worldpay-jsc.d.ts +8 -18
  164. package/dist/types/types/event.d.ts +86 -39
  165. package/dist/types/types/fraud-detection.d.ts +1 -1
  166. package/dist/types/types/index.d.ts +22 -2
  167. package/dist/types/types/message.d.ts +12 -12
  168. package/dist/types/utils/app-payment.d.ts +2 -0
  169. package/dist/types/utils/cpf.d.ts +32 -0
  170. package/dist/types/utils/encrypt.d.ts +9 -0
  171. package/dist/types/utils/location.d.ts +1 -0
  172. package/dist/types/utils/system-info/index.d.ts +0 -1
  173. package/package.json +5 -4
  174. package/dist/types/components/ThreeDS/components/ThreeDSStatus/ThreeDSStatus.d.ts +0 -3
  175. package/dist/types/components/ThreeDS/components/ThreeDSStatus/type.d.ts +0 -6
@@ -0,0 +1,48 @@
1
+ import { limitedToNumber } from "./format.js";
2
+ const CPF_LENGTH = 11;
3
+ const CPF_FULL_LENGTH = 14;
4
+ const CNPJ_FULL_LENGTH = 18;
5
+ const formatCPF = (val) => {
6
+ if (val.length <= CPF_LENGTH) {
7
+ return val.replace(/(\d{3})(\d)/, "$1.$2").replace(/(\d{3})(\d)/, "$1.$2").replace(/(\d{3})(\d{1,2})$/, "$1-$2");
8
+ } else {
9
+ return val.replace(/^(\d{2})(\d)/, "$1.$2").replace(/^(\d{2})\.(\d{3})(\d)/, "$1.$2.$3").replace(/\.(\d{3})(\d)/, ".$1/$2").replace(/(\d{4})(\d{1,2})$/, "$1-$2");
10
+ }
11
+ };
12
+ const formatCPFOnInsert = (event) => {
13
+ const { currentTarget } = event;
14
+ const input = currentTarget;
15
+ const selectionStart = input.selectionStart;
16
+ const rawValue = input.value;
17
+ const digits = limitedToNumber(rawValue).slice(0, CPF_FULL_LENGTH);
18
+ const digitPos = getDigitPosition(rawValue, selectionStart);
19
+ const formattedValue = formatCPF(digits);
20
+ const cursorPosition = getFormattedPosition(formattedValue, digitPos);
21
+ return { value: formattedValue, cursorPosition };
22
+ };
23
+ const getDigitPosition = (formatted, pos) => {
24
+ let digitPos = 0;
25
+ for (let i = 0; i < pos && i < formatted.length; i++) {
26
+ if (/\d/.test(formatted[i])) {
27
+ digitPos++;
28
+ }
29
+ }
30
+ return digitPos;
31
+ };
32
+ const getFormattedPosition = (formatted, digitPos) => {
33
+ let count = 0;
34
+ for (let i = 0; i < formatted.length; i++) {
35
+ if (/\d/.test(formatted[i])) {
36
+ if (count === digitPos) {
37
+ return i;
38
+ }
39
+ count++;
40
+ }
41
+ }
42
+ return formatted.length;
43
+ };
44
+ export {
45
+ CNPJ_FULL_LENGTH,
46
+ CPF_FULL_LENGTH,
47
+ formatCPFOnInsert
48
+ };
@@ -0,0 +1,18 @@
1
+ import { managedNonce, gcm } from "../core.js";
2
+ const sha256 = async (data) => {
3
+ const bytes = typeof data === "string" ? new TextEncoder().encode(data) : data;
4
+ const buf = await crypto.subtle.digest("SHA-256", bytes);
5
+ return new Uint8Array(buf);
6
+ };
7
+ const toBase64 = (bytes) => {
8
+ return btoa(String.fromCharCode(...bytes));
9
+ };
10
+ const encryptAES = async (key, data) => {
11
+ const raw = managedNonce(gcm)(await sha256(key)).encrypt(
12
+ new TextEncoder().encode(data)
13
+ );
14
+ return toBase64(raw);
15
+ };
16
+ export {
17
+ encryptAES
18
+ };
@@ -11,7 +11,7 @@ const createIframe = (src) => {
11
11
  return iframeEl;
12
12
  };
13
13
  const postMessageToIframe = (data, iframe, targetOrigin = "*") => {
14
- if (!iframe) {
14
+ if (!iframe || iframe === window) {
15
15
  return;
16
16
  }
17
17
  const dataStr = typeof data === "string" ? data : JSON.stringify(data);
@@ -21,12 +21,14 @@ const parseUrl = (url) => {
21
21
  const baseUrl = urlObj.origin + urlObj.pathname;
22
22
  return {
23
23
  baseUrl,
24
- params
24
+ params,
25
+ origin: urlObj.origin
25
26
  };
26
27
  } catch (error) {
27
28
  return {
28
29
  baseUrl: url,
29
- params: {}
30
+ params: {},
31
+ origin: ""
30
32
  };
31
33
  }
32
34
  };
@@ -1,10 +1,13 @@
1
1
  import { parseUrl, createUrlWithParams } from "./location.js";
2
2
  const redirectToPayment = (payInfo) => {
3
- const { request_method: method, request_url: url, payment_url: paymentUrl } = payInfo;
4
- if (method === "GET" || paymentUrl) {
5
- redirectByGet(url || paymentUrl, {});
6
- } else if (url) {
7
- const { baseUrl, params } = parseUrl(url);
3
+ const { requestMethod, targetUrl } = payInfo;
4
+ if (!targetUrl) {
5
+ return;
6
+ }
7
+ if (requestMethod === "GET") {
8
+ redirectByGet(targetUrl, {});
9
+ } else {
10
+ const { baseUrl, params } = parseUrl(targetUrl);
8
11
  redirectByPost(baseUrl, params);
9
12
  }
10
13
  };
@@ -1,4 +1,3 @@
1
- import { getFingerprint } from "./finger-print.js";
2
1
  import "./get-browser-info.js";
3
2
  import { getSystemInfo } from "./get-system-info.js";
4
3
  const getTimeZoneOffset = () => {
@@ -23,8 +22,7 @@ const getBrowser = async () => {
23
22
  screenHeight,
24
23
  screenWidth,
25
24
  cookies: document.cookie,
26
- osName,
27
- deviceFingerprintId: await getFingerprint()
25
+ osName
28
26
  };
29
27
  };
30
28
  export {
package/dist/style.css CHANGED
@@ -1 +1 @@
1
- @charset "UTF-8";.paykka-card-checkout,.paykka-card-checkout *{box-sizing:border-box}.paykka-card-checkout-ali-pay{min-width:var(--paykka-form-min-width);display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-ali-pay{gap:var(--paykka-spacing-base)}}.paykka-card-checkout-ali-pay__footer-wrapper{display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5);margin-top:var(--paykka-spacing-small-5)}.paykka-card-checkout-address-field__first-item .paykka-card-checkout-input__input-wrapper{padding:var(--paykka-field-padding)}.paykka-card-checkout-address-field__first-item--no-bottom-radius .paykka-card-checkout-input__input-wrapper{border-bottom-right-radius:0;border-bottom-left-radius:0}.paykka-card-checkout-address-field__mid-item .paykka-card-checkout-input__input-wrapper{padding:var(--paykka-field-padding);border-radius:0;border-top:0}.paykka-card-checkout-address-field__mid-item .paykka-card-checkout-input__input-wrapper:active,.paykka-card-checkout-address-field__mid-item .paykka-card-checkout-input__input-wrapper--focus,.paykka-card-checkout-address-field__mid-item .paykka-card-checkout-input__input-wrapper:focus{border-top:1px solid var(--paykka-primary-color);box-shadow:var(--paykka-field-box-shadow)}.paykka-card-checkout-address-field__last-item .paykka-card-checkout-input__input-wrapper{padding:var(--paykka-field-padding);border-top-right-radius:0;border-top-left-radius:0;border-top:0}.paykka-card-checkout-address-field__last-item .paykka-card-checkout-input__input-wrapper:active,.paykka-card-checkout-address-field__last-item .paykka-card-checkout-input__input-wrapper--focus,.paykka-card-checkout-address-field__last-item .paykka-card-checkout-input__input-wrapper:focus{border-top:1px solid var(--paykka-primary-color);box-shadow:var(--paykka-field-box-shadow)}.paykka-card-checkout-form-item{font-size:var(--paykka-font-size-base)}.paykka-card-checkout-form-item__label{margin-bottom:var(--paykka-spacing-small-2);transition:margin-bottom .1s cubic-bezier(.4,0,.2,1);-webkit-user-select:none;user-select:none;line-height:23px}@media (min-width: 480px){.paykka-card-checkout-form-item__label{margin-bottom:var(--paykka-spacing-small-3)}}.paykka-card-checkout-form-item__error-text{margin-top:var(--paykka-spacing-small-1);color:var(--paykka-error-color);font-size:var(--paykka-font-size-small)}.paykka-card-checkout-input{position:relative;box-sizing:border-box;font-size:var(--paykka-font-size-base)}.paykka-card-checkout-input__input-wrapper{display:flex;align-items:center;height:var(--paykka-field-item-height);width:100%;border-radius:var(--paykka-border-radius-base);border:1px solid var(--paykka-border-color);transition:border .2s cubic-bezier(.4,0,.2,1),box-shadow .2s cubic-bezier(.4,0,.2,1);background-color:var(--paykka-field-bg-color);caret-color:var(--paykka-card-checkout-input-color, #4F43DF) .paykka-card-checkout-input__input-wrapper --error;caret-color-border:1px solid var(--paykka-error-color)}.paykka-card-checkout-input__input-wrapper:active,.paykka-card-checkout-input__input-wrapper--focus,.paykka-card-checkout-input__input-wrapper:focus{border:1px solid var(--paykka-primary-color);box-shadow:0 0 0 1px var(--paykka-primary-color)}.paykka-card-checkout-input__input-wrapper-disabled{cursor:not-allowed;background:var(--paykka-field-disabled-bg-color)}.paykka-card-checkout-input__input-wrapper-disabled:active,.paykka-card-checkout-input__input-wrapper-disabled--focus,.paykka-card-checkout-input__input-wrapper-disabled:focus{border:1px solid var(--paykka-field-disabled-bg-color);box-shadow:0 0 0 2px var(--paykka-field-disabled-bg-color)}.paykka-card-checkout-input__input{outline:none;border:none;height:100%;width:100%;border-radius:var(--paykka-border-radius-base);caret-color:var(--paykka-primary-color);font-size:var(--paykka-font-size-base);padding-left:var(--paykka-spacing-small-3);background-color:transparent}.paykka-card-checkout-input__input::placeholder{color:var(--paykka-placeholder-color)}.paykka-card-checkout-input__input:-webkit-autofill,.paykka-card-checkout-input__input:-internal-autofill-selected{background-color:transparent!important}.paykka-card-checkout-input__right-icon{padding-right:var(--paykka-spacing-small-3);display:flex;align-items:center;flex-shrink:0;margin-left:var(--paykka-spacing-small-3)}.paykka-card-checkout-input__left-icon{padding-left:var(--paykka-spacing-small-3);display:flex;align-items:center;flex-shrink:0;margin-right:var(--paykka-spacing-small-3)}.paykka-card-checkout-select{color:var(--paykka-field-font-color)}.paykka-card-checkout-select__wrapper{width:100%;position:relative;cursor:pointer}.paykka-card-checkout-select__render-label{position:absolute;top:0;line-height:var(--paykka-field-item-height);height:var(--paykka-field-item-height);padding:0 var(--paykka-spacing-small-3);display:flex;color:var(--paykka-field-font-color)}.paykka-card-checkout-select__render-label--placeholder{color:#c2c2c2}.paykka-card-checkout-select__render-label--hidden{visibility:hidden}.paykka-card-checkout-select__menu{margin-top:4px;width:100%;max-height:260px;background:var(--paykka-field-bg-color);box-shadow:0 4px 14px #0000001a;border-radius:var(--paykka-border-radius-base);border:1px solid var(--paykka-border-color);overflow-y:auto;z-index:999;position:absolute}.paykka-card-checkout-select__menu-item{padding:6px 12px;line-height:32px;color:#626266;cursor:pointer;display:flex;justify-content:space-between}.paykka-card-checkout-select__menu-item:hover,.paykka-card-checkout-select__menu-item:active,.paykka-card-checkout-select__menu-item--selected,.paykka-card-checkout-select__menu-item:focus{color:var(--paykka-font-color);background:#f3f3f5}.paykka-card-checkout-select__menu-item-icon{margin-left:10px;display:flex;align-items:center}.paykka-card-checkout-select__menu-no-data{height:200px;display:flex;justify-content:center;align-items:center;color:#c2c2c2}.paykka-card-checkout-info{display:flex;align-items:center;padding:var(--paykka-spacing-small-3) var(--paykka-spacing-small-5);border-radius:var(--paykka-border-radius-base)}.paykka-card-checkout-info--error{background-color:#ffece8}.paykka-card-checkout-info__icon{margin-right:var(--paykka-spacing-small-2);height:1.3em;display:flex;align-items:center}.paykka-card-checkout-info__content{text-align:justify;word-break:break-all}.paykka-card-checkout-recurring-tip{display:flex;color:var(--paykka-gray2-color)}.paykka-card-checkout-recurring-tip__icon{width:20px;display:flex;padding-top:var(--paykka-spacing-small-1);padding-right:var(--paykka-spacing-small-1)}.paykka-card-checkout-submit-button--success{opacity:1!important;background-color:var(--paykka-success-color)!important}.paykka-card-checkout-submit-button__text{line-height:1}.paykka-card-checkout-submit-button__text--not-verified{opacity:.6;color:var(--paykka-button-font-color)}.paykka-card-checkout-button{display:flex;align-items:center;justify-content:center;width:100%;height:var(--paykka-field-item-height);padding:0 var(--paykka-spacing-small-3);border-radius:var(--paykka-border-radius-base);border:0;background-color:var(--paykka-button-bg-color);color:var(--paykka-button-font-color);font-size:var(--paykka-font-size-base);cursor:pointer;text-decoration:none;transition:background-color .3s cubic-bezier(.4,0,.2,1)}.paykka-card-checkout-button:not(.paykka-card-checkout-button--loading).paykka-card-checkout-button:not(.paykka-card-checkout-button--disabled).paykka-card-checkout-button:not(.paykka-card-checkout-button--dashed):hover{background-color:var(--paykka-button-bg-color-hover)}.paykka-card-checkout-button:not(.paykka-card-checkout-button--loading).paykka-card-checkout-button:not(.paykka-card-checkout-button--disabled).paykka-card-checkout-button:not(.paykka-card-checkout-button--dashed):active{background-color:var(--paykka-button-bg-color-active)}.paykka-card-checkout-button--loading{cursor:wait}.paykka-card-checkout-button--disabled{cursor:not-allowed;opacity:.5}.paykka-card-checkout-button--dashed{border:1px dashed var(--paykka-border-color);color:var(--paykka-font-color);background-color:transparent}.paykka-card-checkout-button__icon{display:flex;align-items:center;margin-right:var(--paykka-spacing-small-3)}.paykka-card-checkout-loading-check{display:inline-flex;align-items:center;overflow:hidden;--circle-transition-time: .3s;--check-dashoffset: 50}.paykka-card-checkout-loading-check__circle{transition:stroke-dasharray var(--circle-transition-time) linear}.paykka-card-checkout-loading-check__circle--loading{animation:spin 1s infinite linear;transform-origin:center}.paykka-card-checkout-loading-check__check{stroke-dasharray:var(--check-dashoffset);stroke-dashoffset:var(--check-dashoffset);animation:tick .5s ease-out;animation-fill-mode:forwards;animation-delay:var(--circle-transition-time)}@keyframes tick{0%{stroke-dashoffset:var(--check-dashoffset)}to{stroke-dashoffset:0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.paykka-card-checkout-card{min-width:var(--paykka-form-min-width);display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-card{gap:var(--paykka-spacing-base)}}.paykka-card-checkout-card__center{display:flex;justify-content:space-between}.paykka-card-checkout-card__center>div{width:calc((100% - var(--paykka-spacing-small-5)) / 2);transition:width .1s cubic-bezier(.4,0,.2,1)}@media (min-width: 480px){.paykka-card-checkout-card__center>div{width:calc((100% - var(--paykka-spacing-large-3)) / 2)}}.paykka-card-checkout-card__footer-wrapper{display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5);margin-top:var(--paykka-spacing-small-5)}.paykka-card-checkout-card__card-brands{margin-top:var(--paykka-spacing-small-2)}.paykka-card-checkout-card__card-number-wrapper{position:relative}.paykka-card-checkout-card__change-box{display:flex;align-items:center;color:#4f43df;font-size:var(--paykka-font-size-small);position:absolute;top:0;right:0;cursor:pointer}.paykka-card-checkout-card__card-selector-wrapper{display:flex;justify-content:space-between;flex-wrap:wrap;row-gap:var(--paykka-spacing-base);column-gap:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-card__card-selector-wrapper{gap:var(--paykka-spacing-base)}}.paykka-card-checkout-card__card-selector{flex:2;min-width:250px}.paykka-card-checkout-card__card-security-code{flex:1}.paykka-card-checkout-card-brands{display:flex;flex-wrap:wrap;gap:6px}.paykka-card-checkout-card-brands__more{line-height:32px;font-size:13px;color:var(--paykka-sub-font-color-1)}.paykka-card-checkout-card-selector{color:var(--paykka-font-color)}.paykka-card-checkout-card-selector__action{padding:var(--paykka-spacing-small-2) var(--paykka-spacing-small-3)}.paykka-card-checkout-card-selector__label{display:flex;align-items:center}.paykka-card-checkout-card-selector__card-no{margin-left:var(--paykka-spacing-small-3);color:var(--paykka-font-color)}.paykka-card-checkout-card-selector__change{display:flex;align-items:center;color:var(--paykka-primary-color);font-size:var(--paykka-font-size-small)}.paykka-card-checkout-card-no{color:var(--paykka-font-color)}.paykka-card-checkout-card-no__wrapper{display:flex;align-items:center}.paykka-card-checkout-card-no__dot{width:4px;height:4px;background:currentColor;margin-right:var(--paykka-spacing-small-1);border-radius:50%}.paykka-card-checkout-card-no__card-no{margin-left:var(--paykka-spacing-small-1)}.paykka-card-checkout-check-box{display:inline-flex;align-items:center;font-size:var(--paykka-font-size-small);background-color:transparent;cursor:pointer}.paykka-card-checkout-check-box:hover .paykka-card-checkout-check-box__inner{border-color:var(--paykka-primary-color)}.paykka-card-checkout-check-box--checked .paykka-card-checkout-check-box__inner{border-color:var(--paykka-primary-color);background-color:var(--paykka-primary-color)}.paykka-card-checkout-check-box__inner{width:14px;height:14px;border:1px solid var(--paykka-border-color);border-radius:var(--paykka-border-radius-mini);margin-right:var(--paykka-spacing-small-2);transition:border-color .2s cubic-bezier(.4,0,.2,1);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.paykka-card-checkout-modal{position:fixed;left:0;right:0;top:0;bottom:0;z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center}.paykka-card-checkout-modal__mask{position:fixed;left:0;right:0;top:0;bottom:0;background-color:var(--paykka-modal-mask-bg-color)}.paykka-card-checkout-modal__content{position:relative;z-index:9999;border-radius:var(--paykka-border-radius-base);background-color:#fff;box-shadow:0 8px 16px -8px #00000014,0 12px 32px #0000000f,0 16px 48px 16px #0000000a;display:flex;flex-direction:column}.paykka-card-checkout-modal__close{cursor:pointer;right:0;position:absolute;transform:translateY(-150%);color:var(--paykka-gray4-color)}.paykka-card-checkout-modal__close:hover{color:#fff}.paykka-card-checkout-modal__body{flex:1;padding:var(--paykka-spacing-small-5);overflow-y:hidden}@media (min-width: 480px){.paykka-card-checkout-modal__body{padding:var(--paykka-spacing-large-1)}}.paykka-card-checkout-three-ds-auth__content{height:100%}.paykka-card-checkout-three-ds-auth__last-three-ds{width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;overflow-y:auto}.paykka-card-checkout-three-ds-auth__last-three-ds-title{margin-top:var(--paykka-spacing-base);margin-bottom:var(--paykka-spacing-large-5);color:var(--paykka-font-color);font-size:var(--paykka-font-size-large-2);font-weight:700;text-align:center}.paykka-card-checkout-three-ds-auth__last-three-ds-icon{flex-shrink:0}.paykka-card-checkout-three-ds-auth__three-ds-iframe{display:block;border-radius:var(--paykka-border-radius-base)}.paykka-card-checkout-combined-card-info{width:100%;height:100%;display:flex}.paykka-card-checkout-combined-card-info__card-number{flex:1}.paykka-card-checkout-combined-card-info__expire-date{width:100px}.paykka-card-checkout-combined-card-info__cvv{width:60px}.paykka-card-checkout-combined-card-info__blank-icon{width:16px;height:16px}.paykka-card-checkout-wechat-pay{min-width:var(--paykka-form-min-width);display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-wechat-pay{gap:var(--paykka-spacing-base)}}.paykka-card-checkout-wechat-pay__footer-wrapper{display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5);margin-top:var(--paykka-spacing-small-5)}.paykka-card-checkout-apple-pay__error{margin-bottom:var(--paykka-spacing-small-5);transition:margin-bottom .1s cubic-bezier(.4,0,.2,1)}@media (min-width: 480px){.paykka-card-checkout-apple-pay__error{margin-bottom:var(--paykka-spacing-base)}}.paykka-card-checkout-apple-pay__button{width:100%;display:flex;align-items:center;justify-content:center;height:var(--paykka-field-item-height)}.paykka-card-checkout-google-pay__error{margin-bottom:var(--paykka-spacing-small-5);transition:margin-bottom .1s cubic-bezier(.4,0,.2,1)}@media (min-width: 480px){.paykka-card-checkout-google-pay__error{margin-bottom:var(--paykka-spacing-base)}}.paykka-card-checkout-sepa{min-width:var(--paykka-form-min-width)}.paykka-card-checkout-sepa__field{margin-bottom:var(--paykka-spacing-large-1)}.paykka-card-checkout-sepa__holder-name{padding-bottom:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-sepa__holder-name{padding-bottom:var(--paykka-spacing-base)}}.paykka-card-checkout-sepa__button{margin-top:var(--paykka-spacing-small-5);transition:margin-top .1s cubic-bezier(.4,0,.2,1)}@media (min-width: 480px){.paykka-card-checkout-sepa__button{margin-top:var(--paykka-spacing-base)}}.paykka-card-checkout-boost{min-width:var(--paykka-form-min-width);display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-boost{gap:var(--paykka-spacing-base)}}.paykka-card-checkout-boost__footer-wrapper{display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5);margin-top:var(--paykka-spacing-small-5)}.paykka-card-checkout-guide-card{border:1px solid var(--paykka-border-color);border-radius:var(--paykka-border-radius-large);padding:var(--paykka-spacing-small-5);margin-bottom:var(--paykka-spacing-large-1)}@media (min-width: 480px){.paykka-card-checkout-guide-card{padding:var(--paykka-spacing-small-5);margin-bottom:var(--paykka-spacing-large-3)}}.paykka-card-checkout-guide-card__content{display:flex;align-items:center}.paykka-card-checkout-guide-card__icon{flex-shrink:0}.paykka-card-checkout-guide-card__description{color:var(--paykka-gray2-color);font-size:var(--paykka-font-size-small);margin-left:var(--paykka-spacing-small-3)}.paykka-card-checkout-guide-card svg{display:block}.paykka-card-checkout-nine-pay{min-width:var(--paykka-form-min-width);display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-nine-pay{gap:var(--paykka-spacing-base)}}.paykka-card-checkout-nine-pay__footer-wrapper{display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5);margin-top:var(--paykka-spacing-small-5)}.paykka-card-checkout-line-pay{min-width:var(--paykka-form-min-width);display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-line-pay{gap:var(--paykka-spacing-base)}}.paykka-card-checkout-line-pay__footer-wrapper{display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5);margin-top:var(--paykka-spacing-small-5)}.paykka-card-checkout-tng-wallet{min-width:var(--paykka-form-min-width);display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-tng-wallet{gap:var(--paykka-spacing-base)}}.paykka-card-checkout-tng-wallet__footer-wrapper{display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5);margin-top:var(--paykka-spacing-small-5)}.paykka-card-checkout-may-bank-qr-pay{min-width:var(--paykka-form-min-width);display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-may-bank-qr-pay{gap:var(--paykka-spacing-base)}}.paykka-card-checkout-may-bank-qr-pay__footer-wrapper{display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5);margin-top:var(--paykka-spacing-small-5)}.paykka-card-checkout-shopee-pay{min-width:var(--paykka-form-min-width);display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-shopee-pay{gap:var(--paykka-spacing-base)}}.paykka-card-checkout-shopee-pay__footer-wrapper{display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5);margin-top:var(--paykka-spacing-small-5)}.paykka-card-checkout-grab-pay{min-width:var(--paykka-form-min-width);display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-grab-pay{gap:var(--paykka-spacing-base)}}.paykka-card-checkout-grab-pay__footer-wrapper{display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5);margin-top:var(--paykka-spacing-small-5)}.paykka-card-checkout-qr-code-modal{padding-top:var(--paykka-spacing-base);display:flex;flex-direction:column;align-items:center;justify-content:center}.paykka-card-checkout-qr-code-modal__container{width:208px}.paykka-card-checkout-qr-code-modal__title{font-size:var(--paykka-font-size-large);font-weight:550;text-align:center}.paykka-card-checkout-qr-code-modal__body{margin:var(--paykka-spacing-base) 0;padding:var(--paykka-spacing-small-5);border-radius:var(--paykka-border-radius-base);display:flex;flex-direction:column;align-items:center;justify-content:center}.paykka-card-checkout-qr-code-modal__icon{height:22px}.paykka-card-checkout-qr-code-modal__qr-code{margin-top:var(--paykka-spacing-small-5);width:180px;height:180px;border-radius:var(--paykka-border-radius-small);background-color:#fff;overflow:hidden;display:flex;align-items:center;justify-content:center}.paykka-card-checkout-qr-code-modal__expired-time{margin-top:var(--paykka-spacing-small-5);font-size:var(--paykka-font-size-small);text-align:center}.paykka-card-checkout-qr-code-modal__expired-time-text{font-size:var(--paykka-font-size-small);text-align:center}.paykka-card-checkout-qr-code-modal__amount{font-size:var(--paykka-font-size-large-3);color:var(--paykka-font-color);font-weight:550}.paykka-card-checkout-qr-code-modal__qr-code-container{position:relative}.paykka-card-checkout-qr-code-modal__round-border{margin-top:var(--paykka-spacing-small-5);width:180px;height:180px;position:absolute;top:0;left:0}.paykka-card-checkout-qr-code-modal__round-border-item{width:20px;height:20px;border-top:2px solid #000000;border-left:2px solid #000000;position:absolute}.paykka-card-checkout-qr-code-modal__round-border-item:nth-child(1){top:0;left:0}.paykka-card-checkout-qr-code-modal__round-border-item:nth-child(2){transform:rotate(90deg);top:0;right:0}.paykka-card-checkout-qr-code-modal__round-border-item:nth-child(3){transform:rotate(180deg);bottom:0;right:0}.paykka-card-checkout-qr-code-modal__round-border-item:nth-child(4){transform:rotate(270deg);bottom:0;left:0}.paykka-card-checkout-gcash{min-width:var(--paykka-form-min-width);display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-gcash{gap:var(--paykka-spacing-base)}}.paykka-card-checkout-gcash__footer-wrapper{display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5);margin-top:var(--paykka-spacing-small-5)}.paykka-card-checkout-paymaya{min-width:var(--paykka-form-min-width);display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-paymaya{gap:var(--paykka-spacing-base)}}.paykka-card-checkout-paymaya__footer-wrapper{display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5);margin-top:var(--paykka-spacing-small-5)}.paykka-card-checkout-zalopay{min-width:var(--paykka-form-min-width);display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-zalopay{gap:var(--paykka-spacing-base)}}.paykka-card-checkout-zalopay__footer-wrapper{display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5);margin-top:var(--paykka-spacing-small-5)}.paykka-card-checkout-vietqr{min-width:var(--paykka-form-min-width)}.paykka-card-checkout-vietqr__field{margin-bottom:var(--paykka-spacing-small-4)}@media (min-width: 480px){.paykka-card-checkout-vietqr__field{margin-bottom:var(--paykka-spacing-base)}}.paykka-card-checkout-vietqr__button{margin-top:var(--paykka-spacing-small-4);transition:margin-top .1s cubic-bezier(.4,0,.2,1)}@media (min-width: 480px){.paykka-card-checkout-vietqr__button{margin-top:var(--paykka-spacing-base)}}.paykka-card-checkout-pix{min-width:var(--paykka-form-min-width);display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-pix{gap:var(--paykka-spacing-base)}}.paykka-card-checkout-pix__footer-wrapper{display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5);margin-top:var(--paykka-spacing-small-5)}.paykka-card-checkout-pic-pay{min-width:var(--paykka-form-min-width);display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-pic-pay{gap:var(--paykka-spacing-base)}}.paykka-card-checkout-pic-pay__footer-wrapper{display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5);margin-top:var(--paykka-spacing-small-5)}.paykka-card-checkout-opay-wallet{min-width:var(--paykka-form-min-width);display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-opay-wallet{gap:var(--paykka-spacing-base)}}.paykka-card-checkout-opay-wallet__footer-wrapper{display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5);margin-top:var(--paykka-spacing-small-5)}.paykka-card-checkout-paga-wallet{min-width:var(--paykka-form-min-width);display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-paga-wallet{gap:var(--paykka-spacing-base)}}.paykka-card-checkout-paga-wallet__footer-wrapper{display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5);margin-top:var(--paykka-spacing-small-5)}.paykka-card-checkout-payment-tabs{display:flex;flex-wrap:nowrap;justify-content:flex-start;column-gap:6px}.paykka-card-checkout-payment-tabs__tab{border:2px solid #E1E1E5;padding:12px;border-radius:12px;width:calc((100% - 12px) / 3)}@media (min-width: 480px){.paykka-card-checkout-payment-tabs__tab{padding:16px}}.paykka-card-checkout-payment-tabs__name{color:#626266}.paykka-card-checkout-drop-in__header-payment{margin-bottom:var(--paykka-field-label-spacing)}.paykka-card-checkout-drop-in__other{display:flex;justify-content:center;align-items:center;margin-top:var(--paykka-spacing-large-1);margin-bottom:var(--paykka-spacing-large-1)}@media (min-width: 480px){.paykka-card-checkout-drop-in__other{margin-top:var(--paykka-spacing-large-5);margin-bottom:var(--paykka-spacing-large-5)}}.paykka-card-checkout-drop-in__accordion-icon{display:flex;align-items:center}.paykka-card-checkout-drop-in__other-text{margin:0 var(--paykka-spacing-small-5);color:var(--paykka-sub-font-color-2)}.paykka-card-checkout-drop-in__other-line{background-color:var(--paykka-border-color);flex-grow:.5;height:1px}.paykka-card-checkout-drop-in__tabs-wrapper{margin-bottom:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-drop-in__tabs-wrapper{margin-bottom:var(--paykka-spacing-large-1)}}.paykka-card-checkout-drop-in__accordion-icon{margin-right:var(--paykka-spacing-small-3)}:root{--paykka-primary-color: #4F43DF;--paykka-primary-color-hover: #3f33bb;--paykka-primary-color-active: #312498;--paykka-success-color: #00B42A;--paykka-error-color: #F53F3F;--paykka-error-bg-color: #FFECE8;--paykka-gray1-color: #E1E1E5;--paykka-gray2-color: #A9A9A9;--paykka-gray3-color: #626266;--paykka-gray4-color: #D9D9D9;--paykka-border-radius-mini: 2px;--paykka-border-radius-small: 4px;--paykka-border-radius-base: 8px;--paykka-border-radius-large: 12px;--paykka-font-size-mini: 12px;--paykka-font-size-small: 14px;--paykka-font-size-base: 16px;--paykka-font-size-large: 18px;--paykka-font-size-large-2: 20px;--paykka-font-size-large-3: 22px;--paykka-font-color: #1F1F1F;--paykka-sub-font-color-1: #626266;--paykka-sub-font-color-2: #6E6E7E;--paykka-placeholder-color: #C2C2C2;--paykka-border-color: var(--paykka-gray1-color);--paykka-spacing-small-1: 4px;--paykka-spacing-small-2: 8px;--paykka-spacing-small-3: 12px;--paykka-spacing-small-4: 14px;--paykka-spacing-small-5: 16px;--paykka-spacing-base: 20px;--paykka-spacing-large-1: 24px;--paykka-spacing-large-2: 28px;--paykka-spacing-large-3: 32px;--paykka-spacing-large-4: 36px;--paykka-spacing-large-5: 40px;--paykka-button-bg-color: var(--paykka-primary-color);--paykka-button-bg-color-hover: var(--paykka-primary-color-hover);--paykka-button-bg-color-active: var(--paykka-primary-color-active);--paykka-button-font-color: #FFFFFF;--paykka-field-label-spacing: 10px;--paykka-field-padding: var(--paykka-spacing-small-2) 0;--paykka-field-box-shadow: 0 0 0 1px var(--paykka-primary-color);--paykka-field-item-height: 44px;--paykka-field-bg-color: #FFFFFF;--paykka-field-disabled-bg-color: #F5F5F7;--paykka-field-font-color: var(--paykka-font-color);--apple-pay-button-width: 100%;--apple-pay-button-height: var(--paykka-field-item-height);--apple-pay-button-border-radius: var(--paykka-border-radius-base);--apple-pay-button-padding: 0px 0px;--apple-pay-button-box-sizing: border-box;--paykka-drop-in-title-color: var(--paykka-gray3-color);--paykka-modal-mask-bg-color: rgba(0, 0, 0, .4);--paykka-form-min-width: 250px}.paykka-card-checkout ::-webkit-scrollbar{height:6px;width:6px}.paykka-card-checkout ::-webkit-scrollbar-thumb{background-color:#00000040;border-radius:4px}.paykka-card-checkout ::-webkit-scrollbar-button{display:none!important}.paykka-card-checkout ::-moz-scrollbar-button{display:none!important}.paykka-card-checkout-accordion-item{border:1px solid var(--paykka-border-color);border-radius:var(--paykka-border-radius-base);margin-bottom:var(--paykka-spacing-small-4);padding:0 var(--paykka-spacing-small-4);transition:all .3s linear}@media (min-width: 480px){.paykka-card-checkout-accordion-item{padding:0 var(--paykka-spacing-small-5)}}.paykka-card-checkout-accordion-item--disabled{cursor:not-allowed;opacity:.4}.paykka-card-checkout-accordion-item__header{cursor:pointer;display:flex;align-items:center;padding-top:var(--paykka-spacing-small-4);padding-bottom:var(--paykka-spacing-small-4);font-size:var(--paykka-font-size-small);line-height:20px;transition:all .3s linear}@media (min-width: 480px){.paykka-card-checkout-accordion-item__header{padding-top:var(--paykka-spacing-small-5);padding-bottom:var(--paykka-spacing-small-5);font-size:var(--paykka-font-size-base);line-height:22px}}.paykka-card-checkout-accordion-item__title{font-size:var(--paykka-font-size-base);line-height:22px;color:var(--paykka-drop-in-title-color)}.paykka-card-checkout-accordion-item__title--active{color:var(--paykka-primary-color)}.paykka-card-checkout-accordion-item__content{max-height:0;opacity:0;overflow:hidden}.paykka-card-checkout-accordion-item__content--active{opacity:1;padding-bottom:var(--paykka-spacing-small-3)}@media (min-width: 480px){.paykka-card-checkout-accordion-item__content--active{padding-bottom:var(--paykka-spacing-small-5)}}
1
+ @charset "UTF-8";.paykka-card-checkout,.paykka-card-checkout *{box-sizing:border-box}.paykka-card-checkout-ali-pay{min-width:var(--paykka-form-min-width);display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-ali-pay{gap:var(--paykka-spacing-base)}}.paykka-card-checkout-ali-pay__footer-wrapper{display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5);margin-top:var(--paykka-spacing-small-5)}.paykka-card-checkout-address-field__first-item .paykka-card-checkout-input__input-wrapper{padding:var(--paykka-field-padding)}.paykka-card-checkout-address-field__first-item .paykka-card-checkout-input__input-wrapper:active,.paykka-card-checkout-address-field__first-item .paykka-card-checkout-input__input-wrapper--focus,.paykka-card-checkout-address-field__first-item .paykka-card-checkout-input__input-wrapper:focus{position:relative;z-index:1}.paykka-card-checkout-address-field__first-item--no-bottom-radius .paykka-card-checkout-input__input-wrapper{border-bottom-right-radius:0;border-bottom-left-radius:0}.paykka-card-checkout-address-field__mid-item .paykka-card-checkout-input__input-wrapper{padding:var(--paykka-field-padding);border-radius:0;border-top:0}.paykka-card-checkout-address-field__mid-item .paykka-card-checkout-input__input-wrapper:active,.paykka-card-checkout-address-field__mid-item .paykka-card-checkout-input__input-wrapper--focus,.paykka-card-checkout-address-field__mid-item .paykka-card-checkout-input__input-wrapper:focus{position:relative;z-index:1;border-top:1px solid var(--paykka-primary-color);box-shadow:var(--paykka-field-box-shadow)}.paykka-card-checkout-address-field__last-item .paykka-card-checkout-input__input-wrapper{padding:var(--paykka-field-padding);border-top-right-radius:0;border-top-left-radius:0;border-top:0}.paykka-card-checkout-address-field__last-item .paykka-card-checkout-input__input-wrapper:active,.paykka-card-checkout-address-field__last-item .paykka-card-checkout-input__input-wrapper--focus,.paykka-card-checkout-address-field__last-item .paykka-card-checkout-input__input-wrapper:focus{position:relative;z-index:1;border-top:1px solid var(--paykka-primary-color);box-shadow:var(--paykka-field-box-shadow)}.paykka-card-checkout-form-item{font-size:var(--paykka-font-size-base)}.paykka-card-checkout-form-item__label{margin-bottom:var(--paykka-spacing-small-2);transition:margin-bottom .1s cubic-bezier(.4,0,.2,1);-webkit-user-select:none;user-select:none;line-height:23px}@media (min-width: 480px){.paykka-card-checkout-form-item__label{margin-bottom:var(--paykka-spacing-small-3)}}.paykka-card-checkout-form-item__error-text{margin-top:var(--paykka-spacing-small-1);color:var(--paykka-error-color);font-size:var(--paykka-font-size-small)}.paykka-card-checkout-input{position:relative;box-sizing:border-box;font-size:var(--paykka-font-size-base)}.paykka-card-checkout-input__input-wrapper{display:flex;align-items:center;height:var(--paykka-field-item-height);width:100%;border-radius:var(--paykka-border-radius-base);border:1px solid var(--paykka-border-color);transition:border .2s cubic-bezier(.4,0,.2,1),box-shadow .2s cubic-bezier(.4,0,.2,1);background-color:var(--paykka-field-bg-color);caret-color:var(--paykka-card-checkout-input-color, #4F43DF)}.paykka-card-checkout-input__input-wrapper--error{border:1px solid var(--paykka-error-color)}.paykka-card-checkout-input__input-wrapper:active,.paykka-card-checkout-input__input-wrapper--focus,.paykka-card-checkout-input__input-wrapper:focus{border:1px solid var(--paykka-primary-color);box-shadow:0 0 0 1px var(--paykka-primary-color)}.paykka-card-checkout-input__input-wrapper-disabled{cursor:not-allowed;background:var(--paykka-field-disabled-bg-color)}.paykka-card-checkout-input__input-wrapper-disabled:active,.paykka-card-checkout-input__input-wrapper-disabled--focus,.paykka-card-checkout-input__input-wrapper-disabled:focus{border:1px solid var(--paykka-field-disabled-bg-color);box-shadow:0 0 0 2px var(--paykka-field-disabled-bg-color)}.paykka-card-checkout-input__input{outline:none;border:none;height:100%;width:100%;border-radius:var(--paykka-border-radius-base);caret-color:var(--paykka-primary-color);font-size:var(--paykka-font-size-base);padding-left:var(--paykka-spacing-small-3);background-color:transparent}.paykka-card-checkout-input__input::placeholder{color:var(--paykka-placeholder-color)}.paykka-card-checkout-input__input:-webkit-autofill,.paykka-card-checkout-input__input:-internal-autofill-selected{background-color:transparent!important}.paykka-card-checkout-input__right-icon{padding-right:var(--paykka-spacing-small-3);display:flex;align-items:center;flex-shrink:0;margin-left:var(--paykka-spacing-small-3)}.paykka-card-checkout-input__left-icon{padding-left:var(--paykka-spacing-small-3);display:flex;align-items:center;flex-shrink:0;margin-right:var(--paykka-spacing-small-3)}.paykka-card-checkout-select{color:var(--paykka-field-font-color)}.paykka-card-checkout-select__wrapper{width:100%;position:relative;cursor:pointer}.paykka-card-checkout-select__render-label{position:absolute;top:0;z-index:2;line-height:var(--paykka-field-item-height);height:var(--paykka-field-item-height);padding:0 var(--paykka-spacing-small-3);display:flex;color:var(--paykka-field-font-color)}.paykka-card-checkout-select__render-label--placeholder{color:#c2c2c2}.paykka-card-checkout-select__render-label--hidden{visibility:hidden}.paykka-card-checkout-select__menu{margin-top:4px;width:100%;max-height:260px;background:var(--paykka-field-bg-color);box-shadow:0 4px 14px #0000001a;border-radius:var(--paykka-border-radius-base);border:1px solid var(--paykka-border-color);overflow-y:auto;z-index:999;position:absolute}.paykka-card-checkout-select__menu-item{padding:6px 12px;line-height:32px;color:#626266;cursor:pointer;display:flex;justify-content:space-between}.paykka-card-checkout-select__menu-item:hover,.paykka-card-checkout-select__menu-item:active,.paykka-card-checkout-select__menu-item--selected,.paykka-card-checkout-select__menu-item:focus{color:var(--paykka-font-color);background:#f3f3f5}.paykka-card-checkout-select__menu-item-icon{margin-left:10px;display:flex;align-items:center}.paykka-card-checkout-select__menu-no-data{height:200px;display:flex;justify-content:center;align-items:center;color:#c2c2c2}.paykka-card-checkout-info{display:flex;align-items:center;padding:var(--paykka-spacing-small-3) var(--paykka-spacing-small-5);border-radius:var(--paykka-border-radius-base)}.paykka-card-checkout-info--error{background-color:#ffece8}.paykka-card-checkout-info__icon{margin-right:var(--paykka-spacing-small-2);height:1.3em;display:flex;align-items:center}.paykka-card-checkout-info__content{text-align:justify;word-break:break-all}.paykka-card-checkout-recurring-tip{display:flex;align-items:center;color:var(--paykka-gray2-color)}.paykka-card-checkout-recurring-tip__icon{width:20px;display:flex;padding-top:var(--paykka-spacing-small-1);padding-right:var(--paykka-spacing-small-1)}.paykka-card-checkout-recurring-tip__text{font-size:var(--paykka-font-size-small)}.paykka-card-checkout-submit-button--success{opacity:1!important;background-color:var(--paykka-success-color)!important}.paykka-card-checkout-submit-button__text{line-height:1}.paykka-card-checkout-submit-button__text--not-verified{opacity:.6;color:var(--paykka-button-font-color)}.paykka-card-checkout-button{display:flex;align-items:center;justify-content:center;width:100%;height:var(--paykka-field-item-height);padding:0 var(--paykka-spacing-small-3);border-radius:var(--paykka-border-radius-base);border:0;background-color:var(--paykka-button-bg-color);color:var(--paykka-button-font-color);font-size:var(--paykka-font-size-base);cursor:pointer;text-decoration:none;transition:background-color .3s cubic-bezier(.4,0,.2,1)}.paykka-card-checkout-button:not(.paykka-card-checkout-button--loading).paykka-card-checkout-button:not(.paykka-card-checkout-button--disabled).paykka-card-checkout-button:not(.paykka-card-checkout-button--dashed):hover{background-color:var(--paykka-button-bg-color-hover)}.paykka-card-checkout-button:not(.paykka-card-checkout-button--loading).paykka-card-checkout-button:not(.paykka-card-checkout-button--disabled).paykka-card-checkout-button:not(.paykka-card-checkout-button--dashed):active{background-color:var(--paykka-button-bg-color-active)}.paykka-card-checkout-button--loading{cursor:wait}.paykka-card-checkout-button--disabled{cursor:not-allowed;opacity:.5}.paykka-card-checkout-button--dashed{border:1px dashed var(--paykka-border-color);color:var(--paykka-font-color);background-color:transparent}.paykka-card-checkout-button__icon{display:flex;align-items:center;margin-right:var(--paykka-spacing-small-3)}.paykka-card-checkout-loading-check{display:inline-flex;align-items:center;overflow:hidden;--circle-transition-time: .3s;--check-dashoffset: 50}.paykka-card-checkout-loading-check__circle{transition:stroke-dasharray var(--circle-transition-time) linear}.paykka-card-checkout-loading-check__circle--loading{animation:spin 1s infinite linear;transform-origin:center}.paykka-card-checkout-loading-check__check{stroke-dasharray:var(--check-dashoffset);stroke-dashoffset:var(--check-dashoffset);animation:tick .5s ease-out;animation-fill-mode:forwards;animation-delay:var(--circle-transition-time)}@keyframes tick{0%{stroke-dashoffset:var(--check-dashoffset)}to{stroke-dashoffset:0}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.paykka-card-checkout-card{min-width:var(--paykka-form-min-width);display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-card{gap:var(--paykka-spacing-base)}}.paykka-card-checkout-card__center{display:flex;justify-content:space-between}.paykka-card-checkout-card__center>div{width:calc((100% - var(--paykka-spacing-small-5)) / 2);transition:width .1s cubic-bezier(.4,0,.2,1)}@media (min-width: 480px){.paykka-card-checkout-card__center>div{width:calc((100% - var(--paykka-spacing-large-3)) / 2)}}.paykka-card-checkout-card__footer-wrapper{display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5);margin-top:var(--paykka-spacing-small-5)}.paykka-card-checkout-card__card-brands{margin-top:var(--paykka-spacing-small-2)}.paykka-card-checkout-card__card-number-wrapper{position:relative}.paykka-card-checkout-card__change-box{display:flex;align-items:center;color:#4f43df;font-size:var(--paykka-font-size-small);position:absolute;top:0;right:0;cursor:pointer}.paykka-card-checkout-card__card-selector-wrapper{display:flex;justify-content:space-between;flex-wrap:wrap;row-gap:var(--paykka-spacing-base);column-gap:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-card__card-selector-wrapper{gap:var(--paykka-spacing-base)}}.paykka-card-checkout-card__card-selector{flex:2;min-width:250px}.paykka-card-checkout-card__card-security-code{flex:1}.paykka-card-checkout-card-brands{display:flex;flex-wrap:wrap;gap:6px}.paykka-card-checkout-card-brands__more{line-height:32px;font-size:13px;color:var(--paykka-sub-font-color-1)}.paykka-card-checkout-card-selector{color:var(--paykka-font-color)}.paykka-card-checkout-card-selector__action{padding:var(--paykka-spacing-small-2) var(--paykka-spacing-small-3)}.paykka-card-checkout-card-selector__label{display:flex;align-items:center}.paykka-card-checkout-card-selector__card-no{margin-left:var(--paykka-spacing-small-3);color:var(--paykka-font-color)}.paykka-card-checkout-card-selector__change{display:flex;align-items:center;color:var(--paykka-primary-color);font-size:var(--paykka-font-size-small)}.paykka-card-checkout-card-no{color:var(--paykka-font-color)}.paykka-card-checkout-card-no__wrapper{display:flex;align-items:center}.paykka-card-checkout-card-no__dot{width:4px;height:4px;background:currentColor;margin-right:var(--paykka-spacing-small-1);border-radius:50%}.paykka-card-checkout-card-no__card-no{margin-left:var(--paykka-spacing-small-1)}.paykka-card-checkout-check-box{display:inline-flex;align-items:center;font-size:var(--paykka-font-size-small);background-color:transparent;cursor:pointer}.paykka-card-checkout-check-box:hover .paykka-card-checkout-check-box__inner{border-color:var(--paykka-primary-color)}.paykka-card-checkout-check-box--checked .paykka-card-checkout-check-box__inner{border-color:var(--paykka-primary-color);background-color:var(--paykka-primary-color)}.paykka-card-checkout-check-box__inner{width:14px;height:14px;border:1px solid var(--paykka-border-color);border-radius:var(--paykka-border-radius-mini);margin-right:var(--paykka-spacing-small-2);transition:border-color .2s cubic-bezier(.4,0,.2,1);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.paykka-card-checkout-modal{position:fixed;left:0;right:0;top:0;bottom:0;z-index:9999;display:flex;flex-direction:column;align-items:center;justify-content:center}.paykka-card-checkout-modal__mask{position:fixed;left:0;right:0;top:0;bottom:0;background-color:var(--paykka-modal-mask-bg-color)}.paykka-card-checkout-modal__content{position:relative;z-index:9999;border-radius:var(--paykka-border-radius-base);background-color:#fff;box-shadow:0 8px 16px -8px #00000014,0 12px 32px #0000000f,0 16px 48px 16px #0000000a;display:flex;flex-direction:column}.paykka-card-checkout-modal__close{cursor:pointer;right:0;position:absolute;transform:translateY(-150%);color:var(--paykka-gray4-color)}.paykka-card-checkout-modal__close:hover{color:#fff}.paykka-card-checkout-modal__body{flex:1;padding:var(--paykka-spacing-small-5);overflow-y:hidden}@media (min-width: 480px){.paykka-card-checkout-modal__body{padding:var(--paykka-spacing-large-1)}}.paykka-card-checkout-three-ds-auth__content{height:100%}.paykka-card-checkout-three-ds-auth__last-three-ds{width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;overflow-y:auto}.paykka-card-checkout-three-ds-auth__last-three-ds-title{margin-top:var(--paykka-spacing-base);margin-bottom:var(--paykka-spacing-large-5);color:var(--paykka-font-color);font-size:var(--paykka-font-size-large-2);font-weight:700;text-align:center}.paykka-card-checkout-three-ds-auth__last-three-ds-icon{flex-shrink:0}.paykka-card-checkout-three-ds-auth__three-ds-iframe{display:block;border-radius:var(--paykka-border-radius-base)}.paykka-card-checkout-combined-card-info{width:100%;height:100%;display:flex}.paykka-card-checkout-combined-card-info__card-number{flex:1}.paykka-card-checkout-combined-card-info__expire-date{width:100px}.paykka-card-checkout-combined-card-info__cvv{width:60px}.paykka-card-checkout-combined-card-info__blank-icon{width:16px;height:16px}.paykka-card-checkout-wechat-pay{min-width:var(--paykka-form-min-width);display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-wechat-pay{gap:var(--paykka-spacing-base)}}.paykka-card-checkout-wechat-pay__footer-wrapper{display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5);margin-top:var(--paykka-spacing-small-5)}.paykka-card-checkout-apple-pay__error{margin-bottom:var(--paykka-spacing-small-5);transition:margin-bottom .1s cubic-bezier(.4,0,.2,1)}@media (min-width: 480px){.paykka-card-checkout-apple-pay__error{margin-bottom:var(--paykka-spacing-base)}}.paykka-card-checkout-apple-pay__button{width:100%;display:flex;align-items:center;justify-content:center;height:var(--paykka-field-item-height)}.paykka-card-checkout-google-pay__error{margin-bottom:var(--paykka-spacing-small-5);transition:margin-bottom .1s cubic-bezier(.4,0,.2,1)}@media (min-width: 480px){.paykka-card-checkout-google-pay__error{margin-bottom:var(--paykka-spacing-base)}}.paykka-card-checkout-sepa{min-width:var(--paykka-form-min-width)}.paykka-card-checkout-sepa__field{margin-bottom:var(--paykka-spacing-large-1)}.paykka-card-checkout-sepa__holder-name{padding-bottom:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-sepa__holder-name{padding-bottom:var(--paykka-spacing-base)}}.paykka-card-checkout-sepa__button{margin-top:var(--paykka-spacing-small-5);transition:margin-top .1s cubic-bezier(.4,0,.2,1)}@media (min-width: 480px){.paykka-card-checkout-sepa__button{margin-top:var(--paykka-spacing-base)}}.paykka-card-checkout-boost{min-width:var(--paykka-form-min-width);display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-boost{gap:var(--paykka-spacing-base)}}.paykka-card-checkout-boost__footer-wrapper{display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5);margin-top:var(--paykka-spacing-small-5)}.paykka-card-checkout-guide-card{border:1px solid var(--paykka-border-color);border-radius:var(--paykka-border-radius-large);padding:var(--paykka-spacing-small-5);margin-bottom:var(--paykka-spacing-large-1)}@media (min-width: 480px){.paykka-card-checkout-guide-card{padding:var(--paykka-spacing-small-5);margin-bottom:var(--paykka-spacing-large-3)}}.paykka-card-checkout-guide-card__content{display:flex;align-items:center}.paykka-card-checkout-guide-card__icon{flex-shrink:0}.paykka-card-checkout-guide-card__description{color:var(--paykka-gray2-color);font-size:var(--paykka-font-size-small);margin-left:var(--paykka-spacing-small-3)}.paykka-card-checkout-guide-card svg{display:block}.paykka-card-checkout-nine-pay{min-width:var(--paykka-form-min-width);display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-nine-pay{gap:var(--paykka-spacing-base)}}.paykka-card-checkout-nine-pay__footer-wrapper{display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5);margin-top:var(--paykka-spacing-small-5)}.paykka-card-checkout-line-pay{min-width:var(--paykka-form-min-width);display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-line-pay{gap:var(--paykka-spacing-base)}}.paykka-card-checkout-line-pay__footer-wrapper{display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5);margin-top:var(--paykka-spacing-small-5)}.paykka-card-checkout-tng-wallet{min-width:var(--paykka-form-min-width);display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-tng-wallet{gap:var(--paykka-spacing-base)}}.paykka-card-checkout-tng-wallet__footer-wrapper{display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5);margin-top:var(--paykka-spacing-small-5)}.paykka-card-checkout-may-bank-qr-pay{min-width:var(--paykka-form-min-width);display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-may-bank-qr-pay{gap:var(--paykka-spacing-base)}}.paykka-card-checkout-may-bank-qr-pay__footer-wrapper{display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5);margin-top:var(--paykka-spacing-small-5)}.paykka-card-checkout-shopee-pay{min-width:var(--paykka-form-min-width);display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-shopee-pay{gap:var(--paykka-spacing-base)}}.paykka-card-checkout-shopee-pay__footer-wrapper{display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5);margin-top:var(--paykka-spacing-small-5)}.paykka-card-checkout-grab-pay{min-width:var(--paykka-form-min-width);display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-grab-pay{gap:var(--paykka-spacing-base)}}.paykka-card-checkout-grab-pay__footer-wrapper{display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5);margin-top:var(--paykka-spacing-small-5)}.paykka-card-checkout-qr-code-modal{padding-top:var(--paykka-spacing-base);display:flex;flex-direction:column;align-items:center;justify-content:center}.paykka-card-checkout-qr-code-modal__container{width:208px}.paykka-card-checkout-qr-code-modal__title{font-size:var(--paykka-font-size-large);font-weight:550;text-align:center}.paykka-card-checkout-qr-code-modal__body{margin:var(--paykka-spacing-base) 0;padding:var(--paykka-spacing-small-5);border-radius:var(--paykka-border-radius-base);display:flex;flex-direction:column;align-items:center;justify-content:center}.paykka-card-checkout-qr-code-modal__icon{height:22px}.paykka-card-checkout-qr-code-modal__qr-code{margin-top:var(--paykka-spacing-small-5);width:180px;height:180px;border-radius:var(--paykka-border-radius-small);background-color:#fff;overflow:hidden;display:flex;align-items:center;justify-content:center}.paykka-card-checkout-qr-code-modal__expired-time{margin-top:var(--paykka-spacing-small-5);font-size:var(--paykka-font-size-small);text-align:center}.paykka-card-checkout-qr-code-modal__expired-time-text{font-size:var(--paykka-font-size-small);text-align:center}.paykka-card-checkout-qr-code-modal__amount{font-size:var(--paykka-font-size-large-3);color:var(--paykka-font-color);font-weight:550}.paykka-card-checkout-qr-code-modal__qr-code-container{position:relative}.paykka-card-checkout-qr-code-modal__round-border{margin-top:var(--paykka-spacing-small-5);width:180px;height:180px;position:absolute;top:0;left:0}.paykka-card-checkout-qr-code-modal__round-border-item{width:20px;height:20px;border-top:2px solid #000000;border-left:2px solid #000000;position:absolute}.paykka-card-checkout-qr-code-modal__round-border-item:nth-child(1){top:0;left:0}.paykka-card-checkout-qr-code-modal__round-border-item:nth-child(2){transform:rotate(90deg);top:0;right:0}.paykka-card-checkout-qr-code-modal__round-border-item:nth-child(3){transform:rotate(180deg);bottom:0;right:0}.paykka-card-checkout-qr-code-modal__round-border-item:nth-child(4){transform:rotate(270deg);bottom:0;left:0}.paykka-card-checkout-gcash{min-width:var(--paykka-form-min-width);display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-gcash{gap:var(--paykka-spacing-base)}}.paykka-card-checkout-gcash__footer-wrapper{display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5);margin-top:var(--paykka-spacing-small-5)}.paykka-card-checkout-paymaya{min-width:var(--paykka-form-min-width);display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-paymaya{gap:var(--paykka-spacing-base)}}.paykka-card-checkout-paymaya__footer-wrapper{display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5);margin-top:var(--paykka-spacing-small-5)}.paykka-card-checkout-zalopay{min-width:var(--paykka-form-min-width);display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-zalopay{gap:var(--paykka-spacing-base)}}.paykka-card-checkout-zalopay__footer-wrapper{display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5);margin-top:var(--paykka-spacing-small-5)}.paykka-card-checkout-vietqr{min-width:var(--paykka-form-min-width)}.paykka-card-checkout-vietqr__field{margin-bottom:var(--paykka-spacing-small-4)}@media (min-width: 480px){.paykka-card-checkout-vietqr__field{margin-bottom:var(--paykka-spacing-base)}}.paykka-card-checkout-vietqr__button{margin-top:var(--paykka-spacing-small-4);transition:margin-top .1s cubic-bezier(.4,0,.2,1)}@media (min-width: 480px){.paykka-card-checkout-vietqr__button{margin-top:var(--paykka-spacing-base)}}.paykka-card-checkout-pix{min-width:var(--paykka-form-min-width);display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-pix{gap:var(--paykka-spacing-base)}}.paykka-card-checkout-pix__footer-wrapper{display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5);margin-top:var(--paykka-spacing-small-5)}.paykka-card-checkout-tip{display:flex;color:var(--paykka-gray2-color);align-items:center;gap:var(--paykka-spacing-small-1)}.paykka-card-checkout-tip__icon{display:flex}.paykka-card-checkout-tip__text{font-size:var(--paykka-font-size-small)}.paykka-card-checkout-pic-pay{min-width:var(--paykka-form-min-width);display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-pic-pay{gap:var(--paykka-spacing-base)}}.paykka-card-checkout-pic-pay__footer-wrapper{display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5);margin-top:var(--paykka-spacing-small-5)}.paykka-card-checkout-opay-wallet{min-width:var(--paykka-form-min-width);display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-opay-wallet{gap:var(--paykka-spacing-base)}}.paykka-card-checkout-opay-wallet__footer-wrapper{display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5);margin-top:var(--paykka-spacing-small-5)}.paykka-card-checkout-paga-wallet{min-width:var(--paykka-form-min-width);display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-paga-wallet{gap:var(--paykka-spacing-base)}}.paykka-card-checkout-paga-wallet__footer-wrapper{display:flex;flex-direction:column;gap:var(--paykka-spacing-small-5);margin-top:var(--paykka-spacing-small-5)}.paykka-card-checkout-payment-tabs{display:flex;flex-wrap:nowrap;justify-content:flex-start;column-gap:6px}.paykka-card-checkout-payment-tabs__tab{border:2px solid #E1E1E5;padding:12px;border-radius:12px;width:calc((100% - 12px) / 3)}@media (min-width: 480px){.paykka-card-checkout-payment-tabs__tab{padding:16px}}.paykka-card-checkout-payment-tabs__name{color:#626266}.paykka-card-checkout-drop-in__header-payment{margin-bottom:var(--paykka-field-label-spacing)}.paykka-card-checkout-drop-in__other{display:flex;justify-content:center;align-items:center;margin-top:var(--paykka-spacing-large-1);margin-bottom:var(--paykka-spacing-large-1)}@media (min-width: 480px){.paykka-card-checkout-drop-in__other{margin-top:var(--paykka-spacing-large-5);margin-bottom:var(--paykka-spacing-large-5)}}.paykka-card-checkout-drop-in__accordion-icon{display:flex;align-items:center}.paykka-card-checkout-drop-in__other-text{margin:0 var(--paykka-spacing-small-5);color:var(--paykka-sub-font-color-2)}.paykka-card-checkout-drop-in__other-line{background-color:var(--paykka-border-color);flex-grow:.5;height:1px}.paykka-card-checkout-drop-in__tabs-wrapper{margin-bottom:var(--paykka-spacing-small-5)}@media (min-width: 480px){.paykka-card-checkout-drop-in__tabs-wrapper{margin-bottom:var(--paykka-spacing-large-1)}}.paykka-card-checkout-drop-in__accordion-icon{margin-right:var(--paykka-spacing-small-3)}:root{--paykka-primary-color: #4F43DF;--paykka-primary-color-hover: #3f33bb;--paykka-primary-color-active: #312498;--paykka-success-color: #00B42A;--paykka-error-color: #F53F3F;--paykka-error-bg-color: #FFECE8;--paykka-gray1-color: #E1E1E5;--paykka-gray2-color: #A9A9A9;--paykka-gray3-color: #626266;--paykka-gray4-color: #D9D9D9;--paykka-border-radius-mini: 2px;--paykka-border-radius-small: 4px;--paykka-border-radius-base: 8px;--paykka-border-radius-large: 12px;--paykka-font-size-mini: 12px;--paykka-font-size-small: 14px;--paykka-font-size-base: 16px;--paykka-font-size-large: 18px;--paykka-font-size-large-2: 20px;--paykka-font-size-large-3: 22px;--paykka-font-color: #1F1F1F;--paykka-sub-font-color-1: #626266;--paykka-sub-font-color-2: #6E6E7E;--paykka-placeholder-color: #C2C2C2;--paykka-border-color: var(--paykka-gray1-color);--paykka-spacing-small-1: 4px;--paykka-spacing-small-2: 8px;--paykka-spacing-small-3: 12px;--paykka-spacing-small-4: 14px;--paykka-spacing-small-5: 16px;--paykka-spacing-base: 20px;--paykka-spacing-large-1: 24px;--paykka-spacing-large-2: 28px;--paykka-spacing-large-3: 32px;--paykka-spacing-large-4: 36px;--paykka-spacing-large-5: 40px;--paykka-button-bg-color: var(--paykka-primary-color);--paykka-button-bg-color-hover: var(--paykka-primary-color-hover);--paykka-button-bg-color-active: var(--paykka-primary-color-active);--paykka-button-font-color: #FFFFFF;--paykka-field-label-spacing: 10px;--paykka-field-padding: var(--paykka-spacing-small-2) 0;--paykka-field-box-shadow: 0 0 0 1px var(--paykka-primary-color);--paykka-field-item-height: 44px;--paykka-field-bg-color: #FFFFFF;--paykka-field-disabled-bg-color: #F5F5F7;--paykka-field-font-color: var(--paykka-font-color);--apple-pay-button-width: 100%;--apple-pay-button-height: var(--paykka-field-item-height);--apple-pay-button-border-radius: var(--paykka-border-radius-base);--apple-pay-button-padding: 0px 0px;--apple-pay-button-box-sizing: border-box;--paykka-drop-in-title-color: var(--paykka-gray3-color);--paykka-modal-mask-bg-color: rgba(0, 0, 0, .4);--paykka-form-min-width: 250px}.paykka-card-checkout ::-webkit-scrollbar{height:6px;width:6px}.paykka-card-checkout ::-webkit-scrollbar-thumb{background-color:#00000040;border-radius:4px}.paykka-card-checkout ::-webkit-scrollbar-button{display:none!important}.paykka-card-checkout ::-moz-scrollbar-button{display:none!important}.paykka-card-checkout-accordion-item{border:1px solid var(--paykka-border-color);border-radius:var(--paykka-border-radius-base);margin-bottom:var(--paykka-spacing-small-4);padding:0 var(--paykka-spacing-small-4);transition:all .3s linear}@media (min-width: 480px){.paykka-card-checkout-accordion-item{padding:0 var(--paykka-spacing-small-5)}}.paykka-card-checkout-accordion-item--disabled{cursor:not-allowed;opacity:.4}.paykka-card-checkout-accordion-item__header{cursor:pointer;display:flex;align-items:center;padding-top:var(--paykka-spacing-small-4);padding-bottom:var(--paykka-spacing-small-4);font-size:var(--paykka-font-size-small);line-height:20px;transition:all .3s linear}@media (min-width: 480px){.paykka-card-checkout-accordion-item__header{padding-top:var(--paykka-spacing-small-5);padding-bottom:var(--paykka-spacing-small-5);font-size:var(--paykka-font-size-base);line-height:22px}}.paykka-card-checkout-accordion-item__title{font-size:var(--paykka-font-size-base);line-height:22px;color:var(--paykka-drop-in-title-color)}.paykka-card-checkout-accordion-item__title--active{color:var(--paykka-primary-color)}.paykka-card-checkout-accordion-item__content{max-height:0;opacity:0;overflow:hidden}.paykka-card-checkout-accordion-item__content--active{opacity:1;padding-bottom:var(--paykka-spacing-small-3)}@media (min-width: 480px){.paykka-card-checkout-accordion-item__content--active{padding-bottom:var(--paykka-spacing-small-5)}}
@@ -58,6 +58,8 @@ export interface CheckoutRes {
58
58
  paymentMethod: PaymentMethod;
59
59
  /** 会话 ID */
60
60
  sessionId: string;
61
+ /** 客户端密钥 */
62
+ clientKey?: string;
61
63
  /** 收银台状态 */
62
64
  status: 'PROCESSING' | 'SUCCESS' | 'EXPIRED';
63
65
  /** 交易金额 */
@@ -1,6 +1,10 @@
1
- export declare const getBrowserParams: (params?: {
1
+ export declare const getTerminalType: (deviceType: string) => string;
2
+ export declare const getBaseBrowserParams: (params?: {
2
3
  fraudDetectionId?: string;
4
+ origin?: string;
3
5
  }) => Promise<{
6
+ origin: string;
7
+ referer: string;
4
8
  user_agent: string;
5
9
  color_depth: number;
6
10
  language: string;
@@ -11,7 +15,27 @@ export declare const getBrowserParams: (params?: {
11
15
  screen_width: number;
12
16
  cookies: string;
13
17
  device_os: string;
18
+ terminal_type: string;
19
+ fraud_detection_id: string | undefined;
20
+ app_version: string;
21
+ }>;
22
+ export declare const getBrowserParams: (params?: {
23
+ fraudDetectionId?: string;
24
+ origin?: string;
25
+ }) => Promise<{
14
26
  device_finger_print_id: string;
27
+ origin: string;
28
+ referer: string;
29
+ user_agent: string;
30
+ color_depth: number;
31
+ language: string;
32
+ java_enabled: boolean;
33
+ device_type: StringUnion<"PC" | "OTHER" | "MOBILE" | "TABLET" | "POS">;
34
+ timezone_offset: string;
35
+ screen_height: number;
36
+ screen_width: number;
37
+ cookies: string;
38
+ device_os: string;
15
39
  terminal_type: string;
16
40
  fraud_detection_id: string | undefined;
17
41
  app_version: string;
@@ -1,13 +1,29 @@
1
1
  import { type RequestOptions } from '../../http';
2
- export declare const getRiskAuthorization: (params: {
3
- channel: string;
4
- }, options?: RequestOptions) => Promise<{
5
- authCode: any;
6
- channel: any;
7
- expireTime: any;
8
- }>;
9
- export declare const getChannelConfig: (channel: string, options?: RequestOptions) => Promise<{
10
- stripe: {
11
- key: string;
12
- };
13
- }>;
2
+ export interface ChannelSDKConfig {
3
+ stripe?: {
4
+ key?: string;
5
+ };
6
+ worldPay?: {
7
+ authCode?: string;
8
+ ddcCollectUrl?: string;
9
+ ddcOrigin?: string;
10
+ };
11
+ worldPayJSC?: {
12
+ organizationId?: string;
13
+ profilingDomain?: string;
14
+ };
15
+ paykka?: {
16
+ clientKey?: string;
17
+ sessionMode?: string;
18
+ };
19
+ }
20
+ export declare const getChannelSDKConfig: (params: {
21
+ channel: string[];
22
+ browser?: Recordable;
23
+ }, options?: RequestOptions) => Promise<ChannelSDKConfig>;
24
+ /** 上报环境 url */
25
+ export declare const reportUrls: (params: {
26
+ clientKey: string;
27
+ fraudDetectionMode?: string;
28
+ data: string;
29
+ }) => Promise<any>;
@@ -38,6 +38,11 @@ export interface CheckoutPaymentParams {
38
38
  /** 持卡人姓名 */
39
39
  holderName?: string;
40
40
  };
41
+ /** 客户信息 */
42
+ customer?: {
43
+ /** 证件号(如巴西 CPF/CNPJ) */
44
+ document?: string;
45
+ };
41
46
  }
42
47
  export interface PaymentBill {
43
48
  /** 名 */
@@ -22,6 +22,9 @@ export declare const buildPaymentParams: (params: CheckoutPaymentParams, extraPa
22
22
  cvv: string | undefined;
23
23
  holder_name: string | undefined;
24
24
  };
25
+ customer: {
26
+ document: string | undefined;
27
+ };
25
28
  browser: Recordable<any>;
26
29
  bill: {
27
30
  first_name: string | undefined;
@@ -0,0 +1,9 @@
1
+ import type { ApplePayProps } from './type';
2
+ export declare const DEFAULT_APPLE_PAY_CONFIG: ApplePayProps['config'];
3
+ export declare const APPLE_SDK_URL = "https://applepay.cdn-apple.com/jsapi/1.latest/apple-pay-sdk.js";
4
+ export declare const APPLE_PAY_CAPABILITIES: string[];
5
+ /**
6
+ * Apple Pay Api 版本
7
+ * 我们现在固定使用 3 版本,能兼容到 Safari 11
8
+ */
9
+ export declare const APPLE_PAY_VERSION = 3;
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Apple Pay Session 实例
3
+ * @see {@link https://developer.apple.com/documentation/applepayontheweb}
4
+ */
5
+ export declare const useApplePaySession: () => {
6
+ applePaySession: import("preact/hooks").MutableRef<ApplePaySession | null>;
7
+ initApplePaySession: (options: {
8
+ request: ApplePayJS.ApplePayPaymentRequest;
9
+ onValidate: (event: ApplePayJS.ApplePayValidateMerchantEvent) => Promise<void>;
10
+ onAuthorized: (event: ApplePayJS.ApplePayPaymentAuthorizedEvent) => Promise<void>;
11
+ onCancel: () => void;
12
+ }) => void;
13
+ reportSuccess2ApplePay: () => void;
14
+ reportFailure2ApplePay: (errorMessage?: string) => void;
15
+ };
@@ -1,28 +1,71 @@
1
1
  import type { PayKKaError } from '../../core';
2
2
  import type { PayKKaCommonConfig, PaymentInfo } from '../../types';
3
3
  export interface ApplePayProps extends PayKKaCommonConfig {
4
- /** 支付授权成功后触发 */
4
+ /** Apple Pay 支付授权成功后触发 */
5
5
  onSubmit?: () => void;
6
- /** 支付成功后触发 */
6
+ /**
7
+ * 支付成功后触发
8
+ * @param data 支付成功后的数据,包含支付方式、支付金额、支付时间等信息
9
+ */
7
10
  onSuccess?: (data: PaymentInfo) => void;
8
11
  /**
9
- * SDK 加载回调,status true 表示加载成功,false 表示加载失败
10
- * 注意:该回调在 SDK 加载成功后触发,但不一定表示 Apple Pay 可用
12
+ * Apple Pay SDK 加载回调
13
+ * @param status 是否加载成功
14
+ * @remark
15
+ * 该回调在 Apple Pay SDK 加载成功后触发,但不一定表示 Apple Pay 可用
16
+ * 需要通过 `onCanUse` 回调判断 Apple Pay 是否可用
17
+ * Safari 14.0 及以前的版本无法使用 JS SDK,会使用 safari 的内置 API,并且返回 true
11
18
  */
12
19
  onLoad?: (status: boolean) => void;
13
- /** 支付失败时触发 */
20
+ /**
21
+ * 支付失败时触发,可再次支付
22
+ * @param error 支付失败后的错误信息
23
+ */
14
24
  onError?: (error: PayKKaError) => void;
15
- /** 支付超时时触发 */
25
+ /**
26
+ * 支付超时时触发,可再次支付
27
+ * @param source 支付超时来源
28
+ * - `'retry'` - 重试超时
29
+ * - `'channel'` - 渠道超时
30
+ */
16
31
  onTimeout?: (source: 'retry' | 'channel') => void;
17
- /** 收银台已过期时触发 */
32
+ /**
33
+ * 收银台已过期时触发,无法再支付
34
+ */
18
35
  onExpired?: () => void;
19
- /** 支付取消时触发 */
36
+ /**
37
+ * 取消支付时触发,可再次支付
38
+ * @remark
39
+ * 取消支付并不代表用户主动关闭,也有可能是其他异常原因导致 ApplePay 自动关闭
40
+ */
20
41
  onCancel?: () => void;
21
42
  /**
22
- * Apple Pay 按钮是否可用
23
- * 注意:在 onLoad 返回 false 的情况下不会触发该回调
43
+ * 当前设备环境是否可用于 Apple Pay 支付
44
+ * @param canUse 是否可用
45
+ * @remark
46
+ * 在 `onLoad` 返回 `false` 的情况下不会触发该回调
24
47
  */
25
48
  onCanUse?: (canUse: boolean) => void;
26
49
  }
27
50
  export interface ApplePayRef {
28
51
  }
52
+ export interface ApplePayConfig {
53
+ request?: {
54
+ /**
55
+ * 必填的账单联系人字段
56
+ * @defaultValue ['name', 'email']
57
+ */
58
+ requiredBillingContactFields?: ApplePayJS.ApplePayContactField[];
59
+ requiredShippingContactFields?: ApplePayJS.ApplePayContactField[];
60
+ };
61
+ /**
62
+ * ApplePay 按钮的配置信息
63
+ * @param buttonStyle 按钮样式
64
+ * @param buttonType 按钮类型
65
+ * @see {@link https://applepaydemo.apple.com}
66
+ */
67
+ button?: {
68
+ buttonStyle?: string;
69
+ buttonType?: string;
70
+ };
71
+ }
@@ -1,3 +1,9 @@
1
- /** 动态加载ApplePay */
1
+ /**
2
+ * 判断 Apple Pay SDK 是否可用
3
+ * iOS 15 以下使用原生 API,iOS 15+ 使用 SDK
4
+ */
5
+ export declare const isApplePaySDKAvailable: () => boolean;
6
+ /** 动态加载 Apple Pay SDK */
2
7
  export declare const loadApplePayJS: (onload?: () => void, onerror?: () => void) => void;
3
- export declare function applePayEnv(id?: string): Promise<boolean>;
8
+ /** 判断支付环境是否支持 Apple Pay */
9
+ export declare const getApplePayEnvSupported: (id?: string) => Promise<boolean>;
@@ -0,0 +1,4 @@
1
+ import type { CPFFieldProps, CPFFieldRef } from './type';
2
+ export declare const CPFField: import("preact").FunctionalComponent<import("preact/compat").PropsWithoutRef<CPFFieldProps> & {
3
+ ref?: import("preact").Ref<CPFFieldRef> | undefined;
4
+ }>;
@@ -0,0 +1,2 @@
1
+ export * from './CPFField';
2
+ export * from './type';
@@ -0,0 +1,21 @@
1
+ import type { FormItemProps, FormValidationStatus } from '../internal/Form';
2
+ import type { InputProps } from '../internal/Input';
3
+ export interface CPFFieldProps extends Pick<FormItemProps, 'onValidationStatusChange' | 'className' | 'style'>, Pick<InputProps, 'onInput'> {
4
+ /**
5
+ * 是否使用安全模式(iframe)
6
+ * @defaultValue false
7
+ */
8
+ security: boolean;
9
+ }
10
+ export interface CPFFieldRef {
11
+ /** 聚焦 */
12
+ focus: () => void;
13
+ /** 失去焦点 */
14
+ blur: () => void;
15
+ /**
16
+ * 重置验证状态
17
+ * @param status 状态
18
+ * @param errorTip 错误提示
19
+ */
20
+ resetValidation: (status: FormValidationStatus, errorTip?: string) => void;
21
+ }
@@ -2,9 +2,10 @@ import type { ReactNode } from 'preact/compat';
2
2
  import type { SessionMode } from '../../constant';
3
3
  import type { I18n } from '../../i18n';
4
4
  import type { EncryptCardMessage, InputStylesConfig, Message, MessageAction } from '../../types';
5
+ import type { CheckoutPaymentParams } from '../../api';
5
6
  export interface SecuredFieldsProviderProps extends SecuredFieldsCallback {
6
7
  i18n: I18n;
7
- supportedCardBrands: string[];
8
+ supportedCardBrands?: string[];
8
9
  sessionMode?: SessionMode;
9
10
  /** 包裹的子元素,如果传了targetElement,就不需要传这个 */
10
11
  children?: ReactNode;
@@ -13,9 +14,13 @@ export interface SecuredFieldsProviderProps extends SecuredFieldsCallback {
13
14
  checkoutId: string;
14
15
  }
15
16
  export interface SecuredFieldsProviderRef {
16
- payment: (formData: Recordable, extraParams?: Recordable) => void;
17
+ payment: (formData: CheckoutPaymentParams, extraParams?: Recordable) => void;
17
18
  encryptCard: (encryptInfo: EncryptCardMessage) => void;
18
19
  reload: () => void;
20
+ /**
21
+ * 校验表单项
22
+ * 只有合并卡信息的情况下需要校验,单个表单项不需要校验
23
+ */
19
24
  validate: () => void;
20
25
  setConfig: (config: {
21
26
  style?: InputStylesConfig;
@@ -50,7 +55,7 @@ export interface SecuredFieldConfig extends FieldIframeConfig, SecuredFieldsCall
50
55
  hiddenIframe: HTMLIFrameElement;
51
56
  }
52
57
  export interface FieldIframeConfig {
53
- fieldType: EFieldType;
58
+ fieldType: AllFieldType;
54
59
  placeholder: string;
55
60
  hiddenIframeName: string;
56
61
  supportedCardBrands: string[];
@@ -1,12 +1,10 @@
1
- import { EFieldType } from '../SecuredFieldsProvider/type';
2
- import type { Message, MessageAction } from '../../types';
1
+ import { type AllFieldType } from '../SecuredFieldsProvider/type';
3
2
  export declare const useSecuredInput: () => {
4
3
  value: import("preact/hooks").MutableRef<string>;
5
4
  cardBin: string;
6
5
  initSecuredInput: (options: {
7
- fieldType: EFieldType;
6
+ fieldType: AllFieldType;
8
7
  supportedCardBrands: string[];
9
- sendMessage: (message: Message<MessageAction>) => void;
10
8
  }) => void;
11
9
  getConfigByFieldType: () => {
12
10
  maxLength: number;
@@ -16,5 +14,4 @@ export declare const useSecuredInput: () => {
16
14
  };
17
15
  getCurrCardBrand: (realValue: string) => import("../../utils/card-brand/brands").CardBrandConfig | undefined;
18
16
  brand: "VISA" | "MASTER_CARD" | "JCB" | "AMEX" | "DINERS_CLUB" | "DISCOVER" | "CHINA_UNION_PAY" | undefined;
19
- validate: () => boolean | void;
20
17
  };
@@ -1,3 +1,9 @@
1
1
  import type { ThreeDSIframeProps } from './type';
2
2
  import './three-ds-iframe.scss';
3
+ /**
4
+ * 解析 checkoutId,为 window.name 的倒数第二个值
5
+ * 这是为了让里面的 iframe 最后跳转到我们的成功页时能拿到 checkoutId,防止页面通信错乱
6
+ * 如果不用 window.name 做间接传递,则需要在 iframe 加载完之后进行 postMessage 通信传递 checkoutId
7
+ * 我们这个 3ds 弹窗是 iframe1 嵌套 iframe2,外层传递 checkoutId 给 iframe1,iframe1 再传递给 iframe2,用 postMessage 需要四次交互,过于复杂
8
+ */
3
9
  export declare const ThreeDSIframe: (props: ThreeDSIframeProps) => import("preact").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import type { TipProps } from './type';
2
+ import './tip.scss';
3
+ export declare function Tip(props: TipProps): import("preact").JSX.Element;
@@ -0,0 +1,2 @@
1
+ export * from './Tip';
2
+ export * from './type';
@@ -0,0 +1,12 @@
1
+ import type { ReactNode } from 'preact/compat';
2
+ export interface TipProps {
3
+ /** 提示文本 */
4
+ text: string;
5
+ /** 提示图标 */
6
+ icon?: ReactNode;
7
+ /**
8
+ * 是否显示图标
9
+ * @defaultValue true
10
+ */
11
+ showIcon?: boolean;
12
+ }