signer-test-sdk-react 0.0.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 +114 -0
- package/dist/src/AbstraxnProvider.d.ts +20 -0
- package/dist/src/AbstraxnProvider.js +2213 -0
- package/dist/src/AbstraxnProvider.js.map +1 -0
- package/dist/src/ConnectButton.css +217 -0
- package/dist/src/ConnectButton.d.ts +71 -0
- package/dist/src/ConnectButton.js +102 -0
- package/dist/src/ConnectButton.js.map +1 -0
- package/dist/src/ExternalWalletButtons.css +319 -0
- package/dist/src/ExternalWalletButtons.d.ts +56 -0
- package/dist/src/ExternalWalletButtons.js +245 -0
- package/dist/src/ExternalWalletButtons.js.map +1 -0
- package/dist/src/OnboardingUI.d.ts +63 -0
- package/dist/src/OnboardingUI.js +66 -0
- package/dist/src/OnboardingUI.js.map +1 -0
- package/dist/src/WalletModal.css +549 -0
- package/dist/src/WalletModal.d.ts +6 -0
- package/dist/src/WalletModal.js +89 -0
- package/dist/src/WalletModal.js.map +1 -0
- package/dist/src/components/OnboardingUI/OnboardingUI.css +727 -0
- package/dist/src/components/OnboardingUI/OnboardingUIReact.d.ts +15 -0
- package/dist/src/components/OnboardingUI/OnboardingUIReact.js +65 -0
- package/dist/src/components/OnboardingUI/OnboardingUIReact.js.map +1 -0
- package/dist/src/components/OnboardingUI/OnboardingUIWeb.d.ts +257 -0
- package/dist/src/components/OnboardingUI/OnboardingUIWeb.js +3454 -0
- package/dist/src/components/OnboardingUI/OnboardingUIWeb.js.map +1 -0
- package/dist/src/components/OnboardingUI/components/EmailForm.d.ts +16 -0
- package/dist/src/components/OnboardingUI/components/EmailForm.js +19 -0
- package/dist/src/components/OnboardingUI/components/EmailForm.js.map +1 -0
- package/dist/src/components/OnboardingUI/components/Modal.d.ts +15 -0
- package/dist/src/components/OnboardingUI/components/Modal.js +68 -0
- package/dist/src/components/OnboardingUI/components/Modal.js.map +1 -0
- package/dist/src/components/OnboardingUI/components/OtpForm.d.ts +19 -0
- package/dist/src/components/OnboardingUI/components/OtpForm.js +58 -0
- package/dist/src/components/OnboardingUI/components/OtpForm.js.map +1 -0
- package/dist/src/components/OnboardingUI/components/PasskeyButton.d.ts +14 -0
- package/dist/src/components/OnboardingUI/components/PasskeyButton.js +22 -0
- package/dist/src/components/OnboardingUI/components/PasskeyButton.js.map +1 -0
- package/dist/src/components/OnboardingUI/components/SocialButtons.d.ts +15 -0
- package/dist/src/components/OnboardingUI/components/SocialButtons.js +15 -0
- package/dist/src/components/OnboardingUI/components/SocialButtons.js.map +1 -0
- package/dist/src/components/OnboardingUI/components/index.d.ts +13 -0
- package/dist/src/components/OnboardingUI/components/index.js +9 -0
- package/dist/src/components/OnboardingUI/components/index.js.map +1 -0
- package/dist/src/components/OnboardingUI/hooks/index.d.ts +7 -0
- package/dist/src/components/OnboardingUI/hooks/index.js +6 -0
- package/dist/src/components/OnboardingUI/hooks/index.js.map +1 -0
- package/dist/src/components/OnboardingUI/hooks/useAuthMethods.d.ts +11 -0
- package/dist/src/components/OnboardingUI/hooks/useAuthMethods.js +146 -0
- package/dist/src/components/OnboardingUI/hooks/useAuthMethods.js.map +1 -0
- package/dist/src/components/OnboardingUI/hooks/useOnboarding.d.ts +21 -0
- package/dist/src/components/OnboardingUI/hooks/useOnboarding.js +135 -0
- package/dist/src/components/OnboardingUI/hooks/useOnboarding.js.map +1 -0
- package/dist/src/components/OnboardingUI/index.d.ts +12 -0
- package/dist/src/components/OnboardingUI/index.js +15 -0
- package/dist/src/components/OnboardingUI/index.js.map +1 -0
- package/dist/src/hooks.d.ts +204 -0
- package/dist/src/hooks.js +394 -0
- package/dist/src/hooks.js.map +1 -0
- package/dist/src/index.d.ts +14 -0
- package/dist/src/index.js +11 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/types.d.ts +181 -0
- package/dist/src/types.js +2 -0
- package/dist/src/types.js.map +1 -0
- package/dist/src/wagmiConfig.d.ts +147 -0
- package/dist/src/wagmiConfig.js +81 -0
- package/dist/src/wagmiConfig.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +68 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* OnboardingUI React Component
|
|
4
|
+
* Pure React implementation of OnboardingUI
|
|
5
|
+
*/
|
|
6
|
+
import { useEffect } from 'react';
|
|
7
|
+
import { useOnboarding } from './hooks/useOnboarding';
|
|
8
|
+
import { useAuthMethods } from './hooks/useAuthMethods';
|
|
9
|
+
import { EmailForm } from './components/EmailForm';
|
|
10
|
+
import { OtpForm } from './components/OtpForm';
|
|
11
|
+
import { SocialButtons } from './components/SocialButtons';
|
|
12
|
+
import { PasskeyButton } from './components/PasskeyButton';
|
|
13
|
+
import { Modal } from './components/Modal';
|
|
14
|
+
import { ExternalWalletButtons } from '../../ExternalWalletButtons';
|
|
15
|
+
import './OnboardingUI.css';
|
|
16
|
+
export const OnboardingUIReact = ({ config = {}, modal = false, onClose, externalWalletsEnabled = false, availableConnectors = [], }) => {
|
|
17
|
+
const theme = config.theme || 'light';
|
|
18
|
+
const authMethods = config.authMethods || ['otp', 'google'];
|
|
19
|
+
const onboarding = useOnboarding(config);
|
|
20
|
+
const authMethodsHook = useAuthMethods(config);
|
|
21
|
+
// Handle URL parameters for social login callbacks
|
|
22
|
+
useEffect(() => {
|
|
23
|
+
if (typeof window === 'undefined' || !config.handleUrlParams)
|
|
24
|
+
return;
|
|
25
|
+
const params = new URLSearchParams(window.location.search);
|
|
26
|
+
const success = params.get('success');
|
|
27
|
+
const error = params.get('error');
|
|
28
|
+
if (success === 'true') {
|
|
29
|
+
// Set loading state
|
|
30
|
+
onboarding.setLoading(true);
|
|
31
|
+
return;
|
|
32
|
+
}
|
|
33
|
+
if (error) {
|
|
34
|
+
onboarding.setError(decodeURIComponent(error));
|
|
35
|
+
}
|
|
36
|
+
return;
|
|
37
|
+
}, [config.handleUrlParams, onboarding]);
|
|
38
|
+
// Reset when modal closes
|
|
39
|
+
useEffect(() => {
|
|
40
|
+
if (!modal && onClose) {
|
|
41
|
+
const handleClose = () => {
|
|
42
|
+
onboarding.reset();
|
|
43
|
+
};
|
|
44
|
+
return handleClose;
|
|
45
|
+
}
|
|
46
|
+
return;
|
|
47
|
+
}, [modal, onClose, onboarding]);
|
|
48
|
+
const handleClose = () => {
|
|
49
|
+
onboarding.reset();
|
|
50
|
+
onClose?.();
|
|
51
|
+
};
|
|
52
|
+
const showEmailForm = onboarding.step === 'email' && authMethods.includes('otp');
|
|
53
|
+
const showOtpForm = onboarding.step === 'otp' && authMethods.includes('otp');
|
|
54
|
+
const showSocialButtons = onboarding.step === 'email' && (authMethods.includes('google') ||
|
|
55
|
+
authMethods.includes('twitter') ||
|
|
56
|
+
authMethods.includes('discord'));
|
|
57
|
+
const showPasskey = onboarding.step === 'email' && authMethods.includes('passkey');
|
|
58
|
+
const showExternalWallets = onboarding.step === 'email' && externalWalletsEnabled && availableConnectors.length > 0;
|
|
59
|
+
const content = (_jsx("div", { className: `onboarding-container onboarding-theme-${theme} ${config.className || ''}`, children: _jsxs("div", { className: "onboarding-card", children: [_jsxs("div", { className: "onboarding-header", children: [config.logo && (_jsx("div", { className: "onboarding-logo-section", children: _jsx("div", { className: "onboarding-logo-container", children: _jsx("img", { src: config.logo, alt: "Logo", className: "onboarding-logo-img" }) }) })), _jsx("h1", { className: "onboarding-title", id: "onboarding-title", children: config.onboardTitle || 'Sign in' })] }), showEmailForm && (_jsx(EmailForm, { email: onboarding.email, onChange: onboarding.setEmail, onSubmit: onboarding.handleEmailSubmit, loading: onboarding.loading, error: onboarding.error, config: config })), showOtpForm && (_jsx(OtpForm, { email: onboarding.email, otp: onboarding.otp, onChange: onboarding.setOtp, onSubmit: onboarding.handleOtpSubmit, onResend: onboarding.handleResendOtp, loading: onboarding.loading, error: onboarding.error, resendCooldown: onboarding.resendCooldown, config: config })), onboarding.step === 'loading' && (_jsxs("div", { className: "onboarding-loading", style: { textAlign: 'center', padding: '40px' }, children: [_jsxs("svg", { width: "48", height: "48", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", style: { animation: 'spin 1s linear infinite' }, children: [_jsx("line", { x1: "12", y1: "2", x2: "12", y2: "6" }), _jsx("line", { x1: "12", y1: "18", x2: "12", y2: "22" }), _jsx("line", { x1: "4.93", y1: "4.93", x2: "7.76", y2: "7.76" }), _jsx("line", { x1: "16.24", y1: "16.24", x2: "19.07", y2: "19.07" }), _jsx("line", { x1: "2", y1: "12", x2: "6", y2: "12" }), _jsx("line", { x1: "18", y1: "12", x2: "22", y2: "12" }), _jsx("line", { x1: "4.93", y1: "19.07", x2: "7.76", y2: "16.24" }), _jsx("line", { x1: "16.24", y1: "7.76", x2: "19.07", y2: "4.93" })] }), _jsx("p", { style: { marginTop: '16px' }, children: "Authenticating..." })] })), onboarding.step === 'error' && onboarding.error && (_jsxs("div", { className: "onboarding-error-container", children: [_jsx("div", { className: "onboarding-error", role: "alert", children: onboarding.error }), _jsx("button", { type: "button", className: "onboarding-button onboarding-button-primary", onClick: onboarding.reset, children: "Try Again" })] })), showSocialButtons && (showEmailForm || showOtpForm) && (_jsx("div", { className: "onboarding-divider", children: _jsx("span", { className: "onboarding-divider-text", children: "or" }) })), showSocialButtons && (_jsx(SocialButtons, { onGoogleLogin: authMethodsHook.handleGoogleLogin, onTwitterLogin: authMethodsHook.handleTwitterLogin, onDiscordLogin: authMethodsHook.handleDiscordLogin, loading: authMethodsHook.loading, config: config })), showPasskey && (_jsx(PasskeyButton, { onPasskeyLogin: authMethodsHook.handlePasskeyLogin, onPasskeySignup: authMethodsHook.handlePasskeySignup, loading: authMethodsHook.loading, config: config })), showExternalWallets && (_jsxs(_Fragment, { children: [_jsx("div", { className: "onboarding-divider", children: _jsx("span", { className: "onboarding-divider-text", children: "or" }) }), _jsx("div", { style: { marginTop: '12px' }, children: _jsx(ExternalWalletButtons, {}) })] })), config.showFooter !== false && (_jsx("div", { className: "onboarding-footer", children: _jsxs("p", { className: "onboarding-footer-text", children: ["Powered by", ' ', _jsx("a", { href: "https://abstraxn.com", target: "_blank", rel: "noopener noreferrer", className: "onboarding-footer-brand", children: "Abstraxn" })] }) }))] }) }));
|
|
60
|
+
if (modal) {
|
|
61
|
+
return (_jsx(Modal, { isOpen: true, onClose: handleClose, showCloseButton: config.showCloseButton !== false, closeOnBackdropClick: config.closeOnBackdropClick !== false, theme: theme, children: content }));
|
|
62
|
+
}
|
|
63
|
+
return content;
|
|
64
|
+
};
|
|
65
|
+
//# sourceMappingURL=OnboardingUIReact.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OnboardingUIReact.js","sourceRoot":"","sources":["../../../../src/components/OnboardingUI/OnboardingUIReact.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,257 @@
|
|
|
1
|
+
import type { OnboardingUIConfig, Theme } from 'signer-test-sdk-core';
|
|
2
|
+
/**
|
|
3
|
+
* OnboardingUI Class
|
|
4
|
+
*
|
|
5
|
+
* A customizable user onboarding component with email-OTP and Google login options.
|
|
6
|
+
* Works with vanilla JavaScript - no framework dependencies required.
|
|
7
|
+
*/
|
|
8
|
+
export declare class OnboardingUIWeb {
|
|
9
|
+
private static stylesInjected;
|
|
10
|
+
private config;
|
|
11
|
+
private container;
|
|
12
|
+
private rootElement;
|
|
13
|
+
private modalOverlay;
|
|
14
|
+
private modalContent;
|
|
15
|
+
private emailInput;
|
|
16
|
+
private otpInput;
|
|
17
|
+
private otpInputs;
|
|
18
|
+
private emailForm;
|
|
19
|
+
private continueButton;
|
|
20
|
+
private emailArrowButton;
|
|
21
|
+
private googleButton;
|
|
22
|
+
private twitterButton;
|
|
23
|
+
private discordButton;
|
|
24
|
+
private passkeyLoginButton;
|
|
25
|
+
private passkeySignupLink;
|
|
26
|
+
private passkeyDivider;
|
|
27
|
+
private passkeyErrorElement;
|
|
28
|
+
private errorElement;
|
|
29
|
+
private otpGroup;
|
|
30
|
+
private otpVerificationScreen;
|
|
31
|
+
private closeButton;
|
|
32
|
+
private resendButton;
|
|
33
|
+
private socialGrid;
|
|
34
|
+
externalWalletContainer: HTMLElement | null;
|
|
35
|
+
externalWalletDivider: HTMLElement | null;
|
|
36
|
+
private divider;
|
|
37
|
+
private footer;
|
|
38
|
+
private verifyButton;
|
|
39
|
+
private email;
|
|
40
|
+
private otp;
|
|
41
|
+
private otpSent;
|
|
42
|
+
private loading;
|
|
43
|
+
private activeButton;
|
|
44
|
+
private resendCooldown;
|
|
45
|
+
private externalWalletsEnabled;
|
|
46
|
+
constructor(config: OnboardingUIConfig, externalWalletsEnabled?: boolean);
|
|
47
|
+
/**
|
|
48
|
+
* Show external wallet container and divider
|
|
49
|
+
* Call this before init() to prevent flicker when external wallets are enabled
|
|
50
|
+
*/
|
|
51
|
+
showExternalWallets(): void;
|
|
52
|
+
/**
|
|
53
|
+
* Initialize and render the component
|
|
54
|
+
*/
|
|
55
|
+
init(): void;
|
|
56
|
+
/**
|
|
57
|
+
* Check URL parameters for social login callbacks
|
|
58
|
+
*/
|
|
59
|
+
private checkUrlParams;
|
|
60
|
+
/**
|
|
61
|
+
* Show error screen or modal (public method)
|
|
62
|
+
*/
|
|
63
|
+
showError(message: string): void;
|
|
64
|
+
/**
|
|
65
|
+
* Show error screen
|
|
66
|
+
*/
|
|
67
|
+
private showErrorScreen;
|
|
68
|
+
/**
|
|
69
|
+
* Show loading screen
|
|
70
|
+
*/
|
|
71
|
+
private showLoadingScreen;
|
|
72
|
+
/**
|
|
73
|
+
* Show loading screen as a modal overlay (for inline components)
|
|
74
|
+
*/
|
|
75
|
+
private showLoadingModal;
|
|
76
|
+
/**
|
|
77
|
+
* Hide loading modal overlay
|
|
78
|
+
*/
|
|
79
|
+
private hideLoadingModal;
|
|
80
|
+
/**
|
|
81
|
+
* Show error screen as a modal overlay (for inline components)
|
|
82
|
+
*/
|
|
83
|
+
private showErrorModal;
|
|
84
|
+
/**
|
|
85
|
+
* Inject CSS styles into the document head (only once)
|
|
86
|
+
*/
|
|
87
|
+
private injectStyles;
|
|
88
|
+
/**
|
|
89
|
+
* Apply custom colors from config
|
|
90
|
+
*/
|
|
91
|
+
private applyCustomColors;
|
|
92
|
+
/**
|
|
93
|
+
* Setup the container element
|
|
94
|
+
*/
|
|
95
|
+
private setupContainer;
|
|
96
|
+
/**
|
|
97
|
+
* Render the component
|
|
98
|
+
*/
|
|
99
|
+
private render;
|
|
100
|
+
/**
|
|
101
|
+
* Render as modal overlay
|
|
102
|
+
*/
|
|
103
|
+
private renderAsModal;
|
|
104
|
+
/**
|
|
105
|
+
* Trap focus within modal for accessibility
|
|
106
|
+
*/
|
|
107
|
+
private trapFocus;
|
|
108
|
+
/**
|
|
109
|
+
* Render inline (non-modal)
|
|
110
|
+
*/
|
|
111
|
+
private renderInline;
|
|
112
|
+
/**
|
|
113
|
+
* Build form content (shared between modal and inline)
|
|
114
|
+
*/
|
|
115
|
+
private buildFormContent;
|
|
116
|
+
/**
|
|
117
|
+
* Attach event listeners
|
|
118
|
+
*/
|
|
119
|
+
private attachEventListeners;
|
|
120
|
+
/**
|
|
121
|
+
* Handle email form submission
|
|
122
|
+
*/
|
|
123
|
+
private handleEmailSubmit;
|
|
124
|
+
/**
|
|
125
|
+
* Handle Google login
|
|
126
|
+
*/
|
|
127
|
+
private handleGoogleLogin;
|
|
128
|
+
/**
|
|
129
|
+
* Handle Twitter login
|
|
130
|
+
*/
|
|
131
|
+
private handleTwitterLogin;
|
|
132
|
+
/**
|
|
133
|
+
* Handle Discord login
|
|
134
|
+
*/
|
|
135
|
+
private handleDiscordLogin;
|
|
136
|
+
/**
|
|
137
|
+
* Show OTP verification screen
|
|
138
|
+
*/
|
|
139
|
+
private showOtpInput;
|
|
140
|
+
/**
|
|
141
|
+
* Create OTP verification screen with 6 input fields
|
|
142
|
+
*/
|
|
143
|
+
private createOtpVerificationScreen;
|
|
144
|
+
/**
|
|
145
|
+
* Create email icon SVG
|
|
146
|
+
*/
|
|
147
|
+
private createEmailIconSVG;
|
|
148
|
+
/**
|
|
149
|
+
* Handle OTP input - auto-advance to next field
|
|
150
|
+
*/
|
|
151
|
+
private handleOtpInput;
|
|
152
|
+
/**
|
|
153
|
+
* Handle OTP keydown - backspace to go to previous field
|
|
154
|
+
*/
|
|
155
|
+
private handleOtpKeydown;
|
|
156
|
+
/**
|
|
157
|
+
* Handle OTP paste - fill all fields from clipboard
|
|
158
|
+
*/
|
|
159
|
+
private handleOtpPaste;
|
|
160
|
+
/**
|
|
161
|
+
* Update OTP value from input fields
|
|
162
|
+
*/
|
|
163
|
+
private updateOtpValue;
|
|
164
|
+
/**
|
|
165
|
+
* Handle OTP verification
|
|
166
|
+
*/
|
|
167
|
+
private handleOtpVerify;
|
|
168
|
+
/**
|
|
169
|
+
* Handle resend OTP
|
|
170
|
+
*/
|
|
171
|
+
private handleResendOtp;
|
|
172
|
+
/**
|
|
173
|
+
* Start resend cooldown timer
|
|
174
|
+
*/
|
|
175
|
+
private startResendCooldown;
|
|
176
|
+
/**
|
|
177
|
+
* Set error message
|
|
178
|
+
*/
|
|
179
|
+
private setError;
|
|
180
|
+
/**
|
|
181
|
+
* Set loading state
|
|
182
|
+
*/
|
|
183
|
+
private setLoading;
|
|
184
|
+
/**
|
|
185
|
+
* Update button state
|
|
186
|
+
*/
|
|
187
|
+
private updateButtonState;
|
|
188
|
+
/**
|
|
189
|
+
* Update theme
|
|
190
|
+
*/
|
|
191
|
+
setTheme(theme: Theme): void;
|
|
192
|
+
/**
|
|
193
|
+
* Show/hide component
|
|
194
|
+
*/
|
|
195
|
+
setVisible(visible: boolean): void;
|
|
196
|
+
/**
|
|
197
|
+
* Reset OTP screen and show initial login form
|
|
198
|
+
*/
|
|
199
|
+
resetToLoginForm(): void;
|
|
200
|
+
/**
|
|
201
|
+
* Close the modal
|
|
202
|
+
*/
|
|
203
|
+
close(): void;
|
|
204
|
+
/**
|
|
205
|
+
* Destroy the component
|
|
206
|
+
*/
|
|
207
|
+
destroy(): void;
|
|
208
|
+
/**
|
|
209
|
+
* Create DOM element helper
|
|
210
|
+
*/
|
|
211
|
+
private createElement;
|
|
212
|
+
/**
|
|
213
|
+
* Parse style object or string
|
|
214
|
+
*/
|
|
215
|
+
private parseStyle;
|
|
216
|
+
/**
|
|
217
|
+
* Create email icon SVG
|
|
218
|
+
*/
|
|
219
|
+
private createEmailIcon;
|
|
220
|
+
/**
|
|
221
|
+
* Create Google icon SVG
|
|
222
|
+
*/
|
|
223
|
+
private createGoogleIcon;
|
|
224
|
+
/**
|
|
225
|
+
* Create right arrow icon SVG
|
|
226
|
+
*/
|
|
227
|
+
private createArrowIcon;
|
|
228
|
+
/**
|
|
229
|
+
* Create passkey icon SVG
|
|
230
|
+
*/
|
|
231
|
+
private createPasskeyIcon;
|
|
232
|
+
/**
|
|
233
|
+
* Create X (Twitter) icon SVG
|
|
234
|
+
*/
|
|
235
|
+
private createTwitterIcon;
|
|
236
|
+
/**
|
|
237
|
+
* Create Discord icon SVG
|
|
238
|
+
*/
|
|
239
|
+
private createDiscordIcon;
|
|
240
|
+
/**
|
|
241
|
+
* Handle passkey login
|
|
242
|
+
*/
|
|
243
|
+
private handlePasskeyLogin;
|
|
244
|
+
/**
|
|
245
|
+
* Handle passkey signup
|
|
246
|
+
*/
|
|
247
|
+
private handlePasskeySignup;
|
|
248
|
+
/**
|
|
249
|
+
* Show passkey-specific error near the passkey controls
|
|
250
|
+
*/
|
|
251
|
+
private showPasskeyError;
|
|
252
|
+
/**
|
|
253
|
+
* Hide passkey-specific error
|
|
254
|
+
*/
|
|
255
|
+
private hidePasskeyError;
|
|
256
|
+
}
|
|
257
|
+
export default OnboardingUIWeb;
|