@neocash/bnpl-widget 0.1.1
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 +50 -0
- package/dist/api.d.ts +34 -0
- package/dist/atoms.d.ts +107 -0
- package/dist/icons.d.ts +8 -0
- package/dist/index.cjs +112 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.mjs +112 -0
- package/dist/liveness-amplify.d.ts +31 -0
- package/dist/liveness-loader.d.ts +11 -0
- package/dist/neocash-bnpl-liveness.iife.css +1 -0
- package/dist/neocash-bnpl-liveness.iife.js +173 -0
- package/dist/neocash-bnpl.iife.js +112 -0
- package/dist/screens.d.ts +78 -0
- package/dist/shell.d.ts +42 -0
- package/dist/styles.d.ts +2 -0
- package/dist/types.d.ts +195 -0
- package/package.json +43 -0
package/README.md
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# @neocash/bnpl-widget
|
|
2
|
+
|
|
3
|
+
Embeddable NeoCash BNPL ("Pay Small Small") checkout widget.
|
|
4
|
+
|
|
5
|
+
## Inline script
|
|
6
|
+
|
|
7
|
+
```html
|
|
8
|
+
<script src="https://unpkg.com/@neocash/bnpl-widget"></script>
|
|
9
|
+
<script>
|
|
10
|
+
document.getElementById('pay-button').onclick = () => {
|
|
11
|
+
NeoCashBNPL.init({
|
|
12
|
+
publicKey: 'pk_test_xxx',
|
|
13
|
+
cart: {
|
|
14
|
+
// All amounts are in kobo (naira × 100).
|
|
15
|
+
// ₦2,150 → 215000 kobo
|
|
16
|
+
items: [{ name: 'TV', qty: 1, price: 215000 }],
|
|
17
|
+
total: 215000,
|
|
18
|
+
},
|
|
19
|
+
onApprovalPending: (id) => console.log('pending:', id),
|
|
20
|
+
onClose: () => console.log('closed'),
|
|
21
|
+
});
|
|
22
|
+
};
|
|
23
|
+
</script>
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
> **Money contract:** all amounts (`CartItem.price`, `Cart.total`, `PartnerPrefill.monthlySalary`) are **kobo** (integer). Pass `240000` for ₦2,400, not for ₦240,000. The widget converts to naira only at display time; the backend stores and returns kobo without conversion.
|
|
27
|
+
|
|
28
|
+
## npm
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
npm install @neocash/bnpl-widget
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
```ts
|
|
35
|
+
import { init } from '@neocash/bnpl-widget';
|
|
36
|
+
|
|
37
|
+
init({ publicKey, cart, onApprovalPending, onClose });
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
## Peer dependencies (lazy-loaded)
|
|
41
|
+
|
|
42
|
+
The liveness step uses AWS Amplify FaceLivenessDetector. If your app is bundling
|
|
43
|
+
the widget directly (npm path), install:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
npm install @aws-amplify/ui-react-liveness aws-amplify
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
The IIFE bundle loads these from CDN on demand at the liveness step, so script-tag
|
|
50
|
+
embeds need no extra setup.
|
package/dist/api.d.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type * as T from './types';
|
|
2
|
+
export declare class ApiError extends Error implements T.ApiErrorShape {
|
|
3
|
+
code?: string;
|
|
4
|
+
status?: number;
|
|
5
|
+
retryable?: boolean;
|
|
6
|
+
constructor(message: string, init?: T.ApiErrorShape);
|
|
7
|
+
}
|
|
8
|
+
export declare class BnplApi {
|
|
9
|
+
private sessionToken;
|
|
10
|
+
private base;
|
|
11
|
+
constructor(opts?: {
|
|
12
|
+
apiBase?: string;
|
|
13
|
+
});
|
|
14
|
+
setSessionToken(token: string): void;
|
|
15
|
+
private req;
|
|
16
|
+
createSession(req: T.CreateSessionRequest): Promise<T.CreateSessionResponse>;
|
|
17
|
+
sendOtp(req: {
|
|
18
|
+
phone: string;
|
|
19
|
+
}): Promise<T.SendOtpResponse>;
|
|
20
|
+
verifyOtp(req: {
|
|
21
|
+
code: string;
|
|
22
|
+
}): Promise<T.VerifyOtpResponse>;
|
|
23
|
+
startLiveness(): Promise<T.LivenessStartResponse>;
|
|
24
|
+
submitLivenessResult(req: T.LivenessResultRequest): Promise<T.LivenessResultResponse>;
|
|
25
|
+
getCustomer(): Promise<T.CustomerProfile>;
|
|
26
|
+
runCreditCheck(): Promise<T.CreditCheckResponse>;
|
|
27
|
+
submitIdentity(req: T.IdentityRequest): Promise<T.IdentityResponse>;
|
|
28
|
+
getIdentityStatus(): Promise<T.IdentityStatusResponse>;
|
|
29
|
+
submitEmployment(req: T.EmploymentRequest): Promise<{
|
|
30
|
+
ok: true;
|
|
31
|
+
}>;
|
|
32
|
+
getMonoLinkToken(): Promise<T.MonoLinkTokenResponse>;
|
|
33
|
+
finalize(req: T.FinalizeRequest): Promise<T.FinalizeResponse>;
|
|
34
|
+
}
|
package/dist/atoms.d.ts
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { type IconName } from './icons';
|
|
2
|
+
/** Render a kobo integer as a human-readable naira string. */
|
|
3
|
+
export declare function naira(n: number): string;
|
|
4
|
+
export declare function NCMark({ size }: {
|
|
5
|
+
size?: number;
|
|
6
|
+
}): import("preact").JSX.Element;
|
|
7
|
+
export declare function NCLogo({ height }: {
|
|
8
|
+
height?: number;
|
|
9
|
+
}): import("preact").JSX.Element;
|
|
10
|
+
export declare function NCSymbol({ size }: {
|
|
11
|
+
size?: number;
|
|
12
|
+
}): import("preact").JSX.Element;
|
|
13
|
+
export declare function Spinner({ size, color }: {
|
|
14
|
+
size?: number;
|
|
15
|
+
color?: string;
|
|
16
|
+
}): import("preact").JSX.Element;
|
|
17
|
+
type BtnProps = {
|
|
18
|
+
variant?: 'primary' | 'violet' | 'yellow' | 'outline' | 'ghost' | 'subtle' | 'danger';
|
|
19
|
+
size?: 'sm' | 'md' | 'lg';
|
|
20
|
+
icon?: IconName;
|
|
21
|
+
iconRight?: IconName;
|
|
22
|
+
children?: any;
|
|
23
|
+
onClick?: () => void;
|
|
24
|
+
disabled?: boolean;
|
|
25
|
+
loading?: boolean;
|
|
26
|
+
style?: any;
|
|
27
|
+
type?: 'button' | 'submit';
|
|
28
|
+
};
|
|
29
|
+
export declare function Btn({ variant, size, icon, iconRight, children, onClick, disabled, loading, style, type }: BtnProps): import("preact").JSX.Element;
|
|
30
|
+
export declare function Field({ label, hint, error, children, optional, right }: {
|
|
31
|
+
label?: string;
|
|
32
|
+
hint?: string;
|
|
33
|
+
error?: string | null;
|
|
34
|
+
children: any;
|
|
35
|
+
optional?: boolean;
|
|
36
|
+
right?: any;
|
|
37
|
+
}): import("preact").JSX.Element;
|
|
38
|
+
export declare function TextInput({ icon, prefix, value, onChange, placeholder, type, inputMode, error, autoFocus, maxLength }: {
|
|
39
|
+
icon?: IconName;
|
|
40
|
+
prefix?: string;
|
|
41
|
+
value?: string;
|
|
42
|
+
onChange?: (v: string) => void;
|
|
43
|
+
placeholder?: string;
|
|
44
|
+
type?: string;
|
|
45
|
+
inputMode?: any;
|
|
46
|
+
error?: string | null;
|
|
47
|
+
autoFocus?: boolean;
|
|
48
|
+
maxLength?: number;
|
|
49
|
+
}): import("preact").JSX.Element;
|
|
50
|
+
export declare function Select({ value, onChange, options, placeholder }: {
|
|
51
|
+
value?: string;
|
|
52
|
+
onChange?: (v: string) => void;
|
|
53
|
+
options: (string | {
|
|
54
|
+
value: string;
|
|
55
|
+
label: string;
|
|
56
|
+
})[];
|
|
57
|
+
placeholder?: string;
|
|
58
|
+
}): import("preact").JSX.Element;
|
|
59
|
+
export declare function Slider({ min, max, step, value, onChange }: {
|
|
60
|
+
min: number;
|
|
61
|
+
max: number;
|
|
62
|
+
step?: number;
|
|
63
|
+
value: number;
|
|
64
|
+
onChange?: (v: number) => void;
|
|
65
|
+
}): import("preact").JSX.Element;
|
|
66
|
+
export declare function Pill({ children, color, fg, icon, style }: any): import("preact").JSX.Element;
|
|
67
|
+
export declare function Row({ label, value, mono, strong, accent }: {
|
|
68
|
+
label: string;
|
|
69
|
+
value: any;
|
|
70
|
+
mono?: boolean;
|
|
71
|
+
strong?: boolean;
|
|
72
|
+
accent?: string;
|
|
73
|
+
}): import("preact").JSX.Element;
|
|
74
|
+
export declare function WidgetHeader({ step, total, onClose, merchant, canBack, onBack, hideStep }: {
|
|
75
|
+
step?: number;
|
|
76
|
+
total?: number;
|
|
77
|
+
onClose?: () => void;
|
|
78
|
+
merchant?: string;
|
|
79
|
+
canBack?: boolean;
|
|
80
|
+
onBack?: () => void;
|
|
81
|
+
hideStep?: boolean;
|
|
82
|
+
}): import("preact").JSX.Element;
|
|
83
|
+
export declare function ProgressBar({ step, total }: {
|
|
84
|
+
step: number;
|
|
85
|
+
total: number;
|
|
86
|
+
}): import("preact").JSX.Element;
|
|
87
|
+
export declare function WidgetFooter({ children, secure }: {
|
|
88
|
+
children?: any;
|
|
89
|
+
secure?: boolean;
|
|
90
|
+
}): import("preact").JSX.Element;
|
|
91
|
+
export declare function ScreenBody({ children, padded, style, bodyRef }: {
|
|
92
|
+
children: any;
|
|
93
|
+
padded?: boolean;
|
|
94
|
+
style?: any;
|
|
95
|
+
bodyRef?: any;
|
|
96
|
+
}): import("preact").JSX.Element;
|
|
97
|
+
export declare function StepList({ items, current, results }: {
|
|
98
|
+
items: string[];
|
|
99
|
+
current: number;
|
|
100
|
+
results: (string | null)[];
|
|
101
|
+
}): import("preact").JSX.Element;
|
|
102
|
+
export declare function Banner({ tone, children, icon }: {
|
|
103
|
+
tone?: 'info' | 'danger' | 'success';
|
|
104
|
+
children: any;
|
|
105
|
+
icon?: IconName;
|
|
106
|
+
}): import("preact").JSX.Element;
|
|
107
|
+
export {};
|
package/dist/icons.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export type IconName = 'arrow-left' | 'arrow-right' | 'x' | 'x-circle' | 'check' | 'check-circle' | 'alert-circle' | 'info' | 'chevron-down' | 'shield' | 'shield-check' | 'shield-x' | 'user-check' | 'user-x' | 'briefcase' | 'building-2' | 'landmark' | 'mail' | 'smartphone' | 'message-square' | 'camera' | 'camera-off' | 'map-pin' | 'navigation' | 'house' | 'pencil' | 'sparkles' | 'lock' | 'eye-off' | 'clock' | 'hourglass' | 'zap' | 'send' | 'tv' | 'speaker' | 'trending-up' | 'trending-down' | 'refresh-cw' | 'wifi-off' | 'life-buoy' | 'rotate-ccw';
|
|
2
|
+
export declare function iconSvg(name: IconName, size?: number, color?: string): string;
|
|
3
|
+
export declare function Icon({ name, size, color, style }: {
|
|
4
|
+
name: IconName;
|
|
5
|
+
size?: number;
|
|
6
|
+
color?: string;
|
|
7
|
+
style?: any;
|
|
8
|
+
}): import("preact").JSX.Element;
|
package/dist/index.cjs
ADDED
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
"use strict";var ve=Object.defineProperty;var $n=Object.getOwnPropertyDescriptor;var jn=Object.getOwnPropertyNames;var Un=Object.prototype.hasOwnProperty;var Yn=(n,t)=>{for(var r in t)ve(n,r,{get:t[r],enumerable:!0})},Kn=(n,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let a of jn(t))!Un.call(n,a)&&a!==r&&ve(n,a,{get:()=>t[a],enumerable:!(o=$n(t,a))||o.enumerable});return n};var Gn=n=>Kn(ve({},"__esModule",{value:!0}),n);var Tt={};Yn(Tt,{default:()=>Rt,init:()=>On});module.exports=Gn(Tt);var de,w,Ve,Xn,G,Ne,Oe,$e,_e,oe,ne,je,Se,be,xe,Jn,le={},se=[],Qn=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i,pe=Array.isArray;function Y(n,t){for(var r in t)n[r]=t[r];return n}function Ce(n){n&&n.parentNode&&n.parentNode.removeChild(n)}function we(n,t,r){var o,a,i,l={};for(i in t)i=="key"?o=t[i]:i=="ref"?a=t[i]:l[i]=t[i];if(arguments.length>2&&(l.children=arguments.length>3?de.call(arguments,2):r),typeof n=="function"&&n.defaultProps!=null)for(i in n.defaultProps)l[i]===void 0&&(l[i]=n.defaultProps[i]);return ie(n,l,o,a,null)}function ie(n,t,r,o,a){var i={type:n,props:t,key:r,ref:o,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:a??++Ve,__i:-1,__u:0};return a==null&&w.vnode!=null&&w.vnode(i),i}function P(n){return n.children}function ae(n,t){this.props=n,this.context=t}function J(n,t){if(t==null)return n.__?J(n.__,n.__i+1):null;for(var r;t<n.__k.length;t++)if((r=n.__k[t])!=null&&r.__e!=null)return r.__e;return typeof n.type=="function"?J(n):null}function Zn(n){if(n.__P&&n.__d){var t=n.__v,r=t.__e,o=[],a=[],i=Y({},t);i.__v=t.__v+1,w.vnode&&w.vnode(i),Pe(n.__P,i,t,n.__n,n.__P.namespaceURI,32&t.__u?[r]:null,o,r??J(t),!!(32&t.__u),a),i.__v=t.__v,i.__.__k[i.__i]=i,Ge(o,i,a),t.__e=t.__=null,i.__e!=r&&Ue(i)}}function Ue(n){if((n=n.__)!=null&&n.__c!=null)return n.__e=n.__c.base=null,n.__k.some(function(t){if(t!=null&&t.__e!=null)return n.__e=n.__c.base=t.__e}),Ue(n)}function We(n){(!n.__d&&(n.__d=!0)&&G.push(n)&&!ce.__r++||Ne!=w.debounceRendering)&&((Ne=w.debounceRendering)||Oe)(ce)}function ce(){try{for(var n,t=1;G.length;)G.length>t&&G.sort($e),n=G.shift(),t=G.length,Zn(n)}finally{G.length=ce.__r=0}}function Ye(n,t,r,o,a,i,l,c,u,d,p){var s,f,m,v,x,C,_,k=o&&o.__k||se,S=t.length;for(u=et(r,t,k,u,S),s=0;s<S;s++)(m=r.__k[s])!=null&&(f=m.__i!=-1&&k[m.__i]||le,m.__i=s,C=Pe(n,m,f,a,i,l,c,u,d,p),v=m.__e,m.ref&&f.ref!=m.ref&&(f.ref&&Re(f.ref,null,m),p.push(m.ref,m.__c||v,m)),x==null&&v!=null&&(x=v),(_=!!(4&m.__u))||f.__k===m.__k?(u=Ke(m,u,n,_),_&&f.__e&&(f.__e=null)):typeof m.type=="function"&&C!==void 0?u=C:v&&(u=v.nextSibling),m.__u&=-7);return r.__e=x,u}function et(n,t,r,o,a){var i,l,c,u,d,p=r.length,s=p,f=0;for(n.__k=new Array(a),i=0;i<a;i++)(l=t[i])!=null&&typeof l!="boolean"&&typeof l!="function"?(typeof l=="string"||typeof l=="number"||typeof l=="bigint"||l.constructor==String?l=n.__k[i]=ie(null,l,null,null,null):pe(l)?l=n.__k[i]=ie(P,{children:l},null,null,null):l.constructor===void 0&&l.__b>0?l=n.__k[i]=ie(l.type,l.props,l.key,l.ref?l.ref:null,l.__v):n.__k[i]=l,u=i+f,l.__=n,l.__b=n.__b+1,c=null,(d=l.__i=nt(l,r,u,s))!=-1&&(s--,(c=r[d])&&(c.__u|=2)),c==null||c.__v==null?(d==-1&&(a>p?f--:a<p&&f++),typeof l.type!="function"&&(l.__u|=4)):d!=u&&(d==u-1?f--:d==u+1?f++:(d>u?f--:f++,l.__u|=4))):n.__k[i]=null;if(s)for(i=0;i<p;i++)(c=r[i])!=null&&!(2&c.__u)&&(c.__e==o&&(o=J(c)),Je(c,c));return o}function Ke(n,t,r,o){var a,i;if(typeof n.type=="function"){for(a=n.__k,i=0;a&&i<a.length;i++)a[i]&&(a[i].__=n,t=Ke(a[i],t,r,o));return t}n.__e!=t&&(o&&(t&&n.type&&!t.parentNode&&(t=J(n)),r.insertBefore(n.__e,t||null)),t=n.__e);do t=t&&t.nextSibling;while(t!=null&&t.nodeType==8);return t}function nt(n,t,r,o){var a,i,l,c=n.key,u=n.type,d=t[r],p=d!=null&&(2&d.__u)==0;if(d===null&&c==null||p&&c==d.key&&u==d.type)return r;if(o>(p?1:0)){for(a=r-1,i=r+1;a>=0||i<t.length;)if((d=t[l=a>=0?a--:i++])!=null&&!(2&d.__u)&&c==d.key&&u==d.type)return l}return-1}function He(n,t,r){t[0]=="-"?n.setProperty(t,r??""):n[t]=r==null?"":typeof r!="number"||Qn.test(t)?r:r+"px"}function re(n,t,r,o,a){var i,l;e:if(t=="style")if(typeof r=="string")n.style.cssText=r;else{if(typeof o=="string"&&(n.style.cssText=o=""),o)for(t in o)r&&t in r||He(n.style,t,"");if(r)for(t in r)o&&r[t]==o[t]||He(n.style,t,r[t])}else if(t[0]=="o"&&t[1]=="n")i=t!=(t=t.replace(je,"$1")),l=t.toLowerCase(),t=l in n||t=="onFocusOut"||t=="onFocusIn"?l.slice(2):t.slice(2),n.l||(n.l={}),n.l[t+i]=r,r?o?r[ne]=o[ne]:(r[ne]=Se,n.addEventListener(t,i?xe:be,i)):n.removeEventListener(t,i?xe:be,i);else{if(a=="http://www.w3.org/2000/svg")t=t.replace(/xlink(H|:h)/,"h").replace(/sName$/,"s");else if(t!="width"&&t!="height"&&t!="href"&&t!="list"&&t!="form"&&t!="tabIndex"&&t!="download"&&t!="rowSpan"&&t!="colSpan"&&t!="role"&&t!="popover"&&t in n)try{n[t]=r??"";break e}catch{}typeof r=="function"||(r==null||r===!1&&t[4]!="-"?n.removeAttribute(t):n.setAttribute(t,t=="popover"&&r==1?"":r))}}function qe(n){return function(t){if(this.l){var r=this.l[t.type+n];if(t[oe]==null)t[oe]=Se++;else if(t[oe]<r[ne])return;return r(w.event?w.event(t):t)}}}function Pe(n,t,r,o,a,i,l,c,u,d){var p,s,f,m,v,x,C,_,k,S,g,h,A,V,Z,O=t.type;if(t.constructor!==void 0)return null;128&r.__u&&(u=!!(32&r.__u),i=[c=t.__e=r.__e]),(p=w.__b)&&p(t);e:if(typeof O=="function")try{if(_=t.props,k=O.prototype&&O.prototype.render,S=(p=O.contextType)&&o[p.__c],g=p?S?S.props.value:p.__:o,r.__c?C=(s=t.__c=r.__c).__=s.__E:(k?t.__c=s=new O(_,g):(t.__c=s=new ae(_,g),s.constructor=O,s.render=rt),S&&S.sub(s),s.state||(s.state={}),s.__n=o,f=s.__d=!0,s.__h=[],s._sb=[]),k&&s.__s==null&&(s.__s=s.state),k&&O.getDerivedStateFromProps!=null&&(s.__s==s.state&&(s.__s=Y({},s.__s)),Y(s.__s,O.getDerivedStateFromProps(_,s.__s))),m=s.props,v=s.state,s.__v=t,f)k&&O.getDerivedStateFromProps==null&&s.componentWillMount!=null&&s.componentWillMount(),k&&s.componentDidMount!=null&&s.__h.push(s.componentDidMount);else{if(k&&O.getDerivedStateFromProps==null&&_!==m&&s.componentWillReceiveProps!=null&&s.componentWillReceiveProps(_,g),t.__v==r.__v||!s.__e&&s.shouldComponentUpdate!=null&&s.shouldComponentUpdate(_,s.__s,g)===!1){t.__v!=r.__v&&(s.props=_,s.state=s.__s,s.__d=!1),t.__e=r.__e,t.__k=r.__k,t.__k.some(function(T){T&&(T.__=t)}),se.push.apply(s.__h,s._sb),s._sb=[],s.__h.length&&l.push(s);break e}s.componentWillUpdate!=null&&s.componentWillUpdate(_,s.__s,g),k&&s.componentDidUpdate!=null&&s.__h.push(function(){s.componentDidUpdate(m,v,x)})}if(s.context=g,s.props=_,s.__P=n,s.__e=!1,h=w.__r,A=0,k)s.state=s.__s,s.__d=!1,h&&h(t),p=s.render(s.props,s.state,s.context),se.push.apply(s.__h,s._sb),s._sb=[];else do s.__d=!1,h&&h(t),p=s.render(s.props,s.state,s.context),s.state=s.__s;while(s.__d&&++A<25);s.state=s.__s,s.getChildContext!=null&&(o=Y(Y({},o),s.getChildContext())),k&&!f&&s.getSnapshotBeforeUpdate!=null&&(x=s.getSnapshotBeforeUpdate(m,v)),V=p!=null&&p.type===P&&p.key==null?Xe(p.props.children):p,c=Ye(n,pe(V)?V:[V],t,r,o,a,i,l,c,u,d),s.base=t.__e,t.__u&=-161,s.__h.length&&l.push(s),C&&(s.__E=s.__=null)}catch(T){if(t.__v=null,u||i!=null)if(T.then){for(t.__u|=u?160:128;c&&c.nodeType==8&&c.nextSibling;)c=c.nextSibling;i[i.indexOf(c)]=null,t.__e=c}else{for(Z=i.length;Z--;)Ce(i[Z]);ke(t)}else t.__e=r.__e,t.__k=r.__k,T.then||ke(t);w.__e(T,t,r)}else i==null&&t.__v==r.__v?(t.__k=r.__k,t.__e=r.__e):c=t.__e=tt(r.__e,t,r,o,a,i,l,u,d);return(p=w.diffed)&&p(t),128&t.__u?void 0:c}function ke(n){n&&(n.__c&&(n.__c.__e=!0),n.__k&&n.__k.some(ke))}function Ge(n,t,r){for(var o=0;o<r.length;o++)Re(r[o],r[++o],r[++o]);w.__c&&w.__c(t,n),n.some(function(a){try{n=a.__h,a.__h=[],n.some(function(i){i.call(a)})}catch(i){w.__e(i,a.__v)}})}function Xe(n){return typeof n!="object"||n==null||n.__b>0?n:pe(n)?n.map(Xe):Y({},n)}function tt(n,t,r,o,a,i,l,c,u){var d,p,s,f,m,v,x,C=r.props||le,_=t.props,k=t.type;if(k=="svg"?a="http://www.w3.org/2000/svg":k=="math"?a="http://www.w3.org/1998/Math/MathML":a||(a="http://www.w3.org/1999/xhtml"),i!=null){for(d=0;d<i.length;d++)if((m=i[d])&&"setAttribute"in m==!!k&&(k?m.localName==k:m.nodeType==3)){n=m,i[d]=null;break}}if(n==null){if(k==null)return document.createTextNode(_);n=document.createElementNS(a,k,_.is&&_),c&&(w.__m&&w.__m(t,i),c=!1),i=null}if(k==null)C===_||c&&n.data==_||(n.data=_);else{if(i=i&&de.call(n.childNodes),!c&&i!=null)for(C={},d=0;d<n.attributes.length;d++)C[(m=n.attributes[d]).name]=m.value;for(d in C)m=C[d],d=="dangerouslySetInnerHTML"?s=m:d=="children"||d in _||d=="value"&&"defaultValue"in _||d=="checked"&&"defaultChecked"in _||re(n,d,null,m,a);for(d in _)m=_[d],d=="children"?f=m:d=="dangerouslySetInnerHTML"?p=m:d=="value"?v=m:d=="checked"?x=m:c&&typeof m!="function"||C[d]===m||re(n,d,m,C[d],a);if(p)c||s&&(p.__html==s.__html||p.__html==n.innerHTML)||(n.innerHTML=p.__html),t.__k=[];else if(s&&(n.innerHTML=""),Ye(t.type=="template"?n.content:n,pe(f)?f:[f],t,r,o,k=="foreignObject"?"http://www.w3.org/1999/xhtml":a,i,l,i?i[0]:r.__k&&J(r,0),c,u),i!=null)for(d=i.length;d--;)Ce(i[d]);c||(d="value",k=="progress"&&v==null?n.removeAttribute("value"):v!=null&&(v!==n[d]||k=="progress"&&!v||k=="option"&&v!=C[d])&&re(n,d,v,C[d],a),d="checked",x!=null&&x!=n[d]&&re(n,d,x,C[d],a))}return n}function Re(n,t,r){try{if(typeof n=="function"){var o=typeof n.__u=="function";o&&n.__u(),o&&t==null||(n.__u=n(t))}else n.current=t}catch(a){w.__e(a,r)}}function Je(n,t,r){var o,a;if(w.unmount&&w.unmount(n),(o=n.ref)&&(o.current&&o.current!=n.__e||Re(o,null,t)),(o=n.__c)!=null){if(o.componentWillUnmount)try{o.componentWillUnmount()}catch(i){w.__e(i,t)}o.base=o.__P=null}if(o=n.__k)for(a=0;a<o.length;a++)o[a]&&Je(o[a],t,r||typeof n.type!="function");r||Ce(n.__e),n.__c=n.__=n.__e=void 0}function rt(n,t,r){return this.constructor(n,r)}function Te(n,t,r){var o,a,i,l;t==document&&(t=document.documentElement),w.__&&w.__(n,t),a=(o=typeof r=="function")?null:r&&r.__k||t.__k,i=[],l=[],Pe(t,n=(!o&&r||t).__k=we(P,null,[n]),a||le,le,t.namespaceURI,!o&&r?[r]:a?null:t.firstChild?de.call(t.childNodes):null,i,!o&&r?r:a?a.__e:t.firstChild,o,l),Ge(i,n,l)}de=se.slice,w={__e:function(n,t,r,o){for(var a,i,l;t=t.__;)if((a=t.__c)&&!a.__)try{if((i=a.constructor)&&i.getDerivedStateFromError!=null&&(a.setState(i.getDerivedStateFromError(n)),l=a.__d),a.componentDidCatch!=null&&(a.componentDidCatch(n,o||{}),l=a.__d),l)return a.__E=a}catch(c){n=c}throw n}},Ve=0,Xn=function(n){return n!=null&&n.constructor===void 0},ae.prototype.setState=function(n,t){var r;r=this.__s!=null&&this.__s!=this.state?this.__s:this.__s=Y({},this.state),typeof n=="function"&&(n=n(Y({},r),this.props)),n&&Y(r,n),n!=null&&this.__v&&(t&&this._sb.push(t),We(this))},ae.prototype.forceUpdate=function(n){this.__v&&(this.__e=!0,n&&this.__h.push(n),We(this))},ae.prototype.render=P,G=[],Oe=typeof Promise=="function"?Promise.prototype.then.bind(Promise.resolve()):setTimeout,$e=function(n,t){return n.__v.__b-t.__v.__b},ce.__r=0,_e=Math.random().toString(8),oe="__d"+_e,ne="__a"+_e,je=/(PointerCapture)$|Capture$/i,Se=0,be=qe(!1),xe=qe(!0),Jn=0;var te,z,Me,Qe,fe=0,ln=[],E=w,Ze=E.__b,en=E.__r,nn=E.diffed,tn=E.__c,rn=E.unmount,on=E.__;function Ee(n,t){E.__h&&E.__h(z,n,fe||t),fe=0;var r=z.__H||(z.__H={__:[],__h:[]});return n>=r.__.length&&r.__.push({}),r.__[n]}function y(n){return fe=1,ot(cn,n)}function ot(n,t,r){var o=Ee(te++,2);if(o.t=n,!o.__c&&(o.__=[r?r(t):cn(void 0,t),function(c){var u=o.__N?o.__N[0]:o.__[0],d=o.t(u,c);u!==d&&(o.__N=[d,o.__[1]],o.__c.setState({}))}],o.__c=z,!z.__f)){var a=function(c,u,d){if(!o.__c.__H)return!0;var p=o.__c.__H.__.filter(function(f){return f.__c});if(p.every(function(f){return!f.__N}))return!i||i.call(this,c,u,d);var s=o.__c.props!==c;return p.some(function(f){if(f.__N){var m=f.__[0];f.__=f.__N,f.__N=void 0,m!==f.__[0]&&(s=!0)}}),i&&i.call(this,c,u,d)||s};z.__f=!0;var i=z.shouldComponentUpdate,l=z.componentWillUpdate;z.componentWillUpdate=function(c,u,d){if(this.__e){var p=i;i=void 0,a(c,u,d),i=p}l&&l.call(this,c,u,d)},z.shouldComponentUpdate=a}return o.__N||o.__}function H(n,t){var r=Ee(te++,3);!E.__s&&sn(r.__H,t)&&(r.__=n,r.u=t,z.__H.__h.push(r))}function me(n){return fe=5,Ie(function(){return{current:n}},[])}function Ie(n,t){var r=Ee(te++,7);return sn(r.__H,t)&&(r.__=n(),r.__H=t,r.__h=n),r.__}function it(){for(var n;n=ln.shift();){var t=n.__H;if(n.__P&&t)try{t.__h.some(ue),t.__h.some(ze),t.__h=[]}catch(r){t.__h=[],E.__e(r,n.__v)}}}E.__b=function(n){z=null,Ze&&Ze(n)},E.__=function(n,t){n&&t.__k&&t.__k.__m&&(n.__m=t.__k.__m),on&&on(n,t)},E.__r=function(n){en&&en(n),te=0;var t=(z=n.__c).__H;t&&(Me===z?(t.__h=[],z.__h=[],t.__.some(function(r){r.__N&&(r.__=r.__N),r.u=r.__N=void 0})):(t.__h.some(ue),t.__h.some(ze),t.__h=[],te=0)),Me=z},E.diffed=function(n){nn&&nn(n);var t=n.__c;t&&t.__H&&(t.__H.__h.length&&(ln.push(t)!==1&&Qe===E.requestAnimationFrame||((Qe=E.requestAnimationFrame)||at)(it)),t.__H.__.some(function(r){r.u&&(r.__H=r.u),r.u=void 0})),Me=z=null},E.__c=function(n,t){t.some(function(r){try{r.__h.some(ue),r.__h=r.__h.filter(function(o){return!o.__||ze(o)})}catch(o){t.some(function(a){a.__h&&(a.__h=[])}),t=[],E.__e(o,r.__v)}}),tn&&tn(n,t)},E.unmount=function(n){rn&&rn(n);var t,r=n.__c;r&&r.__H&&(r.__H.__.some(function(o){try{ue(o)}catch(a){t=a}}),r.__H=void 0,t&&E.__e(t,r.__v))};var an=typeof requestAnimationFrame=="function";function at(n){var t,r=function(){clearTimeout(o),an&&cancelAnimationFrame(t),setTimeout(n)},o=setTimeout(r,35);an&&(t=requestAnimationFrame(r))}function ue(n){var t=z,r=n.__c;typeof r=="function"&&(n.__c=void 0,r()),z=t}function ze(n){var t=z;n.__c=n.__(),z=t}function sn(n,t){return!n||n.length!==t.length||t.some(function(r,o){return r!==n[o]})}function cn(n,t){return typeof t=="function"?t(n):t}var lt="neocash-bnpl-liveness.iife.js",st="neocash-bnpl-liveness.iife.css",X=null;function dn(n){if(X)return X;if(typeof window<"u"&&window.__NeoCashLiveness)return X=Promise.resolve(window.__NeoCashLiveness),X;if(!n)return Promise.reject(new Error("Cannot locate the Amplify Liveness chunk. Pass init({ assetPrefix }) or include the script tag manually before opening the widget."));let t=n.replace(/\/+$/,""),r=`${t}/${st}`,o=`${t}/${lt}`;return X=new Promise((a,i)=>{if(!document.querySelector(`link[href="${r}"]`)){let c=document.createElement("link");c.rel="stylesheet",c.href=r,document.head.appendChild(c)}let l=document.querySelector(`script[src="${o}"]`);if(l&&window.__NeoCashLiveness){a(window.__NeoCashLiveness);return}l||(l=document.createElement("script"),l.src=o,l.async=!0,document.head.appendChild(l)),l.addEventListener("load",()=>{window.__NeoCashLiveness?a(window.__NeoCashLiveness):i(new Error("Liveness chunk loaded but global was not set."))}),l.addEventListener("error",()=>i(new Error(`Failed to load ${o}`)))}),X.catch(()=>{X=null}),X}var ct=0,Dt=Array.isArray;function e(n,t,r,o,a,i){t||(t={});var l,c,u=t;if("ref"in u)for(c in u={},t)c=="ref"?l=t[c]:u[c]=t[c];var d={type:n,props:u,key:r,ref:l,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--ct,__i:-1,__u:0,__source:a,__self:i};if(typeof n=="function"&&(l=n.defaultProps))for(c in l)u[c]===void 0&&(u[c]=l[c]);return w.vnode&&w.vnode(d),d}var dt={"arrow-left":'<path d="m12 19-7-7 7-7"/><path d="M19 12H5"/>',"arrow-right":'<path d="M5 12h14"/><path d="m12 5 7 7-7 7"/>',x:'<path d="M18 6 6 18"/><path d="m6 6 12 12"/>',"x-circle":'<circle cx="12" cy="12" r="10"/><path d="m15 9-6 6"/><path d="m9 9 6 6"/>',check:'<path d="M20 6 9 17l-5-5"/>',"check-circle":'<path d="M22 11.08V12a10 10 0 1 1-5.93-9.14"/><path d="m9 11 3 3L22 4"/>',"alert-circle":'<circle cx="12" cy="12" r="10"/><path d="M12 8v4"/><path d="M12 16h.01"/>',info:'<circle cx="12" cy="12" r="10"/><path d="M12 16v-4"/><path d="M12 8h.01"/>',"chevron-down":'<path d="m6 9 6 6 6-6"/>',shield:'<path d="M20 13c0 5-3.5 7.5-8 9-4.5-1.5-8-4-8-9V5l8-3 8 3z"/>',"shield-check":'<path d="M20 13c0 5-3.5 7.5-8 9-4.5-1.5-8-4-8-9V5l8-3 8 3z"/><path d="m9 12 2 2 4-4"/>',"shield-x":'<path d="M20 13c0 5-3.5 7.5-8 9-4.5-1.5-8-4-8-9V5l8-3 8 3z"/><path d="m14.5 9.5-5 5"/><path d="m9.5 9.5 5 5"/>',"user-check":'<path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="m16 11 2 2 4-4"/>',"user-x":'<path d="M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3l-2.5-3z"/><circle cx="11" cy="13" r="3"/>',briefcase:'<rect width="20" height="14" x="2" y="7" rx="2"/><path d="M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"/>',"building-2":'<path d="M6 22V4a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v18Z"/><path d="M6 12H4a2 2 0 0 0-2 2v6a2 2 0 0 0 2 2h2"/><path d="M18 9h2a2 2 0 0 1 2 2v9a2 2 0 0 1-2 2h-2"/><path d="M10 6h4"/><path d="M10 10h4"/><path d="M10 14h4"/><path d="M10 18h4"/>',landmark:'<line x1="3" x2="21" y1="22" y2="22"/><line x1="6" x2="6" y1="18" y2="11"/><line x1="10" x2="10" y1="18" y2="11"/><line x1="14" x2="14" y1="18" y2="11"/><line x1="18" x2="18" y1="18" y2="11"/><polygon points="12 2 20 7 4 7"/>',mail:'<rect width="20" height="16" x="2" y="4" rx="2"/><path d="m22 7-10 5L2 7"/>',smartphone:'<rect width="14" height="20" x="5" y="2" rx="2"/><path d="M12 18h.01"/>',"message-square":'<path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/>',camera:'<path d="M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V9a2 2 0 0 0-2-2h-3l-2.5-3z"/><circle cx="12" cy="13" r="3"/>',"camera-off":'<line x1="2" x2="22" y1="2" y2="22"/><path d="M14.5 4h-5L7 7H4a2 2 0 0 0-2 2v9a2 2 0 0 0 2 2h13"/><path d="M9.5 4h5L17 7h3a2 2 0 0 1 2 2v9"/>',"map-pin":'<path d="M20 10c0 7-8 13-8 13s-8-6-8-13a8 8 0 0 1 16 0z"/><circle cx="12" cy="10" r="3"/>',navigation:'<polygon points="3 11 22 2 13 21 11 13 3 11"/>',house:'<path d="M3 9.5 12 3l9 6.5V21a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z"/><path d="M9 22V12h6v10"/>',pencil:'<path d="M17 3a2.85 2.83 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5z"/>',sparkles:'<path d="M12 3l1.9 4.6L18 9l-4.1 1.4L12 15l-1.9-4.6L6 9l4.1-1.4z"/><path d="M19 14l1 2 2 1-2 1-1 2-1-2-2-1 2-1z"/><path d="M5 14l1 2 2 1-2 1-1 2-1-2-2-1 2-1z"/>',lock:'<rect width="18" height="11" x="3" y="11" rx="2"/><path d="M7 11V7a5 5 0 0 1 10 0v4"/>',"eye-off":'<path d="M9.88 9.88a3 3 0 1 0 4.24 4.24"/><path d="M10.73 5.08A10.43 10.43 0 0 1 12 5c7 0 10 7 10 7a13.16 13.16 0 0 1-1.67 2.68"/><path d="M6.61 6.61A13.526 13.526 0 0 0 2 12s3 7 10 7a9.74 9.74 0 0 0 5.39-1.61"/><line x1="2" x2="22" y1="2" y2="22"/>',clock:'<circle cx="12" cy="12" r="10"/><polyline points="12 6 12 12 16 14"/>',hourglass:'<path d="M5 22h14"/><path d="M5 2h14"/><path d="M17 22v-4.172a2 2 0 0 0-.586-1.414L12 12l-4.414 4.414A2 2 0 0 0 7 17.828V22"/><path d="M7 2v4.172a2 2 0 0 0 .586 1.414L12 12l4.414-4.414A2 2 0 0 0 17 6.172V2"/>',zap:'<polygon points="13 2 3 14 12 14 11 22 21 10 12 10 13 2"/>',send:'<path d="m22 2-7 20-4-9-9-4z"/><path d="M22 2 11 13"/>',tv:'<rect width="20" height="15" x="2" y="7" rx="2"/><polyline points="17 2 12 7 7 2"/>',speaker:'<rect width="16" height="20" x="4" y="2" rx="2"/><circle cx="12" cy="14" r="4"/><line x1="12" x2="12.01" y1="6" y2="6"/>',"trending-up":'<polyline points="22 7 13.5 15.5 8.5 10.5 2 17"/><polyline points="16 7 22 7 22 13"/>',"trending-down":'<polyline points="22 17 13.5 8.5 8.5 13.5 2 7"/><polyline points="16 17 22 17 22 11"/>',"refresh-cw":'<polyline points="23 4 23 10 17 10"/><polyline points="1 20 1 14 7 14"/><path d="M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15"/>',"wifi-off":'<line x1="2" x2="22" y1="2" y2="22"/><path d="M8.5 16.5a5 5 0 0 1 7 0"/><path d="M2 8.82a15 15 0 0 1 4.17-2.65"/><path d="M10.66 5c4.01-.36 8.14.9 11.34 3.76"/><path d="M16.85 11.25a10 10 0 0 1 2.22 1.68"/><path d="M5 13a10 10 0 0 1 5.24-2.76"/><line x1="12" x2="12.01" y1="20" y2="20"/>',"life-buoy":'<circle cx="12" cy="12" r="10"/><path d="m4.93 4.93 4.24 4.24"/><path d="m14.83 9.17 4.24-4.24"/><path d="m14.83 14.83 4.24 4.24"/><path d="m9.17 14.83-4.24 4.24"/><circle cx="12" cy="12" r="4"/>',"rotate-ccw":'<polyline points="1 4 1 10 7 10"/><path d="M3.51 15a9 9 0 1 0 2.13-9.36L1 10"/>'};function pt(n,t=16,r="currentColor"){return`<svg xmlns="http://www.w3.org/2000/svg" width="${t}" height="${t}" viewBox="0 0 24 24" fill="none" stroke="${r}" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">${dt[n]}</svg>`}function b({name:n,size:t=16,color:r="currentColor",style:o}){return e("span",{"aria-hidden":"true",style:{display:"inline-flex",flex:"none",width:t,height:t,color:r,...o},dangerouslySetInnerHTML:{__html:pt(n,t,"currentColor")}})}var pn="data:image/png;base64,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";var un="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAC0AAABgCAYAAACJ3PsoAAAAAXNSR0IArs4c6QAAAQZlWElmTU0AKgAAAAgABwESAAMAAAABAAEAAAEaAAUAAAABAAAAYgEbAAUAAAABAAAAagEoAAMAAAABAAIAAAExAAIAAAA1AAAAcgE7AAIAAAAPAAAAqIdpAAQAAAABAAAAuAAAAAAAAADAAAAAAQAAAMAAAAABQ2FudmEgZG9jPURBSEoxTVh5VFMwIHVzZXI9VUFEMkV5cUVRMEkgYnJhbmQ9TmVvQ2FzaAAATWljaGFlbCBGYWx1eWkAAAAGkAAABwAAAAQwMjEwkQEABwAAAAQBAgMAoAAABwAAAAQwMTAwoAEAAwAAAAEAAQAAoAIABAAAAAEAAAAtoAMABAAAAAEAAABgAAAAAAaCPXwAAAAJcEhZcwAAHYcAAB2HAY/l8WUAAAY6aVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA2LjAuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIgogICAgICAgICAgICB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iPgogICAgICAgICA8ZXhpZjpDb2xvclNwYWNlPjY1NTM1PC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWERpbWVuc2lvbj40NjI8L2V4aWY6UGl4ZWxYRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpFeGlmVmVyc2lvbj4wMjEwPC9leGlmOkV4aWZWZXJzaW9uPgogICAgICAgICA8ZXhpZjpGbGFzaFBpeFZlcnNpb24+MDEwMDwvZXhpZjpGbGFzaFBpeFZlcnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj45Nzg8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICAgICA8ZXhpZjpDb21wb25lbnRzQ29uZmlndXJhdGlvbj4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGk+MTwvcmRmOmxpPgogICAgICAgICAgICAgICA8cmRmOmxpPjI8L3JkZjpsaT4KICAgICAgICAgICAgICAgPHJkZjpsaT4zPC9yZGY6bGk+CiAgICAgICAgICAgICAgIDxyZGY6bGk+MDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwvZXhpZjpDb21wb25lbnRzQ29uZmlndXJhdGlvbj4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5DYW52YSBkb2M9REFISjFNWHlUUzAgdXNlcj1VQUQyRXlxRVEwSSBicmFuZD1OZW9DYXNoPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlhSZXNvbHV0aW9uPjE5MjwvdGlmZjpYUmVzb2x1dGlvbj4KICAgICAgICAgPHRpZmY6WVJlc29sdXRpb24+MTkyPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZGM6dGl0bGU+CiAgICAgICAgICAgIDxyZGY6QWx0PgogICAgICAgICAgICAgICA8cmRmOmxpIHhtbDpsYW5nPSJ4LWRlZmF1bHQiPlVudGl0bGVkIGRlc2lnbiAtIDE8L3JkZjpsaT4KICAgICAgICAgICAgPC9yZGY6QWx0PgogICAgICAgICA8L2RjOnRpdGxlPgogICAgICAgICA8ZGM6Y3JlYXRvcj4KICAgICAgICAgICAgPHJkZjpTZXE+CiAg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";function I(n){return"\u20A6"+(n/100).toLocaleString("en-NG",{minimumFractionDigits:0,maximumFractionDigits:0})}function mn({size:n=28}){return e("span",{style:{width:n,height:n,display:"inline-flex",alignItems:"center",justifyContent:"center",flex:"none"},children:e("svg",{width:n,height:n,viewBox:"0 0 32 32",fill:"none",children:[e("rect",{x:"2",y:"4",width:"6",height:"22",rx:"3",fill:"var(--nc-primary)"}),e("rect",{x:"10",y:"4",width:"6",height:"22",rx:"3",fill:"var(--nc-primary)"}),e("rect",{x:"20",y:"4",width:"6",height:"14",rx:"3",fill:"var(--nc-primary)"}),e("rect",{x:"20",y:"22",width:"6",height:"6",rx:"3",fill:"var(--nc-primary)"})]})})}function yn({height:n=22}){return e("img",{src:pn,alt:"NeoCash",style:{height:n,width:"auto",display:"block",flex:"none"}})}function mt({size:n=28}){return e("img",{src:un,alt:"NeoCash",style:{height:n,width:"auto",display:"block",flex:"none"}})}function K({size:n=18,color:t="currentColor"}){return e("span",{class:"nc-spinner",style:{width:n,height:n,color:t}})}function R({variant:n="primary",size:t="lg",icon:r,iconRight:o,children:a,onClick:i,disabled:l,loading:c,style:u={},type:d="button"}){let p={primary:{bg:"var(--nc-ink)",fg:"#fff",border:"transparent"},violet:{bg:"var(--nc-primary-strong)",fg:"#fff",border:"transparent"},yellow:{bg:"var(--nc-yellow)",fg:"var(--nc-ink-deep)",border:"transparent"},outline:{bg:"#fff",fg:"var(--nc-ink)",border:"var(--nc-border)"},ghost:{bg:"transparent",fg:"var(--nc-ink)",border:"transparent"},subtle:{bg:"var(--nc-primary-wash)",fg:"var(--nc-primary-strong)",border:"transparent"},danger:{bg:"var(--nc-danger-2)",fg:"#fff",border:"transparent"}},s={sm:{h:32,px:12,fs:13,r:8},md:{h:40,px:16,fs:14,r:10},lg:{h:48,px:20,fs:15,r:12}},f=p[n],m=s[t],[v,x]=y(!1);return e("button",{type:d,onClick:l||c?void 0:i,onMouseEnter:()=>x(!0),onMouseLeave:()=>x(!1),style:{height:m.h,padding:`0 ${m.px}px`,background:f.bg,color:f.fg,border:`1px solid ${f.border}`,borderRadius:m.r,fontWeight:600,fontSize:m.fs,lineHeight:1,cursor:l||c?"not-allowed":"pointer",opacity:l?.5:1,display:"inline-flex",alignItems:"center",justifyContent:"center",gap:8,boxShadow:n==="outline"?"var(--shadow-xs)":"none",transition:"filter .15s var(--ease)",filter:v&&!l&&!c?"brightness(.94)":"none",width:"100%",...u},children:[c&&e(K,{size:16,color:f.fg}),!c&&r&&e(b,{name:r,size:16}),a,!c&&o&&e(b,{name:o,size:16})]})}function $({label:n,hint:t,error:r,children:o,optional:a,right:i}){return e("label",{style:{display:"flex",flexDirection:"column",gap:6},children:[n&&e("span",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",fontWeight:500,fontSize:13,color:"var(--nc-ink)"},children:[e("span",{children:[n,a&&e("span",{style:{color:"var(--nc-muted)",fontWeight:400},children:" (optional)"})]}),i]}),o,t&&!r&&e("span",{style:{fontSize:12,color:"var(--nc-muted)"},children:t}),r&&e("span",{style:{fontSize:12,color:"var(--nc-danger)"},children:r})]})}function j({icon:n,prefix:t,value:r,onChange:o,placeholder:a,type:i="text",inputMode:l,error:c,autoFocus:u,maxLength:d}){let[p,s]=y(!1);return e("div",{style:{display:"flex",alignItems:"center",gap:8,height:48,padding:"0 14px",borderRadius:12,background:"#fff",border:`1px solid ${c?"var(--nc-danger)":p?"var(--nc-primary)":"var(--nc-border)"}`,boxShadow:p?"0 0 0 3px var(--nc-primary-wash)":"var(--shadow-xs)",transition:"all .15s var(--ease)"},children:[n&&e(b,{name:n,size:16,color:"var(--nc-muted)"}),t&&e("span",{style:{color:"var(--nc-muted)",fontSize:15},children:t}),e("input",{type:i,inputMode:l,value:r??"",onInput:f=>o?.(f.currentTarget.value),placeholder:a,autoFocus:u,maxLength:d,onFocus:()=>s(!0),onBlur:()=>s(!1),style:{flex:1,border:"none",outline:"none",background:"transparent",fontSize:15,color:"var(--nc-ink)",minWidth:0,padding:0}})]})}function hn({value:n,onChange:t,options:r,placeholder:o}){let[a,i]=y(!1);return e("div",{style:{position:"relative",height:48,borderRadius:12,border:`1px solid ${a?"var(--nc-primary)":"var(--nc-border)"}`,boxShadow:a?"0 0 0 3px var(--nc-primary-wash)":"var(--shadow-xs)",background:"#fff",display:"flex",alignItems:"center"},children:[e("select",{value:n??"",onChange:l=>t?.(l.currentTarget.value),onFocus:()=>i(!0),onBlur:()=>i(!1),style:{flex:1,height:"100%",padding:"0 14px",appearance:"none",WebkitAppearance:"none",border:"none",outline:"none",background:"transparent",fontSize:15,color:n?"var(--nc-ink)":"var(--nc-muted)",cursor:"pointer"},children:[o&&e("option",{value:"",children:o}),r.map(l=>e("option",{value:typeof l=="string"?l:l.value,children:typeof l=="string"?l:l.label},typeof l=="string"?l:l.value))]}),e("span",{style:{position:"absolute",right:14,pointerEvents:"none",display:"inline-flex"},children:e(b,{name:"chevron-down",size:16,color:"var(--nc-muted)"})})]})}function Fe({min:n,max:t,step:r=1,value:o,onChange:a}){let i=(o-n)/(t-n)*100;return e("input",{type:"range",class:"nc-range",min:n,max:t,step:r,value:o,onInput:l=>a?.(Number(l.currentTarget.value)),style:{"--p":`${i}%`}})}function ye({children:n,color:t="var(--nc-primary-wash)",fg:r="var(--nc-primary-strong)",icon:o,style:a={}}){return e("span",{style:{display:"inline-flex",alignItems:"center",gap:6,padding:"4px 10px",borderRadius:9999,background:t,color:r,fontWeight:500,fontSize:12,lineHeight:1,...a},children:[o&&e(b,{name:o,size:12}),n]})}function L({label:n,value:t,mono:r,strong:o,accent:a}){return e("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"baseline",gap:12},children:[e("span",{style:{fontSize:14,color:"var(--nc-muted)"},children:n}),e("span",{style:{fontFamily:r?"var(--font-mono)":"inherit",fontSize:o?16:14,fontWeight:o?600:500,color:a||"var(--nc-ink)",textAlign:"right",fontVariantNumeric:"tabular-nums"},children:t})]})}function F({step:n,total:t,onClose:r,merchant:o,canBack:a,onBack:i,hideStep:l}){return e("div",{style:{flex:"none",padding:"16px 20px",borderBottom:"1px solid var(--nc-border)",display:"flex",alignItems:"center",gap:12,background:"#fff"},children:[a?e("button",{onClick:i,"aria-label":"Back",style:fn(),children:e(b,{name:"arrow-left",size:16,color:"var(--nc-ink)"})}):e(mt,{size:28}),e("div",{style:{flex:1,display:"flex",flexDirection:"column",gap:2,minWidth:0},children:[e("span",{style:{fontSize:11,color:"var(--nc-muted)",letterSpacing:.4,textTransform:"uppercase"},children:"NeoCash \xB7 Pay Small Small"}),e("span",{style:{fontSize:13,fontWeight:500,color:"var(--nc-ink)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:o?`for ${o}`:"Secure checkout"})]}),!l&&n!=null&&e("span",{style:{fontFamily:"var(--font-mono)",fontSize:11,color:"var(--nc-muted)",padding:"4px 8px",borderRadius:6,background:"var(--nc-surface)",flex:"none"},children:[n,"/",t]}),e("button",{onClick:r,"aria-label":"Close",style:fn(),children:e(b,{name:"x",size:16,color:"var(--nc-ink)"})})]})}function fn(){return{width:32,height:32,borderRadius:8,border:"1px solid var(--nc-border)",background:"#fff",cursor:"pointer",display:"inline-flex",alignItems:"center",justifyContent:"center",flex:"none",padding:0}}function q({step:n,total:t}){let r=n/t*100;return e("div",{style:{height:3,background:"var(--nc-border)",flex:"none"},children:e("div",{style:{height:"100%",width:`${r}%`,background:"var(--nc-primary)",transition:"width .35s var(--ease)"}})})}function B({children:n,secure:t=!0}){return e("div",{style:{flex:"none",padding:"14px 20px 18px",borderTop:"1px solid var(--nc-border)",display:"flex",flexDirection:"column",gap:10,background:"#fff"},children:[n,t&&e("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",gap:6},children:[e(b,{name:"shield-check",size:12,color:"var(--nc-muted)"}),e("span",{style:{fontSize:11,color:"var(--nc-muted)"},children:"Secured by NeoCash \xB7 NDPR compliant"})]})]})}function D({children:n,padded:t=!0,style:r={},bodyRef:o}){return e("div",{ref:o,class:"nc-bnpl-scroll",style:{flex:1,minHeight:0,padding:t?"20px":0,display:"flex",flexDirection:"column",gap:16,...r},children:n})}function gn({items:n,current:t,results:r}){return e("div",{style:{display:"flex",flexDirection:"column",gap:10},children:n.map((o,a)=>{let i=r[a]==="pass",l=r[a]==="fail",c=a===t;return e("div",{style:{display:"flex",alignItems:"center",gap:12,padding:"10px 12px",borderRadius:12,border:`1px solid ${c?"var(--nc-primary)":"var(--nc-border)"}`,background:c?"var(--nc-primary-wash)":"#fff",opacity:a>t&&r[a]==null?.5:1,transition:"all .2s var(--ease)"},children:[e("span",{style:{width:22,height:22,borderRadius:9999,flex:"none",display:"inline-flex",alignItems:"center",justifyContent:"center",background:i?"var(--nc-success)":l?"var(--nc-danger)":c?"var(--nc-primary)":"var(--nc-border)",color:"#fff"},children:[i&&e(b,{name:"check",size:12,color:"#fff"}),l&&e(b,{name:"x",size:12,color:"#fff"}),!i&&!l&&e("span",{style:{fontSize:11,fontWeight:600,color:c?"#fff":"var(--nc-muted)"},children:a+1})]}),e("span",{style:{fontSize:14,color:"var(--nc-ink)"},children:o})]},a)})})}function U({tone:n="info",children:t,icon:r}){let o=n==="danger"?{bg:"#FDE5E5",fg:"var(--nc-danger)"}:n==="success"?{bg:"#E6F5EC",fg:"var(--nc-success)"}:{bg:"var(--nc-primary-wash)",fg:"var(--nc-primary-strong)"};return e("div",{style:{padding:"10px 12px",borderRadius:10,background:o.bg,color:o.fg,fontSize:13,display:"flex",gap:8,alignItems:"flex-start"},children:[r&&e(b,{name:r,size:14,color:o.fg,style:{marginTop:2}}),e("span",{style:{flex:1},children:t})]})}var M=8;function vn({ctx:n,compact:t}){let r=n.cart.items,o=!t,[a,i]=y(r.length<=3),l=!t&&a;return e("div",{style:{padding:t?12:16,borderRadius:16,border:"1px solid var(--nc-border)",background:"var(--nc-surface)",display:"flex",flexDirection:"column",gap:10},children:[e("div",{onClick:o?()=>i(c=>!c):void 0,role:o?"button":void 0,"aria-expanded":o?a:void 0,style:{display:"flex",justifyContent:"space-between",alignItems:"center",cursor:o?"pointer":"default"},children:[e("span",{style:{fontSize:12,color:"var(--nc-muted)",letterSpacing:.4,textTransform:"uppercase"},children:["Your cart at ",n.merchant.name]}),e("span",{style:{display:"flex",alignItems:"center",gap:6},children:[e("span",{style:{fontSize:12,color:"var(--nc-muted)"},children:[r.length," item",r.length===1?"":"s"]}),o&&e(b,{name:"chevron-down",size:14,color:"var(--nc-muted)",style:{transform:a?"rotate(180deg)":"none",transition:"transform .15s"}})]})]}),l&&r.map((c,u)=>e("div",{style:{display:"flex",alignItems:"center",gap:12},children:[e("span",{style:{width:36,height:36,borderRadius:8,background:"#fff",border:"1px solid var(--nc-border)",display:"inline-flex",alignItems:"center",justifyContent:"center",flex:"none",backgroundImage:c.imageUrl?`url(${c.imageUrl})`:void 0,backgroundSize:"cover",backgroundPosition:"center"},children:!c.imageUrl&&e(b,{name:"tv",size:16,color:"var(--nc-muted)"})}),e("div",{style:{flex:1,minWidth:0},children:[e("div",{style:{fontSize:14,fontWeight:500,color:"var(--nc-ink)",whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"},children:c.name}),e("div",{style:{fontSize:12,color:"var(--nc-muted)"},children:["Qty ",c.qty]})]}),e("div",{style:{fontSize:14,fontVariantNumeric:"tabular-nums"},children:I(c.price)})]},u)),e("div",{style:{height:1,background:"var(--nc-border)"}}),e("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[e("span",{style:{fontSize:14,color:"var(--nc-ink)",fontWeight:500},children:"Cart total"}),e("span",{style:{fontFamily:"var(--font-display)",fontWeight:600,fontSize:22,color:"var(--nc-ink)",letterSpacing:"-0.02em",fontVariantNumeric:"tabular-nums"},children:I(n.cart.total)})]})]})}function Q(n){if(n<30)return`${n} day${n===1?"":"s"}`;let t=Math.round(n/30);return`${t} month${t===1?"":"s"}`}function wn({ctx:n,dispatch:t}){let r=n.config,o=n.cart.total,a=Math.round(o*r.min_pay_now_rate),i=Math.min(r.max_amount_kobo,o-a),l=r.min_amount_kobo,c=i>=l,u=r.tenure_day_options,d=T=>Math.min(i,Math.max(l,T)),[p,s]=y(c?d(n.financed??i):0),[f,m]=y(n.tenure??(u[Math.min(3,u.length-1)]||u[0]||30)),v=Math.max(0,u.indexOf(f)),x=me(null),[C,_]=y(!1);H(()=>{let T=x.current;if(!T)return;let ee=()=>_(T.scrollHeight-T.scrollTop-T.clientHeight<=4);ee(),T.addEventListener("scroll",ee,{passive:!0});let ge;return typeof ResizeObserver<"u"&&T.firstElementChild&&(ge=new ResizeObserver(ee),ge.observe(T.firstElementChild)),()=>{T.removeEventListener("scroll",ee),ge?.disconnect()}},[]);let k=f/30,S=Math.max(1,Math.round(f/30)),g;if(r.interest_type==="reducing_balance"&&r.monthly_interest_rate>0){let T=r.monthly_interest_rate;g=p*T/(1-Math.pow(1+T,-S))*S-p}else g=p*r.monthly_interest_rate*k;let h=p+g,A=h/S,V=o-p,Z=Q(f),O=S===1?`Due in ${Q(f)}`:`${S}\xD7 monthly`;return c?e(P,{children:[e(F,{step:1,total:M,merchant:n.merchant.name,onClose:()=>t.close()}),e(q,{step:1,total:M}),e(D,{bodyRef:x,children:e("div",{class:"nc-screen",style:{display:"flex",flexDirection:"column",gap:16},children:[e("div",{children:[e("h2",{style:N,children:"Pay Small Small."}),e("p",{style:W,children:"Split your purchase. Pay a bit today, the rest later."})]}),e(vn,{ctx:n}),e("div",{style:{padding:16,borderRadius:16,background:"var(--nc-primary-wash)",border:"1px solid var(--nc-border)",display:"flex",justifyContent:"space-between",alignItems:"center"},children:[e("div",{style:{display:"flex",flexDirection:"column",gap:2},children:[e("span",{style:{fontSize:13,fontWeight:600,color:"var(--nc-ink)"},children:"Pay now"}),e("span",{style:{fontSize:12,color:"var(--nc-muted)"},children:"Due today at checkout"})]}),e("span",{style:{fontFamily:"var(--font-display)",fontWeight:700,fontSize:24,color:"var(--nc-primary-strong)",letterSpacing:"-0.02em",fontVariantNumeric:"tabular-nums"},children:I(V)})]}),e(kn,{children:[e(Sn,{label:"Amount to Pay Later",value:I(p)}),e(Fe,{min:l,max:i,step:5e5,value:p,onChange:T=>s(d(T))}),e(Cn,{left:I(l),right:I(i)})]}),e(kn,{children:[e(Sn,{label:"Repay over",value:Z}),e(Fe,{min:0,max:u.length-1,step:1,value:v,onChange:T=>m(u[T])}),e(Cn,{left:Q(u[0]),right:Q(u[u.length-1])})]}),e("div",{style:{padding:16,borderRadius:16,background:"var(--nc-ink)",color:"#fff",display:"flex",flexDirection:"column",gap:12,position:"relative",overflow:"hidden"},children:[e("div",{style:{position:"absolute",right:-40,top:-40,width:160,height:160,borderRadius:9999,background:"radial-gradient(circle, rgba(145,124,255,.35), transparent 70%)",pointerEvents:"none"}}),e("div",{style:{position:"relative",display:"flex",justifyContent:"space-between",alignItems:"baseline"},children:[e("span",{style:{fontSize:12,color:"rgba(255,255,255,.7)",letterSpacing:.4,textTransform:"uppercase"},children:O}),e(ye,{color:"var(--nc-yellow)",fg:"var(--nc-ink-deep)",icon:"zap",children:[Math.round(r.monthly_interest_rate*100),"%/mo"]})]}),e("div",{style:{position:"relative"},children:[e("div",{style:{fontSize:13,color:"rgba(255,255,255,.7)"},children:S===1?`Payment due in ${Q(f)}`:"Monthly installment"}),e("div",{style:{fontFamily:"var(--font-display)",fontWeight:700,fontSize:44,lineHeight:1,letterSpacing:"-0.025em",color:"#fff",fontVariantNumeric:"tabular-nums"},children:I(A)})]}),e("div",{style:{height:1,background:"rgba(255,255,255,.12)"}}),e("div",{style:{position:"relative",display:"flex",flexDirection:"column",gap:8},children:[e(L,{label:"Cart total",value:I(o),accent:"rgba(255,255,255,.85)"}),e(L,{label:"Pay today",value:I(V),accent:"rgba(255,255,255,.85)"}),e(L,{label:"Pay Small Small",value:I(p),accent:"rgba(255,255,255,.85)"}),e(L,{label:"Financing charges",value:I(g),accent:"rgba(255,255,255,.85)"}),e(L,{label:"Total to repay",value:I(h),strong:!0,accent:"#fff"})]})]}),e("p",{style:{margin:0,fontSize:12,color:"var(--nc-muted)",lineHeight:1.5},children:"Final approval and amount subject to eligibility checks. Charges apply to financed amount only."})]})}),e(B,{children:[!C&&e("div",{style:{display:"flex",alignItems:"center",justifyContent:"center",gap:6,fontSize:12,color:"var(--nc-muted)"},children:[e(b,{name:"chevron-down",size:12,color:"var(--nc-muted)"}),"Scroll down to review your full plan"]}),e(R,{iconRight:"arrow-right",disabled:!C,onClick:()=>{t.update({financed:p,tenure:f,perInstall:A,totalRepay:h,charges:g,payToday:V}),t.go("eligibility")},children:"Continue"})]})]}):e(P,{children:[e(F,{step:1,total:M,merchant:n.merchant.name,onClose:()=>t.close()}),e(q,{step:1,total:M}),e(D,{children:e("div",{class:"nc-screen",style:{display:"flex",flexDirection:"column",gap:16},children:[e("div",{children:[e("h2",{style:N,children:"Pay Small Small."}),e("p",{style:W,children:"Split your purchase. Pay a bit today, the rest later."})]}),e(vn,{ctx:n}),e(U,{tone:"info",icon:"info",children:["This cart isn't eligible for Pay Small Small. Financeable orders run from ",I(l)," to ",I(r.max_amount_kobo)," ","after the ",Math.round(r.min_pay_now_rate*100),"% pay-today portion."]})]})}),e(B,{children:e(R,{variant:"outline",onClick:()=>t.close(),children:"Close"})})]})}function Pn({ctx:n,dispatch:t}){let[r,o]=y(0),[a,i]=y([null,null,null]),[l,c]=y(""),u=["Are you currently employed?","Do you have a stable salary account?","Which bank is your salary paid into?"],d=["exit-not-employed","exit-no-salary-acct","exit-bank-unsupported"],p=(f,m)=>{let v=[...a];if(v[f]=m?"pass":"fail",i(v),!m){setTimeout(()=>t.go(d[f]),350);return}f<2?setTimeout(()=>o(f+1),250):setTimeout(()=>t.go("phone"),350)},s=[...n.banks.map(f=>f.name),"Not listed"];return e(P,{children:[e(F,{step:2,total:M,merchant:n.merchant.name,canBack:!0,onBack:()=>t.go("plan"),onClose:()=>t.close()}),e(q,{step:2,total:M}),e(D,{children:e("div",{class:"nc-screen",style:{display:"flex",flexDirection:"column",gap:16},children:[e("div",{children:[e("h2",{style:N,children:"A few quick questions"}),e("p",{style:W,children:"We need to know if BNPL is right for you before we run any checks."})]}),e(gn,{items:u,current:r,results:a}),e("div",{style:{padding:16,borderRadius:16,background:"var(--nc-primary-wash)",display:"flex",flexDirection:"column",gap:10},children:[e("span",{style:{fontSize:13,fontWeight:600,color:"var(--nc-ink)"},children:u[r]}),r<2?e("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:10},children:[e(R,{variant:"violet",onClick:()=>p(r,!0),children:"Yes"}),e(R,{variant:"outline",onClick:()=>p(r,!1),children:"No"})]}):e("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[e(hn,{value:l,onChange:c,placeholder:"Select your bank",options:s}),e(R,{variant:"violet",disabled:!l,onClick:()=>p(2,l!=="Not listed"),children:"Continue"})]})]}),e("div",{style:{padding:14,borderRadius:12,border:"1px dashed var(--nc-border)",background:"#fff",display:"flex",gap:10},children:[e(b,{name:"info",size:16,color:"var(--nc-muted)",style:{marginTop:2}}),e("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[e("span",{style:{fontSize:12.5,color:"var(--nc-ink)",lineHeight:1.5},children:"NeoCash BNPL is only available to salary earners who have been with their current employer for at least 6 months."}),e("span",{style:{fontSize:12,color:"var(--nc-muted)"},children:"Final offer is determined based on your income."})]})]})]})}),e(B,{})]})}function Rn({ctx:n,dispatch:t,api:r}){let[o,a]=y(n.phone?.replace(/^\+234\s?/,"")||n.partnerPrefill.phone?.replace(/^\+234\s?/,"")||""),[i,l]=y(!1),[c,u]=y(null),d=/^\d{10,11}$/.test(o.replace(/\s/g,"")),p=async()=>{if(d){l(!0),u(null);try{let s="+234"+o.replace(/\s/g,"").replace(/^0/,"");await r.sendOtp({phone:s}),t.update({phone:s}),t.go("otp")}catch(s){u(s.message||"Could not send code. Try again.")}finally{l(!1)}}};return e(P,{children:[e(F,{step:3,total:M,merchant:n.merchant.name,canBack:!0,onBack:()=>t.go("eligibility"),onClose:()=>t.close()}),e(q,{step:3,total:M}),e(D,{children:e("div",{class:"nc-screen",style:{display:"flex",flexDirection:"column",gap:18},children:[e(Wn,{icon:"smartphone"}),e("div",{children:[e("h2",{style:N,children:"What's your phone number?"}),e("p",{style:W,children:"We'll send you a 6-digit code to verify it's really you."})]}),e($,{label:"Phone number",children:e(j,{prefix:"\u{1F1F3}\u{1F1EC} +234",type:"tel",inputMode:"numeric",placeholder:"803 555 0142",value:o,onChange:a,autoFocus:!0,maxLength:13})}),c&&e(U,{tone:"danger",icon:"alert-circle",children:c}),e("p",{style:{margin:0,fontSize:12,color:"var(--nc-muted)"},children:"By continuing, you agree to receive SMS from NeoCash. Standard rates may apply."})]})}),e(B,{children:e(R,{iconRight:"arrow-right",disabled:!d,loading:i,onClick:p,children:"Send code"})})]})}function Tn({ctx:n,dispatch:t,api:r}){let[o,a]=y(["","","","","",""]),[i,l]=y(null),[c,u]=y(!1),[d,p]=y(30),[s,f]=y(!1),m=me([]);H(()=>{if(d<=0)return;let g=setTimeout(()=>p(d-1),1e3);return()=>clearTimeout(g)},[d]);let v=(g,h)=>{if(!/^\d?$/.test(h))return;let A=[...o];A[g]=h,a(A),l(null),h&&g<5&&m.current[g+1]?.focus()},x=(g,h)=>{h.key==="Backspace"&&!o[g]&&g>0&&m.current[g-1]?.focus()},C=g=>{let h=(g.clipboardData?.getData("text")||"").replace(/\D/g,"").slice(0,6);h.length===6&&(g.preventDefault(),a(h.split("")),m.current[5]?.focus())},_=o.every(g=>g.length===1),k=async()=>{u(!0);try{let g=await r.verifyOtp({code:o.join("")});if(g.verified)t.go("liveness");else{let h=g.attempts_left??0;l(`That code didn't match. ${h} ${h===1?"try":"tries"} left.`),a(["","","","","",""]),m.current[0]?.focus(),h<=0&&t.go("exit-otp-locked")}}catch(g){l(g.message||"Could not verify the code. Try again.")}finally{u(!1)}};H(()=>{_&&!c&&k()},[_]);let S=async()=>{if(!(d>0||!n.phone)){f(!0);try{await r.sendOtp({phone:n.phone}),p(30)}catch(g){l(g.message||"Could not resend.")}finally{f(!1)}}};return e(P,{children:[e(F,{step:3,total:M,merchant:n.merchant.name,canBack:!0,onBack:()=>t.go("phone"),onClose:()=>t.close()}),e(q,{step:3,total:M}),e(D,{children:e("div",{class:"nc-screen",style:{display:"flex",flexDirection:"column",gap:18},children:[e(Wn,{icon:"message-square"}),e("div",{children:[e("h2",{style:N,children:"Check your messages"}),e("p",{style:W,children:["We sent a 6-digit code to ",e("strong",{style:{color:"var(--nc-ink)"},children:n.phone||"your phone"}),"."]})]}),e("div",{style:{display:"grid",gridTemplateColumns:"repeat(6, 1fr)",gap:8},onPaste:C,children:o.map((g,h)=>e("input",{ref:A=>{m.current[h]=A},inputMode:"numeric",maxLength:1,value:g,onInput:A=>v(h,A.currentTarget.value),onKeyDown:A=>x(h,A),disabled:c,style:{height:56,width:"100%",textAlign:"center",fontFamily:"var(--font-mono)",fontWeight:600,fontSize:22,color:"var(--nc-ink)",border:`1px solid ${i?"var(--nc-danger)":g?"var(--nc-primary)":"var(--nc-border)"}`,borderRadius:12,background:"#fff",outline:"none",boxShadow:g?"0 0 0 3px var(--nc-primary-wash)":"var(--shadow-xs)",transition:"all .15s var(--ease)"}},h))}),i&&e(U,{tone:"danger",icon:"alert-circle",children:i}),c&&e("div",{style:{display:"flex",alignItems:"center",gap:10,color:"var(--nc-muted)",fontSize:13},children:[e(K,{size:14,color:"var(--nc-primary)"})," Verifying\u2026"]}),e("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center",fontSize:13},children:[e("button",{onClick:()=>t.go("phone"),style:{background:"transparent",border:"none",color:"var(--nc-ink)",cursor:"pointer",padding:0,textDecoration:"underline"},children:"Wrong number?"}),e("button",{disabled:d>0||s,onClick:S,style:{background:"transparent",border:"none",color:d>0?"var(--nc-muted)":"var(--nc-primary-strong)",cursor:d>0?"default":"pointer",padding:0,fontWeight:500},children:d>0?`Resend in ${d}s`:s?"Resending\u2026":"Resend code"})]})]})}),e(B,{})]})}function Mn({ctx:n,dispatch:t,api:r,assetPrefix:o}){let[a,i]=y("starting"),[l,c]=y(null),[u,d]=y("us-east-1"),[p,s]=y(null),[f,m]=y(null),[v,x]=y(null),C=async()=>{i("starting"),x(null);try{let S=await r.startLiveness();c(S.rekognition_session_id),d(S.region),s(S.credentials??null),i("capturing")}catch(S){x(S.message||"Could not start liveness check."),i("failed")}};H(()=>{C()},[]);let _=async()=>{if(l){i("submitting");try{let S=await r.submitLivenessResult({rekognition_session_id:l});if(!S.passed){let g=S.attempts_left??0;m(g),g<=0?t.go("exit-liveness-failed"):(x("We couldn't verify it's you. Please try again."),i("failed"));return}t.update({customerStatus:S.customer_status}),t.go(S.customer_status==="returning"?"summary-r":"form-n")}catch(S){x(S.message||"Could not submit liveness result."),i("failed")}}},k=S=>{x(S.message||"Liveness check couldn't run on this device."),i("failed")};return e(P,{children:[e(F,{step:4,total:M,merchant:n.merchant.name,canBack:a==="failed",onBack:()=>t.go("otp"),onClose:()=>t.close()}),e(q,{step:4,total:M}),e(D,{children:e("div",{class:"nc-screen",style:{display:"flex",flexDirection:"column",gap:16,alignItems:"center"},children:[e("div",{style:{alignSelf:"stretch"},children:[e("h2",{style:N,children:"Quick selfie"}),e("p",{style:W,children:"We need to confirm it's really you. Make sure you're in a well-lit place."})]}),e(yt,{phase:a,sessionId:l,region:u,credentials:p,assetPrefix:o,onAnalysisComplete:_,onError:k,onCancel:()=>{x("Liveness check cancelled."),i("failed")}}),v&&e(U,{tone:"danger",icon:"alert-circle",children:[v,f!=null&&` (${f} ${f===1?"attempt":"attempts"} left)`]})]})}),e(B,{children:[a==="failed"&&e(R,{iconRight:"refresh-cw",variant:"violet",onClick:C,children:"Try again"}),a==="submitting"&&e(R,{variant:"outline",disabled:!0,children:[e(K,{size:14,color:"var(--nc-primary)"}),"Submitting\u2026"]})]})]})}function yt({phase:n,sessionId:t,region:r,credentials:o,assetPrefix:a,onAnalysisComplete:i,onError:l,onCancel:c}){let u=!!o,d=me(null);return H(()=>{if(u||n!=="capturing"||!t)return;let p=setTimeout(i,2200);return()=>clearTimeout(p)},[u,n,t]),H(()=>{if(!u||n!=="capturing"||!t||!o||!d.current)return;let p=null,s=!1;return dn(a).then(f=>{if(s||!d.current)return;p=f.mount({container:d.current,sessionId:t,region:r,credentials:o,onAnalysisComplete:i,onCancel:c,onError:l}).unmount}).catch(f=>{s||l(f instanceof Error?f:new Error(String(f)))}),()=>{if(s=!0,p)try{p()}catch{}}},[u,n,t,o,a]),u?e("div",{style:{width:"100%",display:"flex",justifyContent:"center"},children:e("div",{ref:d,class:"nc-bnpl-amplify-host",style:{width:"100%",maxWidth:480,minHeight:320,borderRadius:16,overflow:"hidden",border:"1px solid var(--nc-border)",background:"#000"}})}):e("div",{style:{width:"100%",aspectRatio:"1 / 1",maxWidth:280,borderRadius:24,position:"relative",background:"linear-gradient(180deg, var(--nc-primary-wash) 0%, #F7F8FA 100%)",overflow:"hidden",border:"1px solid var(--nc-border)",display:"flex",alignItems:"center",justifyContent:"center",flexDirection:"column",gap:12},children:[e(K,{size:36,color:"var(--nc-primary)"}),e("span",{style:{fontSize:12,color:"var(--nc-muted)",textAlign:"center",padding:"0 24px"},children:n==="starting"?"Starting camera\u2026":n==="capturing"?"Hold still\u2026":"Verifying\u2026"})]})}function _n(n){return!!(n.employer?.trim()&&n.role?.trim()&&n.monthly_salary>0&&n.office_address?.trim()&&n.home_address?.trim())}function zn({ctx:n,dispatch:t,api:r}){let[o,a]=y(null),[i,l]=y(null),[c,u]=y(!1),[d,p]=y(!1);H(()=>{r.getCustomer().then(f=>{a(f),_n(f)||u(!0)}).catch(f=>l(f.message||"Could not load profile."))},[r]);let s=async()=>{if(o){if(!_n(o)){u(!0);return}p(!0);try{if((await r.runCreditCheck()).status==="declined"){t.go("exit-credit-decline");return}await r.submitEmployment({employer:o.employer,role:o.role,monthly_salary:o.monthly_salary,office_address:o.office_address,home_address:o.home_address}),t.go("mono")}catch(f){t.fail(f)}}};return d?e(ht,{ctx:n,title:"Running credit checks\u2026",subtitle:"Welcome back. Re-checking your eligibility for this purchase.",icon:"trending-up"}):c&&o?e(Ae,{ctx:n,dispatch:t,api:r,prefill:o,returning:!0}):e(P,{children:[e(F,{step:5,total:M,merchant:n.merchant.name,canBack:!0,onBack:()=>t.go("liveness"),onClose:()=>t.close()}),e(q,{step:5,total:M}),e(D,{children:e("div",{class:"nc-screen",style:{display:"flex",flexDirection:"column",gap:16},children:[i&&e(U,{tone:"danger",icon:"alert-circle",children:i}),!o&&!i&&e("div",{style:{display:"flex",alignItems:"center",gap:10,color:"var(--nc-muted)",fontSize:13},children:[e(K,{size:14,color:"var(--nc-primary)"})," Loading your profile\u2026"]}),o&&e(P,{children:[e(ye,{icon:"user-check",color:"#E6F5EC",fg:"var(--nc-success)",children:"Welcome back"}),e("div",{children:[e("h2",{style:N,children:["Hi ",o.first_name,", ready in a tap."]}),e("p",{style:W,children:"We have your details on file. Confirm everything still looks right."})]}),e("div",{style:{padding:16,borderRadius:16,border:"1px solid var(--nc-border)",background:"#fff",display:"flex",flexDirection:"column",gap:14},children:[e("div",{style:{display:"flex",alignItems:"center",gap:12},children:[e("span",{style:{width:44,height:44,borderRadius:9999,background:"var(--nc-primary)",color:"#fff",display:"inline-flex",alignItems:"center",justifyContent:"center",fontFamily:"var(--font-display)",fontWeight:600,fontSize:18},children:[o.first_name[0],o.last_name[0]]}),e("div",{style:{flex:1,minWidth:0},children:[e("div",{style:{fontSize:15,fontWeight:600},children:[o.first_name," ",o.last_name]}),e("div",{style:{fontSize:13,color:"var(--nc-muted)"},children:o.email})]})]}),e("div",{style:{height:1,background:"var(--nc-border)"}}),e("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[e(L,{label:"Phone",value:o.phone}),e(L,{label:"BVN",value:o.bvn_masked,mono:!0})]})]}),e("div",{style:{padding:16,borderRadius:16,border:"1px solid var(--nc-border)",background:"#fff",display:"flex",flexDirection:"column",gap:12},children:[e("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"center"},children:[e("span",{style:{fontSize:12,color:"var(--nc-muted)",letterSpacing:.4,textTransform:"uppercase"},children:"Employment & address"}),e(ye,{color:"var(--nc-surface)",fg:"var(--nc-muted)",icon:"briefcase",children:"From last application"})]}),e("div",{style:{display:"flex",flexDirection:"column",gap:10},children:[e(L,{label:"Employer",value:o.employer}),e(L,{label:"Role",value:o.role}),e(L,{label:"Monthly salary",value:I(o.monthly_salary)}),e(L,{label:"Office",value:o.office_address}),e(L,{label:"Home",value:o.home_address})]})]}),e("div",{style:{padding:14,borderRadius:14,background:"var(--nc-primary-wash)",display:"flex",flexDirection:"column",gap:10},children:[e("span",{style:{fontSize:14,fontWeight:600,color:"var(--nc-ink)"},children:"Is your employment information still current?"}),e("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:8},children:[e(R,{variant:"violet",icon:"check",onClick:s,children:"Yes, all current"}),e(R,{variant:"outline",icon:"pencil",onClick:()=>u(!0),children:"Update"})]})]})]})]})}),e(B,{})]})}function En({ctx:n,dispatch:t,api:r}){let o=n.partnerPrefill||{},[a,i]=y({firstName:o.firstName||"",lastName:o.lastName||"",email:o.email||"",bvn:o.bvn||""}),[l,c]=y(null),[u,d]=y(!1),p=m=>v=>{i({...a,[m]:v}),c(null)},s=a.firstName&&a.lastName&&/\S+@\S+/.test(a.email)&&/^\d{11}$/.test(a.bvn),f=async()=>{d(!0);try{let m=await r.submitIdentity({first_name:a.firstName,last_name:a.lastName,email:a.email,bvn:a.bvn});m.status==="cant_offer"?t.go("exit-bvn-cant-offer"):m.status==="cant_verify"?c(m.reasons?.[0]||"We could not verify the information you provided. Please double-check your BVN and details."):(t.update({pii:a}),t.go("face-match"))}catch(m){c(m.message||"Could not submit. Try again.")}finally{d(!1)}};return e(P,{children:[e(F,{step:5,total:M,merchant:n.merchant.name,canBack:!0,onBack:()=>t.go("liveness"),onClose:()=>t.close()}),e(q,{step:5,total:M}),e(D,{children:e("div",{class:"nc-screen",style:{display:"flex",flexDirection:"column",gap:14},children:[e("div",{children:[e("h2",{style:N,children:"Tell us a bit about you"}),e("p",{style:W,children:"We use this to verify your identity with the National Identity Bureau."})]}),(o.firstName||o.email)&&e("div",{style:{padding:10,borderRadius:10,background:"var(--nc-primary-wash)",display:"flex",alignItems:"center",gap:10},children:[e(b,{name:"sparkles",size:14,color:"var(--nc-primary-strong)"}),e("span",{style:{fontSize:12.5,color:"var(--nc-ink)"},children:["Pre-filled from ",n.merchant.name,". Edit anything that's not right."]})]}),e("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:10},children:[e($,{label:"First name",children:e(j,{value:a.firstName,onChange:p("firstName"),placeholder:"Adaeze"})}),e($,{label:"Last name",children:e(j,{value:a.lastName,onChange:p("lastName"),placeholder:"Okafor"})})]}),e($,{label:"Email",children:e(j,{type:"email",value:a.email,onChange:p("email"),placeholder:"you@example.com",icon:"mail"})}),e($,{label:"BVN",hint:"Your 11-digit Bank Verification Number.",right:e("span",{style:{fontSize:11,color:"var(--nc-muted)"},children:"Dial *565*0# to find yours"}),children:e(j,{value:a.bvn,onChange:m=>p("bvn")(m.replace(/[^\d]/g,"").slice(0,11)),placeholder:"22301234567",inputMode:"numeric",icon:"shield",error:l})}),l&&e(U,{tone:"danger",icon:"alert-circle",children:l}),e("div",{style:{padding:12,borderRadius:12,background:"var(--nc-surface)",display:"flex",gap:10},children:[e(b,{name:"lock",size:14,color:"var(--nc-muted)",style:{marginTop:2}}),e("span",{style:{fontSize:12,color:"var(--nc-muted)",lineHeight:1.5},children:"Your BVN is encrypted in transit and at rest. NeoCash never stores your bank PIN or password."})]})]})}),e(B,{children:e(R,{iconRight:"arrow-right",disabled:!s,loading:u,onClick:f,children:"Submit"})})]})}function In({ctx:n,dispatch:t,api:r}){return H(()=>{let o=!0,a=0;return(async()=>{for(;o&&a<30;){a++;try{let l=await r.getIdentityStatus();if(l.face_match==="pass"){t.go("credit-check");return}if(l.face_match==="fail"){t.go("exit-face-mismatch");return}}catch(l){t.fail(l);return}await new Promise(l=>setTimeout(l,1e3))}o&&t.go("exit-face-mismatch")})(),()=>{o=!1}},[r]),e(P,{children:[e(F,{hideStep:!0,merchant:n.merchant.name,onClose:()=>t.close()}),e(D,{children:e(De,{title:"Verifying your identity",subtitle:"Comparing your selfie with your BVN photo. This usually takes a few seconds.",icon:"user-check"})}),e(B,{})]})}function Fn({ctx:n,dispatch:t,api:r}){return H(()=>{r.runCreditCheck().then(o=>{o.status==="declined"?t.go("exit-credit-decline"):t.go("good-credit")}).catch(o=>t.fail(o))},[r]),e(P,{children:[e(F,{hideStep:!0,merchant:n.merchant.name,onClose:()=>t.close()}),e(D,{children:e(De,{title:"Running credit checks\u2026",subtitle:"We're checking your credit history. This is a soft search \u2014 it won't affect your score.",icon:"trending-up",steps:["Checking national credit bureau","Scoring repayment history","Sizing your offer"]})}),e(B,{})]})}function ht({ctx:n,title:t,subtitle:r,icon:o}){return e(P,{children:[e(F,{hideStep:!0,merchant:n.merchant.name,onClose:()=>{}}),e(D,{children:e(De,{title:t,subtitle:r,icon:o})}),e(B,{})]})}function De({title:n,subtitle:t,icon:r,steps:o}){let[a,i]=y(0);return H(()=>{if(!o)return;let l=setInterval(()=>i(c=>Math.min(c+1,o.length-1)),700);return()=>clearInterval(l)},[o]),e("div",{class:"nc-screen",style:{display:"flex",flexDirection:"column",gap:18,alignItems:"center",textAlign:"center",paddingTop:40},children:[e("div",{style:{width:96,height:96,borderRadius:9999,position:"relative",background:"var(--nc-primary-wash)",display:"inline-flex",alignItems:"center",justifyContent:"center"},children:[e("span",{style:{position:"absolute",inset:-6,borderRadius:9999,border:"3px solid transparent",borderTopColor:"var(--nc-primary)",animation:"nc-spin 1.2s linear infinite"}}),e(b,{name:r,size:36,color:"var(--nc-primary-strong)"})]}),e("div",{children:[e("h2",{style:{...N,fontSize:22},children:n}),e("p",{style:{...W,marginTop:8,maxWidth:320},children:t})]}),o&&e("div",{style:{alignSelf:"stretch",display:"flex",flexDirection:"column",gap:8,marginTop:8},children:o.map((l,c)=>e("div",{style:{display:"flex",alignItems:"center",gap:10,padding:"10px 12px",borderRadius:10,background:c===a?"var(--nc-primary-wash)":"var(--nc-surface)",opacity:c>a?.55:1,transition:"all .25s"},children:[e("span",{style:{width:18,height:18,borderRadius:9999,flex:"none",display:"inline-flex",alignItems:"center",justifyContent:"center",background:c<a?"var(--nc-success)":c===a?"var(--nc-primary)":"var(--nc-border)",color:"#fff"},children:c<a?e(b,{name:"check",size:11,color:"#fff"}):c===a?e("span",{style:{animation:"nc-pulse 1s infinite",fontSize:9,fontWeight:700},children:"\u2022"}):null}),e("span",{style:{fontSize:13.5,textAlign:"left",color:"var(--nc-ink)"},children:l})]},c))})]})}function Bn({ctx:n,dispatch:t}){return e(P,{children:[e(F,{step:5,total:M,merchant:n.merchant.name,onClose:()=>t.close()}),e(q,{step:5,total:M}),e(D,{children:e("div",{class:"nc-screen",style:{display:"flex",flexDirection:"column",gap:18,alignItems:"center",textAlign:"center",paddingTop:24},children:[e("div",{style:{width:96,height:96,borderRadius:9999,background:"linear-gradient(135deg, var(--nc-yellow) 0%, #FFB800 100%)",display:"inline-flex",alignItems:"center",justifyContent:"center",boxShadow:"0 12px 32px rgba(255,218,44,.35)"},children:e(b,{name:"sparkles",size:40,color:"var(--nc-ink-deep)"})}),e("div",{children:[e("h2",{style:{...N,fontSize:26},children:"You have a good credit history."}),e("p",{style:{...W,marginTop:10,maxWidth:320},children:"We just need to confirm your source of repayment to unlock your offer."})]}),e("div",{style:{alignSelf:"stretch",padding:14,borderRadius:14,background:"var(--nc-surface)",display:"flex",flexDirection:"column",gap:10,textAlign:"left"},children:[e("span",{style:{fontSize:12,color:"var(--nc-muted)",letterSpacing:.4,textTransform:"uppercase"},children:"What's next"}),e("div",{style:{display:"flex",alignItems:"center",gap:10},children:[e(b,{name:"briefcase",size:16,color:"var(--nc-primary-strong)"}),e("span",{style:{fontSize:14},children:"Confirm your employment & address"})]}),e("div",{style:{display:"flex",alignItems:"center",gap:10},children:[e(b,{name:"landmark",size:16,color:"var(--nc-primary-strong)"}),e("span",{style:{fontSize:14},children:"Connect your salary account"})]})]})]})}),e(B,{children:e(R,{iconRight:"arrow-right",onClick:()=>t.go("employment"),children:"Confirm income source"})})]})}function Ae({ctx:n,dispatch:t,api:r,prefill:o,returning:a}){let[i,l]=y({employer:o?.employer||"",role:o?.role||"",salary:o?.monthly_salary&&o.monthly_salary>0?String(Math.round(o.monthly_salary/100)):"",office:o?.office_address||"",home:o?.home_address||""}),[c,u]=y(!1),[d,p]=y(null),[s,f]=y({}),[m,v]=y(null),[x,C]=y("idle"),_=h=>A=>{l(V=>({...V,[h]:A})),s[h]&&f(V=>({...V,[h]:void 0}))},k=()=>{let h={};return i.employer.trim()||(h.employer="Required"),i.role.trim()||(h.role="Required"),(!i.salary.trim()||Number(i.salary)<=0)&&(h.salary="Enter your monthly salary"),i.office.trim()||(h.office="Required"),i.home.trim()||(h.home="Required"),f(h),Object.keys(h).length===0},S=()=>{if(!navigator.geolocation){C("denied");return}C("requesting"),navigator.geolocation.getCurrentPosition(h=>{v({lat:h.coords.latitude,lng:h.coords.longitude,accuracy:h.coords.accuracy}),C("granted")},()=>C("denied"),{timeout:1e4})},g=async()=>{if(k()){u(!0),p(null);try{if(a&&(await r.runCreditCheck()).status==="declined"){t.go("exit-credit-decline");return}await r.submitEmployment({employer:i.employer,role:i.role,monthly_salary:Math.round(Number(i.salary)*100),office_address:i.office,home_address:i.home,location:m||void 0}),t.go("mono")}catch(h){p(h.message||"Could not save. Try again.")}finally{u(!1)}}};return e(P,{children:[e(F,{step:a?5:6,total:M,merchant:n.merchant.name,canBack:!0,onBack:()=>a?t.go("summary-r"):t.go("good-credit"),onClose:()=>t.close()}),e(q,{step:a?5:6,total:M}),e(D,{children:e("div",{class:"nc-screen",style:{display:"flex",flexDirection:"column",gap:14},children:[e("div",{children:[e("h2",{style:N,children:a?"Update your details":"Confirm your income source"}),e("p",{style:W,children:a?"Edit anything that's changed. We'll re-run our checks.":"We use this to size your offer. We never share it without your permission."})]}),e($,{label:"Company / Employer",error:s.employer,children:e(j,{value:i.employer,onChange:_("employer"),placeholder:"e.g. Andela Nigeria Ltd",icon:"building-2",error:s.employer})}),e($,{label:"Role / Job title",error:s.role,children:e(j,{value:i.role,onChange:_("role"),placeholder:"e.g. Senior Engineer",icon:"briefcase",error:s.role})}),e($,{label:"Monthly salary (\u20A6)",error:s.salary,children:e(j,{value:i.salary,onChange:h=>_("salary")(h.replace(/[^\d]/g,"")),placeholder:"850000",inputMode:"numeric",prefix:"\u20A6",error:s.salary})}),e($,{label:"Office address",error:s.office,children:e(j,{value:i.office,onChange:_("office"),placeholder:"Street, area, city",icon:"map-pin",error:s.office})}),e($,{label:"Home address",error:s.home,children:e(j,{value:i.home,onChange:_("home"),placeholder:"Street, area, city",icon:"house",error:s.home})}),!a&&e("div",{style:{padding:12,borderRadius:12,background:"var(--nc-surface)",display:"flex",alignItems:"center",gap:10},children:[e(b,{name:"navigation",size:16,color:"var(--nc-muted)"}),e("div",{style:{flex:1,minWidth:0},children:[e("div",{style:{fontSize:13,fontWeight:500},children:"Share your current location"}),e("div",{style:{fontSize:12,color:"var(--nc-muted)"},children:x==="granted"?"Location captured \u2713":x==="denied"?"Skipped":x==="requesting"?"Requesting\u2026":"Required for verification"})]}),e(R,{size:"sm",variant:x==="granted"?"outline":"subtle",onClick:S,disabled:x==="requesting",children:x==="granted"?"Captured":"Allow"})]}),d&&e(U,{tone:"danger",icon:"alert-circle",children:d})]})}),e(B,{children:e(R,{iconRight:"arrow-right",loading:c,onClick:g,children:a?"Save and continue":"Continue to bank verification"})})]})}var bn="https://connect.withmono.com/connect.js";function Be(){if(typeof window>"u")return null;let n=window;return[n.MonoConnect,n.MonoConnect?.default,n.Connect,n.Connect?.default].find(r=>typeof r=="function")??null}function gt(){if(typeof window>"u")return Promise.reject(new Error("no window"));let n=Be();return n?Promise.resolve(n):new Promise((t,r)=>{let o=()=>{let l=Be();l?t(l):r(new Error("Mono Connect SDK loaded but no constructor found on window (MonoConnect / MonoConnect.default / Connect)."))},a=document.querySelector(`script[src="${bn}"]`);if(a){let l=Be();if(l){t(l);return}a.addEventListener("load",o),a.addEventListener("error",()=>r(new Error("Failed to load Mono Connect SDK.")));return}let i=document.createElement("script");i.src=bn,i.async=!0,i.onload=o,i.onerror=()=>r(new Error("Failed to load Mono Connect SDK.")),document.head.appendChild(i)})}function Dn({ctx:n,dispatch:t,api:r}){let[o,a]=y("intro"),[i,l]=y(0),[c,u]=y(null);H(()=>{if(o!=="connecting")return;let p=document.querySelector(".nc-bnpl-overlay");if(!p)return;let s=p.style.visibility;return p.style.visibility="hidden",()=>{p.style.visibility=s}},[o]);let d=async()=>{a("connecting"),u(null);try{let[p,s]=await Promise.all([r.getMonoLinkToken(),gt()]);if(!p.public_key||!/^(live|test)_pk_/.test(p.public_key))throw new Error(`Bad Mono public key from backend ("${p.public_key}"). Expected something like "test_pk_xxx" or "live_pk_xxx".`);let f=Array.isArray(p.scope)?p.scope[0]:p.scope,m={key:p.public_key,reference:p.reference,data:{customer:{id:p.customer_ref}},onClose:()=>{a(x=>x==="connecting"?"intro":x)},onSuccess:()=>{a("success"),setTimeout(()=>t.go("pending"),1e3)},onLoad:()=>{}};f&&(m.scope=f);let v=new s(m);v.setup(),v.open()}catch(p){let s=i+1;l(s),u(p.message||"We couldn't connect to your bank. Please try again."),a("failed"),s>=2&&t.go("exit-mono-failed")}};return e(P,{children:[e(F,{step:7,total:M,merchant:n.merchant.name,canBack:o==="intro",onBack:()=>t.go(n.customerStatus==="returning"?"summary-r":"employment"),onClose:()=>t.close()}),e(q,{step:7,total:M}),e(D,{children:e("div",{class:"nc-screen",style:{display:"flex",flexDirection:"column",gap:16},children:[e("div",{children:[e("h2",{style:N,children:"Connect your salary account"}),e("p",{style:W,children:"We use Mono to securely read your last 3 months of statements. Read-only, encrypted, revocable any time."})]}),e(vt,{phase:o}),o==="intro"&&e("div",{style:{padding:14,borderRadius:12,border:"1px solid var(--nc-border)",display:"flex",flexDirection:"column",gap:10},children:[["lock","Bank-level 256-bit encryption"],["eye-off","We never see your password"],["clock","Takes about 30 seconds"]].map(([p,s],f)=>e("div",{style:{display:"flex",alignItems:"center",gap:10},children:[e(b,{name:p,size:14,color:"var(--nc-success)"}),e("span",{style:{fontSize:13,color:"var(--nc-ink)"},children:s})]},f))}),o==="failed"&&c&&e(U,{tone:"danger",icon:"alert-circle",children:c})]})}),e(B,{children:[o==="intro"&&e(R,{iconRight:"arrow-right",onClick:d,children:"Connect with Mono"}),o==="connecting"&&e(R,{variant:"outline",disabled:!0,children:[e(K,{size:14,color:"var(--nc-primary)"}),"Connecting\u2026"]}),o==="failed"&&e(R,{iconRight:"refresh-cw",variant:"violet",onClick:d,children:"Try again"}),o==="success"&&e(R,{variant:"outline",disabled:!0,children:[e(b,{name:"check-circle",size:14,color:"var(--nc-success)"}),"Connected"]})]})]})}function vt({phase:n}){return e("div",{style:{padding:24,borderRadius:16,background:"linear-gradient(135deg, #F0EDFF 0%, #E1F0FF 100%)",display:"flex",flexDirection:"column",alignItems:"center",gap:18},children:[e("div",{style:{display:"flex",alignItems:"center",gap:16},children:[e("div",{style:{width:64,height:64,borderRadius:16,background:"var(--nc-ink)",display:"flex",alignItems:"center",justifyContent:"center",boxShadow:"0 8px 24px rgba(45,50,97,.25)",animation:n==="connecting"?"nc-bob 1.6s ease-in-out infinite":"none"},children:e(mn,{size:36})}),e("div",{style:{position:"relative",width:56,height:4,borderRadius:9999,background:"rgba(45,50,97,.12)"},children:e("div",{style:{position:"absolute",inset:0,borderRadius:9999,background:n==="success"?"var(--nc-success)":"var(--nc-primary)",width:n==="intro"?"0%":"100%",transition:"width 1.6s var(--ease)"}})}),e("div",{style:{width:64,height:64,borderRadius:16,background:"#fff",display:"flex",alignItems:"center",justifyContent:"center",boxShadow:"0 8px 24px rgba(45,50,97,.12)",border:"1px solid var(--nc-border)"},children:e(b,{name:"landmark",size:32,color:"var(--nc-vault)"})})]}),e("div",{style:{display:"flex",alignItems:"center",gap:8,fontSize:13},children:[e("span",{style:{fontFamily:"var(--font-display)",fontWeight:600,color:"var(--nc-ink)"},children:"NeoCash"}),e(b,{name:"arrow-right",size:12,color:"var(--nc-muted)"}),e("span",{style:{padding:"3px 8px",borderRadius:6,background:"#fff",border:"1px solid var(--nc-border)",fontFamily:"var(--font-mono)",fontSize:11,color:"var(--nc-ink)"},children:"powered by Mono"}),e(b,{name:"arrow-right",size:12,color:"var(--nc-muted)"}),e("span",{style:{fontWeight:500,color:"var(--nc-ink)"},children:"your bank"})]})]})}function An({ctx:n,dispatch:t,api:r,onApprovalPending:o}){let[a,i]=y(n.pii?.email||n.partnerPrefill.email||""),[l,c]=y(!1),[u,d]=y(!1),[p,s]=y(null),f=n.merchant.cart_mode==="hold",m=async()=>{if(a){if(l){t.close();return}d(!0),s(null);try{let v=await r.finalize({email:a,tenure_days:n.tenure??0,financed_kobo:n.financed??0});t.update({applicationId:v.application_id}),o?.(v.application_id),c(!0)}catch(v){s(v.message||"Could not submit. Try again.")}finally{d(!1)}}};return e(P,{children:[e(F,{step:8,total:M,merchant:n.merchant.name,onClose:()=>t.close()}),e(q,{step:8,total:M}),e(D,{children:e("div",{class:"nc-screen",style:{display:"flex",flexDirection:"column",gap:18},children:[e("div",{style:{width:64,height:64,borderRadius:16,background:"var(--nc-primary-wash)",display:"inline-flex",alignItems:"center",justifyContent:"center",position:"relative"},children:[e(b,{name:"hourglass",size:28,color:"var(--nc-primary-strong)"}),e("span",{style:{position:"absolute",top:-6,right:-6,width:24,height:24,borderRadius:9999,background:"var(--nc-yellow)",display:"inline-flex",alignItems:"center",justifyContent:"center",boxShadow:"0 4px 8px rgba(255,218,44,.4)"},children:e(b,{name:"check",size:14,color:"var(--nc-ink-deep)"})})]}),e("div",{children:[e("h2",{style:{...N,fontSize:24},children:"Thanks. We're on it."}),e("p",{style:{...W,marginTop:8,lineHeight:1.5},children:"We're verifying your income and will email you once your application is complete. Most decisions take less than 10 minutes."})]}),e($,{label:"Confirm your email",hint:"Make sure this is an email you check often.",children:e(j,{type:"email",value:a,onChange:i,icon:"mail"})}),e("div",{style:{padding:14,borderRadius:14,background:f?"#FFF9E0":"var(--nc-surface)",border:`1px solid ${f?"#FFE588":"var(--nc-border)"}`,display:"flex",gap:10},children:[e(b,{name:f?"briefcase":"check-circle",size:16,color:f?"var(--nc-yellow-deep)":"var(--nc-ink)",style:{marginTop:2,flex:"none"}}),e("div",{style:{display:"flex",flexDirection:"column",gap:4},children:[e("span",{style:{fontSize:13,fontWeight:600,color:"var(--nc-ink)"},children:f?`${n.merchant.name} is holding your order`:"Your cart has been released"}),e("span",{style:{fontSize:12.5,color:"var(--nc-muted)",lineHeight:1.5},children:f?`Your cart at ${n.merchant.name} is held for up to 24 hours. We'll email you a link to complete checkout once approved.`:`Once approved, we'll email you a link to return to ${n.merchant.name} and complete your purchase with your NeoCash limit.`})]})]}),e("div",{style:{padding:14,borderRadius:14,border:"1px solid var(--nc-border)",display:"flex",flexDirection:"column",gap:10},children:[e("span",{style:{fontSize:12,color:"var(--nc-muted)",letterSpacing:.4,textTransform:"uppercase"},children:"Application summary"}),e(L,{label:"Financed",value:I(n.financed||0)}),e(L,{label:"Tenure",value:Q(n.tenure||0)}),e(L,{label:"Est. monthly",value:I(n.perInstall||0),strong:!0})]}),p&&e(U,{tone:"danger",icon:"alert-circle",children:p})]})}),e(B,{children:e(R,{iconRight:l?"check":"send",loading:u,onClick:m,children:l?"Done \u2014 close":"Confirm email"})})]})}var xn={"exit-not-employed":{icon:"briefcase",tone:"info",title:"BNPL is for salary earners only",body:"NeoCash BNPL is currently only available to people in formal employment. We hope to expand soon.",primary:"Return to checkout"},"exit-no-salary-acct":{icon:"landmark",tone:"info",title:"A salary account is required",body:"NeoCash BNPL is currently only available to people who receive their salary into a Nigerian bank account.",primary:"Return to checkout"},"exit-bank-unsupported":{icon:"landmark",tone:"info",title:"We don't support your bank yet",body:"Sorry \u2014 BNPL is not currently available for your bank. We're working with our partners to add more banks every month.",primary:"Return to checkout",support:!0},"exit-otp-locked":{icon:"lock",tone:"danger",title:"Verification failed",body:"We couldn't verify your phone number after several attempts. For your security, please try again in 30 minutes.",primary:"Close",support:!0},"exit-liveness-failed":{icon:"camera-off",tone:"danger",title:"We couldn't verify it's you",body:"Our liveness check didn't pass. Please make sure you're in a well-lit space and try again later.",primary:"Close",support:!0},"exit-credit-decline":{icon:"trending-down",tone:"danger",title:"We can't offer you a loan right now",body:"Based on the information available, we cannot extend BNPL to you at this time. This decision was based on your credit history. You have the right to request a free copy of your credit report.",primary:"Close",support:!0,adverse:!0},"exit-bvn-cant-offer":{icon:"shield-x",tone:"danger",title:"We can't offer you a loan right now",body:"We're unable to extend BNPL to you at this time based on the information you provided. You may request a free credit report from any Nigerian bureau.",primary:"Close",support:!0,adverse:!0},"exit-face-mismatch":{icon:"user-x",tone:"danger",title:"We could not verify your identity",body:"The selfie you provided doesn't match the photo on your BVN record. Please contact NeoCash support if you believe this is an error.",primary:"Close",support:!0},"exit-mono-failed":{icon:"wifi-off",tone:"danger",title:"We couldn't reach your bank",body:"Please try again later, or contact your bank if the issue continues.",primary:"Close",support:!0},"exit-error":{icon:"alert-circle",tone:"danger",title:"Something went wrong",body:"An unexpected error occurred. Please try again.",primary:"Close",support:!0}};function _t(){return"NC-"+Math.random().toString(36).slice(2,8).toUpperCase()}function Ln({exitKey:n,ctx:t,dispatch:r}){let o=xn[n]||xn["exit-error"],a=o.tone==="danger";return e(P,{children:[e(F,{hideStep:!0,merchant:t.merchant.name,onClose:()=>r.close()}),e(D,{children:e("div",{class:"nc-screen",style:{display:"flex",flexDirection:"column",gap:18,alignItems:"center",textAlign:"center",paddingTop:32},children:[e("div",{style:{width:80,height:80,borderRadius:9999,background:a?"#FDE5E5":"var(--nc-primary-wash)",display:"inline-flex",alignItems:"center",justifyContent:"center"},children:e(b,{name:o.icon,size:36,color:a?"var(--nc-danger)":"var(--nc-primary-strong)"})}),e("div",{children:[e("h2",{style:{...N,fontSize:22,maxWidth:340},children:o.title}),e("p",{style:{...W,marginTop:10,lineHeight:1.6,maxWidth:340},children:o.body})]}),o.adverse&&e("div",{style:{alignSelf:"stretch",padding:12,borderRadius:12,background:"var(--nc-surface)",border:"1px solid var(--nc-border)",fontSize:12,color:"var(--nc-muted)",lineHeight:1.5,textAlign:"left"},children:["You can reapply after 60 days. To dispute this decision, contact ",e("strong",{style:{color:"var(--nc-ink)"},children:"support@neocash.ng"})," with reference ",_t(),"."]})]})}),e(B,{children:[e(R,{variant:"primary",onClick:()=>r.close(),children:o.primary}),o.support&&e(R,{variant:"ghost",size:"md",icon:"life-buoy",onClick:()=>window.open("mailto:support@neocash.ng"),children:"Contact support"})]})]})}function Nn({ctx:n,dispatch:t}){return e(P,{children:[e(F,{hideStep:!0,merchant:n.merchant.name,onClose:()=>{}}),e(D,{children:e("div",{class:"nc-screen",style:{display:"flex",flexDirection:"column",gap:16,alignItems:"center",textAlign:"center",paddingTop:60},children:[e("div",{style:{width:64,height:64,borderRadius:16,background:"var(--nc-surface)",display:"inline-flex",alignItems:"center",justifyContent:"center"},children:e(b,{name:"x-circle",size:28,color:"var(--nc-muted)"})}),e("div",{children:[e("h2",{style:{...N,fontSize:20},children:"Widget closed"}),e("p",{style:{...W,fontSize:13},children:["Control returned to ",n.merchant.name,"'s checkout."]})]})]})}),e(B,{children:e(R,{variant:"outline",icon:"rotate-ccw",onClick:()=>t.go("plan"),children:"Restart"})})]})}var N={margin:0,fontWeight:700,fontSize:22,letterSpacing:"-0.02em",color:"var(--nc-ink)"},W={margin:"6px 0 0",fontSize:14,color:"var(--nc-muted)"};function kn({children:n}){return e("div",{style:{padding:16,borderRadius:16,border:"1px solid var(--nc-border)",background:"#fff",display:"flex",flexDirection:"column",gap:12},children:n})}function Sn({label:n,value:t}){return e("div",{style:{display:"flex",justifyContent:"space-between",alignItems:"baseline"},children:[e("span",{style:{fontSize:13,fontWeight:500,color:"var(--nc-ink)"},children:n}),e("span",{style:{fontFamily:"var(--font-display)",fontWeight:600,fontSize:22,color:"var(--nc-primary-strong)",letterSpacing:"-0.02em",fontVariantNumeric:"tabular-nums"},children:t})]})}function Cn({left:n,right:t}){return e("div",{style:{display:"flex",justifyContent:"space-between",fontSize:11,color:"var(--nc-muted)"},children:[e("span",{children:n}),e("span",{children:t})]})}function Wn({icon:n}){return e("div",{style:{width:56,height:56,borderRadius:16,background:"var(--nc-primary-wash)",display:"inline-flex",alignItems:"center",justifyContent:"center"},children:e(b,{name:n,size:26,color:"var(--nc-primary-strong)"})})}function Hn(n){let[t,r]=y("boot"),[o,a]=y({cart:n.cart,partnerPrefill:n.partnerPrefill,merchant:{name:"",cart_mode:"hold"},config:{monthly_interest_rate:.05,interest_type:"flat",processing_fee_rate:.015,min_amount_kobo:35e5,max_amount_kobo:2e8,min_tenure_days:14,max_tenure_days:180,min_pay_now_rate:.2,tenure_day_options:[14,30,60,90,120,150,180]},banks:[]}),[i,l]=y(null),c=Ie(()=>({go:u=>r(u),update:u=>a(d=>({...d,...u})),close:()=>{r("closed"),n.onClose()},fail:u=>{n.onError?.(u),r("exit-error")}}),[n]);return H(()=>{let u=!0;return n.api.createSession({public_key:n.publicKey,cart:n.cart,partner_prefill:n.partnerPrefill}).then(d=>{u&&(n.api.setSessionToken(d.session_token),a(p=>({...p,merchant:d.merchant,config:d.config,banks:d.banks,partnerPrefill:{...p.partnerPrefill,...d.prefill}})),r("plan"))}).catch(d=>{u&&(l(d),n.onError?.(d))}),()=>{u=!1}},[n.api,n.publicKey]),e("div",{class:"nc-bnpl-overlay",role:"dialog","aria-modal":"true","aria-label":"NeoCash BNPL",children:e("div",{class:"nc-bnpl-frame",children:xt({screen:t,ctx:o,dispatch:c,api:n.api,bootError:i,assetPrefix:n.assetPrefix,onApprovalPending:n.onApprovalPending})},t)})}function xt({screen:n,ctx:t,dispatch:r,api:o,bootError:a,assetPrefix:i,onApprovalPending:l}){return n==="boot"?e(kt,{err:a,dispatch:r}):n==="plan"?e(wn,{ctx:t,dispatch:r}):n==="eligibility"?e(Pn,{ctx:t,dispatch:r}):n==="phone"?e(Rn,{ctx:t,dispatch:r,api:o}):n==="otp"?e(Tn,{ctx:t,dispatch:r,api:o}):n==="liveness"?e(Mn,{ctx:t,dispatch:r,api:o,assetPrefix:i}):n==="summary-r"?e(zn,{ctx:t,dispatch:r,api:o}):n==="form-n"?e(En,{ctx:t,dispatch:r,api:o}):n==="face-match"?e(In,{ctx:t,dispatch:r,api:o}):n==="credit-check"?e(Fn,{ctx:t,dispatch:r,api:o}):n==="good-credit"?e(Bn,{ctx:t,dispatch:r}):n==="employment"?e(Ae,{ctx:t,dispatch:r,api:o,prefill:null,returning:!1}):n==="mono"?e(Dn,{ctx:t,dispatch:r,api:o}):n==="pending"?e(An,{ctx:t,dispatch:r,api:o,onApprovalPending:l}):n==="closed"?e(Nn,{ctx:t,dispatch:r}):n.startsWith("exit-")?e(Ln,{exitKey:n,ctx:t,dispatch:r}):e("div",{children:["Unknown: ",n]})}function kt({err:n,dispatch:t}){return n?e("div",{style:{padding:32,display:"flex",flexDirection:"column",gap:16,alignItems:"center",textAlign:"center",height:"100%",justifyContent:"center"},children:[e(b,{name:"alert-circle",size:36,color:"var(--nc-danger)"}),e("h2",{style:{margin:0,fontWeight:700,fontSize:18},children:"We couldn't start BNPL"}),e("p",{style:{margin:0,fontSize:14,color:"var(--nc-muted)"},children:n.message}),e(R,{variant:"outline",onClick:()=>t.close(),children:"Close"})]}):e("div",{style:{padding:32,display:"flex",flexDirection:"column",gap:18,alignItems:"center",textAlign:"center",height:"100%",justifyContent:"center"},children:[e(yn,{height:30}),e(K,{size:28,color:"var(--nc-primary)"}),e("span",{style:{fontSize:13,color:"var(--nc-muted)"},children:"Starting your checkout\u2026"})]})}var St="https://api.neocash.ng",Le=class extends Error{constructor(t,r={}){super(t),this.code=r.code,this.status=r.status,this.retryable=r.retryable}},he=class{constructor(t={}){this.sessionToken=null;this.base=t.apiBase??St}setSessionToken(t){this.sessionToken=t}async req(t,r,o){let a={"Content-Type":"application/json"};this.sessionToken&&(a.Authorization=`Bearer ${this.sessionToken}`);let i=await fetch(this.base+r,{method:t,headers:a,body:o==null?void 0:JSON.stringify(o)}),l=null;try{l=await i.json()}catch{}if(!i.ok)throw new Le(l?.error?.message??`${t} ${r} ${i.status}`,{code:l?.error?.code,status:i.status,retryable:!!l?.error?.retryable});return l}createSession(t){return this.req("POST","/bnpl-session/v1",t)}sendOtp(t){return this.req("POST","/bnpl-session/v1/otp/send",t)}verifyOtp(t){return this.req("POST","/bnpl-session/v1/otp/verify",t)}startLiveness(){return this.req("POST","/bnpl-session/v1/liveness/start")}submitLivenessResult(t){return this.req("POST","/bnpl-session/v1/liveness/result",t)}getCustomer(){return this.req("GET","/bnpl-session/v1/customer")}runCreditCheck(){return this.req("POST","/bnpl-session/v1/credit-check")}submitIdentity(t){return this.req("POST","/bnpl-session/v1/identity",t)}getIdentityStatus(){return this.req("GET","/bnpl-session/v1/identity/status")}submitEmployment(t){return this.req("POST","/bnpl-session/v1/employment",t)}getMonoLinkToken(){return this.req("GET","/bnpl-session/v1/mono/link-token")}finalize(t){return this.req("POST","/bnpl-session/v1/finalize",t)}};var qn="nc-bnpl-styles",Ct=`
|
|
2
|
+
.nc-bnpl {
|
|
3
|
+
--nc-primary: #917CFF;
|
|
4
|
+
--nc-primary-strong: #9747FF;
|
|
5
|
+
--nc-primary-soft: #B5A8FC;
|
|
6
|
+
--nc-primary-wash: #F0EDFF;
|
|
7
|
+
--nc-vault: #1A47B8;
|
|
8
|
+
--nc-yellow: #FFDA2C;
|
|
9
|
+
--nc-yellow-deep: #D4AF2C;
|
|
10
|
+
--nc-ink: #2D3261;
|
|
11
|
+
--nc-ink-deep: #1A1D3D;
|
|
12
|
+
--nc-muted: #75789A;
|
|
13
|
+
--nc-bg: #FFFFFF;
|
|
14
|
+
--nc-surface: #F7F8FA;
|
|
15
|
+
--nc-border: #E9EAF0;
|
|
16
|
+
--nc-success: #249F58;
|
|
17
|
+
--nc-danger: #F93939;
|
|
18
|
+
--nc-danger-2: #EF4444;
|
|
19
|
+
--font-sans: "Geist", "Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
|
|
20
|
+
--font-display: "Clash Grotesk", "Inter", system-ui, sans-serif;
|
|
21
|
+
--font-mono: "DM Mono", ui-monospace, "SF Mono", Menlo, monospace;
|
|
22
|
+
--shadow-xs: 0 1px 2px -1px rgba(26,26,26,.05);
|
|
23
|
+
--shadow-card: 0 1px 2px -1px rgba(26,26,26,.05), 0 10px 20px 0 rgba(26,26,26,.05);
|
|
24
|
+
--ease: cubic-bezier(.4,0,.2,1);
|
|
25
|
+
font-family: var(--font-sans);
|
|
26
|
+
color: var(--nc-ink);
|
|
27
|
+
font-size: 14px;
|
|
28
|
+
line-height: 20px;
|
|
29
|
+
-webkit-font-smoothing: antialiased;
|
|
30
|
+
}
|
|
31
|
+
.nc-bnpl-overlay {
|
|
32
|
+
position: fixed; inset: 0; z-index: 2147483600;
|
|
33
|
+
background:
|
|
34
|
+
radial-gradient(1200px 600px at 80% -10%, rgba(145,124,255,.10), transparent 60%),
|
|
35
|
+
radial-gradient(900px 500px at -10% 110%, rgba(255,218,44,.10), transparent 60%),
|
|
36
|
+
rgba(45,50,97,.42);
|
|
37
|
+
display: grid; place-items: center; padding: 24px; box-sizing: border-box;
|
|
38
|
+
animation: nc-fade-in .2s var(--ease);
|
|
39
|
+
}
|
|
40
|
+
.nc-bnpl-frame {
|
|
41
|
+
width: 440px; max-width: 100%;
|
|
42
|
+
height: min(760px, calc(100vh - 48px));
|
|
43
|
+
background: #fff;
|
|
44
|
+
border-radius: 24px;
|
|
45
|
+
border: 1px solid var(--nc-border);
|
|
46
|
+
box-shadow:
|
|
47
|
+
0 1px 2px -1px rgba(26,26,26,.06),
|
|
48
|
+
0 24px 60px -10px rgba(45,50,97,.35),
|
|
49
|
+
0 8px 16px 0 rgba(45,50,97,.10);
|
|
50
|
+
overflow: hidden;
|
|
51
|
+
display: flex; flex-direction: column;
|
|
52
|
+
position: relative; isolation: isolate;
|
|
53
|
+
animation: nc-pop .25s var(--ease);
|
|
54
|
+
}
|
|
55
|
+
@media (max-width: 540px) {
|
|
56
|
+
.nc-bnpl-overlay { padding: 0; }
|
|
57
|
+
.nc-bnpl-frame {
|
|
58
|
+
width: 100vw; height: 100vh;
|
|
59
|
+
border-radius: 0; border: none;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
.nc-bnpl-scroll { overflow-y: auto; overscroll-behavior: contain; }
|
|
63
|
+
.nc-bnpl-scroll::-webkit-scrollbar { width: 8px; }
|
|
64
|
+
.nc-bnpl-scroll::-webkit-scrollbar-thumb { background: rgba(45,50,97,.14); border-radius: 9999px; }
|
|
65
|
+
|
|
66
|
+
.nc-bnpl input, .nc-bnpl textarea, .nc-bnpl select, .nc-bnpl button { font-family: inherit; box-sizing: border-box; }
|
|
67
|
+
.nc-bnpl button { margin: 0; }
|
|
68
|
+
.nc-bnpl *, .nc-bnpl *::before, .nc-bnpl *::after { box-sizing: border-box; }
|
|
69
|
+
.nc-bnpl input[type="range"] { -webkit-appearance: none; appearance: none; background: transparent; }
|
|
70
|
+
|
|
71
|
+
.nc-bnpl .nc-range { width: 100%; height: 28px; }
|
|
72
|
+
.nc-bnpl .nc-range::-webkit-slider-runnable-track {
|
|
73
|
+
height: 6px; border-radius: 9999px;
|
|
74
|
+
background: linear-gradient(to right,
|
|
75
|
+
var(--nc-primary) 0%, var(--nc-primary) var(--p,50%),
|
|
76
|
+
var(--nc-border) var(--p,50%), var(--nc-border) 100%);
|
|
77
|
+
}
|
|
78
|
+
.nc-bnpl .nc-range::-moz-range-track {
|
|
79
|
+
height: 6px; border-radius: 9999px;
|
|
80
|
+
background: linear-gradient(to right,
|
|
81
|
+
var(--nc-primary) 0%, var(--nc-primary) var(--p,50%),
|
|
82
|
+
var(--nc-border) var(--p,50%), var(--nc-border) 100%);
|
|
83
|
+
}
|
|
84
|
+
.nc-bnpl .nc-range::-webkit-slider-thumb {
|
|
85
|
+
-webkit-appearance: none; appearance: none;
|
|
86
|
+
width: 22px; height: 22px; border-radius: 9999px;
|
|
87
|
+
background: #fff; border: 2px solid var(--nc-primary);
|
|
88
|
+
margin-top: -8px;
|
|
89
|
+
box-shadow: 0 2px 8px rgba(45,50,97,.18);
|
|
90
|
+
cursor: grab;
|
|
91
|
+
}
|
|
92
|
+
.nc-bnpl .nc-range::-moz-range-thumb {
|
|
93
|
+
width: 22px; height: 22px; border-radius: 9999px;
|
|
94
|
+
background: #fff; border: 2px solid var(--nc-primary);
|
|
95
|
+
box-shadow: 0 2px 8px rgba(45,50,97,.18);
|
|
96
|
+
cursor: grab;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
@keyframes nc-fade-in { from { opacity: 0 } to { opacity: 1 } }
|
|
100
|
+
@keyframes nc-pop { from { opacity: 0; transform: translateY(8px) scale(.99) } to { opacity: 1; transform: none } }
|
|
101
|
+
@keyframes nc-fade-up { from { opacity: 0; transform: translateY(6px) } to { opacity: 1; transform: none } }
|
|
102
|
+
@keyframes nc-spin { to { transform: rotate(360deg) } }
|
|
103
|
+
@keyframes nc-pulse { 0%,100% { opacity: 1 } 50% { opacity: .55 } }
|
|
104
|
+
@keyframes nc-bob { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
|
|
105
|
+
@keyframes nc-ring { from { stroke-dashoffset: 360 } to { stroke-dashoffset: 0 } }
|
|
106
|
+
|
|
107
|
+
.nc-bnpl .nc-screen { animation: nc-fade-up .35s var(--ease) both; }
|
|
108
|
+
.nc-bnpl .nc-spinner {
|
|
109
|
+
border-radius: 9999px; border: 2px solid currentColor; border-top-color: transparent;
|
|
110
|
+
display: inline-block; animation: nc-spin .9s linear infinite; flex: none;
|
|
111
|
+
}
|
|
112
|
+
`;function Vn(n=document){if(n.getElementById(qn))return;let t=n.createElement("style");t.id=qn,t.textContent=Ct,n.head.appendChild(t)}var wt=(()=>{try{let n=typeof document<"u"&&document.currentScript?.src||"";return n?new URL(".",n).href.replace(/\/$/,""):null}catch{return null}})();function On(n){if(!n.publicKey)throw new Error("init: publicKey is required");if(!n.cart||!Array.isArray(n.cart.items))throw new Error("init: cart.items is required");Vn();let t,r=!1;if(n.container){if(t=typeof n.container=="string"?document.querySelector(n.container):n.container,!t)throw new Error("init: container not found")}else t=document.createElement("div"),document.body.appendChild(t),r=!0;t.classList.add("nc-bnpl");let o=new he({apiBase:n.apiBase}),a=(n.assetPrefix??wt)||null,i=!1,l=()=>{i||(i=!0,Te(null,t),r&&t.parentElement&&t.parentElement.removeChild(t))};return Te(we(Hn,{api:o,publicKey:n.publicKey,cart:n.cart,partnerPrefill:n.partnerPrefill??{},assetPrefix:a,onClose:()=>{try{n.onClose?.()}finally{l()}},onApprovalPending:n.onApprovalPending,onError:n.onError}),t),{close:l}}var Pt={init:On},Rt=Pt;
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { InitOptions, WidgetHandle } from './types';
|
|
2
|
+
export type { InitOptions, WidgetHandle, Cart, CartItem, PartnerPrefill } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Mount the NeoCash BNPL widget. Returns a handle for programmatic control.
|
|
5
|
+
*
|
|
6
|
+
* Multiple init() calls on the same page are independent — each gets its own
|
|
7
|
+
* mount root. Call `handle.close()` to unmount.
|
|
8
|
+
*/
|
|
9
|
+
export declare function init(opts: InitOptions): WidgetHandle;
|
|
10
|
+
declare const api: {
|
|
11
|
+
init: typeof init;
|
|
12
|
+
};
|
|
13
|
+
export default api;
|