@intercartx/booster-core 0.0.1-beta.21 → 0.0.1-beta.23

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.
@@ -1,3 +1,4 @@
1
1
  export * from './config';
2
2
  export * from './utils';
3
3
  export * from './order';
4
+ export { HTTPError } from './helper';
package/dist/api/index.js CHANGED
@@ -1,3 +1,4 @@
1
1
  export * from './config';
2
2
  export * from './utils';
3
3
  export * from './order';
4
+ export { HTTPError } from './helper';
@@ -64,3 +64,7 @@ export interface SubmissionRequest extends PreSubmissionRequest {
64
64
  action?: string;
65
65
  subAction?: PaymentSubAction;
66
66
  }
67
+ export declare enum ResponseErrorCode {
68
+ CREDIT_CARD_FAILED = 2002,// 卡号支付失败,sdk 可以根据此错误码自动请求 paypal 支付
69
+ ORDER_ALREADY_HAS_TRADE = 4004
70
+ }
@@ -31,3 +31,8 @@ export var OrderStatusPaid;
31
31
  OrderStatusPaid[OrderStatusPaid["Unpaid"] = 0] = "Unpaid";
32
32
  OrderStatusPaid[OrderStatusPaid["Paid"] = 1] = "Paid";
33
33
  })(OrderStatusPaid || (OrderStatusPaid = {}));
34
+ export var ResponseErrorCode;
35
+ (function (ResponseErrorCode) {
36
+ ResponseErrorCode[ResponseErrorCode["CREDIT_CARD_FAILED"] = 2002] = "CREDIT_CARD_FAILED";
37
+ ResponseErrorCode[ResponseErrorCode["ORDER_ALREADY_HAS_TRADE"] = 4004] = "ORDER_ALREADY_HAS_TRADE"; // 订单已关联交易,返回数据可能有 {message: string, data?: {action?: {url?: string, secret?: string}}}1. 当 data?.action?.url 存在时,跳转 url 进行对应操作2. 当 data?.action?.secret 存在时,使用 secret 进行 3ds3. 没有 data 则直接访问确认订单/订阅接口
38
+ })(ResponseErrorCode || (ResponseErrorCode = {}));
@@ -0,0 +1,9 @@
1
+ import { BaseModel } from "../Base";
2
+ export declare class ErrorTipModel extends BaseModel {
3
+ isShow: boolean;
4
+ message: string;
5
+ reactiveKeys: string[];
6
+ constructor();
7
+ showErrorTip(message: string): void;
8
+ hideErrorTip(): void;
9
+ }
@@ -0,0 +1,27 @@
1
+ import { CheckoutEvents } from "../../types";
2
+ import { BaseModel } from "../Base";
3
+ import { globalState } from "../GlobalState";
4
+ export class ErrorTipModel extends BaseModel {
5
+ constructor() {
6
+ super();
7
+ this.isShow = false;
8
+ this.message = '';
9
+ this.reactiveKeys = ['isShow', 'message'];
10
+ globalState.on(CheckoutEvents.ERROR_TIP_SHOW, (message) => {
11
+ if (message) {
12
+ this.showErrorTip(message);
13
+ }
14
+ else {
15
+ this.hideErrorTip();
16
+ }
17
+ });
18
+ }
19
+ showErrorTip(message) {
20
+ this.isShow = true;
21
+ this.message = message;
22
+ }
23
+ hideErrorTip() {
24
+ this.isShow = false;
25
+ this.message = '';
26
+ }
27
+ }
@@ -4,6 +4,7 @@ interface PaypalModalProps {
4
4
  onVisibleChange?: (visible: boolean) => void;
5
5
  }
6
6
  export declare class PaypalModalModel extends BusinessModel {
7
+ #private;
7
8
  visible: boolean;
8
9
  onVisibleChange: (visible: boolean) => void;
9
10
  countDown: number;
@@ -1,5 +1,20 @@
1
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
2
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
3
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
4
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
+ };
6
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
7
+ if (kind === "m") throw new TypeError("Private method is not writable");
8
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
9
+ if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
10
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
11
+ };
12
+ var _PaypalModalModel_PPPaymentHandler;
1
13
  import { BusinessModel } from "./Business";
2
14
  import { globalState } from "../GlobalState";
15
+ import { PPPaymentHandler } from "./pay-button/PPPaymentHandler";
16
+ import { CheckoutEvents } from "../../types";
17
+ import { HTTPError } from "../../api";
3
18
  const COUNT_DOWN = 5;
4
19
  export class PaypalModalModel extends BusinessModel {
5
20
  constructor(props) {
@@ -7,6 +22,7 @@ export class PaypalModalModel extends BusinessModel {
7
22
  this.visible = false;
8
23
  this.onVisibleChange = () => { };
9
24
  this.countDown = COUNT_DOWN;
25
+ _PaypalModalModel_PPPaymentHandler.set(this, null);
10
26
  this.reactiveKeys = ['visible', 'countDown'];
11
27
  this.timer = null;
12
28
  this.startCountDown = () => {
@@ -30,12 +46,18 @@ export class PaypalModalModel extends BusinessModel {
30
46
  if (!this.visible) {
31
47
  return;
32
48
  }
49
+ if (!__classPrivateFieldGet(this, _PaypalModalModel_PPPaymentHandler, "f")) {
50
+ __classPrivateFieldSet(this, _PaypalModalModel_PPPaymentHandler, new PPPaymentHandler(), "f");
51
+ }
33
52
  try {
34
- // const { paypal_url } = await solidGetPaypalURL(EPaymentAction.ONFAIL, i18n.locale)
35
- // window.location.replace(paypal_url)
36
- // console.log('Redirecting to PayPal...')
53
+ this.handleClose();
54
+ await __classPrivateFieldGet(this, _PaypalModalModel_PPPaymentHandler, "f").handlePayment();
37
55
  }
38
56
  catch (error) {
57
+ if (error instanceof HTTPError) {
58
+ const errJson = error.json;
59
+ globalState.emit(CheckoutEvents.ERROR_TIP_SHOW, errJson.message);
60
+ }
39
61
  console.error('PayPal redirect failed:', error);
40
62
  }
41
63
  };
@@ -46,6 +68,14 @@ export class PaypalModalModel extends BusinessModel {
46
68
  this.onVisibleChange = props.onVisibleChange;
47
69
  }
48
70
  props.visible && this.openModal();
71
+ globalState.on(CheckoutEvents.CREDIT_CARD_FAILED, (bool) => {
72
+ var _a, _b;
73
+ const config = globalState.getConfig();
74
+ const isPPVisible = ((_a = config.paymentMethods) === null || _a === void 0 ? void 0 : _a.PP) && ((_b = config.paymentMethods) === null || _b === void 0 ? void 0 : _b.PP.visible);
75
+ if (isPPVisible) {
76
+ this.setVisible(bool);
77
+ }
78
+ });
49
79
  globalState.registerModel('paypalModal', this);
50
80
  }
51
81
  openModal() {
@@ -62,3 +92,4 @@ export class PaypalModalModel extends BusinessModel {
62
92
  }
63
93
  }
64
94
  }
95
+ _PaypalModalModel_PPPaymentHandler = new WeakMap();
@@ -9,3 +9,4 @@ export * from './OrderSummary';
9
9
  export * from './PaypalModal';
10
10
  export * from './fees';
11
11
  export * from './FullScreeenLoading';
12
+ export * from './ErrorTip';
@@ -9,3 +9,4 @@ export * from './OrderSummary';
9
9
  export * from './PaypalModal';
10
10
  export * from './fees';
11
11
  export * from './FullScreeenLoading';
12
+ export * from './ErrorTip';
@@ -14,7 +14,7 @@ import { HTTPError } from "../../../api/helper";
14
14
  import { apiCreateACHSubscriptionOrder } from "../../../api/order/ach";
15
15
  import { apiConfirmSubscriptionOrderWithRetry } from "../../../api/order/order-confirm";
16
16
  import { apiCreatePreOrder } from "../../../api/order/pre-order";
17
- import { SubmissionAction } from "../../../api/order/types";
17
+ import { ResponseErrorCode, SubmissionAction } from "../../../api/order/types";
18
18
  import { CheckoutEvents } from "../../../types";
19
19
  import { getBrowserInfo } from "../../../utils/browserInfo";
20
20
  import { globalState } from "../../GlobalState";
@@ -105,7 +105,7 @@ export class ACHPaymentHandler {
105
105
  console.error(error);
106
106
  if (error instanceof HTTPError) {
107
107
  const errJson = error.json;
108
- if (errJson.code === 4004 && __classPrivateFieldGet(this, _ACHPaymentHandler_orderResult, "f")) {
108
+ if (errJson.code === ResponseErrorCode.ORDER_ALREADY_HAS_TRADE && __classPrivateFieldGet(this, _ACHPaymentHandler_orderResult, "f")) {
109
109
  await this.handleApiACHOSubscriptionOrdered();
110
110
  return;
111
111
  }
@@ -16,5 +16,6 @@ export declare class PayButtonModel extends BusinessModel {
16
16
  validatePayment(): Promise<boolean>;
17
17
  preparePaymentData(): any;
18
18
  handlePayment(): Promise<void>;
19
+ invalidHandler(): Promise<void>;
19
20
  }
20
21
  export {};
@@ -10,6 +10,7 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
10
10
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
11
  };
12
12
  var _PayButtonModel_instances, _PayButtonModel_paymentConfig, _PayButtonModel_createPaymentHandler;
13
+ import { HTTPError, ResponseErrorCode } from "../../../api";
13
14
  import { CheckoutEvents } from "../../../types";
14
15
  import { globalState } from "../../GlobalState";
15
16
  import { BusinessModel } from "../Business";
@@ -48,7 +49,48 @@ export class PayButtonModel extends BusinessModel {
48
49
  return this.paymentHandler.preparePaymentData();
49
50
  }
50
51
  async handlePayment() {
51
- return this.paymentHandler.handlePayment();
52
+ try {
53
+ globalState.emit(CheckoutEvents.ERROR_TIP_SHOW, '');
54
+ await this.paymentHandler.handlePayment();
55
+ }
56
+ catch (error) {
57
+ if (error instanceof HTTPError) {
58
+ const errJson = error.json;
59
+ globalState.emit(CheckoutEvents.ERROR_TIP_SHOW, errJson.message);
60
+ if (errJson.code === ResponseErrorCode.CREDIT_CARD_FAILED) {
61
+ globalState.emit(CheckoutEvents.CREDIT_CARD_FAILED, true);
62
+ return;
63
+ }
64
+ }
65
+ this.invalidHandler();
66
+ }
67
+ return;
68
+ }
69
+ async invalidHandler() {
70
+ const invalidEl = window.document.querySelector('.itx-invalid');
71
+ if (invalidEl) {
72
+ const invalidInput = invalidEl;
73
+ if (invalidInput.focus)
74
+ invalidInput.focus();
75
+ invalidEl.scrollIntoView();
76
+ // 获取错误信息
77
+ // const feedBackEl =
78
+ // invalidEl.nextElementSibling?.nextElementSibling?.children[0]
79
+ // if (feedBackEl) {
80
+ // setErrorMessage((feedBackEl as HTMLElement).innerText)
81
+ // }
82
+ return;
83
+ }
84
+ const { stripeElements, stripeElId } = globalState.getAllValues();
85
+ if (stripeElements && stripeElId) {
86
+ const { error: submitError } = await stripeElements.submit();
87
+ if (submitError) {
88
+ const el = document.getElementById(stripeElId);
89
+ if (el) {
90
+ el.scrollIntoView();
91
+ }
92
+ }
93
+ }
52
94
  }
53
95
  }
54
96
  _PayButtonModel_paymentConfig = new WeakMap(), _PayButtonModel_instances = new WeakSet(), _PayButtonModel_createPaymentHandler = function _PayButtonModel_createPaymentHandler(paymentMethod) {
@@ -14,7 +14,7 @@ import { CheckoutEvents, hideLoading, showLoading } from "../../../../index";
14
14
  import { apiCCOneTimeOrder } from "../../../../api/order/cc";
15
15
  import { apiConfirmOneTimeOrderWithRetry } from "../../../../api/order/order-confirm";
16
16
  import { apiCreatePreOrder } from "../../../../api/order/pre-order";
17
- import { SubmissionAction } from "../../../../api/order/types";
17
+ import { ResponseErrorCode, SubmissionAction } from "../../../../api/order/types";
18
18
  import { getBrowserInfo } from "../../../../utils/browserInfo";
19
19
  import { encryptCreditCard } from "../../../../utils/encrypt";
20
20
  import { globalState } from "../../../GlobalState";
@@ -139,7 +139,7 @@ export class DefaultCCPaymentHandler extends BaseCCPaymentHandler {
139
139
  console.error(error);
140
140
  if (error instanceof HTTPError) {
141
141
  const errJson = error.json;
142
- if (errJson.code === 4004 && __classPrivateFieldGet(this, _DefaultCCPaymentHandler_orderResult, "f")) {
142
+ if (errJson.code === ResponseErrorCode.ORDER_ALREADY_HAS_TRADE && __classPrivateFieldGet(this, _DefaultCCPaymentHandler_orderResult, "f")) {
143
143
  const { token } = globalState.getConfig();
144
144
  if ((_b = __classPrivateFieldGet(this, _DefaultCCPaymentHandler_orderResult, "f").action) === null || _b === void 0 ? void 0 : _b.url) {
145
145
  const threeDSWindow = window.open(__classPrivateFieldGet(this, _DefaultCCPaymentHandler_orderResult, "f").action.url, '_blank', 'width=800,height=600');
@@ -15,7 +15,7 @@ import { HTTPError } from "../../../../api/helper";
15
15
  import { apiConfirmOneTimeOrderWithRetry } from "../../../../api/order";
16
16
  import { apiCCOneTimeOrder } from "../../../../api/order/cc";
17
17
  import { apiCreatePreOrder } from "../../../../api/order/pre-order";
18
- import { SubmissionAction } from "../../../../api/order/types";
18
+ import { ResponseErrorCode, SubmissionAction } from "../../../../api/order/types";
19
19
  import { getBrowserInfo } from "../../../../utils/browserInfo";
20
20
  import { divide100 } from "../../../../utils/currency";
21
21
  import { globalState } from "../../../GlobalState";
@@ -132,7 +132,7 @@ export class FxpCCPaymentHandler extends BaseCCPaymentHandler {
132
132
  console.error(error);
133
133
  if (error instanceof HTTPError) {
134
134
  const errJson = error.json;
135
- if (errJson.code === 4004 && __classPrivateFieldGet(this, _FxpCCPaymentHandler_orderResult, "f")) {
135
+ if (errJson.code === ResponseErrorCode.ORDER_ALREADY_HAS_TRADE && __classPrivateFieldGet(this, _FxpCCPaymentHandler_orderResult, "f")) {
136
136
  await this.handleApiCCOneTimeOrdered();
137
137
  return;
138
138
  }
@@ -13,7 +13,7 @@ var _StripeCCPaymentHandler_orderResult;
13
13
  import { CheckoutEvents, hideLoading, showLoading } from "../../../../index";
14
14
  import { apiConfirmOneTimeOrder,
15
15
  // apiConfirmOneTimeOrderWithRetry,
16
- apiConfirmSubscriptionOrderWithRetry, SubmissionAction } from "../../../../api";
16
+ apiConfirmSubscriptionOrderWithRetry, ResponseErrorCode, SubmissionAction } from "../../../../api";
17
17
  import { apiCCOneTimeOrder, apiCCSubscriptionOrder, } from "../../../../api/order/cc";
18
18
  import { apiCreatePreOrder } from "../../../../api/order/pre-order";
19
19
  import { getBrowserInfo } from "../../../../utils/browserInfo";
@@ -158,7 +158,7 @@ export class StripeCCPaymentHandler extends BaseCCPaymentHandler {
158
158
  console.error(error);
159
159
  if (error instanceof HTTPError) {
160
160
  const errJson = error.json;
161
- if (errJson.code === 4004 && __classPrivateFieldGet(this, _StripeCCPaymentHandler_orderResult, "f")) {
161
+ if (errJson.code === ResponseErrorCode.ORDER_ALREADY_HAS_TRADE && __classPrivateFieldGet(this, _StripeCCPaymentHandler_orderResult, "f")) {
162
162
  await this.handleStripeOrdered();
163
163
  return;
164
164
  }
@@ -0,0 +1 @@
1
+ .booster-scope{--itx-font-size-base: inherit;--itx-font-size-sm: 0.875rem;--itx-primary-color: #212529;--itx-label-color: rgba(33,37,41,0.65);--itx-border-color: #dee2e6;--itx-invalid-border-color: #dc3545;--itx-invalid-color: #dc3545;--itx-border-active-color: #86b7fe;--itx-border-radius: 0.375rem;--itx-border-width: 1px;--itx-form-item-height: calc(3.2rem + 2px);--itx-form-item-width: 100%;--itx-form-item-gap: 0.5rem}.booster-scope .itx-error-tip{margin-bottom: 1rem;width: 100%;border-radius: 0.5rem;border-width: 1px;--tw-border-opacity: 1;border-color: rgb(254 202 202 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));padding: 1rem}.booster-scope .itx-error-tip .error-tip-container{display: flex;align-items: flex-start}.booster-scope .itx-error-tip .error-tip-container .error-icon-wrapper{flex-shrink: 0}.booster-scope .itx-error-tip .error-tip-container .error-icon-wrapper svg{height: 1.25rem;width: 1.25rem;--tw-text-opacity: 1;color: rgb(248 113 113 / var(--tw-text-opacity, 1))}.booster-scope .itx-error-tip .error-tip-container .error-message-wrapper{margin-left: 0.75rem}.booster-scope .itx-error-tip .error-tip-container .error-message-wrapper p{white-space: pre-line;font-size: 0.875rem;line-height: 1.25rem;--tw-text-opacity: 1;color: rgb(185 28 28 / var(--tw-text-opacity, 1))}.booster-scope .itx-error-tip .error-tip-container .error-close-wrapper{margin-left: auto;padding-left: 0.75rem}.booster-scope .itx-error-tip .error-tip-container .error-close-wrapper .error-close-button-container{margin-left: -0.375rem;margin-right: -0.375rem;margin-top: -0.375rem;margin-bottom: -0.375rem}.booster-scope .itx-error-tip .error-tip-container .error-close-wrapper .error-close-button-container button{display: inline-flex;border-radius: 0.375rem;--tw-bg-opacity: 1;background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1));padding: 0.375rem;--tw-text-opacity: 1;color: rgb(223 27 65 / var(--tw-text-opacity, 1))}.booster-scope .itx-error-tip .error-tip-container .error-close-wrapper .error-close-button-container button:hover{--tw-bg-opacity: 1;background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1))}.booster-scope .itx-error-tip .error-tip-container .error-close-wrapper .error-close-button-container button:focus{outline: 2px solid transparent;outline-offset: 2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000);--tw-ring-opacity: 1;--tw-ring-color: rgb(220 38 38 / var(--tw-ring-opacity, 1));--tw-ring-offset-width: 2px;--tw-ring-offset-color: #fef2f2}.booster-scope .itx-error-tip .error-tip-container .error-close-wrapper .error-close-button-container button svg{height: 0.75rem;width: 0.75rem}
@@ -1 +1 @@
1
- .booster-scope .pointer-events-none{pointer-events:none}.booster-scope .visible{visibility:visible}.booster-scope .invisible{visibility:hidden}.booster-scope .static{position:static}.booster-scope .fixed{position:fixed}.booster-scope .absolute{position:absolute}.booster-scope .relative{position:relative}.booster-scope .inset-0{inset:0px}.booster-scope .bottom-0{bottom:0px}.booster-scope .bottom-\[-1px\]{bottom:-1px}.booster-scope .left-0{left:0px}.booster-scope .left-1\/2{left:50%}.booster-scope .left-5{left:1.25rem}.booster-scope .left-7{left:1.75rem}.booster-scope .left-8{left:2rem}.booster-scope .left-\[-1px\]{left:-1px}.booster-scope .left-\[85\%\]{left:85%}.booster-scope .left-\[calc\(\.75rem-2px\)\]{left:calc(.75rem - 2px)}.booster-scope .right-0{right:0px}.booster-scope .right-4{right:1rem}.booster-scope .right-\[-1px\]{right:-1px}.booster-scope .right-\[1em\]{right:1em}.booster-scope .top-0{top:0px}.booster-scope .top-1\/2{top:50%}.booster-scope .top-16{top:4rem}.booster-scope .top-4{top:1rem}.booster-scope .top-5{top:1.25rem}.booster-scope .top-\[-1px\]{top:-1px}.booster-scope .top-\[-6px\]{top:-6px}.booster-scope .top-full{top:100%}.booster-scope .z-10{z-index:10}.booster-scope .z-20{z-index:20}.booster-scope .z-50{z-index:50}.booster-scope .z-\[1055\]{z-index:1055}.booster-scope .z-\[2\]{z-index:2}.booster-scope .m-7{margin:1.75rem}.booster-scope .mx-auto{margin-left:auto;margin-right:auto}.booster-scope .my-4{margin-top:1rem;margin-bottom:1rem}.booster-scope .mb-4{margin-bottom:1rem}.booster-scope .mr-5{margin-right:1.25rem}.booster-scope .mr-\[2px\]{margin-right:2px}.booster-scope .mt-2{margin-top:0.5rem}.booster-scope .box-border{box-sizing:border-box}.booster-scope .block{display:block}.booster-scope .inline-block{display:inline-block}.booster-scope .flex{display:flex}.booster-scope .inline-flex{display:inline-flex}.booster-scope .grid{display:grid}.booster-scope .contents{display:contents}.booster-scope .hidden{display:none}.booster-scope .aspect-\[50\/29\]{aspect-ratio:50/29}.booster-scope .h-12{height:3rem}.booster-scope .h-16{height:4rem}.booster-scope .h-2{height:0.5rem}.booster-scope .h-4{height:1rem}.booster-scope .h-5{height:1.25rem}.booster-scope .h-6{height:1.5rem}.booster-scope .h-\[1\.6rem\]{height:1.6rem}.booster-scope .h-\[1em\]{height:1em}.booster-scope .h-\[4rem\]{height:4rem}.booster-scope .h-\[calc\(3\.5rem\+2px\)\]{height:calc(3.5rem + 2px)}.booster-scope .h-full{height:100%}.booster-scope .max-h-0{max-height:0px}.booster-scope .max-h-\[55px\]{max-height:55px}.booster-scope .max-h-\[57rem\]{max-height:57rem}.booster-scope .min-h-\[180px\]{min-height:180px}.booster-scope .w-12{width:3rem}.booster-scope .w-16{width:4rem}.booster-scope .w-2{width:0.5rem}.booster-scope .w-4{width:1rem}.booster-scope .w-6{width:1.5rem}.booster-scope .w-\[1\.25rem\]{width:1.25rem}.booster-scope .w-\[1em\]{width:1em}.booster-scope .w-\[2\.5rem\]{width:2.5rem}.booster-scope .w-\[4rem\]{width:4rem}.booster-scope .w-\[8rem\]{width:8rem}.booster-scope .w-full{width:100%}.booster-scope .max-w-\[auto\]{max-width:auto}.booster-scope .max-w-sm{max-width:24rem}.booster-scope .flex-1{flex:1 1 0%}.booster-scope .flex-\[var\(--flex-left\)\]{flex:var(--flex-left)}.booster-scope .flex-\[var\(--flex-right\)\]{flex:var(--flex-right)}.booster-scope .origin-\[0_0\]{transform-origin:0 0}.booster-scope .-translate-x-1\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.booster-scope .-translate-y-1\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.booster-scope .-translate-y-\[0\.35rem\]{--tw-translate-y:-0.35rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.booster-scope .translate-x-\[0\.15rem\]{--tw-translate-x:0.15rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.booster-scope .scale-\[0\.85\]{--tw-scale-x:0.85;--tw-scale-y:0.85;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.booster-scope .transform{transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.booster-scope .cursor-default{cursor:default}.booster-scope .cursor-not-allowed{cursor:not-allowed}.booster-scope .cursor-pointer{cursor:pointer}.booster-scope .appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.booster-scope .grid-rows-\[0fr\]{grid-template-rows:0fr}.booster-scope .grid-rows-\[1fr\]{grid-template-rows:1fr}.booster-scope .flex-col{flex-direction:column}.booster-scope .items-center{align-items:center}.booster-scope .items-stretch{align-items:stretch}.booster-scope .justify-end{justify-content:flex-end}.booster-scope .justify-center{justify-content:center}.booster-scope .justify-between{justify-content:space-between}.booster-scope .gap-12{gap:3rem}.booster-scope .gap-2{gap:0.5rem}.booster-scope .gap-4{gap:1rem}.booster-scope .gap-8{gap:2rem}.booster-scope .space-x-1 > :not([hidden]) ~ :not([hidden]){--tw-space-x-reverse:0;margin-right:calc(0.25rem * var(--tw-space-x-reverse));margin-left:calc(0.25rem * calc(1 - var(--tw-space-x-reverse)))}.booster-scope .overflow-hidden{overflow:hidden}.booster-scope .rounded{border-radius:0.25rem}.booster-scope .rounded-2xl{border-radius:1rem}.booster-scope .rounded-\[50rem\]{border-radius:50rem}.booster-scope .rounded-full{border-radius:9999px}.booster-scope .rounded-md{border-radius:0.375rem}.booster-scope .rounded-b-md{border-bottom-right-radius:0.375rem;border-bottom-left-radius:0.375rem}.booster-scope .rounded-t-md{border-top-left-radius:0.375rem;border-top-right-radius:0.375rem}.booster-scope .rounded-tl-none{border-top-left-radius:0px}.booster-scope .rounded-tr-none{border-top-right-radius:0px}.booster-scope .border{border-width:1px}.booster-scope .border-2{border-width:2px}.booster-scope .border-4{border-width:4px}.booster-scope .border-b-0{border-bottom-width:0px}.booster-scope .border-l-0{border-left-width:0px}.booster-scope .border-l-\[1px\]{border-left-width:1px}.booster-scope .border-r-0{border-right-width:0px}.booster-scope .border-r-\[1px\]{border-right-width:1px}.booster-scope .border-t-0{border-top-width:0px}.booster-scope .border-t-\[1px\]{border-top-width:1px}.booster-scope .border-none{border-style:none}.booster-scope .border-\[\#006FFB\]{--tw-border-opacity:1;border-color:rgb(0 111 251 / var(--tw-border-opacity, 1))}.booster-scope .border-\[\#3286F7\]{--tw-border-opacity:1;border-color:rgb(50 134 247 / var(--tw-border-opacity, 1))}.booster-scope .border-\[\#dee2e6\]{--tw-border-opacity:1;border-color:rgb(222 226 230 / var(--tw-border-opacity, 1))}.booster-scope .border-\[rgb\(255\2c 193\2c 7\)\]{--tw-border-opacity:1;border-color:rgb(255 193 7 / var(--tw-border-opacity, 1))}.booster-scope .border-black{--tw-border-opacity:1;border-color:rgb(0 0 0 / var(--tw-border-opacity, 1))}.booster-scope .border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.booster-scope .border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.booster-scope .border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.booster-scope .border-transparent{border-color:transparent}.booster-scope .border-t-transparent{border-top-color:transparent}.booster-scope .bg-\[\#006FFB\]{--tw-bg-opacity:1;background-color:rgb(0 111 251 / var(--tw-bg-opacity, 1))}.booster-scope .bg-\[\#3286F7\]{--tw-bg-opacity:1;background-color:rgb(50 134 247 / var(--tw-bg-opacity, 1))}.booster-scope .bg-\[\#6c757d\]{--tw-bg-opacity:1;background-color:rgb(108 117 125 / var(--tw-bg-opacity, 1))}.booster-scope .bg-\[\#f8f9fa\]{--tw-bg-opacity:1;background-color:rgb(248 249 250 / var(--tw-bg-opacity, 1))}.booster-scope .bg-\[\#fafafa\]{--tw-bg-opacity:1;background-color:rgb(250 250 250 / var(--tw-bg-opacity, 1))}.booster-scope .bg-\[rgb\(255\2c 193\2c 7\)\]{--tw-bg-opacity:1;background-color:rgb(255 193 7 / var(--tw-bg-opacity, 1))}.booster-scope .bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.booster-scope .bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.booster-scope .bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.booster-scope .bg-transparent{background-color:transparent}.booster-scope .bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.booster-scope .bg-opacity-50{--tw-bg-opacity:0.5}.booster-scope .fill-\[\#6c757d\]{fill:#6c757d}.booster-scope .p-4{padding:1rem}.booster-scope .p-8{padding:2rem}.booster-scope .px-3{padding-left:0.75rem;padding-right:0.75rem}.booster-scope .px-4{padding-left:1rem;padding-right:1rem}.booster-scope .px-5{padding-left:1.25rem;padding-right:1.25rem}.booster-scope .px-6{padding-left:1.5rem;padding-right:1.5rem}.booster-scope .px-\[\.75rem\]{padding-left:.75rem;padding-right:.75rem}.booster-scope .px-\[0\.6em\]{padding-left:0.6em;padding-right:0.6em}.booster-scope .py-2{padding-top:0.5rem;padding-bottom:0.5rem}.booster-scope .py-3{padding-top:0.75rem;padding-bottom:0.75rem}.booster-scope .py-4{padding-top:1rem;padding-bottom:1rem}.booster-scope .py-\[\.375rem\]{padding-top:.375rem;padding-bottom:.375rem}.booster-scope .py-\[0\.2em\]{padding-top:0.2em;padding-bottom:0.2em}.booster-scope .pb-3{padding-bottom:0.75rem}.booster-scope .pb-\[\.375rem\]{padding-bottom:.375rem}.booster-scope .pb-\[\.625rem\]{padding-bottom:.625rem}.booster-scope .pb-\[0\.375rem\]{padding-bottom:0.375rem}.booster-scope .pb-\[0\.625rem\]{padding-bottom:0.625rem}.booster-scope .pl-\[\.15rem\]{padding-left:.15rem}.booster-scope .pl-\[2\.25rem\]{padding-left:2.25rem}.booster-scope .pl-\[2\.75rem\]{padding-left:2.75rem}.booster-scope .pt-12{padding-top:3rem}.booster-scope .pt-4{padding-top:1rem}.booster-scope .pt-\[1\.4rem\]{padding-top:1.4rem}.booster-scope .pt-\[1\.625rem\]{padding-top:1.625rem}.booster-scope .text-center{text-align:center}.booster-scope .text-right{text-align:right}.booster-scope .text-end{text-align:end}.booster-scope .align-baseline{vertical-align:baseline}.booster-scope .align-\[2px\]{vertical-align:2px}.booster-scope .text-\[0\.875rem\]{font-size:0.875rem}.booster-scope .text-\[1em\]{font-size:1em}.booster-scope .text-base{font-size:1rem;line-height:1.5rem}.booster-scope .text-lg{font-size:1.125rem;line-height:1.75rem}.booster-scope .text-xl{font-size:1.25rem;line-height:1.75rem}.booster-scope .text-xs{font-size:0.75rem;line-height:1rem}.booster-scope .font-light{font-weight:300}.booster-scope .font-medium{font-weight:500}.booster-scope .font-semibold{font-weight:600}.booster-scope .text-\[\#212529\]{--tw-text-opacity:1;color:rgb(33 37 41 / var(--tw-text-opacity, 1))}.booster-scope .text-\[\#212529\]\/65{color:rgb(33 37 41 / 0.65)}.booster-scope .text-\[\#aaa\]{--tw-text-opacity:1;color:rgb(170 170 170 / var(--tw-text-opacity, 1))}.booster-scope .text-\[\#dee2e6\]{--tw-text-opacity:1;color:rgb(222 226 230 / var(--tw-text-opacity, 1))}.booster-scope .text-\[rgba\(33\2c 37\2c 41\2c 0\.65\)\]{color:rgba(33,37,41,0.65)}.booster-scope .text-black{--tw-text-opacity:1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.booster-scope .text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.booster-scope .text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.booster-scope .text-white{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.booster-scope .shadow-2xl{--tw-shadow:0 25px 50px -12px rgb(0 0 0 / 0.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.booster-scope .shadow-lg{--tw-shadow:0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.booster-scope .outline-none{outline:2px solid transparent;outline-offset:2px}.booster-scope .outline{outline-style:solid}.booster-scope .transition-\[grid\]{transition-property:grid;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.booster-scope .transition-\[max-height\]{transition-property:max-height;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.booster-scope .transition-all{transition-property:all;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.booster-scope .transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.booster-scope .delay-200{transition-delay:200ms}.booster-scope .duration-100{transition-duration:100ms}.booster-scope .duration-300{transition-duration:300ms}.booster-scope .duration-500{transition-duration:500ms}.booster-scope .ease-in-out{transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1)}.booster-scope .content-\[\'\'\]{--tw-content:'';content:var(--tw-content)}.booster-scope{scroll-behavior:smooth}.booster-scope *, .booster-scope *::before, .booster-scope *::after{box-sizing:border-box;margin:0;padding:0;border:0 solid #e5e7eb}.booster-scope button, .booster-scope input, .booster-scope optgroup, .booster-scope select, .booster-scope textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}.booster-scope ul{list-style:none}.booster-scope button, .booster-scope input:where([type=button]), .booster-scope input:where([type=reset]), .booster-scope input:where([type=submit]){-webkit-appearance:button;background-color:rgba(0,0,0,0);background-image:none}.booster-scope audio, .booster-scope canvas, .booster-scope embed, .booster-scope iframe, .booster-scope img, .booster-scope object, .booster-scope svg, .booster-scope video{display:block;vertical-align:middle}.booster-scope .hover\:border-\[rgb\(236\2c 178\2c 19\)\]:hover{--tw-border-opacity:1;border-color:rgb(236 178 19 / var(--tw-border-opacity, 1))}.booster-scope .hover\:bg-\[\#5c636a\]:hover{--tw-bg-opacity:1;background-color:rgb(92 99 106 / var(--tw-bg-opacity, 1))}.booster-scope .hover\:bg-\[\#f8f9fa\]:hover{--tw-bg-opacity:1;background-color:rgb(248 249 250 / var(--tw-bg-opacity, 1))}.booster-scope .hover\:bg-\[rgb\(236\2c 178\2c 19\)\]:hover{--tw-bg-opacity:1;background-color:rgb(236 178 19 / var(--tw-bg-opacity, 1))}.booster-scope .active\:border-\[rgb\(236\2c 178\2c 19\)\]:active{--tw-border-opacity:1;border-color:rgb(236 178 19 / var(--tw-border-opacity, 1))}.booster-scope .active\:bg-\[rgb\(236\2c 178\2c 19\)\]:active{--tw-bg-opacity:1;background-color:rgb(236 178 19 / var(--tw-bg-opacity, 1))}@media (min-width: 640px){.booster-scope .sm\:max-w-\[500px\]{max-width:500px}}@media (min-width: 768px){.booster-scope .md\:mx-0{margin-left:0px;margin-right:0px}.booster-scope .md\:mr-0{margin-right:0px}.booster-scope .md\:grid{display:grid}.booster-scope .md\:grid-cols-\[0fr_5fr_4fr\]{grid-template-columns:0fr 5fr 4fr}.booster-scope .md\:border-t-0{border-top-width:0px}.booster-scope .md\:p-12{padding:3rem}.booster-scope .md\:px-12{padding-left:3rem;padding-right:3rem}}@media (min-width: 1024px){.booster-scope .lg\:w-1\/2{width:50%}.booster-scope .lg\:flex-row{flex-direction:row}}@media (min-width: 1280px){.booster-scope .xl\:max-w-\[var\(--right-side-width\)\]{max-width:var(--right-side-width)}.booster-scope .xl\:grid-cols-\[var\(--wrapper-padding\)_var\(--left-side-width\)_1fr\]{grid-template-columns:var(--wrapper-padding) var(--left-side-width) 1fr}.booster-scope .xl\:border-l{border-left-width:1px}}
1
+ .booster-scope .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0}.booster-scope .pointer-events-none{pointer-events:none}.booster-scope .visible{visibility:visible}.booster-scope .invisible{visibility:hidden}.booster-scope .static{position:static}.booster-scope .fixed{position:fixed}.booster-scope .absolute{position:absolute}.booster-scope .relative{position:relative}.booster-scope .inset-0{inset:0px}.booster-scope .bottom-0{bottom:0px}.booster-scope .bottom-\[-1px\]{bottom:-1px}.booster-scope .left-0{left:0px}.booster-scope .left-1\/2{left:50%}.booster-scope .left-5{left:1.25rem}.booster-scope .left-7{left:1.75rem}.booster-scope .left-8{left:2rem}.booster-scope .left-\[-1px\]{left:-1px}.booster-scope .left-\[85\%\]{left:85%}.booster-scope .left-\[calc\(\.75rem-2px\)\]{left:calc(.75rem - 2px)}.booster-scope .right-0{right:0px}.booster-scope .right-4{right:1rem}.booster-scope .right-\[-1px\]{right:-1px}.booster-scope .right-\[1em\]{right:1em}.booster-scope .top-0{top:0px}.booster-scope .top-1\/2{top:50%}.booster-scope .top-16{top:4rem}.booster-scope .top-4{top:1rem}.booster-scope .top-5{top:1.25rem}.booster-scope .top-\[-1px\]{top:-1px}.booster-scope .top-\[-6px\]{top:-6px}.booster-scope .top-full{top:100%}.booster-scope .z-10{z-index:10}.booster-scope .z-20{z-index:20}.booster-scope .z-50{z-index:50}.booster-scope .z-\[1055\]{z-index:1055}.booster-scope .z-\[2\]{z-index:2}.booster-scope .m-4{margin:1rem}.booster-scope .-mx-1\.5{margin-left:-0.375rem;margin-right:-0.375rem}.booster-scope .-my-1{margin-top:-0.25rem;margin-bottom:-0.25rem}.booster-scope .mx-auto{margin-left:auto;margin-right:auto}.booster-scope .my-4{margin-top:1rem;margin-bottom:1rem}.booster-scope .mb-4{margin-bottom:1rem}.booster-scope .ml-auto{margin-left:auto}.booster-scope .mr-5{margin-right:1.25rem}.booster-scope .mr-\[2px\]{margin-right:2px}.booster-scope .mt-2{margin-top:0.5rem}.booster-scope .box-border{box-sizing:border-box}.booster-scope .block{display:block}.booster-scope .inline-block{display:inline-block}.booster-scope .flex{display:flex}.booster-scope .inline-flex{display:inline-flex}.booster-scope .grid{display:grid}.booster-scope .contents{display:contents}.booster-scope .hidden{display:none}.booster-scope .aspect-\[50\/29\]{aspect-ratio:50/29}.booster-scope .h-1{height:0.25rem}.booster-scope .h-12{height:3rem}.booster-scope .h-16{height:4rem}.booster-scope .h-2{height:0.5rem}.booster-scope .h-3{height:0.75rem}.booster-scope .h-4{height:1rem}.booster-scope .h-5{height:1.25rem}.booster-scope .h-6{height:1.5rem}.booster-scope .h-\[1\.6rem\]{height:1.6rem}.booster-scope .h-\[1em\]{height:1em}.booster-scope .h-\[4rem\]{height:4rem}.booster-scope .h-\[calc\(3\.5rem\+2px\)\]{height:calc(3.5rem + 2px)}.booster-scope .h-full{height:100%}.booster-scope .max-h-0{max-height:0px}.booster-scope .max-h-\[55px\]{max-height:55px}.booster-scope .max-h-\[57rem\]{max-height:57rem}.booster-scope .min-h-\[180px\]{min-height:180px}.booster-scope .w-12{width:3rem}.booster-scope .w-16{width:4rem}.booster-scope .w-2{width:0.5rem}.booster-scope .w-4{width:1rem}.booster-scope .w-5{width:1.25rem}.booster-scope .w-6{width:1.5rem}.booster-scope .w-\[1\.25rem\]{width:1.25rem}.booster-scope .w-\[1em\]{width:1em}.booster-scope .w-\[2\.5rem\]{width:2.5rem}.booster-scope .w-\[4rem\]{width:4rem}.booster-scope .w-\[8rem\]{width:8rem}.booster-scope .w-full{width:100%}.booster-scope .min-w-\[60px\]{min-width:60px}.booster-scope .max-w-\[auto\]{max-width:auto}.booster-scope .max-w-sm{max-width:24rem}.booster-scope .flex-1{flex:1 1 0%}.booster-scope .flex-\[var\(--flex-left\)\]{flex:var(--flex-left)}.booster-scope .flex-\[var\(--flex-right\)\]{flex:var(--flex-right)}.booster-scope .flex-shrink{flex-shrink:1}.booster-scope .origin-\[0_0\]{transform-origin:0 0}.booster-scope .-translate-x-1\/2{--tw-translate-x:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.booster-scope .-translate-y-1\/2{--tw-translate-y:-50%;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.booster-scope .-translate-y-\[0\.35rem\]{--tw-translate-y:-0.35rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.booster-scope .translate-x-\[0\.15rem\]{--tw-translate-x:0.15rem;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.booster-scope .scale-\[0\.85\]{--tw-scale-x:0.85;--tw-scale-y:0.85;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.booster-scope .transform{transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.booster-scope .cursor-default{cursor:default}.booster-scope .cursor-not-allowed{cursor:not-allowed}.booster-scope .cursor-pointer{cursor:pointer}.booster-scope .appearance-none{-webkit-appearance:none;-moz-appearance:none;appearance:none}.booster-scope .grid-rows-\[0fr\]{grid-template-rows:0fr}.booster-scope .grid-rows-\[1fr\]{grid-template-rows:1fr}.booster-scope .flex-col{flex-direction:column}.booster-scope .items-center{align-items:center}.booster-scope .items-stretch{align-items:stretch}.booster-scope .justify-end{justify-content:flex-end}.booster-scope .justify-center{justify-content:center}.booster-scope .justify-between{justify-content:space-between}.booster-scope .gap-12{gap:3rem}.booster-scope .gap-2{gap:0.5rem}.booster-scope .gap-3{gap:0.75rem}.booster-scope .gap-4{gap:1rem}.booster-scope .space-x-1 > :not([hidden]) ~ :not([hidden]){--tw-space-x-reverse:0;margin-right:calc(0.25rem * var(--tw-space-x-reverse));margin-left:calc(0.25rem * calc(1 - var(--tw-space-x-reverse)))}.booster-scope .overflow-hidden{overflow:hidden}.booster-scope .rounded{border-radius:0.25rem}.booster-scope .rounded-2xl{border-radius:1rem}.booster-scope .rounded-\[50rem\]{border-radius:50rem}.booster-scope .rounded-full{border-radius:9999px}.booster-scope .rounded-lg{border-radius:0.5rem}.booster-scope .rounded-md{border-radius:0.375rem}.booster-scope .rounded-b-md{border-bottom-right-radius:0.375rem;border-bottom-left-radius:0.375rem}.booster-scope .rounded-t-md{border-top-left-radius:0.375rem;border-top-right-radius:0.375rem}.booster-scope .rounded-tl-none{border-top-left-radius:0px}.booster-scope .rounded-tr-none{border-top-right-radius:0px}.booster-scope .border{border-width:1px}.booster-scope .border-2{border-width:2px}.booster-scope .border-4{border-width:4px}.booster-scope .border-b-0{border-bottom-width:0px}.booster-scope .border-l-0{border-left-width:0px}.booster-scope .border-l-\[1px\]{border-left-width:1px}.booster-scope .border-r-0{border-right-width:0px}.booster-scope .border-r-\[1px\]{border-right-width:1px}.booster-scope .border-t-0{border-top-width:0px}.booster-scope .border-t-\[1px\]{border-top-width:1px}.booster-scope .border-none{border-style:none}.booster-scope .border-\[\#006FFB\]{--tw-border-opacity:1;border-color:rgb(0 111 251 / var(--tw-border-opacity, 1))}.booster-scope .border-\[\#3286F7\]{--tw-border-opacity:1;border-color:rgb(50 134 247 / var(--tw-border-opacity, 1))}.booster-scope .border-\[\#dee2e6\]{--tw-border-opacity:1;border-color:rgb(222 226 230 / var(--tw-border-opacity, 1))}.booster-scope .border-black{--tw-border-opacity:1;border-color:rgb(0 0 0 / var(--tw-border-opacity, 1))}.booster-scope .border-blue-500{--tw-border-opacity:1;border-color:rgb(59 130 246 / var(--tw-border-opacity, 1))}.booster-scope .border-gray-200{--tw-border-opacity:1;border-color:rgb(229 231 235 / var(--tw-border-opacity, 1))}.booster-scope .border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.booster-scope .border-red-200{--tw-border-opacity:1;border-color:rgb(254 202 202 / var(--tw-border-opacity, 1))}.booster-scope .border-transparent{border-color:transparent}.booster-scope .border-t-transparent{border-top-color:transparent}.booster-scope .bg-\[\#006FFB\]{--tw-bg-opacity:1;background-color:rgb(0 111 251 / var(--tw-bg-opacity, 1))}.booster-scope .bg-\[\#0070ba\]{--tw-bg-opacity:1;background-color:rgb(0 112 186 / var(--tw-bg-opacity, 1))}.booster-scope .bg-\[\#3286F7\]{--tw-bg-opacity:1;background-color:rgb(50 134 247 / var(--tw-bg-opacity, 1))}.booster-scope .bg-\[\#f8f9fa\]{--tw-bg-opacity:1;background-color:rgb(248 249 250 / var(--tw-bg-opacity, 1))}.booster-scope .bg-\[\#fafafa\]{--tw-bg-opacity:1;background-color:rgb(250 250 250 / var(--tw-bg-opacity, 1))}.booster-scope .bg-black{--tw-bg-opacity:1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.booster-scope .bg-black\/50{background-color:rgb(0 0 0 / 0.5)}.booster-scope .bg-blue-500{--tw-bg-opacity:1;background-color:rgb(59 130 246 / var(--tw-bg-opacity, 1))}.booster-scope .bg-gray-200{--tw-bg-opacity:1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.booster-scope .bg-red-50{--tw-bg-opacity:1;background-color:rgb(254 242 242 / var(--tw-bg-opacity, 1))}.booster-scope .bg-transparent{background-color:transparent}.booster-scope .bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.booster-scope .bg-opacity-50{--tw-bg-opacity:0.5}.booster-scope .bg-gradient-to-r{background-image:linear-gradient(to right, var(--tw-gradient-stops))}.booster-scope .from-\[\#0070ba\]{--tw-gradient-from:#0070ba var(--tw-gradient-from-position);--tw-gradient-to:rgb(0 112 186 / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to)}.booster-scope .to-\[\#009cde\]{--tw-gradient-to:#009cde var(--tw-gradient-to-position)}.booster-scope .fill-\[\#6c757d\]{fill:#6c757d}.booster-scope .p-1\.5{padding:0.375rem}.booster-scope .p-4{padding:1rem}.booster-scope .p-8{padding:2rem}.booster-scope .px-3{padding-left:0.75rem;padding-right:0.75rem}.booster-scope .px-4{padding-left:1rem;padding-right:1rem}.booster-scope .px-5{padding-left:1.25rem;padding-right:1.25rem}.booster-scope .px-6{padding-left:1.5rem;padding-right:1.5rem}.booster-scope .px-\[0\.6em\]{padding-left:0.6em;padding-right:0.6em}.booster-scope .py-2{padding-top:0.5rem;padding-bottom:0.5rem}.booster-scope .py-2\.5{padding-top:0.625rem;padding-bottom:0.625rem}.booster-scope .py-3{padding-top:0.75rem;padding-bottom:0.75rem}.booster-scope .py-4{padding-top:1rem;padding-bottom:1rem}.booster-scope .py-\[0\.2em\]{padding-top:0.2em;padding-bottom:0.2em}.booster-scope .pb-3{padding-bottom:0.75rem}.booster-scope .pb-6{padding-bottom:1.5rem}.booster-scope .pb-\[\.375rem\]{padding-bottom:.375rem}.booster-scope .pb-\[\.625rem\]{padding-bottom:.625rem}.booster-scope .pb-\[0\.375rem\]{padding-bottom:0.375rem}.booster-scope .pb-\[0\.625rem\]{padding-bottom:0.625rem}.booster-scope .pl-\[\.15rem\]{padding-left:.15rem}.booster-scope .pl-\[2\.25rem\]{padding-left:2.25rem}.booster-scope .pl-\[2\.75rem\]{padding-left:2.75rem}.booster-scope .pt-12{padding-top:3rem}.booster-scope .pt-4{padding-top:1rem}.booster-scope .pt-6{padding-top:1.5rem}.booster-scope .pt-\[1\.4rem\]{padding-top:1.4rem}.booster-scope .pt-\[1\.625rem\]{padding-top:1.625rem}.booster-scope .text-center{text-align:center}.booster-scope .text-right{text-align:right}.booster-scope .text-end{text-align:end}.booster-scope .align-baseline{vertical-align:baseline}.booster-scope .align-\[2px\]{vertical-align:2px}.booster-scope .text-2xl{font-size:1.5rem;line-height:2rem}.booster-scope .text-4xl{font-size:2.25rem;line-height:2.5rem}.booster-scope .text-\[0\.875rem\]{font-size:0.875rem}.booster-scope .text-\[1em\]{font-size:1em}.booster-scope .text-base{font-size:1rem;line-height:1.5rem}.booster-scope .text-lg{font-size:1.125rem;line-height:1.75rem}.booster-scope .text-sm{font-size:0.875rem;line-height:1.25rem}.booster-scope .text-xl{font-size:1.25rem;line-height:1.75rem}.booster-scope .text-xs{font-size:0.75rem;line-height:1rem}.booster-scope .font-bold{font-weight:700}.booster-scope .font-light{font-weight:300}.booster-scope .font-medium{font-weight:500}.booster-scope .font-semibold{font-weight:600}.booster-scope .text-\[\#0070ba\]{--tw-text-opacity:1;color:rgb(0 112 186 / var(--tw-text-opacity, 1))}.booster-scope .text-\[\#212529\]{--tw-text-opacity:1;color:rgb(33 37 41 / var(--tw-text-opacity, 1))}.booster-scope .text-\[\#212529\]\/65{color:rgb(33 37 41 / 0.65)}.booster-scope .text-\[\#aaa\]{--tw-text-opacity:1;color:rgb(170 170 170 / var(--tw-text-opacity, 1))}.booster-scope .text-\[\#dee2e6\]{--tw-text-opacity:1;color:rgb(222 226 230 / var(--tw-text-opacity, 1))}.booster-scope .text-\[\#df1b41\]{--tw-text-opacity:1;color:rgb(223 27 65 / var(--tw-text-opacity, 1))}.booster-scope .text-\[rgba\(33\2c 37\2c 41\2c 0\.65\)\]{color:rgba(33,37,41,0.65)}.booster-scope .text-black{--tw-text-opacity:1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.booster-scope .text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.booster-scope .text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.booster-scope .text-gray-700{--tw-text-opacity:1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.booster-scope .text-gray-800{--tw-text-opacity:1;color:rgb(31 41 55 / var(--tw-text-opacity, 1))}.booster-scope .text-gray-900{--tw-text-opacity:1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.booster-scope .text-red-700{--tw-text-opacity:1;color:rgb(185 28 28 / var(--tw-text-opacity, 1))}.booster-scope .text-white{--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.booster-scope .shadow-2xl{--tw-shadow:0 25px 50px -12px rgb(0 0 0 / 0.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.booster-scope .shadow-lg{--tw-shadow:0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.booster-scope .outline-none{outline:2px solid transparent;outline-offset:2px}.booster-scope .outline{outline-style:solid}.booster-scope .transition-\[grid\]{transition-property:grid;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.booster-scope .transition-\[max-height\]{transition-property:max-height;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.booster-scope .transition-all{transition-property:all;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.booster-scope .transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms}.booster-scope .delay-200{transition-delay:200ms}.booster-scope .duration-100{transition-duration:100ms}.booster-scope .duration-1000{transition-duration:1000ms}.booster-scope .duration-300{transition-duration:300ms}.booster-scope .duration-500{transition-duration:500ms}.booster-scope .ease-in-out{transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1)}.booster-scope .ease-out{transition-timing-function:cubic-bezier(0, 0, 0.2, 1)}.booster-scope .content-\[\'\'\]{--tw-content:'';content:var(--tw-content)}.booster-scope{scroll-behavior:smooth}.booster-scope *, .booster-scope *::before, .booster-scope *::after{box-sizing:border-box;margin:0;padding:0;border:0 solid #e5e7eb}.booster-scope button, .booster-scope input, .booster-scope optgroup, .booster-scope select, .booster-scope textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}.booster-scope ul{list-style:none}.booster-scope button, .booster-scope input:where([type=button]), .booster-scope input:where([type=reset]), .booster-scope input:where([type=submit]){-webkit-appearance:button;background-color:rgba(0,0,0,0);background-image:none}.booster-scope audio, .booster-scope canvas, .booster-scope embed, .booster-scope iframe, .booster-scope img, .booster-scope object, .booster-scope svg, .booster-scope video{display:block;vertical-align:middle}.booster-scope .hover\:border-gray-400:hover{--tw-border-opacity:1;border-color:rgb(156 163 175 / var(--tw-border-opacity, 1))}.booster-scope .hover\:bg-\[\#005ea6\]:hover{--tw-bg-opacity:1;background-color:rgb(0 94 166 / var(--tw-bg-opacity, 1))}.booster-scope .hover\:bg-\[\#f8f9fa\]:hover{--tw-bg-opacity:1;background-color:rgb(248 249 250 / var(--tw-bg-opacity, 1))}.booster-scope .hover\:bg-gray-50:hover{--tw-bg-opacity:1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1))}.booster-scope .hover\:bg-red-100:hover{--tw-bg-opacity:1;background-color:rgb(254 226 226 / var(--tw-bg-opacity, 1))}.booster-scope .hover\:text-gray-700:hover{--tw-text-opacity:1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.booster-scope .hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.booster-scope .focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.booster-scope .focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000)}.booster-scope .focus\:ring-offset-2:focus{--tw-ring-offset-width:2px}.booster-scope .focus\:ring-offset-red-50:focus{--tw-ring-offset-color:#fef2f2}.booster-scope .active\:scale-\[0\.98\]:active{--tw-scale-x:0.98;--tw-scale-y:0.98;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@media (min-width: 640px){.booster-scope .sm\:m-7{margin:1.75rem}.booster-scope .sm\:max-w-\[520px\]{max-width:520px}}@media (min-width: 768px){.booster-scope .md\:mx-0{margin-left:0px;margin-right:0px}.booster-scope .md\:mr-0{margin-right:0px}.booster-scope .md\:grid{display:grid}.booster-scope .md\:grid-cols-\[0fr_5fr_4fr\]{grid-template-columns:0fr 5fr 4fr}.booster-scope .md\:border-t-0{border-top-width:0px}.booster-scope .md\:p-12{padding:3rem}.booster-scope .md\:px-12{padding-left:3rem;padding-right:3rem}}@media (min-width: 1024px){.booster-scope .lg\:w-1\/2{width:50%}.booster-scope .lg\:flex-row{flex-direction:row}}@media (min-width: 1280px){.booster-scope .xl\:max-w-\[var\(--right-side-width\)\]{max-width:var(--right-side-width)}.booster-scope .xl\:grid-cols-\[var\(--wrapper-padding\)_var\(--left-side-width\)_1fr\]{grid-template-columns:var(--wrapper-padding) var(--left-side-width) 1fr}.booster-scope .xl\:border-l{border-left-width:1px}}
@@ -1,13 +1 @@
1
- .booster-scope .itx-paypal-modal {position: fixed;top: 0px;left: 0px;z-index: 1055;display: flex;height: 100%;width: 100%;align-items: center;justify-content: center;overflow: hidden
2
- }.booster-scope .itx-paypal-modal .itx-paypal-modal-wrapper {margin: 1.75rem;display: flex;align-items: center
3
- }@media (min-width: 640px) {.booster-scope .itx-paypal-modal .itx-paypal-modal-wrapper {max-width: 500px
4
- }
5
- }.booster-scope .itx-paypal-modal .itx-paypal-modal-wrapper .itx-paypal-modal-content {display: flex;width: 100%;flex-direction: column;gap: 2rem;border-radius: 0.5rem;border-width: 1px;--tw-bg-opacity: 1;background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));padding: 1rem
6
- }.booster-scope .itx-paypal-modal .itx-paypal-modal-wrapper .itx-paypal-modal-content .modal-header {margin-bottom: 1rem;display: flex;align-items: center;justify-content: space-between
7
- }.booster-scope .itx-paypal-modal .itx-paypal-modal-wrapper .itx-paypal-modal-content .modal-buttons {display: flex;flex-direction: column;gap: 0.75rem
8
- }.booster-scope .itx-paypal-modal .itx-paypal-modal-wrapper .itx-paypal-modal-content .modal-buttons .confirm-button {display: flex;cursor: pointer;align-items: center;justify-content: center;gap: 0.5rem;border-radius: 0.375rem;border-width: 1px;--tw-border-opacity: 1;border-color: rgb(255 193 7 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color: rgb(255 193 7 / var(--tw-bg-opacity, 1));padding-top: .375rem;padding-bottom: .375rem;padding-left: .75rem;padding-right: .75rem
9
- }.booster-scope .itx-paypal-modal .itx-paypal-modal-wrapper .itx-paypal-modal-content .modal-buttons .confirm-button:hover {--tw-border-opacity: 1;border-color: rgb(236 178 19 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color: rgb(236 178 19 / var(--tw-bg-opacity, 1))
10
- }.booster-scope .itx-paypal-modal .itx-paypal-modal-wrapper .itx-paypal-modal-content .modal-buttons .confirm-button:active {--tw-border-opacity: 1;border-color: rgb(236 178 19 / var(--tw-border-opacity, 1));--tw-bg-opacity: 1;background-color: rgb(236 178 19 / var(--tw-bg-opacity, 1))
11
- }.booster-scope .itx-paypal-modal .itx-paypal-modal-wrapper .itx-paypal-modal-content .modal-buttons .close-button {cursor: pointer;border-radius: 0.375rem;--tw-bg-opacity: 1;background-color: rgb(108 117 125 / var(--tw-bg-opacity, 1));padding-top: .375rem;padding-bottom: .375rem;padding-left: .75rem;padding-right: .75rem;--tw-text-opacity: 1;color: rgb(255 255 255 / var(--tw-text-opacity, 1))
12
- }.booster-scope .itx-paypal-modal .itx-paypal-modal-wrapper .itx-paypal-modal-content .modal-buttons .close-button:hover {--tw-bg-opacity: 1;background-color: rgb(92 99 106 / var(--tw-bg-opacity, 1))
13
- }
1
+ .booster-scope .itx-paypal-modal{position:fixed;top:0px;left:0px;z-index:1055;display:flex;height:100%;width:100%;align-items:center;justify-content:center;overflow:hidden;animation:fadeIn .3s ease-out}.booster-scope .itx-paypal-modal::before{content:"";position:absolute;inset:0px;background-color:rgb(0 0 0 / 0.5);--tw-backdrop-blur:blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);animation:fadeIn .3s ease-out}.booster-scope .itx-paypal-modal .itx-paypal-modal-wrapper{position:relative;z-index:10;margin:1rem;display:flex;width:100%;align-items:center}@media (min-width: 640px){.booster-scope .itx-paypal-modal .itx-paypal-modal-wrapper{margin:1.75rem;max-width:520px}}.booster-scope .itx-paypal-modal .itx-paypal-modal-wrapper{animation:slideUp .3s ease-out}.booster-scope .itx-paypal-modal .itx-paypal-modal-wrapper .itx-paypal-modal-content{display:flex;width:100%;flex-direction:column;overflow:hidden;border-radius:1rem;--tw-bg-opacity:1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1));--tw-shadow:0 25px 50px -12px rgb(0 0 0 / 0.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);box-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04)}.booster-scope .itx-paypal-modal .itx-paypal-modal-wrapper .itx-paypal-modal-content .modal-header{display:flex;align-items:center;justify-content:space-between;padding-left:1.5rem;padding-right:1.5rem;padding-top:1.5rem;padding-bottom:1rem}.booster-scope .itx-paypal-modal .itx-paypal-modal-wrapper .itx-paypal-modal-content .modal-header h4{margin:0px;font-size:1.5rem;line-height:2rem;font-weight:600;--tw-text-opacity:1;color:rgb(17 24 39 / var(--tw-text-opacity, 1))}.booster-scope .itx-paypal-modal .itx-paypal-modal-wrapper .itx-paypal-modal-content .modal-body{display:flex;flex-direction:column;align-items:center;gap:1rem;padding-left:1.5rem;padding-right:1.5rem;padding-top:1rem;padding-bottom:1rem}.booster-scope .itx-paypal-modal .itx-paypal-modal-wrapper .itx-paypal-modal-content .modal-body .countdown-container{display:flex;width:100%;flex-direction:column;align-items:center;gap:0.75rem}.booster-scope .itx-paypal-modal .itx-paypal-modal-wrapper .itx-paypal-modal-content .modal-body .countdown-container .countdown-label{font-size:0.875rem;line-height:1.25rem;font-weight:500;--tw-text-opacity:1;color:rgb(75 85 99 / var(--tw-text-opacity, 1))}.booster-scope .itx-paypal-modal .itx-paypal-modal-wrapper .itx-paypal-modal-content .modal-body .countdown-container .countdown-display{display:flex;align-items:center;justify-content:center;gap:0.5rem}.booster-scope .itx-paypal-modal .itx-paypal-modal-wrapper .itx-paypal-modal-content .modal-body .countdown-container .countdown-display .countdown-number{min-width:60px;text-align:center;font-size:2.25rem;line-height:2.5rem;font-weight:700;--tw-text-opacity:1;color:rgb(0 112 186 / var(--tw-text-opacity, 1));font-variant-numeric:tabular-nums;animation:pulse 1s ease-in-out infinite}.booster-scope .itx-paypal-modal .itx-paypal-modal-wrapper .itx-paypal-modal-content .modal-body .countdown-container .countdown-display .countdown-unit{font-size:1.125rem;line-height:1.75rem;font-weight:500;--tw-text-opacity:1;color:rgb(107 114 128 / var(--tw-text-opacity, 1))}.booster-scope .itx-paypal-modal .itx-paypal-modal-wrapper .itx-paypal-modal-content .modal-body .countdown-container .countdown-progress{margin-top:0.5rem;height:0.25rem;width:100%;overflow:hidden;border-radius:9999px;--tw-bg-opacity:1;background-color:rgb(229 231 235 / var(--tw-bg-opacity, 1))}.booster-scope .itx-paypal-modal .itx-paypal-modal-wrapper .itx-paypal-modal-content .modal-body .countdown-container .countdown-progress .countdown-bar{height:100%;background-image:linear-gradient(to right, var(--tw-gradient-stops));--tw-gradient-from:#0070ba var(--tw-gradient-from-position);--tw-gradient-to:rgb(0 112 186 / 0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from), var(--tw-gradient-to);--tw-gradient-to:#009cde var(--tw-gradient-to-position);transition-property:all;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:1000ms;transition-timing-function:linear}.booster-scope .itx-paypal-modal .itx-paypal-modal-wrapper .itx-paypal-modal-content .modal-body .modal-message{text-align:center;line-height:1.625;--tw-text-opacity:1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.booster-scope .itx-paypal-modal .itx-paypal-modal-wrapper .itx-paypal-modal-content .modal-buttons{display:flex;flex-direction:column;gap:0.75rem;padding-left:1.5rem;padding-right:1.5rem;padding-bottom:1.5rem;padding-top:0.5rem}.booster-scope .itx-paypal-modal .itx-paypal-modal-wrapper .itx-paypal-modal-content .modal-buttons .confirm-button{display:flex;cursor:pointer;align-items:center;justify-content:center;gap:0.5rem;border-radius:0.5rem;--tw-bg-opacity:1;background-color:rgb(0 112 186 / var(--tw-bg-opacity, 1));padding-top:0.75rem;padding-bottom:0.75rem;padding-left:1.5rem;padding-right:1.5rem;font-weight:500;--tw-text-opacity:1;color:rgb(255 255 255 / var(--tw-text-opacity, 1));transition-property:all;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:200ms}.booster-scope .itx-paypal-modal .itx-paypal-modal-wrapper .itx-paypal-modal-content .modal-buttons .confirm-button:hover{--tw-bg-opacity:1;background-color:rgb(0 94 166 / var(--tw-bg-opacity, 1));--tw-shadow:0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)}.booster-scope .itx-paypal-modal .itx-paypal-modal-wrapper .itx-paypal-modal-content .modal-buttons .confirm-button:active{--tw-scale-x:0.98;--tw-scale-y:0.98;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.booster-scope .itx-paypal-modal .itx-paypal-modal-wrapper .itx-paypal-modal-content .modal-buttons .confirm-button{box-shadow:0 4px 6px -1px rgba(0,112,186,.3)}.booster-scope .itx-paypal-modal .itx-paypal-modal-wrapper .itx-paypal-modal-content .modal-buttons .confirm-button:hover{box-shadow:0 6px 12px -2px rgba(0,112,186,.4)}.booster-scope .itx-paypal-modal .itx-paypal-modal-wrapper .itx-paypal-modal-content .modal-buttons .close-button{cursor:pointer;border-radius:0.5rem;border-width:1px;--tw-border-opacity:1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1));background-color:transparent;padding-top:0.625rem;padding-bottom:0.625rem;padding-left:1.5rem;padding-right:1.5rem;font-weight:500;--tw-text-opacity:1;color:rgb(75 85 99 / var(--tw-text-opacity, 1));transition-property:all;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:200ms}.booster-scope .itx-paypal-modal .itx-paypal-modal-wrapper .itx-paypal-modal-content .modal-buttons .close-button:hover{--tw-border-opacity:1;border-color:rgb(156 163 175 / var(--tw-border-opacity, 1));--tw-bg-opacity:1;background-color:rgb(249 250 251 / var(--tw-bg-opacity, 1));--tw-text-opacity:1;color:rgb(55 65 81 / var(--tw-text-opacity, 1))}.booster-scope .itx-paypal-modal .itx-paypal-modal-wrapper .itx-paypal-modal-content .modal-buttons .close-button:active{--tw-scale-x:0.98;--tw-scale-y:0.98;transform:translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes slideUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%, 100%{transform:scale(1)}50%{transform:scale(1.05)}}
package/dist/types.d.ts CHANGED
@@ -4,8 +4,10 @@ export declare enum CheckoutEvents {
4
4
  SUBTOTAL_CHANGE = "subtotalChange",// 更新商品小计
5
5
  PAYMENT_METHOD_CHANGE = "paymentMethodChange",// 切换支付方式
6
6
  TIP_CHANGE = "tipChange",// 小费变化
7
+ CREDIT_CARD_FAILED = "creditCardFailed",// 卡号支付失败
7
8
  FEE_UPDATE = "feeUpdate",// 更新附加费费用
8
- ORDER_COMPLETED = "orderCompleted"
9
+ ORDER_COMPLETED = "orderCompleted",// 订单支付完成
10
+ ERROR_TIP_SHOW = "errorTipShow"
9
11
  }
10
12
  export interface CheckoutConfig {
11
13
  token: string;
package/dist/types.js CHANGED
@@ -4,6 +4,8 @@ export var CheckoutEvents;
4
4
  CheckoutEvents["SUBTOTAL_CHANGE"] = "subtotalChange";
5
5
  CheckoutEvents["PAYMENT_METHOD_CHANGE"] = "paymentMethodChange";
6
6
  CheckoutEvents["TIP_CHANGE"] = "tipChange";
7
+ CheckoutEvents["CREDIT_CARD_FAILED"] = "creditCardFailed";
7
8
  CheckoutEvents["FEE_UPDATE"] = "feeUpdate";
8
9
  CheckoutEvents["ORDER_COMPLETED"] = "orderCompleted";
10
+ CheckoutEvents["ERROR_TIP_SHOW"] = "errorTipShow";
9
11
  })(CheckoutEvents || (CheckoutEvents = {}));
package/package.json CHANGED
@@ -1,10 +1,38 @@
1
1
  {
2
2
  "name": "@intercartx/booster-core",
3
- "version": "0.0.1-beta.21",
3
+ "version": "0.0.1-beta.23",
4
+ "description": "核心功能库,提供结账系统的业务逻辑、数据模型、验证工具、API 接口和样式文件",
4
5
  "type": "module",
5
6
  "main": "dist/index.js",
6
7
  "module": "dist/index.js",
8
+ "types": "dist/index.d.ts",
9
+ "style": "dist/global.css",
10
+ "files": [
11
+ "dist",
12
+ "package.json",
13
+ "README.md",
14
+ "LICENSE"
15
+ ],
16
+ "keywords": [
17
+ "checkout",
18
+ "payment",
19
+ "ecommerce",
20
+ "form-validation",
21
+ "address",
22
+ "shipping",
23
+ "typescript"
24
+ ],
25
+ "author": "Intercartx",
7
26
  "license": "GPL-3.0-only",
27
+ "repository": {
28
+ "type": "git",
29
+ "url": "https://gitlab.influx.io/intercartx/booster.git",
30
+ "directory": "packages/booster-core"
31
+ },
32
+ "engines": {
33
+ "node": ">=18.0.0"
34
+ },
35
+ "sideEffects": false,
8
36
  "exports": {
9
37
  ".": {
10
38
  "import": "./dist/index.js",
@@ -16,14 +44,6 @@
16
44
  },
17
45
  "./styles/*": "./dist/styles/*"
18
46
  },
19
- "files": [
20
- "dist",
21
- "package.json",
22
- "README.md",
23
- "LICENSE"
24
- ],
25
- "style": "dist/global.css",
26
- "types": "dist/index.d.ts",
27
47
  "devDependencies": {
28
48
  "@types/google.maps": "^3.58.1",
29
49
  "@types/node": "^24.0.15",
@@ -50,9 +70,10 @@
50
70
  },
51
71
  "scripts": {
52
72
  "build:scss": "sh build-css.sh",
53
- "build:styles": "rm -rf ./dist/styles && mkdir -p ./dist && cp -r ./styles ./dist/styles",
73
+ "build:styles": "cp -r ./styles ./dist/styles",
54
74
  "build:ts": "tsc",
55
- "build": "pnpm run build:scss && pnpm run build:styles && pnpm run build:ts",
75
+ "build:clear": "rm -rf ./dist && rm -rf ./styles",
76
+ "build": "pnpm build:clear && pnpm build:scss && pnpm build:ts && pnpm build:styles",
56
77
  "dev": "chokidar 'src/**/*.scss' -c 'pnpm run build:scss'",
57
78
  "typecheck": "tsc --noEmit"
58
79
  }