@ss-dev/agnostic-checkout 0.1.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +439 -0
- package/dist/components/accordion-layout.d.ts +3 -0
- package/dist/components/accordion-layout.d.ts.map +1 -0
- package/dist/components/checkout-content.d.ts +5 -0
- package/dist/components/checkout-content.d.ts.map +1 -0
- package/dist/components/checkout-layout.d.ts +3 -0
- package/dist/components/checkout-layout.d.ts.map +1 -0
- package/dist/components/checkout.d.ts +4 -0
- package/dist/components/checkout.d.ts.map +1 -0
- package/dist/components/dev-tools.d.ts +3 -0
- package/dist/components/dev-tools.d.ts.map +1 -0
- package/dist/components/feedback-screen.d.ts +3 -0
- package/dist/components/feedback-screen.d.ts.map +1 -0
- package/dist/components/mobile-bar.d.ts +3 -0
- package/dist/components/mobile-bar.d.ts.map +1 -0
- package/dist/components/mobile-order-bar.d.ts +3 -0
- package/dist/components/mobile-order-bar.d.ts.map +1 -0
- package/dist/components/order-sidebar-summary.d.ts +3 -0
- package/dist/components/order-sidebar-summary.d.ts.map +1 -0
- package/dist/components/order-summary.d.ts +4 -0
- package/dist/components/order-summary.d.ts.map +1 -0
- package/dist/components/payment-form.d.ts +2 -0
- package/dist/components/payment-form.d.ts.map +1 -0
- package/dist/components/payment-methods.d.ts +4 -0
- package/dist/components/payment-methods.d.ts.map +1 -0
- package/dist/components/shipping-methods.d.ts +3 -0
- package/dist/components/shipping-methods.d.ts.map +1 -0
- package/dist/components/types.d.ts +105 -0
- package/dist/components/types.d.ts.map +1 -0
- package/dist/components/ui/badge.d.ts +9 -0
- package/dist/components/ui/badge.d.ts.map +1 -0
- package/dist/components/ui/button.d.ts +16 -0
- package/dist/components/ui/button.d.ts.map +1 -0
- package/dist/components/ui/card.d.ts +19 -0
- package/dist/components/ui/card.d.ts.map +1 -0
- package/dist/components/ui/index.d.ts +6 -0
- package/dist/components/ui/index.d.ts.map +1 -0
- package/dist/components/ui/selectable-card.d.ts +15 -0
- package/dist/components/ui/selectable-card.d.ts.map +1 -0
- package/dist/components/ui/spinner.d.ts +7 -0
- package/dist/components/ui/spinner.d.ts.map +1 -0
- package/dist/core/checkout-context.d.ts +67 -0
- package/dist/core/checkout-context.d.ts.map +1 -0
- package/dist/core/checkout-machine.d.ts +3 -0
- package/dist/core/checkout-machine.d.ts.map +1 -0
- package/dist/core/event-system.d.ts +35 -0
- package/dist/core/event-system.d.ts.map +1 -0
- package/dist/core/i18n-context.d.ts +17 -0
- package/dist/core/i18n-context.d.ts.map +1 -0
- package/dist/core/license.d.ts +18 -0
- package/dist/core/license.d.ts.map +1 -0
- package/dist/core/provider.interface.d.ts +7 -0
- package/dist/core/provider.interface.d.ts.map +1 -0
- package/dist/core/types.d.ts +76 -0
- package/dist/core/types.d.ts.map +1 -0
- package/dist/hooks/useCheckout.d.ts +37 -0
- package/dist/hooks/useCheckout.d.ts.map +1 -0
- package/dist/hooks/useLicense.d.ts +8 -0
- package/dist/hooks/useLicense.d.ts.map +1 -0
- package/dist/index.cjs +157 -0
- package/dist/index.d.ts +21 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +5069 -0
- package/dist/locales/en.d.ts +3 -0
- package/dist/locales/en.d.ts.map +1 -0
- package/dist/locales/es.d.ts +3 -0
- package/dist/locales/es.d.ts.map +1 -0
- package/dist/locales/index.d.ts +14 -0
- package/dist/locales/index.d.ts.map +1 -0
- package/dist/locales/pt-BR.d.ts +3 -0
- package/dist/locales/pt-BR.d.ts.map +1 -0
- package/dist/locales/types.d.ts +46 -0
- package/dist/locales/types.d.ts.map +1 -0
- package/dist/plugins/cart-edit-plugin.d.ts +10 -0
- package/dist/plugins/cart-edit-plugin.d.ts.map +1 -0
- package/dist/plugins/discount-plugin.d.ts +4 -0
- package/dist/plugins/discount-plugin.d.ts.map +1 -0
- package/dist/plugins/index.d.ts +8 -0
- package/dist/plugins/index.d.ts.map +1 -0
- package/dist/plugins/plugin-context.d.ts +10 -0
- package/dist/plugins/plugin-context.d.ts.map +1 -0
- package/dist/plugins/shipping-plugin.d.ts +27 -0
- package/dist/plugins/shipping-plugin.d.ts.map +1 -0
- package/dist/plugins/types.d.ts +35 -0
- package/dist/plugins/types.d.ts.map +1 -0
- package/dist/theme/color-utils.d.ts +39 -0
- package/dist/theme/color-utils.d.ts.map +1 -0
- package/dist/theme/theme-provider.d.ts +11 -0
- package/dist/theme/theme-provider.d.ts.map +1 -0
- package/dist/theme/tokens.d.ts +30 -0
- package/dist/theme/tokens.d.ts.map +1 -0
- package/dist/utils/utils.d.ts +7 -0
- package/dist/utils/utils.d.ts.map +1 -0
- package/package.json +56 -0
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
interface BadgeProps {
|
|
3
|
+
children: ReactNode;
|
|
4
|
+
variant?: "default" | "success" | "error" | "primary" | "outline";
|
|
5
|
+
className?: string;
|
|
6
|
+
}
|
|
7
|
+
export declare const Badge: ({ children, variant, className }: BadgeProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=badge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../../src/components/ui/badge.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,UAAU,UAAU;IAChB,QAAQ,EAAE,SAAS,CAAC;IACpB,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,KAAK,GAAI,kCAA8C,UAAU,4CAgB7E,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
interface ButtonProps {
|
|
3
|
+
label: string;
|
|
4
|
+
onPress?: (e: React.MouseEvent<HTMLButtonElement>) => void;
|
|
5
|
+
variant?: "solid" | "outline" | "ghost" | "primary";
|
|
6
|
+
size?: "sm" | "md" | "lg";
|
|
7
|
+
icon?: ReactNode;
|
|
8
|
+
loading?: boolean;
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
className?: string;
|
|
11
|
+
type?: "button" | "submit" | "reset";
|
|
12
|
+
id?: string;
|
|
13
|
+
}
|
|
14
|
+
export declare const Button: ({ label, onPress, variant, size, icon, loading, disabled, className, type, id, }: ButtonProps) => import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=button.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../src/components/ui/button.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAIvC,UAAU,WAAW;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC;IAC3D,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,CAAC;IACpD,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IAC1B,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,OAAO,CAAC;IACrC,EAAE,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,MAAM,GAAI,kFAWpB,WAAW,4CA8Bb,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
interface CardProps {
|
|
3
|
+
children: ReactNode;
|
|
4
|
+
className?: string;
|
|
5
|
+
variant?: "default" | "active" | "flat";
|
|
6
|
+
onClick?: () => void;
|
|
7
|
+
id?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const Card: ({ children, className, variant, onClick, id }: CardProps) => import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export declare const CardContent: ({ children, className }: {
|
|
11
|
+
children: ReactNode;
|
|
12
|
+
className?: string;
|
|
13
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export declare const CardHeader: ({ children, className }: {
|
|
15
|
+
children: ReactNode;
|
|
16
|
+
className?: string;
|
|
17
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card.d.ts","sourceRoot":"","sources":["../../../src/components/ui/card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,UAAU,SAAS;IACf,QAAQ,EAAE,SAAS,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,SAAS,GAAG,QAAQ,GAAG,MAAM,CAAC;IACxC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,IAAI,GAAI,+CAA2D,SAAS,4CAiBxF,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,yBAAyB;IAAE,QAAQ,EAAE,SAAS,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,4CAE/F,CAAC;AAEF,eAAO,MAAM,UAAU,GAAI,yBAAyB;IAAE,QAAQ,EAAE,SAAS,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,4CAE9F,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
interface SelectableCardProps {
|
|
3
|
+
isSelected: boolean;
|
|
4
|
+
onClick: () => void;
|
|
5
|
+
icon?: ReactNode;
|
|
6
|
+
title: string;
|
|
7
|
+
description?: ReactNode;
|
|
8
|
+
rightElement?: ReactNode;
|
|
9
|
+
children?: ReactNode;
|
|
10
|
+
className?: string;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare const SelectableCard: ({ isSelected, onClick, icon, title, description, rightElement, children, className, disabled }: SelectableCardProps) => import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=selectable-card.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selectable-card.d.ts","sourceRoot":"","sources":["../../../src/components/ui/selectable-card.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,UAAU,mBAAmB;IACzB,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,eAAO,MAAM,cAAc,GAAI,gGAU5B,mBAAmB,4CA+CrB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"spinner.d.ts","sourceRoot":"","sources":["../../../src/components/ui/spinner.tsx"],"names":[],"mappings":"AAGA,UAAU,YAAY;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;CAC7B;AAED,eAAO,MAAM,OAAO,GAAI,qBAA4B,YAAY,4CAY/D,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { default as React, ReactNode } from 'react';
|
|
2
|
+
import { CheckoutState } from './checkout-machine';
|
|
3
|
+
import { CheckoutItem, PaymentMethod, CheckoutTotals, CartController, CartState, PaymentResult } from './types';
|
|
4
|
+
import { PaymentProvider } from './provider.interface';
|
|
5
|
+
import { CheckoutEvent, EventHandler } from './event-system';
|
|
6
|
+
import { CheckoutTheme } from '../theme/tokens';
|
|
7
|
+
interface CheckoutContextState {
|
|
8
|
+
items: CheckoutItem[];
|
|
9
|
+
paymentMethods: PaymentMethod[];
|
|
10
|
+
provider: PaymentProvider;
|
|
11
|
+
currency: string;
|
|
12
|
+
locale: string;
|
|
13
|
+
step: CheckoutState;
|
|
14
|
+
selectedMethodId: string | null;
|
|
15
|
+
selectedShippingMethodId: string | null;
|
|
16
|
+
totals: CheckoutTotals;
|
|
17
|
+
cartController?: CartController;
|
|
18
|
+
theme?: CheckoutTheme;
|
|
19
|
+
error: string | null;
|
|
20
|
+
paymentResult?: PaymentResult;
|
|
21
|
+
readyMap: Record<string, boolean>;
|
|
22
|
+
}
|
|
23
|
+
type Action = {
|
|
24
|
+
type: "SET_STEP";
|
|
25
|
+
step: CheckoutState;
|
|
26
|
+
} | {
|
|
27
|
+
type: "SELECT_METHOD";
|
|
28
|
+
methodId: string;
|
|
29
|
+
} | {
|
|
30
|
+
type: "SELECT_SHIPPING_METHOD";
|
|
31
|
+
methodId: string;
|
|
32
|
+
} | {
|
|
33
|
+
type: "SET_ERROR";
|
|
34
|
+
error: string | null;
|
|
35
|
+
} | {
|
|
36
|
+
type: "SET_CART";
|
|
37
|
+
cartState: CartState;
|
|
38
|
+
} | {
|
|
39
|
+
type: "SYNC_PROPS";
|
|
40
|
+
items: CheckoutItem[];
|
|
41
|
+
totals: CheckoutTotals;
|
|
42
|
+
} | {
|
|
43
|
+
type: "SET_PAYMENT_RESULT";
|
|
44
|
+
result: PaymentResult;
|
|
45
|
+
} | {
|
|
46
|
+
type: "SET_METHOD_READY";
|
|
47
|
+
methodId: string;
|
|
48
|
+
ready: boolean;
|
|
49
|
+
};
|
|
50
|
+
export declare const CheckoutProvider: ({ children, config, initialStatus, onEvent, defaultShippingMethodId, defaultPaymentMethodId, }: {
|
|
51
|
+
children: ReactNode;
|
|
52
|
+
config: Omit<CheckoutContextState, "step" | "selectedMethodId" | "selectedShippingMethodId" | "error" | "paymentResult" | "readyMap">;
|
|
53
|
+
initialStatus?: Extract<PaymentResult, {
|
|
54
|
+
status: "success" | "error" | "pending";
|
|
55
|
+
}>;
|
|
56
|
+
onEvent?: EventHandler;
|
|
57
|
+
defaultShippingMethodId?: string;
|
|
58
|
+
defaultPaymentMethodId?: string;
|
|
59
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
60
|
+
export declare const useCheckoutContext: () => {
|
|
61
|
+
state: CheckoutContextState;
|
|
62
|
+
dispatch: React.Dispatch<Action>;
|
|
63
|
+
emitEvent: (event: CheckoutEvent) => void;
|
|
64
|
+
eventLog: string[];
|
|
65
|
+
};
|
|
66
|
+
export {};
|
|
67
|
+
//# sourceMappingURL=checkout-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkout-context.d.ts","sourceRoot":"","sources":["../../src/core/checkout-context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAwE,MAAM,OAAO,CAAC;AAC7F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACrH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAErD,UAAU,oBAAoB;IAC1B,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,QAAQ,EAAE,eAAe,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,aAAa,CAAC;IACpB,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,wBAAwB,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,MAAM,EAAE,cAAc,CAAC;IACvB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC;AAED,KAAK,MAAM,GACL;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,IAAI,EAAE,aAAa,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,wBAAwB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACpD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,KAAK,EAAE,YAAY,EAAE,CAAC;IAAC,MAAM,EAAE,cAAc,CAAA;CAAE,GACrE;IAAE,IAAI,EAAE,oBAAoB,CAAC;IAAC,MAAM,EAAE,aAAa,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC;AAgCrE,eAAO,MAAM,gBAAgB,GAAI,gGAO9B;IACC,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,IAAI,CAAC,oBAAoB,EAAE,MAAM,GAAG,kBAAkB,GAAG,0BAA0B,GAAG,OAAO,GAAG,eAAe,GAAG,UAAU,CAAC,CAAC;IACtI,aAAa,CAAC,EAAE,OAAO,CAAC,aAAa,EAAE;QAAE,MAAM,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,CAAA;KAAE,CAAC,CAAC;IACpF,OAAO,CAAC,EAAE,YAAY,CAAC;IACvB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,sBAAsB,CAAC,EAAE,MAAM,CAAC;CACnC,4CA8BA,CAAC;AAEF,eAAO,MAAM,kBAAkB;WA3EpB,oBAAoB;cACjB,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;eACrB,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI;cAC/B,MAAM,EAAE;CAgFrB,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export type CheckoutState = "review" | "shipping_method" | "payment_method" | "payment_details" | "processing" | "pending" | "redirect" | "success" | "error";
|
|
2
|
+
export declare const isValidTransition: (from: CheckoutState, to: CheckoutState) => boolean;
|
|
3
|
+
//# sourceMappingURL=checkout-machine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkout-machine.d.ts","sourceRoot":"","sources":["../../src/core/checkout-machine.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GACnB,QAAQ,GACR,iBAAiB,GACjB,gBAAgB,GAChB,iBAAiB,GACjB,YAAY,GACZ,SAAS,GACT,UAAU,GACV,SAAS,GACT,OAAO,CAAC;AAEd,eAAO,MAAM,iBAAiB,GAAI,MAAM,aAAa,EAAE,IAAI,aAAa,KAAG,OAc1E,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { CheckoutState } from './checkout-machine';
|
|
2
|
+
export type CheckoutEvent = {
|
|
3
|
+
type: "CHECKOUT_VIEWED";
|
|
4
|
+
} | {
|
|
5
|
+
type: "STEP_CHANGED";
|
|
6
|
+
step: CheckoutState;
|
|
7
|
+
} | {
|
|
8
|
+
type: "PAYMENT_METHOD_SELECTED";
|
|
9
|
+
methodId: string;
|
|
10
|
+
} | {
|
|
11
|
+
type: "SHIPPING_METHOD_SELECTED";
|
|
12
|
+
methodId: string;
|
|
13
|
+
} | {
|
|
14
|
+
type: "PAYMENT_SUBMITTED";
|
|
15
|
+
} | {
|
|
16
|
+
type: "PAYMENT_SUCCESS";
|
|
17
|
+
transactionId: string;
|
|
18
|
+
} | {
|
|
19
|
+
type: "PAYMENT_ERROR";
|
|
20
|
+
error: string;
|
|
21
|
+
} | {
|
|
22
|
+
type: "COUPON_APPLY_REQUESTED";
|
|
23
|
+
code: string;
|
|
24
|
+
} | {
|
|
25
|
+
type: "COUPON_REMOVE_REQUESTED";
|
|
26
|
+
} | {
|
|
27
|
+
type: "ITEM_QUANTITY_UPDATE_REQUESTED";
|
|
28
|
+
itemId: string;
|
|
29
|
+
quantity: number;
|
|
30
|
+
} | {
|
|
31
|
+
type: "ITEM_REMOVE_REQUESTED";
|
|
32
|
+
itemId: string;
|
|
33
|
+
};
|
|
34
|
+
export type EventHandler = (event: CheckoutEvent) => void;
|
|
35
|
+
//# sourceMappingURL=event-system.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-system.d.ts","sourceRoot":"","sources":["../../src/core/event-system.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,MAAM,MAAM,aAAa,GACnB;IAAE,IAAI,EAAE,iBAAiB,CAAA;CAAE,GAC3B;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,IAAI,EAAE,aAAa,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,yBAAyB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,0BAA0B,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GACtD;IAAE,IAAI,EAAE,mBAAmB,CAAA;CAAE,GAC7B;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACxC;IAAE,IAAI,EAAE,wBAAwB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAChD;IAAE,IAAI,EAAE,yBAAyB,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,gCAAgC,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC5E;IAAE,IAAI,EAAE,uBAAuB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAExD,MAAM,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { CheckoutMessages, CheckoutFormatters } from '../locales/types';
|
|
3
|
+
interface I18nContextValue {
|
|
4
|
+
t: CheckoutMessages;
|
|
5
|
+
fmt: (amount: number) => string;
|
|
6
|
+
}
|
|
7
|
+
export interface I18nProviderProps {
|
|
8
|
+
locale: string;
|
|
9
|
+
currency: string;
|
|
10
|
+
messages?: Partial<CheckoutMessages>;
|
|
11
|
+
formatters?: CheckoutFormatters;
|
|
12
|
+
children: ReactNode;
|
|
13
|
+
}
|
|
14
|
+
export declare const I18nProvider: ({ locale, currency, messages, formatters, children }: I18nProviderProps) => import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export declare const useI18n: () => I18nContextValue;
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=i18n-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"i18n-context.d.ts","sourceRoot":"","sources":["../../src/core/i18n-context.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAI7E,UAAU,gBAAgB;IACtB,CAAC,EAAE,gBAAgB,CAAC;IACpB,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;CACnC;AAID,MAAM,WAAW,iBAAiB;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACrC,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,QAAQ,EAAE,SAAS,CAAC;CACvB;AAED,eAAO,MAAM,YAAY,GAAI,sDAAsD,iBAAiB,4CAYnG,CAAC;AAEF,eAAO,MAAM,OAAO,QAAO,gBAM1B,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface LicenseInitOptions {
|
|
2
|
+
licenseKey: string;
|
|
3
|
+
}
|
|
4
|
+
export type PlanType = "basic" | "pro";
|
|
5
|
+
export interface LicenseState {
|
|
6
|
+
isValid: boolean;
|
|
7
|
+
plan: PlanType;
|
|
8
|
+
loading: boolean;
|
|
9
|
+
reason?: string;
|
|
10
|
+
}
|
|
11
|
+
export declare const featuresByPlan: Record<PlanType, string[]>;
|
|
12
|
+
type Subscriber = (state: LicenseState) => void;
|
|
13
|
+
export declare const subscribeLicense: (sub: Subscriber) => () => void;
|
|
14
|
+
export declare const getLicenseState: () => LicenseState;
|
|
15
|
+
export declare const hasFeature: (feature: string) => boolean;
|
|
16
|
+
export declare const initCheckout: ({ licenseKey, }: LicenseInitOptions) => Promise<void>;
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=license.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"license.d.ts","sourceRoot":"","sources":["../../src/core/license.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,kBAAkB;IAC/B,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,KAAK,CAAC;AAEvC,MAAM,WAAW,YAAY;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,QAAQ,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,CAGrD,CAAC;AAYF,KAAK,UAAU,GAAG,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC;AAOhD,eAAO,MAAM,gBAAgB,GAAI,KAAK,UAAU,eAK/C,CAAC;AAEF,eAAO,MAAM,eAAe,oBAA4B,CAAC;AAEzD,eAAO,MAAM,UAAU,GAAI,SAAS,MAAM,KAAG,OAG5C,CAAC;AAEF,eAAO,MAAM,YAAY,GAAU,iBAEhC,kBAAkB,kBAoFpB,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { PaymentPayload, PaymentResult } from './types';
|
|
2
|
+
export interface PaymentProvider {
|
|
3
|
+
initialize?(config: unknown): Promise<void>;
|
|
4
|
+
createPayment(data: PaymentPayload): Promise<PaymentResult>;
|
|
5
|
+
confirmPayment?(data: unknown): Promise<PaymentResult>;
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=provider.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.interface.d.ts","sourceRoot":"","sources":["../../src/core/provider.interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7D,MAAM,WAAW,eAAe;IAC5B,UAAU,CAAC,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5C,aAAa,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;IAC5D,cAAc,CAAC,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CAC1D"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { ButtonProps } from '../components/types';
|
|
3
|
+
export interface CheckoutItem {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
quantity: number;
|
|
7
|
+
unitPrice: number;
|
|
8
|
+
discount?: {
|
|
9
|
+
type: "percentage" | "fixed";
|
|
10
|
+
value: number;
|
|
11
|
+
label?: string;
|
|
12
|
+
};
|
|
13
|
+
total: number;
|
|
14
|
+
image?: string;
|
|
15
|
+
}
|
|
16
|
+
export interface CheckoutTotals {
|
|
17
|
+
subtotal: number;
|
|
18
|
+
discount?: number;
|
|
19
|
+
taxes?: number;
|
|
20
|
+
shipping?: number;
|
|
21
|
+
total: number;
|
|
22
|
+
}
|
|
23
|
+
export interface CartState {
|
|
24
|
+
items: CheckoutItem[];
|
|
25
|
+
totals: CheckoutTotals;
|
|
26
|
+
}
|
|
27
|
+
export interface CartController {
|
|
28
|
+
updateQuantity: (id: string, qty: number) => Promise<CartState>;
|
|
29
|
+
removeItem: (id: string) => Promise<CartState>;
|
|
30
|
+
applyCoupon: (code: string) => Promise<CartState>;
|
|
31
|
+
removeCoupon?: () => Promise<CartState>;
|
|
32
|
+
}
|
|
33
|
+
export interface PaymentMethodComponentProps {
|
|
34
|
+
/** Call this to enable or disable the Pay button while the user fills in the form */
|
|
35
|
+
onReadyChange: (ready: boolean) => void;
|
|
36
|
+
}
|
|
37
|
+
export interface PaymentMethod {
|
|
38
|
+
id: string;
|
|
39
|
+
label: string;
|
|
40
|
+
type: string;
|
|
41
|
+
icon?: string;
|
|
42
|
+
/**
|
|
43
|
+
* Optional renderer for inline payment UI (card form, wallet picker, etc.).
|
|
44
|
+
* If provided, the Pay button starts disabled until `onReadyChange(true)` is called.
|
|
45
|
+
*/
|
|
46
|
+
renderComponent?: (props: PaymentMethodComponentProps) => ReactNode;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Props the integrator can return from createPayment to control
|
|
50
|
+
* what the FeedbackScreen displays after a payment attempt.
|
|
51
|
+
* `variant` is always derived by the framework.
|
|
52
|
+
*/
|
|
53
|
+
export interface FeedbackProps {
|
|
54
|
+
title: string;
|
|
55
|
+
description?: string;
|
|
56
|
+
actions?: ButtonProps[];
|
|
57
|
+
actionsLayout?: "row" | "column";
|
|
58
|
+
children?: ReactNode;
|
|
59
|
+
}
|
|
60
|
+
export type PaymentResult = {
|
|
61
|
+
status: "success";
|
|
62
|
+
feedback?: FeedbackProps;
|
|
63
|
+
} | {
|
|
64
|
+
status: "pending";
|
|
65
|
+
feedback?: FeedbackProps;
|
|
66
|
+
} | {
|
|
67
|
+
status: "error";
|
|
68
|
+
feedback?: FeedbackProps;
|
|
69
|
+
} | {
|
|
70
|
+
status: "redirect";
|
|
71
|
+
url: string;
|
|
72
|
+
feedback?: FeedbackProps;
|
|
73
|
+
};
|
|
74
|
+
export type FractalButtonVariant = "solid" | "outline" | "ghost";
|
|
75
|
+
export type PaymentPayload = unknown;
|
|
76
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAIvD,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAElB,QAAQ,CAAC,EAAE;QACP,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC;QAC7B,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IAEF,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,SAAS;IACtB,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,MAAM,EAAE,cAAc,CAAC;CAC1B;AAED,MAAM,WAAW,cAAc;IAC3B,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IAChE,UAAU,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IAC/C,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;IAClD,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,SAAS,CAAC,CAAC;CAC3C;AAID,MAAM,WAAW,2BAA2B;IACxC,qFAAqF;IACrF,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CAC3C;AAED,MAAM,WAAW,aAAa;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,2BAA2B,KAAK,SAAS,CAAC;CACvE;AAID;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,aAAa,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC;IACjC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACxB;AAID,MAAM,MAAM,aAAa,GACnB;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,aAAa,CAAA;CAAE,GAC/C;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,EAAE,aAAa,CAAA;CAAE,GAC/C;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,aAAa,CAAA;CAAE,GAC7C;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,aAAa,CAAA;CAAE,CAAC;AAIpE,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,SAAS,GAAG,OAAO,CAAC;AAGjE,MAAM,MAAM,cAAc,GAAG,OAAO,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { CheckoutState } from '../core/checkout-machine';
|
|
2
|
+
export declare const useCheckout: () => {
|
|
3
|
+
totals: {
|
|
4
|
+
subtotal: number;
|
|
5
|
+
discount?: number;
|
|
6
|
+
taxes?: number;
|
|
7
|
+
shipping?: number;
|
|
8
|
+
total: number;
|
|
9
|
+
};
|
|
10
|
+
setStep: (step: CheckoutState) => void;
|
|
11
|
+
selectMethod: (methodId: string) => void;
|
|
12
|
+
selectShippingMethod: (methodId: string) => void;
|
|
13
|
+
submitPayment: (data: unknown) => Promise<void>;
|
|
14
|
+
setError: (error: string) => void;
|
|
15
|
+
setMethodReady: (methodId: string, ready: boolean) => void;
|
|
16
|
+
isMethodReady: boolean;
|
|
17
|
+
updateQuantity: (id: string, qty: number) => Promise<void>;
|
|
18
|
+
removeItem: (id: string) => Promise<void>;
|
|
19
|
+
applyCoupon: (code: string) => Promise<boolean>;
|
|
20
|
+
removeCoupon: () => Promise<boolean>;
|
|
21
|
+
hasCartController: boolean;
|
|
22
|
+
hasRemoveCoupon: boolean;
|
|
23
|
+
items: import('..').CheckoutItem[];
|
|
24
|
+
paymentMethods: import('..').PaymentMethod[];
|
|
25
|
+
provider: import('..').PaymentProvider;
|
|
26
|
+
currency: string;
|
|
27
|
+
locale: string;
|
|
28
|
+
step: CheckoutState;
|
|
29
|
+
selectedMethodId: string | null;
|
|
30
|
+
selectedShippingMethodId: string | null;
|
|
31
|
+
cartController?: import('..').CartController;
|
|
32
|
+
theme?: import('..').CheckoutTheme;
|
|
33
|
+
error: string | null;
|
|
34
|
+
paymentResult?: import('..').PaymentResult;
|
|
35
|
+
readyMap: Record<string, boolean>;
|
|
36
|
+
};
|
|
37
|
+
//# sourceMappingURL=useCheckout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useCheckout.d.ts","sourceRoot":"","sources":["../../src/hooks/useCheckout.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAE9D,eAAO,MAAM,WAAW;;;;;;;;oBAIG,aAAa;6BAKJ,MAAM;qCAKE,MAAM;0BAgBX,OAAO;sBAyCjB,MAAM;+BApDG,MAAM,SAAS,OAAO;;yBAyDtB,MAAM,OAAO,MAAM;qBAMvB,MAAM;wBAMH,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC;wBAW3B,OAAO,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;CAgDlD,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useLicense.d.ts","sourceRoot":"","sources":["../../src/hooks/useLicense.ts"],"names":[],"mappings":"AAQA,wBAAgB,UAAU;;;;;;EAezB"}
|